Проверка гипотез и p-value

Изменение дало эффект — или это просто случайность? Проверка гипотез отвечает на этот вопрос строго.

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

Две гипотезы

Любая проверка начинается с двух взаимоисключающих утверждений:

  • Нулевая гипотеза (H₀) — «эффекта нет, всё как раньше, разница случайна». Это позиция скептика по умолчанию.
  • Альтернативная (H₁) — «эффект есть, разница реальна».

Логика как в суде: H₀ — презумпция невиновности. Мы не доказываем H₁ напрямую, а смотрим, достаточно ли данных, чтобы отвергнуть H₀. Если данные слишком неправдоподобны при H₀ — отвергаем её в пользу H₁.

Уровень значимости и p-value

Заранее выбирают порог α (обычно 0.05). Затем считают p-value — насколько правдоподобны наши данные, если H₀ верна. Решение простое: p < α — отвергаем H₀ (результат «статистически значим»); p ≥ α — оснований отвергнуть нет.

Пример: честная ли монета?

Монету бросили 100 раз, выпало 63 орла. Подозрительно много? Проверим H₀ «монета честная (p = 0.5)». Оценим p-value симуляцией: как часто у честной монеты выпадает 63 или больше орлов (или 37 и меньше — отклонение в любую сторону).

import random
random.seed(123)

observed = 63
n = 100
trials = 100000
extreme = 0
for _ in range(trials):
    heads = sum(1 for _ in range(n) if random.random() < 0.5)
    # отклонение от 50 не меньше наблюдаемого (двусторонний тест)
    if abs(heads - 50) >= abs(observed - 50):
        extreme += 1

p_value = extreme / trials
print("Наблюдалось орлов:", observed)
print("p-value (симуляция):", round(p_value, 4))
print("Отвергаем H0 при alpha=0.05?", p_value < 0.05)

Вывод:

Наблюдалось орлов: 63
p-value (симуляция): 0.0116
Отвергаем H0 при alpha=0.05? True

p-value ≈ 0.012: если бы монета была честной, результат «63 или более экстремально» случался бы примерно в 1% случаев. Это меньше 0.05 — отвергаем H₀, монета похожа на нечестную. Заметьте: мы не доказали нечестность, а лишь показали, что честностью данные объясняются плохо.

Чего p-value НЕ означает (критично!)

Вокруг p-value море заблуждений. Запомните, чем оно не является:

НеверноВерно
«Вероятность, что H₀ истинна»Вероятность таких данных ПРИ условии, что H₀ истинна
«Вероятность, что результат — случайность»Насколько данные совместимы с «эффекта нет»
«p = 0.04 важнее, чем p = 0.06»0.05 — условный порог, не магическая граница
«Маленькое p = большой эффект»p ничего не говорит о размере эффекта

Последний пункт особенно важен: при огромной выборке даже микроскопическая, бесполезная на практике разница даёт крошечное p-value. Статистическая значимость ≠ практическая важность. Всегда смотрите и на размер эффекта (например, на доверительный интервал разницы), а не только на p.

Граница 0.05 условна

Порог α = 0.05 — традиция, а не закон природы. p = 0.049 и p = 0.051 практически неразличимы, хотя формально лежат по разные стороны порога. Поэтому современная практика — приводить точное p-value и размер эффекта, а не просто писать «значимо / незначимо».

Итог

  • H₀ — «эффекта нет», H₁ — «эффект есть»; мы пытаемся отвергнуть H₀.
  • p-value — вероятность таких (или более экстремальных) данных, ЕСЛИ H₀ верна.
  • p < α (обычно 0.05) — отвергаем H₀; иначе оснований нет.
  • Маленькое p не значит «большой эффект» и не равно «вероятности, что H₀ верна»; значимость ≠ важность.
Проверьте себя
1. Что такое нулевая гипотеза (H₀)?
AУтверждение, что эффект есть
BУтверждение по умолчанию, что эффекта нет, а разница случайна
CГипотеза с нулевым p-value
DСреднее значение выборки
2. Что на самом деле означает p-value?
AВероятность того, что нулевая гипотеза верна
BВероятность получить такие или более экстремальные данные, если нулевая гипотеза верна
CВероятность, что эффект большой
DДолю ошибок в данных
3. Очень маленькое p-value при огромной выборке означает, что...
AЭффект обязательно большой и важный
BРазличие статистически значимо, но может быть практически ничтожным
CДанные собраны с ошибкой
DНулевая гипотеза точно верна
4. Если p-value = 0.20 при α = 0.05, какой вывод корректен?
AНулевая гипотеза доказана
BОснований отвергнуть нулевую гипотезу нет
CЭффект точно есть
DНужно уменьшить α до 0.20
Поддержать проект