Что такое p-value

p-value = вероятность увидеть данные (или ещё более экстремальные) ПРИ УСЛОВИИ что H0 верна.

Формально: p = P(данные | H0)

Что НЕ такое p-value

Это НЕ "вероятность что результат случаен"! Это НЕ "вероятность что H0 верна"! Это НЕ "вероятность что эффект 0"!

Эти три формулировки — самые частые на собесах джунов. И они все неверны.

Правильный пример

A/B тест нового баннера. H0: разницы конверсии нет. Получили p=0.03.

  • ❌ "С вероятностью 97% баннер работает"
  • ❌ "С вероятностью 3% это случайность"
  • ✅ "Если бы баннер не работал, мы бы увидели такую разницу всего в 3% случаев"

Многомерный тестинг

Если делаешь 20 A/B тестов с alpha=5%, один из них покажет p<0.05 даже если все варианты идентичны.

new_alpha = 0.05 / num_tests
# Для 20 тестов: 0.0025

Peeking

Если проверяешь p-value 10 раз в течение теста, реальный FPR будет гораздо выше 5%.

Решения:

  • Зафиксировать sample size заранее
  • mSPRT (Optimizely)
  • Group Sequential Tests
  • Always-valid p-values

Effect size > p-value

p=0.001 при разнице 0.01% — статзначимо, но бизнес-значимо? Нет. p=0.06 при разнице 30% — не статзначимо, но эффект огромный → нужно больше данных.

Всегда смотри на confidence interval.

Кейс из Каспи

Аналитик настаивал что "p<0.001 значит мы уверены на 99.9%". На собесе на средний грейд завалил вопрос про определение p-value. Не получил оффер. Эта тема — must-have перед собесом.