본문 바로가기

Analysis

Skewness, 비대칭 데이터

728x90
반응형

머신러닝 프로젝트를 진행할 때 정규 분포가 아닌 꼬리가 한쪽으로 긴 비대칭 데이터를 자주 볼 수 있다. 비대칭 데이터를 정규 분포로 변환해야 모델의 성능이 올라가거나 예측 오차가 줄어든다는 글을 많이 보았는데 이 데이터의 형태는 어떤 것인지, 꼭 변환을 해야 할지 정리해보고자 한다.


왜도(skewness)란 무엇일까?

왜도(skewness)란 한마디로 데이터 분포의 비대칭성의 정도를 뜻한다. 

분포는 오른쪽 꼬리가 길거나(skewness > 0), 왼쪽 꼬리가 길거나(skewness < 0) 또는 0의 수치를 가질 수 있다. 

아마 다음과 같은 경우에 왜도를 계산할것이다.

  • 해당 변수에 대해 설명하고자 할 때.
  • 해당 변수가 정규 분포인지 확인하고자 할 때. 정규 분포의 왜도 값은 0으로써 많은 통계적 절차들이 정규 분포를 가지는 데이터를 가정한다.

 

 

zero skew란 무엇일까?

왜도에 대해 좀 더 자세히 얘기해보자.
왜도가 0이라면 그 데이터의 분포는 대칭을 뜻한다. 즉 왼쪽과 오른쪽의 본포가 거울 이미지처럼 유사하다는 것이다. 

정규 분포의 왜도는 0이다. 하지만 정규 분포의 왜도만 0인 것은 아니고 다른 어떤 데이터라도 대칭적인 분포를 가진다면 왜도는 0이다. 
해당 변수의 분포가 비대칭인지 확인하는 가장 쉬운 방법은 히스토그램 차트를 그려서 확인하는 것이다. 아래와 같은 분포는 대략적인 대칭 분포이다. 관찰된 분포의 왼쪽과 오른쪽이 유사한 분포를 가진다. 즉, 이 분포는 0에 근접한 왜도를 가질 것이다. 

skew 0 : 평균 = 중앙값

실제 데이터는 대부분 약간의 왜도를 가지고 있다. 하지만 이럴 경우 거의 대칭 데이터로 취급한다. 

 

right-skew (양의 skew)란 무엇일까?

right-skew는 우측의 꼬리가 길고 좌측에 분포의 피크가 있는 경태를 뜻한다. 이때 skew값은 양수이다.
왜도는 꼬리의 측면에서 생각할 수 있는데 꼬리는 데이터 분포에서 끝이 가늘고 길어지는 끝이고, 이건 관측치의 끝이 극단적인 경우가 있음을 뜻한다. right-skewed 분포는 오른쪽으로 긴 꼬리가 있는 분포를 뜻한다. 우측으로 극단적이 관측치가 있는 분포는 평균보다 훨씬 큰 값을 가지는 관측치가 많다는 것을 뜻하기도 한다. 

즉, right-skewed 분포는 거의 항상 평균이 중앙값보다 크다. 평균보다 훨씬 큰 값을 가지는 관측치들이 중앙값보다 평균에 영향을 미치기 때문이다. 

Right skew : 평균  > 중앙값

 

left-skew (음의 skew)란 무엇일까?

left-skew 분포는 관측치가 가장 많은 값보다 왼쪽으로 꼬리가 긴 분포를 나타낸다. 이 때 skew 값은 음수이다.
아래 차트를 보면 피크와 비교해서 왼쪽의 분포가 더 긴 것을 확인할 수 있다. left-skew 분포의 평균은 거의 항상 중앙값보다 작다.

Left skew :  평균 < 중앙값

 

왜도는 어떻게 계산할 수 있을까?

skewness를 계산하는 방법은 몇 가지가 있지만 가장 간단한 방법 중 하나는 피어슨 비대칭도(Pearson's median skewness)를 사용할 수 있다. 이 방법의 치우친 분포에서는 중앙값과 평균이 같지 않다는 것을 이용한다.

Pearson's median skewness = 3 * (Mean - Median) / Standard deviation 

실제 데이터에서 Pearson's median skewness가 0인 경우는 거의 찾기 힘들다. 만약 값이 0에 가깝다면 거의 제로 skew라고 봐도 무방할 것이다. 여기서 '0에 충분히 가깝다'에 대한 표준이나 기준은 없다. 

 

내 데이터가 한쪽으로 치우쳤다면 (data is skewed) 무엇을 해야 할까?

데이터의 분포를 확인하는 이유는 통계적 절차에 데이터가 적합할지 확인하기 위함이다. 왜냐면 많은 통계적 절차가 데이터나 오차가 정규 분포를 가정하기 때문이다. 만약 진행할 다음 통계적 절차나 방법이 정규 분포를 전제로 하고 있고 현재 가지고 있는 데이터가 skewed 분포라면 세 가지 선택지가 있다.

1. 아무것도 하지 않기
t 테스트, ANOVA, 선형 회귀 같은 많은 통계적 기법은 skewed 데이터에 그렇게 민감하지 않다. 특히 skewed 된 정도가 심하지 않다면 그냥 무시하는 것이 최선일 수 있다.

2. 다른 모델 사용하기 
정규 분포를 가정하지 않는 다른 모델을 사용하는 것이다. 비보수 방법 또는 정규화된 선형 모델이 더 적합할 수 있다. 

3. 변수를 변환하기
또 다른 선택은 skewed 된 데이터의 변수를 변환해서 조금 덜 skewed 하게 만드는 것이다. '변환'이라는 것은 하나의 변수의 모든 관측치에 대해 동일한 함수를 적용한다. 적용할 수 있는 변환은 다음과 같다. 

skew 타입 skew 정도 변환 방법
Right Mild 변환하지 않는다
Moderate sqrt
Strong ln (자연로그)
Very strong log 10
Left Mild 변환하지 않는다
Moderate Reflect(*)후 sqrt
Strong Reflect(*)후 ln
Very strong Reflect(*)후 log10

* Reflect : 가장 큰 값을 가지는 관측치 K라고 했을 때 K+1에서 모든 관측치를 빼는 것. 변수의 방향과 다른 변수와의 관계를 반대로 하는 것을 뜻한다. (양의 관계를 음의 관계로 만드는 것 같은)

728x90
반응형