Методы снижения дисперсии
Чувствительность теста падает с разбросом данных σ. Самый дорогой способ её поднять — набрать больше пользователей. Но есть умнее: убрать из метрики часть «лишнего» разброса, не трогая сам эффект. Это методы снижения дисперсии — то, чем продуктовые команды ускоряют A/B-тесты в разы. Двигайте ползунок корреляции и смотрите, как сужается распределение метрики.
CUPED: чем сильнее доэкспериментальный ковариат предсказывает метрику (выше ρ), тем больше дисперсии убирается — на (1−ρ²), — и тем чувствительнее тест при том же n.
Идея на пальцах. Часть разброса метрики предсказуема заранее. Активный пользователь и до эксперимента тратил много, неактивный — мало. Эта «врождённая» разница между людьми раздувает дисперсию метрики, но к нашему эффекту отношения не имеет. Если её вычесть, останется более «чистый» сигнал.
Мало трафика — дефолт «ждать долгий тест». CUPED и стратификация меняют уравнение: тот же вывод быстрее или меньший различимый эффект за то же время.
В крупных продуктах CUPED включён в A/B-платформу по умолчанию: как ковариат берут ту же метрику за 1–2 недели до теста. Это типично режет нужную выборку или длительность теста на 30–50% — огромная экономия времени и трафика.
Метод требует данных за доэкспериментальный период и стабильной аудитории. Для новых пользователей (у которых нет «до») он не работает — там используют другие предикторы или не применяют поправку.
Netflix, Microsoft, Booking и другие публиковали, как снижение дисперсии ускоряет их эксперименты: те же выводы получают на меньшем трафике, а значит, можно прогонять больше тестов за то же время.
Тот же принцип — за пределами A/B: в любом сравнении контроль за известными факторами (ковариатами) делает оценку точнее. Это мост к регрессии, где «удержать прочее равным» — основная идея.
Определения
CUPED требует ковариата из ДОэкспериментального периода, коррелирующего с метрикой; для новых пользователей (у которых нет «до») он не работает. Ковариат не должен зависеть от самого эксперимента — иначе можно случайно «вычесть» эффект.
Снижение дисперсии уменьшает случайный шум, но не лечит смещение: на нерепрезентативных данных вы получите уверенно посчитанный, но всё равно смещённый результат.
Подробный разбор: математика и механизм (необязательно)
Алгоритм CUPED (по шагам). 1) Возьмите ковариат X из ДОэкспериментального периода — обычно ту же метрику за 1–2 недели до теста. 2) На всех пользователях оцените θ = Cov(X, Y) / Var(X) (это коэффициент регрессии Y на X). 3) Для каждого пользователя посчитайте скорректированную метрику Y' = Y − θ·(X − X̄), где X̄ — общее среднее ковариата. 4) Дальше проводите обычный тест (t-тест на разницу средних) уже по Y', а не по Y. 5) Дисперсия Y' меньше дисперсии Y в (1−ρ²) раз, где ρ = corr(X, Y); оценка эффекта при этом не смещается, потому что X не зависит от группы.
Алгоритм стратификации (по шагам). 1) До эксперимента выберите переменную слоёв, коррелирующую с метрикой и не зависящую от теста (страна, платформа, тип устройства, доэкспериментальная активность — непрерывный ковариат бьют на квантильные корзины). 2) Внутри КАЖДОГО слоя k посчитайте разницу средних между вариантами Δ̂ₖ и её дисперсию. 3) Соберите общий эффект как взвешенное среднее Δ̂ = Σ wₖ·Δ̂ₖ с весами wₖ = долям наблюдений в слое (пост-стратификация). 4) Дисперсия такой оценки содержит только ВНУТРИслойный разброс — межслойная часть уходит. 5) Практическая тонкость: слоёв не должно быть слишком много (иначе в каждом мало данных); переусердствовать со стратификацией так же вредно, как и игнорировать её.