ロジスティック回帰分析で変数選択はどうやる?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

このブログの人気の投稿

SPSSでCox回帰をするときのソフトウェア操作手順

「目的変数が正規分布していないのであれば重回帰分析は不適切」への対処法

SPSSで比率の区間推定はできますか?