비모수 독립 표본 검정: 순위와 분포로 집단 차이 판단하기

Mann-Whitney U, Kruskal-Wallis, Kolmogorov-Smirnov 검정의 선택 기준과 순위·분포 기반 해석, 운영 주의점을 정리한다.

2026-08-14 · 최초 발행 2024-04-29

순위와 경험적 분포로 독립 집단을 비교하는 방법

정규성 가정을 두기 어려운 데이터에서는 독립 집단의 차이를 순위나 경험적 누적분포(ECDF)로 검정할 수 있다. 비모수 독립 검정은 분포 형태에 대한 가정을 최소화하면서 위치(중앙값) 또는 분포 전체의 차이를 판단한다.

통계량은 순위나 ECDF에서 계산하며, 표본 크기가 충분하면 근사 정규분포·카이제곱분포·콜모고로프 분포를 이용한다. 연속형과 서열형 데이터에 적용할 수 있고, 극단값의 영향을 줄이는 데 유리하다.

위치 차이와 분포 차이에 맞춰 검정을 고른다

Mann-Whitney U: 집단 간 위치 차이를 비교할 때

Mann-Whitney U 검정은 두 독립 집단 사이의 위치 차이를 다룬다. 두 집단의 분포 모양과 분산이 같다는 조건에서는 중위수 차이로 해석할 수 있다.

전체 관측값에 순위를 부여한 뒤 집단별 순위합으로 U 통계량을 계산하고, 정확법 또는 정규 근사로 p-값을 구한다. 동률(ties)이 있으면 평균순위를 배정하고 분산을 보정해야 한다.

연속형 또는 서열형 데이터에 쓸 수 있으며 표본수가 작아도 적용하기 쉽다. 결과에는 효과크기 r 또는 클리프 델타(Cliff’s delta)를 함께 보고하는 방식이 권장된다.

Kruskal–Wallis H: 여러 독립 집단의 위치를 함께 볼 때

Kruskal–Wallis H 검정은 3개 이상 독립 집단의 위치 차이를 검정한다. 집단 간 분포 모양이 같다고 가정할 수 있다면 중앙 위치 비교로 해석할 수 있다.

모든 관측값을 순위화한 뒤 집단별 순위합에서 H 통계량을 구하고, 카이제곱 근사로 p-값을 산출한다. 유의한 결과가 나왔다면 Dunn(또는 Conover) 사후 검정과 다중비교 보정이 이어져야 한다.

불균형한 표본 크기도 허용하며 극단값에 강인하다. 효과크기로는 ε² 또는 η²(H)를 제시할 수 있다.

Kolmogorov–Smirnov 2표본: 분포 전반의 차이를 찾을 때

Kolmogorov–Smirnov 2표본 검정은 두 독립 표본의 분포가 전반적으로 같은지 확인한다. 위치뿐 아니라 분산, 꼬리 형태처럼 분포의 여러 구간에서 발생하는 차이에 민감하다.

두 표본의 ECDF 사이 최대 수직거리 D를 구한 다음 표본 크기를 반영한 KS 분포로 p-값을 계산한다. 이산 데이터이거나 동률이 많으면 p-값이 보수적으로 나오는 경향이 있다.

분포 모양 자체의 변화를 탐지하는 데 적합하다. D 또는 AUC(상관 해석 가능)를 보조 효과크기 지표로 보고할 수 있다.

선택부터 결과 보고까지의 흐름

2개3개 이상중앙 위치 차이분포 전반 차이작음(n1*n2 10,000)동률/이산 많음연속 근사 가능입력: 독립 표본 데이터집단검정 목표Kruskal-Wallis HMann-Whitney UKS 2-sample표본 크기정확 p-값 또는 연속성 보정정규 근사 사용데이터 특성보수적 p-값, 퍼뮤테이션 검정고려KS 표준 절차유의 Dunn 사후 검정 +Holm 보정결과: 통계량, p-값, 효과크기

Mann-Whitney U에서는 독립 표본 X, Y와 대립방향(two-sided/greater/less)을 입력한다. 전체 순위화, U 계산, 동률 보정, 정확 또는 근사 p-값 산출을 거쳐 U, p-값, 효과크기 r=|Z|/√N, 델타 δ를 결과로 남긴다.

Kruskal–Wallis H에는 k개 독립 표본과 사후 비교 계획이 필요하다. 전체 순위화와 H 산출 뒤 카이제곱 근사 p-값을 구하고, 유의하면 Dunn 사후 검정과 다중비교 보정(Holm/Benjamini-Hochberg)을 적용한다. H, p-값, ε² 또는 η²(H), 사후 쌍비교 결과가 산출물이다.

KS 2표본 검정은 두 독립 표본과 양측 또는 단측 설정을 입력으로 받는다. 두 ECDF의 최대 거리 D를 구하고 KS 분포에서 p-값을 산출한다. 이산값이 많다면 보수적으로 해석하거나 퍼뮤테이션을 보조 수단으로 검토한다. 결과에는 D, p-값, 차이 위치(ECDF 교차점), 보조 지표(AUC)를 포함한다.

검정별 해석과 운영 조건

항목 Mann-Whitney U Kruskal–Wallis H KS 2-sample
대상 2개 독립 집단 3개 이상 독립 집단 2개 독립 집단
귀무가설 위치 차이 없음(동일 분포 가정 시) 위치 차이 없음 분포 동일
민감도 위치 변화에 강함 위치 변화에 강함 분포 모양 전반에 민감
정규성/등분산 불필요, 모양 유사 시 해석 용이 불필요, 모양 유사 가정 권장 불필요, 연속형 가정 우호적
표본수 가이드 n1,n2 ≥ 20 시 근사 안정 각 집단 n ≥ 5~10 권장 n ≥ 20 권장, 이산값 많으면 보수적
동률 처리 평균순위 + 분산 보정 평균순위 + 보정 p-값 보수적 경향
효과크기 r, Cliff’s δ, AUC ε², η²(H) D, AUC
계산복잡도 O(N log N) O(N log N) O(N log N)
사후 검정 해당 없음 Dunn/Conover + 보정 해당 없음

제품 지표와 운영 데이터에서의 적용

매출, 체류시간, 클릭수처럼 꼬리가 두꺼운 A/B 테스트 KPI는 Mann-Whitney U로 비교할 수 있다. 로그변환이 실패한 경우에도 순위 기반 검정으로 강건하게 판단할 수 있다.

세 버전 이상인 프로덕트의 응답시간 중앙값을 비교할 때는 Kruskal–Wallis를 적용하고, 유의하면 Dunn 사후 검정으로 쌍대 비교를 수행한다.

모델 점수 분포의 칼리브레이션 비교나 센서 값 드리프트 탐지에는 KS 검정이 맞는다. ECDF 차이가 발생한 위치를 보면 운영 임계치 조정의 근거를 얻을 수 있다.

n이 작고 이상치가 존재하는 임상 또는 제조 데이터에서는 위치 검정에 Mann-Whitney를, 여러 집단 비교에는 Kruskal–Wallis를 우선 적용할 수 있다.

Python SciPy로 실행하기

전제조건. Python 3.10+, scipy >= 1.10, numpy 설치.

import numpy as np
from scipy.stats import mannwhitneyu, kruskal, ks_2samp

# 예시 데이터
np.random.seed(42)
A = np.random.lognormal(mean=0.0, sigma=1.0, size=60)
B = np.random.lognormal(mean=0.2, sigma=1.0, size=55)
C = np.random.lognormal(mean=0.4, sigma=1.0, size=50)

# 1) Mann-Whitney U (양측)
u_stat, p_u = mannwhitneyu(A, B, alternative='two-sided', method='auto')  # auto: exact/근사 자동 선택
print(f"Mann-Whitney U={u_stat:.1f}, p={p_u:.4f}")

# 2) Kruskal–Wallis H
h_stat, p_h = kruskal(A, B, C)
print(f"Kruskal–Wallis H={h_stat:.3f}, p={p_h:.4f}")

# 3) KS 2-sample (양측)
d_stat, p_ks = ks_2samp(A, B, alternative='two-sided', mode='auto')
print(f"KS D={d_stat:.3f}, p={p_ks:.4f}")

method='auto' 또는 mode='auto'를 사용하면 소표본에서는 정확법, 대표본에서는 근사법을 자동 선택하도록 구성할 수 있다. 사후 검정에는 scikit-posthocs의 sp.posthoc_dunn을 적용할 수 있으며, p값 보정 방식으로 Holm/Sidak/Benjamini-Hochberg를 고려한다.

결과를 신뢰할 수 있게 만드는 점검 항목

검정 전에 독립성을 확인하고 중복, 결측, 동률 비율을 점검해야 한다. 단측과 양측 검정의 선택도 사전에 등록한다.

p-값만으로 판단하지 않고 r/δ/ε²/D 등의 효과크기를 함께 제시하며, 신뢰구간을 포함하는 방식이 권장된다. Kruskal–Wallis 결과가 유의할 때 Dunn 사후 검정과 다중비교 보정을 표준 절차로 두면 결과 해석을 일관되게 운영할 수 있다.

분포 모양이 다른 경우 Mann-Whitney 결과를 “중위수 차이”로 해석하기 어려울 수 있다. 정규성과 등분산이 확실한 상황에서는 대응하는 모수 검정보다 검정력이 열위일 가능성도 있다. KS는 이산값과 동률이 많은 데이터에서 p-값이 보수적일 수 있으므로 퍼뮤테이션 또는 Brunner–Munzel 등의 대안을 검토할 필요가 있다.

강건한 판단 절차로 이어지는 효과

이상치와 비정규 환경에서 유형 I 오류율을 안정화해 운영 리스크를 줄일 수 있다. 입력→처리→출력 절차를 표준화하면 재현성이 높아지고, 사후 검정을 포함한 전 주기 자동화도 쉬워진다.

계산은 O(N log N) 정렬 기반이므로 대규모 로그와 이벤트 데이터에도 실시간 적용할 수 있으며, 메모리는 O(N) 수준으로 관리한다.

비모수 검정독립 표본순위 검정통계 분석효과크기