이상치(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 |