5 интересных вопросов с собеседований по АБ тестированиюВ одном из
прошлых постов мы разобрали самые частые вопросы с собеседований по АБ-тестированию. Сегодня хочу обсудить более интересные кейсы, которые также любят задавать на интервью по АБ-тестам и статистике.
Ответы я скрыл. Предлагаю вам сначала обдумать свой вариант, а уже потом заглядывать в мой.
1. Что делать с выбросами в АБ-тесте и на что они влияют?Начнем со второй части вопроса:
«На что влияют выбросы?» Обычно в первую очередь думают о том, что выброс сильно сдвигает среднее значение, из-за чего мы можем получить большую дельту между вариантами и «случайно» поймать статзначимость.
Выброс действительно может сместить среднее, но главная беда в другом: он
сильно раздувает дисперсию. Из-за этого нам, наоборот, становится гораздо сложнее обнаружить реальные значимые отличия. Обычно от выбросов хотят избавиться как раз для того, чтобы снизить дисперсию и поднять чувствительность теста.
Теперь первая часть:
«Что делать с выбросами?» В первую очередь — разобраться в их природе. Я выделяю три вида выбросов:
Выброс-ошибка. Например, криво отработало логирование или прилетели какие-то спам-истории (то есть выбросы вызваны техническими факторами). Такие аномалии можно смело удалять.
Выброс, связанный с тестируемым изменением. Например, мы раскатили годовую подписку и увидели небольшое количество очень крупных оплат. Да, на графике это выглядит как выброс, но удалять его нельзя, ведь эти значения вызваны именно нашим тритментом.
Выбросы, не связанные с тестируемым изменением. Самый сложный случай, когда мы не понимаем, как связаны аномалия и наш эксперимент. Здесь всегда дилемма, стоит ли обрабатывать этот хвост.
Способов борьбы с выбросами много, но главное правило —
закладывать схему работы с ними еще на этапе дизайна АБ-теста и применять ее к обеим выборкам одновременно, а не заниматься выборочной селекцией ради «нужного» результата.
2. Можно ли использовать z-test вместо t-test?Классическая статистическая теория требует от нас для z-теста использовать дисперсию генеральной совокупности, в то время как t-тест отлично работает с выборочной дисперсией. При этом z-тест опирается на нормальное распределение, а t-тест — на t-распределение Стьюдента. Если руководствоваться строгими правилами, нам всегда стоит выбирать t-тест.
Но важно понимать и практику: если мы решим «нарушить закон» и бахнем z-тест, подставив туда выборочную дисперсию, то на больших данных это
практически ни на что не повлияет.
Мы получим идентичный результат, так как с ростом размера выборок t-распределение очень быстро сходится к нормальному, и значения p-value будут примерно одинаковыми.
Однако это справедливо только для достаточно больших выборок. Если у вас АБ-тест на условных «10 землекопов», различия будут критичными. На малых выборках лучше использовать t-тест, чтобы избежать завышения числа ложных срабатываний (ошибки первого рода).
3. Как проверить валидность результата АБ-теста?Перед тем как погружаться в аналитику, критически важно убедиться, что сам тест был проведен корректно. Для этого чек-лист «здоровья» эксперимента:
- Убедитесь, что тест набрал заранее запланированное число наблюдений (размер выборки).
- Проверьте, что во все дни теста велось логирование — нет пропусков, просадок и дублей в данных.
- Проверьте данные на аномалии и экстремальные значения.
- Убедитесь, что не было пересечения групп — одни и те же пользователи не попадали в несколько вариантов одновременно.
- Проверьте, что фактическое расщепление трафика соответствует запланированному и у нас нет SRM (
Sample Ratio Mismatch).
Только после того, как вы убедились в «здоровье» АБ-теста, можно переходить к анализу метрик.
4. В результате АБ-теста мы получили p-value > альфа. Можно ли сказать, что разницы нет?Нет, так утверждать нельзя. Когда мы рассчитываем размер выборки «на берегу», мы закладываем определенную вероятность обнаружить эффект конкретного размера. Именно для этого делается дизайн эксперимента: планируется мощность, размер выборки и MDE.
Если мы провели эксперимент строго по правилам и получили p-value > alpha, это не значит, что эффекта нет физически. Наш размер выборки позволяет с высокой вероятностью находить эффекты
не менее определенного размера (MDE). Эффект вполне может быть, но он гораздо меньше, и чтобы его уверенно задетектировать, нам просто нужна более крупная выборка.
5. Можно ли запускать одновременно два эксперимента на одних и тех же пользователей?На первый взгляд кажется, что если один юзер одновременно участвует в двух экспериментах, это должно исказить результаты. Но здесь важно помнить про главный нюанс:
ортогональное (независимое) деление.
Если мы обеспечим случайное и корректное распределение пользователей из одного эксперимента по вариантам другого, то этот влияние одного экспа "размажется" равномерно по вариантам другого.
Метрики внутри каждого варианта обоих тестов изменятся одинаково. В итоге дельта между вариантами конкретного АБ-теста будет вызвана исключительно его тритментом.
Запускать параллельно можно, главное - следить за корректностью сплитования и отсутствием пересечений в логике самих фичей (чтобы они не ломали друг друга интерфейсно).
P.S. Если вам понравилась рубрика с вопросами-ответами, то дайте огней 🔥 и я подготовлю еще.