Статистическая значимость в A/B-тесте: p-value и доверительный интервал
Объясняем статистическую значимость без магии: как читать p-value, доверительный интервал и разницу между “значимо” и “полезно для бизнеса”.

В отчёте написано: “конверсия выросла на 3 п.п., p-value = 0,03”. Звучит убедительно, но этого мало для решения. Нужно понять, насколько широк диапазон возможных эффектов, какой результат считали основной метрикой и окупает ли ожидаемый uplift стоимость внедрения.
Коротко
Статистическая значимость отвечает на вопрос: насколько совместимы наблюдаемые данные с отсутствием разницы при выбранной модели и пороге. Она не говорит, что вариант точно лучше, насколько велик эффект или что его нужно выкатывать.
- p-value — не вероятность того, что гипотеза верна.
- Доверительный интервал показывает диапазон правдоподобных эффектов и помогает оценить неопределённость.
- Смотри на абсолютную разницу и относительный uplift вместе.
- Решение зависит от эффекта, стоимости и guardrail-метрик, а не от одной галочки “p < 0,05”.
Что на самом деле говорит p-value
Представь, что в реальности варианты не отличаются. p-value показывает, насколько необычным был бы такой результат или ещё более сильный при этой предпосылке. Маленькое значение — повод пересмотреть гипотезу об отсутствии разницы, но не готовое доказательство причинности.
Порог 0,05 — договорённость для конкретного дизайна, а не природный закон. Если тест смотрели двадцать раз, проверяли много метрик или нарушили рандомизацию, интерпретация меняется даже при маленьком p-value.
Он не говорит: “какова вероятность, что test лучше”, “насколько велик эффект” и “стоит ли релиз денег”. Для этого нужны доверительный интервал, бизнес-расчёт и контроль качества эксперимента.
Доверительный интервал возвращает размер эффекта
Если конверсия в control равна 10%, в test — 10,8%, а 95%-й интервал для разницы составляет от −0,1 до +1,7 п.п., данных пока недостаточно, чтобы уверенно отличить небольшой минус от заметного плюса. Точка 0 попадает в интервал — поэтому результат обычно называют статистически неубедительным.
Если интервал находится от +0,4 до +1,8 п.п., направление результата устойчивее. Но дальше остаётся бизнес-вопрос: минимально полезный эффект для команды — 0,3, 1 или 3 п.п.? Статистика не знает этого порога за вас.
Условный пример. Пересечение нулевой линии означает, что направление результата ещё не определено достаточно уверенно.
“Значимо” не равно “важно”
На большой аудитории статистически значимым может стать uplift в 0,05 п.п. Если изменение почти ничего не даёт, но усложняет код и увеличивает поддержку, такой результат не обязан идти в релиз. На маленькой аудитории, наоборот, полезный эффект может остаться незначимым из-за широкого интервала.
| Результат | Что сказать команде |
|---|---|
| p < 0,05, эффект ниже MDE | Разница заметна, но меньше заранее полезного порога. Оценить стоимость и риск. |
| p > 0,05, интервал узкий около нуля | Сильного эффекта, скорее всего, нет. Не путать с доказательством полного равенства. |
| p > 0,05, интервал широкий | Данных недостаточно: тест не различает небольшой минус и заметный плюс. |
| p < 0,05, guardrail ухудшился | Primary metric не отменяет риск. Нужна сегментация или остановка по правилу. |
Как написать честный вывод
Хороший вывод содержит не только p-value. Укажи аудиторию и период, абсолютную метрику в обеих группах, разницу, доверительный интервал, primary metric, guardrails и следующий шаг. Не прячь неопределённость за словом “тренд”.
- Control: 10,0%, test: 11,1%.
- Абсолютная разница: +1,1 п.п.; относительный uplift: +11%.
- 95%-й интервал разницы: от +0,4 до +1,8 п.п.
- Guardrail без заметного ухудшения.
- Решение: раскатить на следующий сегмент или продолжить сбор данных, если порог внедрения выше нижней границы.
Материалы по теме
Как тестировать аналитические расчёты на Python и pandas
Практический гайд по тестам для аналитика: проверить метрики на маленьком датасете, поймать регрессию и защитить расчёт от тихих изменений.
Читать материал
Как ускорить pandas: память, типы и обработка больших файлов
Что делать, если pandas медленно работает или не помещает файл в память: категории, downcast, chunksize, Parquet и контроль размера данных.
Читать материал
Pandas apply и векторизация: как писать быстрее и понятнее
Когда использовать apply, почему векторные операции быстрее и как переписать медленный построчный расчёт в pandas.
Читать материал