#install.packages("psych")
#install.packages("afex")
#install.packages("emmeans")
#install.packages("DT")
require(tidyverse)
require(psych)
require(DT)
require(afex)
require(emmeans)
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
Data = read.table("Chapter_21_Within_Data.csv", sep=",", header=T)
names(Data) = c("Id", "Metodo", "Tempo", "DM")
datatable(Data)
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 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á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.
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.