IQR(Interquartile Range, 사분위 범위)는 데이터에서 이상치를 탐지하고 변동성을 측정하는 데 사용되는 통계적 지표입니다.
📌 IQR의 정의
IQR은 데이터의 1사분위수(Q1)와 3사분위수(Q3)의 차이를 의미합니다.
- Q1 (1st Quartile, 25%): 데이터의 하위 25% 지점
- Q3 (3rd Quartile, 75%): 데이터의 상위 25% 지점
- IQR 계산식: IQR=Q3−Q1IQR = Q3 – Q1IQR=Q3−Q1
📌 IQR의 활용
- 이상치(Outlier) 탐지
- 이상치는 일반적으로 다음 범위를 벗어난 값으로 정의됩니다. Lower Bound=Q1−1.5×IQR\text{Lower Bound} = Q1 – 1.5 \times IQRLower Bound=Q1−1.5×IQR Upper Bound=Q3+1.5×IQR\text{Upper Bound} = Q3 + 1.5 \times IQRUpper Bound=Q3+1.5×IQR
- 이 범위를 벗어난 값들은 이상치로 간주될 수 있습니다.
- 데이터 변동성 분석
- IQR이 크면 데이터가 넓게 분포되어 있으며, 작으면 데이터가 좁게 분포되어 있다고 해석할 수 있습니다.
- 데이터 정제 및 전처리
- 이상치를 제거하거나 적절한 값으로 대체할 때 유용합니다.
📌 IQR을 활용한 예시 (Python)
python복사편집import numpy as np
# 예제 데이터
data = [10, 12, 14, 15, 18, 21, 24, 30, 35, 40]
# Q1, Q3 계산
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
# IQR 계산
IQR = Q3 - Q1
# 이상치 범위 계산
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
print(f"Q1: {Q1}, Q3: {Q3}, IQR: {IQR}")
print(f"이상치 기준: {lower_bound} ~ {upper_bound}")
👉 IQR을 사용하면 데이터에서 이상치를 효율적으로 제거할 수 있습니다!