Короткий ответ
SRM — это ситуация, когда фактическое соотношение пользователей между тестовыми группами существенно отличается от запланированного (например, 48/52 вместо 50/50 при большой выборке); обнаруживается хи-квадрат тестом на соответствие наблюдаемого распределения ожидаемому, и его наличие ставит под сомнение валидность всего эксперимента.
Как это работает подробнее
даже небольшое на первый взгляд отклонение от ожидаемого сплита может быть статистически значимым при больших объёмах данных — это сигнализирует о системной проблеме в рандомизации или логировании, а не о случайности.
Пример кода
Пример на Python
from scipy.stats import chisquare
observed = [49800, 50200] # фактическое число пользователей в группах A и B
expected = [50000, 50000] # ожидаемое при равном сплите
chi2, p = chisquare(observed, expected)
print(p)Что использовать на практике
- На практике. SRM стоит проверять как первый шаг перед анализом результатов теста, до интерпретации любых метрик. Частые причины: различия в скорости загрузки/редиректах между вариантами, которые по-разному теряют пользователей до события логирования; баги в системе сплитования; фильтрация ботов, по-разному затрагивающая группы; различия в кэшировании. Если SRM обнаружен, результаты теста нельзя интерпретировать как есть — сначала нужно найти и устранить причину. Полезно проверять SRM не только по общему сплиту, но и в разрезе ключевых сегментов (платформа, страна) — локальный SRM в одном сегменте может маскироваться общим балансом по всей выборке.
- Пример. Если p-value очень маленький (например, < 0.001) при большой выборке, это указывает на SRM, даже если визуально 49800 против 50200 выглядит «почти поровну» — решение нужно принимать по статистике, а не на глаз.
Подводные камни
- Частые ошибки. игнорировать небольшое, но статистически значимое расхождение в сплите, считая его «в пределах нормы»; анализировать метрики теста, не проверив SRM вообще; путать случайную флуктуацию сплита на малой выборке с системной проблемой — тест на SRM как раз и призван их различать. Ещё одна ошибка — списывать обнаруженный SRM на «случайность» без дальнейшего расследования, хотя при больших выборках случайное объяснение крайне маловероятно.