多重共線性の除去手法まとめ
多重共線性って?
多重共線性(Multicollinearity)は、複数の独立変数が強い相関を持っている場合に発生します。その結果として、予測結果に悪影響を与えてくれる厄介な性質です。
例として次のような回帰モデルを考えます。
多重共線性が存在するとは
のような相関の高い(他の独立変数の線型結合で表せる)独立変数を持っていることをいいます。また、完全にこのような形でなくとも近似的に相関が高い場合でも多重共線性が生じます。
これにより、例えば以下の問題点を生じさせます。
- 係数の不安定性: 変数の係数が大きく変動し、信頼性が低くなることがあります。
- 解釈の困難さ: どの変数が結果にどのように影響を与えているかが不明瞭になります。
- 予測値の標準誤差が大きくなる: 予測の精度が低下し、統計的に有意な結果が得られにくくなります。
多重共線性があると、回帰係数
ここで
多重共線性の例
四季(春、夏、秋、冬)のデータを使って、1年の気温を予測しようとしているとします。
- 春があるかどうか: 1(春)または 0(春でない)
- 夏があるかどうか: 1(夏)または 0(夏でない)
- 秋があるかどうか: 1(秋)または 0(秋でない)
- 冬があるかどうか: 1(冬)または 0(冬でない)
このようなデータ表現をしたとします。
日付 | 春 | 夏 | 秋 | 冬 | 気温 |
---|---|---|---|---|---|
2023-02-14 | 1 | 0 | 0 | 0 | 15 |
2023-03-14 | 1 | 0 | 0 | 0 | 17 |
2023-03-15 | 1 | 0 | 0 | 0 | 13 |
2023-06-25 | 0 | 1 | 0 | 0 | 30 |
2023-10-15 | 0 | 0 | 1 | 0 | 17 |
2023-12-26 | 0 | 0 | 0 | 1 | 5 |
しかし、このデータは以下と同じ情報を持っています。春夏秋の全てが0であれば、冬であるという表現をしています。
日付 | 春 | 夏 | 秋 | 気温 |
---|---|---|---|---|
2023-02-14 | 1 | 0 | 0 | 15 |
2023-03-14 | 1 | 0 | 0 | 17 |
2023-03-15 | 1 | 0 | 0 | 13 |
2023-06-25 | 0 | 1 | 0 | 30 |
2023-10-15 | 0 | 0 | 1 | 17 |
2023-12-26 | 0 | 0 | 0 | 5 |
1個目のデータ表現では、4つのカテゴリを表すのに、4つの列を使っています。しかし上述のように、実は3つの列(例えば春夏秋)だけで同じ情報を表すことができます。
この例では、春夏秋の列を残すのであれば、冬列はすでに提供された、同じ情報を与えてくれるだけのものになってしまい、多重共線性を発生させます。
多重共線性の除去手法
相関の高い変数の削除
多重共線性が存在する場合、その独立変数は重複している情報を持っている可能性があります。よって、独立変数同士で相関の高いものから重要度の低い変数を削除することでモデルの安定性を向上させます。
次のような回帰モデルを考えます。
ここで、もし
VIF値の高い変数を削除
VIFは、各独立変数が他の独立変数との間でどれだけの分散持っているかを評価する指標です。具体的には、VIFはある変数
VIFは次の式で計算されます。
ここで、
つまり、他の独立変数
主成分分析
主成分分析(PCA)は多次元データを簡素化するための統計手法で、相関のある多くの変数を少数の「主成分」に変換します。主成分は、元の変数の線形結合で表され、データの分散を大きくするように作成されます。
元のデータが次のような形で与えられているとします。
これらを以下のように主成分に変換します。
ここで、主成分
Ridge回帰
Ridge回帰は、多重共線性を持つデータに対処するための正則化手法の1つです。通常の回帰モデルは、多重共線性があると、回帰係数が不安定になり、大きく変動することを説明しましたが、Ridge回帰では、ペナルティ項を追加して、回帰係数が不必要に大きくなるのを防ぎます。
通常の回帰の最小化問題は次のように表されます。
Ridge回帰では、これにペナルティ項を追加します。
まとめ
Garbage in, garbage outには気をつけましょうね〜というお話でした。
Discussion