Data Story

데이터 사이언스, 쉽게 설명하기

Preprocessing/Outlier Detection

Z-Score를 사용하기 전에 알아둬야할 것

_data 2023. 9. 25. 10:28

Image from Vitalflux

Outlier을 제거하는 것은 모델의 Performance 상승에 기여한다고 알고 있다. 하지만, 이 이상치를 제거하는 것이 꼭 타당한 방법일까? Outlier Detection 방법 중 하나인 Z-score에 대해 알아보자.

 

그 전에, Outlier을 제거하면 어떤 장점이 있을까?

1. Improve Model Performance : Training Dataset, Valid Dataset의 Performance가 상승하는 것을 볼 수 있다. 그러나, 경험상, Test set에서는 항상 상승하는 것은 아니다.

2. Enhance Robustness : 극값으로 인해, 평균과 분산이 흔들리게 되는데 이 극값, 즉 이상치를 제거함으로써 새로운 데이터셋에 극값이 있어도 쉽게 흔들리지 않는다. (Robustness = 이상치에 강하다.)

3. Data Visualization : 이상치를 제거하면, 변수 또는 변수 간의 관계를 시각화 자료로 올바르게 볼 수 있을 것이다.

4. Data Interpretability : 이상치를 제거하면, 전형적인 데이터 패턴을 확인할 수 있을 것이며, 이는 데이터를 올바르게 해석하는데 도움이 된다.

 

Z-score

Image from Analytics Vidhya

Z-score은 통계적인 기법이다. 평균에서 얼마나 떨어져있는지를 보고 outlier로 선정한다. 보통 +-2 sigma, +- 3 sigma를 기준으로 Outlier로 판정한다. 이 값을 구하는 것은 X-mu / sigma 로 구한다. 

X : 각 값(Data points)

mu : 평균(Mean)

Sigma : 표준편차(Standard Deviation)

 

그러면 이상치 탐지(Outlier Detection)때는, Z-score가 짱이구나! 그러나, 한계점도 존재한다.

 

Limitation of Z- score

1. Z-score에는 가정이 있는데, 데이터셋이 정규분포를 따라야 한다는 것이다.

- 그러나, 중심극한정리(데이터셋이 충분히 크다면 정규분포를 따른다, Central limit theorem)가 있어 데이터셋이 충분히 크다면 이 가정을 무시할 수 있다.

 

2. 작은 데이터셋

- 데이터셋이 작다면, 몇몇의 이상치로 인해 평균과 분산의 값이 한쪽으로 쏠리게 된다. 이는 왜곡된 Z-score를 도출한다.

 

3. threshold를 정하는 것

- 이전에 말했듯, 보통 2 sigma, 3 sigma로 판단한다고 했지만, 이 Threshold를 정할 때는 도메인 지식과 분석의 목적과 목표에 따라 다르다. 예를 들어, 구매 패턴을 분석하는 경우 약간의 변동성을 허용하는 것이 좋을 수 있으므로 높은 Threshold를 설정하기도 한다. 또한, 이상치 탐지의 목적이라면 낮은 Threshold값을, 단지 매우 극단적인 Outlier만 찾는 것이 목적이라면 높은 Threshold를 설정