콘텐츠로 이동

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\)에 대해:

\[t = \frac{\bar{d}}{s_d / \sqrt{k}}\]
  • \(\bar{d}\): 차이의 평균
  • \(s_d\): 차이의 표준편차
  • 자유도: \(k - 1\)

가정: 차이 \(d_i\)가 정규 분포

심각한 문제: k-fold CV의 관측값은 독립이 아니다 (훈련 세트가 겹침). 결과적으로 실제 Type I 오류율이 명목(nominal) 수준보다 훨씬 높아진다. 즉, 실제로는 차이가 없는데 "유의하다"고 잘못 결론 내리기 쉽다.


2. 보정된 재표본 t-검정 (Corrected Resampled t-test)

Nadeau & Bengio (2003)가 제안. CV의 비독립성을 보정한 분산 추정:

\[\hat{\sigma}^2_{\text{corrected}} = \left(\frac{1}{k} + \frac{n_{\text{test}}}{n_{\text{train}}}\right) \hat{\sigma}^2_d\]
  • \(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\)) 획득
  • 검정 통계량:
\[t = \frac{d_1^{(1)}}{\sqrt{\frac{1}{5}\sum_{j=1}^{5} s_j^2}}\]

여기서 \(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\)
\[\chi^2 = \frac{(b - c)^2}{b + c}\]

자유도 1의 카이제곱 분포 따름.

장점: - CV fold의 독립성 문제가 없음 — 단일 테스트 세트 사용 - 두 모델이 어디에서 다르게 예측하는지에 초점 - 이진 분류 모델 비교의 기본 권장 검정

연속성 보정 (Continuity correction):

\[\chi^2 = \frac{(|b - c| - 1)^2}{b + c}\]

\(b + c\)가 작을 때(< 25) 정확한 이항 검정(exact binomial test) 사용 권장.


5. Wilcoxon 부호 순위 검정 (Wilcoxon Signed-Rank Test)

대응 t-검정의 비모수적(nonparametric) 대안:

  1. 각 fold의 성능 차이 \(d_i\)를 계산
  2. \(|d_i|\)로 순위를 매김
  3. 양의 차이의 순위합 \(W^+\)와 음의 차이의 순위합 \(W^-\)를 비교

장점: - 정규분포 가정 불필요 - 이상치에 강건 - 성능 차이의 분포가 정규분포가 아닐 때 더 신뢰할 수 있음


6. 부트스트랩 방법 (Bootstrap Methods)

테스트 세트 예측을 복원 추출(resampling with replacement)하여 경험적 분포를 구성:

  1. 테스트 세트에서 예측값을 복원 추출로 \(B\)번 재표본 (일반적으로 \(B = 1000 \sim 10000\))
  2. 각 재표본에서 성능 차이 계산
  3. 백분위 신뢰구간(percentile confidence interval) 구성
  4. 신뢰구간이 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 + 사후 검정

흔한 오해와 함정

  1. "표준 대응 t-검정으로 CV 결과를 비교하면 된다" — CV fold 간의 비독립성을 무시하므로 Type I 오류율이 크게 상승한다. 보정된 검정을 사용해야 한다.

  2. "p-value만 보고하면 충분하다"신뢰구간(confidence interval)효과 크기(effect size)도 함께 보고해야 한다. p < 0.05라도 0.1% 성능 차이는 실용적으로 의미 없을 수 있다.

  3. "통계적으로 유의하면 실용적으로도 중요하다" — 충분히 큰 테스트 세트에서는 아주 작은 차이도 유의할 수 있다. 통계적 유의성과 실용적 중요성(practical significance)을 구분해야 한다.

  4. "여러 모델을 쌍별로 t-검정하면 된다" — 다중 비교 보정 없이 쌍별 검정을 반복하면 Type I 오류가 누적된다. Bonferroni 보정이나 Friedman 검정을 사용하라.

  5. "부트스트랩은 항상 좋다" — 테스트 세트가 매우 작으면 부트스트랩 신뢰구간도 불안정하다. 최소한 수백 개의 테스트 샘플이 필요하다.

  6. "검정에서 유의하지 않으면 두 모델이 같다" — "차이가 없음을 증명"한 것이 아니라, "차이가 있다는 증거가 불충분"한 것이다 (귀무가설을 기각하지 못한 것).


다른 주제와의 연결