1. IQR(사분위 범위)을 이용하여 처리 시간이 비정상적으로 긴 장비를 찾고, 이상치 제거 전후의 평균을 비교하세요.
다음 작업을 수행하세요.
- 처리시간의 평균을 계산하세요.
- 제1사분위수(Q1)와 제3사분위수(Q3)를 계산하세요.
- IQR을 계산하세요.
- IQR 기준으로 이상치를 탐지하세요.
- 이상치를 제외한 데이터의 평균을 계산하세요.
- 이상치 제거 전후의 평균을 비교하세요.
조건: 이상치를 탐지할 때 IQR의 1.5배 기준을 사용하세요.
2. 데이터 생성 코드
import pandas as pd
data = {
'장비ID': [
'S01', 'S02', 'S03', 'S04', 'S05',
'S06', 'S07', 'S08', 'S09', 'S10'
],
'처리시간': [
48, 52, 49, 51, 50,
47, 53, 52, 49, 200
]
}
df = pd.DataFrame(data)
print(df)
3. 핵심 개념: IQR이란?
IQR은 Interquartile Range의 약자로, 데이터의 가운데 50%가 분포하는 범위를 의미합니다.
4. 이상치 판단 기준
일반적으로 다음 범위를 벗어나면 이상치 후보로 판단합니다.
실제 값을 대입하면 다음과 같습니다.
5. 힌트
사분위수 계산
q1 = df['처리시간'].quantile(0.25)
q3 = df['처리시간'].quantile(0.75)
이상치 판단
lower = q1 - 1.5 * iqr
upper = q3 + 1.5 * iqr
이상치 선택
outliers = df.loc[
(df['처리시간'] < lower) |
(df['처리시간'] > upper)
]
6. 예상 출력 결과
=== IQR 분석 결과 ===
Q1: 49.00
Q3: 52.00
IQR: 3.00
하한값: 44.50
상한값: 56.50
=== 이상치 데이터 ===
장비ID 처리시간
S10 200
=== 평균 비교 ===
전체 평균: 65.10초
이상치 제외 평균: 50.11초
평균 차이: 14.99초