Quand mettre fin au test bayésien A / B?

10

Je suis en train de faire des tests A / B la bayésien, comme dans la programmation probabilistes pour les pirates informatiques et bayésienne des tests A / B . Les deux articles supposent que le décideur décide laquelle des variantes est la meilleure en se basant uniquement sur la probabilité d'un critère, par exemple , donc A est meilleur. Cette probabilité ne permet pas de savoir s'il y avait suffisamment de données pour en tirer des conclusions. Donc, je ne sais pas quand arrêter le test.P(pA>pB)=0.97A

Supposons qu'il existe deux RV binaires, et B , et je veux estimer la probabilité que p A > p B et p A - p BABpA>pBsur la base des observations deAetB. De plus, supposons quepAetpBpostérieurs soient bêta-distribués.pApBpA>5%ABpApB

Puisque je peux trouver les paramètres pour p Aα,β et p BpA|data , je peux échantillonner les données postérieures et estimer P ( p A > p B | données ) . Exemple en python: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'])

Je pourrais obtenir, par exemple, . Maintenant, je voudrais avoir quelque chose comme P ( p A > p B | data ) = 0,95 ± 0,03 .P(pA>pB)=0.95P(pA>pB | data)=0.95±0.03

J'ai fait des recherches sur les intervalles crédibles et les facteurs Bayes, mais je ne comprends pas comment les calculer pour ce cas s'ils sont applicables du tout. Comment puis-je calculer ces statistiques supplémentaires afin d'avoir un bon critère de résiliation?

Bogdan Kulynych
la source
1
Un bon article à ce sujet, consultez l'annexe pour un exemple avec des calculs ... support.google.com/analytics/answer/2844870?hl=en
Fabio Beltramini

Réponses:

10

Je suis heureux que vous ayez mentionné cet exemple, car un projet sur lequel je travaille est l'écriture d'un chapitre entier sur les tests bayésiens A / B.

P(pA>pB|data)P(pA>pB|data)

P(pA>pB|data)

P(pA>pB|data)=0.95

pA>pBpApBpApBpB>

pA>pBpApBpB

entrez la description de l'image ici

À mesure que de plus en plus de données sont acquises, cette distribution converge vers l'augmentation relative réelle, on peut dire que la distribution se stabilise. C'est là que je suggère de penser à mettre fin à l'expérience. Une fois que cette distribution semble "se calmer", et que nous pouvons avoir confiance en l'augmentation, alors terminer l'expérience.

Cam.Davidson.Pilon
la source
pApBpA
hey @ Cam.Davidson.Pilon, merci pour votre réponse. Je suis toujours confus en donnant des probabilités comme: "La probabilité est A est 10% meilleure que B est X%" J'ai créé 2 distributions; l'un est 10% meilleur que l'autre, et utilise une valeur N énorme, donc le diff (A / B-1), a une distribution de type normal avec une moyenne de 10%. Par conséquent (diff> .10) .mean () renvoie ~ 50%, mais ne devrait-il pas être de 100%?
CanCeylan
@CanCeylan avez-vous du code à partager? Je ne sais pas comment vous avez créé les distributions ...
Cam.Davidson.Pilon
0

J'ai expérimenté des moyens d'arrêter un test bayésien A / B et vous avez raison - il n'y a pas beaucoup de façons évidentes de googler. La méthode que j'aime le plus est une méthode basée sur la précision, basée sur ceci: http://doingbayesiandataanalysis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html . Cependant, je n'ai pas trouvé beaucoup de littérature mathématique à ce sujet, donc pour le moment c'est juste une bonne heuristique.

P(A>B|data)

ilanman
la source
0

Il semble y avoir deux approches principales pour la prise de décision dans les tests bayésiens A / B. Le premier est basé sur un article de John Kruschke de l'Université de l'Indiana (K. Kruschke, Bayesian Estimation Supersedes the t Test, Journal of Experimental Psychology: General, 142, 573 (2013)). La règle de décision utilisée dans cet article est basée sur le concept de région d'équivalence pratique (CORDE).

Une autre possibilité consiste à utiliser le concept de perte attendue. Il a été proposé par Chris Stucchio (C. Stucchio, Bayesian A / B Testing chez VWO). C'est une autre approche que je considérerais.

(pApB)/pA

Vous pouvez trouver plus dans cet article de blog: Bayesian A / B Testing: a step-by-step guide . Il comprend également des extraits de code Python qui sont principalement basés sur un projet Python hébergé sur Github .

cbellei
la source