Calculadora de teste A/B
Saiba se a variante superou de fato o controle: 130 conversões em 1000 visitantes contra 100 em 1000 dão um escore z de 2,10274060562 e um valor-p bicaudal de 0,0354883261439. Digite quatro números e leia o resultado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Visitantes do controle
- 1.000
- Conversões do controle
- 100
- Visitantes da variante
- 1.000
- Conversões da variante
- 130
- Taxa do controle
- 0,1
- Taxa da variante
- 0,13
- Diferença de taxas
- 0,03
- Taxa combinada
- 0,115
Um teste A/B compara duas taxas de conversão e pergunta se a diferença observada é grande o bastante para rejeitar a ideia de que os dois grupos compartilham a mesma probabilidade subjacente. Você informa quatro contagens não negativas: visitantes e conversões do braço de controle, e visitantes e conversões do braço variante. Esta calculadora executa o teste z clássico de duas proporções: forma cada taxa amostral, agrupa os sucessos sob a nula de taxas iguais, constrói o erro padrão da diferença e devolve o escore z junto com um valor-p bicaudal da curva normal padrão.
O que o teste z de duas proporções diz sobre um experimento A/B
Uma conversão é um desfecho binário: o visitante concluiu a meta ou não concluiu. A taxa de conversão do controle é conversões de controle divididas pelos visitantes de controle. A taxa da variante é conversões da variante divididas pelos visitantes da variante.
Sob a hipótese nula de que os dois braços compartilham uma única probabilidade de sucesso desconhecida, a estimativa mais eficiente dessa probabilidade compartilhada é a taxa agrupada: todas as conversões dos dois braços divididas por todos os visitantes dos dois braços. O erro padrão da diferença de taxas segue então a fórmula de livro para duas proporções: a raiz quadrada da taxa agrupada vezes um menos essa taxa vezes a soma dos recíprocos dos tamanhos amostrais.
O escore z é a diferença observada de taxas, variante menos controle, dividida por esse erro padrão. Um z positivo significa que a variante converteu melhor que o controle; um z negativo, que converteu pior. O valor-p bicaudal é a probabilidade, sob uma normal padrão, de um z pelo menos tão extremo em qualquer direção quanto o observado.
Um valor-p pequeno é evidência contra taxas iguais; um grande significa que a diferença é ordinária dados os tamanhos amostrais.
Onde uma calculadora de teste A/B justifica o seu lugar
Equipes de crescimento e mesas de analytics de produto precisam de uma calculadora de teste A/B determinística que nunca devolva NaN em silêncio quando alguém cola uma linha com zero visitantes de uma célula vazia de experimento. Cadernos de marketing de crescimento usam o teste z de duas proporções para resumir um experimento de landing page ou de checkout antes de passar a um pacote estatístico completo para CUPED, testes sequenciais ou ajuste por regressão.
Plataformas de ensino e geradores de prova precisam de um oráculo que marque braços com zero visitantes como erro em vez de cargas de sucesso vazias que um avaliador defeituoso poderia tratar como corretas. Como a implementação é parse puro de nível A, cada chamada bem-sucedida é barata, rápida e reproduzível em edge workers e navegadores.
Casos de uso
Experimentos de landing page e checkout
Transforme contagens de visitantes e conversões de controle e variante em um escore z e um valor-p bicaudal para uma leitura clássica de significância A/B.
Painéis e checagens de redação
Calcule a linguagem «a variante venceu» a partir de contagens publicadas do experimento, sem erros de aritmética manual nem NaN de células de tráfego vazias.
Perguntas frequentes
O que acontece se um grupo tem zero visitantes?
Uma taxa de conversão é conversões divididas por visitantes, então um grupo com zero visitantes torna a taxa (e o teste z) indefinidos. Essas falhas não são cobradas.
O valor-p é unicaudal ou bicaudal?
Bicaudal. O valor-p é 2(1 − Φ(|z|)), a probabilidade de uma diferença pelo menos tão grande quanto a observada em qualquer direção sob taxas iguais.
Um z-score positivo significa que a variante venceu?
Um z-score positivo significa que a taxa de conversão da variante foi maior que a do controle. Se essa diferença é estatisticamente notável é o que o valor-p responde; esta calculadora não declara um vencedor com um corte alfa automático.
As conversões podem passar do número de visitantes?
Não. Um grupo não pode ter mais sucessos do que pessoas, então as conversões precisam ficar entre zero e o total de visitantes do grupo; qualquer outro valor é recusado antes do cálculo.
A calculadora diz quantos visitantes eu preciso?
Não. Ela aplica o teste clássico aos números que você já tem; não calcula o tamanho de amostra necessário nem corrige o efeito de olhar os resultados várias vezes com o teste ainda rodando.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/stat/ab-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"control_visitors":1000,"control_conversions":100,"variant_visitors":1000,"variant_conversions":130}'const res = await fetch("https://api.kit.forhosting.com/stat/ab-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"control_visitors": 1000,
"control_conversions": 100,
"variant_visitors": 1000,
"variant_conversions": 130
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/ab-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"control_visitors": 1000,
"control_conversions": 100,
"variant_visitors": 1000,
"variant_conversions": 130
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/ab-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"control_visitors":1000,"control_conversions":100,"variant_visitors":1000,"variant_conversions":130}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"control_visitors":1000,"control_conversions":100,"variant_visitors":1000,"variant_conversions":130}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/ab-test", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"control_visitors": 1000,
"control_conversions": 100,
"variant_visitors": 1000,
"variant_conversions": 130
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.ab_test",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Quando qualquer braço tem zero visitantes a taxa de conversão é indefinida, então a tarefa falha com invalid_input em vez de dividir por zero.
O que o teste z de duas proporções diz sobre um experimento A/B
Este endpoint não inventa valores-p sequenciais sempre válidos, não ajusta por espiar os dados no meio do caminho e não calcula o tamanho amostral necessário: é o teste clássico agrupado de duas proporções binomiais independentes, escrito para que um gerente de produto, um estudante e um script de automação recebam os mesmos números a partir das mesmas quatro contagens.
Contrato de entrada, forma da resposta e comportamento de erro
As contagens devem ser maiores ou iguais a zero. As conversões não podem superar os totais de visitantes correspondentes, porque não se observam mais sucessos do que pessoas. A validação falha não consome saldo pré-pago. Envie por POST um corpo JSON com quatro números finitos obrigatórios: control_visitors e control_conversions para o braço de referência, variant_visitors e variant_conversions para o desafiante. Cada campo pode chegar como número JSON ou como string numérica; aliases como n1, x1, n2 e x2 são aceitos se você já fala a notação de livro, mas é preciso enviar só um nome por quantidade. Valores não finitos, campos ausentes e strings vazias falham com invalid_input nomeando o campo. Ambos os totais de visitantes devem ser estritamente maiores que zero: um grupo com zero visitantes torna a taxa de conversão indefinida, e a mensagem de erro afirma isso de forma explícita para que avaliadores e clientes API distingam um braço vazio de outra entrada inválida. Em caso de sucesso o corpo ecoa as quatro contagens, devolve control_rate e variant_rate, o rate_diff com sinal (variante menos controle), o pooled_rate usado sob a nula, o standard_error da diferença, o z_score, um p_value two_sided e uma string curta de fórmula. Quando todos os visitantes converteram ou nenhum converteu nos dois braços, o erro padrão é zero e as duas taxas são iguais; a calculadora então devolve z_score zero e p_value um em vez de um NaN 0/0. Combine este endpoint com o seu próprio software se precisar de intervalos de confiança, poder ou testes sequenciais; esta capacidade é de propósito um teste z analítico puro de duas proporções a partir de quatro contagens.
Onde uma calculadora de teste A/B justifica o seu lugar
Sites de conteúdo que competem por calculadora de teste ab ganham uma ferramenta ao vivo com título e palavras-chave SEO claros, enquanto scripts de automação chamam o mesmo tipo pela API do KIT ao preço-base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.
Casos de integração
Lição de casa e ensino de estatística
Permita que os alunos enviem quatro contagens e verifiquem o teste z agrupado de duas proporções contra métodos de livro, com invalid_input quando um grupo tem zero visitantes.
Perguntas técnicas
Como executar um teste A/B a partir de contagens de visitantes e conversões?
Envie control_visitors, control_conversions, variant_visitors e variant_conversions. A API devolve cada taxa de conversão, a taxa agrupada, o erro padrão, o z-score (variante menos controle) e um valor-p bicaudal.
Quanto custa a calculadora de teste A/B?
A ferramenta do navegador é gratuita. Solicitações API usam saldo pré-pago do KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.