多変量解析の変数は何個まで入れて良いのか

他の記事では、因果推論における多変量解析に入れるべき変数、外すべき変数について解説しました。では、入れるべき変数は全てモデルに入れても構わないのでしょうか。入れすぎると、どのような問題が起きるのでしょうか。

目次

Overfitting

因果推論の目的は、暴露因子のアウトカムに対する影響を知りたい、ということです。下の例ですと、喫煙(smoke)の出生児体重(BWT)への影響を知りたい、となります。その影響の大きさが、smokeの係数β1ですね。

BWT = β0 + β1*smoke + … …

モデルに変数を入れすぎると、この係数βのstandard error (se)が大きくなってしまい、不安定なモデルとなってしまいます。

知りたい因子の係数(β)のstandard errorが大きいということは、本当のβのとりうる範囲が広い(バラツキが大きい)ということを意味しており、βという値の信頼性が低くなってしまいます。

上のスライドの一つ目のモデルには、smokeのみが入っており、seは50と大きくありません。

二つ目のモデルにはsmokeにageを加えました。seが50から250に増えています。ただし、βが+200から-500と大きく変化していることから、統計学的にはageはsmokeとBWTの交絡因子(confounder)であると言えるため、できればモデルに含めたい因子です。seが結構大きいので、入れるか外すか、難しいところです。

三つ目のモデルには、 二つ目のモデルにX3という別の変数を加えてみました。すると、smokeの係数のseは1000とかなり大きくなってしまいました。これをProf. Oravは”explosion”と表現していますが、smokeの係数のvarianceが大きくなって本当の値が-800から離れる可能性が高まってしまったことを意味しています。ここまできたら、X3はモデルに入れたくありません。

Modelに変数を入れれば入れるほど、modelによるoutcome Yの予測値自体は良くなりますが、βのvarianceが大きくなり、standard errorは大きくなってしまいます。簡単に言えば、今回のデータにfitし過ぎて一般化できていない(→overfit)、ということです。

一般的なルールとして

どのくらい変数を入れるとどの程度seが大きくなるかは、データ次第です。場合によっては沢山変数を入れてもseが大きくならないことだってあり得ます。

しかし、やはり何かしらの目安が欲しいですよね。

一般的なルールとして、モデルにいれる変数の数を

Linear regressionでは、サンプル数の1/10 (または1/20)

→Ex) n=200なら、20個まで

Logistic regressionでは、アウトカムであるイベント数/10と、イベントが起こらなかった数/10の、小さい方

→Ex) n=200で、死亡 n=40、生存 n=160の場合、4個まで

を一般的な目安とすると良いでしょう。

さいごに

以上です。多変量解析に入れることのできる変数の数について解説しました。なぜ多過ぎるとダメなのか、理解できたでしょうか。

 

医療従事者に必要な統計学と疫学(目次)へ

References

  • John Orav. BST 213: Applied Regression for Clinical Research. Harvard T.H. Chan School of Public Health
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

医療データで決定木(decision tree)の基本を簡単に解説|シェアする挑戦者 〜 MD × MPH 〜 へ返信する コメントをキャンセル

英語のコメントは『問い合わせ』からお願いします。

目次