O Problema do Peeking em Testes A/B (e Como Evitar)
Olhar o teste todo dia e parar no primeiro sinal de vitória infla o falso positivo. A matemática por trás do peeking e como evitar esse erro.

📚 Este artigo faz parte do guia Significância Estatística em Teste A/B: O Guia.
O problema do peeking acontece quando você checa o resultado de um teste A/B repetidas vezes e para assim que ele parece um vencedor: cada nova olhada é uma nova chance de o acaso, sozinho, cruzar o seu limiar de significância, então um teste construído para 5% de falso positivo pode entregar, silenciosamente, uma taxa de erro várias vezes maior. É, sem exagero, o jeito mais comum de um resultado de teste A/B que parece honesto estar, na verdade, errado, e isso fica completamente invisível no valor-p reportado, porque esse valor-p foi calculado como se você tivesse olhado só uma vez.
Este guia aprofunda um erro específico já citado de leve no nosso guia de significância estatística em testes A/B: o que o peeking realmente faz com a sua taxa de erro, a matemática por trás disso, um exemplo trabalhado e o punhado de regras de parada que resistem ao escrutínio.
O que “peeking” realmente significa
Peeking é checar o painel do seu teste antes de ele atingir a amostra ou duração planejada, e deixar o que você vê influenciar a decisão de continuar ou parar. Olhar, sozinho, é inofensivo. O estrago vem de combinar olhar com uma regra de parada implícita que quase ninguém verbaliza: “deixo o teste rodando até o resultado parecer significativo, aí eu paro”.
Essa regra parece razoável. É exatamente o que quebra a garantia por trás do seu valor-p. Um limiar de valor-p de 0,05 promete uma taxa de falso positivo de 5% sob uma condição bem específica: que você decidiu o tamanho de amostra com antecedência e olhou o resultado exatamente uma vez, no fim. No momento em que você olha mais de uma vez e deixa um resultado “significativo” precoce encerrar o teste, você não está mais rodando o teste que produz aquela garantia de 5%, está rodando outro procedimento, com taxa de erro bem maior, que só por acaso imprime um número parecido.
Por que olhadas repetidas inflam o falso positivo
Imagine um teste genuinamente empatado, em que A e B têm a mesma taxa de conversão real. Por causa do ruído aleatório de quem converte e quem não converte, a diferença observada entre A e B oscila em torno de zero conforme mais visitantes chegam, às vezes pendendo para “B está ganhando”, às vezes para “A está ganhando”. Num único tamanho de amostra decidido com antecedência, existe uma chance fixa de 5% de essa oscilação aleatória ter cruzado a linha de significância bem naquele momento. É essa a promessa que um valor-p faz.
Mas se você checa a cada 100 visitantes e para assim que a linha é cruzada, você não está mais perguntando “cruzou a linha nesse momento específico?”. Está perguntando “cruzou a linha em qualquer um desses vários momentos?”. E uma linha que oscila e é checada dezenas de vezes tem muito mais chances de tocar de leve num limiar do que uma checada uma única vez, mesmo que o processo por trás (dois grupos genuinamente iguais) nunca tenha mudado.
O quanto isso realmente infla a taxa de erro?
Isso não é um alerta vago, já foi quantificado. Na sua análise de 2010, amplamente citada, o estatístico Evan Miller mostrou que monitorar continuamente um teste e parar assim que ele cruza um limiar nominal de 5% pode levar a taxa real de falso positivo a cerca de 26%, mais de cinco vezes o número mostrado no painel (Miller, 2010). A relação entre número de olhadas e taxa de erro inflada tem aproximadamente este formato:
A versão intuitiva que Miller usa vale a pena guardar sozinha: se você espia um teste em andamento dez vezes e para no primeiro resultado significativo, o que você pensa ser um nível de significância de 1% é, na prática, mais próximo de 5%. O número nominal na sua tela e o número que de fato descreve o seu risco de vitória falsa podem estar cinco vezes distantes um do outro.
Um exemplo trabalhado: como é uma olhada “de sorte”
Digamos que você está rodando um teste de redesenho do checkout com uma taxa de conversão real e imutável de 4% dos dois lados, ou seja, qualquer diferença observada é ruído puro. Você resolve checar o painel todo dia em vez de esperar a janela de duas semanas planejada. No dia 6, você já coletou 900 visitantes por variação: 29 conversões em A (3,2%) e 46 em B (5,1%). Cole esses números na calculadora abaixo.
Teste z bilateral de duas proporções. "Sem significância" quase sempre quer dizer que falta amostra, não que as versões são iguais.
Num conjunto de dados assim, o observador que espia todo dia vê um valor-p perto ou abaixo de 0,05 e para, satisfeito. Mas como A e B foram construídos idênticos nesse cenário, essa “vitória” não é real, é exatamente o tipo de oscilação aleatória que a curva de inflação acima prevê que vai aparecer numa taxa bem maior que 5% quando você checa todo dia e para no primeiro resultado favorável. Duas semanas depois, com a amostra completa planejada, essa diferença provavelmente teria voltado para perto de zero, mas o observador que espiou nunca chegou lá, já tinha lançado uma mudança que não faz nada.
Por que isso não é exclusivo da estatística frequentista
É tentador concluir que a solução é simplesmente “trocar para estatística bayesiana”, já que as ferramentas bayesianas deixam você olhar uma probabilidade posterior a qualquer momento sem que isso seja matematicamente inválido. Essa parte é verdade e é uma vantagem real. O que não se segue é que o teste bayesiano seja imune ao efeito prático do peeking. Um posterior bayesiano calculado com N=100 é sempre um resumo corretamente calibrado da evidência até ali, isso é genuíno. Mas uma regra de decisão do tipo “fico checando P(B vence A) e paro na primeira vez que cruzar 95%” ainda é um procedimento de parada opcional, e parada opcional infla a sua taxa de erro real independentemente de qual estrutura calculou o número em que você parou. Nosso guia de teste A/B bayesiano cobre exatamente essa nuance, incluindo as regras de parada que resistem num fluxo bayesiano.
Regras de parada que realmente resistem
| Abordagem | Como funciona | Contrapartida |
|---|---|---|
| Horizonte fixo | Calcule amostra e duração antes de começar, a partir da taxa base, MDE, significância e poder; só decida naquele ponto | Mais simples, sem matemática extra, exige paciência e nenhuma olhada precoce na decisão |
| Teste sequencial / inferência sempre válida | Métodos estatísticos feitos para “gastar” o seu orçamento de erro ao longo de várias olhadas, então dá pra checar com frequência e parar cedo sem inflar o falso positivo | Exige ferramenta feita para isso; não é o mesmo que checar um valor-p simples repetidas vezes |
| Limiar bayesiano + N mínimo | Comprometa-se antes com um limiar de P(B vence A) (ex.: 95%) combinado com uma amostra mínima, em vez de só o limiar | Reduz mas não elimina o risco de parada opcional se o N mínimo for baixo demais |
| Desenho sequencial em grupo | Planeje um número pequeno e fixo de olhadas intermediárias com antecedência, cada uma com uma barra de significância mais rígida (alpha-spending), para o orçamento total de erro ficar em 5% | Comum em ensaios clínicos; exige o calendário fixado antes do teste começar, não improvisado |
Dessas, o horizonte fixo é a que qualquer equipe adota hoje sem software novo: decida amostra e duração antes do lançamento, usando a mesma calculadora de tamanho de amostra que alimenta o nosso guia de significância estatística, e trate o painel intermediário como informativo, nunca como gatilho de decisão.
Como o peeking se infiltra até em equipes disciplinadas
Quase ninguém sai por aí espiando de propósito de forma desonesta. Costuma chegar disfarçado de comportamento razoável. Um stakeholder pergunta “como está o teste do novo checkout?” no terceiro dia, e alguém abre o painel para responder, o que é inofensivo por si só, até o número parecer bom e a conversa virar “não é melhor já lançar?”. Um painel que atualiza sozinho e mostra um valor-p ao vivo já é um convite: a ferramenta não distingue entre “estou curioso” e “estou decidindo”, mas quem está olhando muitas vezes confunde os dois sob pressão de tempo.
Dois padrões organizacionais pioram isso. O primeiro é premiar velocidade em vez de rigor: uma equipe sob pressão para mostrar vitórias semanais tem todo incentivo para encerrar um teste cedo assim que o número cruza a linha, porque um resultado “significativo” hoje fica melhor num relatório do que “ainda rodando”. O segundo é não registrar a regra de parada em lugar nenhum antes do teste começar. Se ninguém consegue apontar um documento que diga “decidimos com antecedência rodar isso por duas semanas e 8.400 visitantes”, não existe trava impedindo a equipe de renegociar em silêncio a linha de chegada assim que os dados parecerem favoráveis, nem como saber, depois, se isso aconteceu.
A correção não é mais força de vontade, é deixar visível e difícil de renegociar o ponto pré-combinado: escreva a amostra planejada e a data de encerramento no briefing do experimento antes do lançamento, e trate qualquer “já deu significância!” precoce como anotação para depois, não como decisão.
O que dá para fazer com segurança antes do teste acabar
Não olhar nada até o fim não é realista, nem necessário. O que importa é separar monitorar de decidir:
- Acompanhe métricas de guarda livremente. Se os erros de checkout dispararem ou o tempo de carregamento desabar, isso é um problema de engenharia ou operação, pare o teste por esse motivo, não porque a métrica de conversão parece boa ou ruim.
- Fique de olho no SRM (divisão desigual de tráfego). Se a sua divisão pretendida de 50/50 está chegando em 60/40 sem explicação, algo quebrou na randomização e nenhum resultado daquele teste será confiável, independente do momento.
- Nunca deixe a significância aparente da métrica primária mudar a sua data de parada. Essa é a única regra que, quebrada, recria inteiro o problema deste guia.
- Se você realmente precisa olhar com frequência e agir sobre isso, use um método sequencial feito para isso, não um valor-p simples checado repetidas vezes.
Faça isso automático na Donnu
Peeking é um problema de disciplina disfarçado de problema estatístico: a correção não custa nada além de paciência, e ainda assim é o erro que invalida mais testes A/B em silêncio do que quase qualquer outro. A Donnu calcula a sua amostra e duração com antecedência e mantém a decisão travada nesse ponto, então o painel continua honesto mesmo que você o cheque a cada hora por curiosidade.
Comece um teste grátis de 14 dias e rode o seu próximo teste em cima de números em que você pode confiar. Para o quadro estatístico completo, veja o nosso guia de significância estatística em testes A/B, e para o lado bayesiano dessa mesma pergunta, veja o nosso guia de teste A/B bayesiano (em inglês).
Referências
- Miller, E. How Not To Run an A/B Test. 2010. evanmiller.org.
- Johari, R., Pekelis, L. & Walsh, D.J. Always Valid Inference: Bringing Sequential Analysis to A/B Testing. arXiv:1512.04922. arxiv.org.
- Kohavi, R., Tang, D. & Xu, Y. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020. Material de apoio em experimentguide.com.
- Georgiev, G. Statistical Methods in Online A/B Testing. analytics-toolkit.com.
Perguntas frequentes
- O que é o problema do peeking em teste A/B?
- É o hábito de olhar o resultado de um teste em andamento repetidas vezes e parar assim que ele parece significativo. Cada nova olhada é uma nova chance de o acaso, sozinho, cruzar o limiar de significância, então um teste desenhado para 5% de falso positivo pode terminar com uma taxa real de erro várias vezes maior.
- O quanto o peeking realmente infla o falso positivo?
- Depende de quantas vezes você olha. Monitorar continuamente um teste e parar na primeira vitória aparente pode levar um nível nominal de 5% a cerca de 26% de falso positivo real, segundo a análise de Evan Miller de 2010, amplamente citada. Mesmo umas cinco olhadas programadas já empurram a taxa real para a faixa de 12% a 15%, um resultado documentado na literatura clássica de testes de significância repetida (Armitage, McPherson & Rowe, 1969).
- O teste bayesiano é imune ao problema do peeking?
- Não, não totalmente. Um posterior bayesiano é um resumo válido da evidência em qualquer tamanho de amostra, o que é uma vantagem real. Mas se a sua regra de parada é "fico checando P(B vence A) e paro na primeira vez que parecer bom", esse comportamento de parada opcional ainda infla a sua taxa de erro prática, em qualquer uma das escolas. Nosso guia de teste bayesiano cobre essa nuance por completo.
- Posso olhar o resultado do meu teste antes dele terminar?
- Sim, olhar não é o problema, parar com base no que você vê antes de atingir a amostra ou a duração planejada é. Você pode monitorar métricas de guarda (um checkout quebrando, por exemplo) sem tocar na sua regra de decisão, desde que só declare vencedor ou perdedor no ponto pré-definido, ou use um método de teste sequencial feito para permitir parada antecipada com validade.
- Qual é o jeito mais simples de resolver o problema do peeking?
- Decida o tamanho de amostra e a duração do teste antes de começar, com base na sua taxa de conversão atual e no efeito mínimo que importa detectar, e só tome a decisão de manter ou descartar quando chegar nesse número. Não custa nada e elimina o problema por completo, ao preço de um pouco de paciência.