Comments 11
Отличная обзорная статья. Спасибо
1) Не очень понятно, как вы делали сравнение по p_value, каким методом: распределения у вас ненормальные, значит нужны какие-то непараметрические критерии. Откуда брали параметры распределений для такой проверки и насколько корректно сравнение методов, если при вашем моделировании и Байес-подходе параметры бета-распредления вам были известны, а при p_value - скорее всего считались неизвестными (поправьте, если я неправ)?
2) У вас корректировки на множественность гипотез отсутствуют при моделировании, шаг 3 в таких случаях делается вроде не так. Нужна корректировка по Бенджамини-Хохбергу, по крайней мере, иначе ваши результаты некорректны. Да и насколько я понимаю, метрика "процент угадываний" странная, вроде обычно нужна вся матрица ошибок и что-то типа F1 с макроусреднением в качестве метрики.
Спасибо за обратную связь!
1) Для частотного подхода использовался z-test. Применяла его с учетом того, что биномиальное распределение при больших выборках сходится к нормальному. Оба подхода сравнивались на выборках из биномиального распределения с заданными параметрами (в соответствии с базовой конверсией и эффектом).
2) Корректировку на множественность гипотез не применяла исходя из того, что на одной выборке тестировалась только одна гипотеза.
Из метрик сравнивалась только мощность. Ошибку 1 рода в данном эксперименте посчитать нельзя - изначально в распределения искусственно примешивался эффект (10% / 25% / 50%). Поэтому не могло быть случаев, когда эффекта не было, но он был обнаружен.
Хорошая статья. Давно смотрю в сторону Байесовского подхода и его применения на боевых кейсах. На мой взгляд дополнительно можно подсветить:
Сейчас есть большое количество библиотек, предоставляющих различные инструменты для воплощения Байесовского подхода к анализу данных.
Реальные кейсы когда Байесовский подход оптимизировал проверку гипотезы.
Отличная работа
"Для начала необходимо выбрать априорные распределения для метрик в группах. Вид распределения может быть любым, но с некоторыми распределениями проще применять теорему Байеса."
Вот когда для ВСЕХ возможных априорных распределений будет получен результат, что "байесовский подход более чувствителен к различиям", тогда можно будет утверждать про преимущества. "Так почему, несмотря на свои преимущества, байесовский подход не так широко используется". При этом должны быть перебраны все распределения для нахождения p-value. А то до сих пор нормальное распределение суется туда, где оно очевидно не применимо.
Спасибо, что подметили. Действительно, на основе данного эксперимента можно утверждать о более высокой чувствительности только в случае биномиального распределения.
Хочу добавить, что помимо рассмотренной чувствительности байесовский подход имеет и другие преимущества:
1) Возможность не фиксировать сроки проведения теста и подводить предварительные итоги.
2) Наличие хорошо интерпретируемых и количественных критериев для принятия решения.
3) Возможность делать выводы по результатам теста при недостаточных для частотного подхода размерах выборки.
Спасибо большое за статью!
Несколько вопросов/обсуждений по материалу.
Я же правильно понимаю, что вы симулировали данные с уже заранее заданным аплифотом? Не очень поняла, был это реальный эксперимент или нет. Наверное тут логично данные как раз симулировать и потом смотреть на точность выводов.
По поводу априорных распределений. Насколько я понимаю, вы использовали метод conjugate prior для выбора. Это в целом имеет смысл, я сейчас смотрю курс Statistical rethinking https://github.com/rmcelreath/stat_rethinking_2023 там автор говорит о том, что prior distribution можно рассматривать как метод регуляризации значений апостериорного распределения. Грубо говоря, если мы знаем, что переменная не может принимать отрицательных значений, то логично использовать априорное распределение которое принимает только положительные значения (лог нормальное или экспоненциальное например). Ну это если подходить к выбору с более логической стороны, а не со стороны вычислений)
Можете подсказать, что за пакеты использовали для байесовской статистики? По виду следа MCMC похоже на PyMC в питоне, но могу ошибаться.
По поводу методов оценки, а вы их как-то тестировали на чувствительность при изменении аплифта? Также вопрос какими пакетами считали. Вообще я когда сама размышляла, подумала, что можно сделать распределение разниц средних семплируя из апостериорных распределений (вроде того как когда делается posterior prediction) и посмотреть на распределение разниц, в частности попадает ли там 0 в определенный доверительный интервал. То есть примерно как при бутстрапе оценка теста делается.
Как вообще пришли к тому чтобы начать тестировать байесовский подход? Было сложно бизнесу интерпретировать частотную статистику или просто был интерес к изучению?
Еще раз, спасибо!
Спасибо за вопросы!
1. Да, эксперименты были на смоделированных данных с заранее заданным аплифтом.
2. Вы правы, здесь для примера использовался данный метод. Но при использовании МСМС можно не ограничивать себя в распределениях и выбирать то, которое кажется наиболее подходящим для ваших продуктовых метрик. Поэтому описанный вами пример может быть полезен, так как более точно описывает исходное распределение.
3. Для примера и эксперимента по сравнению подходов применялся аналитический метод, поэтому для них специальные библиотеки по байесовским методам не требуются. Для статистики использовалась библиотека SciPy (stats, special).
Пример кода на питоне можно посмотреть в библиотеке GrowthBook.
Для иллюстрации MCMC использовался пакет pymc3, код можно посмотреть здесь:
Bayesian A/B Testing: a step-by-step guide
abyes/ab_exp.py at master · cbellei/abyes · GitHub
4. Чувствительность байесовского подхода на разных аплифтах оценивала для критерия вероятности, что конверсия в одной из групп выше. Проводила итерации и сравнивала долю экспериментов, когда разница по данному критерию была обнаружена.
5. Тема стала интересна, так как на практике видели ограничения частотного подхода. Байесовский подход заинтересовал возможностью по-новому посмотреть на АБ тесты и уменьшить эти ограничения.
Спасибо за статью. Несколько комментариев.
"Фреквентисты предполагают: «Допустим, что мир такой. Тогда какова вероятность, что произойдет это событие?». Для них не важны другие гипотетические миры, где такое же событие могло происходить с другой частотой." Это неправда. Именно это и интересует нас при расчёте размера выборки (какого размера нужно взять выборку, чтобы вероятность ошибки II рода при отклонении минимум на MDE была не выше порога).
Выбор метрики будет явно раньше выбора априорного распределения. Кстати, в тексте статьи тоже сначала упоминается метрика, и уже потом априорное распределение.
"К концу 4 недели апостериорные распределения конверсий в группах еще больше «разъехались» друг от друга, а их стандартные отклонения снизились до 0,016–0,017%." Аргументация к стандартным отклонениям - это как раз аргументация частотного метода) Но меня здесь интересует другой вопрос - почему мы много раз проверяем гипотезу без поправок? Фактически мы проверяем гипотезу "H(0): конверсия не выросла на достаточный порог за 4 итерации" против альтернативы "H(1): конверсия хотя бы раз из 4 выросла выше порога". Я говорю об альтернативах и гипотезах, потому что они здесь есть: величина P(p(a) > p(b)) является случайной (потому что она зависит от выборки: P(p(a) > p(b) | x(1), ..., x(n), y(1), ..., y(m)), где x(i) и y(j) - результаты наблюдения (клик или не клик)). И мы отклоняем гипотезу, если P(p(a, 1 неделя) > p(b, 1 неделя) | выборка за 1 неделю) >= порог или ... или P(p(a, 4 неделя) > p(b, 4 неделя) | выборка за 4 недели) >= порог. Это стандартный статистический критерий, просто мы сами не знаем какие вероятности ошибок I и II родов.
"Принятие решения на основе байесовских метрик довольно субъективно." Кажется, это из-за того, что мы не понимаем алгоритм статистической проверки гипотез и вероятности ошибок I и II рода. То есть в стандартном подходе у нас есть понимание, что при неизменении конверсии вероятность ошибки I рода <= 5%, потому что статистический критерий грамотно кем-то собран, а мы отклоняем гипотезу по алгоритму p-value <= 5%.
"Вид распределения может быть любым, но с некоторыми распределениями проще применять теорему Байеса." Интересно посмотреть какие распределения лучше с точки вероятностей ошибок I и II рода. Кажется, для бернулли я только бета-распределение и видел. У нас нет строгих предпосылок утверждать, что бета-распределение лучше, мы лишь можем доказать, что оно логично (п.н. при разности конверсий P(p(a) > p(b)) -> 1 при росте объёма выборки).
"Запускаем тест стандартным образом: разделяем выборку на однородные группы" Почему? Можно же не 50/50.
" Для байесовского подхода важно видеть стабильность результатов в динамике." Если мы говорим о теории, то почему? И какое определение "стабильности"?
В таблице сравнения "Какой риск контролируем" Там не одно и то же написано? Ну и при фиксированном размере выборки вероятность ошибка II рода тоже контролируется в первом подходе.
В таблице сравнения "Информация о прошлом поведении метрик" Смотря какая задача. Если раскатить на всех и посмотреть что будет, тогда и в первом случае не нужно. Если хочется понимать чего ожидать, то и в байесовском нужно.
В таблице сравнения "Предварительная остановка теста" Есть область статистики "последовательный анализ". Там рассказывается как останавливать тест. Останавливать по правилу "p-value <= 5%", конечно, не стоит, с этим согласен.
"Чтобы оценить чувствительность подходов, я провела эксперимент: сравнила мощности байесовского и частотного подходов для разных размеров выборок и различий в группах." А что будет при гипотезе (отсутствия изменения)? Не сместили ли мы вероятность ошибки I рода в вероятность ошибки II рода? То, что порог для вероятности "95%", не говорит о вероятности ошибки I рода.
"Провели 10 000 итераций: рандомно брали из каждого распределения по 1000 наблюдений, для каждой итерации подводили итог по байесовскому и частотному подходу." Кажется, это некорректно. Здесь приводится суть байесовского подхода как штука, которой можно (и нужно) подглядывать. Если подглядываний не было, то по теореме Неймана-Пирсона ничего лучше биномиального точного критерия Фишера (асимптотически эквивалентного используемому z-тесту) нет. Поэтому мы явно пожертвовали вероятностью ошибки I рода.
P.S. Сори за душнилово, но вопросы валидны, а ответов нет. Помимо пары-тройки комментариев всё остальное - вопросы к использованию байесовского подхода в A/B тестировании, которые будут актуальны не в одной статье. Классно, что в статье есть моделирование, ибо это помогает разобраться в происходящем, а не просто верить гайдам. Однако, так как не было моделирования вероятности ошибки I рода, то и на результаты моделирования смотреть и делать выводы рано.
Байесовский подход к АБ тестированию