플로라도의 data workout

선형회귀 분석에서 로그 변환을 취하는 이유 본문

기초 노트/MachineLearning

선형회귀 분석에서 로그 변환을 취하는 이유

플로라도 2024. 3. 14. 04:43

 
 
 

https://www.kaggle.com/code/serigne/stacked-regressions-top-4-on-leaderboard

 
캐글 커널에서 마주한 "Linear models love normally distributed data." 라는 문장의 맥락을 살펴보고자 한다.
 
데이터의 분포라는 것은 크게 우리가 관측하고자 하는 값, 타겟 값, 예측 대상인  ① $y$값의 분포가 있고
각 데이터 포인트의 특성(feature)의 집합인,  ② $X$에 대한 분포가 있다.
 
①, ② 두 경우 모두 만약 분포의 형태가 정규 분포가 아닌, 오르쪽으로 긴 꼬리 분포(right-skewed) 혹은 왼쪽으로 긴 꼬리 분포(left-skewed)의 상황이라면 로그 변환(log transformation) 혹은 박스 콕스 변환(Box-Cox Transformation)으로 부터 정규성을 확보해야 한다.
 
그러나 이러한 변환의 수행은 서로 다른 이유에 있다.
 

① Target distribution

 
기본적으로 머신러닝 모델은 어떠한 패턴을 반영하기 위한 구조적인 특징, 학습과정에서 가지는 가정이나 선입견인 'inductive bias'를 갖는다.
선형회귀는 이름 자체에서 내포하고 있듯, 관측된 데이터의 관계가 선형적이라는 inductivd bias와 
선형성을 포함한 대표적인 5가지 성질(선형성, 등분산성, 독립성, 정규성, 선형 독립성)을 가정한다.
그 가운데 선형 모델이 정규 분포를 띈 데이터와 잘 맞는 것은 4번째 특징인 '정규성'과 관련된 특징이다.
 
그러나, 정규성이라는 특징의 이름을 조금 더 살펴봐야 한다.
여기서 정규성의 의미는 선형 모델이 정규 분포를 띈 데이터에 잘 맞는다는 직접적인 의미가 아니라
"잔차의 정규성 가정"을 뜻하기 때문이다. 
 
 
예를 들어 우리가 관찰하고자 하는 타겟값이
아래의 scatter plot에서 Training data와 Validation Data로 표현되어 있고
이를 예측하는 선형회귀 식을 구성했다고 가정하자.
 

 
이를 각 데이터 포인트와 선형회귀식으로 구한 $\hat{y}$ 로 부터 잔차 그래프를 다음과 같이 얻을 수 있다.
$residual =  y - \hat{y}$
 

 
여기서 만약 잔차를 x축으로 그래프를 표현하고자 한다면,
아래와 같이 평균이 0이고 분산이 1인 형태의 정규 분포의 형상을 띄고, 이는 잔차의 정규성 가정을 만족하는 것을 알 수 있다.
 

 
 
 
그러나 원래의 target distribution이 아래와 같이 정규 분포가 아닌 오른쪽이나 왼쪽으로 치우친 형태의 분포라면  잔차의 분포가 이상적인 정규 분포에서 벗어날 가능성이 높다.

Ames시 집 값의 분포(https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques)

 
일반적인 데이터에서 자주 관찰되는 오른쪽으로 긴 꼬리 분포(right-skwed)의 경우,  데이터의 극단적인 값(비싼 집값)이 오른쪽에 분포함을 나타낸다. 이러한 분포의 경우 극단값에서 발생하는 잔차와 중앙값 근처에서 발생하는 잔차의 스케일에는 큰 차이가 발생하게 되고, 잔차의 분포 역시 타겟의 분포와 비슷한 경향을 보일 수 있다.
 
 
 

② Feature Distribution

데이터 포인트의 피처를 로그 변환 혹은 박스 콕스 변환을 통해 정규성을 확보하는 목적은 정규성 보다는 스케일에 있다.
로그 변환을 하게되면 잔차의 분산도 작아지게 되며, 극단값에 대한 민감도 역시 줄어 들게 된다. 

https://recipesds.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EB%A1%9C%EA%B7%B8-%EB%B3%80%ED%99%98-%ED%96%88%EC%9D%84-%EB%95%8C-%EB%B2%8C%EC%96%B4%EC%A7%80%EB%8A%94-%EC%9D%BC%EA%B3%BC-%EA%B2%B0%EA%B3%BC-%ED%95%B4%EC%84%9D

 

로그 변환은 데이터의 이상치(outliers)가 모델에 미치는 영향을 줄여준다. 모델이 데이터의 중심부에 더 집중하게 되어, 극단적인 값들에 의한 왜곡을 줄일 수 있고, 변환 과정에서 극단값의 상대적 영향력이 감소하기 때문이다.
 
 

결론

로그 변환은 이러한 장점들 덕분에 선형 회귀 모델, 일반화 선형 모델 등 다양한 통계적 모델링 방법에 적합하게 만드는 데 효과적인 방법이다. 하지만, 역시나 모든 데이터 피처 집합에 대해 로그 변환이 유용한 것은 아니므로, 변환을 적용하기 전에 데이터의 특성과 모델링 목적을 반드시 고려해야만 한다.
 
 
 
 
 


Reference)
https://recipesds.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EB%A1%9C%EA%B7%B8-%EB%B3%80%ED%99%98-%ED%96%88%EC%9D%84-%EB%95%8C-%EB%B2%8C%EC%96%B4%EC%A7%80%EB%8A%94-%EC%9D%BC%EA%B3%BC-%EA%B2%B0%EA%B3%BC-%ED%95%B4%EC%84%9D
https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques