Por meio de exemplos hipotéticos e partindo do pressuposto de que as condições para a validade dos testes estatísticos são atendidas, mostramos, neste post, como aplicar dois testes estatísticos simples: o teste z e o teste t.
Uma vez que a fase do aprendizado básico da estatística esteja plenamente superada, pode-se usar o R para tornar a aplicação de testes estatísticos mais direta e menos cansativa. Embora os cálculos sejam relativamente triviais, sem o R (ou um software capaz de automatizar a avaliação desses testes) seria necessário calcular a média amostral e/ou populacional; o desvio padrão amostral e/ou populacional; e o erro padrão da média amostral. Após esses cálculos, as estatísticas z ou t seriam computadas. Além de também computar o intervalo de confiança, o protocolo ainda consiste em olhar as tabulações das estatísticas z ou t para saber se as estatísticas computadas caem na região crítica. É um processo repetitivo e tedioso, mas não precisamos perder a cabeça por causa isso.
Neste post, mostramos, por meio de exemplos hipotéticos e partindo do pressuposto de que as condições para a validade dos testes estatísticos são atendidas, como podemos aplicar, utilizando o R, os testes z e t de uma forma mais direta do que o processo descrito acima.
Para aplicar o teste z devemos conhecer o desvio padrão populacional (\(\sigma\)). Dessa forma, não será possível aplicar o teste z sem o conhecimento prévio de \(\sigma\). Nos casos em que \(\sigma\) não é conhecido utilizamos o teste t.
Primeiramente, carregamos o pacote que iremos utilizar:
library(BSDA)
Como o R não possui nenhuma função nativa para aplicar o teste z, iremos utilizar o pacote BSDA, o qual possui a função z.test
, que aplica o teste.
Para nosso exemplo do teste z consideremos que estamos pesquisando um tratamento para emagrecer uma população hipotética cujo Índice de Massa Corporal (IMC) médio é 31 (\(\mu = 31\)) e o desvio padrão populacional é 5 (\(\sigma = 5\)). Salvemos essas informações para os objetos mu (média) e sigma (desvio-padrão):
mu <- 31 # média populacional
sigma <- 5 # desvio-padrão populacional
Agora suponhamos que 40 pessoas dessa população foram selecionadas aleatoriamente e após 6 meses de tratamento, obtivemos os seguintes dados:
amostra <- c(30.93, 31.55, 27.45, 25.73, 31.03, 18.91, 31.15, 26.62, 26.58,
23.4, 27.42, 37.09, 29.85, 30.6, 24.25, 32.08, 23.57, 26.34,
33.6, 29.49, 31.9, 35.28, 24.78, 20.23, 20.01, 37.03, 25.59,
31.1, 31.06, 27.19, 32.06, 38.98, 38.25, 36.16, 29.27, 30.46,
26.38, 19.69, 36.84, 28.13)
Agora vamos aplicar o teste z. Como estamos interessados em saber se o tratamento reduz o IMC, faremos um teste unicaudal à esquerda e para isso utilizaremos o argumento alternative = "less"
na função z.test
. Além disso, como iremos adotar o valor de 95% para o intervalo de confiança, que é o padrão utilizado pela função z.test
, não é necessário explicitar o argumento conf.level
na função. Vejamos os resultados do teste:
teste_z_unicaudal <- z.test(
x = amostra,
mu = mu,
sigma.x = sigma,
alternative = "less"
)
teste_z_unicaudal
One-sample z-Test
data: amostra
z = -2.2759, p-value = 0.01143
alternative hypothesis: true mean is less than 31
95 percent confidence interval:
NA 30.50112
sample estimates:
mean of x
29.20075
A partir desses resultados, rejeitaríamos a hipótese nula ao nível de significância de 5%. Para fazer essa leitura basta observar o p-valor (p-value). Como o p-valor, que é igual a 0,01143 (1,143%), é menor do que o nível de significância de 5%, diz-se que há significância estatística apenas ao nível de 5%.
Se o nosso tratamento pudesse ter efeito para qualquer dos lados, bastaria alterar o argumento alternative
da função z.test
para “two.sided”. O código para o teste bicaudal ficaria da seguinte forma:
teste_z_bicaudal <- z.test(
x = amostra,
mu = mu,
sigma.x = sigma,
alternative = "two.sided"
)
teste_z_bicaudal
One-sample z-Test
data: amostra
z = -2.2759, p-value = 0.02285
alternative hypothesis: true mean is not equal to 31
95 percent confidence interval:
27.65126 30.75024
sample estimates:
mean of x
29.20075
Portanto, caso o teste fosse bicaudal, também rejeitaríamos a hipótese nula ao nível de significância de 5%.
Diferentemente do teste z, o teste t possui uma função nativa no R chamada t.test
. Nesta seção veremos três exemplos simples de como aplicar o teste t.
Neste exemplo, vamos supor que queremos avaliar se um novo método de ensino em escolas de economia tem impacto sobre o salário médio inicial dos economistas. Parte-se do pressuposto que o salário médio é conhecido e é igual a R$ 5.000. Adicionalmente, obtém-se uma amostra aleatória de 30 de salários iniciais de economistas que foram formados segundo o novo método de ensino. Os dados de renda desses economistas em reais são os seguintes:
renda_inicial <- c(6585.8, 6880.8, 7326.1, 5411.9, 6745.4, 7318.1, 7068.9, 6978.3,
6114.8, 7564.6, 7754.5, 5276.7, 6733.6, 5981.9, 6565.7, 6347,
7653.2, 8157.5, 6112.8, 7113.6, 8496.9, 7636.2, 7284.5, 6831.7,
5531.3, 6447.9, 7054.1, 7002.1, 8002.2, 7567.3)
Para este exemplo, deseja-se aplicar um teste bicaudal, uma vez que não se sabe se o método tem necessariamente impactos positivos sobre o salário. Como o padrão da função t.test
é aplicar um teste bicaudal, não será necessário definir o argumento alternative="two.sided"
. Também vamos utilizar o intervalo de confiança padrão (95%) e não será necessário defini-lo na função. Apenas precisamos passar a amostra obtida renda_inicial
e o salário médio inicial conhecido anteriormente na função t.test
:
t_renda <- t.test(x = renda_inicial,
mu = 5000)
t_renda
One Sample t-test
data: renda_inicial
t = 13.24, df = 29, p-value = 8.014e-14
alternative hypothesis: true mean is not equal to 5000
95 percent confidence interval:
6621.873 7214.487
sample estimates:
mean of x
6918.18
O teste t mostra que é possível rejeitar a hipótese nula ao nível de significância de 5%. Em outras palavras, temos evidências de que o novo método tem impactos positivos sobre o salário inicial dos economistas.
Neste exemplo, vamos supor que estamos estudando um tratamento para reduzir o número médio de cigarros fumados por dia. Para isso, foi obtida uma amostra aleatória de dez fumantes que, antes do tratamento, fumavam em média os seguintes valores por dia:
cigarros_antes <- c(26.01, 14.32, 20.5, 19.6,
16.06, 19.81, 12.65, 19, 19.68, 21.66)
Após o tratamento, observamos que o número médio de cigarros fumados por dia passou a ser o seguinte:
cigarros_tratamento <- c(6.37, 9.1, 4.88, 5.6,
1.7, 7.57, 5.9, 10.17, 4.78, 2.95)
Como no exemplo estamos trabalhando com amostras dependentes, precisamos fazer um teste t-pareado. Para isso basta especificar paired = TRUE
na função t.test
. Como não sabemos se o tratamento tem necessariamente efeitos positivos iremos fazer um teste bicaudal e adotaremos intervalo de confiança de 95%. Essas especificações são o padrão utilizado pela função e não precisaremos especificá-las.
Vejamos como fazer o teste t-pareado:
t_pareado <- t.test(x = cigarros_antes,
y = cigarros_tratamento,
paired = TRUE)
t_pareado
Paired t-test
data: cigarros_antes and cigarros_tratamento
t = 8.578, df = 9, p-value = 1.262e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
9.591567 16.462433
sample estimates:
mean of the differences
13.027
A partir dos resultados, rejeita-se a hipótese nula a um nível de significância de 5%.
Neste exemplo vamos supor que queremos verificar se há indícios de que a altura média de adultos da região A é diferente da altura média de adultos da região B.
Para cada região foram obtidas 50 observações aleatórias de altura (em cm). Vejamos nossas amostras:
regiao_a <- c(181.35, 182.1, 183.89, 182.7, 165.64, 179.96, 186.75, 171.95,
188.13, 182.24, 189.3, 169.44, 176.68, 187.73, 180.91, 167.5,
179, 179.03, 173.09, 172.88, 165.94, 169.11, 186.19, 177.08,
179.54, 213.6, 178.95, 185.83, 184.34, 187, 162.61, 182.79, 183.26,
176.52, 174.09, 171.34, 165.51, 183.9, 163.91, 180.73, 179.45,
179.39, 189.74, 182.06, 193.21, 172.48, 178.53, 171.79, 190.53,
168.64)
regiao_b <- c(146.76, 174.69, 166.33, 158.43, 184.17, 172.19, 169.3, 159.69,
169.36, 163.65, 172.62, 157.93, 162.21, 166.62, 172.26, 168.95,
148.16, 183.22, 163.69, 152.47, 158.92, 171.31, 170.03, 172.98,
176.29, 179.71, 158.63, 161.96, 166.99, 163.96, 144.9, 152.82,
168.06, 161.62, 173.4, 167.03, 155.84, 162.91, 168.11, 174.91,
148.32, 167.01, 167.96, 145.99, 160.27, 159.42, 167.8, 166.75,
160.22, 156.33)
Diferentemente do Exemplo 2, neste exemplo as amostras são independentes. Além disso, este exemplo também difere do anterior, pois trata-se de uma avaliação observacional em vez de um experimento.
O fato de nossas amostras serem independentes implicam que o argumento paired
deve ser igual a FALSE
, mas, como este é o argumento padrão da função, não precisamos especificá-lo explicitamente.
Para o caso analisado também devemos fazer uma avaliação da variância das amostras, mas para fins do nosso exemplo apenas vamos assumir que as variâncias de ambas as amostras são semelhantes o suficiente para utilizar o argumento var.equal = TRUE
.
Caso tivéssemos evidências de que elas não são semelhantes usaríamos var.equal = FALSE
, que no caso é o argumento padrão adotado pela função t.test
. Assim como anteriormente, utilizamos um intervalo de confiança de 95% e aplicamos um teste bicaudal (não precisamos especificar esses argumentos na função, pois estes já são os argumentos utilizados de forma padrão na função).
Vejamos os resultados do nosso teste t:
t_independente <- t.test(x = regiao_a,
y = regiao_b,
var.equal = TRUE)
t_independente
Two Sample t-test
data: regiao_a and regiao_b
t = 8.0376, df = 98, p-value = 2.109e-12
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
11.07331 18.33389
sample estimates:
mean of x mean of y
179.1666 164.4630
O nosso teste indica que a hipótese nula pode ser rejeitada a um nível de significância de 5%. Em outras palavras, há evidências de que a diferença entre a média de altura das duas regiões não é estatisticamente igual a zero.
Neste post vimos que aplicar testes estatísticos no R é tranquilo e direto. Vimos como aplicar o teste z a partir da comparação do IMC médio de uma amostra, que passa por um tratamento, com o IMC médio da população. Também vimos três exemplos do teste t. No primeiro exemplo, comparamos uma amostra a uma média conhecida previamente; no segundo exemplo, partimos de um experimento hipotético de amostras dependentes para avaliar a eficácia de um tratamento; por fim, no terceiro exemplo, comparamos as alturas médias de duas amostras independentes.
For attribution, please cite this work as
Cleaver (2020, June 14). Fulljoin: Testes estatísticos z e t. Retrieved from https://www.fulljoin.com.br/posts/2020-06-14-testes-z-e-t/
BibTeX citation
@misc{cleaver2020testes, author = {Cleaver, Miguel}, title = {Fulljoin: Testes estatísticos z e t}, url = {https://www.fulljoin.com.br/posts/2020-06-14-testes-z-e-t/}, year = {2020} }