본문 바로가기
데이터 분석

[머신러닝] 선형 회귀 가정과 다중공선성 진단 및 해결 방법

by Data Lib 2023. 9. 11.

선형 회귀는 종속 변수(대상)와 하나 이상의 독립 변수(특성) 간의 관계를 모델링하기 위해 널리 사용되는 통계 방법입니다. 그러나 모델이 유효하고 결과를 신뢰할 수 있는지 확인하기 위해 몇 가지 중요한 가정에 의존합니다. 주요 선형 회귀 가정에 대해 살펴보면서, 그 중에 다중공선성에 대해서 자세히 알아보도록 하겠습니다. 

 

 

선형 회귀 가정이란

이전 포스팅에서 선형 회귀에 대해 다루습니다. 그런데 모든 데이터에 선형 회귀를 적용할 수 있을까요? 그렇지 않습니다. 만약 그렇다면 다른 알고리즘이 나오지 않았을 것입니다. 선형 회귀를 사용하기 위한 알고리즘 만의 가정이 존재합니다.

 

다시 한번 이야기하지만 회귀 분석의 목적은 설명변수 x와 타겟 변수 y의 관계를 선형식으로 나타내는 것입니다. 현실적으로 변수 간의 관계를 선형식으로 나타내는 것이 힘듭니다. 그래서 여러 가정을 통해 선형식으로 만들어 내는 것입니다. 이것이 선형 회귀에서 가정이 중요한 이유입니다. 선형 회귀는 아래 정리한 5가지의 가정이 있습니다. 

 

선형 회귀 가정
선형 회귀 가정



1. 선형 관계(Linear relationship) 

독립변수(x)와 종속변수(y)가 선형관계를 가져야 합니다. 서로 음 또는 양의 선형관계가 있어야 합니다. 이것은 시각화를 통해 확인 할 수 있습니다. 수평선을 중심으로 무작위적으로 배치되는 패턴일 경우 선형성을 만족합니다. 


2. 다변량 정규성(multivariate normality)

독립변수(x)에 대해 대응되는 종속변수(y)들의 분포가 정규분포여야 합니다. 여기서 다변량이라는 말은 독립변수들이 여러 개를 가지고 있어 다차원이라는 이야기 입니다. 선형성을 위해 변수들이 기본적으로 정규분포를 이루는 데이터에 사용할 수 있습니다. 예를 들어, 키, 몸무게 등과 같이 데이터의 분포가 정규분포인 경우를 말합니다. 


3. 등분산성(Homoscedasticity, equality of variance)

등분산성이라는 말은 두개의 집단의 분산이 같다 라는 말입니다. 여기서 두 개개의 집단은 독립변수와 종속변수입니다. 독립변수(x)에 대해 대응되는 종속변수(y)들의 분포는 모두 동일한 분산을 갖는 것을 의미합니다. 즉, 잔차의 분포가 0을 중심으로 균등하게 흩어져 있어야 등분산을 만족한다고 할 수 있습니다. 
 

4. 다중공선성이 없거나 거의 없게(No or little multicollinearity)

이번 가정은 독립변수(x)들 간에 강한 상관관계가 있으면 모델의 정확도를 떨어집니다. 이를 막기 위한 상관 관계를 없어야 한다는 가정입니다.  모든 독립변수들은 서로 독립적이어야 합니다. 다중공선성을 조사하여 제거해야 합니다. 이 부분은 아래에서 더 자세히 다룹니다.


5. 자기상관성 없게(No autocorrelation)

자기상관성은 서로 다른 두 시점에서의 관측치 사이에 나타나는 상관성을 말합니다. 한 x값에 대해 스스로 상관 관계가 없어야 합니다. 주로 시계열 자료를 다루는 경우 나타납니다. 연속된 잔차 or 오차(error)들이 서로 상관되어 있을 가능성이 존재하게 됩니다. 

 

 

다중공선성

다중공선성(multicollinearity)은 독립 변수의 일부가 다른 독립 변수의 조합으로 표현될 수 있는 경우를 말합니다. 독립 변수들이 서로 독립이 아니라 상호 상관관계가 강한 경우에 발생하게 됩니다. 이런 경우는 잘못된 변수해석, 예측 정확도 하락 등의 원인이 됩니다. 
 

다중공선성
다중공선성

 

다중공선성 진단 방법

다중공선성 문제를 확인하기 위해 분산팽창요인(VIF)을 평가하는 것입니다. VIF는 변수들 간의 Correlation(상관분석) 등으로 진단하는 것으로 변수 1개를 종속변수(y), 나머지는 독립변수(x)로 $ 𝑅^{2} $ 계산 합니다. 수식은 $ VIF=  \frac{1}{(1−𝑅^{2} )} $ 입니다. $ 𝑅^{2} $ 가 1이면 독립변수의 심각한 상관관계를 가지는 것입니다.일반 변수의 경우 VIF > 10 인 경우 다중공선성이 존재한다고 판단합니다. 단, 더미변수(0,1)인 경우는 VIF > 3 인 경우 다중공선성으로 인한 제거 대상입니다. 
 

분산팽창지수(VIF, Variance Inflation Factor)

가장 의존적인 독립변수를 선택하는 방법으로는 VIF(Variance Inflation Factor)를 사용합니다. VIF는 독립변수를 다른 독립변수로 선형회귀한 성능을 나타내는 지표입니다. VIF가 10 이상일 경우 다중공선성 문제가 있다고 판단하게 됩니다. inf 로 표현되는 것은  '무한대' 또는 '측정불가'라는 의미입니다. 


다중공선성 해결 방법

독립변수가 서로 의존하게 되면 과적합(over-fitting) 문제 발생합니다. 선형 회귀 결과의 안정성을 해칠 가능성이 높아집니다. 해결 방법은 네 가지로 정리해 볼 수 있습니다. 첫번째는 우선 변수를 그대로 남겨두는 방법이 있습니다. 무조건적으로 제거한다고 좋은 것이 아닙니다. VIF가 높더라도 통계적으로 유의미한 변수는 유지하는 것이 낫습니다. 예를 들어, p-value 유의수준(일반적으로 0.05) 보다 낮은 변수라면 제거하지 않는 것이 적절합니다.

 

두번째는 변수 선택법(feature selection)으로 의존도가 높은 변수를 삭제하는 방법입니다. 세번째 방법은 PCA(principal component analysis) 방법으로 의존적인 성분 삭제하는 것입니다. 네번째는 Lasso와 같은 정규화(regularized) 방법 사용하는 것입니다.