← Назад к вопросам

Что такое p-value и как его интерпретировать?

1.0 Junior🔥 251 комментариев
#Статистические критерии и тесты

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI21 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# P-value и его интерпретация

Что такое p-value?

P-value — это вероятность получить наблюдаемый результат (или ещё более экстремальный) при условии, что нулевая гипотеза верна.

Формально: p-value = P(наблюдаемые данные | H0 верна)

Правильная интерпретация

✅ Правильно: "Если между группами нет разницы (H0 верна), вероятность увидеть такую разницу составляет 2%"

❌ Неправильно:

  • "p = 0.02 означает 98% вероятность того, что мой результат верен"
  • "p-value — это вероятность нулевой гипотезы"
  • "p = 0.02 означает, что эффект на 98% существует"

Порог значимости

Стандартный порог: α = 0.05 (5%)

  • Если p < 0.05 → отклоняем H0 (результат значим)
  • Если p ≥ 0.05 → не отклоняем H0 (недостаточно доказательств)

Пример: A/B тест платёжной страницы

import numpy as np
from scipy.stats import chi2_contingency

# Данные
control_purchases = 95  # из 1000
treatment_purchases = 115  # из 1000

contingency_table = np.array([
    [95, 905],   # control: купили, не купили
    [115, 885]   # treatment: купили, не купили
])

chi2, p_value, dof, expected = chi2_contingency(contingency_table)

control_rate = 95/1000  # 9.5%
treatment_rate = 115/1000  # 11.5%

print(f"Control: {control_rate:.1%}")
print(f"Treatment: {treatment_rate:.1%}")
print(f"P-value: {p_value:.4f}")

Результат: p = 0.024

Интерпретация: Если новый дизайн не влияет на конверсию (H0 верна), вероятность увидеть разницу 9.5% vs 11.5% (или более экстремальную) составляет 2.4%.

Поскольку p = 0.024 < 0.05, мы отклоняем H0 → результат статистически значим.

Нулевая и альтернативная гипотезы

  • H0 (нулевая): Между группами нет разницы
  • H1 (альтернативная): Между группами есть разница

Частые ошибки

1. Игнорирование effect size

Большой N может дать p < 0.05 для маленького эффекта:

# N = 100,000 на каждую группу
# Разница конверсии: 10.0% vs 10.1% (только 0.1%)
# Результат: p < 0.001 (очень значим!)

# Но практически это неважно для бизнеса
# Нужно смотреть на effect size, не только p-value

2. Пороговое мышление

p = 0.049 vs p = 0.051 — минимальная разница, но одно "значимо", другое нет. Лучше смотреть на доверительный интервал.

3. p-hacking и multiple testing

# Если делать 100 независимых тестов,
# ожидаем ~5 случайных p < 0.05 (false positives)
# Решение: Bonferroni correction или FDR

p-value vs Effect Size vs Confidence Interval

p-value: Есть ли эффект? (Да/нет) Effect size: Насколько большой? (Величина) CI: Какой диапазон значений? (Точность)

Все три нужны для полной картины.

Доверительный интервал вместо p-value

from scipy import stats

# 95% доверительный интервал для разницы
ci = stats.t.interval(0.95, df, loc=mean_diff, scale=se)

# Если 0 в интервале → p > 0.05
# Если 0 вне интервала → p < 0.05

if ci[0] < 0 < ci[1]:
    print("Not significant (p > 0.05)")
else:
    print("Significant (p < 0.05)")

Что означает "статистически значим"?

  • Результат вряд ли объясняется случайностью
  • Если бы мы повторили эксперимент, мы вероятно увидели бы похожий результат
  • НО: это не означает, что эффект большой или практически важный

Итоговые правила интерпретации

  1. p-value ≠ вероятность того, что нулевая гипотеза верна
  2. p-value = вероятность данных, если H0 верна
  3. p < 0.05 обычно считается статистически значимым
  4. Всегда смотри effect size и CI, не только p-value
  5. Будь осторожен с множественным тестированием
  6. p > 0.05 ≠ доказательство того, что H0 верна
  7. Большой p-value просто означает недостаточно доказательств против H0