Menu

Teste t no R: t.test() de Uma Amostra, Duas Amostras e Pareado

Rode testes t de uma amostra, de duas amostras e pareados com t.test() e - a parte que realmente importa - leia cada linha da saída: t, df, p-valor, intervalo de confiança.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

O Que um Teste t Pergunta

Todo teste t responde à mesma pergunta subjacente: essa diferença de médias é real, ou pode ser apenas ruído? Amostras oscilam - meça o tempo de reação de dez pessoas duas vezes e você terá duas médias diferentes mesmo que nada tenha mudado. O teste t compara a diferença que você observou com a oscilação que se esperaria do acaso, e reporta o quão surpreendentes seriam seus dados se a diferença verdadeira fosse zero.

Três variantes, uma função:

  • Uma amostra - a média deste grupo é diferente de um valor fixo?
  • Duas amostras - estes dois grupos independentes têm médias diferentes?
  • Pareado - os mesmos sujeitos mudaram entre duas medições?

Uma Amostra: t.test(x, mu = ...)

Suponha que um processo deveria ter média de 5,0 segundos, e você cronometra dez execuções:

A média amostral é 5,61 - mas 0,61 acima da meta é relevante com apenas dez execuções, ou está dentro da oscilação normal? É exatamente isso que a saída responde.

Lendo a Saída Linha a Linha

Esta é a seção que se paga - a saída de toda variante de t.test() tem o mesmo formato, então aprenda a lê-la uma vez. Rode o bloco acima e acompanhe cada linha:

  • t = 4.26 - a estatística do teste: a diferença observada (5,61 − 5 = 0,61) dividida pelo erro padrão da média (cerca de 0,143). Ela diz que a média amostral está pouco mais de quatro erros padrão distante do valor hipotetizado. |t| maior = mais surpreendente sob a nula.
  • df = 9 - graus de liberdade, aqui n − 1. df pequeno significa amostras pequenas, o que significa que o teste exige um t maior antes de se impressionar.
  • p-value ≈ 0.002 - se a média verdadeira realmente fosse 5, a probabilidade de sortear uma amostra cuja média fique ao menos tão longe de 5 (em qualquer direção) é cerca de 0,2%. Esse é o significado inteiro. Ele não é a probabilidade de a média verdadeira ser 5, e um p-valor pequeno não prova sua explicação favorita - ele apenas diz "difícil de culpar o acaso". No limiar usual de 0,05, você rejeita a nula aqui.
  • alternative hypothesis - uma reformulação do que "rejeitar" significaria. not equal to 5 confirma que este foi bilateral.
  • 95 percent confidence interval: 5.29 a 5.93 - a faixa de médias verdadeiras compatíveis com os dados. Repare que 5 está fora dela - esse é o mesmo veredito de p < 0,05, enunciado nas unidades dos próprios dados, e ele também te diz o tamanho plausível do efeito, coisa que o p-valor nunca faz.
  • sample estimates - a média observada, para que quem lê veja o fato bruto sendo testado.

Se você precisar das partes programaticamente: result <- t.test(times, mu = 5), depois result$p.value, result$conf.int, result$estimate.

Duas Amostras: Comparando Grupos Independentes

Para dois grupos independentes, a interface de fórmula se lê como a própria pergunta. ToothGrowth registra o crescimento dentário em porquinhos-da-índia que receberam vitamina C como suco de laranja (OJ) ou ácido ascórbico (VC):

Leia como "teste len dividido por supp". A saída agora mostra duas estimativas amostrais (média por grupo, cerca de 20,7 vs 17,0), e o intervalo de confiança é para a diferença entre elas. Aqui p ≈ 0,061 e o intervalo vai de cerca de −0,17 a 7,57: ele cruza o zero, então no nível de 0,05 você não pode descartar "nenhuma diferença" - embora um intervalo que se estende até +7,6 também te alerte contra declarar a diferença inexistente. "Não significativo" significa não provado, não provadamente ausente.

Welch É o Padrão - e Isso É Bom

Olhe o cabeçalho da saída: Welch Two Sample t-test, com df fracionário (cerca de 55,3). O teste t clássico de Student assume que os dois grupos têm variância igual; a versão de Welch abandona essa suposição e ajusta os graus de liberdade para compensar. Quando as variâncias de fato são iguais, Welch dá respostas essencialmente idênticas; quando não são, o teste de Student pode ficar mal calibrado enquanto Welch permanece honesto. Então o padrão do R é o seguro - raramente há motivo para sobrescrevê-lo.

O ritual pré-teste de "verifique variâncias iguais primeiro, depois escolha o teste" é conselho ultrapassado; apenas use Welch.

Pareado: Antes e Depois

Quando as duas medições vêm dos mesmos sujeitos, os grupos não são independentes - e tratá-los como independentes joga fora o poder do teste. Notas de oito pessoas antes e depois de um curso de treinamento:

paired = TRUE testa a média das diferenças dentro de cada pessoa (aqui com média de 2,75 pontos, p ≈ 0,001). Por que o pareamento muda tudo: as pessoas diferem entre si muito mais do que o treinamento mudou qualquer uma - a dispersão de sujeito para sujeito, de 65 a 80, engoliria uma melhora de 2-3 pontos em um teste não pareado. A diferenciação subtrai a linha de base de cada pessoa, então só resta a mudança. A regra: se os dados têm uma estrutura natural de "mesma unidade medida duas vezes", pareie. (E nunca use paired = TRUE quando os grupos são genuinamente independentes - o pareamento seria ficção.)

Testes Unilaterais: Manuseie com Cuidado

Por padrão o teste é bilateral: ele conta uma diferença em qualquer direção como evidência. Se - antes de ver os dados - sua hipótese só fazia sentido em uma direção, você pode dizer isso:

O p-valor cai pela metade em relação ao teste bilateral, o que é exatamente por que a tentação existe: mudar para unilateral depois de espiar os dados é p-hacking. Use alternative = "greater" ou "less" apenas com uma direção genuinamente pré-registrada; na dúvida, fique com o bilateral.

Pressupostos, e o Plano B

O teste t pressupõe que as observações são independentes e que as médias amostrais são aproximadamente normalmente distribuídas - o que vale quando os próprios dados são aproximadamente normais ou as amostras são razoavelmente grandes (o teorema central do limite faz o trabalho pesado; a partir de n ≈ 30+ por grupo, uma não normalidade moderada deixa de ser problema). Confira o formato com um histograma rápido ou um boxplot. A independência, porém, nenhum teste resgata - ela vem de como os dados foram coletados.

Para amostras pequenas com dados claramente assimétricos ou outliers extremos, o plano B não paramétrico padrão é uma linha: wilcox.test(len ~ supp, data = ToothGrowth), que compara distribuições via postos em vez de médias.

O Que Você Leva Daqui

  • t.test(x, mu = ) para uma amostra, t.test(y ~ group, data = ) para duas, paired = TRUE para antes/depois.
  • O p-valor é "o quão surpreendentes são estes dados se a diferença verdadeira fosse zero" - nada além disso; o intervalo de confiança te diz o tamanho plausível do efeito em unidades reais.
  • O padrão de duas amostras do R é o teste de Welch (df fracionário) - mantenha-o.
  • O pareamento remove o ruído entre sujeitos; use-o sempre que as mesmas unidades forem medidas duas vezes.
  • Alternativas unilaterais só com uma direção definida de antemão; wilcox.test() é o plano B baseado em postos.

A seguir: comparar as médias de três ou mais grupos de uma vez - ANOVA com aov().

Perguntas frequentes

Como rodar um teste t no R?

Com t.test(). Uma amostra contra um valor fixo: t.test(x, mu = 5). Dois grupos independentes: t.test(value ~ group, data = df). Medições antes/depois nos mesmos sujeitos: t.test(after, before, paired = TRUE).

Como interpretar o p-valor de um teste t no R?

É a probabilidade de observar uma diferença ao menos tão grande quanto a sua se a diferença verdadeira fosse zero. Um p-valor pequeno (convencionalmente abaixo de 0,05) significa que os dados são difíceis de explicar como ruído, então você rejeita a hipótese nula. Ele não é a probabilidade de a nula ser verdadeira, e não diz nada sobre o quão grande ou importante é a diferença - leia o intervalo de confiança para isso.

Por que o R reporta um teste t de Welch por padrão?

O t.test() de duas amostras do R usa por padrão a versão de Welch, que não pressupõe que os dois grupos tenham variâncias iguais - é por isso que os graus de liberdade saem fracionários. Welch se comporta quase identicamente ao teste clássico de Student quando as variâncias são iguais e é mais seguro quando não são, então o padrão é a escolha certa. Use var.equal = TRUE apenas se um trabalho acadêmico exigir explicitamente o teste clássico agrupado.

Quando usar um teste t pareado no R?

Quando os dois conjuntos de medições vêm em pares naturais - o mesmo sujeito medido antes e depois, o mesmo item avaliado por dois métodos. t.test(after, before, paired = TRUE) testa a média das diferenças dentro de cada par, o que remove a variação entre sujeitos e normalmente dá muito mais poder do que tratar os grupos como independentes.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR