LoginSignup
17
20

More than 3 years have passed since last update.

RでVIF統計量を算出しよう!

Last updated at Posted at 2017-12-16

VIF統計量とは・・・?

重回帰分析を行なった際に各変数に多重共線性が無いかを調べるための統計量。
各変数の相関係数も多重共線性の指標となりうるが、VIFを調べることによってそのモデルで使用される複数の変数の関係性を考慮することができる。


計算してみよう!

モデルの変数が2つの場合の計算 (モデル : a = x + y)


VIF_{xy} = \frac{1}{1-P_{xy}^2}\\
x,y ・・・ 各変数\\
P_{xy} ・・・ xとyの相関係数\\

と、そこまで難しくない。


モデルの変数が3つ以上の場合の計算 (モデル : a = x + y + z + .....)

ちょっと手計算じゃきついっす・・・


統計ソフト「R」を使う。

  • 「car」パッケージをインストールしよう Rの「パッケージとデータ」から「パッケージインストーラ」を選んで「car」パッケージをインストールする。「パッケージマネージャ」からcarをロード状態に変更。

  • 実際の計算
vif.R

#重回帰分析の結果をresultに保存
result <- lm(a ~ x + y + z)
#carパッケージを呼び出す
require(car)
#重回帰分析の変数のVIF統計量を算出
vif(result)
# x      y      z
# 1.01  2.05  2.01
#といった感じで結果が表示される

数字の見方

VIF統計量は一般的にに10以下であれば多重共線性がないとされる。理想値は2以下である。VIF統計量が10を超えた変数がある場合にはモデルからその変数を外してもう一度VIF統計量を計算するなど、モデルを再構成する必要がある。

以上!

17
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
20