1 Contextualização

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.

2 Carregamento dos pacotes

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)

3 Leitura e visualização do banco de df

## 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.

3.1 Ordenando a variável “Álcool”

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.

4 Verificação dos pressupostos do modelo

4.1 Normalidade

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

4.2 Ausência de outliers

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.

4.3 Homogeneidade de variâncias

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.

5 Realização do teste de ANOVA de duas vias

5.1 Trocando o tipo de contraste

Para essa análise, será utilizado o contraste “soma”.

5.2 Criação do modelo de ANOVA

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.

5.3 Análise dos resultados do modelo

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.

5.4 Análise da interação entre “Gênero” e “Álcool” sobre a “Memória”

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.

5.5 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.

6 Análise descritiva

6.1 Médias e desvios

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

6.2 Gráficos de dispersão por grupo

Legenda: F = Feminino, M = Masculino, N = Nenhum consumo de álcool, 2C = Consumo de 2 canecas, 4C = Consumo de 4 Canecas.

7 Material de Apoio

8 Créditos

Material criado por Fernanda F. Peres.


  1. Field, A. P., Miles, J., & Field, Z. (2012). Discovering statistics using R.↩︎