回帰分析は相関があるとダメ?多重共線性の仕組みと回避するVIFの目安!

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です!

このコラムでは、多重共線性と呼ばれる現象を紹介します!
回帰分析を行う場合、必ず注意しないといけません。
回帰分析については、他コラム「エクセルでもできる!AI初級編!回帰分析」で紹介しているので、良ければご覧ください。

多重共線性を数式から理解する

多重共線性とは、説明変数同士の相関係数が高い場合、予測式の係数の分散が大きくなり、予測式に信頼性が無くなってしまう現象です。

このコラムでは、数式から多重共線性が発生する理由を紹介します。
まずは2種類の説明変数を使った重回帰分析の予測式から考えていきます。
$y$が目的変数、$x$が説明変数、$β$が説明変数の係数、$ε_{i}$が誤差を表します。

$$y_{i} = β_{0} + β_{1}x_{1i} + β_{2}x_{2i} + ε_{i} $$

$$ ε_{i} ~ N(0,σ^2) $$

上記の重回帰分析の予測値 \hat{y_{i}} と、実績値$y_{i}$との差である残差$e_{i}$ は下記の式で表されます。

$$ e_{i} = y_{i} – \hat{y_{i}} $$

また、残差平方和(残差を二乗した総和)$S_{e}$は下記の式で表されます。

$$ S_{e} = \displaystyle \sum_{i=1}^n e_{i}^2 = \displaystyle \sum_{i=1}^n \{y_{i} – (\hat{β_{0}} + \hat{ β_{1}} x_{1i} + \hat{β_{2}} x_{2i}) \}^2 $$

回帰分析では最小二乗法を用いて係数を推定します。
つまり、上記の残差平方和 $S_{e}$ を最小にする係数$β_{1}$、 $β_{2}$ をそれぞれ求めます。

係数を求めるため、Lagrangeの未定乗数法を使用して、残差平方和 $S_{e}$ を各係数 $β_{0}$ 、$β_{1}$、 $β_{2}$ で偏微分し、それぞれの値を0となるような方程式を構築します。

$$ \frac{ \partial S_{e}}{ \partial β_{0}} = -2 \sum_{i=1}^n \{ y_{i} – (β_{0} + β_{1}x_{i1} + β_{2}x_{i2} ) \} = 0 $$

$$ \frac{ \partial S_{e}}{ \partial β_{1}} = -2 \sum_{i=1}^n x_{i1} \{ y_{i} – (β_{0} + β_{1}x_{i1} + β_{2}x_{i2} ) \} = 0 $$

$$ \frac{ \partial S_{e}}{ \partial β_{2}} = -2 \sum_{i=1}^n x_{i2} \{ y_{i} – (β_{0} + β_{1}x_{i1} + β_{2}x_{i2} ) \} = 0 $$

上記の偏微分後の式は、下記の偏差平方和$S_{ij}$、偏差積和$S_{jy}$を用いて表すことができ、行列で表すとシンプルになります。

$$ S_{ij} = \sum_{i=1}^n (x_{ij} – \bar{x_j})^2$$

$$ S_{jy} = \sum_{i=1}^n (x_{ij} – \bar{x_j})(y_{i} – \bar{y})$$

$ S_{11}$、 $ S_{22}$ はそれぞれ $ x_{1}$ , $ x_{2}$ の偏差平方和、 $ S_{12}$ は $ x_{1}$ と $ x_{2}$ の偏差積和、 $ S_{1y}$ と $ S_{2y}$ は $ x_{1}$ と$y,$ $ x_{2}$ と$y$の偏差積和を表します。

$$ S_{11}β_{1} + S_{12}β_{2} = S_{1y} $$

$$ S_{21}β_{1} + S_{22}β_{2} = S_{2y} $$

$$ \begin{pmatrix} S_{11}&S_{12} \\ S_{12}&S_{22} \end{pmatrix} \begin{pmatrix} \hat{β_{1}} \\ \hat{ β_{2}} \end{pmatrix} = \begin{pmatrix} S_{1y} \\ S_{2y} \end{pmatrix} $$

上記の行列式から、回帰分析の係数は下記のように表されます。

$$ \begin{pmatrix} \hat{β_{1}} \\ \hat{ β_{2}} \end{pmatrix} = \begin{pmatrix} S_{11}&S_{12} \\ S_{12}&S_{22} \end{pmatrix}^{-1} \begin{pmatrix} S_{1y} \\ S_{2y} \end{pmatrix} = \frac{1}{S_{11} S_{22}- S_{12}^2} \begin{pmatrix} S_{11}&S_{12} \\ S_{12}&S_{22} \end{pmatrix} \begin{pmatrix} S_{1y} \\ S_{2y} \end{pmatrix} $$

上記の式から、回帰分析の係数を推定する式が完成です。
最後に、相関係数 r_{x1x2} との関係を考えて、 $ \frac{1}{S_{11} S_{22}- S_{12}^2} = 0 $ になる場合を考えます。

$$ \frac{1}{S_{11} S_{22}- S_{12}^2} = 0 $$

$$ S_{11} S_{22}- S_{12}^2 = 0$$

$$ S_{11} S_{22} = S_{12}^2 $$

$$ \frac{S_{12}^2}{S_{11} S_{22}} = 1$$

$$ (\frac{S_{12}}{\sqrt{S_{11} S_{22}}})^2 = 1$$

$$ r_{x1x2}^{2} = 1$$

$$ r_{x1x2} = 1$$

つまり、説明変数同士の相関係数が1の場合は、分母が0になるため、逆行列を求めることが出来ないということを表します。
これが多重共線性になります。

また、相関係数が1に近ければ近いほど、分母が0に近くなるため、推定する係数のばらつきは大きくなり、回帰分析の信頼性が低くなるということが分かります。

多重共線性が発生しているかどうかを判断する指標 VIF

多重共線性が発生するデメリットと、発生の原因を回帰分析の式から紹介しました。
しかし、多重共線性が発生しているかどうかを定量的に判断することは不可能です。
どのくらいのばらつきがビジネス上問題が発生するかどうかを定義することが出来ないからです。

そのため、一般的に使われる参考指標として、VIF(Variance Inflation Factor)という指標が存在します。

$$ VIF = \frac{1}{1 – r_{x1x2}^{2}} $$

これは、多重共線性を検出するための指標の1つと言われており、VIFが10以上の場合は多重共線性が発生すると言われています。
説明変数同士の相関係数を使用した指標のため、相関係数が一定以上の場合は多重共線性になっている可能性があるという解釈になります。
多重共線性が確実に起きていないと言い切れる指標でないことに注意して使ってください。

まとめ

  • 多重共線性
    • 説明変数同士の相関係数が高い場合、 予測式の係数を求める際の分散が大きくなり、予測式に信頼性が無くなってしまう現象
    • 説明変数同士の相関係数が1の場合は、分母が0になるため、逆行列を求めることが出来ないことから、係数を求めることができない
  • VIF(Variance Inflation Factor)
    • 多重共線性を検出するために、一般的に使われる参考指標の1つ
    • VIFが10以上の場合は多重共線性が発生すると判断されることが多い
    • 多重共線性が確実に発生していないと言い切れる指標ではない
    • 多重共線性が発生しているかどうかを定量的に判断することは不可能

回帰分析は相関があるとダメ?多重共線性の仕組みと回避するVIFの目安!” に対して1件のコメントがあります。

コメントは受け付けていません。