Собесов

Karpov Stepik: P-value — что это и как НЕ интерпретировать

Статистика и теорверПроверка гипотезЛёгкаяJunior

Условие

Выберите правильную интерпретацию p-value = 0.03 для двустороннего t-теста разности средних:

  1. Вероятность, что H₀ верна, равна 3%.
  2. Вероятность ошибки I рода — 3%.
  3. При условии истинности H₀ — вероятность получить такие или более экстремальные данные = 3%.
  4. Эффект реален с вероятностью 97%.

Объясните, что значит «статистическая значимость» и чем отличается от «практической значимости».

Решение

Правильный ответ — (3)

p-value = P(данные такие или более экстремальные | H₀ верна).

Это условная вероятность данных при гипотезе нуля, а не вероятность гипотезы.

Почему остальные неверны

(1) «Вероятность, что H₀ верна — 3%» — это P(H₀ | данные). Для этого нужен Байес и prior на гипотезу. Frequentist p-value этого не даёт.

(2) «Ошибка I рода — 3%» — путаница с α. α — это порог, который выбирается до эксперимента (обычно 0.05). p-value — наблюдённая «крайность» данных. Если p < α — отвергаем H₀.

(4) «Эффект реален с 97%» — то же что (1), и ещё хуже: «реальность эффекта» — не вопрос Бернулли.

Статистическая vs практическая значимость

Стат. значимость Практ. значимость
Что это p < α эффект ≥ MDE
Зависит от n (большие n → любой эффект значим) заранее заданного порога
Решение «отвергаем H₀» «катить или нет»

При очень больших n (миллион+ наблюдений) почти любой шум становится «статистически значимым», но практически бессмысленным.

Пример

A/B тест с N = 10 млн:

  • A: CR = 5.000%, B: CR = 5.005%.
  • z = ~7, p < 0.001.
  • Uplift: +0.1% relative → +1 продажа на 20 000 пользователей.
  • При CAC внедрения 100К₽ — окупится за век. Не катим.

Когда p-value полезен

  • Скрининг гипотез (отсев шумовых эффектов).
  • Совместно с effect size (Cohen's d, lift %), CI и бизнес-MDE.

Когда p-value опасен

  • При множественных тестах (FWER inflation).
  • При peeking (sequential analysis без коррекции).
  • При мизерных эффектах на огромных N (как пример выше).
  • При неподходящих допущениях (t-test на негауссовой малой выборке).

Поправки для multiple testing

from statsmodels.stats.multitest import multipletests
pvals = [0.001, 0.04, 0.03, 0.07, 0.6]
rej, pvals_adj, _, _ = multipletests(pvals, alpha=0.05, method='fdr_bh')

Bonferroni — строгая (α/k); BH (Benjamini-Hochberg) — контроль FDR (≤ α доля ложных среди отклонённых).

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

  1. «Эффект есть» vs «не получилось отвергнуть»: при p > 0.05 H₀ не доказана. Это «не отказались», а не «верна».
  2. Малое p при огромных N: тривиальный эффект становится значимым. Всегда смотреть effect size и CI.
  3. Peeking: посмотреть p каждый день → ложный «значимый» результат гарантирован (Type I ↑↑).
  4. Cherry-picking тестов: запустили 20 метрик, нашли одну значимую → ничего не доказали (familywise α).
  5. Одно/двусторонний тест: бизнес часто хочет «улучшение или хуже». Двусторонний — стандарт; односторонний усиливает power, но требует обоснования.
  6. t-test на не-нормальных данных малой n: распределение p не uniform под H₀ → переоценка значимости. Bootstrap безопаснее.
  7. «p = 0.06 → почти значимо»: либо значимо, либо нет относительно выбранного α. Иначе это NHST-fishing.

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

Правильная интерпретация: «при условии истинности H₀, вероятность получить такие или более экстремальные данные = 3%» (вариант 3).

Стат. значимость — p < α, говорит о неслучайности эффекта. Практическая — эффект ≥ заранее заданного MDE и оправдывает внедрение по cost/benefit. На большой выборке стат. значимость не подразумевает практической.

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

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

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