No.04726 VIFについて  【Sai】 2007/11/18(Sun) 22:18

Saiです。
青木先生,以前投稿したときには丁寧にお答えいただきありがとうございました。

青木先生のHPに書いてある多重共線性を示す指標,VIFについて質問があります。
http://aoki2.si.gunma-u.ac.jp/R/tolerance.html

一 般にVIFが10以上だったなら多重共線性が生じている可能性があるということですが,説明変数の数が多い重回帰式の場合だと共線性が高くなくてもVIF が大きくなってしまうということはあるのでしょうか?なぜそのように考えたかと言いますと,VIFが重相関係数を使って計算されているからでして…。もし そうなら自由度を調整した,adjusted VIFのようなものはあるのでしょうか…?

また相関係数行列の逆行列の対角成分とは,
V1 V2
1 a b
2 c d

という相関行列があった場合d/ad-bc,a/ad-bcを指し,これがVIFだということになるのでしょうか?

統計初心者なため常識外れのことを聞いているかもしれませんが,ご容赦願います。

よろしくお願いします。

No.04728 Re: VIFについて  【青木繁伸】 2007/11/19(Mon) 09:12

> 説明変数の数が多い重回帰式の場合だと共線性が高くなくてもVIFが大きくなってしまうということはあるのでしょうか?

そんなことはありません。
なので,

> 自由度を調整した,adjusted VIFのようなものはあるのでしょうか

そんなものはありません。

> d/ad-bc

表記として間違えていますね

この計算式を中学生に示して a,b,c,d を与えても,あなたが期待する答えは返ってこないでしょう。

d/(ad-bc) でないとね。演算順序というものがあります。
この単純なことを実に多くの人が無視します。

相関係数行列ですから,a=d=1, b=c ですね。b=c=0.5 としたら,対角成分は二つとも,1/(1-0.25)=1.33333 です。

No.04730 Re: VIFについて  【Sai】 2007/11/19(Mon) 12:27

青木先生,回答および指摘ありがとうございます。

現在自分で計算中なのですが,やはりVIFの定 義式から考えるに単に説明変数が増えていくとVIFの値は増加するように思います。しかし,それが非常に微々たるもので影響は少ない,という結果になるの ではないかと予測しております。ですから増えることは増えるのではないか,という仮説を検証してみます。

またVIFの定義式を自分で展開 してみたのですが,それが重相関係数と関係しさらに逆行列の対角成分になる,ということがわからないのでとりあえず自分でVIFと重相関係数を別々に計算 してみて,それを当てはめてみます。メカニズムはわからないまでもとりあえず結果が一緒になればOKかと。

最初からそこの検証もしておくべきでした。

取り急ぎ報告でした。

No.04790 Re: VIFについて  【Sai】 2007/11/23(Fri) 22:35

卒論の中間発表などで遅れましたが検証の結果です。
以下に示すような本当に適当なデータで重回帰を行ってみました。aが従属変数,c,eが説明変数で,eはランダムに発生させました。
> h
a c e
1 1 10 1.5908665
2 2 20 -1.2608981
3 3 30 1.0396876
4 4 40 -0.1383912
5 5 50 -1.5775974
6 6 60 0.6499620
7 7 70 1.1719216
8 8 80 1.8536248
9 9 90 0.1238848

> res=glm(a~c,data=h)    #最初はcのみで
> res

Call: glm(formula = a ~ c, data = h)

Coefficients:
(Intercept) c
4.163e-16 1.000e-01

Degrees of Freedom: 8 Total (i.e. Null); 7 Residual
Null Deviance: 60
Residual Deviance: 3.944e-31 AIC: -618.3
> vif(res)
c
1          #当たり前ですが

> res=glm(a~c+e,data=h)
> res

Call: glm(formula = a ~ c + e, data = h)  #次はeも入れて解析

Coefficients:
(Intercept) c e
4.163e-16 1.000e-01 3.486e-17

Degrees of Freedom: 8 Total (i.e. Null); 6 Residual
Null Deviance: 60
Residual Deviance: 3.944e-31 AIC: -616.3
> vif(res)
c e
1.0303 1.0303    #cだけよりも少しvifが増加。もっとも,AICは増えましたが。


ちなみに

> cor(h)
a c e
a 1.0000000 1.0000000 0.1714153
c 1.0000000 1.0000000 0.1714153
e 0.1714153 0.1714153 1.0000000
でしたので,ランダムと言えどもほんの少しは相関が出てしまうようです。
よって,「従属変数に関係ない変数が増えても,ほんの少しvifは増加するが影響は微々たるものである」,という結論をしてもよいのでしょうか?


>VIFの定義式を自分で展開してみたのですが,それが重相関係数と関係しさらに逆行列の対角成分になる,ということがわからない

これは逆関数と行列を少し勉強すればわかりました。

● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る