p-valueстатистикаA/B-тестыпроверка гипотезподготовка к собеседованию

p-value простыми словами: что это и как читать

2026-07-07 10 мин

p-value — это вероятность увидеть различие как в данных или ещё больше при условии, что на самом деле разницы нет (нулевая гипотеза верна). Формально это P(данные H_0), а не вероятность того, что гипотеза верна. Маленькое p-value означает лишь одно: наблюдаемый результат плохо согласуется с предположением «эффекта нет».

Ниже — честное определение, что p-value НЕ означает, порог значимости, числовой пример из A/B-теста, топ заблуждений с собеседований и связь с доверительным интервалом.

Что такое p-value честным языком?

Любой статистический тест стартует с нулевой гипотезы H_0 — «различия нет, всё случайно». Мы собираем данные и считаем, насколько наблюдаемый результат странный, если H_0 верна.

p-value отвечает ровно на один вопрос: если разницы реально нет, как часто случайность выдавала бы отклонение хотя бы такое же большое, как у нас?

p = P(различие наблюдаемого H_0 верна)

Ключевые слова — «если H_0 верна». Мы условно считаем, что эффекта нет, и смотрим, насколько наши данные редки в этом мире. Если такие данные при «нет эффекта» почти не встречаются (p маленькое), делаем вывод: предположение «эффекта нет» плохо описывает реальность, и отвергаем H_0.

p-value ничего не говорит о размере эффекта. Оно измеряет, насколько убедительно данные противоречат случайности, а не насколько велика разница. Отклонение в 0.1% на миллионе пользователей даст крошечный p, оставаясь бизнес-бесполезным.

Что p-value НЕ означает?

Здесь спотыкается большинство джунов. Разберём по пунктам.

УтверждениеВерно?Почему
p = 0.03 → вероятность, что H_0 верна, равна 3%НетЭто P(данные H_0), а не P(H_0 данные)
p = 0.05 → на 95% уверены, что эффект естьНет95% относится к процедуре, а не к конкретному результату
Большое p → доказали, что эффекта нетНетОтсутствие доказательства доказательство отсутствия
p-value измеряет размер эффектаНетЗависит и от эффекта, и от размера выборки
p = 0.049 сильно лучше, чем p = 0.051НетПорог 0.05 — договорённость, а не физический закон

Главная ловушка — путать P(данные H_0) и P(H_0 данные). Это как перепутать «вероятность мокрого асфальта, если идёт дождь» и «вероятность дождя, если асфальт мокрый». Асфальт мог намокнуть от поливальной машины. Чтобы получить P(H_0 данные), нужна теорема Байеса и априорная вероятность гипотезы — обычного p-value для этого недостаточно.

Что такое alpha и порог значимости?

alpha (α) — это заранее выбранный порог: насколько редкий результат мы готовы считать достаточно убедительным, чтобы отвергнуть H_0. Стандартно α = 0.05.

Правило простое:

α — это и есть вероятность ошибки первого рода: как часто мы ошибочно закричим «эффект есть», когда его нет. Взяв α = 0.05, мы соглашаемся, что в 5% случаев, где эффекта на самом деле нет, тест всё равно даст ложную тревогу.

Выбор α зависит от цены ошибки. Для рискованных решений (медицина, деньги) берут 0.01 или строже. Для дешёвых продуктовых экспериментов иногда 0.1. Главное — зафиксировать α ДО теста, а не подгонять под удобный результат.

Как посчитать p-value в A/B-тесте?

Разберём иллюстративный пример (числа условные). Тестируем новую формулировку кнопки на посадочной странице.

H_0: конверсии равны. H_1: конверсии различаются. Считаем через z-тест для двух пропорций.
from statsmodels.stats.proportion import proportions_ztest

# клики и показы (иллюстративные данные)
clicks = [500, 560]
shows = [10000, 10000]

z_stat, p_value = proportions_ztest(clicks, shows)
print(f"z = {z_stat:.3f}, p-value = {p_value:.4f}")
# z = -1.870, p-value = 0.0615  ->  при alpha=0.05 НЕ значимо

p-value ≈ 0.062 больше 0.05. Разница в 0.6 п.п. выглядит приятно, но при такой выборке укладывается в диапазон случайных колебаний. Правильный вывод: значимости не хватило, эффект не подтверждён. Не «эффекта нет», а «данных мало, чтобы уверенно отличить его от нуля».

Будь показов по 50 000, тот же разрыв в конверсии дал бы p существенно меньше 0.05. Отсюда вывод: p-value зависит и от эффекта, и от размера выборки. Заранее рассчитайте нужный объём через MDE, иначе тест либо не добьёт значимости, либо поймает шум.

Частые ошибки и заблуждения

Как p-value связан с доверительным интервалом?

Это две стороны одной монеты. Для стандартного двустороннего теста при α = 0.05 работает точное соответствие:

Доверительный интервал полезнее для решений, потому что показывает и направление, и величину эффекта. Сравните: «p = 0.03» против «разница конверсии +0.6 п.п., 95% ДИ от +0.05 до +1.15 п.п.». Второе сразу отвечает на бизнес-вопрос «а на сколько именно лучше». Поэтому в отчётах приводите обе величины, а лучше опирайтесь на интервал.

-- прикидка разницы конверсий и её погрешности (иллюстративно)
SELECT
  0.056 - 0.050                                   AS diff,          -- +0.6 п.п.
  1.96 * SQRT(0.05*(1-0.05)/10000
            + 0.056*(1-0.056)/10000)              AS half_ci        -- полуширина 95% ДИ
;
-- diff = 0.006, half_ci ~ 0.0063  ->  интервал накрывает 0  ->  не значимо

Короткий чек-лист перед выводом

p-value — это индикатор того, насколько данные противоречат случайности, а не вероятность правоты гипотезы и не мера важности эффекта. Понимание этой разницы — почти гарантированный вопрос на собеседовании аналитика.

Потренируйтесь считать значимость и интервалы на реальных задачах в Python-тренажёре, а формулировки под давлением отрепетируйте с AI-интервьюером.

Практикуйся на реальных задачах
545 SQL + 538 Python задач с автопроверкой, 618 кейсов. Первые — без регистрации.
Потренироваться в Python-тренажёре →