言語はRubyまたはPHPでお願いします。
<参考サイト>
http://software.ssri.co.jp/ex2015/function/probit.html
http://hnami.or.tv/d/index.php?%A5%ED%A5%B8%A5%C3%A5%C8%CA%AC%C0%CF%A4%C8%A5%D7%A5%ED%A5%D3%A5%C3%A5%C8%CA%AC%C0%CF
gemでstatsampleを探せば気づくかと思いますが、statsample-glmというエクステンションがあります。
https://rubygems.org/gems/statsample-glm/
チュートリアルに従って同じデータでやるとこんな感じです。
require 'statsample-glm' data_set = Statsample::CSV.read "logistic_mle.csv" glm = Statsample::GLM.compute data_set, :y, :probit, {constant: 1, algorithm: :mle} puts glm.coefficients # => # 0.17626387151069672 # 0.44820871924236927 # -0.22399172305216722 # -3.0669209258136503 puts glm.standard_error # => # 0.23849905071293545 # 0.2333719187111209 # 0.2149769013786397 # 1.0547761637565858 puts glm.log_likelihood # => -38.315586790948004
[code]Generalized Linear Models: Introduction and Implementation in Ruby. - Travel <code> Music
ちなみに同じデータをRで扱うとこんな感じになります。
glm()はRにデフォルトで入っている関数です。
data_set <- read.csv("logistic_mle.csv") attach(data_set) model <- glm(formula = y ~ a + b + c, family = binomial(probit)) summary(model)
出力
Call: glm(formula = y ~ a + b + c, family = binomial(probit)) Deviance Residuals: Min 1Q Median 3Q Max -1.97570 -0.09687 -0.00083 0.11941 2.23066 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -3.0670 1.0556 -2.906 0.00367 ** a 0.1763 0.2387 0.739 0.46005 b 0.4483 0.2335 1.920 0.05492 . c -0.2240 0.2151 -1.041 0.29767 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 277.079 on 199 degrees of freedom Residual deviance: 76.631 on 196 degrees of freedom AIC: 84.631 Number of Fisher Scoring iterations: 8
Ruby のライブラリは、これだと思います。
http://ruby-statsample.rubyforge.org/
https://www.ruby-forum.com/topic/204692
ちらっと探した感じでは、API ドキュメント以外の情報が少ないなあ、という感じ。
多分、こんな感じで使うのだと思いますけど。
ds = ... lr=Statsample::Regression.probit(ds,'y') puts lr.summary
http://ruby-statsample.rubyforge.org/statsample/Statsample/Regression.html
http://ruby-statsample.rubyforge.org/statsample/Statsample/Regression/Multiple.html
http://ruby-statsample.rubyforge.org/statsample/Statsample/Regression.html#method-c-probit