A/B-тестыстатистикамощность тестаошибки гипотезMDEаналитика данных

Ошибки первого и второго рода в A/B-тесте

2026-07-07 10 мин

Ошибка первого рода — это ложное срабатывание: тест показал эффект, которого на самом деле нет (вероятность = alpha, обычно 0.05). Ошибка второго рода — пропуск реального эффекта: изменение работало, но тест этого не заметил (вероятность = beta). Мощность теста равна 1 - β — это шанс поймать эффект, если он существует. Уменьшить обе ошибки сразу без роста выборки нельзя: alpha и beta связаны через размер выборки и MDE.

Что такое H0 и H1 в A/B-тесте?

Любой A/B-тест — это проверка двух конкурирующих гипотез.

Логика теста устроена «от противного»: мы предполагаем, что H0 верна, и смотрим, насколько наблюдаемая разница неправдоподобна при этом предположении. Если разница слишком велика, чтобы объяснить её случайностью (p-value ниже порога alpha), — отвергаем H0 в пользу H1. При этом мы никогда не «доказываем» H0, а только не находим достаточных оснований её отвергнуть.

Чем отличается ошибка первого рода от второго?

Обе ошибки — это ситуации, когда решение по тесту расходится с реальностью. Разница в том, в какую сторону мы ошиблись.

Формально:

α = P(отвергли H_0 H_0 верна) β = P(не отвергли H_0 H_1 верна)

Мощность теста — способность обнаружить эффект, когда он есть:

Power = 1 - β

Стандартные значения на практике: α = 0.05 (готовы в 5% случаев поймать ложный эффект) и мощность 0.8, то есть β = 0.2 (готовы в 20% случаев пропустить реальный эффект).

Таблица 2x2: четыре исхода теста

Все комбинации «реальность × решение» удобно свести в матрицу.

Решение по тестуH0 верна (эффекта нет)H1 верна (эффект есть)
Не отвергли H0 (эффект не нашли)Верно (1 − alpha)Ошибка II рода (beta)
Отвергли H0 (эффект нашли)Ошибка I рода (alpha)Верно, мощность (1 − beta)

Две клетки на диагонали — правильные решения, две — ошибки. Аналогия из медицины: ошибка I рода — сказать здоровому пациенту, что он болен; ошибка II рода — отпустить больного как здорового.

Как это выглядит на числах?

Разберём на иллюстративных данных (числа условные, не из реального теста). Тестируем новый онбординг. Базовая конверсия в оплату — 4%.

Предположим, тест дал конверсию 4.6% в группе B против 4.0% в A, p-value = 0.03. Поскольку 0.03 < 0.05, отвергаем H0. Но остаётся риск, что это как раз то самое ложное срабатывание из 5%. Именно поэтому одно «значимое» число без предварительного расчёта выборки и без контроля множественных проверок — слабое основание для решения.

Как связаны alpha, beta и размер выборки?

Ключевой факт: при фиксированном размере выборки уменьшение alpha увеличивает beta, и наоборот. Это trade-off.

Разорвать этот компромисс можно единственным честным способом — увеличить размер выборки. Больше данных сужают распределения оценок, и обе ошибки уменьшаются одновременно.

Приближённая формула размера выборки на группу для сравнения двух пропорций:

n = ((z_1-α/2 + z_1-β)^2 · 2 · p(1-p)) / (MDE^2)

где z_1-α/2 ≈ 1.96 при alpha = 0.05, z_1-β ≈ 0.84 при мощности 0.8, p — базовая конверсия, MDE — минимальный эффект, который вы хотите уметь ловить (в абсолютных долях).

Числовой пример: базовая конверсия p = 0.04, хотим ловить абсолютный прирост MDE = 0.005 (то есть 4.0% → 4.5%).

n = ((1.96 + 0.84)^2 · 2 · 0.04 · 0.96) / (0.005^2) = (7.84 · 0.0768) / (0.000025) ≈ 24 084

Нужно примерно 24 тысячи наблюдений в каждую группу. Уменьшите MDE вдвое — и выборка вырастет в 4 раза (MDE стоит в квадрате в знаменателе). Именно поэтому расчёт MDE и мощности делают до старта теста, а не после. Подробный разбор — в посте про MDE и минимальный детектируемый эффект.

Прикинуть размер выборки под свои alpha, beta и MDE можно прямо в SQL на данных о трафике:

-- Оценка требуемой выборки на группу (иллюстративно)
WITH params AS (
    SELECT
        0.04   AS p,        -- базовая конверсия
        0.005  AS mde,      -- целевой абсолютный эффект
        2.80   AS z_sum     -- z(1-alpha/2)+z(1-beta) = 1.96+0.84
)
SELECT
    p,
    mde,
    CEIL( (z_sum * z_sum) * 2 * p * (1 - p) / (mde * mde) ) AS n_per_group
FROM params;

Какие ошибки чаще всего портят A/B-тесты?

Многие провалы связаны не с самой теорией, а с тем, как тест ведут на практике.

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

Сравнение: alpha против beta

ХарактеристикаОшибка I рода (alpha)Ошибка II рода (beta)
Что произошлоНашли эффект, которого нетПропустили реальный эффект
ТипFalse positiveFalse negative
Типичное значение0.050.2
Связь с мощностьюPower = 1 − beta
Цена ошибкиРаскатили бесполезное/вредное изменениеОтбросили полезное изменение

Понимание этого баланса отличает аналитика, который «получил значимость», от аналитика, который умеет объяснить, почему результату можно верить. Закрепить расчёты можно на практике: потренируйте выборку и p-value на SQL-тренажёре и Python-тренажёре, разберите готовые кейсы по A/B и прогоните вопросы по статистике в разделе собеседований.

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