본문 바로가기
유의하지 않은 계수를 어쩐다? 왜 이런 일이 벌어지는 걸까? 다중공선성의 탐지

다중회귀를 하면서 R²가 적당히 크거나, F검정이 Significant 한데도 불구하고, 계수중에서 t검정 결과가 Significant 하지 않은 경우가 있었는데 말이죠, 그럴 때는 어쩐다죠? 조금 극단적인 예를 들면, 독립변수 다섯 개를 가지고 다중회귀를 하였더니, 계수중에 세 개가 Significant 하지 않더라.라는 결론을 얻었을 때 이를 어쩌지? 하는 생각이 듭니다. 특히나, 이 유의하지 않은 변수들에 대해서 각각의 단순회귀를 해 보았을 때에는 계수들이 모두 Significant 하거나, 일반적인 연구에서 유의하지 않은 해당 독립변수가 확실하게 종속변수를 설명한다고 했을 때, 엄청 난감하기 짝이 없습니다. 음. 어쩌지. 따로따로 하면 괜찮은데 한꺼번에 하니 문제가 있다라니 말이죠. 요컨대  모형은 괜찮은데, 계수가 유의하지 않다면 이게 무슨 뜻이며, 어떻게 해야 하나 싶은데요,  

특정 계수의 t검정 결과가 안좋으면 그 녀석을 빼야 할까? 다들 빼라고들 하던데 말이죠. 그게 막 그래도 되는 건가? 하고 당연히 고민이 됩니다. 이 고민을 해결하기 전에 왜 이런 일이 일어나는지부터 골똘히 고민하고 그 전략을 고민해 보도록 합시다.  

이런 경우에 원인이 될 만한 것은 
㉠ 표본수가 너무 적다. 
㉡ Non linear Correlation이 변수사이에 존재한다. 
㉢ 어떤 독립변수가 collinearity (공선성)이 라는 것을 발생시켜 버렸다. 
라고 했었는데, 

다른 것들은 해결책이 그런대로 명확하니, ㉢의 경우를 더 자세히 들여다보려고 합니다. 어떤 독립변수가 다른 독립 변수들과 서로 관계가 있어서 이런 일이 벌어지는 건 아닐까 하는 의심한다는  스토리입니다. 왜냐하면 사실 다중회귀에서 하는 것을 정리하면 회귀 계수 bᵢ 는 xᵢ를 제외한 나머지 독립변수들을 고정시킨 상태에서 xᵢ의 한 단위 증가에 따른 y의 변화를 구한 것인데, 독립변수들끼리 상관관계가 없으면 종속변수를 각각 알아서 각각의 해당 계수를 잘 설명할 텐데, 상관관계가 있으니까 종속변수를 설명할 때 각각의 계수가 제대로 자신이 설명해야 하는 걸 잘 설명하지 못한다는 뭐 그런 건데 이런 걸 다중공선성이라고 합니다. 영어로는 Multicollinearity라는 건데 앞에서 계속 그런 게 있다면서 뜸 들였잖아요? 이제는 미루지 말고 본격적으로 다뤄 봐야 하겠습니다.  결국 공선성이라는 것이 독립변수끼리 상관성이 높아서 각 독립변수가 종속변수를 설명하려고 보니 어떤 독립변수 한 개가 종속변수에 얼마나 영향을 미치는지가 애매해진다는 것인데요,  

요컨대, 독립변수간의 상관관계 때문에 어떤 한 변수가 다른 변수와 비슷하니까 그 변수의 효과가 거의 나타나지 않을 수도 않아서 그 중요한 변수가 중요하지 않은 것처럼 보일 수도 있고요, 그럴 듯 한 이야기죠?

 

이런 식으로 y를 설명할 때, 각각의 독립변수가 기여하는 바를 각 해당 변수의 계수가 설명하게 되는데, 이게 다른 변수와 상관관계가 있다면 기여분을 나눠먹게 됩니다. 이러니까 어떤 엉뚱한 놈이 내가 기여하는 것을 썡유 하면서 빼앗기도 하고, 어이쿠 하면서 빼앗기기도 하고 뭐 그런 카오스적인 상황이 되는 것입니다. 뭐 당연히 정확하게 기여분을 나눠서 판단하기 어렵겠죠. 이 예라면 x₃가 다른 x들과 뭔가 상관관계가 걸쳐져 있다고 보면 되겠습니다. 
그러니까, 다중공선성이 있으면 회귀계수들 중에 기여량을 제대로 구하질 못해서 유의하지 않은 것들이 나올 수 있다는 것이죠. 

조금 더 Inutitively하게 이야기한다면, 내 것만 해도 설명을 잘할까 말까 한데 남의 것을 내 것으로 가져오니까 계수의 분산이 어떻겠어요? 쩝. 이 시점에서 왜 남의 것을 가져오는가? 하면 OLS라는 것이 Error, $E = \sum (y_i - \hat{y_i})^2 $를 최소화하는 것이니까 의도치 않게 남의 것이라도 나에게 가까운 것이 있다면 내것으로 가져오기도 하는 뭐 그런 일들이 벌어집니다. Error를 최소로 만들려면 아무래도 서로 상관관계가 있는 것들끼리 서로 그런 게 좀 있겠죠? 

계수에 대한 t 검정통계량은 이전에 보았듯이 $t_{stat,i} = \cfrac{b_i}{SE({b_i})}$ 이런 식인데, 분모에 있는 분산의 크기에  이런 상관관계가 영향을 주기 때문에 회귀계수의 분산의 크기가 커지면 회귀계수 추정량에 대한 t 검정통계량의 값이 작아져서 p value가 크게 나오게 됩니다. 결국 독립변수 사이의 상관관계가 클수록 다중공선성에 따르는 문제가 심각해져 보이게 됩니다.

그 발생한다는 문제를 정리하면,
① 계수의 높은 분산값과 그래서 얻게 되는 낮은 t 통계량
② 그렇게 떄문에 생기는 회귀계수 추정치의 불안정성
로 문제가 나타나겠군요.

그러면, 왜 상관관계가 크면 계수의 분산이 커지는가가 궁금하니 조금 자세하게 들여다보겠습니다. 이걸 수식으로 조금 정리해서 본다면,

$b = (X^T X)^{-1}X^Ty$ 였잖아요? (얼마 안 되었으니까 기억하고 있길 간절히 기대합니다.) 그르니까, 
$Var(b) = Var((X^T X)^{-1}X^Ty)$ 가 됩니다. 

알면 좋은 상식 - $Var(Ay) = AVar(y)A^T$ 임을 이용하여, 

$ \begin{aligned}
Var(b)\,\, &= (X^T X)^{-1}X^T Var(y)((X^T X)^{-1}X^T)^T \\
 &= (X^T X)^{-1}X^T Var(y)X (X^{T}X)^{-1} \\
 &= \sigma^2 (X^T X)^{-1} X^T I X (X^{T}X)^{-1} \\
 &= \sigma^2 (X^T X)^{-1} X^T X (X^{T}X)^{-1} \\
 &= \sigma^2 ((X^T X)^{-1} X^T X )(X^{T}X)^{-1} \\
 &= \sigma^2 I(X^{T}X)^{-1} \\
 &= \sigma^2 (X^{T}X)^{-1} 
\end{aligned}
$

이때, 모분산을 표본분산으로 대치하면 

$
\quad\quad\quad = s^2 (X^{T}X)^{-1}$  가 됩니다. 이것도 Gaussian(t분포)을 따르는 y로부터 왔으니까 대충 느낌적으로 t분포를 따르겠군요. 

이것은 p×p 행렬(Predictor 개수 × Predictor 개수, 간단하게 하기 위해 절편을 뺀다고 생각하고요)로써 대각 성분이 Variance인 Covariance 행렬의 역행렬입니다.  이 행렬의 각 성분은  $({ X }^{ T }X)^{-1}_{ij} = \cfrac{1}{det({ X }^{ T }X)}adj({ X }^{ T }X)_{ij}$ 이렇게 표현하고, 계산할 수 있게 되는데, 이때! det가 0에 가까워질수록 이 값이 커지게 되는데 그 의미가 행렬의 Column들이 선형종속이 될수록 det(행렬)가 0에 가까워집니다. (determinant의 의미는 "초간단 선형대수 - 행렬의 기하학적인 의미와 해석"에서 알아보았듯이 컬럼 벡터들이  같은 방향으로 있게 되면 det는 0입니다.) 이렇다는 의미는 공분산행렬의 컬럼들이 서로 선형종속이 될 수록 계수의 분산들이 커진다는 의미입니다. 이렇게만 이해해도 충분히 좋습니다. 만 

조금 더 자세하게, XᵀX의 역행렬을 들여다보면, 대각 성분은 $Var(b_j)= s^2 [(X^T X)^{-1}]_{jj}$ 가 되는데, XᵀX는 공분산행렬이잖아요? (실제 공분산은 아니지만 Projection 한 거니까 같은 의미라고 봐도 무방하다고 생각합니다.) 이때,  대각성분은 자기 자신의 Variance, 대각 성분이 아닌 다른 성분들은 다른 Column과의 공분산을 의미합니다.  

이걸 이해하기 쉽도록 예를 들어 2×2 행렬의 역행렬은 ($\hat{y} = b_1 x_1 + b_2 x_2$의 경우로 만들고, 문제를 쉽게 하기 위해 절편은 0인 경우로 불끈!)

$$ \begin{bmatrix}
a & b \\
c & d 
\end{bmatrix} ^{-1}  =  \cfrac{1}{ad-bc} \begin{bmatrix}
d & -b \\
-c & a 
\end{bmatrix}  $$ 잖아요?


$$  X^T X = \begin{bmatrix}
\sigma_{11}^2 & \sigma_{12} \\
\sigma_{21} & \sigma_{22}^2
\end{bmatrix}  $$  의 공분산 행렬이 있다고 치면 

$$ (X^T X)^{-1} = \cfrac{1}{det({ X }^{ T }X)}adj({ X }^{ T }X) = \cfrac{1}{\sigma_{11}^2 \sigma_{22}^2 -\sigma_{12} \sigma_{21}} \begin{bmatrix}
\sigma_{22}^2 & - \sigma_{21} \\
-\sigma_{12} & \sigma_{11}^2
\end{bmatrix}  $$ 

으로 구할 수 있겠습니다. 이중에 행렬의 (2,2)를 이야기해 본다면, (2,2)는 $\hat{y} = b_1 x_1 + b_2 x_2$ 에서 x₂에 대한 분산이잖아요?  $$ \cfrac{1}{det({ X }^{ T }X)}adj({ X }^{ T }X)_{22} =  \cfrac{1}{\sigma_{11}^2 \sigma_{22}^2 -\sigma_{12} \sigma_{21}} \sigma_{11}^2 =  \cfrac{\sigma_{11}^2}{\sigma_{11}^2 \sigma_{22}^2 -\sigma_{12}^2} $$ 가 되겠습니다. (공분산 배열은 Symmetry 대칭이니까요, 게다가 이 det 부분이 분산을 크게 만드는 부분이라는 점 다시 한번 상기해 주세요)  

그러면 또 정리해서 봐야 하겠죠! 

$$ = \cfrac{1}{\sigma_{22}^2 - \cfrac{\sigma_{12}^2}{\sigma_{11}^2}}  = \cfrac{1}{\sigma_{22}^2} \cfrac{1}{1-\cfrac{\sigma_{12}^2}{\sigma_{11}^2 \sigma_{22}^2}}  $$

이렇게 되겠군요. 지금 이 시점에서 혹쉬... 기억하겠지요...?  $$R^2 = \left( \cfrac{Cov(x,y)}{Var(x)Var(y)} \right)^2$$ 
이거요..  이것은 y를 종속변수, x를 독립변수로 놓았을 때, 결정계수입니다.  이것을 x₂를 종속변수로 x₁을 독립변수로 두고 다시 생각해 보면, 

$$R_2 ^2 = \left(\cfrac{Cov(x_1,x_2)}{Var(x_1)Var(x_2)} \right)^2 = \cfrac{\sigma_{12}^2}{\sigma_{22}^2 \sigma_{11}^2} $$ 가 되겠군요! 홋

오, 그러면 $(X^T X)^{-1}_{22} = \cfrac{1}{Var^2(x_2)} \cfrac{1}{1-R_2^2}$ 이니까,   b₂의 분산은 

$$ Var(b_2) =  \cfrac{s^2}{\sigma_{22}^2} \cfrac{1}{1-\cfrac{\sigma_{12}^2}{\sigma_{11}^2 \sigma_{22}^2}}  = \cfrac{s^2}{Var^2(x_2)} \cfrac{1}{1-R_2^2}  $$


으로 표현할 수 있겠습니다. 음? 왜 이런 정리를 하고 앉아있냐 하면, 각  계수의 분산이 각 해당 관측치의 분산과 또 다른 어떤 것에 영향을 받는다는 것으로 정리한 것인데요, 이게 굉장히 의미 있는 표현이거든요. 계수의 분산을 관측치의 분산과 어떤 결정계수로 표현할 수 있겠구나! 하는 사실입니다. 

이걸 일반화하게 되면 - 사실 이 유도는 일반적인 유도가 아니라 그냥 Intuition적으로 이렇게 이해하면 좋다는 거니까 어디 가서 이대로 증명하면 안 됩니다. - 어쨌든 $det(X^T X)$는 i와 j가 서로 닮을수록 0에 가까워지니까 전체 분산에서 공분산의 조합(Combination)을 빼게 되면 결과적으로 서로 닮을수록 값이 작아지고요, $adj(X^T X)_{jj}$는 해당 j의 분산을 빼고 나머지의 분산을 곱한 형태이므로, 이 둘을 적당히 표현하면, 

$$\begin{aligned} &det(X^T X) = \prod_{i=1}^{n} Var^2(X_i) - \prod_{i=1, i \neq j}^n {n \choose 2} Cov^2(X_i)Cov^2(X_j) \\ & adj(X^T X)_{jj} = \prod_{i=1} Var^2(X_{i \neq j}) \end{aligned} $$

이렇게 됩니다. 자, 그럼 적당히 2×2의 경우처럼 x의 분산과 결정계수의 형태로 만들기 위해서 스륵스륵 장난을 쳐보면 말이죠,

$$\begin{aligned}  (X^T X)^{-1}_{jj} &= \cfrac{adj({ X }^{ T }X)_{jj}}{det({ X }^{ T }X)} = \cfrac{1}{\cfrac{det(X^T X)}{adj(X^T X)_{jj}}}  = \cfrac{1}{Var^2(X_{j})-\cfrac{ \prod_{i=1}^n {{n\choose 2} Cov^2(X_{i}, X_j)}}{\prod_{i=1} Var^2(X_{i \neq j})}} 
\\ &= \cfrac{1}{Var(X_{j})^2\left(1-\cfrac{ \prod_{i}^n {n\choose 2} Cov^2(X_{i}, X_j)}{{\prod_{i=1} Var^2(X_{i \neq j}) Var^2(X_{j})}}\right)} 
\\ &= \cfrac{1}{Var(X_{j})^2\left(1-\cfrac{ \prod_{i}^n {n\choose 2} Cov^2(X_{i}, X_j)}{{\prod_{i=1} Var^2(X_{i \neq j}) Cov^2(X_{j}, X_j)}}\right)} \\ &=  \cfrac{1}{Var(X_{j})^2\left(1-\cfrac{ \prod_{i, i \neq j}^n {n\choose 2}  Cov^2(X_{i}, X_j )}{{\prod_{i=1} Var^2(X_{i \neq j}) }}\right)} 
\\ &=  \cfrac{1}{Var(X_{j})^2\left(1-\cfrac{ \prod_{i, i\neq j}^n {n\choose 2}  Cov^2(X_i, X_j)}{{\prod_{i=1} Var^2(X_{i \neq j}) }} \cfrac{Cov^2(X_j, X_j)}{Var^2(X_j)}\right)}
\\ &= \cfrac{1}{Var^2(X_j)}\cfrac{1}{1-R_j^2}
\end{aligned} $$

요런 식이 됩니다. - 다시 한번 이야기하지만 이건 순전히 이해하기 좋을 정도로만 유도한 것이니까, 어휴 잊어요 잊고 결론만 기억하는 편을 추천합니다. 울렁. -

오, 결국 계수의 분산은 

$$ Var(b_j) = \cfrac{s^2}{Var^2(X_j)}\cfrac{1}{1-R_j^2} $$가 되는 것으로 정리할 수 있겠습니다. 와우.  그러니까 여기에서 우리가 주목할 수 있는 부분은 $\cfrac{1}{1-R^2_j}$ 부분인데, 이 부분이 계수의 분산을 키우는(팽창시키는) 주요 부분이 되겠습니다. 즉, $Var(b_j) \propto \cfrac{1}{1-R^2_j}$ 이므로 요 부분을 VIF(Variance Inflation Factor)라고 정감가지 않는 이름으로 특별히 따로 부르고요, 여기에서 $R_j$의 의미는 말이죠. j번째 x를 y로 두고 나머지 x들로 회귀를 했을 때 결정계수가 됩니다. - 이때 진짜 종속변수 y는 판단에서 제거합니다. 왜냐하면 독립변수 간의 비슷한 정도를 측정하니까요. - 

$$ x_j = \beta_0 x_0 + \beta_1 x_1 + \cdots + \beta_n x_n : omit \,\, x_j  \,\,term $$

이런 식의 회귀식에 결정계수입니다. 딱 봐도 j번째 x에 대하여 다른 x들에 의한 회귀 적합성을 본 거니까 다른 x들과 선형적 관련이 클수록 큰 값이 나와서 계수 b의 분산을 크게 만들겠죠! 호. 

해당 변수에 대한 나머지 독립변수들에 의한 회귀 결정계수가 클수록 VIF값이 커진다는 의미이고, 결정계수가 크다는 것은 다른 변수들과 너무나 선형적으로 잘 들어 맞는다는 얘기랑 똑같습니다. 다른 변수들이 변수j를 잘 설명할 수 있다는 의미입니다. 그러니까 VIF값이 큰 녀석은 당연히 분산이 커지겠죠.

그런 의미에서라면,  거꾸로 다중공선성(multicollinearity)란 독립 변수의 일부가 다른 독립 변수의 조합으로 표현될 수 있는 경우에는 $R_j$로 측정 가능하다고 할 수도 있겠네요. 결국 두 독립변수의 관계가 클수록 회귀계수의 분산의 크기가 커집니다. 그러니까 회귀계수의 분산이 커지면 t 검정통계량이 작아지니까, p value는 커지겠죠? 그렇고 그런 이야기입니다.

VIF를 이용하면, 다중공선성의 심각성 정도를 측정할 수도 있고, 이걸 지표로 해서 중요한 독립변수를 선정하는 데에도 사용할 수 있겠습니다.  참고로 VIF의 역수를 tolerance(공차한계)라고도 부르는데, 대상 x의 결정계수가 클 수록 VIF는 커지고, tolerance는 작아집니다. tolerance가 작을수록 해당 계수의 분산이 커집니다. 

어쨌든 각각의 독립변수에 대하여 VIF값을 조사하면, 15 이상의 값을 가질 때 다중공선성을 유발하는 독립변수라고 판단들 한다고 하던데, - 유발한다는 말이 좀 그렇긴 합니다만 15 이상이면 거꾸로 계산했을 때 결정계수가 0.97 정도 되고 원래 분산의 14배라는 뜻이거든요. 예를 들면 VIF가 2.5라면 (2.5-1)*100%라는 의미입니다. 그러니까 적극적으로 고려할 만한 값이라고 생각합니다. - 그 변수를 제거한 후 다시 회귀분석을 시행하는 방법을 많이 쓴다고 합니다만, 그렇게 하면 나머지 계수들의 분산이 줄어들어 계수가 유의해질 가능성이 커지니까 그렇긴 하지만 - 가능성이 커질 뿐 혹시 필요한 Feature가 그런 조건이라고 해서 제거하는 것이 무슨 의미가 있는지 잘 생각해 보고, 제거하는 것에 대해서 매우 유의해 주세요. 어쨌든 이것은 아주 간단한 대처에 대한 설명이고, 일반적으로 계수가 통계적으로 유의미하지 않았을 때의 일반적인 대처 방법은 이어서 다시 자세히 보도록 하겠습니다. 

그리고, Acceptable VIF에 대한 현실적인 기준으로는 모형 자체의 결정계수와 비교하는 방법이 실무적으로 제안되기도 하는데, 그냥 느낌적으로 음. 꽤 그럴듯하잖아?라는 생각이 들기도 합니다. 

$$VIF_{j\,acceptable} < MAX\left(15, \cfrac{1}{1-R^2_{model}} \right)$$  

그러니까, 어떤 j번째 변수의 Acceptable VIF가 모형자체의 결정계수와 15중 더 큰 놈보다 더 크다면 이 모형은 다중공선성이 있구나 정도로 판단하면 좋겠습니다. 그 주범은 해당 변수이고요.

더 큰 그림으로는 VIF와 관계없이 모형자체에 다중공선성이 있는지 판단하는 기준이 또 있는데, 그게 뭐냐면 Condition Number라는 겁니다. 우리나라 말로는 조건수라고 부릅니다. 끄흡. 이게 뭐냐면 어떤 행렬의 가장 큰 Eigen Value와 가장 작은 Eigen Value의 비율을 말합니다. (이거 PCA 할 때 봤죠.) 그러니까, 


$$ Condition \,Number = \cfrac{\lambda_{max}}{\lambda_{min}}$$을 의미하는데, 회귀분석에서는 XᵀX (공분산행렬)의 최대 고유값 / 최소 고유값의 비율을 의미합니다. 도대체 이게 뭐냐고요? 흡.

공분산행렬의 Condition Number가 클 때는 어떤 경우냐 하면, 다중공선성이 있는 경우인데, 다중공선성이 있을 때 어떤 식으로 보이냐면,

 

이런 식으로 얇게 보입니다. 이렇게 얇아지면 어떤 일이 벌어지냐면, 공분산행렬의 Determinant가 작아집니다. 공분산의 Determinant가 작아지면 어떻게 되냐면 $(X^TX)^{-1}$ 의 값이 엄청 커집니다. 이 값이 커지면 어떻게 된냐면 계수의 분산이 커집니다. 후후. 그러면 잘 설명이 가능한 모형을 만들 수가 없겠죠. 음음. 

그래서 모형 자체의 Condition Number를 보면 VIF를 따지기 전에 다중공선성이 있지 않을까? 하고 의심할 수 있는데 statsmodels의 ols는 이런 이상 시그널에 대해서 알려줍니다. Condition Number가 30 이상이면 다중공선성으로 인한 문제가 있을 수 있다고 알려줍니다. 

그리고, 이 현상과 비슷한 경우가 있는데 이게 뭐냐면 역시나 Condition Number가 크게 나오는 경우인데, 변수끼리의 스케일 차이가 많이 날 때도 그런 현상이 일어납니다. 

 

이런 식의 경우인데요, 분포가 너무 얇아서 Condition Number가 크게 나오는 경우죠. 그러니까 공분산행렬의 Determinant도 작게 나오는데, 이런 경우는 Determinant가 작기도 하고, 사실상 컴퓨터의 floating 연산에 문제가 생겨서 계산에 문제가 있을 것이라는 시그널을 줍니다. 이런 경우에는 어차피 Determinant가 작아서 생기는 마찬가지의 결과이지만, 다중공선성의 문제는 아니니까, 정규화를 하면 문제가 해결됩니다. 

그러니까, 모형에 다중공선성이 있다고 의심할 수 있는 경우는 다음과 같습니다. 

⓵ Conditional Number가 30 이상인 경우 (사실상 30에 의미가 있다기보다는 꽤 큰 경우라는 것을 의미하는 것이니까 30에 너무 매몰되면 안 됩니다) 

⓶ 각 변수들의 VIF를 보았더니, 15 이상으로 큰 변수가 있더라. 하고 검사가 되면 이거 다중공선성이 있을 수 있겠구만 이라고 생각하면 조금은 명확하게 다가갈 수 있지 않을까 합니다. (사실 15 정도라고 굉장히 Extreme 한 경우를 이야기했지만, 보통 10 이상이면 그렇다고 판단할 수 있지 않겠느냐 하는 주장이 많습니다) 

이런 경우에 그 결과로는 유의하지 않은 계수들이 출현하게 되는데, 그 유의하지 않은 계수들을 어떻게 하면 좋겠는가를 곧바로 이어서 다루려고 합니다. 

어쨌든 회귀 분석으로 모형을 만들었는데, Condition Number가 크거나, VIF가 엄청 큰 변수가 있는 경우 다중공선성에 문제가 심각하지 않은 경우라면 정규화를 하여 표준화 계수로 모형을 만들게 되면 Condition Number가 줄어들어 문제가 없어질 수도 있습니다. 

휴, 이제 다중공선성도 보았으니, 유의하지 않은 계수를 어떻게 하면 좋을지를 본격적으로 다뤄보는 것도 좋겠습니다.

Condition Number(조건수)를 모델의 Sensivitity 라고도 이야기하는데 그 이유가 뭐냐면 분포가 얇잖아요? 그러니까, 데이터를 조금만 바꿔도 모형의 Parameter (계수)들이 크게 움직이니까 그렇다는 의미입니다. 별거 아니죠.

다중공선성은 회귀식의 불안정성이 아니라 독립변수 설정을 잘못한 것이라는 쪽이 더 합리적인 접근이 됩니다. 이게 무슨 의미인지 곧 이어서 Feature Selection을 어떻게 할 것이냐? 하는 이야기를 하려고 합니다. 다중공선성은 회귀식의 불안정성이 아니라 독립변수 설정을 잘못한 것을 시사하는 바가 더 크니까, 회귀식에서 VIF가 큰 해당 독립변수를 제거해서 다중공선성을 완화 시킬 것인지, 아니면 해당 독립변수의 VIF를 크게하는 변수를 찾아서 제거함으로써 다중공선성을 완화시킬 것인지는 분석가의 몫이겠죠. 

이렇게 본다면, $(X^T X)^{-1}$은 공분산행렬과 반대로 얼마나 같이 몰려다니느냐를 따지는 것인데, 대각성분은 다른 컬럼들과 해당 성분이 대하여 다른 모든 Column과 얼마나 같이 몰려다니는가를 나타내고 큰 값일수록 더 다 같이 몰려다닙니다. 해당 값이 크다는 것은 다른 성분들과 같이 몰려 있고, 그러면 분산이 커지겠는데, 이게 헷갈려서 남의 것을 실수로 가져다 쓸 수 있으니까 분산이 커진다는 뭐 그런 의미입니다. 그리고, 나머지 i, j 값들은 i, j를 제외한 나머지 값을 통제했을 때 i, j의 Correlation입니다. 그래서 이것을 i, j만의 Partial Correlation이라고 부릅니다.

Variance inflation factor - Wikipedia
https://en.wikipedia.org/wiki/Variance_inflation_factor 여기에 보면 어떻게 VIF를 공분산 행렬의 역행렬로부터 어떻게 구해서 정의하게 되는지가 더 정확하게 나와요. 저는 안 궁금할랍니다. ㅎㅎ.

친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -