Собесов

Сценарий: параметрический или непараметрический тест

Статистика и теорверHypothesis testingСредняяMiddle

Условие

Когда использовать t-test (parametric), когда Mann-Whitney (nonparametric)?

Решение

Краткая таблица

Условие Test
Нормальное / большие n / CLT t-test
Скошенное / outliers / маленькие n Mann-Whitney
Парные paired t-test / Wilcoxon signed-rank
3+ группы norm ANOVA
3+ групп non-norm Kruskal-Wallis
Доли / категории chi² / Fisher exact

Параметрические

  • Предполагают распределение (обычно normal).
  • Более мощные при выполненных предположениях.
  • Сравнивают средние/дисперсии.

Непараметрические

  • Без предположений о распределении.
  • Сравнивают ранги (или медианы при симметрии).
  • Менее мощные при нормальности (~5% потеря), но устойчивы.
  • Не работают на parameter, считают другую величину.

Что меряет Mann-Whitney

Не «равенство медиан» в общем случае — это распространённое заблуждение. Меряет:

H_0: P(X_A > X_B) = 0.5

«Вероятность, что A больше B».

Если распределения одинаковой формы, это то же, что разница медиан.

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

  • Жирные хвосты (revenue, LTV): outliers искажают среднее.
  • Малые n (< 20) и явная не-нормальность.
  • Discrete / ordinal данные (1-5 NPS) — лучше Mann-Whitney или ordinal logistic.
  • Bounded by 0/1 (rates) — proportions_ztest или logistic.

Power

При сильной не-нормальности t-test теряет power. Если данные сильно скошены (LTV) — bootstrap или Mann-Whitney могут быть мощнее.

Что использовать в A/B

Большинство компаний — t-test (Welch's) на mean. Корректировки:

  • Log-transform для скошенных.
  • Winsorize для outliers.
  • CUPED для variance reduction.

Mann-Whitney реже — потому что бизнес считает в среднем, а не в ранге.

from scipy import stats
t, p = stats.ttest_ind(a, b, equal_var=False)
u, p_mw = stats.mannwhitneyu(a, b, alternative='two-sided')

Подводные камни

  1. Параметрический тест на скошенных данных может врать: tail событий портят SE и p-value.
  2. Mann-Whitney на «одинаковая медиана, разная форма» даёт значимый p даже без разницы медиан.
  3. Большие n спасают t-test даже на скошенности (CLT), но на n < 100 — осторожно.
  4. NPS / ranks — discrete с малым числом значений → ties в Mann-Whitney портят расчёт.
  5. p-value не = «отсутствие эффекта». Низкая power тоже даёт большой p.

Эталонный ответ

Parametric (t-test) — большие n или нормальные данные, измеряет средние. Non-parametric (Mann-Whitney) — скошенные/малые n/outliers, измеряет ранги (≈ медианы при одинаковой форме). На скошенных данных — log-transform или bootstrap часто лучше.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти