VIF (Variance Inflaction Factor)

이정훈·2026년 4월 4일

VIF

  • 다중회귀분석에서 독립변수 간 다중공선성(Multicollinearity)을 진단하는 지표
  • 계산 공식 (R2R^2 리마인드)
    VIFi=11Ri2VIF_i = \frac{1}{1 - R_i^2}
  • Ri2R_i^2는 보조 회귀 모형 (Auxiliary Regression Model)에서 도출되며 XiX_i를 종속 변수로 두고 나머지 모든 독립변수들을 사용하여 Regression을 만듦
    Xi=α0+α1X1++αi1Xi1+αi+1Xi+1++αpXp+eiX_i = \alpha_0 + \alpha_1 X_1 + \dots + \alpha_{i-1} X_{i-1} + \alpha_{i+1} X_{i+1} + \dots + \alpha_p X_p + e_i
  • 해석 기준
  • VIF를 계산할 때 상수항(Constant)을 반드시 추가해야 함 (원점 통과 시 VIF값이 비정상적으로 높게 튐)

코드

import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor

X = sm.add_constant(df)  # df['const'] = 1.0
vif_data = pd.DataFrame({
    'feature': df.columns,
    'VIF': [variance_inflation_factor(df.values, i) for i in range(df.shape[1])]
})
profile
AngDDo

0개의 댓글