본문 바로가기

R-PAGO 노트

Variation Inflation Factor(VIF)

VIF


서로 상관관계가 있는 변수가 추가 되면(공선성) Variance가 증폭되어 회귀 계수가 커지는 특징이 있다.

따라서 공선성은 회귀 계수 추정치의 정확성을 낮추므로 계수에 대한 표준오차가 증가하게 되고 이는 계수의 t통계량을 줄인다. 결과적으로 공선성이 존재하면 귀무가설이 기각될 확률이 줄어든다. 


VIF는 Squared Standard Error Inflation로, VIF가 큰 변수를 제거 한 뒤, 남아있는 변수 각각의 VIF 변화를 확인하여 이전 보다 VIF값의 차이가 큰 변수가 있다면 앞서 제거한 변수와 상관성이 높은 변수라 할 수 있다. 반대로 변화가 없는 변수라면 앞서 제거한 변수와 상관성은 낮다 할 수 있다.


VIF의 가장 작은 값은 1이며 이때는 공선성이 전혀 없음을 나타낸다. 식은 아래와 같다. 


경험적으로 VIF가 5이상 또는 10이상일 때 공선성이 있다 판단한다.[각주:1]

공선성을해결하는 간단한 방법은 첫째 문제가 되는 변수 하나를 제외하는 것과 공선성 변수를 단일 설명변수로 결합하는 법이 있다. 이 경우 두 변수 같에 스튜던트화 평균을 취해 outcome을 측정하는 새로운 변수를 만들게 된다. 


다음은 이런 간단한 방법외에 VIF를 검증하는 ANOVA분석 방법을 소개한다.


ANOVA(Analysis Of Variation) 분석


Q. 변수 A가 다른 변수 B와 상관성이 높아 VIF가 높을 때, 변수 A를 무조건 제거하면 될까?

--> 아니다. 변수 A 제거로 인해 A와 상관성 있는 변수 B의 설명 계수 해석에 Bias가 생길 수 있기 때문이다. 


예를 들어, x1과 x2는 상관성이 있고 x3는 서로 상관성이 없는 y = x1 + x2 +  x3 +e 의 회귀 계수를 구해 보자.


x3를 제거한 x1 + x2의 x1 회귀계수(아래 그래프 왼쪽)와 x2를 제거한 x1 + x3 의 x1의 회귀계수(아래 그래프의 오른쪽)를 비교하면 전자는(1) 후자 보다 커짐을 알 수 있다. 실제 회귀 계수는 1이 되어야 하지만 상관성 변수를 제거했을 때(오른쪽) 특별한 경우 오히려 Bias가 생기는 걸 확인 할 수 있다.[각주:2]

이처럼 공선성 문제는 변수간 상관 관계만으로 모두 확인되지 않는다. 심지어 어떤 변수 쌍도 상관관계 없어도 3개 또는 그 이상의 변수가 공선성이 존재할 수 있다.(다중공선성이라 불림)

 

설명변수를 추가 하는 것은 비록 변수가 이전 변수들과 상관성이 없다 하더라도 Overfitting의 원인이 된다.  예를 들어, 데이터 수가 47개 인데 47개 설명변수를 사용한다면 Residual Sum of Squares(RSS, =Deviance)는 거의 0에 가까워 진다. 따라서, 설명변수를 무조건 증가시키는 것은 Deviance를 감소시켜 겉으로 보기엔 의미 있는 변수와 모델이라 오해할 소지가 높아 진다.

 ANOVA분석은 이런 추가되는 변수가 유의성이 있는지를 판단하기 위해 사용한다.

예를 들어, ANOVA(fit1, fit3)을 실행 할 때, fit1대비 2개의 설명변수가 추가된 fit3의 경우, 귀무가설은 "2개 추가 변수가 의미가 없다."가 된다. 다시 말해, ANOVA의 F통계의 p-value가 0.05이하이면 귀무가설이 기각되므로 추가된 2개 변수 중 최소 1개는 유의미하다고 판단하게 된다.  



 


※ R 프로그램에서 fit3의 p-value를 구하는 식은 pf(F, DF, fit3의 Reg.DF)  (DF는 추가 설명변수로 이 경우엔 2) 만약, 카이 제곱 검정을 원한다면, anova(fit1,fit3,test="Chisq")라 하면 된다. 


F 통계량의 의미는 설명변수 추가에 따른 DF가 감소하는 것 대비 Residual sums of squares의 감소가 통계적 유의성을 가지느냐를 확인하는 것이다. 이것이 ANOVA 분석의 목적이다. 


Shapiro-Wilk Test


ANOVA는 잔차가 거의 정규성을 가진다는 가정에 민감한데 오히려 정규성을 가지지 않을때 p-value가 작아지는 경향이 있다. 따라서 Shapiro-Wilk Test를 통해 잔차가 정규성을 가지는지 확인이 필요하다. 


상기 fit3의 정규성을 확인 하려면 R 프로그램에서 shapiro.test(fit3$residuals)를 한다. 

Shapiro-Wilk test의 귀무 가설은 "정규성을 가진다"이다. 따라서  Shapiro-Wilk test의 p값이 0.05보다 클 경우 정규성이 가진다고 할 수 있고 이 경우 추가 변수에 대해 신뢰를 하게 된다.



이처럼 Variance 증폭(Overfitting)이나 계수 제거에 인한 Bias(Underfitting) 둘 모두는 설명 변수사이의 상관성 여부와 깊은 관계가 있다.


참고 자료


회귀 분석에서의 오류: http://blog.naver.com/PostView.nhn?blogId=vnf3751&logNo=220852034949&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search 



  1. ISLR 114page [본문으로]
  2. 변수가 생략될 때 생기는 편향을 Omitted Variable Bias라고 하는데 설명변수와 종속변수 모두에 영향을 주는 변수를 생략할 경우 발생. [본문으로]