多重共線性 たじゅうきょうせんせい
多重共線性共線性VIF線形回帰特徴量間相関
多重共線性について教えて
簡単に言うとこんな感じ!
複数の特徴量が互いに強く関連しあっている状態だよ。「身長と体重の両方」を使って体型を予測しようとすると、この2つが似たような情報を持ってるから、モデルがどちらが重要か混乱してしまう。特に線形モデルで深刻な問題になるんだ!
多重共線性とは
多重共線性(Multicollinearity)とは、回帰モデルに含まれる複数の特徴量が互いに強く相関している状態です。例えば「年収」と「月収×12」は完全に同一の情報であり、両方を特徴量に含めると多重共線性が発生します。
多重共線性が起きると、モデルの係数が不安定になります。「身長を1cm増やしたら体重はどう変わるか」を推定したいのに、身長と体重の両方が特徴量にあると、モデルがその係数を正確に算出できません。
何が問題になるのか
| 影響 | 説明 |
|---|---|
| 係数が不安定 | データが少し変わるだけで係数が大きく変動 |
| 係数の符号が逆転 | 直感と逆の正負になることがある |
| 解釈が困難 | どの変数が効いているか分からなくなる |
| 予測精度への影響 | 予測精度は意外と影響を受けにくい(矛盾するが事実) |
多重共線性の検出方法
相関行列による確認
特徴量間の相関係数が0.9以上なら要注意。
VIF(分散拡大因子)
VIF = 1 / (1 - R²)
R²:その特徴量を他の特徴量で回帰した時の決定係数
VIF < 5 :問題なし
5 ≤ VIF < 10:注意が必要
VIF ≥ 10 :深刻な多重共線性
対処法
| 手法 | 説明 |
|---|---|
| 相関の高い変数を削除 | 片方を除去してシンプルにする |
| L2正則化(Ridge回帰) | 係数を安定させる正則化 |
| PCAで次元削減 | 相関変数を合成変数にまとめる |
| ドメイン知識で選択 | 意味的に重要な変数だけを残す |
どのモデルで問題になるか
深刻な影響あり
- 線形回帰
- ロジスティック回帰
- 線形SVM
影響は少ない(ただし解釈は困難)
- 決定木・ランダムフォレスト
- 勾配ブースティング(XGBoost等)
- ニューラルネットワーク
歴史と背景
- 1930年代〜:計量経済学・統計学での重要課題として研究
- 1960年代:VIFが正式に提案される
- 現在:機械学習ではPCAや正則化で実用的に対処