Как определить длительность эксперимента
Что проверяют
Умеете ли вы выводить длительность A/B-теста из размера выборки, а не назначать «две недели, как обычно». Следом обычно спрашивают, можно ли остановить тест раньше, если p-value уже ниже 0,05.
Как отвечать
Длительность складывается из трёх вещей: сколько пользователей нужно, сколько их попадает в тест за день и какая в продукте сезонность. Размер выборки на группу зависит от:
- базового значения метрики и её дисперсии: для конверсии это
p(1-p); - MDE, минимального эффекта, который имеет смысл ловить. Его задаёт бизнес: какой прирост окупит внедрение;
- уровня значимости, обычно 0,05, и мощности, обычно 0,8.
Для двух групп и конверсии удобна прикидка n ≈ 16·p(1-p)/δ² на группу, где δ это абсолютный MDE. Базовая конверсия 5%, хотим поймать рост до 5,5%: 16 · 0,05 · 0,95 / 0,005² ≈ 30 400 пользователей на группу. Если в тест приходит 10 000 уникальных пользователей в день и делятся они пополам, выходит около шести дней.
Дальше поправки:
- полные недели: поведение в будни и выходные разное, поэтому минимум одна, а лучше две полные недели;
- уникальные копятся медленнее трафика: вернувшиеся посетители выборку не увеличивают, поэтому считают прирост уникальных, а не визиты;
- эффект новизны: в первые дни пользователи реагируют на изменение сильнее, чем потом;
- снижение дисперсии: CUPED на данных до теста уменьшает нужную выборку и сокращает срок.
Для расчёта хватает калькулятора или statsmodels: proportion_effectsize и NormalIndPower().solve_power.
Где спотыкаются
Подглядывают: смотрят результат каждый день и останавливают тест, как только стало значимо. Доля ложных срабатываний при этом растёт в разы. Если ранняя остановка нужна, её закладывают заранее через последовательное тестирование.
Путают относительный и абсолютный MDE. Рост на 10% от конверсии 5% это 0,5 процентного пункта, и выборка для него в сотни раз больше, чем для роста на 10 пунктов.
Растягивают тест «для надёжности» на месяцы. Пользователи чистят куки и меняют устройства, группы смешиваются, и результат становится только хуже.