Significância estatística na prática: o que diz, o que não diz, e os erros que custam caro
TL;DR
Significância estatística é provavelmente o conceito mais usado e mais mal interpretado em análise de dados. P-valor não diz que sua hipótese é verdadeira, não rejeitar a hipótese nula não prova que nada mudou, e um resultado significante com efeito minúsculo pode ser irrelevante na prática. Neste post, explico o que significância estatística realmente diz, por que o limite de 0.05 existe (e por que é arbitrário), a diferença entre significância estatística e prática, e os erros mais comuns que fazem times tomarem decisões erradas com dados "certos".
O resultado deu significante. E aí?
Você roda um teste A/B. O p-valor dá 0.03. O dashboard fica verde. O time comemora. Feature vai pra produção.
Duas semanas depois, a métrica volta ao patamar original. Ninguém entende o que aconteceu.
Vi essa história se repetir mais vezes do que gostaria. E quase sempre o problema não é o teste em si. É como o resultado foi interpretado. Significância estatística é uma ferramenta poderosa, mas só funciona se você entender o que ela diz e, principalmente, o que ela não diz.
O que significância estatística realmente diz
A definição formal soa simples: um resultado é estatisticamente significante quando é improvável que tenha ocorrido por acaso, assumindo que não existe efeito real.
Na prática, isso significa o seguinte: você está comparando dois grupos (A e B). O grupo B teve um resultado 3% melhor que o A. A pergunta é: essa diferença é real ou é apenas ruído dos dados?
Significância estatística responde essa pergunta com uma probabilidade. Se o p-valor é 0.03, isso quer dizer: "se não existisse NENHUMA diferença real entre A e B, a chance de eu observar uma diferença tão grande quanto essa (ou maior) seria de 3%."
É sutil, mas importante: a pergunta que o teste responde é sobre os DADOS, não sobre a HIPÓTESE. Ele não diz "tem 97% de chance de B ser melhor que A." Diz "se A e B fossem iguais, seria muito estranho ver essa diferença."
A analogia mais útil que já ouvi: é como um julgamento. O veredito "não culpado" não significa "inocente". Significa que não houve evidência suficiente para condenar. Da mesma forma, um p-valor alto não prova que não há efeito. Só que você não teve evidência suficiente para detectá-lo.
P-valor: o número mais mal interpretado em dados
O p-valor é a probabilidade de observar resultados tão extremos quanto os que você mediu, assumindo que a hipótese nula é verdadeira.
Três coisas que ele NÃO é:
1. Não é a probabilidade de que sua hipótese esteja certa ou errada. P-valor = 0.03 não significa "3% de chance de estar errado." Significa que, se nada tivesse mudado, ver esse resultado seria raro.
2. Não é uma medida do tamanho do efeito. Um p-valor de 0.001 não significa efeito grande. Pode ser um efeito minúsculo com amostra enorme.
3. Não é a probabilidade de que o resultado tenha ocorrido por acaso. Essa frase aparece em metade dos reports que eu já li. E está errada. O p-valor assume que o acaso é a única explicação e te diz quão improvável seriam seus dados nesse cenário.
O limite de 0.05 (5%) que todo mundo usa como padrão foi proposto por Ronald Fisher nos anos 1920 como um ponto de referência "conveniente". Não existe nada mágico sobre 5%. É uma convenção. Dependendo do contexto, 0.01 pode ser mais apropriado (decisões com alto custo de erro), e em outros cenários 0.10 pode ser aceitável.
O que importa é definir o nível ANTES de olhar os dados. Se você roda o teste, vê que o p-valor é 0.06, e decide que 0.10 é "aceitável nesse caso", você está ajustando a régua depois de saber o resultado. Isso não é análise. É confirmação.
Significância estatística ≠ significância prática
Esse é provavelmente o erro mais caro que vi times cometerem.
Com uma amostra grande o suficiente, qualquer diferença, por menor que seja, pode se tornar estatisticamente significante. Se você tem 10 milhões de usuários em cada grupo, uma melhoria de 0.01% na taxa de conversão pode dar p-valor < 0.05.
A pergunta que o teste não responde é: essa melhoria importa?
Implementar uma feature que melhora conversão em 0.01% pode não valer o custo de engenharia, manutenção e complexidade adicionada ao produto. Significância estatística te diz que o efeito provavelmente existe. Significância prática te diz se vale agir com base nele.
Intervalos de confiança ajudam mais que p-valores nessa decisão. Em vez de "deu significante ou não", um intervalo te diz "o efeito real provavelmente está entre X% e Y%." Se o limite inferior do intervalo já representa um impacto relevante pro negócio, vale agir. Se o intervalo inteiro está numa faixa que não move a agulha, significância estatística não muda nada.
Os erros que fazem times tomarem decisões erradas
P-hacking: ajustando até dar "significante"
Rodar variações do teste (mudar a métrica, cortar a amostra de formas diferentes, incluir ou excluir outliers) até encontrar uma combinação que dá p < 0.05. Cada ajuste é um novo teste, e cada novo teste aumenta a chance de encontrar um falso positivo. Se você testou 20 combinações, a chance de pelo menos uma dar "significante" por acaso é alta.
A solução: pré-registrar a hipótese e o plano de análise antes de rodar. Se você quer explorar os dados depois, tudo bem, mas os achados exploratórios precisam ser validados num teste separado.
Peeking: olhar antes da hora
Checar o resultado do teste a cada dia e parar assim que dá significante. O problema é que flutuações naturais dos dados podem produzir p-valores temporariamente baixos que se normalizam com mais dados. A prática de "parar quando deu" infla a taxa de falsos positivos de forma significativa.
A solução: definir o tamanho da amostra antes de começar (power analysis) e esperar. Se precisa olhar antes, usar métodos sequenciais que ajustam os limites de significância ao longo do tempo.
Multiple testing: comparações múltiplas sem correção
Se você testa 20 hipóteses ao mesmo tempo com α = 0.05, em média uma vai dar significante por puro acaso. É matemática: 1 - (0.95)^20 ≈ 64% de chance de pelo menos um falso positivo.
Métodos como Bonferroni (divide α pelo número de comparações) ou Benjamini-Hochberg (controla a taxa de falsos positivos entre as rejeições) existem pra isso. São simples de aplicar. Poucos times aplicam.
Ignorar o poder do teste
Power é a probabilidade de detectar um efeito que realmente existe. Se seu teste tem 50% de power, ele vai perder metade dos efeitos reais. A maioria dos testes A/B precisa de mais amostra do que as pessoas imaginam.
Rodar o teste por uma semana "pra ver se dá" quase nunca é suficiente. Power analysis deveria ser o primeiro passo, não o último. A pergunta "quanto tempo o teste precisa rodar?" deveria ter uma resposta baseada em cálculo, não em feeling.
O que verificar antes de confiar em um resultado
Antes de mandar uma feature pra produção com base em um teste A/B, cinco verificações:
1. A hipótese foi definida ANTES do teste? Se você decidiu o que medir depois de ver os dados, o resultado perde validade. Exploração post-hoc é legítima, mas precisa ser tratada como geradora de hipóteses, não como confirmação.
2. O tamanho da amostra foi suficiente? Power analysis deveria acontecer antes do teste começar. Se o teste rodou com amostra insuficiente, o resultado pode ser tanto falso positivo quanto falso negativo. Nenhum dos dois te ajuda.
3. Houve comparações múltiplas? Se você testou várias métricas, variantes ou segmentos, a chance de encontrar algo "significante" por acaso cresce proporcionalmente. Correção deve ser aplicada.
4. O efeito é grande o bastante pra importar? Significância estatística sem significância prática não sustenta decisão. O intervalo de confiança do efeito deve estar numa faixa que justifique ação.
5. Variáveis confundidoras foram controladas? Houve evento externo, sazonalidade, ou mudança de mix de usuários durante o teste? Randomização ajuda, mas não é imune a tudo.
Três situações para aplicar essa semana
Para o próximo teste A/B que você vai rodar: antes de começar, defina a hipótese, a métrica primária, o nível de significância e faça uma estimativa do tamanho de amostra necessário. Se alguém perguntar "quando vai dar resultado?", a resposta deveria ser baseada em power analysis, não em feeling.
Para o último resultado significante que seu time celebrou: volte e olhe o tamanho do efeito. Se o intervalo de confiança inclui valores que não moveriam decisão nenhuma, a celebração pode ter sido prematura. O efeito existe? Provavelmente. Ele importa? Depende.
Para uma feature que "não deu resultado" em teste: antes de descartar, verifique se o teste tinha power suficiente pra detectar o efeito que você esperava. "Não significante" pode significar "não tinha dados suficientes", não "não funciona."
📎 Referências: Fisher, R.A. (1925). Statistical Methods for Research Workers. Wasserstein, R.L. & Lazar, N.A. (2016). "The ASA Statement on p-Values." The American Statistician. Statsig Blog: "How to accurately test statistical significance" (2025).