2026년 6월 18일 | 개발 공부
Welch ANOVA 뒤에는 늘 작은 공백이 남는다. 전체 검정은 세 그룹 중 어딘가 평균 차이가 있을 수 있다는 신호를 주지만, 어느 두 그룹이 실제로 벌어졌는지는 말해 주지 않는다. 게다가 그룹별 분산과 표본 수가 다르다는 이유로 Welch ANOVA를 골랐다면, 그다음 쌍별 비교에서도 같은 조건을 잊으면 안 된다. Games-Howell 사후검정은 바로 이 빈칸을 메우는 도구로 이해하면 편하다.
전체 검정과 쌍별 질문은 다르다
세 개의 설정 A, B, C를 비교한다고 하자. A는 안정적으로 0.72 근처에 모이고, B는 평균이 조금 높지만 흔들림이 크고, C는 표본 수가 적다. 이런 표에서 Welch ANOVA가 유의하게 나왔다고 해서 A-B, A-C, B-C가 모두 다르다고 말할 수는 없다. 전체 검정은 “어딘가 평균이 다를 수 있다”는 문장이고, 운영자가 실제로 필요한 문장은 “어느 쌍을 다시 볼 것인가”에 더 가깝다.
나는 이 둘을 같은 표 안에 섞지 않으려고 한다. 위쪽에는 Welch ANOVA의 전체 p-value와 그룹별 평균·표준편차·표본 수를 둔다. 아래쪽에는 쌍별 비교를 따로 연다. 이렇게 나누면 전체 신호가 쌍별 결론으로 너무 빨리 번지는 일을 줄일 수 있다. 특히 모델 평가나 로그 분석에서는 평균표 하나가 결론처럼 보이기 쉬워서, 이 분리가 생각보다 중요하다.
Games-Howell이 맞는 표 모양
Games-Howell은 Tukey HSD처럼 모든 쌍을 비교하는 사후검정 흐름에 가깝지만, 등분산과 같은 표본 수를 강하게 기대하지 않는 쪽으로 쓰인다. 그래서 내가 이 이름을 떠올리는 경우는 꽤 뚜렷하다. 세 그룹 이상이고, 평균 차이가 관심사이고, 그룹별 분산이 다르며, 표본 수도 완전히 맞지 않는다. 즉 Welch ANOVA를 고르게 만든 이유가 사후 비교에서도 그대로 살아 있는 상황이다.
반대로 같은 query set이나 같은 seed가 모든 설정을 지나간 구조라면 먼저 paired 분석을 본다. Friedman, paired permutation, Wilcoxon 같은 쪽이 더 직접적일 수 있다. Games-Howell은 독립 그룹의 평균 비교를 이어갈 때 자연스럽다. 같은 관측 단위를 일부러 버리고 독립 그룹 검정으로 바꾸면, query 난이도나 seed 차이라는 큰 잡음을 놓칠 수 있다.
표에는 평균 차이와 신뢰구간을 같이 둔다
Games-Howell 결과를 볼 때 나는 p-value보다 먼저 평균 차이와 신뢰구간을 본다. A-B 평균 차이가 0.012인데 p-value만 낮게 나왔다면, 그 차이가 실제 운영 기준을 넘는지 따로 봐야 한다. 반대로 p-value가 애매해도 신뢰구간이 거의 한쪽 방향으로 치우쳐 있고 실패 샘플이 특정 구간에 몰려 있으면, 다음 실험 후보로 남길 수 있다. 유의성은 크기를 대신하지 않는다는 말을 여기서도 그대로 적용한다.
내가 남기는 최소 열은 비교 쌍, 두 그룹의 n, 평균 차이, 신뢰구간, p-value 또는 보정된 판정, 짧은 해석 메모다. 해석 메모에는 “B 승리”보다 “B-C만 평균 차이가 유지, C의 낮은 표본 수 재확인”처럼 다음 확인을 적는다. 통계표가 결론을 닫는 장치가 아니라, 다시 열 샘플을 줄이는 장치가 되어야 나중에 봐도 쓸모가 있다.
Dunn, Nemenyi와 헷갈리지 않는 기준
사후검정 이름은 한꺼번에 보면 비슷하게 느껴진다. 나는 그래서 먼저 전체 검정의 질문을 본다. Kruskal-Wallis 뒤에서 독립 그룹의 rank 차이를 열면 Dunn 사후검정이 자연스럽다. Friedman 뒤에서 repeated-measures 평균 rank를 모든 쌍으로 보면 Nemenyi가 떠오른다. Welch ANOVA 뒤에서 평균 질문을 유지하되 분산과 표본 수 차이를 버리지 않으려면 Games-Howell이 후보가 된다.
이 구분은 이름 암기보다 표 모양 확인에 가깝다. 평균을 볼 것인가, rank를 볼 것인가. 독립 그룹인가, paired block인가. 등분산을 믿을 수 있는가. 이 세 질문만 적어도 검정법 선택이 덜 흔들린다. 검정 이름보다 관측 단위와 질문이 먼저라는 원칙을 놓치지 않으면, 사후검정이 별표를 늘리는 도구로만 굴러가지 않는다.
실제로 평가 표를 정리할 때도 이 순서가 제일 덜 헷갈렸다. 같은 세 그룹 비교라도 평균 질문이면 Welch ANOVA와 Games-Howell을 이어 보고, rank 질문이면 Kruskal-Wallis와 Dunn을 붙인다. 같은 query를 반복 측정했다면 독립 그룹처럼 다루지 않는다. 통계 패키지 함수 이름을 고르기 전, 표의 행 하나가 무엇을 뜻하는지 먼저 말로 풀어 쓰는 셈이다.
실험 노트에서 멈추는 조건
Games-Howell을 붙이기 전에 멈추는 조건도 있다. 첫째, 그룹 정의가 섞여 있으면 검정보다 데이터 정리가 먼저다. A는 쉬운 query, B는 어려운 query, C는 실패 로그만 모은 표라면 평균 차이는 모델 차이보다 샘플링 차이를 더 크게 반영할 수 있다. 둘째, outlier 자체가 제품 판단의 핵심이라면 평균 사후검정만으로 꼬리 위험을 덮지 않는다. tail latency나 특정 실패군은 별도 목록으로 열어야 한다.
셋째, 비교할 쌍이 결과를 본 뒤 계속 늘어나면 multiple-comparison 문제를 다시 확인한다. Games-Howell이 여러 쌍 비교를 다룬다고 해도, 실험자가 중간에 후보를 골라 넣고 빼면 해석 기준이 흐려진다. 비교 family, 제외한 그룹, 다시 볼 샘플 목록을 노트에 남기는 이유가 여기에 있다. 나중에 같은 표를 다시 열었을 때 “왜 이 쌍만 봤지”라는 질문이 나오면 이미 기록이 부족한 상태다.
정리하면 Games-Howell은 Welch ANOVA 뒤에서 분산이 다른 그룹의 쌍별 평균 차이를 읽는 사후검정이다. 내가 좋아하는 지점은 결론을 빨리 내린다는 점이 아니라, 전체 신호와 쌍별 설명 사이에 한 칸을 만들어 준다는 점이다. 그 한 칸에 평균 차이, 신뢰구간, 표본 수, 다시 볼 샘플을 적어 두면 평균 비교표가 조금 덜 위험해진다. 다음 실험을 설계할 때도 이 기록이 남아 있으면, 새 모델을 바로 고르는 대신 어떤 그룹을 더 모아야 하는지부터 볼 수 있다. 결국 사후검정의 목적은 승자 발표보다 확인 비용을 줄이는 데 더 가깝다. 숫자 옆의 짧은 메모가 그 비용을 실제로 줄인다. 그래서 나는 별표보다 다음 확인 칸을 더 오래 남긴다. 이 작은 차이가 반복 실험에서는 꽤 크다.
'[개발 공부]' 카테고리의 다른 글
| Brunner-Munzel 검정: 분포 모양이 다른 두 표본 비교 (0) | 2026.06.21 |
|---|---|
| HTTP 204 응답: 성공인데 본문이 없는 상태 (0) | 2026.06.19 |
| Welch ANOVA: 분산이 다른 세 그룹 비교 (0) | 2026.06.17 |
| Hodges-Lehmann 추정량: p-value 옆 중앙 차이 (0) | 2026.06.16 |
| Dunn 사후검정: Kruskal-Wallis 뒤의 쌍별 rank 비교 (0) | 2026.06.15 |