Каждая продуктовая команда хочет быстрых экспериментов. CUPED (Controlled-experiment Using Pre-Experiment Data) -- одна из самых обсуждаемых техник для этого. Она снижает дисперсию метрики за счёт данных, собранных до начала эксперимента, и фактически даёт более узкий доверительный интервал при меньшем объёме выборки.
Как CUPED работает за 30 секунд
Берём метрику Y (например, выручку на пользователя за время эксперимента). Находим ковариату X, коррелирующую с Y, но измеренную до эксперимента (например, выручку на пользователя за предыдущие 30 дней). Вычитаем предсказанную часть: Y_adjusted = Y - theta * X. Остаток имеет меньшую дисперсию, поэтому тест достигает значимости быстрее.
Ключевое допущение
CUPED работает хорошо только тогда, когда ковариата объясняет значимую долю дисперсии. Если корреляция между X и Y составляет 0.7+, вы можете сократить необходимый размер выборки на 50%. Если корреляция 0.2 -- выигрыш пренебрежимо мал, и вы добавили сложности в пайплайн ради ничего.
Когда выбирать CUPED
- У вас стабильные метрики на уровне пользователя с сильным историческим бейзлайном (например, недельная активность, выручка)
- Эксперимент проводится на большой базе, где даже 20%-ное сокращение выборки экономит недели
- Пред-экспериментальный период чистый: без крупных запусков продукта, без сезонных пиков
- Ваш пайплайн данных может надёжно джойнить пред-экспериментальные и экспериментальные данные по пользователю
Когда оставаться с классическим A/B-тестом
- Новые фичи, где у пользователей нет релевантной истории (например, тестирование нового онбординга для первых визитов)
- Метрики на уровне сессии вроде bounce rate или CTR, где история на пользователя разреженная
- Маленькие эксперименты, где сложность пайплайна CUPED не оправдана
- Когда в пред-экспериментальных данных есть структурные разрывы (смена цен, крупный баг, праздники)
Практический фреймворк принятия решений
Прежде чем добавлять CUPED в пайплайн, ответьте на три вопроса:
- Какая корреляция? Выгрузите данные за последние 30 дней. Посчитайте корреляцию Пирсона между пред-периодом и пост-периодом метрики. Ниже 0.5? Классический тест подойдёт.
- Чистый ли пред-период? Если в бейзлайновом окне были сбои, запуски фич или праздники, ковариата может внести смещение, а не снизить дисперсию.
- Ваш пайплайн справится? CUPED требует джойнов по пользователю через временные периоды. Если ваш аналитический стек не может делать это надёжно, баги в джойне создадут проблемы хуже, чем чуть более широкие доверительные интервалы.
// Настройка эксперимента в Trektik: CUPED опционален
trektik.experiment("checkout_redesign", {
variants: ["control", "new_checkout"],
metric: "purchase_completed",
cuped: {
covariate: "purchases_last_30d",
enabled: true,
},
});
Типичные ошибки с CUPED
- Использование ковариаты из периода эксперимента. Ковариата должна быть измерена до рандомизации. Использование пост-рандомизационных данных вносит смещение.
- Применение CUPED к метрикам-отношениям (например, конверсия) без линеаризации. CUPED лучше всего работает с аддитивными метриками; для отношений нужен дельта-метод или линеаризация.
- Игнорирование стоимости сложности. Каждый дополнительный шаг в пайплайне экспериментов -- место, где могут скрываться баги. Если команда не готова дебажить регрессионные корректировки, лучше оставить всё простым.
Лучший фреймворк экспериментов -- тот, которому ваша команда доверяет и который может отладить. CUPED мощный, но только когда выполнены предпосылки.
В Trektik вы можете включить CUPED для каждого эксперимента одним переключателем. Платформа автоматически проверяет корреляцию ковариаты и предупреждает, если ожидаемое снижение дисперсии ниже 10%.
Ilya P.
Product Analytics Lead
Breaking down funnels, retention and experiments without the marketing noise.
Нужна аналитика не только в статьях?
Подключим sandbox и покажем, как быстро получить рабочие воронки, retention и отчёты на ваших данных.