LoginSignup
7
8

More than 5 years have passed since last update.

多重共線性

Last updated at Posted at 2016-06-27

多重共線性とは

多重共線性 multicollinearity   (Weblio辞書)
 説明変数間に非常に強い相関があったり,一次従属な変数関係がある場合には,解析が不可能(「逆行列が求まりません」というエラーメッセージが出力される)であったり,たとえ結果が求まったとしてもその信頼性は低い。このような場合に多重共線性があると言われる。

 簡単にまとめると、行列は1次独立でない状態(1次従属)なら、多重共線性を持つ。

1次独立と1次従属

ベクトル$$x_1,x_2,\cdots$$

式①$$\sum_{k=1}^n a_k x_k=0$$

$a_1=0,a_2=0,\cdots,a_n=0$ がこの式の唯一の解であれば、1次独立となる。
$a_1=0,a_2=0,\cdots,a_n=0$ 以外に他の解が存在すれば、1次従属となる。

1次従属の性質と判断基準

$X=[x_1,x_2,\cdots,x_n]$ の情報行列 $t(X)*X$ の行列式は0である。

多重共線性①

式①の解が $A=[1,−\alpha,0,\cdots,0]$ となるとき、
$$x_1={\alpha}x_2$$
このパターンはよく知られている。以下の性質を持つ。
Ⅰ.$X$の情報行列 $t(X)*X$ の行列式は0である。

Ⅱ.説明ベクトル $x_1,x_2$ の相関係数の絶対値は1となる。
$$\left|cor(x_1,x_2)\right|=1$$

Ⅲ.$x_1,x_2$ が他の説明ベクトル $x_k,k\neq1,2$ との相関係数の比の絶対値は1となる。($x_1,x_2$ と $x_k$ 独立でない場合)
$$\frac{\left|cor(x_1,x_k)\right|}{\left|cor(x_2,x_k)\right|}=1$$
または、その相関係数は0である。($x_1,x_2$ と $x_k$ が独立である場合)
$$cor(x_1,x_k)=cor(x_2,x_k)=0$$

多重共線性②

式①の解が $A=[1,-\alpha_1,-\alpha_2,0,\cdots,0]$ となるとき、
$$x_1={\alpha_1}x_2+{\alpha_2}x_3$$
説明ベクトル $x_1$ が他の2つ以上の説明ベクトルで説明できる場合、性質Ⅰだけが満たされる。性質ⅡとⅢは満たされない。
Ⅰ.$X$の情報行列 $t(X)*X$ の行列式は0である。

Ⅱ.説明ベクトル $x_1,x_2$ の相関係数の絶対値は常に1ではない。
$$\left|cor(x_1,x_2)\right| = \left|\frac{cov(x_1,x_2)}{ \sqrt{var(x_1)var(x_2)} }\right| = \frac{1}{\left|\sqrt{1+\frac{{\alpha_2}^2var(x_3)}{{\alpha_1}^2 var(x_2)}}\right|} <{1}$$
明らかに、性質Ⅱが満たされない。ただし、${\alpha_2}^2var(x_3)$ が ${\alpha_1}^2var(x_2)$ に対し、無視できるなら、
$$\frac{{\alpha_2}^2var(x_3)}{{\alpha_1}^2var(x_2)}\simeq0$$
説明ベクトル $x_1,x_2$ の相関係数の絶対値はほぼ1となる。
$$\left|cor(x_1,x_2)\right|\simeq1$$
Ⅲ.性質Ⅱと同じ条件で成り立つ。

シミュレーション

完全に独立な2列ベクトル $x_2,x_3$ を作る。多重共線性①と②の性質Ⅰ〜Ⅲをチェックする。
ケース1:
多重共線性① $x_1=0.5*x_2$ で $x_1$ を作る
ケース2:
多重共線性② $x_1=0.5*x_2+0.5*x_3$ で $x_1$ を作る($x_3$の分散が無視できない)
ケース3:
多重共線性② $x_1=0.5*x_2+0.5*x_4$ で $x_1$ を作る($x_4$の分散が無視できる)
ケース4:
多重共線性を持たない $x_1=0.5*x_2+0.5*x_3$ で $x_1$ を作る ($x_3$を行列から外す)

ケース1 ケース2 ケース3 ケース4
行列式 0 8.6805e-06 -7.2958e-06 4664419
$x_2$との相関 1 0.6331 0.999988 0.6331
$x_3$との相関 0.0094 0.7799 0.0095 -
$x_4$との相関 0.0047 0.0283 -0.0203 -0.0195
$x_1,x_2$と$x_3$との相関比 1 - 1.0207 -
$x_1,x_2$と$x_4$との相関比 1 1.2669 - 0.3522

結論

性質Ⅰ
ケース1,2,3の行列式はほぼ0であるので、多重共線性を持つ。ケース4が多重共線性を持たない。
性質Ⅱ
ケース1とケース3は、$x_2$との相関係数が1に近い。
ケース2は多重共線性を持っているが、$x_2$との相関係数は1ではない。しかも、$x_3$との相関係数も1ではない。
ケース4は多重共線性を持たないが、$x_2$との相関係数はケース2と同じだ。
性質Ⅲ
ケース1とケース3は、他の説明変数列との相関係数比が1に近い。

結論は、
1.性質Ⅰが満たされる場合、多重共線性を必ず持つ。
2.多重共線性を持つ場合、性質Ⅱと性質Ⅲが必ずしも満たされない。

コード

n <- 4  # 説明変数の数
t <- 1000  #  データの数
X <- matrix(0, t, n )
X[,2] <- rep(c(1,3,6,7,1,2,3,4,5),length=t)  
X[,3] <- rep(c(3,4,6,9,2),length=t)
X[,4] <- rnorm(t,0,0.01)
X[,1] <- 0.5*X[,2]+0.5*X[,4] #  ケース1~4の条件による。
In <- t(X) %*% X  #  情報行列
det(In)  #  行列式
cor(X)  #  相関係数
cor(X)[,1]/cor(X)[,2] #  相関係数の比
7
8
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
7
8