Estatística

Teste A/B/n: várias variações sem falso positivo

Como testar várias variações infla o falso positivo, quanto Bonferroni e Sidak custam em tráfego e quando um teste de quatro braços vale a pena.

Ilustração plana de quatro painéis arredondados lado a lado, um deles com contorno luminoso e uma malha filtrando pontos, em tons de verde profundo

Cada variação que você adiciona a um teste é mais uma chance de errar, e a aritmética não é gentil: com três variações contra um controle no limiar usual de 5%, a probabilidade de coroar pelo menos uma vencedora falsa quando nada funciona de verdade é de 14,26%. A maioria dos times que roda teste A/B/n nunca aplica correção nenhuma, lê o menor valor-p da tabela e sobe aquilo. Este guia cobre exatamente quanto a taxa de falso positivo infla, quanto Bonferroni e Sidak custam em tráfego e calendário, um exemplo trabalhado em que um resultado que parece significativo não é, e como decidir se um teste de vários braços vale a pena. Ele faz parte do nosso guia completo de teste A/B e se apoia em significância estatística em teste A/B.

Por que os braços extras custam mais que tráfego

Um limiar de 5% no valor-p é uma promessa sobre uma comparação: se não existe diferença de verdade, você ainda assim vai chamar de vencedora cerca de 5% das vezes. Faça a mesma promessa três vezes e as promessas não somam do jeito que a intuição sugere. A chance de pelo menos uma delas falhar é 1 menos a chance de todas se sustentarem, o que dá 1 menos 0,95 elevado ao número de comparações.

Variações contra o controle Chance de pelo menos uma vencedora falsa Limiar Bonferroni Limiar Sidak
1 5,00% 0,05000 0,05000
2 9,75% 0,02500 0,02532
3 14,26% 0,01667 0,01695
4 18,55% 0,01250 0,01274
5 22,62% 0,01000 0,01021
6 26,49% 0,00833 0,00851
8 33,66% 0,00625 0,00639

A coluna do meio é o que os estatísticos chamam de taxa de erro por família. As duas últimas são as duas formas padrão de puxar isso de volta para 5%.

Como a chance de pelo menos uma vencedora falsa cresce com o número de variaçõesCom uma comparação a cinco por cento, a chance de vencedora falsa é 5 por cento. Sobe para 9,75 por cento com duas comparações, 14,26 com três, 18,55 com quatro, 22,62 com cinco, 26,49 com seis e 33,66 com oito. A linha dos cinco por cento pretendidos fica plana enquanto a taxa real sobe.A promessa que você fez e a promessa que você cumpriuo que você prometeu: 5%5,00%9,75%14,26%18,55%22,62%26,49%33,66%1234568variações comparadas ao controle, sem correção, limiar de 5% em cada
Nenhum valor-p individual está errado. O erro é ler vários e reportar o menor como se ele tivesse sido o único.

Johari, Pekelis e Walsh enunciam as duas definições de erro com clareza no trabalho deles sobre inferência sempre válida: a taxa de erro por família é a probabilidade, no pior caso, de incorrer em qualquer falso positivo, enquanto a taxa de falsa descoberta é a proporção média, no pior caso, de falsos positivos entre as hipóteses que você rejeitou. Eles também nomeiam os procedimentos padrão: Bonferroni para a taxa por família, Benjamini-Hochberg para a taxa de falsa descoberta. Qual dos dois você quer depende da decisão. Se uma única vencedora falsa sairia cara de subir, controle a taxa por família. Se você está varrendo muitas métricas e quer bom desempenho no conjunto, controlar a taxa de falsa descoberta é o alvo mais sensato.

Bonferroni e Sidak, em uma linha cada

Bonferroni divide o seu limiar pelo número de comparações. Três variações, alvo de 5%, cada comparação precisa bater 0,01667. Não assume nada sobre como as comparações se relacionam, e é por isso que é levemente conservadora e é um bom padrão.

Sidak assume que as comparações são independentes e resolve para o limiar que devolve exatamente 5% no total: 1 menos 0,95 elevado a um sobre o número de comparações. Para três comparações, isso dá 0,01695.

A diferença entre as duas é de 0,0003. Na prática, a escolha entre elas quase nunca muda uma decisão, então escolha uma, registre no seu documento de experimento e pare de discutir. O que muda decisão é corrigir ou não corrigir.

Exemplo trabalhado: a vencedora que a correção derruba

Um time de SaaS testa três layouts novos de página de preços contra o atual. O tráfego é dividido em quatro, 18.000 visitantes por braço, e a métrica é início de trial.

Calculadora de significância para teste A/B/n
Controle (A)
Taxa-
VariaçãoVisitantesConversõesTaxaMelhoravalor-p brutovalor-p ajustadoVereditoRemover variação
-----
-----
-----

Testar várias variações contra o mesmo controle multiplica a chance de um falso positivo. A correção baixa o limiar por comparação para segurar o erro da família toda. Compare o valor-p bruto (o que uma calculadora de duas variações mostraria) com o ajustado: é comum uma variação passar sozinha e cair depois da correção.

Este é o placar.

Braço Visitantes Trials iniciados Taxa Ganho relativo Valor-p bruto Valor-p ajustado
Controle 18.000 720 4,000% referência referência referência
B 18.000 803 4,461% +11,53% 0,0298 0,0893
C 18.000 742 4,122% +3,06% 0,5569 1,0000
D 18.000 707 3,928% -1,81% 0,7255 1,0000

Bonferroni com três comparações; o valor-p ajustado é o bruto multiplicado por três e limitado a 1.

A variação B é a hora da verdade. O valor-p bruto de 0,0298 está confortavelmente abaixo de 0,05, o ganho é de +11,53% e o intervalo de confiança sobre a diferença vai de +0,045 a +0,877 ponto percentual, sem incluir o zero. Todo instinto na sala manda subir.

O limiar corrigido é 0,01667, e 0,0298 não passa dele. Dito de outro jeito, o valor-p ajustado é 0,0893. Sidak dá essencialmente a mesma resposta, 0,0866. A leitura correta é que B é a mais promissora das três e o teste não confirma isso.

Para contraste, um efeito genuinamente grande sobrevive sem discussão. Se B tivesse chegado a 855 trials (4,750%, um ganho de +18,75%), o valor-p bruto seria 0,0005 e o ajustado 0,0015, claramente significativo sob qualquer uma dessas correções. E a fronteira não está longe: B precisaria de 812 trials, taxa de 4,511% e ganho de +12,78%, para o valor-p bruto chegar a 0,0163 e passar da barra corrigida. Nove conversões a mais em 18.000 visitantes separam “promissora” de “confirmada” aqui, o que é um bom lembrete de quão fina é a evidência na borda de qualquer limiar.

Onde as três variações caem contra o limiar sem correção e com correçãoA variação B tem valor-p bruto de 0,0298, que passa do limiar de 0,05 sem correção mas não do limiar corrigido de Bonferroni de 0,01667. As variações C e D têm valores-p de 0,5569 e 0,7255 e não passam de nenhum. Uma variação em 0,0005 passaria dos dois.Valor-p bruto contra as duas barras que ele precisa passarcorrigido 0,01667sem correção 0,050,0005efeito grandeB: 0,0298passa de uma barra sóC: 0,5569D: 0,7255evidência mais forteevidência mais fracaA única coisa que mudou entre “vencedora” e “não confirmada” foi quantas variações havia no teste.
A variação B é boa candidata a um teste de dois braços na sequência. Não é resultado que se sobe com essa evidência.

Quanto a correção custa em tráfego e calendário

A correção não sobe a barra só na hora da análise. Se você planeja o teste direito, ela eleva a amostra necessária antes do lançamento, porque um limiar mais rígido exige mais evidência para o mesmo efeito detectável. E você está pagando por mais braços ao mesmo tempo.

Variações Limiar corrigido Visitantes por braço Visitantes no total Dias a 25.000 por semana
1 (A/B simples) 0,05000 17.943 35.886 11
2 0,02500 21.729 65.187 19
3 0,01667 23.933 95.732 27
5 0,01000 26.699 160.194 45

Dimensionamento com base de 4%, efeito mínimo detectável de 15% relativo, poder de 80%, bicaudal, com o limiar corrigido por Bonferroni.

Duas coisas saltam. O custo por braço da correção é modesto: ir de uma comparação para três eleva a amostra por braço em só cerca de 33%, porque o tamanho de amostra responde ao limiar pelo quadrado de um valor crítico e não linearmente. A parte cara são os braços em si. Três variações transformam 35.886 visitantes em 95.732, ou seja 2,7 vezes o tráfego, e onze dias em vinte e sete.

Calculadora de tamanho de amostra
-Visitantes por variação
-Total (2 variações)
-Duração estimada

Cálculo por aproximação normal de duas proporções, 2 variações (50/50). Mexa nos campos e veja o impacto ao vivo.

Essa razão é a decisão de verdade. Um teste de quatro braços não é “um teste que responde três perguntas”, é quase três testes rodados em paralelo com um controle compartilhado, e deveria ser justificado do mesmo jeito. O efeito mínimo detectável que você consegue bancar num desenho de quatro braços é bem pior que num de dois, no mesmo tamanho de calendário, e fingir o contrário é como os programas acabam com uma gaveta cheia de teste multi-braço inconclusivo.

A multiplicidade que você não percebeu que tinha

As variações são a fonte visível de múltiplas comparações. Existem outras três igualmente reais e muito mais fáceis de não notar.

Métricas. Ler cinco métricas a 5% é aritmeticamente idêntico a cinco variações: cerca de 22,62% de chance de uma cruzar a linha por acaso. A correção normalmente não é uma fórmula, é declarar uma métrica primária antes do lançamento e deixar que ela carregue a decisão.

Segmentos. Fatiar um resultado neutro por dispositivo, canal, país e novo contra recorrente gera uma dúzia de comparações em poucos cliques, e pelo menos uma vai parecer significativa. Análise de segmento é valiosa para gerar a próxima hipótese e é quase inútil como confirmação, a menos que o segmento tenha sido nomeado antes do lançamento.

Tempo. Checar o resultado todo dia por duas semanas são catorze olhadas, e isso infla a taxa de falso positivo do mesmo jeito. É o problema do peeking, e ele se soma a tudo que está acima em vez de substituir.

Rodadas sequenciais. Rodar as mesmas quatro ideias como quatro testes A/B separados e subir a melhor não escapa da multiplicidade. As comparações continuaram acontecendo; só foram espalhadas pelo calendário. A regra honesta é que a correção acompanha o número de comparações que alimentaram a decisão, não o número de linhas do seu registro de testes.

No Bing, o sistema de detecção de interação precisava rodar centenas de milhares de testes de hipótese, e Kohavi e colegas relatam usar um algoritmo bayesiano empírico de controle da taxa de falsa descoberta para manter a contagem de falsos positivos administrável. A lição para um programa menor não é copiar o algoritmo, é notar que quem testa em escala acaba precisando de uma política explícita sobre multiplicidade, e que essa política precisa estar escrita em vez de improvisada a cada teste.

Quando o teste multi-braço é a escolha certa

Situação Desenho melhor
Quatro propostas de valor genuinamente diferentes, tráfego alto A/B/n com correção, dimensionado para o limiar corrigido
Quatro variações pequenas da mesma ideia Escolha a melhor e rode um teste de dois braços; os efeitos são pequenos demais para pagar a conta corrigida
Uma ideia, várias métricas que importam Teste de dois braços com uma métrica primária declarada e o resto como contexto
Pouco tráfego e várias ideias Testes sequenciais de dois braços, um por vez, maior aposta primeiro
Muitos braços e você quer o tráfego fluindo para o que funciona Um bandit, que otimiza conversão total em vez de produzir veredito limpo por braço

A última linha merece ressalva, porque costuma ser vendida demais. Um bandit multi-braço é um objetivo diferente, não um A/B/n mais barato: ele maximiza conversões durante o teste em vez de entregar uma estimativa limpa do efeito de cada braço. Se você precisa de um número defensável para uma decisão que sobrevive ao teste, quem produz isso é um experimento controlado com correção. Os detalhes estão em bandits contra teste A/B.

Erros comuns em teste A/B/n

Erro O que produz
Reportar o menor valor-p sem correção Uma vencedora falsa mais ou menos uma vez a cada sete, com três variações
Corrigir na análise mas dimensionar sem correção Um teste subdimensionado que quase nunca passa da barra corrigida
Adicionar uma quarta variação “já que estamos testando” Todo braço perde poder e o calendário cresce semanas
Tirar braços perdedores no meio e reler Multiplicidade mais peeking, sem nenhuma taxa de erro válida sobrando
Tratar uma não-vencedora corrigida como ideia morta A variação B acima é boa candidata, não é ideia enterrada
Ler segmentos depois do fato como confirmação Uma dúzia de comparações extras silenciosas e uma história que não vai se repetir

Faça isso automático na Donnu

Uma correção só protege o programa quando é aplicada por padrão, e não por lembrança. A Donnu A/B conta as comparações do teste, aplica a correção ao limiar antes de mostrar qualquer veredito e reporta o valor-p ajustado ao lado do bruto, para ninguém precisar reconstruir qual barra o resultado realmente passou. O tamanho de amostra que ela recomenda no desenho já leva em conta o número de braços, então um teste de quatro vias não é planejado como se fosse de duas.

Comece um teste grátis de 14 dias e dimensione o seu próximo teste multi-braço contra a sua própria base.

Referências

Leia também: O que é teste A/B · Significância estatística em teste A/B · Teste A/B, multivariado e split URL · O problema do peeking · Calculadora de significância A/B/n grátis · Read in English

Perguntas frequentes

O que é um teste A/B/n?
Um teste A/B/n compara um controle contra mais de uma variação ao mesmo tempo, dividindo o tráfego entre todos os braços. A mecânica é idêntica à de um teste A/B, mas a estatística não é: cada variação a mais é outra comparação contra o controle, e cada comparação carrega a própria chance de falso positivo. Com três variações testadas a 5%, a probabilidade de pelo menos uma produzir vencedora falsa quando nada funciona é de cerca de 14,26%, não 5%. É esse o motivo inteiro de o A/B/n precisar de correção e de amostra maior.
Quanto várias variações inflam o falso positivo?
A taxa de erro por família, ou seja a chance de pelo menos um falso positivo no teste inteiro, é 1 menos 0,95 elevado ao número de comparações. Uma comparação dá 5%, duas dão 9,75%, três dão 14,26%, cinco dão 22,62% e oito dão 33,66%. Com oito variações você tem uma chance em três de coroar uma vencedora que não existe, mesmo se toda variação for idêntica ao controle. Nenhum valor-p individual está errado; o problema é ler muitos deles e reportar só o menor.
O que é a correção de Bonferroni e quando usar?
Bonferroni divide o seu limiar de significância pelo número de comparações. Com três variações e alvo de 5%, cada comparação precisa bater 0,0167 em vez de 0,05. É a correção mais simples, é conservadora e é o padrão certo quando uma vencedora falsa sairia cara de subir. A correção de Sidak é uma alternativa levemente menos rígida que assume independência: para três comparações dá 0,01695 em vez de 0,01667, diferença pequena demais para mudar a maioria das decisões.
Quanto tráfego a mais um teste A/B/n exige?
Dois multiplicadores se somam. Primeiro, o limiar corrigido eleva a amostra por braço: com base de 4% e efeito mínimo detectável de 15% relativo, uma comparação exige 17.943 visitantes por braço e três comparações exigem 23.933. Segundo, agora você tem quatro braços em vez de dois. O tráfego total sai de 35.886 visitantes para 95.732, cerca de 2,7 vezes o custo. A 25.000 visitantes por semana, isso é 27 dias em vez de 11.
Não é melhor rodar testes A/B separados?
Rodar as mesmas comparações em sequência não elimina a multiplicidade, só a esconde, porque você continua escolhendo o melhor de vários resultados. O que os testes sequenciais compram de verdade é a chance de aprender entre rodadas e de descartar ideia ruim barato. A regra honesta é que a correção acompanha o número de comparações que você fez até a decisão, não o número de testes no calendário. Se você quer mesmo o caminho mais rápido com várias ideias, um A/B/n com correção costuma ser mais limpo que quatro testes sequenciais lidos sem nenhuma.
Preciso corrigir para várias métricas também?
Precisa, e essa é a versão que os times esquecem. Ler cinco métricas a 5% dá cerca de 22,62% de chance de ao menos uma cruzar a linha por acaso, exatamente a mesma aritmética de cinco variações. A correção padrão é declarar uma métrica primária antes do lançamento, que carrega a decisão, e tratar o resto como contexto e não como evidência. Quando você realmente precisa decidir por várias métricas ao mesmo tempo, aplique uma correção àquelas comparações do mesmo jeito.
Quando testar mais de duas variações é boa ideia de verdade?
Quando as variações são apostas genuinamente diferentes, e não pequenos ajustes umas das outras; quando o seu tráfego paga a conta da amostra corrigida; e quando perder também ensina. Quatro propostas de valor distintas numa página de preços é um bom A/B/n. Quatro tons do mesmo botão não é, porque os efeitos são pequenos, a amostra corrigida é enorme e a resposta não muda nada do que você vai fazer depois. Se o seu tráfego não sustenta o desenho corrigido, testar duas ideias bem vence testar quatro mal.