17.1 다중공선성
지금까지 사용하여 온 선형회귀모형
y = X β + ϵ y=X\beta + \epsilon y = X β + ϵ
은 회귀계수 β \beta β 를 최소제곱법을 사용하여
b = ( X ′ X ) − 1 X ′ y b=(X'X)^{-1}X'y b = ( X ′ X ) − 1 X ′ y
로서 추정하고 이를 이용하여 회귀분석을 수행하였다. 그러나 독립변수들 간 상관관계가 커지면 최소제곱법 사용에 문제가 발생할 수 있는데 가장 대표적인 문제가 다중공선성 문제이다.
다중공선성이란 X X X 행렬에서 하나의 열이 다른 한 열, 또는 여러 열과 선형결합의 관계를 맺고 있는 상태를 말한다.
만약 독립변수들 간에 완전한 다중공선성 관계라면 X X X 의 계수는 p + 1 p+1 p + 1 보다 작을 것이며, ( X ′ X ) − 1 (X'X)^{-1} ( X ′ X ) − 1 이 존재하지 않아서 b = ( X ′ X ) − 1 X ′ y b=(X'X)^{-1}X'y b = ( X ′ X ) − 1 X ′ y 를 구할 수 없을 것이다.
가까운 다중공선성의 관계에 있더라도 이론상 ( X ′ X ) − 1 (X'X)^{-1} ( X ′ X ) − 1 이 존재하나 실제로 구하기 어려움
\\[40pt]
(1) 가까운 다중공선성
가까운 다중공선성의 관계가 있는 경우 어려움을 파악하기 위하여 다음의 간단한 경우를 알아보자.
(1) 변수가 표준화 되어있는 경우
y i = β 1 x 1 i + β 2 x 2 i + ϵ i ϵ i ∼ N ( 0 , σ 2 ) , i = 1 , 2 , … , n \begin{aligned} y_i &= \beta_1x_{1i}+\beta_2x_{2i}+\epsilon_i \\[10pt] \epsilon_i &\sim N(0,\sigma^2),\ i=1,2,\ldots,n \end{aligned} y i ϵ i = β 1 x 1 i + β 2 x 2 i + ϵ i ∼ N ( 0 , σ 2 ) , i = 1 , 2 , … , n
과 같은 선형모형을 가정하고, 이 변수들이 모두 표준화된 변수라고 하자. 즉,
∑ y i = ∑ x 1 i = ∑ x 2 i = 0 ∑ y i 2 = ∑ x 1 i 2 = ∑ x 2 i 2 = 1 \begin{aligned} \sum y_i = \sum x_{1i} = \sum x_{2i} = 0 \\[10pt] \sum y_i^2 = \sum x_{1i}^2 = \sum x_{2i}^2 = 1 \end{aligned} ∑ y i = ∑ x 1 i = ∑ x 2 i = 0 ∑ y i 2 = ∑ x 1 i 2 = ∑ x 2 i 2 = 1
이 성립한다고 하자. 이런 경우에는 절편향 β 0 \beta_0 β 0 가 필요없다. 위 회귀모형의 X ′ X X'X X ′ X 와 X ′ y X'y X ′ y 는
X ′ X = [ x 11 ⋯ x 1 n x 21 ⋯ x 2 n ] ⋅ [ x 11 x 21 ⋮ ⋮ x 1 n x 2 n ] = [ ∑ x 1 i 2 ∑ x 1 i x 2 i ∑ x 2 i x 1 i ∑ x 2 i 2 ] = [ 1 r 12 r 12 1 ] X ′ y = [ x 11 ⋯ x 1 n x 21 ⋯ x 2 n ] ⋅ [ y 1 ⋮ y n ] = [ ∑ x 1 i y i ∑ x 2 i y i ] = [ r 1 y r 2 y ] \begin{aligned} X'X &= \begin{bmatrix} x_{11} & \cdots & x_{1n} \\[10pt] x_{21} & \cdots & x_{2n} \end{bmatrix} \cdot \begin{bmatrix} x_{11} & x_{21} \\[10pt] \vdots & \vdots \\[10pt] x_{1n} & x_{2n} \end{bmatrix} =\begin{bmatrix} \sum x_{1i}^2 & \sum x_{1i}x_{2i} \\[10pt] \sum x_{2i}x_{1i} & \sum x_{2i}^2 \end{bmatrix} =\begin{bmatrix} 1 & r_{12} \\[10pt] r_{12} & 1 \end{bmatrix} \\[30pt] X'y &= \begin{bmatrix} x_{11} & \cdots & x_{1n} \\[10pt] x_{21} & \cdots & x_{2n} \end{bmatrix} \cdot \begin{bmatrix} y_{1} \\[10pt] \vdots \\[10pt] y_{n} \end{bmatrix} =\begin{bmatrix} \sum x_{1i}y_i \\[10pt] \sum x_{2i}y_i \end{bmatrix} =\begin{bmatrix} r_{1y} \\[10pt] r_{2y} \end{bmatrix} \end{aligned} X ′ X X ′ y = ⎣ ⎢ ⎡ x 1 1 x 2 1 ⋯ ⋯ x 1 n x 2 n ⎦ ⎥ ⎤ ⋅ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 1 ⋮ x 1 n x 2 1 ⋮ x 2 n ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎡ ∑ x 1 i 2 ∑ x 2 i x 1 i ∑ x 1 i x 2 i ∑ x 2 i 2 ⎦ ⎥ ⎤ = ⎣ ⎢ ⎡ 1 r 1 2 r 1 2 1 ⎦ ⎥ ⎤ = ⎣ ⎢ ⎡ x 1 1 x 2 1 ⋯ ⋯ x 1 n x 2 n ⎦ ⎥ ⎤ ⋅ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ y 1 ⋮ y n ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎡ ∑ x 1 i y i ∑ x 2 i y i ⎦ ⎥ ⎤ = ⎣ ⎢ ⎡ r 1 y r 2 y ⎦ ⎥ ⎤
이 되며, r 12 r_{12} r 1 2 는 변수 x 1 x_1 x 1 와 x 2 x_2 x 2 간의 표본상관계수를 의미하며, r i y r_{iy} r i y 는 변수 x i x_i x i 와 y i y_i y i 간의 표본상관계수이다.
절편이 있는 선형회귀모형의 표본상관계수는 다음과 같기 때문에
r x y = ∑ ( x 1 i − x ˉ 1 ) ( x 2 i − x ˉ 2 ) ∑ ( x 1 i − x ˉ 1 ) 2 ∑ ( x 2 i − x ˉ 2 ) 2 r_{xy}=\dfrac{\sum(x_{1i}-\bar{x}_1)(x_{2i}-\bar{x}_2)}{\sum(x_{1i}-\bar{x}_1)^2\sum(x_{2i}-\bar{x}_2)^2} r x y = ∑ ( x 1 i − x ˉ 1 ) 2 ∑ ( x 2 i − x ˉ 2 ) 2 ∑ ( x 1 i − x ˉ 1 ) ( x 2 i − x ˉ 2 )
표준화된 변수의 표준화상관계수는
r x y = ∑ ( x 1 i − 0 ) ( x 2 i − 0 ) ∑ ( x 1 i − 0 ) 2 ∑ ( x 1 i x 2 i − 0 ) 2 = ∑ x 1 i x 2 i r_{xy}=\dfrac{\sum(x_{1i}-0)(x_{2i}-0)}{\sum(x_{1i}-0)^2\sum(x_{1i}x_{2i}-0)^2}=\sum x_{1i}x_{2i} r x y = ∑ ( x 1 i − 0 ) 2 ∑ ( x 1 i x 2 i − 0 ) 2 ∑ ( x 1 i − 0 ) ( x 2 i − 0 ) = ∑ x 1 i x 2 i
이제 β 1 \beta_1 β 1 과 β 2 \beta_2 β 2 의 최소제곱추정량 b 1 b_1 b 1 과 b 2 b_2 b 2 를 구하면
b = [ b 1 b 2 ] = ( X ′ X ) − 1 X ′ y = [ 1 1 − r 12 2 − r 12 1 − r 12 2 − r 12 1 − r 12 2 1 1 − r 12 2 ] ⋅ [ r 1 y r 2 y ] = [ 1 1 − r 12 2 ( r 2 y − r 12 r 1 y ) 1 1 − r 12 2 ( r 2 y − r 12 r 1 y ) ] \begin{aligned} b=\begin{bmatrix} b_{1} \\[10pt] b_{2} \end{bmatrix} &= (X'X)^{-1}X'y \\[20pt] &= \begin{bmatrix} \dfrac{1}{1-r_{12}^2} & \dfrac{-r_{12}}{1-r_{12}^2} \\[10pt] \dfrac{-r_{12}}{1-r_{12}^2} & \dfrac{1}{1-r_{12}^2} \end{bmatrix} \cdot \begin{bmatrix} r_{1y} \\[10pt] r_{2y} \end{bmatrix} \\[30pt] &= \begin{bmatrix} \dfrac{1}{1-r_{12}^2}(r_{2y}-r_{12}r_{1y}) \\[10pt] \dfrac{1}{1-r_{12}^2}(r_{2y}-r_{12}r_{1y}) \end{bmatrix} \end{aligned} b = ⎣ ⎢ ⎡ b 1 b 2 ⎦ ⎥ ⎤ = ( X ′ X ) − 1 X ′ y = ⎣ ⎢ ⎢ ⎢ ⎡ 1 − r 1 2 2 1 1 − r 1 2 2 − r 1 2 1 − r 1 2 2 − r 1 2 1 − r 1 2 2 1 ⎦ ⎥ ⎥ ⎥ ⎤ ⋅ ⎣ ⎢ ⎡ r 1 y r 2 y ⎦ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ 1 − r 1 2 2 1 ( r 2 y − r 1 2 r 1 y ) 1 − r 1 2 2 1 ( r 2 y − r 1 2 r 1 y ) ⎦ ⎥ ⎥ ⎥ ⎤
이 되며, 이 추정량들의 분산은 Var ( b ) = ( X ′ X ) − 1 σ 2 \text{Var}(b)=(X'X)^{-1}\sigma^2 Var ( b ) = ( X ′ X ) − 1 σ 2 의 공식으로부터
[ Var ( b 1 ) C o v ( b 1 , b 2 ) C o v ( b 1 , b 2 ) Var ( b 2 ) ] = [ 1 1 − r 12 2 − r 12 1 − r 12 2 − r 12 1 − r 12 2 1 1 − r 12 2 ] σ 2 \begin{bmatrix} \text{Var}(b_1) & Cov(b_1,b_2) \\[10pt] Cov(b_1,b_2) & \text{Var}(b_2) \end{bmatrix} = \begin{bmatrix} \dfrac{1}{1-r_{12}^2} & \dfrac{-r_{12}}{1-r_{12}^2} \\[10pt] \dfrac{-r_{12}}{1-r_{12}^2} & \dfrac{1}{1-r_{12}^2} \end{bmatrix}\sigma^2 ⎣ ⎢ ⎡ Var ( b 1 ) C o v ( b 1 , b 2 ) C o v ( b 1 , b 2 ) Var ( b 2 ) ⎦ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ 1 − r 1 2 2 1 1 − r 1 2 2 − r 1 2 1 − r 1 2 2 − r 1 2 1 − r 1 2 2 1 ⎦ ⎥ ⎥ ⎥ ⎤ σ 2
이 되며,
Var ( b i ) = σ 2 1 − r 12 2 , i = 1 , 2 \text{Var}(b_i)=\dfrac{\sigma^2}{1-r_{12}^2},\ i=1,\ 2 Var ( b i ) = 1 − r 1 2 2 σ 2 , i = 1 , 2
암을 알 수 있다. 따라서 x 1 x_1 x 1 과 x 2 x_2 x 2 간의 상관관계가 커서 ∣ r 12 ∣ = 1 |r_{12}|=1 ∣ r 1 2 ∣ = 1 에 가까우면 Var ( b i ) \text{Var}(b_i) Var ( b i ) 의 분모는 0에 가까운 값이 되며 따라서 b i b_i b i 의 분산은 매우 커진다. 즉, b 1 b_1 b 1 과 b 2 b_2 b 2 는 β 1 \beta_1 β 1 과 β 2 \beta_2 β 2 의 추정량으로 믿을 만한 것이 되지 못한다.
회귀계수 β i \beta_i β i 의 신뢰구간을 구하기 위해 σ 2 \sigma^2 σ 2 의 불편추정량 M S E MSE M S E 를 이용하여 100 ( 1 − α ) % 100(1-\alpha)\% 1 0 0 ( 1 − α ) % 신뢰구간은
b i ± t ( n − 2 − 1 ; α / 2 ) M S E 1 − r 12 2 b_i \pm t(n-2-1;\alpha/2)\sqrt{\dfrac{MSE}{1-r_{12}^2}} b i ± t ( n − 2 − 1 ; α / 2 ) 1 − r 1 2 2 M S E
으로 얻어지며, M S E / ( 1 − r 12 2 ) MSE/(1-r_{12}^2) M S E / ( 1 − r 1 2 2 ) 의 값이 대단히 커지면 신뢰구간의 폭이 매우 커져서 신뢰구간은 의미없는 구간 추정이 될 것이다.
\\[30pt]
(2) 절편이 있는 일반적인 선형회귀모형
다음으로는 절편과 p p p 개의 독립변수를 가지고 있는 일반적인 선형회귀모형
y = X β + ϵ , ϵ ∼ N ( 0 , I σ 2 ) y=X\beta+\epsilon,\quad \epsilon\sim N(0,I\sigma^2) y = X β + ϵ , ϵ ∼ N ( 0 , I σ 2 )
에서 독립변수들간에 상관관계가 높은 경우에 어떠한 현상이 생기는가를 보자. Var ( b ) = ( X ′ X ) − 1 σ 2 \text{Var}(b)=(X'X)^{-1}\sigma^2 Var ( b ) = ( X ′ X ) − 1 σ 2 의 관계로부터(각 분산은 대각행에 있으므로), 정리1.41 을 이용하여 λ i \lambda_i λ i 들이 X ′ X X'X X ′ X 의 고유값일 때
∑ i = 0 p Var ( b i ) = σ 2 tr [ ( X ′ X ) − 1 ] = σ 2 ∑ i = 0 p λ i − 1 \sum_{i=0}^{p}\text{Var}(b_i)=\sigma^2\text{tr}[(X'X)^{-1}]=\sigma^2\sum_{i=0}^{p}\lambda_i^{-1} i = 0 ∑ p Var ( b i ) = σ 2 tr [ ( X ′ X ) − 1 ] = σ 2 i = 0 ∑ p λ i − 1
이 성립한다. 그런데 만약 x i x_i x i 들 간에 완전히 가까운 다중공선성이 있으면 행렬 X ′ X X'X X ′ X 는 거의 비정칙성을 갖게 되며, 고유치 중에서 제일 작은 것은 거의 0에 가까워진다. 따라서 ∑ i = 0 p Var ( b i ) \sum_{i=0}^{p}\text{Var}(b_i) ∑ i = 0 p Var ( b i ) 는 매우 커지며, 최소제곱추정량 b i b_i b i 의 사용에 문제점이 생기게 되는 것이다.
tr ( A ) = ∑ i = 1 n λ i tr ( A ′ A ) = ∑ i = 1 n λ i 2 tr ( A − 1 ) = ∑ i = 1 n λ i − 1 ∣ A ∣ = λ 1 λ 2 … λ n tr ( A ) = r ( A ) if only idempo. \begin{aligned} \text{tr}(A) & =\sum_{i=1}^{n}\lambda_i \\[15pt] \text{tr}(A'A) &= \sum_{i=1}^{n}\lambda_i^2 \\[15pt] \text{tr}(A^{-1}) &= \sum_{i=1}^{n}\lambda_i^{-1} \\[15pt] |A| &= \lambda_1\lambda_2\ldots\lambda_n \\[15pt] \text{tr}(A) &= r(A)\quad \text{if only idempo.} \end{aligned} tr ( A ) tr ( A ′ A ) tr ( A − 1 ) ∣ A ∣ tr ( A ) = i = 1 ∑ n λ i = i = 1 ∑ n λ i 2 = i = 1 ∑ n λ i − 1 = λ 1 λ 2 … λ n = r ( A ) if only idempo.
\\[40pt]
(2) 다중공선성 판단 기준
다중공선성이 있는지 확인하는 방법으로 다음 두가지 방법이 대표적이다.
행렬 X ′ X X'X X ′ X 의 고유값이 0 이거나 또는 0에 가까운 값
V I F ≥ 10 VIF \ge 10 V I F ≥ 1 0
두번째 방법에 대해 알아보자. 선형회귀모형의 X X X 행렬이 n × ( k + 1 ) n\times(k+1) n × ( k + 1 ) 의 크기로 계수가 k + 1 k+1 k + 1 이고 표준화되어 있다고 하자. 즉,
x 0 j = 1 , j = 1 , 2 , … , n ∑ x i j = 0 , ∑ x i j 2 = 1 , i = 1 , 2 , … , p x_{0j} = 1,\ j=1,2,\ldots,n \\[10pt] \sum x_{ij}=0,\quad \sum x_{ij}^2=1,\ i=1,2,\ldots,p x 0 j = 1 , j = 1 , 2 , … , n ∑ x i j = 0 , ∑ x i j 2 = 1 , i = 1 , 2 , … , p
로 되어있다. β \beta β 의 최소제곱추정량은 b = ( X ′ X ) − 1 X ′ y b=(X'X)^{-1}X'y b = ( X ′ X ) − 1 X ′ y 이며 E ( b i ) = β i E(b_i)=\beta_i E ( b i ) = β i 가 성립되고
Var ( b i ) = c i i σ 2 , i = 1 , 2 , … , p \text{Var}(b_i)=c_{ii}\sigma^2,\ i=1,2,\ldots,p Var ( b i ) = c i i σ 2 , i = 1 , 2 , … , p
이다. 여기서 c i i c_{ii} c i i 는 행렬 ( X ′ X ) = C (X'X)=C ( X ′ X ) = C 의 i + 1 i+1 i + 1 번째 대각선상의 값이다. X X X 행렬을
X = [ x i , X i ∗ ] X=[x_i,\ X_i^*] X = [ x i , X i ∗ ]
으로 나누어 보자. 여기서 x i x_i x i 는 X X X 행렬의 i i i 번째 열이고, X i ∗ X_i^* X i ∗ 는 x i x_i x i 를 뺀 X X X 행렬의 나머지이다. 그러면
C = ( X ′ X ) − 1 = ( [ x i X i ∗ ] [ x i X i ∗ ] ) − 1 = [ x i ′ x i x i ′ X i ∗ X i ∗ ′ x i X i ∗ ′ X i ∗ ] − 1 C=(X'X)^{-1}= \left(\begin{bmatrix} x_i \\[10pt] X_i^* \end{bmatrix} \begin{bmatrix} x_i & X_i^* \end{bmatrix}\right)^{-1}= \begin{bmatrix} x_i'x_i & x_i'X_i^* \\[10pt] X_i^*{'}x_i & X_i^*{'}X_i^* \end{bmatrix}^{-1} C = ( X ′ X ) − 1 = ⎝ ⎜ ⎛ ⎣ ⎢ ⎡ x i X i ∗ ⎦ ⎥ ⎤ [ x i X i ∗ ] ⎠ ⎟ ⎞ − 1 = ⎣ ⎢ ⎡ x i ′ x i X i ∗ ′ x i x i ′ X i ∗ X i ∗ ′ X i ∗ ⎦ ⎥ ⎤ − 1
이므로 c i i c_{ii} c i i 는
c i i = ( x i ′ x i − x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i ) − 1 c_{ii}=(x_i'x_i-x_i'X_i^*(X_i^*{'}X_i^*)^{-1}X_i^*{'}x_i)^{-1} c i i = ( x i ′ x i − x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i ) − 1
가 된다.
[ A B C D ] − 1 = [ ( A − B D − 1 C ) − 1 − ( A − B D − 1 C ) − 1 B D − 1 − D − 1 C ( A − B D − 1 C ) − 1 D − 1 + D − 1 C ( A − B D − 1 C ) − 1 B D − 1 ] . \begin{bmatrix} A & B \\ C & D \end{bmatrix}^{-1} = \begin{bmatrix} (A - B D^{-1} C)^{-1} & -(A - B D^{-1} C)^{-1} B D^{-1} \\ -D^{-1} C (A - B D^{-1} C)^{-1} & D^{-1} + D^{-1} C (A - B D^{-1} C)^{-1} B D^{-1} \end{bmatrix}. [ A C B D ] − 1 = [ ( A − B D − 1 C ) − 1 − D − 1 C ( A − B D − 1 C ) − 1 − ( A − B D − 1 C ) − 1 B D − 1 D − 1 + D − 1 C ( A − B D − 1 C ) − 1 B D − 1 ] .
x i x_i x i 를 종속변수로 하고, 나머지 p p p 개의 독립변수에 대하여 회귀방정식을 적합시킬 때 얻어지는 결정계수를 R i 2 R_i^2 R i 2 이라 하자. 즉 x i x_i x i 를 제외한 설명변수들이 x i x_i x i 를 얼마나 잘 설명해주는지 확인하는 계수이다. 그러면
R i 2 = x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i x i ′ x i − ( ∑ j = 1 n x i j ) 2 / n , i ≠ 0 R_i^2=\dfrac{x_i'X_i^*(X_i^*{'}X_i^*)^{-1}X_i^*{'}x_i}{x_i'x_i-(\sum_{j=1}^{n}x_{ij})^2/n},\quad i\neq 0 R i 2 = x i ′ x i − ( ∑ j = 1 n x i j ) 2 / n x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i , i = 0
이 되는데 X X X 행렬이 표준화되었으므로 위의 R i 2 R_i^2 R i 2 공식의 분모는 1이다. 따라서
c i i = ( x i ′ x i − x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i ) − 1 = ( 1 − R i 2 ) − 1 \begin{aligned} c_{ii} &= (x_i'x_i-x_i'X_i^*(X_i^*{'}X_i^*)^{-1}X_i^*{'}x_i)^{-1} \\[10pt] &= (1-R_i^2)^{-1} \end{aligned} c i i = ( x i ′ x i − x i ′ X i ∗ ( X i ∗ ′ X i ∗ ) − 1 X i ∗ ′ x i ) − 1 = ( 1 − R i 2 ) − 1
로 간략히 표현되며,
Var ( b i ) = 1 1 − R i 2 \text{Var}(b_i)=\dfrac{1}{1-R_i^2} Var ( b i ) = 1 − R i 2 1
이다. 만약 x i x_i x i 가 X i ∗ X_i^* X i ∗ 의 각 열과 직교 (orthogonal)한다면, R i 2 = 0 R_i^2=0 R i 2 = 0 이며, 만약 X i ∗ X_i^* X i ∗ 의 열들의 선형조합으로 거의 표현할 수 있다면 R i 2 = 1 R_i^2=1 R i 2 = 1 에 가깝게 된다. 후자의 경우는 X X X 행렬의 열들간 완전히 가까운 종속관계가 존재한다고 볼 수 있다. 따라서 R i 2 R_i^2 R i 2 을 모든 i i i 에 대하여 구한 후 이 중에서 최대값을 뽑았을 때 이 값이 1이면 완전한 다중공선성이 존재하고, 이 값이 1에 가까우면 완전에 가까운 다중공선성의 관계가 있다고 하겠다. c i i = ( 1 − R i 2 ) − 1 c_{ii}=(1-R_i^2)^{-1} c i i = ( 1 − R i 2 ) − 1 을 분산팽창계수라고 부르며 간략히 V I F VIF V I F 로 표시하기도 한다. R i 2 R_i^2 R i 2 의 값이 1에 가까우면 물론 c i i c_{ii} c i i 는 커지며, 보통 c i i c_{ii} c i i 의 값이 10이상이면 다중공선성이 있다고 한다.
\\[40pt]
[참고문헌]