В системе назначения 50/50 по user_id все корректно, но в лог экспозиции попадает только событие page_render. В treat страница грузится медленнее и часть пользователей уходит до render, поэтому в логах экспозиции появляется перекос N_treat / N_control. Какой фикс наиболее правильный?
AИзменить
hash() так, чтобы в treat попадало меньше пользователейBЛогировать факт назначения отдельно от page_render или определить единый критерий экспозиции, одинаковый для вариантов
CИгнорировать перекос, потому что это означает сильный эффект
treatDСделать рандомизацию по
session_id, чтобы render происходил чащеПравильный ответ.
SRM (Sample Ratio Mismatch) может появиться в данных экспозиции из-за разных путей логирования между вариантами, поэтому важно согласовать событие учета экспозиции.Разбор
Если экспозиция фиксируется только после render, то варианты с более высокой задержкой будут не попадут в лог. В таком случае назначение может быть корректным, но анализ по экспозициям даст перекошенную выборку и потенциально смещенный эффект. Лучшее решение — разделить события назначения и экспозиции или сделать экспозицию определенной одинаково для treat и control. После фикса полезно пересчитать SRM (Sample Ratio Mismatch) и убедиться, что перекос исчез.
Проверь себя · 1/3разбор после ответа
Вы делаете
bucketing (разбивка пользователей на группы) как hash(user_id + day) % 2, где day — текущая дата. Что самое вероятное следствие для эксперимента?Ещё вопросы по теме «Дизайн эксперимента и рандомизация»
- Вы тестируете новый экран оплаты. Пользователь может заходить в приложение много раз. Метрика — конверсия в покупку за 7 дней на уровне `user_id`. Какую `unit of randomization` (единица рандомизации) выбрать, чтобы минимизировать смешение вариантов?
- Эксперимент рандомизируется по `user_id`, а вы считаете метрику на уровне `session_id` (например, длительность сессии) и сравниваете сессии как независимые наблюдения. Что здесь главное методологическое последствие?
- В тесте нового реферального механизма пользователь из `treat` отправляет приглашения друзьям, которые попадают в `control` и тоже меняют поведение. Какое допущение нарушается и почему это важно?
- Эксперимент меняет алгоритм распределения заказов между курьерами. Курьеры обслуживают сразу нескольких пользователей, и решение для одного заказа влияет на время доставки других. Какой подход к рандомизации чаще всего лучше уменьшит `interference`?
- Вы делаете `bucketing` (разбивка пользователей на группы) как `hash(user_id + day) % 2`, где `day` — текущая дата. Что самое вероятное следствие для эксперимента?
- Все вопросы по «Дизайн эксперимента и рандомизация» →