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