Условие
Mann-Whitney U test — это не тест медиан. Что он реально проверяет и когда его правильно применять?
Решение
Реальная нулевая гипотеза
H_0: P(X_A > X_B) = 0.5
«Вероятность, что случайный элемент из A больше случайного из B — 50%».
Это не «равенство медиан» в общем случае. Mann-Whitney проверяет stochastic dominance.
Когда это эквивалентно тесту медиан
Если распределения A и B одинаковой формы (shift только в локации), то:
- Equal P(X_A > X_B) = 0.5 ↔ equal medians.
В этом частном случае «test of medians» — корректное описание.
Когда не эквивалентно
Распределения с разной формой (одна симметрична, другая скошена) — Mann-Whitney может дать significant p даже при одинаковых медианах.
Computational
Для всех пар (X_A, X_B):
U_A = #{(a, b) : a > b}
P(X_A > X_B) = U_A / (n_A × n_B)
Это и есть «common language effect size» — интерпретируется как «процент matchups, где A побеждает».
from scipy.stats import mannwhitneyu
u, p = mannwhitneyu(a, b, alternative='two-sided')
n_a, n_b = len(a), len(b)
prob_a_greater = u / (n_a * n_b)
print(f'P(A > B) = {prob_a_greater:.2%}')Plus / minus
Plus:
- Устойчив к outliers.
- Нет предположений о распределении.
- Работает на ordinal data.
Minus:
- Не отвечает на «насколько больше».
- Ties (повторяющиеся значения) ослабляют тест.
- Менее интуитивная интерпретация.
Эффект size
- Cliff's delta: 2·P(A>B) - 1, от -1 до 1.
- Rank-biserial correlation: 1 - 2U/(n_A·n_B).
|d| < 0.15 — negligible |d| < 0.33 — small |d| < 0.47 — medium |d| ≥ 0.47 — large
Sample size для Mann-Whitney
При нормальных данных Mann-Whitney требует ~5% больше выборки, чем t-test. На non-normal — Mann-Whitney может быть мощнее.
Подводные камни
- «Тест медиан» — упрощение. На разноформенных распределениях не работает.
- На ordinal данных (Likert 1-5) много ties — тест чувствителен.
- На малых n тест почти всегда non-significant — power низкая.
- Не путать с Wilcoxon signed-rank (paired) — это Mann-Whitney rank sum (unpaired).
- Эффект size Cliff's delta — лучше понимаемая величина, чем p-value Mann-Whitney.
Эталонный ответ
Mann-Whitney проверяет P(X_A > X_B) = 0.5, не равенство медиан в общем случае. На одинаковой форме распределений ↔ медианы. Effect size — Cliff's delta (P(A>B)·2 - 1). На скошенных данных часто мощнее t-test.