VIF(分散拡大要因)とは結局何なのか
重回帰分析を行う際、多重共線性を回避するため、あらかじめその有無をVIF(Variance inflation factor: 分散拡大要因)によって確認することか一般的かと思います。
一般的にはVIFが10を超えると多重共線性の問題が生じる恐れがあると判断し1、適切な対処が必要と言われていますが、そもそもVIFは何をどう計算して求められる値なのでしょうか。
ということで調べてみたことをまとめてみます。
ちなみに、多重共線性については過去に記事を書いているので参考までに見てみてください。
VIFとは
分散拡大要因(Variance Inflation Factor: VIF)は重回帰分析などの多変量解析で多重共線性を評価する際の指標です。分散拡大要因は多変量解析で使用している説明変数のうち1つを従属変数,その他の説明変数を説明変数とした重回帰分析の決定係数(R2)を用いて以下の式で計算されます。VIF=1/(1-R2)
ある説明変数が、それ以外の説明変数にどれだけ説明されるかを示す値がVIFです。したがって、VIFは説明変数の数だけ求められることになります(被説明変数は対象外)。
仮に説明変数Aと説明変数Bに高い相関関係があるとしましょう。この場合、説明変数Bの説明変数Aに対する説明力があるため、R2は大きくなります(たとえば0.9)。その場合のVIFは、1 / (1 - 0.9) = 10となるため、多重共線性が生じる可能性が高いと判断できます。
なおこのVIFは、x1~xiによるyへの重回帰分析で得られた当該説明変数の偏回帰係数の分散を、xj(当該説明変数)によるyへの単回帰分析で得られた偏回帰係数の分散を割ることでも計算できます2。これが分散拡大要因と言われるゆえんです。
偏回帰係数の分散が大きい=標準誤差が大きいといえます。標準誤差が大きいとt値が小さくなるため(分母が標準誤差)、t値と連動するP値も当然大きくなります。
P値が大きくなると、有意水準を超えてしまい、本来的には有意となるはずだった偏回帰係数が有意とならない事象が発生する可能性が出てきます。これがまさに多重共線性による問題の一つです。
このような問題を防ぐため、不要な説明変数を削除したり、因子分析や主成分分析によって説明変数を合成したりするなどの対処が必要となります。
参考資料
- Q23 | 統計に関するFAQ | 看護・保健系大学院生のための統計学習サイト
- http://www.econ.kyoto-u.ac.jp/~hujii/myweb/Semi%20Statistic%20Analysis%2006.pdf
- http://www.omori.e.u-tokyo.ac.jp/coretext/chapter4_vif.pdf
-
ちなみに、Pythonの統計解析ライブラリであるstatsmodelsではVIFが5を超えると標準誤差が過大となる(=結果として多重共線性の問題が生じる)ことについて指摘しています。↩