Симулятор A/B-тестов
Посчитайте размер выборки, увидьте, что такое мощность, и прогоните тысячи экспериментов в Монте-Карло — чтобы решения принимались числом, а не интуицией.
1 · Калькулятор размера выборки
Задайте параметры — размер выборки, порог значимости и длительность теста пересчитываются на лету.
Доля конверсии в контрольной группе сейчас
Эффект меньше этого тест, скорее всего, не заметит
Вероятность «ложной победы» при отсутствии эффекта (ошибка I рода)
Вероятность поймать эффект размером не меньше MDE (1 − β)
Двусторонний — если эффект может оказаться любым; односторонний требует меньше данных, но «ставит» только на рост
Для оценки длительности теста при сплите 50/50
⚠ MDE упирается в потолок: конверсия B ограничена 99,5%, расчёт идёт по ней.
…
Показать формулу и промежуточные значения
2 · Мощность — глазами
Каждый прогон теста даёт оценку эффекта — точку на горизонтальной оси (изменение конверсии в процентных пунктах). Серая кривая показывает, как распределятся оценки, если эффекта нет (H₀), синяя — если истинный эффект равен MDE (H₁).
Тест объявляет победу, когда оценка эффекта выходит за порог значимости (пунктирные линии). Тогда: красные зоны под H₀ — это ложные победы (их ровно α), янтарная зона под H₁ — пропущенный эффект (β), зелёная — пойманный эффект (мощность). Двигайте ползунки в калькуляторе — картинка пересчитывается.
3 · Тысячи экспериментов в Монте-Карло
Калькулятор «обещает» мощность 80%. Проверим: запустим множество независимых экспериментов с истинным эффектом, который вы задали сами, — и посмотрим, что получается на самом деле. Истинный эффект может отличаться от MDE: поставьте ноль и посмотрите, как часто тест всё равно «находит победу».
Используется n = … на вариант из калькулятора
результаты появятся здесь.
Как это считается
Модель
- Метрика — доля (конверсия), сплит 50/50, один тест A против B.
- Проверка — z-тест для двух долей со объединённой дисперсией (pooled SE): z = (p̂B − p̂A) / √(2·p̄(1−p̄)/n), где p̄ — средняя наблюдаемых долей.
- Размер выборки — стандартная формула с нормальной аппроксимацией (пункт «Показать формулу» в калькуляторе раскрывает её с числами). Для конверсий и объёмах выборки из калькулятора аппроксимация корректна.
- Симуляция генерирует p̂A и p̂B из нормальных распределений с дисперсиями p(1−p)/n — это ровно та модель, на которой основана формула, поэтому доли значимых прогонов совпадают с α и мощностью.
Честные ограничения
- Фиксированный горизонт. Всё выше — про тест с заранее рассчитанным объёмом. Если «подглядывать» и останавливаться при первом p < 0,05, реальный α многократно вырастает. Здесь этого не смоделировать — это уже другой тест (sequential testing).
- Нет поправок на множественные сравнения, сезонность, новизну и пересечение групп — в реальном тесте их учитывают отдельно.
- Значимый результат ≠ большой эффект: среди «победителей» измеренный лифт в среднем завышен — это видно в симуляции («проклятие победителя»).
Проверять себя полезно
- Evan Miller — Sample Size Calculator — эталонная формула размера выборки.
- Kohavi, Tang, Xu — Trustworthy Online Controlled Experiments — каноничная книга про A/B-тесты.
- Методология оттачивалась на курсе «Симулятор A/B-тестов» (Karpov.courses); реализация — с нуля на чистом JavaScript, без единой библиотеки.