다중공선성과 ML/DL problems

jj·2021년 5월 26일
0

MLDLs

목록 보기
2/4

다중공선성 문제란?

독립변수간의 상관관계가 매우 높을 때, 하나의 독립변수의 변화가 다른 독립변수에 영향을 미쳐, 결과적으로 모델이 크게 흔들리는 것을 의미한다. 모델의 결과는 불안정하며 작은 변화에도 변동이 크다. 이는 다음과 같은 문제를 야기시킨다:

​ 1. 모델이 예측을 할 때마다, 다른 결과를 준다면, 중요 변수들의 묶음에서 어떤것을 골라야할지 어려움

  1. 회귀계수 추정치는 안정적이지 않고, 그 결과 모델에 대한 해석이 어려움. 즉, 독립변수 1단위가 변화했을 때, 종속변수가 얼마나(scale) 변화했는지 말할 수 없다.
  2. 모델의 불안정성은 오버피팅을 유발할 수 있다. 만약 다른 데이터 샘플을 적용하면, 정확도는 학습데이터의 정확도보다 크게 낮아질 것이기 때문이다.

Dummy variable trap

옳지 않은 더미변수 사용은 다중공선성문제를 야기할 수 있다.

예를 들어, 결혼상태 변수에 대한 데이터셋이 있다고 하자. 결혼 상태 변수는 기혼/미혼, 두 가지 unique value를 가진다. 이 두 value에 대해서 각각 더미변수를 만들게 되면, redundant information문제를 야기하므로, 결혼 상태에 대한 더미변수 하나를 만들어, 기혼:0, 미혼:1 로 설정해야한다.

다중공선성 문제가 발생했는지 어떻게 알 수 있는가?

1) correlation matrix를 그려보자

수많은 독립변수 중 어떤 것을 선택해야될 지 모르겠을 때는, 종속변수도 correlation matrix에 포함시켜서, 종속변수와 가장 높은 상관관계를 가지는 독립변수를 선택하라.

2) VIF를 확인하자

각각의 독립변수에 대한 VIF를 구해보자. VIF값이 클 수록, 해당 독립변수와 나머지 독립변수간의 상관관계가 높아진다.

VIF

머신러닝에서의 다중공선성

어떤 학습데이터로 모델을 학습시켰다고 하자. 그리고 우리는 테스트셋에 대해서 예측을 할 것이다. 학습셋과 테스트셋의 변수간에 공분산이 다르다면, 우리의 학습데이터에 있는 다중공선성은 예측 성능을 저하시킬 것이다. 만약 학습과 테스트셋에서 공분산 구조(covariance structure)가 비슷하다면, 문제를 발생시키지 않을 것이다. 테스트셋이 보통 전체 데이터셋(full dataset)의 랜덤한 부분 집합이기 때문에, 공분산 구조가 같을 것이라고 가정하는 것이 reasonable하다. 그러므로, 다중공성성은 이러한 목적에서는 큰 문제가 되지 않는다.

한 가지 예를 생각해보자. 당신이 어떤 그룹의 사람들의키를 다른 변수들(몸무게, 팔길이, 다리길이 등)으로 예측한다고 생각해보자. 당신은 이 변수들이 매우 강한 상관관계가 있다는 것을 발견하게 될 것이다. 하지만, 당신이 이러한 변수들(팔길이, 다리길이, 몸무게 등)이 학습/테스트셋에서 동일한 정도의 상관관계를 보일 것으로 가정한다면, 당신은 분석을 계속해서 테스트셋의 사람들의 키를 예측할 수 있을 것이다. 만약 학습/테스트셋 간의 공분산 구조가 다르다면 예측은 좋지 못할 것이다.

예측문제에서의 다중공선성은 문제가 되지 않지만, 추론문제에서의 다중공선성은 문제가 있다. 두 변수 x1, x2가 perfectly correlated(r=1)된 경우를 생각해보자. x1 -> y과 x2 -> y, 두 개의 회귀분석을 진행했을 때, 동일한 회귀계수값을 반환할 것이다(두 회귀분석에서 도출된 동일한 회귀계수를 3이라고 하자) 다중회귀분석에서 y를 예측하기 위해 x1과 x2가 함께 쓰였다면, 동일하게 valid한 가능한 회귀계수 조합의 범위가 무한하다.

예를 들어, x1의 회귀계수는 3이 될 수 있고, x2의 회귀계수는 0 이 될 수 있다. 역도 동일하게 valid하다.

이는 추론의 관점에서 거대한 불확실성을 가지고 온다. 왜냐하면 각각의 독립적인 parameter는 poorly 고정되어있기 때문이다. 그러나, 중요한 것은, hypothetical model 간의 x1과 x2의 큰 변동에도 불구하고, 모든 모델은 동일하다는 것이다. 만약 당신이 원하는 것이 새로운 값에 대한 예측이라면, 당신은 이 모델중 어떤것을 골라도 된다. 당신의 테스트셋에서, x1과 x2가 여전히 prefectly correlated되어있기 때문이다.

머신러닝에서의 다중공선성문제 해결

앞서, 다중공선성이 궁극적으로 오버피팅을 야기할 수 있다는 점을 지적하였다. 머신러닝에서 다중공선성 문제의 해결이 모델 예측의 정확성에 영향을 주지 않는 것은 아니다. 다만, 머신러닝에서는 오버피팅에 초점을 두고, 이를 해결하기 위해, regularization을 사용한다. 이러한 regularization 은 회귀계수의 안정화에 도움을 준다. 그리고 이는 적어도 어느정도는 다중공선성의 완화에 도움을 줄 것이다.

결론

ML 문제에서, 회귀계수 추정치에 대한 관심이 없고 예측에 대해서만 관심이 있기 때문에 학습/테스트셋 간의 공분산 구조가 동일하다는 가정하에서, 다중공선성이 예측에 악영향을 끼치지는 않는다. 그래서, ML문제에서 다중공선성을 크게 고려하지 않았던 것이다.

-> 더 나아가서, 이 점이 바로 전통적인 통계학과 머신러닝의 차이점을 시사한다고 할 수 있다. 전통적인 통계학은 모델에 대한 해석(inference)에 초점을 맞췄다면, 머신러닝을 모델을 통한 예측(predict)에 초점을 맞추는 것이다.

출처:
https://towardsdatascience.com/multi-collinearity-in-regression-fe7a2c1467ea

https://stats.stackexchange.com/questions/361247/multicollinearity-and-predictive-performance

https://stats.stackexchange.com/questions/168622/why-is-multicollinearity-not-checked-in-modern-statistics-machine-learning/168631

https://www.analyticsvidhya.com/blog/2020/03/what-is-multicollinearity/

profile
재밌는게 재밌는거다

0개의 댓글