Pacotes

#install.packages("psych")
#install.packages("afex")
#install.packages("emmeans")
#install.packages("DT")

require(tidyverse)
require(psych)
require(DT)
require(afex)
require(emmeans)

Descrição do Experimento:

Esses são dados ficticios com uma amostra de 30 adultos (Individuos). Cada Individuo recebeu um conjunto de palavras. Posteriormente, algumas palavras foram submetidas a um teste de múltipla escolha, e as demais simplesmente reestudadas. Imediatamente depois, sua memória foi testada para todas as palavras para determinar se havia diferenças de memória dependendo se a palavra foi testada ou reestudada (teste final imediato). Dois dias depois, os sujeitos voltaram e fizeram o mesmo teste em todas as palavras novamente (teste final atrasado). A variável dependente (Desempenho da Memória) é uma proporção de itens lembrados corretamente para o teste imediato e atrasado para ambas as condições.

Variáveis:

Id: Referente a cada indivíduo (30 adultos)

Metodo: Método de estudo (Teste ou reestudo)

Tempo: Tempo 1 = Imediatamente; Tempo 2 = Atrasado

DM: Desempenho da memória

Conjunto de dados

Data = read.table("Chapter_21_Within_Data.csv", sep=",", header=T)
names(Data) = c("Id", "Metodo", "Tempo", "DM")
datatable(Data)

Transformação dos dados

str(Data)
## 'data.frame':    120 obs. of  4 variables:
##  $ Id    : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Metodo: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Tempo : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ DM    : num  96 81 73 90 72 83 83 96 86 72 ...
dados = Data %>%
   mutate(Id = as.factor(Id))
   
dados = dados %>%
  mutate(Metodo = factor(Metodo,
                         levels = c(1,2),
                         labels = c("Teste", "Reestudo")))

dados = dados %>%
  mutate(Tempo = factor(Tempo,
                         levels = c(1,2),
                         labels = c("Tempo1", "Tempo2")))
str(dados)
## 'data.frame':    120 obs. of  4 variables:
##  $ Id    : Factor w/ 30 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Metodo: Factor w/ 2 levels "Teste","Reestudo": 1 1 1 1 1 1 1 1 1 1 ...
##  $ Tempo : Factor w/ 2 levels "Tempo1","Tempo2": 1 1 1 1 1 1 1 1 1 1 ...
##  $ DM    : num  96 81 73 90 72 83 83 96 86 72 ...

Descritivas

Descritivas por Metodo:

resumo1 = dados %>%
  group_by(Metodo) %>%
  summarise(n = n(), 
            Media = round(mean(DM),2),
            DP = round(sd(DM),2), 
            Minimo = min(DM), 
            Mediana = median(DM),
            Maximo = max(DM))
datatable(resumo1)

Descritivas por Tempo:

resumo2 = dados %>%
  group_by(Tempo) %>%
  summarise(n = n(), 
            Media = round(mean(DM),2),
            DP = round(sd(DM),2), 
            Minimo = min(DM), 
            Mediana = median(DM),
            Maximo = max(DM))
datatable(resumo2)

Descritivas por Método e tempo:

resumo3 = dados %>%
  group_by(Metodo, Tempo) %>%
  summarise(n = n(),
            Media = round(mean(DM),2), 
            DP = round(sd(DM),2),
            Minimo = min(DM), 
            Mediana = median(DM),
            Maximo = max(DM))
datatable(resumo3)

Gráficos

Gráfico BoxPLot:

ggplot(dados, aes(x = Metodo, y = DM, fill = Metodo)) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Accent") +
  theme_gray() +
  facet_wrap(vars(Tempo))

Grafico de perfis:

ggplot(Data, aes(x = Tempo, y = DM,
                            color = as.factor(Id))) +
  geom_point() +
  geom_line() + 
  facet_wrap(dados$Metodo) +
  theme(legend.position = "none")

Grafico de Interação:

interaction.plot(x.factor     = Data$Tempo,
                 trace.factor = Data$Metodo,
                 response     = Data$DM,
                 fun = mean,
                 type="b",
                 col=c("black","red"),  
                 pch=c(19, 17),              
                 fixed=TRUE,                  
                 leg.bty = "o",
                 ylab="Desempenho da Memória",
                 xlab="Tempo")

Pelos Gráficos podemos observar que há uma diferença entre o método quando comparado em tempos diferentes. No tempo 1 (Imediatamente), não aparenta ter diferença entre o método um e no médoto 2, porém no tempo 2 (2 dias depois), o método de teste se manteve melhor que o método reestudo.

ANOVA

fit = aov_ez("Id","DM",dados,within=c("Metodo","Tempo"))
summary(fit)
## 
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
## 
##              Sum Sq num Df Error SS den Df  F value    Pr(>F)    
## (Intercept)  752558      1   2497.3     29 8738.970 < 2.2e-16 ***
## Metodo         1340      1   3175.7     29   12.237 0.0015321 ** 
## Tempo          1184      1   2599.3     29   13.214 0.0010667 ** 
## Metodo:Tempo   2332      1   3353.7     29   20.165 0.0001042 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Como o p valor é menor do que 0.05 para as variáveis. Com um nível de significância de 0.05 conclui-se que as variáveis diferem entre si.

Análise Gráfica dos Resíduos:

res=residuals(fit)
## Data was changed during ANOVA calculation. Thus, residuals cannot be added to original data.
## residuals(..., append = TRUE) will return data and residuals.
hist(res)

qqnorm(res)
qqline(res)

Teste Shapiro:

shapiro.test(res)
## 
##  Shapiro-Wilk normality test
## 
## data:  res
## W = 0.97169, p-value = 0.01237

Conclusão: Pelos gráficos o modelo aparenta apresentar desvios na suposisão de normalidade dos resíduos. Porém no teste, para um nível de significancia de 0.01, não rejeita a hipótese nula de normalidade.