[개발 공부] / Kendall's W: Friedman 검정 옆 효과 크기.md

Kendall's W: Friedman 검정 옆 효과 크기

조회

2026년 6월 4일 | 개발 공부


Friedman 검정을 쓰고 나면 p-value 옆에 꼭 비어 있는 칸이 하나 생긴다. 세 설정의 순위가 우연히 흩어진 것 같지는 않다는 신호는 얻었는데, 그 차이가 실제로 얼마나 한쪽으로 모였는지는 아직 잘 안 보인다. 그때 붙일 수 있는 값이 Kendall's W다. 정식 이름은 Kendall's coefficient of concordance이고, 같은 block 안에서 여러 설정의 순위가 얼마나 일치해서 한쪽 방향으로 모이는지를 0에서 1 사이로 요약하는 효과 크기다.

나는 처음 Friedman 검정을 봤을 때 이 부분이 좀 헷갈렸다. p-value가 작으면 “차이가 있다”는 말은 할 수 있는데, 평가표를 운영하는 입장에서는 그 다음 질문이 바로 따라온다. “그럼 이 차이는 작은 흔들림인가, 아니면 여러 query에서 꽤 일관된 기울기인가?” 평균 rank만 보자니 숫자가 흩어져 있고, 쌍별 비교까지 바로 들어가자니 비교 수가 늘어난다. Kendall's W는 그 사이에서 판을 한 번 접어 주는 값에 가깝다.

Friedman 검정 뒤에 남는 해석 공백

예를 들어 같은 query set 40개 위에서 baseline, reranker, graph boost 세 가지 설정을 비교한다고 하자. 각 query마다 nDCG가 있고, query 내부에서 세 설정에 1등, 2등, 3등 순위를 붙인다. Friedman 검정은 이 순위표 전체를 보고 “세 설정의 rank가 무작위로 비슷하게 섞였다고 보기 어려운가?”를 묻는다. 여기까지는 가설검정의 질문이다.

그런데 실제 실험 노트에서는 p-value 하나로 끝내면 뒷맛이 남는다. sample 수가 많으면 아주 작은 rank 차이도 유의하게 보일 수 있고, 반대로 sample 수가 적으면 꽤 일관된 방향이 있어도 p-value가 애매할 수 있다. 그래서 나는 Friedman 결과를 적을 때 p-value, 설정별 평균 rank, Kendall's W를 같이 놓는 편이 더 낫다고 본다. p-value는 “무작위처럼 보기 어려운가”를 묻고, Kendall's W는 “rank가 얼마나 한 덩어리로 모였는가”를 묻는다.

대략적인 계산식도 이 감각과 맞닿아 있다. 자주 쓰는 형태로는 Friedman의 chi-square 통계량을 block 수 n과 설정 수 k - 1의 곱으로 나눈다. 즉 W = chi-square / (n × (k - 1))처럼 읽을 수 있다. 값이 0에 가까우면 block마다 순위가 제각각이라는 뜻이고, 1에 가까우면 거의 모든 block에서 순위 합의가 강하게 모였다는 뜻이다. 정확한 tie 보정이나 구현 세부는 라이브러리마다 확인해야 하지만, 운영 감각은 이 정도로 충분히 시작할 수 있다.

나는 W를 승패 판정으로 쓰지는 않는다

Kendall's W가 편하다고 해서 “0.4 이상이면 채택” 같은 컷라인을 바로 만들면 조금 위험하다. W는 순위 일치도를 보는 값이라서, 어떤 설정이 이겼는지보다 rank 구조가 얼마나 안정적으로 기울었는지를 보여 준다. 평균 rank가 가장 좋은 설정이 있더라도, 그 설정이 어떤 query cluster에서만 강하고 다른 cluster에서는 흔들릴 수 있다. 그러면 W가 괜찮아 보여도 실제 product rule로 옮기기 전에 query별 실패 표를 더 봐야 한다.

반대로 W가 작게 나왔다고 해서 실험이 완전히 버려지는 것도 아니다. query마다 이기는 설정이 갈린다는 뜻일 수 있고, 이 경우에는 “하나의 전역 설정을 고르는 문제”가 아니라 “어떤 query 유형에서 어떤 설정을 쓸 것인가”로 질문을 바꿔야 한다. GraphRAG나 검색 랭킹 실험에서 이런 일이 자주 생긴다. 전체 평균은 애매한데, legal query에서는 graph boost가 좋고 짧은 fact query에서는 baseline이 더 좋은 식이다. 이때 작은 W는 실패라기보다 routing 후보를 보라는 신호일 수 있다.

그래서 내가 적는 표는 보통 이렇게 간다. 첫 줄에는 Friedman p-value와 Kendall's W를 놓고, 두 번째 줄에는 설정별 평균 rank를 둔다. 그 아래에는 “W가 큰데 평균 rank 1위가 명확한 경우”, “W는 작은데 cluster별 승자가 갈리는 경우”, “p-value는 작지만 W가 작아 실무 효과가 애매한 경우”를 따로 메모한다. 숫자 하나보다 다음에 열어 볼 inspection queue가 더 중요하기 때문이다.

쌍별 비교로 넘어가기 전의 완충 지대

Friedman 검정에서 전체 차이 신호가 보이면 자연스럽게 쌍별 비교로 넘어가고 싶어진다. baseline 대 reranker, baseline 대 graph boost, reranker 대 graph boost를 각각 Wilcoxon이나 paired permutation으로 보는 식이다. 이때 Holm-Bonferroni 같은 보정을 붙이면 절차는 더 단단해진다. 다만 나는 그 전에 Kendall's W를 한 번 보는 쪽이 좋다. 전체 rank 합의가 약한데 p-value만 보고 쌍별 비교를 많이 열면, 해석이 너무 빨리 잘게 쪼개진다.

W가 중간 이상으로 나오고 평균 rank도 한쪽으로 깔끔하게 기울면, 그때는 쌍별 비교를 열어도 읽을 이야기가 분명하다. 어느 설정이 기준선보다 꾸준히 나은지, 그 차이가 paired delta에서도 유지되는지 보면 된다. 하지만 W가 낮으면 먼저 query group, metric tie, label noise, outlier query를 보는 편이 더 낫다. 내 경험상 이 순서를 지키면 “검정은 많이 했는데 결론은 흐린” 표를 줄일 수 있다.

작은 팀 실험에서는 이 값이 더 현실적이다. 논문 표처럼 모든 가정을 길게 설명하기보다, 다음 실행에서 어떤 로그를 더 모을지 빨리 정해야 할 때가 많다. 그때 W가 크면 후보 설정의 재현성을 확인하는 쪽으로 가고, W가 작으면 평가 단위를 다시 나누거나 query taxonomy를 손보는 쪽으로 간다. 숫자를 하나 더 붙이는 일이 아니라, 후속 실험의 모양을 정하는 작은 분기점인 셈이다.

정리하면 Kendall's W는 Friedman 검정의 장식 숫자가 아니다. 세 개 이상의 설정을 같은 평가 단위에서 비교할 때, p-value와 평균 rank 사이에 놓는 얇은 해석판이다. 내가 특히 마음에 드는 점은 결론을 강하게 밀어붙이기보다, 다음 질문을 더 잘 고르게 해 준다는 데 있다. 설정 하나를 고를지, cluster별 routing으로 쪼갤지, 아니면 평가셋 자체를 다시 볼지. 작은 실험일수록 이 완충 지대가 꽤 쓸모 있다.

댓글

홈으로 돌아가기

검색 결과

"" 검색 결과입니다.