2026년 5월 23일 | 개발 공부
Rank-biserial correlation은 Wilcoxon signed-rank test 옆에 붙이기 좋은 효과 크기 지표다. Wilcoxon을 쓰면 “차이가 0이라고 보기 어렵다”는 p-value는 얻을 수 있는데, 정작 그 차이가 얼마나 한쪽으로 기울었는지는 한 문장으로 남기기 애매할 때가 있다. 나는 평가표를 볼 때 이 지점에서 자주 멈칫했다. p-value가 작아도 개선 폭이 실무적으로 작을 수 있고, 반대로 p-value가 애매해도 방향이 꾸준히 한쪽으로 기운 경우가 있기 때문이다.
rank 합으로 보는 방향성
핵심은 샘플별 차이를 그냥 평균내지 않고, 차이의 부호와 절대값 순위가 어느 쪽에 더 많이 실렸는지를 보는 것이다. 두 설정 A와 B를 같은 query, 같은 test edge, 같은 seed 묶음에서 비교한다고 하자. 먼저 각 샘플에서 B - A를 계산한다. 0인 차이는 약속한 방식으로 빼거나 따로 처리하고, 나머지 차이의 절대값에 순위를 붙인다. 그다음 양수 쪽 rank 합과 음수 쪽 rank 합을 비교한다. 양수 rank 합이 훨씬 크면 B가 이긴 샘플의 무게가 크다는 뜻이고, 음수 rank 합이 크면 반대다.
Rank-biserial correlation은 이 차이를 -1부터 1 사이 값으로 눌러서 표현한다. 대략 양수 rank 무게에서 음수 rank 무게를 뺀 뒤 전체 rank 무게로 나눈 값이라고 보면 된다. 1에 가까우면 B가 대부분의 중요한 차이에서 앞섰다는 신호이고, -1에 가까우면 A가 앞섰다는 신호다. 0 근처라면 양쪽 차이의 rank 무게가 비슷하다. 이 값은 평균 delta처럼 단위가 붙지 않는다. 대신 “한쪽 방향으로 차이가 얼마나 지배적인가”를 짧게 보여 준다.
p-value 옆에서 읽을 때의 자리
내가 이 지표를 좋아하는 이유는 Wilcoxon p-value의 부족한 부분을 꽤 자연스럽게 메워 주기 때문이다. Wilcoxon signed-rank test는 같은 paired delta를 이용해 p-value를 만들지만, 결과표에 p-value만 남기면 검정이 결론처럼 보인다. 여기에 rank-biserial correlation을 같이 붙이면 “유의한가”와 “어느 정도 한쪽으로 쏠렸나”를 분리해 읽을 수 있다. 예를 들어 p-value는 0.03인데 rank-biserial correlation이 0.12라면, 통계적으로는 신호가 있지만 실제 효과는 작을 수 있다. 반대로 p-value가 0.09이고 값이 0.45라면, 표본 수나 분산 때문에 검정은 조심스럽지만 방향성 자체는 다시 볼 만하다.
여기서 조심할 점도 있다. 효과 크기는 결론을 대신하지 않는다. 특히 query 수가 작거나 몇 개의 큰 outlier가 rank 대부분을 가져가면 값이 과하게 선명해 보일 수 있다. 그래서 나는 이 값을 단독 컬럼으로 두기보다 평균 delta, 중앙값 delta, bootstrap interval, Wilcoxon p-value 옆에 붙이는 식으로 쓴다. 가능하면 양수/음수 샘플 수와 큰 delta 사례도 같이 남긴다. 그러면 숫자 하나가 “이 설정이 좋다”로 닫히지 않고, 어떤 샘플 묶음이 차이를 만들었는지 다시 들어갈 수 있다.
평균 개선과 일관성을 나눠 보기
예를 들어 retrieval ranking 실험에서 새 scoring profile의 nDCG가 평균 0.012 올랐다고 해도, 그 평균이 몇 개 query에서만 생긴 것인지 전체 query에 얇게 퍼진 것인지는 다르다. rank-biserial correlation이 작으면 평균 개선은 있지만 rank 무게가 크게 기울지는 않은 셈이다. 이때는 profile을 바로 채택하기보다, 개선 query와 악화 query를 나눠 보는 편이 낫다. 반대로 평균 차이는 작아도 correlation이 꽤 높다면, 큰 폭의 개선은 아니지만 방향이 일관된 후보로 남겨둘 수 있다.
GNN 링크 예측이나 GraphRAG profile 비교에서도 비슷하다. 같은 edge나 같은 query fingerprint를 paired unit으로 고정해 두면, seed별 평균표보다 훨씬 덜 허전한 기록을 만들 수 있다. 내가 필요한 건 논문식 통계 보고서가 아니라, 다음 실험에서 무엇을 버리고 무엇을 더 볼지 정하는 작업 로그다. 그래서 p-value, interval, effect size를 서로 다른 질문의 답으로 나눠 적는 습관이 중요하다. p-value는 우연으로 보기 어려운지를 묻고, interval은 평가 세트가 바뀌어도 방향이 버티는지를 묻고, rank-biserial correlation은 paired difference의 무게가 어느 쪽으로 쏠렸는지를 묻는다.
보고 문장은 보류 조건으로 남기기
보고 문장도 너무 거창하게 쓰지 않는 편이 좋다. “새 profile이 기준보다 우수했다”보다 “평균 delta는 작고, bootstrap interval은 0 근처를 지나지만, rank-biserial correlation은 양수 쪽으로 기울었다”처럼 적으면 다음 행동이 더 잘 보인다. 이 문장은 결론이 아니라 보류 조건이다. 개선 query 묶음을 더 보고, 악화 query가 특정 템플릿에 몰렸는지 확인하고, 같은 profile을 다른 split에서 다시 돌려 볼 이유를 남긴다.
또 하나 헷갈리기 쉬운 지점은 기준값을 숫자 표처럼 외우려는 습관이다. 0.1, 0.3, 0.5 같은 대략적인 크기 감각은 참고가 될 수 있지만, metric 종류와 paired unit 수에 따라 체감은 달라진다. 검색 품질에서 0.18은 꽤 볼 만한 신호일 수 있고, 사람이 직접 라벨링한 작은 평가셋에서는 같은 값도 우연한 묶음 효과일 수 있다. 그래서 나는 임계값 하나로 자르기보다 이전 실험의 effect size 분포와 나란히 놓는다. 같은 프로젝트 안에서 값이 평소보다 커졌는지, 아니면 늘 보이던 흔들림인지가 더 실용적인 기준이 된다.
검정 결과를 덜 성급하게 읽기
정리하면 rank-biserial correlation은 Wilcoxon을 더 화려하게 만드는 장식이 아니라, 검정 결과를 덜 단정적으로 읽기 위한 보조 렌즈에 가깝다. 작은 실험일수록 평균 하나와 p-value 하나가 과하게 크게 보인다. 그 옆에 효과 크기를 붙여 두면 “통과/실패” 대신 “작지만 일관된 개선”, “크지만 불안정한 개선”, “유의하지만 실무 효과가 작은 개선”처럼 다음 판단을 조금 더 잘게 나눌 수 있다. 특히 작은 평가 루프에서는 이 정도의 분리가 다음 실험 한 번을 아껴 주고, 과한 결론을 늦춰 준다. 숫자를 더 붙이는 일이 아니라, 판단을 덜 서두르는 장치에 가깝다.
'[개발 공부]' 카테고리의 다른 글
| Mann-Whitney U 검정: 두 묶음의 순위 비교 (0) | 2026.05.27 |
|---|---|
| Cliff's delta: 평균차 대신 승패 비율 보기 (0) | 2026.05.26 |
| Benjamini-Hochberg FDR: 유의한 것과 발견률 나눠 읽기 (0) | 2026.05.22 |
| Holm-Bonferroni 보정: 여러 p-value를 한 번에 읽기 (0) | 2026.05.21 |
| Wilcoxon signed-rank test: 평균 차이보다 부호와 순위 (0) | 2026.05.19 |