Algorithm

[데이터 전처리] Yeo Johnson 변환

어쩌다통계 2022. 10. 19. 00:42
728x90

모델링의 가장 기본이 되는 선형 회귀모델을 적합할 때는 4가지 기본 가정을 만족해야 한다.

다음과 같은 회귀모델이 있다고 하면,

 

선형회귀모델

 

1. 선형성 : 독립변수(X)와 종속변수(Y) 간의 선형 관계 존재

 

오차항의 분포

 

2. 독립성 : 오차항 epsilon 간 서로 독립

3. 등분산성 : 오차항 epsilon들의 분산이 일정

4. 정규성 : 오차항 epsilon은 평균이 0인 정규분포를 따름

 

오늘은 선형 회귀 적합시, 정규성이나 등분산성 가정을 만족하지 않는 경우 처리하는 방법에 대해 알아보려고 한다.

모델링을 할 때, 한쪽으로 쏠린 데이터나, 잔차 그래프에서 점점 분산이 커지는 것을 데이터를 만나는 경우가 많은데

이경우 적용할 수 있는 방법 중 하나가 Y를 변환해주는 것이다.

 

Box-Cox변환을 일반적으로 많이 사용하고 있다.

 

Box-Cox 변환

 

하지만 Box-Cox변환은 y가 0이거나 0보다 작은 경우는 적용할 수 없다는 한계가 있다.

이를 개선하는 방법으로 제안된 것이 Yeo-Johnson Power Transformations이다.

 

Yeo-Johnson 변환

 

식을 보면 y값들이 0보다 크면 기존 y에 1을 더한 뒤, Box-Cox 변환하는 것과 일치하다.

 

< R코드 >

library(VGAM)
y0 = rpois(1000,0.5)+rnorm(1000,-1,0.5)
y = yeo.johnson(y = y0, lambda = 0.6)

par(mfrow=c(1,2))
plot(density(y0), main="원본 데이터 분포")
plot(density(y), main="Yeo Johnson 변환후 데이터 분포")

적절한 lambda는 변환된 y를 그려보면서 정할 수 있다.

 

[출처] Yeo, In-Kwon; Johnson, Richard A. (2000). "A New Family of Power Transformations to Improve Normality or Symmetry". Biometrika87 (4): 954–959. doi:10.1093/biomet/87.4.954JSTOR 2673623.

 

반응형