重回帰分析における多重共線性への対応
はじめに
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以上とのこと)
多重共線性への対応
不要な説明変数の削除
先の例でいえば男・女という説明変数のうち片方を説明変数から削除する
その他、説明変数間で高い相関がある場合は、それらの間で原因・結果の関係がないかなど検討したうえで削除する主成分分析を行う
説明変数の主成分を集約することで説明変数間の相関を事実上無視する
参考資料
- Q21 | 統計に関するFAQ | 看護・保健系大学院生のための統計学習サイト
- Welcome to Adobe GoLive 5
- 重回帰分析 | 日経リサーチ
- Python(StatsModels) で重回帰分析を理解し、分析の精度を上げる方法 | たぬハック
- 第3回 実践!正しい多変量回帰分析|スペシャリストの視点|医療情報サイト m3.com
- 多重共線性とは? 〜 概要と対応方法 〜 | 株式会社サイカ
- 多重共線性 multicollinearity - 日本理学療法士学会
有益な資料(個人メモ)
- Osaka.Stan #4 Chapter 7 回帰分析の悩みどころ (7.1–7.5)
- http://www.orsj.or.jp/archive2/or63-3/or63_3_128.pdf
- https://www.juse.or.jp/src/faq/index.php?w=&t=6
- ダミー変数の作り方と注意点について - AI人工知能テクノロジー
- 多重共線性とは? 〜 概要と対応方法 〜 | 株式会社サイカ
- http://www3.u-toyama.ac.jp/kkarato/2017/edp/handout/edp-2017-0619-11.pdf
- http://ocw.nagoya-u.jp/files/254/sonoda_kougi12.pdf
- 重回帰分析