Урок курса

Размер выборки и длительность A/B-теста

A/B тесты и анализ данных на Python

Размер выборки рассчитывают до запуска эксперимента. Для него нужны baseline-уровень метрики, минимальный обнаруживаемый эффект (MDE), уровень значимости alpha, желаемая мощность и схема распределения трафика.

MDE — не прогноз и не «эффект, который хочется увидеть». Это наименьшее изменение, ради которого бизнес готов принять решение. Чем меньше MDE, тем больше наблюдений требуется. Более высокая мощность тоже увеличивает выборку, зато снижает риск пропустить реальный эффект выбранного масштаба.

Для конверсии расчёт использует дисперсию бинарной метрики, для среднего чека — оценку дисперсии непрерывной метрики. Исторические данные должны соответствовать той же единице анализа и похожему трафику.

Из выборки в длительность

После расчёта наблюдений оцените дневной поток подходящих пользователей и долю, попадающую в эксперимент. Простое деление даёт минимальную техническую длительность, но продуктовый тест обычно должен покрыть целые недельные циклы.

Два дня с большим трафиком не заменяют две недели, если поведение будней и выходных различается. Также учитывайте время созревания метрики: покупка или удержание могут проявляться позже назначения варианта.

Уникальным пользователям нужно стабильно показывать один вариант. Повторные визиты не увеличивают независимую выборку так же, как новые пользователи. Для кластерной рандомизации по компаниям или городам расчёт корректируют на внутрикластерную зависимость.

Почему нельзя пересчитывать план после старта

Остановить тест при первом удобном результате — значит изменить правило принятия решения на основании самих данных. Это повышает частоту ложноположительных выводов. Если бизнесу нужен непрерывный мониторинг, заранее выбирают последовательный метод и соответствующие границы.

До запуска зафиксируйте primary metric, guardrail-метрики, MDE, alpha, мощность, единицу рандомизации, целевую выборку, минимальную длительность и допустимые исключения данных. Проверка качества трафика не должна превращаться в поиск способа «добыть значимость».

Если поток слишком мал, честные варианты — принять более крупный MDE, объединить трафик, увеличить срок или не запускать тест. Статистика не создаёт информацию из недостатка наблюдений.

MDE в процентах и процентных пунктах

Baseline 10% и относительный MDE 10% означают целевую альтернативу 11%, а не 20%. Абсолютная разница составляет 1 процентный пункт. Если для такого эффекта расчёт дал 15 000 пользователей в каждой группе, нужен общий поток 30 000 подходящих уникальных пользователей.

При 3000 подходящих пользователях в сутки и равном распределении за день в каждую группу попадают 1500 человек. Минимум для набора — 10 дней. Если заранее договорились закрыть целые недельные циклы, план может составить 14 дней. Ожидание созревания покупки добавляется отдельно. Эти 15 000 — условный результат внешнего расчёта, а не универсальная норма.

from math import ceil
baseline, relative_mde = 0.10, 0.10
alternative = baseline * (1 + relative_mde)
per_group, eligible_per_day = 15000, 3000
minimum_days = ceil(2 * per_group / eligible_per_day)
print(round(alternative, 2), minimum_days)
assert minimum_days == 10

Уменьшите поток в коде вдвое: длительность набора удвоится. Повторный визит того же человека не превращается в нового независимого участника. Если выборка набрана, но покупка ещё не могла проявиться, остановка анализа будет преждевременной.

Продолжите разбор: Ошибки I и II рода в A/B-тестах.

Задача 1

Что произойдёт с требуемой выборкой, если уменьшить MDE при прочих равных?

Выберите один вариант
Без регистрации · результат не сохраняется

Продолжить с сохранением прогресса

Перейдите к уроку в учебном кабинете.

Перейти к интерактивному уроку