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

«Что такое p-value?» — вопрос из категории Статистика и теория вероятностей, который задают на 39% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Простыми словами: Это мера силы свидетельства против нулевой гипотезы. Малое p-value говорит: "Если бы нулевая гипотеза была верна, то получить такие данные было бы очень маловероятно".

Как интерпретировать?

  • Выбирается уровень значимости (α), обычно 0.05.
  • Если p-value < α, то свидетельства против нулевой гипотезы считаются статистически значимыми, и её отвергают.
  • Если p-value ≥ α, то недостаточно оснований отвергнуть нулевую гипотезу.

Критически важный нюанс: P-value НЕ является вероятностью того, что нулевая гипотеза верна. Это распространенная ошибка.

Пример на Python (t-тест):

import numpy as np
from scipy import stats

# Предположим, мы тестируем новую систему рекомендаций.
# Контрольная группа: средний CTR = 5%
control = np.random.normal(loc=0.05, scale=0.01, size=1000)
# Тестовая группа с предполагаемым улучшением
test = np.random.normal(loc=0.052, scale=0.01, size=1000)

# Нулевая гипотеза (H0): средние CTR равны (разницы нет).
t_stat, p_val = stats.ttest_ind(test, control)
print(f"t-статистика: {t_stat:.4f}, p-value: {p_val:.6f}")

if p_val < 0.05:
    print("Отвергаем H0. Разница в CTR статистически значима.")
else:
    print("Не можем отвергнуть H0. Значимой разницы не обнаружено.")