요약
- 산포도&상관계수확인: 산포도 확인 후 상관계수 절대값 0.8 이상 다중공선성이 있음으로 간주함
- torelence 확인: 하나의 독립변수를 Y, 나머지 독립변수의 조합을 X로 했을때, R^2를 계산후 torelence가 0에 가까운 값인지 확인함(torelence란 1-R^2, R^2 = 1인 경우, torelence = 0, 0인경우 다중공선성 심각)
- 분산팽창지수(VIF:Variance Inflation Factor, VIF = 1/torelence): 일반적으로 연속형변수에서 10이상이면 다중공선성 있음으로 간주, 더미변수는 3이상이면 다중공선성으로 간주함.
- 상태지수(Condition Index): 100 이상인 경우, 다중공선성 간주하지만 잘 사용되지 않음.
다중공선성 문제 해결하기
- 다중공선성이 큰 변수가 유의미한가? R^2값이 매우 팽창하였음에도 불구하고 유의미하다는 것은 그 자체로 매우 유의미함을 의미함 => 일반적으로 제거하지 않음
- 해당변수를 제거? 데이터입력시 변수를 잘못 구성함. 무작정 제거하지 않음
- 주성분분석으로 변수를 재조합
- 다중공선성이 발생한 변수를 합침:다중공선성이 높은 변수들은 비슷함을 의미하여 평균값으로 대체하기도 함
선형회귀분석 (statsmodels.OLS regression) result로 다중공선성 확인하기
import statsmodels.api as sm
lm = sm.OLS(train_y, train_x)
result = lm.fit()
print(result.summary())
Reference
https://ysyblog.tistory.com/171
https://ysyblog.tistory.com/119
https://bkshin.tistory.com/entry/DATA-20-%EB%8B%A4%EC%A4%91%EA%B3%B5%EC%84%A0%EC%84%B1%EA%B3%BC-VIF
'데이터분석 > 전처리' 카테고리의 다른 글
Feature selection? sklearn을 활용하면 (0) | 2023.07.19 |
---|---|
Sampling 방법 (0) | 2023.04.28 |
평가지표 (1) Accuracy와 Precision and Recall (0) | 2021.08.02 |
데이터 불균형 문제를 대하는 법 - Sampling 방법론 (0) | 2021.04.13 |
표준화(standardization)와 정규화(normalization) (0) | 2021.01.27 |