Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Studying data

이상치를 무작정 제거하면 안되는 이유 | Why You Shouldn’t Just Delete Outliers 본문

Data Science

이상치를 무작정 제거하면 안되는 이유 | Why You Shouldn’t Just Delete Outliers

halloweenie 2023. 4. 6. 21:43

이상치(Outliers)

이상치(Outliers)란 데이터의 전체적인 패턴에서 동떨어져 있는 관측값 즉, 변수 분포에서 비정상적으로 벗어난 편차가 큰 값을 말한다. 이상치는 평균에 영향을 미칠 뿐만 아니라 분산(표준편차)이 커져서 불안정한 자료가 되고, 데이터의 통계값과 분포를 왜곡할 수 있다. 이처럼 이상치는 매우 중요한 요소이기 때문에 우리는 항상 데이터 전처리를 할 때 이상치들을 어떻게 처리해야 할지 고민해야 한다(분석을 위해 이상치를 포함시켜야 할지 혹은 제거해야 할지 등). 더욱이 예측 모델을 만드는 경우, 훈련 데이터셋에서 이상치를 미리 제거하면 예측 성능을 올릴 수 있기 때문에 이상치를 잘 다루는 것은 필수라고 볼 수 있다.

 

이상치의 종류

  • 데이터 생성 시 실수로 생겨난 이상치(non-natural outliers): 데이터 수집에서의 오류, 측정 단위 오류, 실험 과정에서의 오류에 의해 발생 ex) age=356
  • 자연적으로 발생한 이상치(natural outliers): 자연적으로 데이터의 관측치에 큰 차이가 발생하는 경우 ex) 직원 월급 데이터에서 임원급과 일반 사원들의 월급 차이, 은행 데이터에서 금융 사기 거래 (fraudulent transactions) 케이스
  • 역코딩에 의한 이상치: ex) 설문지에서 의도적으로 1번과 5번 성향을 바꿔놨는데 데이터 분석 시 고려를 안 한 경우
  • 의도적인 이상치: ex) 설문조사 시 10대들은 알콜 섭취량을 일부러 낮게 적음 
  • Sampling 이상치: 표본 중 우연히 이상치 요소들이 포함되는 경우 ex) 키를 조사하기 위해 sampling을 했는데 농구선수가 포함된 경우

이상치와 노이즈의 차이  |  Are Outliers and Noise the same? - "No"

- Noise is considered as a random error or the variance in a measured variable

- The process of noise removal should be done before outlier detection

이상치는 언제 위험한가? | When are outliers dangerous?

어떤 통계검정들은 이상치에 민감하기 때문에 이를 탐색하여 적절하게 처리하는 것은 데이터 분석에서 중요하다. 그러나 이상치가 항상 위험한 것은 아니다. 이상치는 측정 단위에서의 오류, 데이터 수집에서의 오류, 혹은 데이터 수집시 실수로 고려하지 않았던 요소들을 발견하게 해주는 유용한 지표가 되기도 한다. 또, 데이터에서 이상치를 무작정 제거해버리는 것은 굉장히 위험할 수 있다. 이상치를 다루는 아래의 세 예시를 살펴보자.

 

• Example 1) 인구 나이 데이터에 나이가 356살인 value 있는 경우, 우리는 이것이 불가능한 수치임을 안다. 이 356살이라는 값을 어떤 값으로 대체해야 할지 정보가 부족하므로 과감히 제거한다.

 

• Example 2) 신용카드 사기 감지를 위한 분석과 같은 경우, 이상치를 제거하는 것이 아니라 분석하는 것이 매우 중요해진다. 데이터의 규칙성보다는 예외 데이터가 주목해야 할 부분이기 때문이다. 

 

• Example 3) This is a regression problem where hours of study are the independent variable and marks are a dependent variable. We have some outliers present, so they attract the line of regression to our side. To resolve this, we can create an IQ column then the outlier behavior may be justified from the IQ column.

 

effect of outliers on the regression

위 세가지 사례들을 통해 문제 정의에 따라 이상치의 역할, 처리하는 방법이 달라짐을 알 수 있다. 즉, 중요한 것은 이상치를 무작정 제거하는 것이 아니라 정의된 문제에 알맞게 이상치를 다루는 것이다. 

이상치에 영향을 받는 수치 | Which statistics are affected by the outliers?

이상치에 영향을 받는 값

 

  • 평균(Mean): 전체 value들의 합을 전체 value 개수로 나누어 계산하기 때문에 대표값(평균, 중앙값, 최빈값) 중 항상 이상치에 영향을 받는 값이다.
  • 표준편차(Standard Deviation): 각 value들과 평균간의 차를 이용하여 계산하므로 이상치에 민감하다.
  • 범위(Range): 최대값과 최소값 간의 차이이므로 이상치에 가장 많이 영향을 받음

이상치에 영향을 받지 않는 값

 

  • 중앙값(Median): 이상치에 영향을 받지 않으므로 극단적인 데이터 분포에서 중심경향성(central tendency)을 측정하는 데에 유용하다. 
  • 최빈값(Mode)
  • Inter-Quartile Range(IQR): IQR은 이상치에 더 resistant 하다. IQR은 데이터의 중앙에 분포한 50%에 해당하고 이상치는 이 범위에서 벗어나 있기 때문이다. 또 이상치가 적은 경우, IQR이 이상치에 의해 유의미하게 조정되지 않는다. 데이터셋이 큰 경우에는 이상치를 추가하면 IQR은 다른 data points로 옮겨지긴 하겠지만, 결국 전체적인 모습은 이전과 비슷할 것이다(최대값보다 크거나 최솟값보다 작은 극단적인 값을 추가해도 75th와 25th percentile은 바뀌지 않을 것)

언제 이상치를 제거해야 할까? | When to drop or keep outliers?

이상치를 제거할 때에는 항상 신중해야 하며, 측정 단위 오류에 의한 이상치같은 극단적인 경우에만 제거하는 것이 좋다. 앞서 말한 것과 같이 이상치는 데이터 수집 과정에서 오류가 있었음을 보여주기도 한다. 이런 오류들에 의한 것이 아닐 경우 이상치는 분석 과정에서 유의미할 수 있기 때문에, 또 데이터셋을 더 잘 이해하기 위해 남겨놓는 것이 좋다.

 

이상치를 제거해도 되는 경우

 

  • 이상치가 불가능한 범위에 있는 것을 확신할 때: ex) 위 Example 1)의 경우 사람의 나이가 어느 범위에 있어야 정상인지를 확실히 알 수 있다. 356살이면 당연히 측정이나 수집 오류에 의한 것이므로 과감히 제거한다.
  • 데이터셋의 크기가 클 때: 데이터가 충분한 경우 이상치를 제거해도 괜찮다.
  • 이상치 제거 전으로 되돌릴 방법이 있을 때: 제거한 데이터를 다시 수집해서 확인할 수 있는 경우

이상치를 제거하면 안 되는 경우

 

  • 이상치 제거가 critical한 영향을 줄 때: 데이터셋의 작은 변화가 결과에 크게 작용할때는 이상치를 함부로 제거하는 것이 위험할 수 있다. ex) the temperatures at which airplane seals fail
  • 이상치가 많을 때: 이상치는 기본적으로 rare 하다. 예를 들어, 이상치가 전체 데이터의 25%로 많은 경우 어떤 유의미한 현상이 있는지 해당 25%의 데이터를 분석해 볼 필요가 있다. ex) 위 Example 2) 신용카드 사기 감지 데이터

 

 

Reference

1. https://www.analyticsvidhya.com/blog/2021/05/why-you-shouldnt-just-delete-outliers/

2. https://blog.naver.com/dbwjd516/222463050836

Comments