Bayessian vs Frequient A/B testing [презентация]



Видео на Youtube: Александр Сахнов — Почему вам не стоит использовать байесовское A/B-тестирование



Нашел вначале шикарную презентацию от X5 по сравнению байесовского и частотного подхода к применению A/B тестов, потом нашел само видео)



Есть код на Python, можно сравнить методы на данных и посмотреть, как использовать.



Опровергаются различные мифы по поводу байесовского тестирования (про Peeking Problem, большую чувствительность, множественное тестирование)



В начале идет описание частотного A/B тестирования и пайплайн проведения:



1. Фиксирование допустимых вероятностей ошибок первого и второго рода

2. Фиксирование ожидаемого результата

3. Оцениваем по истории дисперсии

4. Оцениваем необходимый размер групп

5. Проводим эксперимент

6. Собираем данные и вычисляем p-value

7. Оцениваем результат



Говорится о сложности интерпретации p-value. Вводится статистика, у которого какое-то предельное распределение. По реализации выборки мы считаем реализацию статистики и смотрим куда попала. Про это я писал у себя в посте. Бизнесу нужно принять бинарное решение (внедряем / не внедряем).



Затем описывается пайплайн байесовского A/B тестирования:



1. Определение априорных распределений (для неизвестных для нас параметров). Далее мы переходим к апостериорному распределению с помощью правдоподобий и теоремы Байеса

2. Определение размера групп. Размер групп можем взять из частотного метода

3. Проведение эксперимента

4. Собираем данные и что-то вычисляем

5. Оцениваем результат



Частотный подход: Какая вероятность получить такое или более экстремальное значение статистики при верности H0?

Байесовский подход: Какая вероятность, что среднее уменьшилось / увеличилось по совместному апостериорному распределению?



Далее оцениваются ошибки первого и второго рода в частотном и байесовском методе. Мы можем задавать априорное распределение через uninformative prior, тогда оба метода показывают одинаковые результаты в симуляциях. Использование дополнительных знаний через prior не позволило на симуляциях контролировать ошибки первого и второго рода.



В частотном A/B-тесте у всех одни и те же результаты, но в Байесе все зависит от априорных знаний. Если два аналитика зададут разные априоры, они могут получить разные выводы по одному и тому же тесту! Представьте, что в A/B платформе такое внедряется — один продакт видит значимый эффект, а другой — нет. Как принимать решения?



Байесовские методы позволяют решать различные задачи. Например, многорорукие бандиты, EM-алгоритмы и многое другое.



🐳 Наберется 100 реакций, в следующем посте буду писать про байесовское тестирование более подробно



А вы используете байесовские методы? Если да, то какие? Пишите в комментариях.