ロジスティック回帰分析で変数選択はどうやる?bestglm
統計ソフトRを使って、
多重ロジスティック回帰分析でBICを使って、
簡単に変数選択ができる。
BICは、
Bayesian Information Criterionの頭文字語。
統計モデルへのあてはまりを検討するときに、
変数が多すぎると評価が下がる規準になっている。
変数が多ければ多いほど、
統計モデルへのあてはまりはよくなるが、
新たなデータでの予測には向かなくなるし、
そもそも複雑より単純なモデルで記述できたほうがいい。
まずbestglmをインストールしておく。
install.packages("bestglm")
bestglmを呼び出す。
library(bestglm)
SAheartというデータを使う。
A retrospective sample of males
in a heart-disease high-risk region of
the Western Cape, South Africa.
ヘルプで中身を簡単に見ておく。
help(SAheart)
SAheartの構造を確認する。
Endpointのchd(2値データ)が
最後の列にあることを確認する。
それがbestglmの特殊なところ。
最後のカラムに従属変数。これが必須。
str(SAheart)
いよいよ計算。
data frameのSAheartを指定して、
familyにbinomialを指定すればOK.
res1 <- bestglm(SAheart, family=binomial)
結果を表示する。
残った変数はタバコとLDL、家族歴、TypeA性格、年齢。
res1
BIC
BICq equivalent for q in (0.190525988534164, 0.90158316218744)
Best Model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.44644451 0.92087165 -7.000372 2.552830e-12
tobacco 0.08037533 0.02587968 3.105731 1.898095e-03
ldl 0.16199164 0.05496893 2.946967 3.209074e-03
famhistPresent 0.90817526 0.22575844 4.022774 5.751659e-05
typea 0.03711521 0.01216676 3.050542 2.284290e-03
age 0.05046038 0.01020606 4.944159 7.647325e-07
検討した変数の組み合わせ一覧結果を見るなら、
res1$Subsets
Best modelから5番目までの表示させるときは、
res1$BestModels
Best modelのestimates (coefficients)を表示させるときは
res1$BestModel
参考文献:
bestglm: Best Subset GLM
