21 Intervalos de confiança e testes de hipótese

Nesta sessão vamos verificar como utilizar o R para obter intervalos de confiança e testar hipóteses sobre parâmetros de interesse.

21.1 Média de uma distribuição normal com variância desconhecida

Considere resolver o seguinte problema:

Exemplo 1 O tempo de reação de um novo medicamento pode ser considerado como tendo distribuição Normal e deseja-se fazer inferência sobre a média que é desconhecida obtendo um intervalo de confiança. Vinte pacientes foram sorteados e tiveram seu tempo de reação anotado. Os dados foram os seguintes (em minutos):

2.93.43.54.14.64.74.53.85.34.9
4.85.75.85.03.45.96.34.65.56.2

Neste primeiro exemplo, para fins didáticos, vamos mostrar duas possíveis soluções:

1.
fazendo as contas passo a passo, utilizando o R como uma calculadora
2.
usando uma função já existente no R.

Entramos com os dados com o comando

  > tempo <- c(2.9, 3.4, 3.5, 4.1, 4.6, 4.7, 4.5, 3.8, 5.3, 4.9, 4.8,
  +     5.7, 5.8, 5, 3.4, 5.9, 6.3, 4.6, 5.5, 6.2)

Sabemos que o intervalo de confiança para média de uma distribuição normal com média desconhecida é dado por:

(        ∘  ---          ∘ ---)
            S2              S2
  ¯x - tα∕2   --,x¯+ t1-α∕2   ---
            n               n

Vamos agora obter a resposta de duas formas diferentes.

21.1.1 Fazendo as contas passo a passo

Nos comandos a seguir calculamos o tamanho da amostra, a média e a variância amostral.

  > n <- length(tempo)
  > n

  [1] 20

  > t.m <- mean(tempo)
  > t.m

  [1] 4.745

  > t.v <- var(tempo)
  > t.v

  [1] 0.9920789

Com isto podemos montar o intervalo utilizando os quantis da distribuição t.

  > t.ic <- t.m + qt(c(0.025, 0.975), df = n - 1) * sqrt(t.v/length(tempo))
  > t.ic

  [1] 4.278843 5.211157

21.1.2 Usando a função t.test

Mostramos a solução acima para ilustrar a flexibilidade e o uso do programa. Entretanto não precisamos fazer isto na maioria das vezes porque o R já vem com várias funções já disponíveis para procedimentos estatísticos usuais.

Para este exemplo específico a função t.test() pode ser utilizada como vemos no resultado do comando a sequir que coincide com os obtidos anteriormente.

  > t.test(tempo)

   One Sample t-test
  
  data:  tempo
  t = 21.3048, df = 19, p-value = 1.006e-14
  alternative hypothesis: true mean is not equal to 0
  95 percent confidence interval:
   4.278843 5.211157
  sample estimates:
  mean of x
      4.745

O resultado da função mostra a estimativa obtida da média (19), o intervalo de confiança a 95e testa a igualdade de média a zero (p-value = 1.00642487153941e-14), em um teste bilateral.

Os valores definidos no IC e teste de hipótese acima são defaults que podem ser modificados. Por exemplo, para obter um IC a 99

  > t.test(tempo, alt = "greater", mu = 3, conf.level = 0.99)

   One Sample t-test
  
  data:  tempo
  t = 7.835, df = 19, p-value = 1.14e-07
  alternative hypothesis: true mean is greater than 3
  99 percent confidence interval:
   4.179408      Inf
  sample estimates:
  mean of x
      4.745

21.2 Teste χ2 de independência

Quando estudamos a relação entre duas variáveis qualitativas em geral fazemos uma tabela com o resultado do cruzamento desta variáveis. Em geral existe interesse em verificar se as variáveis estão associadas e para isto calcula-se uma medida de associação tal como o χ2, coeficiente de contingência C, ou similar. O passo seguinte é testar se existe evidência que a associação é significativa. Uma possível forma de fazer isto é utilizando o teste χ2.

Exemplo Para ilustrar o teste vamos utilizar o conjunto de dados HairEyeColor que já vem disponível com o R. Para carregar e visualizar os dados use os comando abaixo.

  > data(HairEyeColor)
  > HairEyeColor

  , , Sex = Male
  
         Eye
  Hair    Brown Blue Hazel Green
    Black    32   11    10     3
    Brown    53   50    25    15
    Red      10   10     7     7
    Blond     3   30     5     8
  
  , , Sex = Female
  
         Eye
  Hair    Brown Blue Hazel Green
    Black    36    9     5     2
    Brown    66   34    29    14
    Red      16    7     7     7
    Blond     4   64     5     8

Para saber mais sobre estes dados veja help(HairEyeColor) Note que estes dados já vem “resumidos” na forma de uma tabela de frequências tri-dimensional, com cada uma das dimensões correspondendo a um dos atributos - cor dos cabelos, olhos e sexo.

Para ilustrar aqui o teste χ2 vamos verificar se existe associação entre 2 atributos: cor dos olhos e cabelos entre os indivíduos do sexo feminino. Portanto as hipóteses são:

H0 :não existe associação
Ha :existe associação

Vamos adotar α = 5% como nível de significância. Nos comandos abaixo primeiro isolamos apenas a tabela com os indivíduos do sexo masculino e depois aplicamos o teste sobre esta tabela.

  > HairEyeColor[, , 2]

         Eye
  Hair    Brown Blue Hazel Green
    Black    36    9     5     2
    Brown    66   34    29    14
    Red      16    7     7     7
    Blond     4   64     5     8

  > chisq.test(HairEyeColor[, , 1])

   Pearson's Chi-squared test
  
  data:  HairEyeColor[, , 1]
  X-squared = 41.2803, df = 9, p-value = 4.447e-06

O p-value sugere que a associação é significativa. Entretanto este resultado deve ser visto com cautela pois a mensagem de alerta (Warning message) emitida pelo programa chama atenção ao fato de que há várias caselas com baixa frequência na tabela e portanto as condições para a validade do teste não são perfeitamente satisfeitas.

Há duas possibilidades de contornar este problema: a primeira é agrupar categorias na tabela. Uma outra (e usualmente melhor) possibilidade é então usar o p-value calculado por simulação, ao invés do resultado assintótico usado no teste tradicional.

  > chisq.test(HairEyeColor[, , 1], sim = T)

   Pearson's Chi-squared test with simulated p-value (based on 2000
   replicates)
  
  data:  HairEyeColor[, , 1]
  X-squared = 41.2803, df = NA, p-value = 0.0004998

Note que agora a mensagem de alerta não é mais emitida e que a significância foi confirmada (p-valor < 0.05). Note que se voce rodar este exemplo poderá obter um p - value um pouco diferente porque as simulações não necessariamente serão as mesmas.

Lembre-se de inspecionar help(chisq.test) para mais detalhes sobre a implementação deste teste no R.

21.3 Teste χ2 para aderência à uma certa distribuição

Exemplo Uma certa hipótese genética, se verdadeira deve produzir indivíduos com 4 fenótipos (A, B, C e D) na população seguindo a relação 9:3:3:1. Para verificar se a hipótese genética é plausível foi coletada uma amostra de indivíduos na população e obteve-se o seguinte número de indivíduos para cada fenótipo:

Fenótipo A BCD
No indivíduos190506320

Teste a hipótese de que a hipótese genética é plausível com nível de significância de 5%.

Portanto as hipóteses são:

H0 :segue a distribuição esperada
Ha :não segue a distribuição esperada

O nível de significância foi definido como α = 5% e a estatística de teste χc2 = i     2
(oi-eeii)-- tem distribuição χ(3)2. Os comandos para efetuar este teste no R são:

  > o <- c(190, 50, 63, 22)
  > e <- c(9, 3, 3, 1)/16
  > chisq.test(o, p = e)

   Chi-squared test for given probabilities
  
  data:  o
  X-squared = 2.4557, df = 3, p-value = 0.4833

Portanto a conclusão é que não rejeita-se H0 ao nível de 5%, ou seja, a hipótese genética é plausível.

21.4 Teste para o coeficiente de correlação linear de Pearson

Quando temos duas variáveis quantitativas podemos utilizar o coeficiente de correlação linear de Pearson para medir a associação entre as variáveis, desde que a relação entre elas seja linear.

Exemplo Para ilustrar o teste para o coeficiente linear de Pearson vamos estudar a relação entre o peso e rendimento de carros. Para isto vamos usar as variáveis wt (peso) e mpg (milhas por galão) do conjunto de dados mtcars para testar se existe associação entre estas duas variáveis.

As hipóteses são:

H0 :não existe associação (ρ = 0)
Ha :existe associação (ρ0)

Vamos ainda fixar o nivel de significância em 5%. Os comandos para efetuar o teste e os resultados são mostrados a seguir.

  > data(mtcars)
  > with(mtcars, cor(wt, mpg))

  [1] -0.8676594

  > with(mtcars, cor.test(wt, mpg))

   Pearson's product-moment correlation
  
  data:  wt and mpg
  t = -9.559, df = 30, p-value = 1.294e-10
  alternative hypothesis: true correlation is not equal to 0
  95 percent confidence interval:
   -0.9338264 -0.7440872
  sample estimates:
         cor
  -0.8676594

Portanto o p-valor acima mostra que a correlação encontrada de -0.867659376517228 difere significativamente de zero, ou seja existe evidência de associação (negativa) entre estas duas variáveis.

OBS: Note que uma análise mais cuidadosa deveria incluir o exame do gráfico entre estas duas variáveis para ver se o coeficiente de correlação linear é adequado para medir a associação.

21.5 Comparação de duas médias

Quando temos uma variável qualitativa com dois níveis e outra quantitativa o interesse em geral está em comparar as médias da quantitativa para cada grupo da qualitativa. Para isto podemos utilizar o testeT. Há diferentes tipos de teste T: para amostras independentes com variâncias iguais ou desiguais, ou para amostras pareadas.

Exemplo Os dados a seguir correspondem a teores de um elemento indicador da qualidade de um certo produto vegetal. Foram coletadas 2 amostras referentes a 2 métodos de produção e deseja-se comparar as médias dos métodos fazendo-se um teste t bilateral, ao nível de 1% de significância e considerando-se as variâncias iguais.












Método 10.92.59.23.23.71.31.22.43.68.3
Método 25.36.35.53.64.12.72.01.55.13.5











As hipóteses são:

H0 :μ1 = μ2
Ha :μ1μ2

Vamos ainda fixar o nivel de significância em 5%. Abaixo os comandos para efetuar o teste bilateral com variâncias iguais.

  > m1 <- c(0.9, 2.5, 9.2, 3.2, 3.7, 1.3, 1.2, 2.4, 3.6, 8.3)
  > m2 <- c(5.3, 6.3, 5.5, 3.6, 4.1, 2.7, 2, 1.5, 5.1, 3.5)
  > t.test(m1, m2, var.eq = TRUE, conf = 0.99)

   Two Sample t-test
  
  data:  m1 and m2
  t = -0.3172, df = 18, p-value = 0.7547
  alternative hypothesis: true difference in means is not equal to 0
  99 percent confidence interval:
   -3.324208  2.664208
  sample estimates:
  mean of x mean of y
       3.63      3.96

Os resultados mostram que não há evidências para rejeitar a hipótese de igualdade entre as médias ao nível de 1%.

21.6 Exercícios

1.
Revisite os dados milsa visto na aula de estatística descritiva e selecione pares de variáveis adequadas para efetuar:
(a)
um teste χ2
(b)
um teste para o coeficiente de correlação
(c)
um teste t
2.
Queremos verificar se machos e fêmeas de uma mesma espécie possuem o mesmo comprimento (em mm) Para isso, foram medidos 6 exemplares de cada sexo e obtivemos os seguintes comprimentos:

Machos145127136142141137







Fêmeas 143128132138142132

Obtenha intervalos de confiança para a razão das variâncias e para a diferença das médias dos dois grupos.

Dica: Use as funções var.test() e t.test()

3.
Carregue o conjunto de dados iris usando o comando data(iris).
Veja a descrição dos dados em help(iris).
Use a função cor.test() para testar a correlação entre o comprimento de sépalas e pétalas.