본문 바로가기
TIL

본 캠프 50일차 TIL

by Data 학습자 2024. 8. 12.

이상치(Outlier)는 데이터 분석에서 관찰된 값들이 대부분의 데이터와 비교했을 때 상당히 다른 값을 가지는 데이터를 의미한다. 이상치는 데이터의 분포에서 벗어난 값으로, 데이터의 분석 결과에 큰 영향을 미칠 수 있기 때문에 이를 식별하고 처리하는 것이 매우 중요하다.

이상치의 원인

이상치는 여러 가지 원인으로 인해 발생할 수 있다. 주요 원인으로는 다음과 같은 것들이 있다

 

1. 측정 오류

  • 데이터 수집 과정에서 발생할 수 있는 오류로, 잘못된 장비 설정, 인간의 실수, 시스템 오류 등이 이상치를 유발할 수 있다.

2. 데이터 입력 오류

  • 데이터를 수동으로 입력하는 과정에서 발생하는 오류로, 잘못된 값이 입력되면 이상치가 발생할 수 있다.

3. 자연적인 변동

  • 실제로 발생하는 극단적인 상황으로 인해 이상치가 나타날 수 있다.

4. 분포의 특성

  • 데이터가 비정상적으로 분포된 경우, 분포의 특성으로 인해 일부 값이 이상치로 보일 수 있다.

이상치 탐지 방법

이상치를 탐지하는 방법에는 여러 가지가 있으며, 데이터의 특성과 분석 목적에 따라 적절한 방법을 선택해야 한다. 주요 이상치 탐지 방법은 다음과 같다.

 

1. 사분위수 범위(IQR) 방법

  • 사분위수 범위(IQR)는 데이터의 중간 50%에 해당하는 값을 포함하는 범위이다. 이상치는 일반적으로 이 범위 밖의 값을 의미하며, 이를 통해 이상치를 탐지할 수 있다.
  • 이상치 기준: Q1 - 1.5*IQR보다 작거나 Q3 + 1.5*IQR보다 큰 값
Q1 = df['Value'].quantile(0.25)
Q3 = df['Value'].quantile(0.75)
IQR = Q3 - Q1

lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

iqr_outliers = df[(df['Value'] < lower_bound) | (df['Value'] > upper_bound)]

iqr_outliers

 결과값

2. 표준편차 방법

  • 데이터가 정규 분포를 따른다고 가정할 때, 평균에서 멀리 떨어진 값들을 이상치로 간주할 수 있다.
  • 일반적으로 평균에서 3표준편차 이상 떨어진 값들을 이상치로 본다.
mean = df['Value'].mean()
std_dev = df['Value'].std()

std_dev_outliers = df[(df['Value'] < mean - 3 * std_dev) | (df['Value'] > mean + 3 * std_dev)]

std_dev_outliers

결과값

3. Z-점수(Z-score)

  • Z-점수는 각 데이터가 평균에서 몇 표준편차만큼 떨어져 있는지를 나타내는 값이다.
  • Z-점수가 절대값 기준으로 3 이상인 경우 이상치로 간주한다.
from scipy.stats import zscore

df['Z-Score'] = zscore(df['Value'])
z_score_outliers = df[np.abs(df['Z-Score']) > 3]

z_score_outliers

결과값

4. 시각적 방법:

  • 박스플롯(Boxplot): 박스플롯은 데이터의 분포를 시각적으로 보여주는 도구로, 이상치는 보통 플롯에서 상자 밖에 점으로 표시된다.

  • 산점도(Scatter Plot): 데이터 간의 관계를 시각적으로 보여주는 도구로, 이상치는 다른 점들과 분리되어 위치하게 된다.

5. 모델 기반 방법:

  • 회귀 분석, 군집 분석 등의 모델을 이용하여 데이터 포인트가 다른 데이터 포인트들과 얼마나 다른지 평가하는 방법이다.
  • 예를 들어, 회귀 분석에서 잔차(residual)가 큰 데이터 포인트를 이상치로 간주할 수 있다.

이상치 처리 방법

이상치를 발견한 후에는 이를 처리하는 방법도 중요하다. 이상치를 처리하는 방법에는 다음과 같은 방법들이 있다:

1. 제거:

  • 이상치를 데이터셋에서 제거하는 방법이다. 다만, 이 방법은 중요한 정보를 잃을 위험이 있으므로 신중하게 결정해야  한다.

2. 대체:

  • 이상치를 평균, 중앙값, 또는 근접한 값으로 대체하는 방법이다. 이 방법은 데이터의 왜곡을 줄이는 데 유용하다.

3. 변환:

  • 로그 변환(Log Transformation), 제곱근 변환(Square Root Transformation) 등의 방법으로 이상치를 다른 값으로 변환하여 이상치의 영향을 줄이는 방법이다.

4. 모델링 기법 사용:

  • 이상치를 별도로 모델링하거나, 이상치에 덜 민감한 모델(예: 결정 트리, 랜덤 포레스트 등)을 사용하여 분석하는 방법이다.

이상치의 영향

이상치는 데이터 분석에 있어 중요한 요소로, 데이터의 평균, 표준편차 등 기본적인 통계값에 큰 영향을 미칠 수 있으며, 모델링 과정에서 과적합(overfitting)이나 예측 성능 저하를 유발할 수 있다. 따라서 이상치를 제대로 탐지하고 처리하는 것은 데이터 분석에서 매우 중요한 과정이다.

'TIL' 카테고리의 다른 글

본 캠프 54일차 TIL  (0) 2024.08.16
본 캠프 51일차 TIL  (0) 2024.08.13
본 캠프 47일차 TIL  (0) 2024.08.09
본 캠프 46일차 TIL  (0) 2024.08.09
본 캠프 45일차 TIL  (0) 2024.08.07