728x90
0. McNemar test와 Contingency table 개요
McNemar test는 두 모델 A, 모델 B를 동일한 환자 집단에 적용했을 때 정답률(accuracy)의 차이가 통계적으로 유의한지 평가하는 방법입니다.
- 전제 조건: binary outcome (예: 질환 있음 vs 없음)
- 데이터 구조: 각 환자 샘플에 대해 모델 A와 B가 각각 정답을 맞췄는지/틀렸는지 기록
- 2×2 불일치표 (contingency table):
모델 B 정답모델 B 오답
| 모델 A 정답 | n11 | n12 |
| 모델 A 오답 | n21 | n22 |
- 검정 통계량:

- 해석: 두 모델이 “같은 샘플에서 달리 맞춘 경우”가 대칭적인지 확인함으로써, 전체 accuracy의 차이를 검정.
1. Sensitivity, Specificity의 p-value를 구할 수 있는가?
결론: 아니다.
- 구할 수 있는 것: 각 모델의 sensitivity와 specificity 값 (confusion matrix에서 계산 가능).
- 구할 수 없는 것: multiclass 환경에서 global sensitivity/global specificity의 차이에 대한 p-value.
예시: Confusion matrix에서 지표 산출
모델 A (이진 분류) 혼동 행렬:
실제/예측+–
| 실제 + | 80 | 20 |
| 실제 – | 10 | 90 |
- Sensitivity(A) = 80 / (80+20) = 0.80
- Specificity(A) = 90 / (90+10) = 0.90
모델 B도 동일하게 계산 가능.
→ 각 모델의 confusion matrix로부터 지표 값 자체는 계산 가능.
하지만 p-value는?
- McNemar는 “같은 환자에서 A는 맞고 B는 틀린 경우 vs 그 반대”의 빈도로 검정.
- Multiclass에서는 sensitivity/specificity가 클래스별로 다 정의되며, 전역(global) 평균은 단순 산술평균(또는 가중평균).
- 즉, global sensitivity는 환자 단위의 2×2 대응표로 표현되지 않음 → McNemar test 불가.
2. Accuracy에 대한 p-value는 가능한가?
Global accuracy (전체 정확도)
- 모든 환자에 대해 “모델 A가 맞음/틀림, 모델 B가 맞음/틀림”을 비교 → McNemar test 적용.
- → global accuracy 차이에 대한 p-value 산출 가능.
Local accuracy (클래스별 one-vs-rest)
- 각 클래스에 대해 “해당 클래스 vs 나머지”로 이진화 → McNemar test 적용 가능.
- → 각 클래스별 accuracy 차이에 대한 p-value 산출 가능 (다중검정 보정 필요).
Global sensitivity/specificity가 불가능한 이유
- Sensitivity는 양성 집단에만, Specificity는 음성 집단에만 정의.
- Multiclass에서는 클래스별로 서로 다른 집단에서 정의됨 → 평균을 취하면 환자 단위 불일치표를 만들 수 없음.
- 따라서 global sensitivity/specificity의 차이를 McNemar로 검정할 수 없음.
3. 대안: Permutation test
Permutation test는 McNemar의 제한을 벗어나, 任의 지표(accuracy, macro-sensitivity, macro-specificity, F1-score 등)에 대해 p-value를 구할 수 있는 일반적 방법입니다.
절차 (예: macro-sensitivity 비교)
- 관찰 데이터에서

계산.
- 각 환자에서 모델 A와 B의 예측 결과를 50% 확률로 교환.
- 새로 구성된 예측쌍으로 Δ* 계산.
- 이 과정을 1000회 이상 반복 → 귀무분포(“두 모델 동일” 가정 하)를 추정.
- p-value = Δ* 분포 중 |Δ*| ≥ |Δ_obs| 인 비율.
장점
- 어떤 지표든 적용 가능 → global sensitivity, specificity 포함.
- Multiclass에도 자연스럽게 확장 가능.
- 데이터 구조(클러스터 환자, 다기관 등)에 맞게 변형 가능 (예: 클러스터 단위 permute).
최종 정리
- McNemar test
- Binary outcome에서만 적용 가능.
- Global accuracy 차이 → 가능.
- Local (클래스별) accuracy 차이 → 가능.
- Global sensitivity/specificity 차이 → 불가능.
- Permutation test
- Global sensitivity/specificity, PPV/NPV 등 일반 지표 비교 가능.
- Multiclass 환경에서 McNemar의 대안으로 활용 가능.
반응형
'Study' 카테고리의 다른 글
| 통계검정 테이블 표기 예시 (0) | 2025.08.25 |
|---|---|
| Cross-Validation에서 각 Fold별 성능을 표시하는 방법들 (0) | 2025.08.19 |
| Pandas DataFrame 열(Column) 방향 결합(Concat) 시 중복 열 처리 (0) | 2025.08.02 |
| 민감도(Sensitivity) 와 특이도 (Specificity) 관계 (0) | 2025.07.28 |
| ngrok 에러 해결 방안 (Failed to complete tunnel connection) (0) | 2021.07.11 |