📘

多重共線性の検出と特徴量の選択

 

はじめに

データ分析を行う際、特に線形回帰モデルを使って予測や回帰係数の解釈を重視する場合に、多重共線性という問題がよく起こります。この状態では、回帰係数が極端な値になったり、不安定になったりするためモデルの予測精度や解釈が難しくなることがあります。
「どの特徴量を選択すればよいのか?」を判断する基準として VIF という基準があります。
VIFの値を参考にすることで、他の特徴量と情報が重複しすぎている変数を特定し、選択する変数の洗い出しを行うことで安定したモデルを構築できるようになります。
 
💡
多重共線性とは?
多重共線性とは、説明変数(予測のために使う特徴量)同士に強い相関がある状態のことを指します。
線形モデルなどで各説明変数に強い相関関係がある場合、回帰係数が不安定化し分析結果の解釈が難しくなることがあります。サンプル数やモデルの設定によっては、結果的に予測精度が下がる場合もありますが、多重共線性の問題点は「係数の推定や解釈が不安定になる」ことだと考えてください。
詳しくは、次元削減 - ごちきか をご覧ください。
💡
VIFとは?
多重共線性問題を回避するには相関が強い特徴量を説明変数から外すことが主な手法として挙げられますが、どの説明変数を外すかを決める基準が別途必要となります。その代表的な基準としてVIF(Variance Inflation Factor)があります。
VIFとは、ある変数が、ほかの変数とどのくらい強い関係を持っているかを数値で示したものであり、VIFの値が大きいとその特徴量は説明変数から除外する候補となります。また、一般的に使用される閾値としては5や10などが挙げられ、「ほかの変数と強くかぶっているかもしれない」と判断する目安として利用されることが多いです。
こちらも詳しくは、次元削減 - ごちきか をご覧ください。

多重共線性の確認

多重共線性はカード詳細画面のプロパティタブから確認することができます。
VIFは設定した各変数により自動で計算され、プロパティタブ下部にある多重共線性の検出の「VIFを表示」をクリックすると、特徴量ごとのVIFの値が降順で表示されます。
設定している変数が変わるたびにその変数間でVIFが再計算されます。

VIFに基づく特徴量選択

VIFの値が大きい場合、必ずその特徴量を除外する必要はあるのでしょうか?
VIFが他の特徴量の値より極端に大きい特徴量は多重共線性の原因である可能性が高いので、外した方が予測精度や因果分析の精度が向上する可能性があります。一方で、その特徴量が個人の経験上予測に寄与する可能性が高かったりする場合逆に精度が低下してしまう可能性もあります。
したがって、現場のドメイン知識や個人の経験から「この変数は重要だ」とわかっているなら、あえて残す選択肢もあることに注意しましょう。個人の経験といったデータに関する知見やデータ間の相関係数を表示する相関行列ヒートマップ(詳しくは📘データ可視化 - 相関行列 を参照)などと組み合わせて、説明変数を選択していくのが推奨されます。
実際の特徴量選択の手順としては、「相関行列ヒートマップで全体を概観 → VIFを確認 → 多重共線性の疑いがある変数を除外」を繰り返し、現場の知見とあわせて変数選択を検討します。

まとめ

VIFを確認しながら特徴量を選択するメリットとしては、
  1. 多重共線性の少ない安定したモデルを得やすい
  1. 各変数の影響度をより正確に把握しやすい
  1. モデルの解釈や現場活用の際の説得力が高まる
などが考えられ、変数選択を行う際にVIFも合わせて確認することで、「どの特徴量を残すべきか」「どれが重複しているか」が見極めやすくなります。