| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 파이썬
- 분산
- paper review
- LLM
- 코딩테스트
- NLP
- 논문리뷰
- Aspect
- GPT
- MySQL
- 가상환경
- SQL
- 프로그래머스
- deepseek
- 자연어처리
- 연구
- SQL 첫걸음
- leetcode
- gpt1
- transformer
- dfs
- ChatGPT
- outer join
- Bert
- ABAE
- 그래프
- 알고리즘
- 머신러닝
- join
- 백준
- Today
- Total
huginn muninn
다중공선성(Multicollinearity) 본문
오늘은 머신러닝에서 굉장히 중요한 개념인 다중공선성에 대해서 간단하게 정리해보려고 한다. 레츠꼬~
다중공선성
독립변수들이 강한 선형관계에 있을 때 다중공선성이 있다고 한다.

첫번째 표에서 라디오와 매출액 간의 관계를 봤을 때, 두번째 표에서 신문과 매출액 간의 관게를 봤을 때 p-value 값을 보면 매우 유의미한 값이라는 것을 알 수 있지만, 세번째 표에서 매출액과 tv,라디오,신문을 같이 선형회귀 모델을 돌렸을 때 신문의 상관계수가 거의 0에 가깝게 떨어진 것을 볼 수 있고 p-value 값도 매우 높아진 것을 확인할 수 있다.
이런 현상이 왜 일어난 것일까?👀
바로 다중공선성 때문

y(매출)의 변동성은 정해져있는 상태에서 x(tv,라디오,신문)의 변동성이 y를 얼마나 잘 설명하느냐가 중요한데, 변수가 여러 개 일때는 변동성이 겹칠 수 있다. 겹치는 부분에 대해서 각각의 변수들이 중복으로 가져갈 수 없기 때문에 회귀계수가 낮게 나오게 되는 것이다.
다중공선성이 있는 경우 잘못된 변수 해석, 예측 정확도 하락과 같은 문제가 발생하게 된다.
다중공선성을 진단하는 방법
- VIF(Variance Inflation Factor)이 10 이상이면 다중공선성이 있다는 뜻.
- VIF가 10이 넘으면 다중공선성 있다고 판단하며 5가 넘으면 주의할 필요가 있다는 것. 독립 변수 a와 b가 서로 상관 관계가 있다고 했을 때 두 변수 모두 VIF가 높다. 어느 하나만 VIF가 높은 경우는 없다.


여기서 r2는 결정계수! r2가 0.9 이상인 경우 VIF는 10보다 크다.
VIF가 10 이상이라고 해서 꼭 그 변수를 제거해야 하는 것은 아니다. 진짜 중요한 변수일 수도 있고 y에 중요한 영향을 끼치는 변수일수도 있기 때문에 VIF만 보고 제거하는 것은 좋은 방법이 아니다. 상관계수를 같이봐야 판단이 가능하다.
- 변수들간의 Correlation(상관관계) 등으로 진단
- 상관행렬(correlation matrix)
또 상관행렬만 보고 판단하면 안된다. 이상치가 있을 경우 상관관계가 굉장히 크거나 낮게 나올 수 있기 때문에 산점도를 같이 보는게 좋다.
- 상관행렬(correlation matrix)

다중공선성을 해결하는 방법
- Feature Selection : 중요 변수만 선택하는 방법
- 단순히 변수를 제거하는 방법 (Correlation 등의 지표를 보고)
- Lasso
- Stepwise
- 기타 변수 선택 알고리즘(유전알고리즘 등)
- 변수를 줄이지 않고 활용하는 방법
- autoEncoder등의 feature extraction 기법(딥러닝 기법)
- PCA
- Ridge
사실 다중공선성을 근본적으로 해결하는 방법은 아직 없다...ㅠㅜ
최근 머신러닝 기법들은 중요 feature만 뽑는 알고리즘이 내장되어 있어서 중요 변수를 알아서 뽑아주긴 하는데, 머신러닝 기법은 기본적으로 학습데이터 내에서 예측력을 높이기 위해 최대한 많은 변수를 활용하려는 경향이 있어서 결국 과대적합이 발생할 수 밖에 없고 예측 성능이 학습 데이터 내에서 만 좋아지는 현상이 발생하기도 한다.
'머신러닝' 카테고리의 다른 글
| 오차행렬(confusion matrix) (0) | 2024.09.12 |
|---|---|
| 머신러닝을 위한 수학적 개념 이해 (1) | 2024.04.04 |
| 모형의 적합성 평가와 과적합(overfitting) (1) | 2024.04.03 |
| Machine Learning의 개념과 종류 (0) | 2024.03.30 |