ML에서의 통계적 검정 (Statistical Testing in ML)¶
개요¶
"모델 A의 정확도 85.2%, 모델 B의 정확도 84.8%"라면, A가 정말로 더 좋은 모델인가? 이 차이가 우연(noise)에 의한 것인지, 진짜 성능 차이인지를 판단하려면 통계적 검정이 필요하다.
성능 지표만 보고하고 통계적 유의성을 확인하지 않으면, 노이즈에 기반한 잘못된 결론을 내릴 위험이 있다.
핵심 개념¶
왜 통계적 검정이 필요한가?¶
- 교차 검증 결과는 데이터 분할에 따른 확률적 변동을 가진다
- 테스트 세트가 유한하므로, 성능 추정에는 항상 불확실성이 존재
- 작은 성능 차이가 통계적으로 유의하지 않을 수 있고, 반대로 작은 차이가 일관적이어서 유의할 수도 있다
상세 내용: 주요 검정 방법¶
1. 대응 t-검정 (Paired t-test)¶
k-fold CV에서 각 fold의 성능 차이 \(d_i = \text{Score}_i^A - \text{Score}_i^B\)에 대해:
- \(\bar{d}\): 차이의 평균
- \(s_d\): 차이의 표준편차
- 자유도: \(k - 1\)
가정: 차이 \(d_i\)가 정규 분포
심각한 문제: k-fold CV의 관측값은 독립이 아니다 (훈련 세트가 겹침). 결과적으로 실제 Type I 오류율이 명목(nominal) 수준보다 훨씬 높아진다. 즉, 실제로는 차이가 없는데 "유의하다"고 잘못 결론 내리기 쉽다.
2. 보정된 재표본 t-검정 (Corrected Resampled t-test)¶
Nadeau & Bengio (2003)가 제안. CV의 비독립성을 보정한 분산 추정:
- \(n_{\text{test}}\), \(n_{\text{train}}\): 각 fold의 테스트/훈련 크기
- 비독립성으로 인한 분산 과소추정을 보정
- 표준 대응 t-검정보다 훨씬 더 적절한 Type I 오류율
3. 5x2 CV 대응 t-검정 (Dietterich, 1998)¶
2-fold CV를 5회 반복하는 특수 설계:
- 각 반복에서 2개의 성능 차이 \(d_1^{(j)}, d_2^{(j)}\) (\(j = 1, \ldots, 5\)) 획득
- 검정 통계량:
여기서 \(s_j^2 = (d_1^{(j)} - \bar{d}^{(j)})^2 + (d_2^{(j)} - \bar{d}^{(j)})^2\)
- 자유도: 5
- 모델 비교에 특화된 설계로, 표준 대응 t-검정보다 Type I 오류 제어가 우수
4. McNemar's Test (맥네마 검정)¶
동일한 테스트 세트에서 두 분류기의 불일치(disagreement)만을 사용:
| 모델 B 정답 | 모델 B 오답 | |
|---|---|---|
| 모델 A 정답 | \(a\) | \(b\) |
| 모델 A 오답 | \(c\) | \(d\) |
자유도 1의 카이제곱 분포 따름.
장점: - CV fold의 독립성 문제가 없음 — 단일 테스트 세트 사용 - 두 모델이 어디에서 다르게 예측하는지에 초점 - 이진 분류 모델 비교의 기본 권장 검정
연속성 보정 (Continuity correction):
\(b + c\)가 작을 때(< 25) 정확한 이항 검정(exact binomial test) 사용 권장.
5. Wilcoxon 부호 순위 검정 (Wilcoxon Signed-Rank Test)¶
대응 t-검정의 비모수적(nonparametric) 대안:
- 각 fold의 성능 차이 \(d_i\)를 계산
- \(|d_i|\)로 순위를 매김
- 양의 차이의 순위합 \(W^+\)와 음의 차이의 순위합 \(W^-\)를 비교
장점: - 정규분포 가정 불필요 - 이상치에 강건 - 성능 차이의 분포가 정규분포가 아닐 때 더 신뢰할 수 있음
6. 부트스트랩 방법 (Bootstrap Methods)¶
테스트 세트 예측을 복원 추출(resampling with replacement)하여 경험적 분포를 구성:
- 테스트 세트에서 예측값을 복원 추출로 \(B\)번 재표본 (일반적으로 \(B = 1000 \sim 10000\))
- 각 재표본에서 성능 차이 계산
- 백분위 신뢰구간(percentile confidence interval) 구성
- 신뢰구간이 0을 포함하지 않으면 유의
장점: - 분포 가정 최소 - 유연하게 다양한 지표에 적용 가능 - 신뢰구간을 직접 제공
7. 다중 비교 (Multiple Comparisons)¶
여러 모델을 동시에 비교할 때, 각 쌍을 개별 검정하면 다중 비교 문제(multiple comparisons problem)가 발생한다.
보정 방법:
| 방법 | 설명 | 강도 |
|---|---|---|
| Bonferroni | 유의 수준을 비교 횟수로 나눔: \(\alpha' = \alpha / m\) | 매우 보수적 |
| Holm's Step-down | 순차적 보정 — Bonferroni보다 강력 | 보수적 |
| Friedman Test | k개 분류기 x n개 데이터셋에서 비모수 검정 | 다중 비교용 |
| Nemenyi Post-hoc | Friedman 이후 쌍별 비교 | Friedman과 함께 사용 |
Critical Difference Diagram (Demsar, 2006): - 여러 데이터셋에서의 평균 순위를 수평선으로 표시 - 유의하게 차이나지 않는 모델들을 연결선으로 묶음 - 논문에서 다중 모델 비교를 시각적으로 보고하는 표준 방법
검정 방법 선택 가이드¶
flowchart TD
A["모델 비교 검정 선택"] --> B{"몇 개의 모델을<br/>비교하는가?"}
B -->|"2개"| C{"평가 방식은?"}
B -->|"3개 이상"| D["Friedman Test<br/>+ Nemenyi post-hoc"]
C -->|"단일 테스트 세트"| E["McNemar's Test<br/>(이진 분류 권장)"]
C -->|"k-fold CV"| F["보정된 재표본 t-검정<br/>또는 5x2 CV 검정"]
C -->|"부트스트랩 가능"| G["부트스트랩 신뢰구간"] 실전 요약표¶
| 상황 | 권장 검정 |
|---|---|
| 2 모델, 단일 테스트 세트, 이진 분류 | McNemar's Test |
| 2 모델, k-fold CV | 보정된 재표본 t-검정 또는 5x2 CV 검정 |
| 2 모델, 분포 가정 불확실 | Wilcoxon 부호 순위 또는 부트스트랩 |
| k 모델, n 데이터셋 | Friedman + Nemenyi |
| 신뢰구간 필요 | 부트스트랩 |
언제 사용하는가¶
- 논문에서 모델 비교를 보고할 때 → 반드시 통계적 검정과 함께
- 프로덕션에서 모델 교체를 결정할 때 → 성능 차이가 유의한지 확인
- 하이퍼파라미터 설정이 실제로 차이를 만드는지 확인할 때
- 여러 데이터셋에서 알고리즘을 종합 비교할 때 → Friedman + 사후 검정
흔한 오해와 함정¶
-
"표준 대응 t-검정으로 CV 결과를 비교하면 된다" — CV fold 간의 비독립성을 무시하므로 Type I 오류율이 크게 상승한다. 보정된 검정을 사용해야 한다.
-
"p-value만 보고하면 충분하다" — 신뢰구간(confidence interval)과 효과 크기(effect size)도 함께 보고해야 한다. p < 0.05라도 0.1% 성능 차이는 실용적으로 의미 없을 수 있다.
-
"통계적으로 유의하면 실용적으로도 중요하다" — 충분히 큰 테스트 세트에서는 아주 작은 차이도 유의할 수 있다. 통계적 유의성과 실용적 중요성(practical significance)을 구분해야 한다.
-
"여러 모델을 쌍별로 t-검정하면 된다" — 다중 비교 보정 없이 쌍별 검정을 반복하면 Type I 오류가 누적된다. Bonferroni 보정이나 Friedman 검정을 사용하라.
-
"부트스트랩은 항상 좋다" — 테스트 세트가 매우 작으면 부트스트랩 신뢰구간도 불안정하다. 최소한 수백 개의 테스트 샘플이 필요하다.
-
"검정에서 유의하지 않으면 두 모델이 같다" — "차이가 없음을 증명"한 것이 아니라, "차이가 있다는 증거가 불충분"한 것이다 (귀무가설을 기각하지 못한 것).
다른 주제와의 연결¶
- 교차 검증: CV 결과에 기반한 검정; CV 설계가 검정의 유효성에 직접 영향
- 혼동 행렬과 분류 지표: 비교하려는 성능 지표의 정의
- ROC와 AUC: AUC 차이에 대한 DeLong 검정 등
- 편향-분산 트레이드오프: 관측된 성능 차이가 분산에 의한 것인지 진짜 차이인지 구분
- 공정성 지표: 그룹 간 성능 차이의 통계적 유의성 검증