VIF 계산하기
영상에서 배운 것처럼, 다중공선성을 진단할 때 가장 널리 쓰이는 지표 중 하나가 분산팽창계수(VIF)이며, 각 설명 변수마다 계산합니다.
영상에서 설명했듯이 경험적 기준은 VIF가 2.5 수준입니다. 즉, VIF가 2.5를 넘으면 적합된 모델에 다중공선성의 영향이 있다고 판단해야 합니다.
이미 적합된 model과 crab 데이터셋은 작업 공간에 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Generalized Linear Models
연습 안내
statsmodels에서variance_inflation_factor를 가져오세요.crab데이터셋에서weight,width,color를 선택해X로 저장하고,X에 값이 모두 1인Intercept열을 추가하세요.pandas의DataFrame()을 사용해 빈vif데이터프레임을 만들고,Variables열에X의 열 이름을 추가하세요.- 각 변수에 대해
variance_inflation_factor()함수를 사용해 VIF를 계산하고,vif데이터프레임의VIF열에 저장하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import functions
from statsmodels.stats.outliers_influence import ____
# Get variables for which to compute VIF and add intercept term
X = ____[[____, ____, ____]]
X[____] = 1
# Compute and view VIF
vif = pd.____
vif["variables"] = X.____
vif["VIF"] = [____(X.values, i) for i in range(X.shape[1])]
# View results using print
____(____)