Я пытаюсь провести A / B-тестирование байесовским способом, как в вероятностном программировании для хакеров и байесовских A / B-тестов . В обеих статьях предполагается, что лицо, принимающее решение, решает, какой из вариантов лучше, основываясь исключительно на вероятности какого-либо критерия, например, , поэтому лучше. Эта вероятность не дает никакой информации о том, было ли достаточно данных, чтобы сделать из этого какие-либо выводы. Так что мне непонятно, когда прекратить тест.A
Предположим , что имеется два двоичных RVs, и , и я хочу , чтобы оценить , насколько вероятно, что и на основе наблюдений и . Кроме того, предположим, что и распределены по бета-версии.B p A > p B p A - p BABpApB
Так как я могу найти параметры для и , я могу и оценить . Пример на питоне:p Aр БP ( p A > p B | данные )
import numpy as np
samples = {'A': np.random.beta(alpha1, beta1, 1000),
'B': np.random.beta(alpha2, beta2, 1000)}
p = np.mean(samples['A'] > samples['B'])
Я мог бы получить, например, . Теперь я хотел бы иметь что-то вроде .
Я исследовал достоверные интервалы и байесовские факторы, но не могу понять, как рассчитать их для этого случая, если они вообще применимы. Как я могу рассчитать эти дополнительные характеристики, чтобы у меня был хороший критерий завершения?
источник
Ответы:
Я рад, что вы упомянули этот пример, поскольку один проект, над которым я работаю, пишет целую главу по байесовскому A / B-тестированию.
Нас интересуют две величины: и некоторая мера «увеличения». я рассмотрю количество .P(pA>pB|data) P(pA>pB|data)
На нет границ ошибок , это истинная величина. Это похоже на выражение «Что означает среднее заднее значение?», Есть только 1 среднее, и мы можем вычислить его, взяв среднее значение по всем выборкам (я игнорирую любые ошибки Монте-Карло, поскольку их можно уменьшить до незначительности путем отбора проб больше). Я думаю, что вы смешиваете неизвестные величины, где мы можем сказать что-то вроде «+ - 3%» и вычисленные после апостериорных величин.P(pA>pB|data)
Я хочу сказать, что точно: учитывая ваши наблюдаемые данные и априоры, это ваш вывод.P(pA>pB|data)=0.95
Обратите внимание, что мы будем быстро знать : для достаточно разных и требуется лишь умеренное количество наблюдений . Намного сложнее и интереснее измерить, какое увеличение имеет А по сравнению с В (и часто это является целью теста А / Б: насколько мы увеличиваем конверсии). Вы упомянули, что 5% - насколько вы уверены в этом?p A p B p A - p BpA>pB pA pB pA−pBpB>
Обратите внимание, что хотя является логическим значением и, следовательно, его легко измерить, определенно не является логическим значением. Это распределение возможностей:p A - p BpA>pB pA−pBpB
По мере получения все большего количества данных это распределение сходится к фактическому относительному увеличению, можно сказать, что распределение стабилизируется. Здесь я предлагаю подумать о прекращении эксперимента. Как только это распределение кажется «успокоенным», и мы можем чувствовать уверенность в увеличении, тогда прекратите эксперимент.
источник
Я экспериментировал со способами остановить байесовский A / B тест, и вы правы - не так много очевидных способов отыскать гугл вокруг. Метод, который мне нравится больше всего, - это метод на основе точности, основанный на этом: http://doingbayesiandataanalysis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html . Тем не менее, я не нашел много математической литературы по этому поводу, так что сейчас это просто хорошая эвристика.
Я обнаружил, что хотя мои тесты должны выполняться намного дольше, чтобы достичь желаемой точности, они более интуитивны, и вы даете время, чтобы распределение «успокоилось» в цели путь, то есть, а не ошеломляющий это.P(A>B|data)
источник
Кажется, что есть два основных подхода к принятию решений в байесовском A / B тестировании. Первый основан на статье Джона Крушке из Университета Индианы (К. Крушке, Байесовская оценка заменяет т-тест, Журнал экспериментальной психологии: Общее, 142, 573 (2013)). Правило принятия решений, используемое в этой статье, основано на концепции региона практической эквивалентности (ROPE).
Другая возможность заключается в использовании концепции ожидаемой потери. Это было предложено Крисом Стуккио (C. Stucchio, Bayesian A / B Testing в VWO). Это еще один подход, который я бы рассмотрел.
Подход, предложенный Cam.Davidson.Pilon для рассмотрения апостериорного распределения имеет большой смысл и хорошо вписывается в метод ROPE. Использование метода ROPE имеет дополнительное преимущество, заключающееся в том, что оно дает также правило, когда эксперимент не дает результатов (не только тогда, когда варианты «A» или «B» могут быть объявлены победителями).(pA−pB)/pA
Вы можете найти больше в этом сообщении в блоге: Байесовское А / Б тестирование: пошаговое руководство . Он также включает в себя некоторые фрагменты кода Python, которые в основном основаны на проекте Python, размещенном на Github .
источник