knitr::opts_chunk$set(echo = TRUE,warning = FALSE, message = FALSE)
A Análise de Variância (ANOVA) é uma técnica estatística utilizada para comparar as médias de três ou mais grupos. Ela ajuda a determinar se as diferenças observadas entre os grupos são significativas ou se podem ser atribuídas ao acaso.
O objetivo da ANOVA é testar se há diferenças significativas entre as médias de diferentes grupos. A ANOVA divide a variabilidade total dos dados em variabilidade explicada pelos grupos e variabilidade não explicada (erro aleatório).
Para que a ANOVA seja válida, as seguintes suposições devem ser atendidas:
PlantGrowthVamos utilizar o conjunto de dados PlantGrowth
disponível no R para ilustrar a ANOVA de um fator.
# Carregar pacotes necessários
library(ggplot2)
library(dplyr)
# Carregar dados PlantGrowth
data("PlantGrowth")
str(PlantGrowth)
## 'data.frame': 30 obs. of 2 variables:
## $ weight: num 4.17 5.58 5.18 6.11 4.5 4.61 5.17 4.53 5.33 5.14 ...
## $ group : Factor w/ 3 levels "ctrl","trt1",..: 1 1 1 1 1 1 1 1 1 1 ...
# O conjunto de dados PlantGrowth contém medidas de crescimento de plantas sob três diferentes tipos de fertilizantes.
# Visualizar os dados
head(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
# Boxplot para visualizar os dados
ggplot(PlantGrowth, aes(x = group, y = weight, fill = group)) +
geom_boxplot() +
labs(title = "Boxplot do Crescimento das Plantas por Tipo de Fertilizante",
x = "Tipo de Fertilizante",
y = "Peso das Plantas") +
theme_minimal()
# Ajustar o modelo ANOVA
anova_plantgrowth <- aov(weight ~ group, data = PlantGrowth)
summary(anova_plantgrowth)
## 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
Estatística F e Valor p: O valor p associado à estatística F indica se há diferenças significativas entre os tipos de fertilizantes. Se o valor p for menor que 0.05, rejeitamos a hipótese nula e concluímos que há pelo menos uma diferença significativa entre os grupos.
Se o valor p é menor que 0.05, isso sugere que as médias dos grupos são significativamente diferentes entre si.
Se o valor p é maior que 0.05, não há evidências suficientes para afirmar que as médias dos grupos são diferentes.
Teste de Tukey: Após identificar diferenças significativas, o teste de Tukey pode ser usado para determinar quais grupos são significativamente diferentes entre si.
mtcarsVamos usar o conjunto de dados mtcars para ilustrar a ANOVA de dois fatores. Vamos considerar o efeito do número de cilindros (cyl) e do tipo de transmissão (am) no consumo de combustível (mpg).
# Carregar dados mtcars
data("mtcars")
str(mtcars)
## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
# Visualizar os dados
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
# Gráfico de interação entre número de cilindros e tipo de transmissão
ggplot(mtcars, aes(x = factor(cyl), y = mpg, color = factor(am), group = factor(am))) +
geom_line() +
geom_point() +
labs(title = "Gráfico de Interação entre Cilindrada e Tipo de Transmissão",
x = "Número de Cilindros",
y = "Consumo de Combustível (mpg)") +
theme_minimal()
# Ajustar o modelo ANOVA de dois fatores
anova_mtcars <- aov(mpg ~ factor(cyl) * factor(am), data = mtcars)
summary(anova_mtcars)
## Df Sum Sq Mean Sq F value Pr(>F)
## factor(cyl) 2 824.8 412.4 44.852 3.73e-09 ***
## factor(am) 1 36.8 36.8 3.999 0.0561 .
## factor(cyl):factor(am) 2 25.4 12.7 1.383 0.2686
## Residuals 26 239.1 9.2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Efeito Principal: Avalia o efeito de cada fator (número de cilindros e tipo de transmissão) sobre o consumo de combustível.
Número de Cilindros: Verifica se o número de cilindros tem um impacto significativo no consumo de combustível.
Tipo de Transmissão: Avalia se o tipo de transmissão influencia significativamente o consumo de combustível. Interação: Avalia se a combinação dos fatores (cilindrada e transmissão) tem um efeito diferente do esperado.
Se a interação é significativa, isso indica que o efeito de um fator depende do nível do outro fator. O gráfico de interação ajuda a visualizar como esses efeitos interagem.
Se a ANOVA indicar diferenças significativas, podemos usar testes post-hoc para identificar quais grupos são diferentes.
# Teste de Tukey para múltiplas comparações (PlantGrowth)
tukey_plantgrowth <- TukeyHSD(anova_plantgrowth)
print(tukey_plantgrowth)
## 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
# Teste de Tukey para múltiplas comparações (mtcars)
# No caso da ANOVA de dois fatores, usamos o teste de Tukey apenas para um dos fatores
tukey_mtcars <- TukeyHSD(anova_mtcars, "factor(cyl)")
print(tukey_mtcars)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = mpg ~ factor(cyl) * factor(am), data = mtcars)
##
## $`factor(cyl)`
## diff lwr upr p adj
## 6-4 -6.920779 -10.563826 -3.277732 0.0002015
## 8-4 -11.563636 -14.599509 -8.527764 0.0000000
## 8-6 -4.642857 -8.130809 -1.154905 0.0075037
Testes Post-Hoc: Identificam quais pares de grupos têm diferenças significativas. O Teste de Tukey é um método comum para ajustar as comparações múltiplas e controlar o erro tipo I.
No exemplo PlantGrowth, o teste de Tukey ajudará a determinar quais fertilizantes têm diferenças significativas no crescimento das plantas.
No exemplo mtcars, o teste de Tukey pode ser aplicado para verificar as diferenças significativas entre os níveis do número de cilindros.
irisVamos utilizar o conjunto de dados iris para ilustrar a ANOVA de um fator com um exemplo adicional.
# Carregar dados iris
data("iris")
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#O conjunto de dados iris contém medições de comprimento e largura das sépalas e pétalas para três espécies de íris.
# Visualizar os dados
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
#Neste exemplo, vamos investigar se há diferenças significativas no comprimento das pétalas (Petal.Length) entre as três espécies de íris (Species).
# Boxplot para visualizar os dados
ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +
geom_boxplot() +
labs(title = "Boxplot do Comprimento das Pétalas por Espécie de Íris",
x = "Espécie de Íris",
y = "Comprimento das Pétalas (cm)") +
theme_minimal()
# Ajustar o modelo ANOVA
anova_iris <- aov(Petal.Length ~ Species, data = iris)
summary(anova_iris)
## Df Sum Sq Mean Sq F value Pr(>F)
## Species 2 437.1 218.55 1180 <2e-16 ***
## Residuals 147 27.2 0.19
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Teste de Tukey para múltiplas comparações (Iris)
tukey_iris <- TukeyHSD(anova_iris)
print(tukey_iris)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Petal.Length ~ Species, data = iris)
##
## $Species
## diff lwr upr p adj
## versicolor-setosa 2.798 2.59422 3.00178 0
## virginica-setosa 4.090 3.88622 4.29378 0
## virginica-versicolor 1.292 1.08822 1.49578 0
Estatística F e Valor p:
Estatística F: A razão entre a variabilidade explicada pela diferença entre as espécies e a variabilidade não explicada. Uma alta estatística F indica que as diferenças entre as médias das espécies são grandes em comparação com a variabilidade interna.
Valor p: Um valor p menor que 0.05 sugere que há diferenças significativas no comprimento das pétalas entre pelo menos duas das espécies de íris. Isso indica que a variável Species tem um efeito significativo sobre o comprimento das pétalas.
Teste de Tukey: Similar ao exemplo com PlantGrowth, após identificar diferenças significativas, o teste de Tukey pode ser usado para descobrir quais pares de espécies são diferentes. Isso ajuda a entender mais detalhadamente quais espécies têm diferenças significativas em relação ao comprimento das pétalas.
Interpretação: Se o teste de Tukey revela diferenças significativas, isso indica que pelo menos uma das espécies tem um comprimento de pétala significativamente diferente das outras. Se não houver diferenças significativas, isso sugere que todas as espécies têm comprimentos de pétalas semelhantes.
a. ANOVA de Um Fator com
PlantGrowth
Estatística F: Calculada como a razão entre a variabilidade entre grupos e a variabilidade dentro dos grupos. Se a estatística F é alta, isso sugere que a variabilidade entre os grupos é maior do que a variabilidade dentro dos grupos, indicando que as médias dos grupos podem ser significativamente diferentes.
Valor p: O valor p associado à estatística F determina a significância dos resultados. Um valor p menor que 0.05 indica que as diferenças observadas são estatisticamente significativas. Se o valor p é maior que 0.05, não há evidências suficientes para afirmar que as médias dos grupos são diferentes.
Teste de Tukey: Após encontrar uma significância estatística, o teste de Tukey identifica quais grupos são significativamente diferentes entre si. Isso é útil para entender quais fertilizantes têm efeitos distintos sobre o crescimento das plantas.
b. ANOVA de Dois Fatores com mtcars
Efeito Principal: Avalia a influência de cada fator (número de cilindros e tipo de transmissão) no consumo de combustível. Valores p pequenos indicam que o fator tem um efeito significativo.
Interação: Se a interação entre os fatores é significativa, isso indica que o efeito de um fator depende do nível do outro fator. O gráfico de interação ajuda a visualizar como essas relações influenciam o consumo de combustível.
c. ANOVA de Um Fator com iris
Estatística F e Valor p: Medem se há diferenças
significativas no comprimento das pétalas entre as espécies de íris. Um
valor p menor que 0.05 sugere que a variável Species tem um
efeito significativo sobre o comprimento das pétalas.
Teste de Tukey: Após identificar diferenças significativas, o teste de Tukey determina quais pares de espécies têm comprimentos de pétalas significativamente diferentes. Isso fornece uma compreensão detalhada das diferenças entre as espécies.
Pesquisa Científica: Comparar diferentes tratamentos ou condições experimentais para determinar qual é o mais eficaz.
Estudos de Mercado: Comparar preferências de consumidores entre diferentes produtos para entender as preferências do mercado.
Qualidade de Produção: Avaliar variações na produção entre diferentes lotes ou processos para garantir a consistência da qualidade.
A ANOVA é uma ferramenta poderosa para comparar médias entre grupos e entender a influência de diferentes fatores. É crucial garantir que as suposições da ANOVA sejam atendidas e interpretar os resultados com base na estatística F, valores p e testes post-hoc, se necessário.
Montgomery, D. C. (2017). Design and Analysis of Experiments. Wiley.
Field, A. (2013). Discovering Statistics Using R. Sage.