ESTATÍSTICA COMPUTACIONAL I

PRÁTICA 6: INFERÊNCIA PARA MAIS DE DUAS POPULAÇÕES

Prof: Guilherme Augusto Veloso ()

\[\\[0.05in]\]

1 PACOTES NECESSÁRIOS

Para esta sexta aula prática de Estatística Computacional I, precisaremos dos seguintes pacotes:

require(ggplot2)   # Abordagem gráfica
require(dplyr)     # Manipulação de bases de dados
require(DescTools) # Para o teste de Levene
require(qqplotr)   # Gráfico QQ-plot

2 INTRODUÇÃO

Na maior parte dos estudos comparativos no mundo real, raramente lidamos com apenas duas populações. Em vez disso, lidamos com múltiplos grupos, múltiplos tratamentos, múltiplas regiões ou categorias. Por isso, a inferência para mais de duas populações é essencial para análises estatísticas reais.

EXEMPLOS PRÁTICOS:

  • Uma pesquisa de opinião quer comparar a média de satisfação de clientes entre cinco filiais de uma empresa.

  • Um experimento clínico avalia quatro tratamentos diferentes para dor crônica e deseja saber se pelo menos um é mais eficaz.

  • Um estudo educacional compara o desempenho médio de alunos de três escolas públicas e duas privadas.

Nesses casos, aplicar um conjunto de testes entre pares (como o t de Student) geraria múltiplas comparações, o que aumenta o risco de erro tipo I. Isso leva a conclusões potencialmente enganosas.

A pergunta central é: Existe evidência de que pelo menos uma das populações tem média diferente das outras? Essa é a motivação principal por trás de testes como a ANOVA. Nesta aula, veremos como aplicar este teste paramétrico.

3 ANÁLISE DE VARIÂNCIA

A Análise de Variância (ANOVA) é uma técnica estatística usada para verificar se há diferenças significativas entre as médias de três ou mais populações.

Inicialmente, veremos a formulação matemática da ANOVA, as hipóteses do teste e as suposições necessárias.

3.1 FORMULAÇÃO MATEMÁTICA

Suponha que temos \(k\) populações ou tratamentos:

\[ X_1, X_2, \dots, X_k \]

Cada \(X_i\) representa uma população com média \(\mu_i\), onde:

\[ X_i \sim \mathcal{N}(\mu_i, \sigma^2), \quad i = 1, 2, \dots, k \]

E suponha que temos \(n_i\) observações na \(i\)-ésima população, totalizando \(n = \sum_{i=1}^k n_i\) observações.

3.2 HIPÓTESES

Queremos testar se as médias populacionais são todas iguais. As hipóteses são:

  • Hipótese nula (\(H_0\)): \[ \mu_1 = \mu_2 = \dots = \mu_k \]

  • Hipótese alternativa (\(H_1\)): \[ \exists \ i,j \text{ tal que } \mu_i \ne \mu_j \]


3.3 SUPOSIÇÕES

Para que a ANOVA seja válida, as seguintes suposições devem ser satisfeitas:

  1. Independência entre as observações.
  2. Normalidade: As distribuições dos grupos são normais.
  3. Homogeneidade de variâncias: \(\sigma_1^2 = \sigma_2^2 = \dots = \sigma_k^2=\sigma^2\)

3.4 ESTATÍSTICA DE TESTE

A estatística usada na ANOVA é a F, definida como:

\[ F = \frac{\text{Variabilidade entre os grupos}}{\text{Variabilidade dentro dos grupos}} = \frac{QM_{grupo}}{QM_{residuos}} \]

Onde:

  • \(SQ_{grupo}\): Soma dos quadrados entre os grupos
    \[ SQ_{grupo} = \sum_{i=1}^k n_i (\bar{X}_i - \bar{X})^2 \]

  • \(SQ_{residuos}\): Soma dos quadrados dentro dos grupos
    \[ SQ_{resíduos} = \sum_{i=1}^k \sum_{j=1}^{n_i} (X_{ij} - \bar{X}_i)^2 \]

  • \(GL_{grupo}\) = \(k - 1\)

  • \(GL_{resíduos}\) = \(n - k\)

  • \(QM_{grupo}\) = \(SQ_{grupo} / (k - 1)\)

  • \(QM_{resíduos}\) = \(SQ_{resíduos} / (n - k)\)

3.5 DECISÃO

  • Rejeitamos \(H_0\) se o valor observado de \(F\) for grande o suficiente, indicando que as médias não são todas iguais.
  • Comparamos o valor de \(F\) com o quantil da distribuição \(F_{k-1, n-k}\) para o nível de significância \(\alpha\) (geralmente 0.05).

4 SITUAÇÃO PRÁTICA MOTIVADORA

A base de dados PlantGrowth é um conjunto clássico disponível no R que registra o peso de plantas submetidas a três diferentes tratamentos.

  • Variável resposta:
    • weight: peso das plantas (em unidades de massa)
  • Fator:
    • group: tipo de tratamento aplicado às plantas, com três níveis:
      • ctrl: grupo controle (sem tratamento)
      • trt1: tratamento 1
      • trt2: tratamento 2

Ou seja, ctrl é o grupo padrão, e trt1 e trt2 são dois grupos experimentais submetidos a diferentes tratamentos para avaliar o efeito sobre o peso das plantas. Em cada grupo, foram avaliadas 10 plantas. Esta base é muito utilizada para demonstrar técnicas de comparação entre médias, como a ANOVA. A base de dados pode ser acionada com o seguinte comando:

PlantGrowth
##    weight group
## 1    4.17  ctrl
## 2    5.58  ctrl
## 3    5.18  ctrl
## 4    6.11  ctrl
## 5    4.50  ctrl
## 6    4.61  ctrl
## 7    5.17  ctrl
## 8    4.53  ctrl
## 9    5.33  ctrl
## 10   5.14  ctrl
## 11   4.81  trt1
## 12   4.17  trt1
## 13   4.41  trt1
## 14   3.59  trt1
## 15   5.87  trt1
## 16   3.83  trt1
## 17   6.03  trt1
## 18   4.89  trt1
## 19   4.32  trt1
## 20   4.69  trt1
## 21   6.31  trt2
## 22   5.12  trt2
## 23   5.54  trt2
## 24   5.50  trt2
## 25   5.37  trt2
## 26   5.29  trt2
## 27   4.92  trt2
## 28   6.15  trt2
## 29   5.80  trt2
## 30   5.26  trt2

4.1 ANÁLISE DESCRITIVA

Inicialmente, vamos visualizar graficamente o comportamento do peso para cada um dos tratamentos:

ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +
  geom_boxplot() +
  labs(
    title = "Distribuição do Peso das Plantas por Grupo",
    x = "Grupo",
    y = "Peso da Planta"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

Agora, segue uma tabela com algumas medidas descritivas para estes dados:

resumo <- PlantGrowth %>%
  group_by(group) %>%
  summarise(
    media = mean(weight),
    mediana = median(weight),
    variancia = var(weight),
    n = n()
  )
resumo
## # A tibble: 3 × 5
##   group media mediana variancia     n
##   <fct> <dbl>   <dbl>     <dbl> <int>
## 1 ctrl   5.03    5.15     0.340    10
## 2 trt1   4.66    4.55     0.630    10
## 3 trt2   5.53    5.44     0.196    10

Descritivamente, as médias são diferentes e os grupos se comportam de maneira distinta com respeito ao peso das plantas.

4.2 NORMALIDADE

Para aplicar a ANOVA, é fundamental que os dados sejam normalmente distribuídos, ou tenha um tamanho suficiente para que seja utilizado o teorema central do limite. Vamos checar se os grupos de plantas possuem um peso normalmente distribuído: com os diagnósticos de normalidade que aprendemos:

ggplot(PlantGrowth, aes(x = weight)) +
  geom_density(fill = "blue", alpha = 0.6) +
  facet_wrap(~ group) +
  xlab("Pesos") +
  ylab("Densidade") +
  theme_bw() +
  theme(text = element_text(size = 14))

ggplot(PlantGrowth, aes(sample = weight)) +
    stat_qq_band(fill="lightblue") +
    stat_qq_line() +
    stat_qq_point() +
    facet_wrap(~group,scales = "free")+
    xlab("Quantis Teoricos")+
    ylab("Quantis Amostrais")+
    theme_bw() +
    theme(text = element_text(size = 14))

by(PlantGrowth$weight, PlantGrowth$group, shapiro.test)
## PlantGrowth$group: ctrl
## 
##  Shapiro-Wilk normality test
## 
## data:  dd[x, ]
## W = 0.95668, p-value = 0.7475
## 
## ------------------------------------------------------------ 
## PlantGrowth$group: trt1
## 
##  Shapiro-Wilk normality test
## 
## data:  dd[x, ]
## W = 0.93041, p-value = 0.4519
## 
## ------------------------------------------------------------ 
## PlantGrowth$group: trt2
## 
##  Shapiro-Wilk normality test
## 
## data:  dd[x, ]
## W = 0.94101, p-value = 0.5643

Dessa forma, há evidências (com um nível de significância de 5%) de que os dados em cada grupo são normalmente distribuídos. Há uma ressalva que houve um desvio no qqplot para o grupo trt1, mas a ANOVA é robusta a pequenos desvios de normalidade, especialmente se as variâncias forem parecidas e o n dos grupos não é desigual.

4.3 HOMOCEDASTICIDADE

Antes de aplicar a ANOVA (Análise de Variância), uma outra suposição fundamental é a homocedasticidade, ou seja, a igualdade das variâncias entre os grupos. A violação dessa suposição pode comprometer a validade dos resultados da ANOVA. Dois testes estatísticos amplamente utilizados para verificar essa suposição são:

  • Teste de Bartlett
  • Teste de Levene

Em ambos os testes as hipóteses são:

  • \(H_0\): As variâncias populacionais são iguais.
  • \(H_1\): Pelo menos uma das variâncias é diferente.

4.3.1 TESTE DE BARTLETT

O teste de Bartlett é sensível à suposição de normalidade. Ele é mais poderoso quando os dados seguem uma distribuição normal.

Este teste deve ser usado

  • Quando os dados em cada grupo são aproximadamente normais.
  • Mais sensível a desvios da homocedasticidade se a normalidade for atendida.

A função bartlett.test() é utilizada no R para testar a homogeneidade de variâncias com a seguinte sintaxe:

bartlett.test(formula, data)

  • formula: uma fórmula do tipo resposta~grupo.

  • data: base de dados.

Para os dados da base PlanthGrowth, o teste de Bartlett aponta o seguinte:

bartlett.test(formula = weight~group,data = PlantGrowth)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  weight by group
## Bartlett's K-squared = 2.8786, df = 2, p-value = 0.2371

De acordo com o teste de Bartlett, há evidencias (ao nível de 5%) de que a suposição de homocedasticidade é atendida.

4.3.2 TESTE DE LEVENE

O teste de Levene é uma alternativa robusta ao teste de Bartlett. Ele é menos sensível a desvios da normalidade.

Assim, para este teste, considere

  • Utilizá-lo quando não é garantida a normalidade dos dados.
  • É mais robusto frente a distribuições assimétricas ou com outliers.

A função LeveneTest() do pacote DescTools é utilizada no R para testar a homogeneidade de variâncias com a seguinte sintaxe:

LeveneTest(formula, data)

  • formula: uma fórmula do tipo resposta~grupo.

  • data: base de dados.

Vamos aplicar o teste de Levene nesse caso:

LeveneTest(formula = weight~group,data = PlantGrowth)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2  1.1192 0.3412
##       27

De acordo com o teste de Levene, há evidencias (ao nível de 5%) de que a suposição de homocedasticidade é atendida.

Como não ficamos tão seguros da suposição de normalidade dos dados, o teste de Levene é mais adequado aqui.

4.4 ANÁLISE DE VARIÂNCIA

Com as suposições verificadas, podemos aplicar a ANOVA. No R, isso é feito com a função aov, que possui a seguinte sintaxe:

aov(formula, data)

  • formula: uma fórmula do tipo resposta~grupo.

  • data: base de dados.

Vamos aplicar esta função aos dados da base PlantGrowth:

ANOVA = aov(formula = weight~group,data = PlantGrowth)
summary(ANOVA)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2  3.766  1.8832   4.846 0.0159 *
## Residuals   27 10.492  0.3886                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Note que a saída da função apresenta, para os grupos e resíduos:

  • os graus de liberdade.
  • a soma de quadrados.
  • o quadrado médio.
  • estatística F.
  • valor-p do teste F.

Assim, rejeitamos a hipótese nula de igualdade das médias para os três grupos. Isto é, há evidências (ao nível de 5%) de que exista \(i\) e \(j\), tal que \(i\neq j\) e \(\mu_i\neq \mu_j\).

5 TESTES DE COMPARAÇÃO MÚLTIPLA

Após uma ANOVA rejeitar a hipótese nula, usamos testes de comparação múltipla para descobrir quais pares de grupos diferem. Existem diversos testes de comparação múltipla disponíveis na literatura. Aqui, usaremos os testes:

  • Bonferroni
  • Tukey

Em ambos os testes, considere que temos \(k\) grupos com médias populacionais \(\mu_1, \mu_2, \ldots, \mu_k\).

Os testes de comparação múltipla realizam comparações par-a-par entre essas médias. Para cada par \((i,j)\), as hipóteses são:

  • Hipótese nula (\(H_0\)):

    \[ H_0: \mu_i = \mu_j \]

    Ou seja, as médias dos grupos \(i\) e \(j\) são iguais.

  • Hipótese alternativa (\(H_1\)):

    \[ H_1: \mu_i \ne \mu_j \]

    Ou seja, as médias dos grupos \(i\) e \(j\) são diferentes.

Estas hipóteses são testadas para todos os pares \((i,j)\) possíveis entre os \(k\) grupos, e deve-se atentar à uma correção do nível \(\alpha\) para que o erro do tipo I não seja inflacionado.

5.1 TESTE DE BONFERRONI

O teste de Bonferroni é um método de comparações múltiplas usado após uma ANOVA quando se rejeita a hipótese nula de igualdade entre as médias de três ou mais grupos.

Sua principal função é controlar o erro do tipo I. Ele faz isso ajustando o nível de significância \(\alpha\) dividido pelo número de comparações. É um método conservador, ou seja, reduz bastante a chance de falsos positivos, mas com menor poder estatístico.

No R, o teste de Bonferroni pode ser realizado com a função pairwise.t.test(), que tem a seguinte sintaxe:

pairwise.t.test(x,g,p.adjust.method)

em que

  • x é a variável resposta
  • g a variável de grupo
  • p.adjust.method é o tipo de correção a ser realizada

Para o método bonferroni, especifique o argumento p.adjust.method = "bonferroni".

Na base de dados de PlantGrowth, temos 4 comparações múltiplas a serem executados. Assim, será feito um ajuste no valor-p de acordo com essa quantidade de combinações:

Bonferroni = pairwise.t.test(x=PlantGrowth$weight,g=PlantGrowth$group,p.adjust.method = "bonferroni")
Bonferroni
## 
##  Pairwise comparisons using t tests with pooled SD 
## 
## data:  PlantGrowth$weight and PlantGrowth$group 
## 
##      ctrl  trt1 
## trt1 0.583 -    
## trt2 0.263 0.013
## 
## P value adjustment method: bonferroni

Assim, de acordo com o teste de Bonferroni, os grupos trt1 e trt2 possuem médias diferentes (a um nível de 5% de significância)

5.2 TESTE DE TUKEY

O teste de Tukey, também chamado de Tukey HSD (Honest Significant Difference), é utilizado após uma ANOVA quando encontramos evidência de que pelo menos um grupo difere dos demais.

Ele serve para realizar comparações múltiplas entre todas as médias 2 a 2, controlando o erro do tipo I no conjunto das comparações.

O teste de Tukey pode ser aplicado diretamente a um modelo ajustado com aov() utilizando a função TukeyHSD().

Essa função aplica automaticamente a correção para comparações múltiplas — mais precisamente, ela controla o erro do tipo I, usando o critério de Tukey baseado na distribuição studentizada range.

Na base de dados de PlantGrowth, temos o seguinte comando:

TukeyHSD(ANOVA)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = weight ~ group, data = PlantGrowth)
## 
## $group
##             diff        lwr       upr     p adj
## trt1-ctrl -0.371 -1.0622161 0.3202161 0.3908711
## trt2-ctrl  0.494 -0.1972161 1.1852161 0.1979960
## trt2-trt1  0.865  0.1737839 1.5562161 0.0120064

Assim, também de acordo com o teste de Tukey, foi detectada uma diferença (ao nível de 5%) nas médias dos grupos trt1 e trt2.

5.3 QUAL TESTE DEVO USAR?

A escolha do teste depende do objetivo da análise, do número de comparações, do equilíbrio e tamanho das amostras, e das suposições dos dados:

  • Se o foco é comparar todos os pares de médias e as amostras são relativamente balanceadas, o teste de Tukey costuma ser a melhor escolha por equilibrar controle de erro e poder.

  • Se o número de comparações for pequeno ou se for necessário um ajuste mais rigoroso para evitar falsos positivos, o teste de Bonferroni é uma opção simples e segura, apesar de mais conservadora.

6 EXTENSÕES DA ANOVA TRADICIONAL

A ANOVA clássica depende de três suposições principais:

  1. Normalidade
  2. Independência
  3. Homocedasticidade (variâncias iguais)

Quando alguma dessas condições muda, ou quando o desenho experimental é diferente, usamos extensões da ANOVA. A seguir, mostramos como proceder no R em cada situação.

6.1 AMOSTRAS GRANDES

Quando os tamanhos amostrais são grandes, o Teorema Central do Limite garante que a distribuição da média é aproximadamente normal. Por isso, a ANOVA clássica tende a ser robusta mesmo com desvios de normalidade.

Ainda assim, recomenda-se verificar a homocedasticidade com o teste de Bartlet (dados normais) ou levene (dados não normais).

6.2 AMOSTRAS DEPENDENTES

Quando os mesmos indivíduos são medidos em mais de um momento/condição, as observações não são independentes. Nesse caso, NÃO se usa a ANOVA tradicional, mas sim a ANOVA para medidas repetidas

6.3 HETEROCEDASTICIDADE

Quando as variâncias entre os grupos NÃO são iguais, a ANOVA clássica NÃO deve ser usada. A extensão correta é ANOVA de Welch (não assume variâncias iguais).

7 EXERCÍCIO

Considere a base de dados que consta no arquivo lettuce.xlsx. Essa base de dados está disponível no repositório do grupo statOmics e contém informações de um experimento com alfaces submetidas a diferentes condições de cultivo. Cada observação representa uma planta individual, e as variáveis registradas são:

treatment: indica o tratamento experimental aplicado (com quatro níveis diferentes) freshweight, que representa o peso fresco (em gramas) da planta.

Essa base é especialmente útil para análises de variância (ANOVA), pois permite investigar se as médias dos pesos diferem significativamente entre os tratamentos. Por ser um experimento real com estrutura simples, ela é ideal para introduzir conceitos como homogeneidade de variâncias, normalidade dos resíduos e comparações múltiplas.

1- Leia a base de dados.

2- Faça uma análise descritiva dos dados.

3- Investigue a normalidade dos grupos com respeito à variável freshweight.

4- Investigue a homocedasticidade.

5- Efetua a análise de variância e, se necessário, recorra a utilização de testes de comparação múltipla.