SRM: тихий убийца A/B-теста, который делает p-value бесполезным
SRM — Sample Ratio Mismatch: ожидали 50/50, а получили 54/46. Это не «ну бывает». Это сигнал, что рандомизация, логирование или фильтры сломали эксперимент. После SRM ваши красивые метрики превращаются в декорации.
Типовые причины:
— бакетирование зависит от user_id, который меняется или теряется;
— часть трафика не видит флаг из-за кэша, гео, платформы или версии клиента;
— события пишутся по-разному в control и treatment;
— боты, внутренний трафик, ретраи или дедупликация вычищают группы несимметрично.
Проверять SRM надо до анализа эффекта. Берёте ожидаемые доли, фактические counts по группам и гоняете chi-square. И отдельно смотрите сегменты: платформа, страна, источник, новая/старая аудитория. Общий 50/50 не спасает, если на iOS у вас мясорубка.
Если SRM есть, не лечите его «добавим ковариату» или «досыпем трафик». Сначала найдите причину: assignment, exposure, tracking, фильтры, join-ы в витрине. Пока причина не понятна, тест считается технически грязным.
Вывод: SRM — не предупреждение внизу дашборда, а стоп-кран. Игнорируете его — продаёте команде не инсайт, а статистический мусор.
A/B Test Room
@ABTestRoomPro
SRM: тихий убийца A/B-теста, который делает p-value бесполезным
Этот пост опубликован в Telegram-канале A/B Test Room. Подписаться можно по ссылке: @ABTestRoomPro.