Снижение дисперсии и CUPED: вопросы для собеседования (часть 2)
CUPED, стратификация, контрольные ковариаты — техники снижения дисперсии позволяют обнаруживать меньшие эффекты при том же размере выборки. На собеседовании спрашивают, как CUPED использует предэкспериментальные данные и на сколько процентов можно сократить дисперсию. Это тема для сильных кандидатов, которые хотят выделиться.
Вопросы 6–10 из 20
6Вы сделали `stratification` по `platform` при `randomization` `A/B` теста. Какой эффект это даёт в первую очередь?
AГарантию, что `uplift` будет положительным.
BБолее ровное распределение `platform` между `A` и `B`, что может уменьшить `variance` метрики и снизить риск случайного перекоса.
CАвтоматическое уменьшение `alpha`.
DОтмену необходимости в `CUPED` (Controlled-experiment Using Pre-Experiment Data) в любых тестах.
Ответ: `Stratification` по важному фактору (например, `platform`) выравнивает состав A/B и может уменьшить шум и риск случайного перекоса.
Если `platform` влияет на базовый уровень метрики, небольшой перекос долей iOS/Android может создавать ложный `uplift` или скрывать настоящий `effect`. `stratification` снижает этот риск, потому что баланс обеспечивается на уровне дизайна. Это не гарантирует значимости, но часто делает результаты более стабильными.
7В эксперименте метрика `conversion` сильно различается у `new_users` и `returning_users`, а трафик ограничен. Какой шаг лучше всего снижает шум и риск перекоса сегментов?
AСделать `stratification` по `new_users` и `returning_users` и раздавать `A` и `B` внутри каждого слоя.
BЗапустить без `stratification`, а потом анализировать разрезы и проверять баланс сегментов (но это хуже, чем балансировать на дизайне).
CИспользовать `CUPED` (Controlled-experiment Using Pre-Experiment Data) по `post-period` `conversion` как `covariate`.
DИсключить `new_users`, чтобы уменьшить `variance`.
Ответ: `stratification` по важному сегменту делает состав групп более ровным и снижает шум оценки `effect`.
Если сегменты имеют разные базовые уровни `conversion`, случайный перекос долей сегментов между `A` и `B` может имитировать `effect`. `stratification` обеспечивает баланс сегментов в каждой группе и часто даёт заметное `variance reduction`. Это особенно полезно при ограниченном трафике или когда сегменты сильно различаются по поведению.
8Какие данные нужны, чтобы применить `CUPED` (Controlled-experiment Using Pre-Experiment Data) в эксперименте по метрике `revenue_per_user`?
AДостаточно знать итоговый `p-value`, `CUPED` (Controlled-experiment Using Pre-Experiment Data) вычисляется по нему.
BНужна `covariate` из `pre-period` (до воздействия), связанная с `revenue_per_user` в `post-period`.
CНужна только сегментация пользователей после эксперимента, `pre-period` не нужен.
DНужно, чтобы группы имели разный размер, иначе `CUPED` (Controlled-experiment Using Pre-Experiment Data) не сработает.
Ответ: `CUPED` (Controlled-experiment Using Pre-Experiment Data) требует предэкспериментальную `covariate` из `pre-period`, коррелирующую с целевой метрикой.
Обычно берут то, что предсказывает поведение пользователя: прошлую `revenue_per_user` или `sessions_per_user` в `pre-period`. Важно, чтобы `covariate` была измерена до старта воздействия и не могла измениться из-за варианта, иначе появится `bias`. Если связь слабая, выигрыш в `variance reduction` будет небольшим.
9Перед запуском вы хотите оценить потенциальный выигрыш от `CUPED` (Controlled-experiment Using Pre-Experiment Data). Что вы проверите в первую очередь?
AТолько абсолютный уровень метрики в группе `A`.
BТолько длительность эксперимента, `CUPED` (Controlled-experiment Using Pre-Experiment Data) одинаково полезен всегда.
CНасколько `pre-period` `covariate` связана с целевой метрикой в `post-period` (например, корреляция).
DНаличие `SRM` (Sample Ratio Mismatch) в прошлых экспериментах.
Ответ: Чем выше связь `pre-period` `covariate` с исходом, тем больше `variance reduction` от `CUPED` (Controlled-experiment Using Pre-Experiment Data).
Если `covariate` хорошо предсказывает будущую метрику, она объясняет часть разброса между пользователями. `CUPED` (Controlled-experiment Using Pre-Experiment Data) убирает предсказуемую часть и оставляет меньше шума, поэтому `standard error` падает. Если связь почти отсутствует, корректировка мало что меняет и может быть не стоит усложнения пайплайна.
10Вы выбираете окно `pre-period` для `CUPED` (Controlled-experiment Using Pre-Experiment Data). Какое правило самое важное, чтобы избежать `leakage` (утечка данных между группами) и `bias`?
A`pre-period` должен пересекаться с экспериментом, чтобы связь с `post-period` была выше.
B`pre-period` должен быть полностью до старта воздействия и считаться одинаково для всех пользователей, чтобы `covariate` не зависела от варианта.
C`pre-period` должен быть как можно длиннее без ограничений, даже если в него попадают нерелевантные промо-периоды.
D`pre-period` можно брать после запуска варианта, если это удобнее для расчёта.
Ответ: Главное правило: `pre-period` полностью до воздействия и одинаково определён для всех; иначе возможны `leakage` (утечка данных между группами) и `bias`.
Если `pre-period` пересекается с воздействием, `covariate` начинает зависеть от варианта, и корректировка может вычитать часть `effect`. Обычно окно `pre-period` выбирают сразу перед экспериментом и считают относительно момента назначения варианта. Также важно учитывать сезонность и события, которые могут ломать стабильность связи между `pre-period` и `post-period`. Чем аккуратнее определён `pre-period`, тем безопаснее применение `CUPED` (Controlled-experiment Using Pre-Experiment Data).
Хотите тренировать интерактивно?
В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать в Telegram