O banco de df analisado traz os resultados de um experimento realizado com homens e mulheres que consumiram ou não álcool (divididos em três grupos: não consumiu álcool, consumiu duas canecas, consumiu três canecas). Após esse consumo, foi avaliada a memória e a latência para a realização de uma tarefa cognitiva. Desejamos avaliar se o consumo de álcool afetou a memória e se esse efeito depende do gênero. Para isso, será realizada uma ANOVA de duas vias, com “Gênero” e “Consumo de Álcool” como variáveis independentes.
library(googlesheets4) # Google Sheets via the Sheets API v4
library(googledrive) # interact with Google Drive
library(plotly)
library(stringr)
library(tidyverse) # data wrangling and viz
library(dplyr)
library(car)
library(rstatix)
library(emmeans)
library(ggplot2)
library(knitr)
library(kableExtra)
library(htmltools)
library(GFD)
library(rcompanion)
## tibble [36 × 4] (S3: tbl_df/tbl/data.frame)
## $ Fornecedores: Factor w/ 6 levels "M1","M2","M3",..: 1 1 1 2 2 2 3 3 3 4 ...
## $ Rep : num [1:36] 1 2 3 1 2 3 1 2 3 1 ...
## $ TemperaturaA: Factor w/ 2 levels "Ambiente","Refrigerado": 1 1 1 1 1 1 1 1 1 1 ...
## $ Umidade : num [1:36] 16.8 16.6 16.6 16.8 16.8 ...
kable(head(dff,10), col.names = c("Fornecedores", "Rep", "Temperatura de Armazenamento", "Umidade")) %>%
kable_styling(full_width = T, bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Fornecedores | Rep | Temperatura de Armazenamento | Umidade |
---|---|---|---|
M1 | 1 | Ambiente | 16.80 |
M1 | 2 | Ambiente | 16.60 |
M1 | 3 | Ambiente | 16.59 |
M2 | 1 | Ambiente | 16.77 |
M2 | 2 | Ambiente | 16.76 |
M2 | 3 | Ambiente | 16.80 |
M3 | 1 | Ambiente | 18.59 |
M3 | 2 | Ambiente | 18.61 |
M3 | 3 | Ambiente | 18.60 |
M4 | 1 | Ambiente | 15.83 |
O banco contém 36 sujeitos experimentais, sendo 18 em
temperatura de armazenamento ambiente.
Colocar as categorias em uma ordem lógica (nenhum consumo, duas canecas e quatro canecas) vai facilitar a visualização dos df no gráfico.
A variável dependente (“Memória”) deve apresentar distribuição aproximadamente normal dentro de cada grupo. Os grupos aqui serão formados pela combinação das duas variáveis independentes (“Gênero” e “Álcool”). A normalidade será avaliada pelo teste de Shapiro-Wilk.
## # A tibble: 12 × 5
## `as.factor(TemperaturaA)` `as.factor(Fornecedores)` variable statistic p
## <fct> <fct> <chr> <dbl> <dbl>
## 1 Ambiente M1 Umidade 0.786 0.0806
## 2 Ambiente M2 Umidade 0.923 0.463
## 3 Ambiente M3 Umidade 1 1.00
## 4 Ambiente M4 Umidade 1 1.00
## 5 Ambiente M5 Umidade 0.762 0.0273
## 6 Ambiente M6 Umidade 0.923 0.463
## 7 Refrigerado M1 Umidade 0.828 0.183
## 8 Refrigerado M2 Umidade 0.75 0
## 9 Refrigerado M3 Umidade 0.797 0.107
## 10 Refrigerado M4 Umidade 0.75 0
## 11 Refrigerado M5 Umidade 0.907 0.407
## 12 Refrigerado M6 Umidade 0.821 0.165
Os grupos não apresentam distribuição normal (valores de p menores que 0,05).
model2 <- GFD(Umidade ~ Fornecedores*TemperaturaA, data = dff)
summary(model2)
## Call:
## Umidade ~ Fornecedores * TemperaturaA
##
## Descriptive:
## Fornecedores TemperaturaA n Means Variances Lower 95 % CI
## 1 M1 Ambiente 3 16.66333 0.0140333333 16.36906
## 7 M1 Refrigerado 3 16.66000 0.1744000000 15.62259
## 2 M2 Ambiente 3 16.77667 0.0004333333 16.72496
## 8 M2 Refrigerado 3 20.40000 0.0048000000 20.22789
## 3 M3 Ambiente 3 18.60000 0.0001000000 18.57516
## 9 M3 Refrigerado 3 19.44667 0.0080333333 19.22402
## 4 M4 Ambiente 3 15.83000 0.0001000000 15.80516
## 10 M4 Refrigerado 3 16.41333 0.0065333333 16.21254
## 5 M5 Ambiente 3 19.20333 0.1220333333 18.33554
## 11 M5 Refrigerado 3 18.22667 0.0022333333 18.10927
## 6 M6 Ambiente 3 16.02333 0.0004333333 15.97162
## 12 M6 Refrigerado 3 19.33333 0.0134333333 19.04542
## Upper 95 % CI
## 1 16.95761
## 7 17.69741
## 2 16.82838
## 8 20.57211
## 3 18.62484
## 9 19.66932
## 4 15.85484
## 10 16.61412
## 5 20.07112
## 11 18.34406
## 6 16.07504
## 12 19.62125
##
## Wald-Type Statistic (WTS):
## Test statistic df p-value p-value WTPS
## Fornecedores 8869.0324 5 0 0
## TemperaturaA 471.8885 1 0 0
## Fornecedores:TemperaturaA 3556.8293 5 0 0
##
## ANOVA-Type Statistic (ATS):
## Test statistic df1 df2 p-value
## Fornecedores 294.2862 2.2229 5.242561 3.766308e-06
## TemperaturaA 471.8885 1.0000 5.242561 2.443307e-06
## Fornecedores:TemperaturaA 176.6938 2.2229 5.242561 1.414050e-05
plot(model2, factor = "Fornecedores:TemperaturaA", main = "Interaction", xlab = "Type",cex.axis = 1.5, cex.lab = 1.5, cex.main = 1.5)
plot(model2, factor = "Fornecedores", main = "Mean weight gain",xlab = "source", cex.axis = 1.5, cex.lab = 1.5, cex.main = 1.5)
##
## DV: Umidade
## Observations: 36
## D: 0.9992278
## MS total: 111
## Df Sum Sq H p.value
## Fornecedores 5 1999.42 18.0267 0.002913
## TemperaturaA 1 641.78 5.7862 0.016152
## Fornecedores:TemperaturaA 5 1087.64 9.8061 0.080919
## Residuals 24 153.17
Outro pressuposto da ANOVA é a ausência de outliers em todos os grupos. Isso pode ser verificado através de um gráfico do tipo boxplot.
Os gráficos mostram que não há outliers nos grupos analisados.
Outro pressuposto da ANOVA é que os grupos apresentem variâncias homogêneas. Esse pressuposto será analisado aqui pelo teste de Levene.
leveneTest(Umidade ~ Fornecedores*TemperaturaA, dff, center = mean)
## Levene's Test for Homogeneity of Variance (center = mean)
## Df F value Pr(>F)
## group 11 9.3656 2.991e-06 ***
## 24
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Os resultados indicam que as variâncias são homogêneas, uma vez que o teste de Levene apresentou p superior a 0,05.
Para essa análise, será utilizado o contraste “soma”.
Será criado um modelo de ANOVA usando a função aov
. O
modelo escolhido é um modelo fatorial completo, que inclui os efeitos
principais das variáveis independentes “Gênero” e “Álcool” bem como a
interação entre elas.
Para avaliar a significância das variáveis independentes e da sua interação, será utilizada a soma de quadrados do tipo III. Mais informações sobre os tipos de soma dos quadrados podem ser encontradas no livro “Discovering Statistics Using R” 1.
O resultado nos indica que há efeito do “Álcool” [F(2,42) = 20,07; p < 0,001] e da interação entre “Gênero” e “Álcool” [F(2,42) = 11,91; p < 0,001] sobre a memória. Dado que existe interação, os efeitos principais não devem ser interpretados. Para investigar melhor essa interação, será feito um gráfico de linhas.
str(dff)
## tibble [36 × 4] (S3: tbl_df/tbl/data.frame)
## $ Fornecedores: Factor w/ 6 levels "M1","M2","M3",..: 1 1 1 2 2 2 3 3 3 4 ...
## $ Rep : num [1:36] 1 2 3 1 2 3 1 2 3 1 ...
## $ TemperaturaA: Factor w/ 2 levels "Ambiente","Refrigerado": 1 1 1 1 1 1 1 1 1 1 ...
## $ Umidade : num [1:36] 16.8 16.6 16.6 16.8 16.8 ...
dff$Fornecedores<-as.factor(dff$Fornecedores)
dff$TemperaturaA<-as.factor(dff$TemperaturaA)
dff$Umidade<-as.double(dff$Umidade)
str(dff)
## tibble [36 × 4] (S3: tbl_df/tbl/data.frame)
## $ Fornecedores: Factor w/ 6 levels "M1","M2","M3",..: 1 1 1 2 2 2 3 3 3 4 ...
## $ Rep : num [1:36] 1 2 3 1 2 3 1 2 3 1 ...
## $ TemperaturaA: Factor w/ 2 levels "Ambiente","Refrigerado": 1 1 1 1 1 1 1 1 1 1 ...
## $ Umidade : num [1:36] 16.8 16.6 16.6 16.8 16.8 ...
?as.vector
Pelo gráfico, parece que o consumo de álcool não afetou a memória
entre as mulheres. Para os homens, o padrão indica que não houve
diferença entre não consumir álcool e consumir duas canecas, mas que o
consumo de quatro canecas reduziu o escore de memória.
Para verificar se essas diferenças são estatisticamente significativas,
faremos comparações entre pares.
## # A tibble: 30 × 10
## TemperaturaA term .y. group1 group2 df statistic p p.adj
## * <fct> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Ambiente Fornecedo… Umid… M1 M2 24 -0.817 4.22e- 1 1 e+ 0
## 2 Ambiente Fornecedo… Umid… M1 M3 24 -14.0 5.16e-13 7.74e-12
## 3 Ambiente Fornecedo… Umid… M1 M4 24 6.01 3.36e- 6 5.04e- 5
## 4 Ambiente Fornecedo… Umid… M1 M5 24 -18.3 1.32e-15 1.98e-14
## 5 Ambiente Fornecedo… Umid… M1 M6 24 4.61 1.11e- 4 1.67e- 3
## 6 Ambiente Fornecedo… Umid… M2 M3 24 -13.1 1.87e-12 2.80e-11
## 7 Ambiente Fornecedo… Umid… M2 M4 24 6.82 4.68e- 7 7.02e- 6
## 8 Ambiente Fornecedo… Umid… M2 M5 24 -17.5 3.67e-15 5.51e-14
## 9 Ambiente Fornecedo… Umid… M2 M6 24 5.43 1.41e- 5 2.11e- 4
## 10 Ambiente Fornecedo… Umid… M3 M4 24 20.0 1.87e-16 2.80e-15
## # ℹ 20 more rows
## # ℹ 1 more variable: p.adj.signif <chr>
## # A tibble: 6 × 10
## Fornecedores term .y. group1 group2 df statistic p p.adj
## * <fct> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 M1 Temperatur… Umid… Ambie… Refri… 24 0.0240 9.81e- 1 9.81e- 1
## 2 M2 Temperatur… Umid… Ambie… Refri… 24 -26.1 3.91e-19 3.91e-19
## 3 M3 Temperatur… Umid… Ambie… Refri… 24 -6.10 2.65e- 6 2.65e- 6
## 4 M4 Temperatur… Umid… Ambie… Refri… 24 -4.20 3.14e- 4 3.14e- 4
## 5 M5 Temperatur… Umid… Ambie… Refri… 24 7.04 2.81e- 7 2.81e- 7
## 6 M6 Temperatur… Umid… Ambie… Refri… 24 -23.9 3.17e-18 3.17e-18
## # ℹ 1 more variable: p.adj.signif <chr>
Os resultados da comparação entre pares confirmam a hipótese levantada com a análise do gráfico. Há diferença entre os gêneros no escore de memória apenas na condição na qual foram consumidas quatro canecas de álcool. Para o gênero feminino, não houve efeito do álcool sobre a memória. Já para o gênero masculino, o consumo de quatro canecas diminuiu o escore de memória.
Gênero | Álcool | Variável | n | Mediana | Desvio absoluto mediano |
---|---|---|---|---|---|
M1 | Ambiente | Umidade | 3 | 16.60 | 0.015 |
M2 | Ambiente | Umidade | 3 | 16.77 | 0.015 |
M3 | Ambiente | Umidade | 3 | 18.60 | 0.015 |
M4 | Ambiente | Umidade | 3 | 15.83 | 0.015 |
M5 | Ambiente | Umidade | 3 | 19.40 | 0.015 |
M6 | Ambiente | Umidade | 3 | 16.03 | 0.015 |
M1 | Refrigerado | Umidade | 3 | 16.86 | 0.119 |
M2 | Refrigerado | Umidade | 3 | 20.44 | 0.000 |
M3 | Refrigerado | Umidade | 3 | 19.40 | 0.015 |
M4 | Refrigerado | Umidade | 3 | 16.46 | 0.000 |
M5 | Refrigerado | Umidade | 3 | 18.21 | 0.030 |
M6 | Refrigerado | Umidade | 3 | 19.39 | 0.030 |
Legenda: F = Feminino, M = Masculino, N = Nenhum consumo de álcool, 2C = Consumo de 2 canecas, 4C = Consumo de 4 Canecas.
kableExtra
: Por
Hao ZhuMaterial criado por Fernanda F. Peres.
Field, A. P., Miles, J., & Field, Z. (2012). Discovering statistics using R.↩︎