Data Blue

データの海で遊んでます。

ロジスティック回帰の変数選択はちょっと違う

多変量回帰において、どれが有効なモデルか
わからないときに、なんでもかんでも、とにかく
変数を突っ込んでみて、有意だったら残すという
アプローチがあります(e.g. ステップダウン、
ステップワイズ等)。

良い予測モデルを得るのが目的の場合には
上記のやり方で問題ないのですが、

特定の要因(暴露因子)がアウトカムに
どう影響を与えているかを調べたいときには
盲目的な変数選択には注意が必要です。

 

さて、今AとYの関係に興味があるとします。
また、ZはAとは無関係にYに関連する
予測因子とします。

Yが線形の時に下記の2つのモデルを検討します。

モデル1:E(Y|A, Z) = intercept + b1*A + b2*Z

モデル2:E(Y|A)  = intercept + b1*A

ここで、式1のZを落とすと、

モデル3:E(Y|A) = intercept + b1*A + b2*E(Z|A)

ZとAは関係がなく、E(Z|A)=定数ですので、
モデル2と3のb1は同じとなります*1
つまり、Zをモデルに入れようが入れまいが、
b1は二つのモデルで変わりません。

 

次にYが0.1である場合を考えます。
ロジスティックモデルでは上記モデルの左辺が
それぞれ次のようになります。
モデル1:log(E(Y|A,Z) / (1-E(Y|A,Z))
モデル2:log(E(Y|A) / (1-E(Y|A))

この時モデル1と2は線形の関係にありませんので、
Zを入れることでb1が変わってきてしまいます。

AとZは関係ないので、Aの与えるYへの影響の
不偏推定はモデル2のb1となります。
ロジスティックモデルでの因果推論は、
調整因子をよく考えて選択する必要がありそうです。

*1:その分interceptは変わります