Variance (дисперсия) — мера шума в данных. Чем выше дисперсия метрики, тем сложнее отличить реальный эффект от случайного колебания.
Revenue per user: среднее = 120₽, SD = 800₽. Эффект +5% = +6₽. Шум в 130× больше сигнала. Чтобы t-test увидел этот эффект — нужны сотни тысяч пользователей.
Конверсия 5%: SD = √(0.05 × 0.95) ≈ 0.22. Эффект +1 п.п. = 0.01. Шум в 22× больше сигнала — но это уже лучше, чем revenue. Поэтому тесты на конверсию быстрее.
Power (мощность) — вероятность обнаружить реальный эффект. Формула упрощённо:
где σ² — дисперсия метрики, δ — размер эффекта. Удвоить выборку — дорого (время × трафик). Уменьшить дисперсию вдвое — эквивалент удвоения выборки, но бесплатно.
MDE (Minimal Detectable Effect) — минимальный эффект, который тест может обнаружить при заданных N и power.
Если снизить дисперсию на 40%:
Это не теория — это операционный рычаг. Команда, использующая CUPED, запускает в 1.5–2× больше экспериментов в год при том же трафике.
Три стратегии ускорения:
Variance reduction — это третья стратегия. Мы не меняем данные, а убираем из них компоненту шума, которая не связана с treatment.
Метрика Y = treatment_effect + user_baseline + random_noise.
Treatment effect — то, что мы ищем. User baseline — то, что было бы без эксперимента (пользователь и так тратит 200₽ в месяц). Random noise — случайные колебания.
Если мы знаем user_baseline (из pre-period данных), мы можем вычесть его:
Остаётся: treatment_effect + остаточный_noise. Дисперсия Yadj < дисперсия Y.
CUPED (Controlled-experiment Using Pre-Experiment Data) использует данные до эксперимента как ковариату. Если пользователь тратил 200₽/мес до эксперимента, вероятно, он потратит примерно столько же и во время — плюс-минус эффект treatment.
Ковариата Xpre не зависит от treatment (собрана до начала). Поэтому её вычитание не вносит bias.
Ключевой параметр — корреляция ρ между Xpre и Y:
| ρ (корреляция) | Снижение дисперсии | Эквивалент в трафике |
|---|---|---|
| 0.3 | 9% | 1.1× |
| 0.5 | 25% | 1.3× |
| 0.7 | 49% | 2× |
| 0.9 | 81% | 5× |
При ρ = 0.7 вы получаете эффект удвоения выборки — бесплатно. При ρ = 0.9 — пятикратное увеличение.
Leakage — когда ковариата содержит информацию о treatment. Это происходит если:
Правило: Xpre должен быть полностью собран до начала рандомизации. Ни одно наблюдение из Xpre не должно включать данные после assignment.
Если в эксперименте смешаны пользователи из разных сегментов (new vs returning, mobile vs desktop, город A vs город B) — дисперсия внутри каждого сегмента ниже, чем общая.
Стратификация — разбиение выборки на страты (блоки) и балансировка treatment/control внутри каждой страты.
Доставка еды. Средний чек: Москва = 1800₽, регионы = 700₽. Общая дисперсия высокая. Если стратифицировать по городу — дисперсия внутри страт снижается на 15–30%.
Device: desktop users конвертируются в 3× чаще, чем mobile. Стратификация по device type убирает эту компоненту дисперсии.
Revenue per user. 0.1% пользователей генерируют 30–40% дисперсии. Один whale user может изменить среднее группы на 1–2%. Это шум, не сигнал.
Если treatment создаёт whale users (premium-фича, enterprise deal) — winsorization скрывает реальный эффект. Вы «режете» именно то, что treatment создал.
Правило: (1) Зафиксировать порог до эксперимента. (2) Показывать результат с и без winsorization — sensitivity analysis. (3) Если бизнес-ценность в хвосте (enterprise) — winsorization неуместна.
Типичная дилемма: winsorization снижает дисперсию на 40%, но занижает эффект на 15%. Стоит ли? Зависит от контекста — универсального ответа нет.
CUPED — частный случай регрессионной корректировки с одной ковариатой. В общем случае:
где Xk — ковариаты (pre-period метрика, сегмент, device, регион).
Множественные ковариаты могут дать больший выигрыш, чем одна. Pre-period revenue + pre-period sessions + device type → совокупное снижение дисперсии 50–60%.
Каждая дополнительная ковариата добавляет incremental gain — но с убывающей отдачей. Первая ковариата (pre-period метрика) даёт 80% выигрыша. Вторая — ещё 10%. Третья — ещё 3%.
Практика: 1–3 ковариаты — sweet spot. Больше — переобучение и diminishing returns.
Если ковариаты выбирать после просмотра результатов — это p-hacking. Аналитик может подобрать набор ковариат, при котором результат «значимый».
Правило: ковариаты фиксируются в analysis plan до начала эксперимента. Любое отклонение — sensitivity analysis, не primary result.
| Ситуация | Метод | Ожидаемый выигрыш | Риски |
|---|---|---|---|
| Есть pre-period, ρ > 0.5 | CUPED | 25–80% снижения дисперсии | Leakage, нестационарность |
| Есть pre-period, ρ < 0.3 | CUPED даёт мало (<9%) | — | Не стоит усложнения |
| Heavy tail (revenue, LTV) | Winsorization + bootstrap | 20–50% стабилизации | Скрывает эффект в хвосте |
| Гетерогенность (city, device) | Стратификация | 10–30% снижения дисперсии | Post-treatment стратификация |
| Много нулей (zero inflation) | Разделение метрики (CR + mean) | Кратный рост power | Две метрики вместо одной |
| Conditional-метрика | CUPED ограничен | — | Selection bias (Модуль 01) |
| Новые пользователи | Стратификация (device, source) | 5–15% | CUPED неприменим |
Методы не исключают друг друга. Типичный стек:
Совокупный эффект: дисперсия снижается на 50–70%. Тест, который занимал 4 недели, занимает 10–14 дней.
Связь с другими модулями:
Форма распределения → Distribution Playground (Модуль 03)
Выбор теста → Test Selection Map (Модуль 04)
CUPED в действии → CUPED Simulator
Ускорение тестов — это не про «налить больше трафика», а про снижение дисперсии: CUPED, стратификация, winsorization и регрессионная корректировка.
Корреляция pre/post, форма распределения и гетерогенность сегментов определяют, какой метод variance reduction даст наибольший выигрыш.
При аккуратном применении вы можете сократить длительность экспериментов в 1.5–2 раза без потери качества, но нарушение допущений (leakage, post-treatment стратификация, p-hacking) приводит к смещённым оценкам.