В системе назначения 50/50 по user_id все корректно, но в лог экспозиции попадает только событие page_render. В treat страница грузится медленнее и часть пользователей уходит до render, поэтому в логах экспозиции появляется перекос N_treat / N_control. Какой фикс наиболее правильный?

AИзменить hash() так, чтобы в treat попадало меньше пользователей
BЛогировать факт назначения отдельно от page_render или определить единый критерий экспозиции, одинаковый для вариантов
CИгнорировать перекос, потому что это означает сильный эффект treat
DСделать рандомизацию по session_id, чтобы render происходил чаще
Правильный ответ. SRM (Sample Ratio Mismatch) может появиться в данных экспозиции из-за разных путей логирования между вариантами, поэтому важно согласовать событие учета экспозиции.

Разбор

Если экспозиция фиксируется только после render, то варианты с более высокой задержкой будут не попадут в лог. В таком случае назначение может быть корректным, но анализ по экспозициям даст перекошенную выборку и потенциально смещенный эффект. Лучшее решение — разделить события назначения и экспозиции или сделать экспозицию определенной одинаково для treat и control. После фикса полезно пересчитать SRM (Sample Ratio Mismatch) и убедиться, что перекос исчез.

Проверь себя · 1/3разбор после ответа
Вы делаете bucketing (разбивка пользователей на группы) как hash(user_id + day) % 2, где day — текущая дата. Что самое вероятное следствие для эксперимента?
Тренировать A/B в Telegram

Ещё вопросы по теме «Дизайн эксперимента и рандомизация»