Ошибки I и II рода

Любое статистическое решение может быть ошибочным двумя способами. Понимать оба — значит грамотно выбирать пороги.

Ошибка I рода — отвергнуть верную H₀ («ложная тревога»). Ошибка II рода — не отвергнуть ложную H₀ («пропуск эффекта»).

Четыре исхода решения

Проверяя гипотезу, мы принимаем решение «отвергнуть H₀ или нет», а реальность либо содержит эффект, либо нет. Получается таблица 2×2:

H₀ верна (эффекта нет)H₀ ложна (эффект есть)
Отвергли H₀Ошибка I рода (α)Верно ✓
Не отвергли H₀Верно ✓Ошибка II рода (β)
  • Ошибка I рода (α) — «ложная тревога»: увидели эффект там, где его нет. Например, признали лекарство работающим, хотя оно бесполезно.
  • Ошибка II рода (β) — «пропуск»: не заметили реальный эффект. Например, забраковали хорошее лекарство.

Аналогия с медицинским тестом

  • Ошибка I рода = ложноположительный результат (тест «болен», а человек здоров).
  • Ошибка II рода = ложноотрицательный (тест «здоров», а человек болен).

В суде: осудить невиновного — ошибка I рода; оправдать виновного — ошибка II рода. Какая хуже — зависит от контекста, и именно это определяет выбор порога.

Компромисс между α и β

Уровень значимости α — это и есть вероятность ошибки I рода, которую мы себе позволяем. Заманчиво поставить α поменьше — но тогда мы реже отвергаем H₀ вообще, и растёт β (чаще пропускаем настоящий эффект). Уменьшая один риск, увеличиваем другой.

# Маленькое игрушечное сравнение: смягчаем порог alpha
# и смотрим, как меняется доля "тревог" на данных БЕЗ эффекта.
import random
random.seed(77)

def fraction_rejected(alpha, effect=0.0, trials=20000):
    # данные: 30 значений из нормального с заданным сдвигом effect
    rejects = 0
    for _ in range(trials):
        sample = [random.gauss(effect, 1) for _ in range(30)]
        m = sum(sample) / len(sample)
        # грубый z-тест против H0: среднее = 0
        se = 1 / 30 ** 0.5
        z = m / se
        # двусторонний порог: 1.96 для 0.05, 2.58 для 0.01
        crit = 2.58 if alpha == 0.01 else 1.96
        if abs(z) > crit:
            rejects += 1
    return rejects / trials

print("Эффекта НЕТ (тут отвержения = ошибка I рода):")
print("  alpha=0.05 -> доля тревог:", fraction_rejected(0.05, effect=0.0))
print("  alpha=0.01 -> доля тревог:", fraction_rejected(0.01, effect=0.0))

Вывод:

Эффекта НЕТ (тут отвержения = ошибка I рода):
  alpha=0.05 -> доля тревог: 0.04885
  alpha=0.01 -> доля тревог: 0.0098

Когда эффекта нет, доля отвержений совпадает с α: при 0.05 ложно «тревожимся» в 5% случаев, при 0.01 — в 1%. Это и есть ошибка I рода под нашим контролем. Сделав α строже (0.01), мы реже бьём ложную тревогу — но в обмен чаще будем пропускать реальные эффекты (рост β).

Мощность теста

Величину 1 − β называют мощностью теста — вероятность обнаружить эффект, когда он действительно есть. Мощность растёт, если: эффект крупнее, выборка больше, разброс данных меньше. Поэтому перед экспериментом считают, какой размер выборки даст достаточную мощность (часто целятся в 80%).

import random
random.seed(77)

def power(effect, n, trials=20000):
    detected = 0
    for _ in range(trials):
        sample = [random.gauss(effect, 1) for _ in range(n)]
        m = sum(sample) / len(sample)
        z = m / (1 / n ** 0.5)
        if abs(z) > 1.96:        # alpha = 0.05
            detected += 1
    return detected / trials

# Один и тот же эффект, но разный размер выборки
print("Мощность при effect=0.5:")
print("  n=10 :", power(0.5, 10))
print("  n=30 :", power(0.5, 30))
print("  n=100:", power(0.5, 100))

Вывод:

Мощность при effect=0.5:
  n=10 : 0.3549
  n=30 : 0.77505
  n=100: 0.9989

Один и тот же реальный эффект (0.5) на выборке из 10 ловится лишь в 35% случаев, а на 100 — почти всегда (99.9%). Вывод для практики: маленькая выборка часто «не видит» настоящий эффект. Если эксперимент не показал значимости, это может быть не «эффекта нет», а «не хватило мощности».

Итог

  • Ошибка I рода (α) — ложная тревога: отвергли верную H₀.
  • Ошибка II рода (β) — пропуск: не отвергли ложную H₀.
  • Уменьшая α, обычно увеличиваешь β — это компромисс.
  • Мощность 1−β — шанс заметить реальный эффект; растёт с размером выборки и величиной эффекта.
Проверьте себя
1. Что такое ошибка I рода?
AНе заметить реальный эффект
BОтвергнуть верную нулевую гипотезу (ложная тревога)
CОшибка в вычислении среднего
DСлишком большая выборка
2. С чем напрямую связана вероятность ошибки I рода?
AС размером выборки
BС выбранным уровнем значимости α
CС мощностью теста
DСо средним значением
3. Что такое мощность статистического теста?
AВероятность ошибки I рода
BВероятность обнаружить эффект, когда он действительно есть (1 − β)
CРазмер выборки
DУровень значимости
4. Эксперимент на маленькой выборке не показал значимости. Что это вероятнее всего значит?
AЭффекта точно нет
BH₀ доказана
CВозможно, не хватило мощности заметить реальный эффект
DДанные собраны неправильно
Поддержать проект