Tukey HSD post-hoc
Descubra quais médias de grupo diferem depois de uma ANOVA: com grupos de médias 2, 6 e 4, o teste de Tukey aponta os três pares como diferentes no nível de 0,05. Você vê as médias, o valor crítico e uma tabela com cada par. 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
- Rótulos
- A, B, C
- Alfa
- 0,05
- K
- 3
- N total
- 12
- GL do erro
- 9
- QME
- 0,6666666667
Depois que uma ANOVA unifatorial rejeita a hipótese nula global de que todas as médias de grupo são iguais, os pesquisadores ainda precisam saber quais pares diferem. A diferença honestamente significativa (HSD) de Tukey e sua forma de Tukey–Kramer para tamanhos de amostra desiguais respondem a essa pergunta com uma única taxa de erro por família: cada diferença de médias pareada é comparada com um valor crítico construído a partir do quadrado médio residual, dos tamanhos dos grupos e do quantil da amplitude estudentizada para o número de grupos e os graus de liberdade do erro. Esta capacidade aceita dois ou mais arrays numéricos de grupos, rótulos e alfa opcionais, e então retorna as médias dos grupos, o MSE residual, o q crítico, o HSD comum quando os tamanhos coincidem e uma tabela pareada completa com sinalizadores de significância.
O que o Tukey HSD significa após uma ANOVA significativa
A análise de variância testa se pelo menos uma média entre k grupos difere, mas não identifica os pares. Executar testes t comuns de duas amostras em cada par infla a chance de um falso positivo à medida que o número de comparações cresce.
O procedimento de Tukey controla a taxa de erro por família para todos os contrastes pareados simultaneamente usando a distribuição da amplitude estudentizada: a distância crítica depende de quão grande a maior lacuna entre k médias pareceria sob a hipótese nula quando escalada pelo erro padrão residual. Quando cada grupo tem o mesmo tamanho de amostra n, essa distância costuma ser escrita como uma única diferença honestamente significativa: HSD é igual a q-alfa de k e dos graus de liberdade residuais vezes a raiz quadrada de MSE sobre n.
Qualquer diferença absoluta de médias maior que HSD é declarada significativa no alfa escolhido. Quando os tamanhos de amostra diferem, o ajuste de Tukey–Kramer substitui o n comum por um erro padrão específico do par usando um sobre n-i mais um sobre n-j, de modo que cada comparação tenha sua própria diferença crítica ainda compartilhando o mesmo valor q crítico. Os livros-texto introduzem o HSD logo após a ANOVA unifatorial em psicologia, biologia, agricultura e experimentos de produto A/B.
O cálculo manual falha quando o MSE é copiado errado da tabela ANOVA, quando o df-erro está errado por uma unidade, quando os rótulos são trocados ou quando o n desigual é ignorado. Automatizar o caminho das observações brutas até o MSE e os sinalizadores pareados elimina esses deslizes ao mesmo tempo que expõe as quantidades intermediárias que a resolução escrita exige.
Onde usá-la e quanto custa
Colocações típicas incluem confirmar quais médias de dieta, fertilizante ou variante de UI se separam após uma ANOVA unifatorial significativa, gerar gabaritos que listam cada par ao lado de sua diferença crítica, ensinar a diferença entre um teste F global e decisões HSD pareadas, e alimentar sinalizadores de pares significativos em relatórios que já armazenam os vetores de grupo brutos. O caminho do navegador roda localmente e não exige conta.
Mantenha ao menos dois grupos com replicação intragrupo suficiente para df residual de pelo menos um, prefira o mse e as comparações calculados no servidor a rederivar caminhos de ponto flutuante em planilhas improvisadas, e trate o resultado como uma etapa post-hoc após a ANOVA, e não como substituto da verificação de pressupostos como independência e variância residual aproximadamente comparável.
Como o algoritmo é matemática pura e determinística, você pode testar pipelines contra arrays de grupos fixos com resultados de referência, sem limiares instáveis de Monte Carlo nem ruído dependente do tempo.
Casos de uso
Gabaritos de tarefas e provas
Depois que os alunos executam uma ANOVA unifatorial, verifique quais pares de grupos ultrapassam o Tukey HSD usando uma tabela pareada canônica e o valor de HSD.
Experimentos de laboratório e campo
Passe arrays de réplicas de tratamento de ensaios de biologia ou agricultura e armazene os sinalizadores de pares significativos ao lado do MSE residual.
Perguntas frequentes
Por que não fazer um teste t para cada par de grupos?
Porque cada teste a mais traz outra chance de falso positivo, e com muitos pares os erros se acumulam. O HSD de Tukey compara todos os pares de uma vez, mantendo uma única taxa de erro global.
Posso usar Tukey quando os grupos têm tamanhos diferentes?
Sim. Com tamanhos desiguais a calculadora passa para a versão de Tukey-Kramer, que dá a cada par sua própria diferença crítica conforme o tamanho dos dois grupos, mantendo o mesmo valor q crítico.
Como ler a tabela de comparações entre pares?
Cada linha compara dois grupos. Se a diferença absoluta entre as médias superar a diferença crítica, o par é marcado como significativo. Com médias 2, 6 e 4, as diferenças de 4, 2 e 2 passam todas desse limite.
Qual nível de significância o teste usa?
Usa 0,05, a menos que você escolha outro, como 0,01 ou 0,10. Esse nível vale para o conjunto inteiro de comparações, e não para cada par separadamente.
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/tukey-hsd \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"groups":[[1,2,3,2],[5,6,7,6],[3,4,5,4]]}'const res = await fetch("https://api.kit.forhosting.com/stat/tukey-hsd", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"groups": [
[
1,
2,
3,
2
],
[
5,
6,
7,
6
],
[
3,
4,
5,
4
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/tukey-hsd",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"groups": [
[
1,
2,
3,
2
],
[
5,
6,
7,
6
],
[
3,
4,
5,
4
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/tukey-hsd", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"groups":[[1,2,3,2],[5,6,7,6],[3,4,5,4]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"groups":[[1,2,3,2],[5,6,7,6],[3,4,5,4]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/tukey-hsd", 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
{
"groups": [
[
1,
2,
3,
2
],
[
5,
6,
7,
6
],
[
3,
4,
5,
4
]
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.tukey_hsd",
"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
Como esta capacidade calcula a resposta
Ele calcula a média de cada grupo e a soma de quadrados intragrupo, agrupa o SSE residual em MSE igual a SSE sobre N menos k, aproxima o valor crítico q da amplitude estudentizada para alfa, k e df-erro, e então forma cada par não ordenado. Para tamanhos de amostra iguais também reporta o valor único de HSD; para tamanhos desiguais usa as diferenças críticas específicas do par de Tukey–Kramer. Cada comparação lista ambas as médias, a diferença com sinal e absoluta, os tamanhos de amostra, o erro padrão na escala da amplitude, a diferença crítica, a estatística q observada quando definida e um sinalizador booleano de significância. A resposta também retorna o nome do método, k, n-total, df-erro, mse, sse, q-crit, equal-sample-sizes, um resumo dos grupos com médias e variâncias amostrais e uma contagem de pares significativos. Você envia um corpo JSON com um campo groups obrigatório: um array de pelo menos dois arrays numéricos, ou um objeto que mapeia rótulos de texto para arrays numéricos. O campo opcional labels nomeia os grupos quando você passa um array simples de arrays; o campo opcional alpha define o nível por família e assume o padrão de zero vírgula zero cinco. O motor extrai números finitos de números JSON ou de strings numéricas simples, rejeita menos de dois grupos, grupos vazios, células não numéricas, alfa fora do intervalo unitário aberto e desenhos com graus de liberdade residuais abaixo de um, tudo com invalid_input e sem cobrança. Não há aleatoriedade, relógio nem rede; entradas idênticas sempre produzem JSON idêntico. O trabalho é validação mais O do total de observações mais O de k ao quadrado de aritmética pareada, o que fica dentro do modelo de custo analítico desta capacidade parse de tier A, com preço de US$ 0,002 por requisição bem-sucedida.
Onde usá-la e quanto custa
Use a ferramenta gratuita do navegador para conferir uma tarefa de casa ou fazer um post-hoc rápido em um pequeno experimento, ou chame a API quando um notebook, um diário de notas, um pipeline de laboratório ou um job de análise de produto precisar resolver muitas comparações multigrupo do mesmo jeito toda vez. O uso da API consome saldo pré-pago do KIT ao preço-base publicado de US$ 0,002 por requisição bem-sucedida; uma validação que falha não consome saldo.
Casos de integração
Análise de produto A/B/n
Processe em lote amostras de métricas de múltiplas variantes pela API e reporte quais variantes diferem sob um alfa por família compartilhado.
Perguntas técnicas
Como executo uma calculadora Tukey HSD com esta API?
Faça POST de JSON com groups como um array de arrays numéricos (ou um mapa de rótulos), opcionalmente alpha e labels. A resposta inclui mse, q_crit, hsd quando os tamanhos coincidem, e uma tabela comparisons com sinalizadores de significância.
E se meus grupos tiverem tamanhos de amostra diferentes?
O motor usa a forma de Tukey–Kramer: cada par recebe sua própria diferença crítica a partir do MSE e dos dois tamanhos de amostra, ainda compartilhando um único q_crit da amplitude estudentizada para k e df_error.
Que erro recebo com menos de dois grupos?
A validação falha com invalid_input informando que o Tukey HSD exige ao menos dois grupos. Essa falha não é cobrada.
A calculadora Tukey HSD é gratuita?
O widget do navegador é gratuito e roda localmente. As chamadas de API usam saldo pré-pago do KIT ao preço-base publicado de US$ 0,002; entradas inválidas não são cobradas.
O resultado é sempre o mesmo para as mesmas entradas?
Sim. O algoritmo é aritmética analítica pura com uma aproximação de valor crítico fixa e sem aleatoriedade ou marcas de tempo, então grupos e alfa idênticos produzem JSON idêntico.