분산팽창계수(VIF) 계산기 쉽게 이해하기 — 개념과 원리
분산팽창계수(VIF)는 회귀모형에서 한 설명변수가 다른 설명변수들과 겹치는 정도, 곧 다중공선성 때문에 그 변수의 회귀계수 분산이 얼마나 커지는지를 나타냅니다. 선형회귀나 로지스틱회귀에서 개별 계수를 해석하기 전에 점검하는 지표입니다.
계산 방법
- 설명변수 j를 종속변수가 아닌 나머지 설명변수들에 회귀시켜 그 결정계수 R²ⱼ를 구합니다.
- VIF = 1 ÷ (1 − R²ⱼ)
- 공차(tolerance) = 1 − R²ⱼ = 1 ÷ VIF
- 판정: VIF가 10을 넘으면 "심각한 다중공선성", 5를 넘으면 "보통", 그 밖에는 "낮음"으로 표시합니다.
R²ⱼ는 0과 1 사이의 값이며 단위가 없습니다. 설명변수마다 VIF가 따로 있습니다.
원리
최소제곱 회귀계수의 분산은 σ² ÷ [(n − 1) × Var(xⱼ)] × 1 ÷ (1 − R²ⱼ)로 쓸 수 있고, 마지막 곱셈 항이 바로 VIF입니다. xⱼ가 다른 변수와 전혀 관련이 없으면 R²ⱼ = 0, VIF = 1로 분산이 늘지 않습니다. 반대로 xⱼ가 다른 변수들로 잘 설명될수록 그 변수만의 고유한 변동이 작아져, 적은 정보로 효과를 추정해야 하므로 계수가 불안정해집니다. 표준오차는 VIF의 제곱근만큼 커져서, VIF가 4이면 표준오차가 2배가 됩니다.
예제 풀이
- 입력값: 다른 변수들에 대한 R² = 0.8입니다.
- 공차 = 1 − 0.8 = 0.2입니다.
- VIF = 1 ÷ 0.2 = 5입니다.
- 판정은 보통(moderate)입니다. 기준이 "5 초과"이므로 정확히 5라면 경계값이지만, 컴퓨터의 부동소수점 계산에서 1 ÷ 0.2가 5보다 아주 조금 크게 계산되어 보통으로 표시됩니다.
- 의미: 계수의 분산이 변수끼리 상관이 없을 때의 5배이고, 표준오차는 √5 ≈ 2.24배입니다.
결과 해석
VIF가 1이면 공선성이 없다는 뜻입니다. 흔히 5나 10을 넘으면 주의하라고 하지만 이는 관례일 뿐 통계적 검정 기준은 아닙니다. VIF가 높아도 계수가 편향되거나 예측 정확도가 떨어지지는 않으며, 개별 계수가 부정확하고 데이터에 민감해질 뿐입니다. 예측이 목적이면 크게 신경 쓰지 않아도 되고, 변수의 효과를 설명하려면 변수를 합치거나 빼거나 규제를 고려합니다.
흔한 실수
- 보조회귀가 아니라 본 모형(종속변수에 대한 회귀)의 R²를 넣는 경우입니다.
- 다항식·상호작용 항이나 한 범주의 더미변수들에서 VIF가 높은 것을 과도하게 걱정하는 경우입니다. 이런 경우는 예상되는 현상이며 중심화로 줄일 수 있습니다.
- 이론상 필요한 변수를 VIF를 낮추려고 빼는 경우입니다.
자주 묻는 질문
VIF가 얼마면 너무 높은가요?
많은 교재가 10을 쓰고, 더 보수적으로는 5를 씁니다. 표본 크기와 계수에 필요한 정밀도를 함께 고려하십시오.
VIF가 1보다 작을 수 있나요?
아닙니다. R²ⱼ가 0 이상 1 미만이므로 VIF는 항상 1 이상입니다.
다중공선성은 어떻게 해결하나요?
데이터를 더 모으거나, 관련 변수를 하나의 지수로 묶거나, 중복 변수를 빼거나, 릿지 회귀를 쓰는 방법이 있습니다.
출처: D. A. Belsley, E. Kuh and R. E. Welsch, Regression Diagnostics, Wiley, 1980 · M. H. Kutner, C. J. Nachtsheim, J. Neter and W. Li, Applied Linear Statistical Models, 5th ed., McGraw-Hill, 2005, Chapter 10