Тест Манна-Уитни — когда t-test не подходит

Что такое тест Манна-Уитни

Тест Манна-Уитни (Mann-Whitney U test) — непараметрический статистический тест для сравнения двух независимых групп. В отличие от t-теста, он не предполагает нормальное распределение данных. Вместо средних он сравнивает распределения: нулевая гипотеза — вероятность того, что случайное наблюдение из одной группы окажется больше случайного наблюдения из другой, равна 0,5.

Другие названия: критерий Манна-Уитни, U-тест, критерий Уилкоксона для двух независимых выборок (не путать с парным тестом Уилкоксона).

Когда использовать вместо t-теста

  • Данные не нормальные. Доходы, время на сайте, суммы чеков — всё, что сильно скошено вправо. t-тест при малых выборках будет давать некорректные результаты.
  • Порядковые данные. Рейтинги, оценки 1–5, NPS-категории. Средние порядковых шкал не имеют смысла, а ранги — имеют.
  • Маленькие выборки. При n < 15–20, когда нельзя полагаться на ЦПТ, а нормальность не подтверждена.
  • Выбросы. Если в данных есть экстремальные значения, которые вы не хотите удалять, — тест Манна-Уитни к ним устойчив, потому что работает с рангами, а не с абсолютными значениями.

Как работает: упрощённо

  1. Объединяете обе группы в одну выборку.
  2. Ранжируете все значения от наименьшего к наибольшему (1, 2, 3, ...).
  3. Считаете сумму рангов для каждой группы.
  4. Вычисляете U-статистику — по сути, сколько раз значение из одной группы оказалось больше значения из другой.
  5. Сравниваете 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.0045

alternative='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 на разности средних.

Допущения теста

Тест Манна-Уитни не «безусловный» — у него тоже есть допущения:

  1. Независимость наблюдений. Между группами и внутри групп. Если один пользователь попал в обе группы — тест некорректен.
  2. Похожая форма распределений. Если распределения в группах сильно отличаются по форме (одно симметричное, другое скошенное), интерпретация усложняется. Тест всё ещё работает, но не отвечает на вопрос «медиана A > медианы B».

Распространённая ошибка: «тест сравнивает медианы»

Это самое частое заблуждение. Тест Манна-Уитни не сравнивает медианы напрямую. Он проверяет, равны ли распределения. Медианы могут совпадать, но тест покажет значимость — если, например, одно распределение шире другого.

Строго: тест проверяет P(X > Y) = 0.5, где X и Y — случайные наблюдения из двух групп. Только если формы распределений одинаковы и отличается лишь сдвиг — это эквивалентно сравнению медиан.

Вопросы с собеседований

Что такое тест Манна-Уитни? — Непараметрический тест для сравнения двух независимых групп. Работает с рангами, не требует нормальности. Проверяет, одинаково ли распределены значения в двух группах.

Когда Манна-Уитни лучше t-теста? — Когда данные ненормальные (выручка, время на сайте), есть выбросы, выборка маленькая, или данные порядковые (рейтинги, оценки).

Верно ли, что тест сравнивает медианы? — Не совсем. Он сравнивает распределения через P(X > Y). Сравнение медиан — это частный случай, когда распределения имеют одинаковую форму и отличаются только сдвигом.

Какой непараметрический тест использовать для парных данных? — Критерий Уилкоксона для связанных выборок (Wilcoxon signed-rank test). Манна-Уитни — для независимых.

Что делать, если в A/B-тесте t-тест и Манна-Уитни дают разные результаты? — Разобраться, почему. Обычно причина — выбросы или сильная асимметрия. Посмотрите на распределения, проверьте bootstrap, рассмотрите робастные метрики (медиану, тримминг).


Потренируйтесь решать задачи по статистике и A/B-тестированию — откройте тренажёр. 1500+ примеров вопросов по всем темам, включая статистику.

Читайте также

FAQ

Чем тест Манна-Уитни отличается от t-теста?

t-тест сравнивает средние и предполагает нормальное распределение. Тест Манна-Уитни — непараметрический: он работает с рангами и сравнивает распределения целиком. Устойчив к выбросам и не требует нормальности, но при нормальных данных чуть менее мощный.

Можно ли использовать тест Манна-Уитни для A/B-тестов?

Да. Он особенно полезен для метрик с тяжёлыми хвостами — revenue per user, время на сайте, средний чек. Если данные сильно скошены и выбросы влияют на t-тест, Манна-Уитни даст более надёжный результат.

Тест Манна-Уитни сравнивает медианы?

Не совсем. Он проверяет, равны ли распределения двух групп, через вероятность P(X > Y) = 0.5. Интерпретация как «сравнение медиан» корректна только при одинаковой форме распределений. Медианы могут совпадать, но тест покажет значимость, если распределения отличаются по другим характеристикам.

Какой размер выборки нужен для теста Манна-Уитни?

Минимальных формальных ограничений нет — тест работает даже при n = 5 в каждой группе. Но при очень малых выборках мощность будет низкой: тест может не обнаружить реальный эффект. Для практических задач рекомендуется n >= 20 в каждой группе.