Matsu Blog

マーケティング、事業開発、統計学をテーマに何かしらを書き留めていきます

重回帰分析における多重共線性への対応

はじめに

StatsModels(Python)で重回帰分析をしたところ以下のようなメッセージ(多重共線性の発生)が表示され困惑したため、そのとき調べたことをまとめてみました。

[2] The smallest eigenvalue is 7.16e-29. This might indicate that there are
strong multicollinearity problems or that the design matrix is singular.

多重共線性(Multicollinearity)とは

重回帰分析などの多変量解析において、説明変数間に高い相関が認められる場合に発生する事象のこと

多重共線性が発生する具体的なケース

  • ダミー変数を使用している場合
    例えば、男女をダミー変数として扱う場合、説明変数として男0or1と女0or1という二つの項目を追加してしまうと、その二つの説明変数間で完全に相関するため、多重共線性が発生する

多重共線性による影響

  • 回帰係数などの誤差が大きくなることで解析結果が不安定となる(偏回帰係数の値が信頼できない)

多重共線性かどうかを判断する方法

  • 分散拡大要因(VIF)を調べる
    一般的にはこの値が10以上になると多重共線性があるといえる(StatsModelsの公式リファレンスによれば5以上とのこと)

多重共線性への対応

  • 不要な説明変数の削除
    先の例でいえば男・女という説明変数のうち片方を説明変数から削除する
    その他、説明変数間で高い相関がある場合は、それらの間で原因・結果の関係がないかなど検討したうえで削除する

  • 主成分分析を行う
    説明変数の主成分を集約することで説明変数間の相関を事実上無視する

参考資料

有益な資料(個人メモ)