본문 바로가기
데이터 분석

박스콕스 변환 vs 여존슨 변환 어떻게 다른가?

by 데이널 2024. 2. 2.

가끔씩 박스콕스(Box-Cox) 변환을 해야 하는 경우가 생기는데요. 왜 하는지 모르는데 선배가 하라고 하니까 하는 경우도 많은 것 같아요. 이번 글에서는 박스콕스 변환이 무엇이고 변환하고 나면 어떤 이점이 있는지에 대해 알아보도록 하겠습니다.  

 

 

Box-Cox 변환이란?

박스콕스 변환은 분산을 안정화하고 데이터 세트를 정규 분포에 더 가깝게 만드는 데 사용되다고 알고 있을 것입니다. 이 수학적 기법이 어떤 상황에서 사용될까요? 선형회귀와 같은 통계적 방법에서 흔히 요구되는 '등분산성'이나 '정규성' 가정을 위반하는 데이터에 일반적으로 적용됩니다.

 

등분산성에 대한 재미있는 글이 있어 공유할까 합니다. 과천 경마장에 가보신 분들은 경기를 직접 보셨을 건데요. 경주마들이 빠른 말과 느린 말이 있습니다. 1등 말의 통과 시간과 2등 말, 그리고 가장 느린 말의 완료 시간 차이는 점점 커지죠. 이것을 통계에서 평균에 대해 데이터가 얼마나 변하는지를 '분산'이라는 용어로 이야기합니다.

 

여기 예에서는 빠른 말과 느린 말 사이에 일관되지 않은 분산(이분산성)이 있다고 생각해 볼 수 있습니다. 데이터의 분포는 종형 곡선이 아니거나, 오른쪽에 더 긴 꼬리가 있는 경우 정규 분포가 아닙니다. 이러한 분포는 의외로 많은 분야에서 발견되는데요. 이를 정규분포처럼 우리 아는 편안한 분포로 변환할 수 있다면 어떨까요? 훨씬 분석이 쉬워질 것입니다. 그 변환 작업이 바로 박스콕스, 여존슨 변환입니다. 

 

박스콕스 변환 그래프
박스콕스 변환 (출처: geeksforgeeks.org)


Box-Cox 변환은 다음과 같은 식으로 정의됩니다.

$$ f(x) = \begin{cases} \dfrac{x^\lambda - 1}{\lambda}, & \text{if } \lambda \neq 0 \\ \log{x}, & \text{if } \lambda = 0 \end{cases} $$

 

여기서 \( x \)는 원본 데이터, \( \lambda \)는 변환 매개변수, \( f(x) \)는 변환된 데이터입니다. 변환은 로그를 취하는 것과 관련되므로 \( x > 0 \)에 양수여야 된다는 조건이 있습니다. \( \lambda \) 를 어떤 값으로 선택하는가는 변환의 성격을 결정하므로 매우 중요한 요소입니다.

  • - \( \lambda = 0 \) 이면 변환은 자연 로그 \( \log(x) \)가 됩니다.
  • - \( \lambda \neq 0 \) 이면 \( x \)를 \( \lambda \)의 거듭제곱으로 올리고 1을 뺀 다음 \( \lambda \) 로 나눕니다.

최적의 \( \lambda \)를 찾기 위해서 통계적 기법들을 사용할 수 있습니다. Box-Cox 절차는 변환된 데이터에 대한 로그 우도 함수(log-likelihood function)를 최대화하는 \( \lambda \) 값을 찾는 것을 목표로 합니다.

 

Box-Cox 변환의 주요 특징

안정된 분산

Box-Cox 변환은 데이터의 분산이 모든 수준에서 일정하지 않은 경우가 존재합니다. 이러한 통계 모델에서 등분산성 가정을 위반할 때 특히 사용하면 유용합니다.

분포 정규화

Box-Cox 변환은 데이터 분포가 정규화를 이루지 않는 모형에서 정규화하는 데 많이 사용합니다.  이는 통계적 추론 및 모델링에 중요하게 사용됩니다. 

로그 데이터 및 해석

로그는 0 또는 음수 값에 대해 정의되지 않으므로 일반적으로 양수입니다. 이렇게 오른쪽으로 치우친 데이터에 적용할 수 있습니다. Box-Cox 변환을 적용한 후 변수 간의 관계가 변경될 수 있습니다. 해석은 변형된 공간에서 이루어져야 합니다.

매개변수 조정 및 0 값 처리

\( \lambda \) 선택은 변환의 효율성에 영향을 미칩니다. 이는 통계 기법을 통해 또는 다양한 잠재적 값을 분석하여 결정하는 좋습니다. 데이터에 0이 포함된 경우 일반적인 방법은 0 값 관련 문제를 방지하기 위해 변환을 적용하기 전에 모든 값에 상수를 추가하는 것입니다.

 

여존슨(Yeo-Johnson) 변환

Yeo-Johnson 변환 역시 데이터 세트를 정규 분포에 가깝게 만드는 거듭제곱 변환 기법입니다. 이는 Box-Cox 변환의 확장이며 Robert A. Yeo와 Robert R. Johnson에 의해 2000년에 알려졌습니다. Yeo-Johnson 변환은 Box-Cox 변환의 일부 한계, 특히 양수 데이터에 대한 제한을 극복하도록 설계되었습니다. 

Yeo-Johnson 변환은 다음과 같이 정의됩니다.

$$ \begin{cases} \dfrac{(x+1)^\lambda - 1}{\lambda}, & \text{if } x \geq 0, \text{ for } \lambda \neq 0, x \neq 0 \\ \log(x+1), & \text{if } x \geq 0, \text{ for } \lambda = 0, x \neq 0 \\ -\dfrac{1}{(1-x)^\lambda - 1}, & \text{if } x < 0, \text{ for } \lambda \neq 0, 1-x \neq 0 \\ -\log(1-x), & \text{if } x < 0, \text{ for } \lambda = 0, 1-x \neq 0 \end{cases} $$

 

여기서 \( x \)는 원본 데이터, \( \lambda \)는 변환 매개변수, \( f(x; \lambda) \)는 변환된 데이터입니다. Yeo-Johnson 변환을 사용하면 양수 데이터에 대해서만 정의되는 Box-Cox 변환과 달리 양수 값과 0 값을 모두 더 유연하게 처리할 수 있습니다.

 

Yeo-Johnson 변환의 주요 특징

0 값 처리

- 변환은 추가 이동(shfit) 매개변수 없이 0 값을 수용합니다. 따라서 0 값이 포함된 데이터 세트를 처리할 때 더 다양한 용도로 사용할 수 있습니다.

변환 매개변수 \( \lambda \) 

- Box-Cox 변환과 유사하게 Yeo-Johnson 변환에는 변환의 특성과 강도를 결정하는 매개 변수 \( \lambda \)가 포함됩니다. 최적의 \( \lambda \)는 일반적으로 변환된 데이터에 대한 로그 우도 함수를 최대화하기 위해 선택됩니다.

유연성

- Yeo-Johnson 변환은 단조성을 엄격하게 적용하지 않으므로 Box-Cox보다 더 유연합니다. 더 넓은 범위의 변환이 가능하므로 다양한 특성을 가진 데이터 세트에 적합합니다. 이게 가장 큰 장점입니다. 

 

역변환

- 역 Yeo-Johnson 변환을 적용하여 데이터를 원래 크기로 되돌릴 수 있습니다. 역변환은 양수 값과 음수 값 모두에 대해 정의됩니다.

 

마무리 

요약하면 Box-Cox 변환과 Yeo-Johnson 변환은 모두 거듭제곱 변환을 통해 분산을 정규화하는 방법입니다. Yeo-Johnson 변환은 Box-Cox 변환의 확장으로, 별도의 이동 매개변수 없이 양수 값과 0 값을 모두 포함하는 더 넓은 범위의 데이터를 처리하도록 설계되었습니다. 둘 사이의 선택은 데이터의 특성과 분석의 특정 요구 사항에 따라 달라질 수 있습니다.

 

 

 

나이브 베이즈(Naive Bayes) - 확률적 생성 모델, Likelihood

이번 포스팅 부터 나이브 베이즈(Naive Bayes) 분류에 대해 하려고 합니다. 우선 나이브 베이즈를 들어가기 전에 확률적 생성 모형이라는 기본 지식부터 알아야 합니다. 분류(Classification) 모형의 종

bommbom.tistory.com