*disclaimer
1197995
VIF: Variance Inflation Factor
- 10以上は多重共線性があり、重回帰分析では、よくないといわれている。
- つまり、相関係数が 0.95以上もあるわけで、これでは、二つの変数がほぼ同じものと言わざるを得ない。それにより変数の係数(パラメータ)のバラツキが大きくなって(影響力がインフレ状態)、結果を正しく予測できなくなる。
| 相関係数 | VIF |
|---|---|
| 0.1 | 1.01 |
| 0.2 | 1.04 |
| 0.3 | 1.10 |
| 0.4 | 1.19 |
| 0.5 | 1.33 |
| 0.6 | 1.56 |
| 0.7 | 1.96 |
| 0.8 | 2.78 |
| 0.9 | 5.26 |
| 0.91 | 5.82 |
| 0.92 | 6.51 |
| 0.93 | 7.40 |
| 0.94 | 8.59 |
| 0.95 | 10.26 |
| 0.96 | 12.76 |
| 0.97 | 16.92 |
| 0.98 | 25.25 |
| 0.99 | 50.25 |
vif()
- carライブラリーに入っている vif()関数をつかうか、
自分で計算
- 相関係数を出しておいて、
- それをもとに下の式に入れて計算
VIF = 1/(1 - 相関係数^2)
- 3つ以上の変数があっても、cor()で相関を出したものをそのまま式に入れればでてくる。
> head(natural.essay)
ID rator unnatural personal demonst connective cohesion coherence reader
1 1 1 2 1 1 1 1 1 1
2 2 1 3 2 2 1 2 3 1
3 3 1 1 1 1 1 1 2 1
4 4 1 2 2 2 1 2 1 1
5 5 1 3 2 2 2 2 1 1
6 6 1 3 4 2 3 3 2 2
> essay.cor <- cor(natural.essay[4:9])
> essay.cor
personal demonst connective cohesion coherence reader
personal 1.0000000 0.3752549 0.2637466 0.3880668 0.3335803 0.3812672
demonst 0.3752549 1.0000000 0.4541083 0.6758945 0.5271825 0.4814715
connective 0.2637466 0.4541083 1.0000000 0.6784362 0.5172866 0.5457911
cohesion 0.3880668 0.6758945 0.6784362 1.0000000 0.6797344 0.6466878
coherence 0.3335803 0.5271825 0.5172866 0.6797344 1.0000000 0.7156233
reader 0.3812672 0.4814715 0.5457911 0.6466878 0.7156233 1.0000000
> essay.vif <- 1/(1-essay.cor^2)
> essay.vif
personal demonst connective cohesion coherence reader
personal Inf 1.163895 1.074763 1.177296 1.125209 1.170090
demonst 1.163895 Inf 1.259786 1.841056 1.384891 1.301769
connective 1.074763 1.259786 Inf 1.852798 1.365347 1.424274
cohesion 1.177296 1.841056 1.852798 Inf 1.858870 1.718819
coherence 1.125209 1.384891 1.365347 1.858870 Inf 2.049670
reader 1.170090 1.301769 1.424274 1.718819 2.049670 Inf
順序ロジスティック回帰では、vif()は使えないので、lmer()などで置き換えてみて確認するようだ。
- 交互作用の項目もモデルから除いたものを使わないと膨らんでしまう。
参考ページ
https://best-biostatistics.com/correlation_regression/multi-co.html
https://sugiura-ken.org/wiki/