Variance reduction в A/B-тестах: CUPED, stratification и другие методы
Содержание:
Что такое variance reduction
В A/B тесте мы сравниваем среднее метрики в treatment и control. Чем больше variance метрики, тем труднее обнаружить эффект — нужно больше юзеров для той же statistical power.
Variance reduction — техники, которые снижают variance анализа без изменения дизайна эксперимента. Результат: тот же эффект становится статистически значимым на меньшей выборке.
Эффект: обычно 20-50% reduction в variance. Это либо в 2× меньше нужна выборка, либо в √2× меньше MDE детектируется.
Variance reduction — must-have для senior DS, особенно в компаниях с десятками тысяч экспериментов в год (Yandex, Tinkoff, Ozon).
CUPED — главный метод
CUPED (Controlled-experiment Using Pre-Experiment Data) — техника, которая использует pre-эксперимент данные для снижения variance.
Идея: если у юзера до эксперимента была высокая активность, она скорее всего и в эксперименте будет высокая. Учёт этого «бейзлайна» убирает predictable variance.
Формула
Y_adjusted = Y - theta × (X - mean(X))где:
Y— метрика во время экспериментаX— pre-experiment covariate (та же метрика за неделю до эксперимента)theta = Cov(Y, X) / Var(X)— коэффициент регрессии
После adjustement, mean остаётся прежним, а variance снижается.
Когда работает
- Метрика стабильна во времени (revenue per user, time spent, retention)
- Есть pre-experiment data для большинства юзеров
- Covariate (pre-X) сильно коррелирует с outcome (Y)
Когда не работает
- Новые юзеры (нет pre-data)
- Метрика, которой не было до (e.g., конверсия в первую покупку)
- Pre-period слишком короткий
Размер эффекта
Variance reduction обычно:
- 30-50% для активных метрик (revenue, sessions, time spent)
- 10-20% для метрик с высокой volatility
- <10% или негативный — если covariate плохой
Подробнее — CUPED для снижения дисперсии.
Stratification
Stratification — балансировка распределения юзеров по характеристикам перед рандомизацией.
Идея
Если в группе T случайно попадут юзеры с более высоким baseline (например, больше power users), результат искажён. Stratification гарантирует, что важные сегменты равно представлены.
Pre-experiment stratification
Перед запуском:
- Делим юзеров на страты по характеристикам (device, platform, активность)
- В каждой страте — независимая рандомизация 50/50
Mobile users: 50% T, 50% C
Desktop users: 50% T, 50% CЭто гарантирует баланс на этих характеристиках.
Эффект
Variance reduction — 5-20%. Меньше CUPED, но проще реализовать.
Post-stratification
Post-stratification — балансировка во время анализа, без изменения дизайна.
Идея
Эксперимент уже запущен с обычной рандомизацией. На анализе делаем weighted estimate, где веса корректируют дисбалансы между T и C.
ATE_post-stratified = sum_strata(weight_strata × (Y_T_strata - Y_C_strata))Преимущества
- Не требует изменения assignment-логики
- Применяется при анализе уже запущенного эксперимента
Недостатки
- Меньше effective чем pre-experiment stratification
- Требует знания страт во время анализа
Regression adjustment
Regression adjustment — линейная регрессия с дополнительными covariate-ами.
Y = beta_0 + beta_1 × T + beta_2 × X + epsilonгде T — индикатор treatment, X — covariates (pre-experiment data, demographics).
Coefficient beta_1 — оценка treatment-эффекта с учётом covariates.
Связь с CUPED
CUPED — это упрощённая регрессия с одним covariate. Regression adjustment может использовать несколько covariate-ов одновременно.
Когда полезно
- Несколько важных predictors
- Нелинейные эффекты (через полиномы / interactions)
- Heterogeneous treatment effects (CATE)
Какой метод выбрать
| Ситуация | Подходит |
|---|---|
| Метрика стабильна, есть pre-data | CUPED |
| Хочется баланс по device / region | Pre-experiment stratification |
| Эксперимент уже запущен, дисбаланс | Post-stratification |
| Много predictors | Regression adjustment |
| Heterogeneous эффекты | Regression + CATE |
В практике: CUPED — default для большинства экспериментов. Stratification — дополнительно по важным характеристикам.
Связанные темы
- A/B-тестирование на собесе
- CUPED для снижения дисперсии
- Размер выборки A/B
- A/B и causal inference на собесе DS
- Sample Ratio Mismatch (SRM)
FAQ
Сколько variance reduction даёт CUPED?
Обычно 20-50%. Зависит от того, насколько pre-period coверage с post-period.
Можно ли комбинировать CUPED + stratification?
Да. Сначала pre-experiment stratification, потом CUPED при анализе. Эффект мультипликативный.
Pre-period должен быть длиннее post-period?
Не обязательно. Главное чтобы был достаточно долгий для надёжной covariate (1-2 недели обычно).
Регрессия adjustment vs CUPED — что лучше?
Технически regression — обобщение CUPED. На практике CUPED проще объяснить менеджеру и стандартизирован в большинстве A/B-платформ.
Когда стоит применять variance reduction?
Когда: (1) выборка ограничена, (2) MDE маленький, (3) есть pre-experiment data. Если выборка огромная и эффект большой — variance reduction даёт меньше пользы.