こにしき(言葉・日本社会・教育)

関西学院大学(2016.04~)の寺沢拓敬のブログです(専門:言語社会学)。

Rでロジスティック回帰

和文文献や、日本語のwebサイトには、Rを使ったロジスティック回帰についてはそんなに載ってません。で、書いてあった場合は、たいてい、一般化線形モデルを使うべし、とあります。


だいたいが、下みたいな感じで、familyをbinomialに指定すべし、と。

glm(y ~ x1 + x2 + x3, data=hoge, family="binomial")

ただ、これだと出力される情報が物足りない事がたまにあります。たとえば、(その精度はともかく)わかりやすいのでよく使われる疑似R2乗が出力されないので、いちいち計算式を書かなければいけないのはめんどくさいです。比較するモデルが多いときなんかは、計算ミス(式のスペルミス)などしてそうで恐ろしい。


なので、一括で出るのはないかなあとずっと探したり人に聞いたりしてたんですが、ついに見つけました!

  • lrm()関数


つうか、普通にHELPにあったよ...。そう言えば、N原さんにこの前、「まずはHELPを読みましょうよ...」と言われた(関数式を探すのにweb検索しかやらない自分)。反省。


詳細はこのページ
http://stat.cmu.edu/S/Harrell/help/Design/html/lrm.html


これだとモデル式を作って回すだけで、例えば Nagelkerkeの疑似R2乗が出力される(まあそれで大方解決なんだけれど、Cox & Snell の疑似R2乗が欲しいときはどうすればいいんんだ!?)