Ответ
Для проведения A/B теста:
-
Определить цель и метрики
Например, конверсия в покупку или средний чек. Выбираем primary и guardrail метрики. -
Разделить трафик
Обычно 50/50, но можно иначе (например, 90/10 для новых фич). Убедиться в рандомизации (cookie-based или user-based). -
Рассчитать размер выборки
Используем power analysis (например, черезstatsmodels):
from statsmodels.stats.power import tt_ind_solve_power
effect_size = 0.1 # минимальный детектируемый эффект
power = 0.8
alpha = 0.05
sample_size = tt_ind_solve_power(effect_size, power, alpha)
-
Запустить тест
Собираем данные, избегая сезонных периодов. Минимум 1-2 недели. -
Анализ результатов
Проверяем стат. значимость (t-test, chi-square) и практическую значимость эффекта. Смотрим на пересечение доверительных интервалов.
Важно:
- Проверить SRM (Sample Ratio Mismatch)
- Учесть novelty effect
- Анализировать сегменты (новые vs постоянные пользователи)
Пример вывода: если p-value < 0.05 и эффект > MDE, принимаем решение.