Вы тестируете новый алгоритм рекомендаций для части пользователей. В варианте treat товар распродается быстрее, из-за чего пользователи из control чаще видят сообщение «Нет в наличии». Как лучше всего описать эту проблему?
AЭто
SRM (Sample Ratio Mismatch), потому что распределение по группам стало не 50/50BЭто нормальный шум, который всегда есть в экспериментах
CЭто
interference и нарушение SUTVA (Stable Unit Treatment Value Assumption) из-за общего инвентаря, который связывает результаты разных пользователейDЭто обязательно означает, что
hash() работает неправильноПравильный ответ. Общий ресурс (инвентарь, очередь, кэш) может создавать
spillover, из-за чего исход в control зависит от назначения treat.Разбор
Когда есть общий инвентарь, действия пользователей из treat меняют среду для control, например через ситуации, когда товар заканчивается (out-of-stock). Тогда разница между группами отражает не только изменение интерфейса или алгоритма, но и косвенные эффекты через ресурс. Это нарушает предпосылку независимости исходов и может как завышать, так и занижать оценку эффекта. Возможные решения — менять unit of randomization (единица рандомизации) (например, по категории или складу) или использовать дизайн, который минимизирует конкуренцию между вариантами.
Проверь себя · 1/3разбор после ответа
Почему назначение варианта как
variant = random.choice([0, 1]) при каждом запросе пользователя — плохая идея для A/B теста?Ещё вопросы по теме «Дизайн эксперимента и рандомизация»
- Вы тестируете новый экран оплаты. Пользователь может заходить в приложение много раз. Метрика — конверсия в покупку за 7 дней на уровне `user_id`. Какую `unit of randomization` (единица рандомизации) выбрать, чтобы минимизировать смешение вариантов?
- Эксперимент рандомизируется по `user_id`, а вы считаете метрику на уровне `session_id` (например, длительность сессии) и сравниваете сессии как независимые наблюдения. Что здесь главное методологическое последствие?
- В тесте нового реферального механизма пользователь из `treat` отправляет приглашения друзьям, которые попадают в `control` и тоже меняют поведение. Какое допущение нарушается и почему это важно?
- Эксперимент меняет алгоритм распределения заказов между курьерами. Курьеры обслуживают сразу нескольких пользователей, и решение для одного заказа влияет на время доставки других. Какой подход к рандомизации чаще всего лучше уменьшит `interference`?
- Вы делаете `bucketing` (разбивка пользователей на группы) как `hash(user_id + day) % 2`, где `day` — текущая дата. Что самое вероятное следствие для эксперимента?
- Все вопросы по «Дизайн эксперимента и рандомизация» →