Quando terminar o teste Bayesiano A / B?


10

Estou tentando fazer testes A / B da maneira bayesiana, como em Programação Probabilística para Hackers e testes A / B bayesianos . Ambos os artigos pressupõem que o tomador de decisão decide qual das variantes é melhor com base apenas na probabilidade de algum critério, por exemplo, ; portanto, é melhor. Essa probabilidade não fornece nenhuma informação sobre se havia quantidade suficiente de dados para tirar conclusões a partir dele. Então, não está claro para mim quando parar o teste.AP(pUMA>pB)=0,97UMA

Suponha que há dois RVs binários, e , e eu quero para estimar quão provável é que , e com base nas observações de e . Além disso, suponha que e posteriores sejam beta-distribuídos.B p A > p B p A - p BUMABpUMA>pBABpApBpUMA-pBpUMA>5%UMABpUMApB

Como posso encontrar os parâmetros para e , posso amostrar os posteriores e estimar . Exemplo em python:p Aα,βp BpUMA|dadosP ( p A > p B | dados )pB|dadosP(pUMA>pB | dados)

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

Eu poderia obter, por exemplo, . Agora eu gostaria de ter algo como .P(pUMA>pB)=0,95P(pUMA>pB | dados)=0,95±0,03

Eu pesquisei sobre intervalos credíveis e fatores Bayes, mas não consigo entender como calculá-los para este caso, se eles são aplicáveis. Como posso calcular essas estatísticas adicionais para ter um bom critério de finalização?


11
Um bom artigo sobre isso, verifique o apêndice para um exemplo com cálculos ... support.google.com/analytics/answer/2844870?hl=en
Fabio Beltramini

Respostas:


10

Fico feliz que você tenha mencionado este exemplo, pois um projeto em que estou trabalhando está escrevendo um capítulo inteiro sobre os testes A / B Bayesianos.

Estamos interessados ​​em duas quantidades: e alguma medida de "aumento". Vou discutir o P ( p A > p BP(pUMA>pB|dumatuma) quantidade primeiro.P(pUMA>pB|dumatuma)

Não há limites de erro em P(pUMA>pB|dados)

P(pUMA>pB|dados)=0,95

pUMA>pBpUMApBpUMA-pBpB>

pUMA>pBpUMA-pBpB

insira a descrição da imagem aqui

À medida que mais e mais dados são adquiridos, essa distribuição converge para o aumento relativo real, pode-se dizer que a distribuição se estabiliza. É aqui que sugiro pensar em encerrar o experimento. Quando essa distribuição parecer "se acalmar", e pudermos nos sentir confiantes com o aumento, encerre o experimento.


pUMA-pBpUMA

ei @ Cam.Davidson.Pilon, obrigado pela sua resposta. Ainda estou confuso ao fornecer probabilidades como: "A probabilidade é A é 10% melhor que B é X%" Eu criei 2 distribuições; um é 10% melhor que o outro e usou um valor N enorme, portanto o diff (A / B-1) tem uma distribuição normal, com média de 10%. Portanto (diff> .10) .mean () retorna ~ 50%, mas não deveria ser 100%?
CanCeylan

@CanCeylan você tem código para compartilhar? Não tenho certeza de como você criou as distribuições ...
Cam.Davidson.Pilon

0

Eu tenho experimentado maneiras de interromper um teste Bayesiano A / B e você está certo - não existem muitas maneiras óbvias de pesquisar no Google. O método que eu mais gosto é um método baseado em precisão, com base neste: http://doingbayesiandataanalysis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html . No entanto, não encontrei muita literatura matemática sobre isso, então, neste momento, é apenas uma boa heurística.

P(UMA>B|dumatuma)


0

Parece haver duas abordagens principais para a tomada de decisão nos testes Bayesian A / B. O primeiro é baseado em um artigo de John Kruschke, da Universidade de Indiana (K. Kruschke, Bayesian Estimation Substitui o Teste t, Journal of Experimental Psychology: General, 142, 573 (2013)). A regra de decisão usada neste artigo é baseada no conceito de Região de Equivalência Prática (ROPE).

Outra possibilidade é usar o conceito de perda esperada. Foi proposto por Chris Stucchio (C. Stucchio, Bayesian A / B Testing at VWO). É outra abordagem que eu consideraria.

(pUMA-pB)/pUMA

Você pode encontrar mais neste post do blog: Teste Bayesian A / B: um guia passo a passo . Ele também inclui alguns trechos de código Python que são baseados principalmente em um projeto Python hospedado no Github .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.