Что такое 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 перед собесом.