Коли слід припинити байєсівський тест A / B?


10

Я намагаюся зробити A / B тестування байєсівського шляху, як у ймовірнісному програмуванні для тестів хакерів та байесівських A / B тестів . Обидві статті припускають, що яка приймає рішення, вирішує, який із варіантів краще ґрунтується виключно на ймовірності якогось критерію, наприклад, , отже, краще. Ця ймовірність не дає жодної інформації про те, чи було достатньо кількості даних, щоб зробити з неї якісь висновки. Отже, мені незрозуміло, коли зупинити тест.AP(pA>pB)=0.97A

Припустимо , що є два довічних RVs, і , і я хочу , щоб оцінити , наскільки ймовірно, що і на основі спостережень і . Крім того, припустимо, що та розподілені бета-версією.B p A > p B p A - p BABpA>pBABpApBpApBpA>5%ABpApB

Оскільки я можу знайти параметри для та , я можу відібрати та оцінити . Приклад в python:p Aα,βp BpA|dataP ( p A > p B | дані )pB|dataP(pA>pB | data)

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'])

Я міг би отримати, наприклад, . Тепер я хотів би мати щось на зразок .P ( p A > p B | дані ) = 0,95 ± 0,03P(pA>pB)=0.95P(pA>pB | data)=0.95±0.03

Я досліджував достовірні інтервали та фактори Байєса, але не можу зрозуміти, як їх обчислити для цього випадку, якщо вони взагалі застосовні. Як я можу обчислити ці додаткові статистичні дані, щоб у мене був хороший критерій припинення?


1
Хороша стаття про це, ознайомтеся з додатком, щоб прикладом з розрахунками ... support.google.com/analytics/answer/2844870?hl=uk
Фабіо Белтраміні

Відповіді:


10

Я радий, що ви згадали цей приклад, оскільки один проект, над яким я працюю, пише цілу главу про тестування байесівських A / B.

Нас цікавлять дві величини: та деякий показник "збільшення". Я обговорю кількість .P(pA>pB|data)P(pA>pB|data)

На немає меж помилок , це справжня кількість. Це схоже на вимову "Що означає середня частина задньої частини?", Є лише 1 середнє значення, і ми можемо обчислити це, взявши середнє значення всіх зразків (я ігнорую будь-які помилки Монте-Карло, оскільки їх можна зменшити до незначності шляхом вибірки більше). Я думаю, ви змішуєте невідомі величини, де ми можемо сказати щось на кшталт "+ - 3%" та задніх обчислених величин.P(pA>pB|data)

Що я говорю, це те, що визначено: враховуючи ваші спостережувані дані та пріори, це ваш висновок.P(pA>pB|data)=0.95

Зауважте, що ми швидко дізнаємось : для достатньої кількості та потрібні лише помірні спостереження . Набагато складніше і цікавіше виміряти те, що збільшення A має над B (і часто це мета тесту A / B: на скільки ми збільшуємо конверсії). Ви згадали, що 5% - наскільки ви впевнені в цьому?pA>pBpApBpApBpB>

Зауважте, що хоча є , і тому легко вимірювати, , звичайно, не є . Це розподіл можливостей:pA>pBpApBpB

введіть тут опис зображення

Оскільки дедалі більше даних набувається, цей розподіл наближається до фактичного відносного збільшення, можна сказати, що розподіл стабілізується. Саме тут я пропоную подумати про припинення експерименту. Як тільки цей розподіл, здається, "заспокоїться", і ми можемо впевнено збільшитися, тоді припиніть експеримент.


Дякую за відповідь! З нетерпінням чекаємо скоро побачити нову главу. Наразі я розглядаю вибіркову дисперсію і закінчую тест, коли він наближається до нуля. pApBpA
Богдан Кулинич

Ей @ Cam.Davidson.Pilon, дякую за вашу відповідь. Я все ще плутаюсь у наданні ймовірностей на кшталт: "Ймовірність A на 10% краща, ніж B - X%", я створив 2 розподіли; один на 10% краще, ніж інший, і використовує величезне значення N, тому диференція (A / B-1) має нормально-подібний розподіл із середнім значенням 10%. Тому (diff> .10) .mean () повертає ~ 50%, але чи не має бути 100%?
CanCeylan

@CanCeylan У вас є код, яким потрібно поділитися? Я не впевнений, як ви створили дистрибутиви ...
Cam.Davidson.Pilon

0

Я експериментував із способами зупинити байєсівський тест A / B, і ти маєш рацію - існує не так багато очевидних способів, як гугл. Метод, який мені найбільше подобається, - це метод на основі точності, заснований на цьому: http://doingbayesiandataanaanasis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html . Однак я не знайшов багато математичної літератури навколо цього, тому зараз це просто хороша евристика.

Я виявив, що, хоча мої тести потрібно запускати набагато довше, щоб досягти бажаної точності, це більш інтуїтивно зрозуміло, і ви даєте час для розповсюдження даних щоб "заспокоїтись" в об'єктивній Шлях, тобто замість того, щоб забити його оком.P(A>B|data)


0

Схоже, існує два основні підходи до прийняття рішень у байєсівському тестуванні A / B. Перший заснований на роботі Джона Крушке з Університету Індіани (К. Крушке, Байєсова оцінка замінила тест, Journal of Experimental Psychology: General, 142, 573 (2013)). Правило прийняття рішення, що використовується в цій роботі, базується на концепції регіону практичної еквівалентності (ROPE).

Інша можливість полягає у використанні концепції очікуваної втрати. Він був запропонований Крісом Стуккіо (C. Stucchio, Bayesian A / B тестування на VWO). Я б розглядав ще один підхід.

(pApB)/pA

Більше ви можете знайти в цьому дописі в блозі: Тестування A / B Bayesian: покрокове керівництво . Він також включає деякі фрагменти коду Python, які в основному базуються на проекті Python, розміщеному в Github .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.