Как проверить корректность системы сплитования трафика для АБ тестов? Часть 2 😵
4. Оцените результаты АА тестов
4.1 Доля пользователей попавших в АА тест
Проверьте, что все пользователи, которые должны были попасть в АА тест попали в него. Например если в точке входа в эксперимент за неделю было 10000 пользователей, то все они должны иметь метку эксперимента
4.2 Корректность работы таргетингов
Проверьте, что в АА тест попадают только пользователи соответствующие таргетингу. Если вы запустили тест с Гео Москва, то в выборке пользователей попавших в эксп не должно быть пользователей из Твери.
4.3 Доля пользователей попавших в АА тест с первого раза
Проверьте, что пользователи, которые попали в АА тест получили вариант сразу при первом попадании в точку входа в эксперимент.
Например может быть баг, что часть пользователей почему то не попадают в эксперимент с 1 раза и видят сначала просто дефолтный вариант продукта, а потом получают тестовый вариант. Получается, что у пользователя будет 2 разных опыта, с 2 разными версиями продукта, что не корректно.
4.4 Пересечения. Доля пользователей, которые получили 2 варианта
Доля пользователей, которые получили разные варианты в рамках одного эксперимента. Эта проблема похожа на предыдущую. Но тут пользователю явно присваивается 2 варианта в ходе эксперимента, в то время как в предыдущем пункте это происходит не явно.
4.5 Баланс раскатки в соответствии с дизайном
Если вы заложили в эксперимента, что будете использовать для эксперимента 70% трафика, то важно чтобы система сплитования правильно деражала этот баланс.
4.6 Баланс веток АА теста в соответствии с дизайном
Здесь мы проверяем SRM (simple ratio mismatch) - несоответствие баланса выборок. Если мы заложили в настройки деление трафика 60/40%, то система сплитования должна выдавать очень близкий результат. Иначе результаты АБ тестов могут быть невалидными.
4.7 Баланс параметров внутри веток
Внутри выборок пользователи имеют разные параметры (гео, источники, браузеры и прочее). Если мы сплитуем 50%:50%, то в обоих вариантах доли этих параметров должны быть очень близки.
Важно помнить, что если мы захотим проверить баланс по множеству параметров при помощи стат. критерия, то скорее всего где-то найдем дисбаланс, т.к. возникнет ситуация множественных сравнений. Если хотите использовать стат. критерии, то занижайте альфу или используйте корректировки на множественное сравнение.
4.8 Число АА тестов со стат значимым результатом
Посмотрите в скольких из ваших АА тестов вы получили стат. значимое отличие метрик. Если вы запустили 10 АА тестов и например в 7 получили стат значимые отличия, то тут скорее всего есть проблемы сплитования. Если прокрасов нет или их 1-2, то такая ситуация может быть просто случайность.
4.9 Распределение p value
Распределение p value должно стремиться к равномерному. Как правило для того чтобы судить о распределении метрики нужно много наблюдений. Но даже если у вас есть всего 10 наблюдений, т.е. 10 АА тестов где вы считали p value, то вы ожидаете что какая -то часть будет иметь p-value близкое к 1, какая-то часть около 0,5, какая-то часть будет стремиться к 0. Если все p value сосредоточены только в нижнем или только в среднем или только в высоком диапазоне значений, то это тоже повод задуматься.
4.10 Оцените FPR на симуляциях АА тестов
Можно сгенерировать 10000 подвыборок из наших данных по эксперименту и провести искусственные АА тесты, чтобы понять корректно ли удерживается уровень ложно положительных срабатываний FPR. Мы ожидаем, что доля FPR на симуляциях АА тестов будет стремиться к уровню альфа, если выборки сформированы рандомно и не имеют серьезных дисбалансов.
4.11 Оцените распределение p-value полученное на симуляциях АА тестов
Здесь как и в пункте 3.9 нам нужно обратить внимание на форму распределения p value. Т.к. у нас есть много данных по симуляциям, то можно построить распределение. Если данные получены из корректного механизма рандомизации, то распределение p value будет стремиться к равномерному.
P.S.
Делитесь своими дополнениями к алгоритму проверки системы сплитования
Post #443
1.29K
- 👍 12
- 🔥 2