Тест Манна-Уитни — когда t-test не подходит
Что такое тест Манна-Уитни
Тест Манна-Уитни (Mann-Whitney U test) — непараметрический статистический тест для сравнения двух независимых групп. В отличие от t-теста, он не предполагает нормальное распределение данных. Вместо средних он сравнивает распределения: нулевая гипотеза — вероятность того, что случайное наблюдение из одной группы окажется больше случайного наблюдения из другой, равна 0,5.
Другие названия: критерий Манна-Уитни, U-тест, критерий Уилкоксона для двух независимых выборок (не путать с парным тестом Уилкоксона).
Когда использовать вместо t-теста
- Данные не нормальные. Доходы, время на сайте, суммы чеков — всё, что сильно скошено вправо. t-тест при малых выборках будет давать некорректные результаты.
- Порядковые данные. Рейтинги, оценки 1–5, NPS-категории. Средние порядковых шкал не имеют смысла, а ранги — имеют.
- Маленькие выборки. При n < 15–20, когда нельзя полагаться на ЦПТ, а нормальность не подтверждена.
- Выбросы. Если в данных есть экстремальные значения, которые вы не хотите удалять, — тест Манна-Уитни к ним устойчив, потому что работает с рангами, а не с абсолютными значениями.
Как работает: упрощённо
- Объединяете обе группы в одну выборку.
- Ранжируете все значения от наименьшего к наибольшему (1, 2, 3, ...).
- Считаете сумму рангов для каждой группы.
- Вычисляете U-статистику — по сути, сколько раз значение из одной группы оказалось больше значения из другой.
- Сравниваете U с критическим значением (или считаете p-value).
Если группы одинаковы, ранги перемешаются равномерно, и суммы рангов будут примерно одинаковыми. Если одна группа систематически выше — её ранги сдвинутся вверх.
Mann-Whitney vs t-test
| t-тест | Манна-Уитни | |
|---|---|---|
| Тип | Параметрический | Непараметрический |
| Сравнивает | Средние | Распределения (через ранги) |
| Допущения | Нормальность или большая выборка | Независимость, похожая форма распределений |
| Чувствительность к выбросам | Высокая | Низкая |
| Мощность при нормальных данных | Выше | Чуть ниже (~95% от t-теста) |
| Порядковые данные | Нет | Да |
| Размер выборки | Любой (лучше n > 30) | Любой |
При нормальных данных t-тест мощнее — он извлекает больше информации. При ненормальных — Манна-Уитни может быть значительно мощнее.
Python: три строки
from scipy.stats import mannwhitneyu
control = [120, 95, 130, 110, 105, 115, 140, 100, 125, 108]
treatment = [135, 150, 128, 160, 145, 170, 132, 155, 140, 148]
stat, p_value = mannwhitneyu(control, treatment, alternative='two-sided')
print(f'U-statistic: {stat:.1f}, p-value: {p_value:.4f}')
# U-statistic: 13.0, p-value: 0.0045alternative='two-sided' — двусторонний тест (по умолчанию в scipy). Для одностороннего — 'less' или 'greater'.
Пример: A/B-тест на выручку с выбросами
Вы запустили A/B-тест на новую форму оплаты. Метрика — revenue per user. Данные сильно скошены: большинство платят 200–500 рублей, но есть несколько покупок на 50 000+.
t-тест на среднее покажет p-value = 0.35 — не значимо, потому что пара выбросов раздувает дисперсию. Тест Манна-Уитни на тех же данных даёт p-value = 0.02 — значимо, потому что он видит, что в тестовой группе значения систематически выше.
Что делать: использовать оба теста и интерпретировать вместе. Если Манна-Уитни значим, а t-тест нет — скорее всего, эффект есть, но выбросы мешают параметрическому тесту его увидеть. Альтернатива — bootstrap на разности средних.
Допущения теста
Тест Манна-Уитни не «безусловный» — у него тоже есть допущения:
- Независимость наблюдений. Между группами и внутри групп. Если один пользователь попал в обе группы — тест некорректен.
- Похожая форма распределений. Если распределения в группах сильно отличаются по форме (одно симметричное, другое скошенное), интерпретация усложняется. Тест всё ещё работает, но не отвечает на вопрос «медиана A > медианы B».
Распространённая ошибка: «тест сравнивает медианы»
Это самое частое заблуждение. Тест Манна-Уитни не сравнивает медианы напрямую. Он проверяет, равны ли распределения. Медианы могут совпадать, но тест покажет значимость — если, например, одно распределение шире другого.
Строго: тест проверяет P(X > Y) = 0.5, где X и Y — случайные наблюдения из двух групп. Только если формы распределений одинаковы и отличается лишь сдвиг — это эквивалентно сравнению медиан.
Вопросы с собеседований
— Что такое тест Манна-Уитни? — Непараметрический тест для сравнения двух независимых групп. Работает с рангами, не требует нормальности. Проверяет, одинаково ли распределены значения в двух группах.
— Когда Манна-Уитни лучше t-теста? — Когда данные ненормальные (выручка, время на сайте), есть выбросы, выборка маленькая, или данные порядковые (рейтинги, оценки).
— Верно ли, что тест сравнивает медианы? — Не совсем. Он сравнивает распределения через P(X > Y). Сравнение медиан — это частный случай, когда распределения имеют одинаковую форму и отличаются только сдвигом.
— Какой непараметрический тест использовать для парных данных? — Критерий Уилкоксона для связанных выборок (Wilcoxon signed-rank test). Манна-Уитни — для независимых.
— Что делать, если в A/B-тесте t-тест и Манна-Уитни дают разные результаты? — Разобраться, почему. Обычно причина — выбросы или сильная асимметрия. Посмотрите на распределения, проверьте bootstrap, рассмотрите робастные метрики (медиану, тримминг).
Потренируйтесь решать задачи по статистике и A/B-тестированию — откройте тренажёр. 1500+ примеров вопросов по всем темам, включая статистику.
Читайте также
- t-test vs z-test — в чём разница
- A/B-тестирование — полный гайд
- Bootstrap в статистике
- Медиана vs среднее
FAQ
Чем тест Манна-Уитни отличается от t-теста?
t-тест сравнивает средние и предполагает нормальное распределение. Тест Манна-Уитни — непараметрический: он работает с рангами и сравнивает распределения целиком. Устойчив к выбросам и не требует нормальности, но при нормальных данных чуть менее мощный.
Можно ли использовать тест Манна-Уитни для A/B-тестов?
Да. Он особенно полезен для метрик с тяжёлыми хвостами — revenue per user, время на сайте, средний чек. Если данные сильно скошены и выбросы влияют на t-тест, Манна-Уитни даст более надёжный результат.
Тест Манна-Уитни сравнивает медианы?
Не совсем. Он проверяет, равны ли распределения двух групп, через вероятность P(X > Y) = 0.5. Интерпретация как «сравнение медиан» корректна только при одинаковой форме распределений. Медианы могут совпадать, но тест покажет значимость, если распределения отличаются по другим характеристикам.
Какой размер выборки нужен для теста Манна-Уитни?
Минимальных формальных ограничений нет — тест работает даже при n = 5 в каждой группе. Но при очень малых выборках мощность будет низкой: тест может не обнаружить реальный эффект. Для практических задач рекомендуется n >= 20 в каждой группе.