Como alguém poderia desenvolver uma regra de parada em uma análise de poder de duas proporções independentes?


18

Sou desenvolvedor de software que trabalha em sistemas de teste A / B. Não tenho um histórico sólido de estatísticas, mas venho adquirindo conhecimento nos últimos meses.

Um cenário de teste típico envolve a comparação de dois URLs em um site. Um visitante visita LANDING_URLe é encaminhado aleatoriamente para um URL_CONTROLou outro URL_EXPERIMENTAL. Um visitante constitui uma amostra e uma condição de vitória é alcançada quando o visitante executa alguma ação desejável nesse site. Isso constitui uma conversão e a taxa de taxas de conversão é a taxa de conversão (normalmente expressa em porcentagem). Uma taxa de conversão típica para um determinado URL é algo entre 0,01% e 0,08%. Executamos testes para determinar como novos URLs se comparam com URLs antigos. Se URL_EXPERIMENTALfor mostrado um desempenho superior URL_CONTROL, substituímos URL_CONTROLpor URL_EXPERIMENTAL.

Nós desenvolvemos um sistema usando técnicas simples de teste de hipóteses. Usei as respostas para outra pergunta CrossValidated aqui para desenvolver este sistema.

Um teste é configurado da seguinte maneira:

  • A estimativa CRE_CONTROLda taxa de conversão URL_CONTROLé calculada usando dados históricos.
  • A taxa CRE_EXPERIMENTALde conversão desejada desejada de URL_EXPERIMENTALestá definida.
  • Um nível de significância de 0,95 é normalmente usado.
  • Uma potência de 0,8 é normalmente usada.

Juntos, todos esses valores são usados ​​para calcular o tamanho de amostra desejado. Estou usando a função R power.prop.testpara obter esse tamanho de amostra.

Um teste será executado até que todas as amostras sejam coletadas. Neste ponto, os intervalos de confiança para CR_CONTROLe CR_EXPERIMENTALsão calculados. Se eles não se sobrepõem, um vencedor pode ser declarado com nível de significância de 0,95 e poder de 0,8.

Os usuários de nossos testes têm duas preocupações principais:

1. Se, em algum momento do teste, forem coletadas amostras suficientes para mostrar um vencedor claro, o teste não poderá ser interrompido?

2. Se nenhum vencedor for declarado no final do teste, podemos executá-lo por mais tempo para ver se podemos coletar amostras suficientes para encontrar um vencedor?

Deve-se notar que existem muitas ferramentas comerciais que permitem que seus usuários façam exatamente o que nossos próprios usuários desejam. Eu li que existem muitas falácias com o exposto acima, mas também me deparei com a idéia de uma regra de parada e gostaria de explorar a possibilidade de usar essa regra em nossos próprios sistemas.

Aqui estão duas abordagens que gostaríamos de considerar:

1. Usando power.prop.test, compare as taxas de conversão medidas atuais com o número atual de amostras e verifique se foram coletadas amostras suficientes para declarar um vencedor.

Exemplo: Um teste foi configurado para verificar se o seguinte comportamento existe em nosso sistema:

  • CRE_CONTROL: 0,1
  • CRE_EXPERIMENTAL: 0,1 * 1,3
  • Com esses parâmetros, o tamanho da amostra Né 1774.

No entanto, à medida que o teste avança e atinge 325 amostras, CRM_CONTROL(taxa de conversão medida para controle) é 0,08 e CRM_EXPERIMENTALé 0,15. power.prop.testé executado nessas taxas de conversão e Né 325. Exatamente o número de amostras necessárias para declarar CRM_EXPERIMENTALo vencedor! Neste ponto, esperamos que o teste seja encerrado. Da mesma forma, se o teste atingir 1774 amostras, mas nenhum vencedor for encontrado, mas atingir 2122 amostras, o suficiente para mostrar que CRM_CONTROL0,1 e CRM_EXPERIMENTAL0,128 é um resultado em que um vencedor pode ser declarado.

Em uma pergunta relacionada, os usuários informaram que esse teste é menos credível devido ao incentivo a paradas precoces com menos amostras e também à vulnerabilidade ao viés de estimativa e a um número aumentado de erros de Tipo I e Tipo II. Existe alguma maneira de fazer essa regra de parada funcionar? Essa é a nossa abordagem preferida, pois significa menos tempo de programação para nós. Talvez essa regra de parada funcione oferecendo algum tipo de pontuação ou pontuação numérica que mede a credibilidade do teste, caso seja interrompido mais cedo?

2. Usando análise sequencial ou SPRT .

Esses métodos de teste são projetados exatamente para a situação em que nos encontramos: como nossos usuários podem iniciar um teste e finalizá-lo de forma que não percam tempo demais nos testes? Executar um teste por muito tempo ou ter que iniciar um teste novamente com parâmetros diferentes.

Dos dois métodos acima, sou a favor do SPRT porque a matemática é um pouco mais fácil de entender e porque parece que pode ser mais fácil programar. No entanto, não entendo como usar a função de probabilidade neste contexto. Se alguém pudesse construir um exemplo de como calcular a razão de verossimilhança, a soma cumulativa da razão de verossimilhança e continuar com um exemplo que ilustra uma situação em que alguém continuaria monitorando, quando aceitaria a hipótese nula e a hipótese alternativa, isso nos ajudaria a determinar se o SPRT é o caminho certo a seguir.


2
Recomendo que você não recorra ao vodu. Quando você está usando uma ferramenta e não entende exatamente o que está fazendo ou como funciona, não está qualificado para interpretar os resultados da ferramenta. Quando uma análise conduz uma decisão de negócios e você está investindo tempo e dinheiro no resultado, mostra propriedade se você dedicar algum tempo para entender a fonte dos dados. É o tipo de trabalho duro que oferece mais oportunidades, em vez de estar "no rebanho".
EngrStudent - Reinstate Monica

Respostas:


7

Este é um problema interessante e as técnicas associadas são muitas aplicações. Eles são freqüentemente chamados de estratégias de "monitoramento intermediário" ou "design experimental seqüencial" (o artigo da wikipedia, ao qual você vinculou, infelizmente é um pouco escasso), mas existem várias maneiras de fazer isso. Acho que o usuário27564 está errado ao dizer que essas análises devem ser necessariamente bayesianas - certamente existem abordagens freqüentes para o monitoramento intermediário.

Sua primeira abordagem se assemelha a uma das abordagens originais do monitoramento provisório, denominadas "restrições". A idéia é muito simples: você deve parar de coletar dados quando o resultado do experimento for inevitável. Suponha que você tenha uma coleção de 100 e / ou e deseje saber se foi gerado por um processo que seleciona ou aleatoriamente a cada vez (por exemplo, Nesse caso, você deve parar assim que contar pelo menos 58 itens do mesmo tipo; a contagem dos itens restantes não mudará o significado após esse ponto. O número vem da localização de , em queUMAsBsUMABP(UMA)=P(B)=0,558x de tal modo que 1-F(x;100;0,5)<αF é a distribuição binomial cumulativa.

Lógica semelhante permite encontrar os "pontos de inevitabilidade" para outros testes em que:

  1. O tamanho total da amostra * é fixo e
  2. Cada observação contribui com uma quantidade limitada para a amostra.

Isso provavelmente seria fácil para você implementar - calcule os critérios de parada off-line e depois conecte-os ao código do seu site - mas você pode melhorar ainda mais se quiser encerrar o experimento, não apenas quando o resultado for inevitável , mas quando é muito improvável que isso mude.

UMABUMA

Existem várias outras abordagens também. Os métodos seqüenciais de grupo são projetados para situações nas quais você pode não conseguir obter um número definido de assuntos e os assuntos chegam a taxas variáveis. Dependendo do tráfego do seu site, você pode ou não querer analisar isso.

Há um número razoável de pacotes R flutuando pelo CRAN, se é isso que você está usando para sua análise. Um bom lugar para começar pode realmente ser a Visualização da Tarefa de Ensaios Clínicos , uma vez que muito desse trabalho saiu desse campo.


[*] Apenas alguns conselhos amigáveis: tenha cuidado ao analisar valores de significância calculados a partir de um número muito grande de pontos de dados. Como você coletar mais e mais dados, você vai , eventualmente, encontrar um resultado significativo, mas o efeito pode ser trivialmente pequena. Por exemplo, se você perguntasse a todo o planeta se eles preferem A ou B, é muito improvável que você veja uma divisão exata de 50:50, mas provavelmente não vale a pena refazer o seu produto se a divisão for 50,001: 49,999. Continue verificando o tamanho do efeito (ou seja, diferença nas taxas de conversão) também!


1
Para abordar explicitamente as preocupações de seus usuários: Sim, você pode definitivamente terminar a análise mais cedo. Isso acontece o tempo todo em ensaios clínicos - a droga é um sucesso tão impressionante que eles têm dados suficientes para sua eficácia e desejam fornecê-la às pessoas presas no grupo de controle (ou, mais provavelmente, a droga é uma enorme rebentar / piorar as coisas). No entanto, estender o experimento é mais contencioso - existem métodos para corrigir várias "aparências", mas é melhor fixar um máximo de N com antecedência - você sempre pode parar cedo!
226138 Matt-Krause

2
Obrigado por isso, eu concordo totalmente com a interrupção, se o experimento for inevitável, isso realmente faz sentido! Com isso "parando se é realmente improvável", eu duvidaria que um freqüentador real concordasse. Não é nada menos do que dizer: Ei, 95%? Eu diria que 93% também é bom! Quero dizer, também seria bom apenas ficar satisfeito com 90% de confiança, mas como freqüentador antes de olhar para os dados!
10133 SebastianNeubauer

1
Eu não sou um arqui-freqüentador, nem toco um na TV, mas acho que você ainda pode ter uma interpretação freqüentista razoável de uma regra de parada antecipada - se eu fizesse esse experimento 100 vezes, com que frequência obteria o resposta diferente se eu parasse agora vs. se eu corresse até a conclusão? A revisão I ligada salienta que este é um daqueles casos agradável onde é possível satisfazer Bayesians e frequentistas ao mesmo tempo embora ...
Matt Krause

α

1
@ RussellS.Pierce: Eu acho que depende. Obviamente, o corte não vai, mas alguns outros métodos fazem. O teste de O'Brein e Flemming, por exemplo, pode usar mais dados, mas também pode rejeitar anteriormente, e o teste de Pocock ainda mais. Obviamente, depende das especificidades: o livro vinculado acima tem um exemplo com alguns valores razoáveis ​​(tamanho do efeito: 0,25, alfa = 0,05, poder = 0,9, 5 aparências). A versão N fixa precisa de 170 sujeitos para rejeitar; A versão OBF precisa de no máximo 180, e o Pocock precisa no máximo de 205, mas o número esperado de sujeitos é 130 e 117, respectivamente.
Matt Krause

1

Você pode parar cedo, mas se o fizer, seus valores-p não serão facilmente interpretados. Se você não se importa com a interpretação do seu valor-p, a maneira pela qual a resposta para suas duas primeiras perguntas é 'não' não importa (muito). Seu cliente parece pragmático; portanto, a verdadeira interpretação de um valor-p provavelmente não é um ponto importante para você.

Não posso falar com a segunda abordagem que você propõe.

No entanto, a primeira abordagem não está em terreno sólido. Aproximações normais de distribuições binomiais não são válidas para proporções tão baixas (que é o método power.prop.test, também o método usado por Cohen em seu livro clássico sobre poder). Além disso, até onde sei, não existe uma solução de análise de potência de forma fechada para testes de proporção de duas amostras (cf. Como se pode executar uma análise de potência binomial de dois grupos sem usar aproximações normais? ). No entanto, existem métodos melhores para aproximar os intervalos de confiança das proporções (consulte o pacote binom) Você pode usar intervalos de confiança não sobrepostos como uma solução parcial ... mas isso não é o mesmo que estimar um valor p e, portanto, não fornece uma rota para a energia diretamente. Espero que alguém tenha uma boa solução de formulário fechado que compartilhe com o resto de nós. Se eu tropeçar em uma, atualizarei a pergunta acima mencionada. Boa sorte.

Edit: Enquanto eu estou pensando sobre isso, deixe-me totalmente pragmático aqui por um momento. Seu cliente deseja que esse experimento termine quando tiver certeza de que o site experimental está funcionando melhor que o site de controle. Depois de obter uma amostra decente, se você não estiver pronto para tomar uma decisão, comece a ajustar a proporção de sua tarefa aleatória para qualquer lado que esteja 'ganhando'. Se for apenas um pontinho, a regressão à média entrará em cena, você ficará menos certo e diminuirá a proporção. Quando tiver certeza razoável, encerre e declare um vencedor. A abordagem ideal provavelmente envolveria a atualização bayesiana, mas eu não sei o suficiente sobre esse tópico em minha cabeça para direcioná-lo. No entanto, posso garantir que, embora possa parecer contra-intuitivo às vezes, a matemática em si não é tão difícil.


0

As perguntas que você tem são perguntas típicas emergentes em testes estatísticos. Existem dois "sabores" estatísticos por aí, o frequentista e o bayesiano. A resposta freqüente às duas perguntas é fácil:

  • NÃO
  • Não, você não pode parar cedo
  • Não, você não pode medir apenas mais

Depois de definir sua configuração, você não pode nem olhar para os dados (análise cega). Do ponto de vista freqüentista, não há maneira de contornar, trapacear, não há truques! (EDIT: Claro, existem tentativas de fazê-lo, e elas também funcionarão se usadas corretamente, mas a maioria delas é conhecida por apresentar vieses.)

Mas existe o ponto de vista bayesiano, que é bem diferente. A abordagem bayesiana precisa, em contraste com os freqüentadores, uma entrada adicional, a distribuição de probabilidade a priori. Podemos chamá-lo também de conhecimento ou preconceito anterior. Com isso, podemos usar os dados / medidas para atualizar nosso conhecimento para a probabilidade a posteriori. O ponto é que podemos usar os dados e, mais ainda, podemos usá-los em todos os pontos intermediários da medição. Em cada atualização, o último posterior é nosso novo prior e podemos atualizá-lo com uma nova medida para nosso conhecimento atualizado. Nenhum problema de parada precoce!

Eu encontrei uma palestra discutindo problemas semelhantes, como você tem, e descrevi acima: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

Mas, além disso, você tem certeza de que precisa disso? Parece que você tem algum sistema em execução decidindo onde vincular uma solicitação. Para isso, você não precisa provar que suas decisões estão corretas no sentido estatístico com um teste de hipótese. Você já comprou uma coca-cola, porque poderia excluir que a pepsi está 'certa' agora, com uma probabilidade de 95%? É suficiente aceitar o que é melhor, sem excluir uma hipótese. Isso seria um algoritmo trivial: calcule a incerteza da taxa A, calcule a incerteza de B. Pegue a diferença de ambas as taxas e divida b na incerteza da diferença. O resultado é algo como o significado da diferença no sigma. Depois, basta pegar todos os links onde houver mais de duas ou três diferenças de sigma. Recua,


1
Eu acho que seus quatro primeiros parágrafos são um arenque vermelho - existem abordagens freqüentes para o monitoramento interino. É verdade que a atualização posterior (bayesiana) se presta muito bem a isso, mas você pode enquadrar esse problema de várias maneiras diferentes. Obrigado pelo ponteiro para os slides!
224138 Matt Krause

+1 de qualquer maneira - a abordagem bayesiana provavelmente é clara aqui do que qualquer correção freqüente.
russellpierce

2
Eh, tem esse ... meme ... que os métodos bayesianos permitem espiar sem parar os dados sem complicações. No entanto, a taxa de erro geral do Tipo I não é realmente controlada (por que seria?) E pode ficar arbitrariamente grande se depois de muitas "aparências". Você pode melhorar isso com um prévio apropriado ou argumentar que controlar o erro do tipo I é manco, mas não é como se todas as técnicas bayesianas fossem uma panacéia.
Matt Krause

0

talvez alguns métodos possam ser usados ​​lá como

  • Pocock
  • O'Brien e Flemming
  • Peto

isso ajustará o ponto de corte P com base nos resultados e ajudará a interromper a coleta de dados e economizar recursos e tempo.

talvez outros trabalhos possam ser adicionados aqui.


você poderia fornecer links ou mais informações para seus pontos de bala?
Antoine

não tenho os artigos exatos porque usei um artigo de revisão que os cita, quero dizer que as abordagens são diferentes, mas eu recomendo que você gere um artigo que gerencie a questão na área médica: Modificação adaptativa do tamanho da amostra em ensaios clínicos: comece pequeno e depois peça mais? Christopher Jennisona * † e BruceW. Turnbullb
HappyMan
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.