Factor intrasujetos.

Factores entresujetos.

Hipótesis.

\[H_0 = \mu_{t1} = \mu_{t2} = \mu_{t3}\]

#install.packages("datarium")
library(datarium)
data("selfesteem", package = "datarium")

datos = selfesteem
head(datos, 3)
boxplot(datos)

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
# install.packages("datarium")
data("selfesteem", package = "datarium")

datos = selfesteem
datos = datos  %>%
  gather(key = "tiempo",
         value = "rto",
         t1, t2, t3) %>%
  mutate_at(vars(id, tiempo), as.factor)
View(datos)
boxplot(datos)

datos %>%
  group_by(tiempo) %>%
  summarise(media = mean(rto),
            desv = sd(rto),
            n = n(),
            cv = 100*desv/media)
boxplot(datos$rto ~ datos$tiempo)

library(rstatix)
## 
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
## 
##     filter
datos %>%
  group_by(tiempo) %>%
  identify_outliers(rto)

Probando normalidad.

datos %>%
  group_by(tiempo) %>%
  shapiro_test(rto)

Supuesto de esfericidad.

res.aov <- anova_test(data = datos,
                      dv = rto,
                      wid = id,
                      within = tiempo)

# Esfericidad
res.aov$`Mauchly's Test for Sphericity`
get_anova_table(res.aov)
# Se usa el p-valor ajustado (p.adj)

datos %>%
  pairwise_t_test(
    rto ~ tiempo, paired = TRUE,
    p.adjust.method = "bonferroni")

Medidas repetidas de dos vías.

# Wide format
data("selfesteem2", package = "datarium")

datos2 = selfesteem2
View(datos2)
datos2 = selfesteem2
datos2$treatment = gl(2,12,24, c('con fert', 'sin fert'))
datos2 = datos2 %>% 
  gather(key='tiempo', value = 'rto',
         t1,t2,t3)
datos2 %>%
  group_by(treatment, tiempo) %>%
  summarise(media = mean(rto),
            desv = sd(rto),
            n = n(),
            cv = 100*desv/media)
## `summarise()` has grouped output by 'treatment'. You can override using the
## `.groups` argument.

Visualización.

library(ggplot2)

ggplot(datos2)+
  aes(tiempo, rto, fill=treatment)+
  geom_boxplot()

Pruebas de datos atípicos.

datos2 %>%
  group_by(treatment, tiempo) %>%
  identify_outliers(rto)
datos2 %>%
  group_by(treatment, tiempo) %>%
  shapiro_test(rto)

Revisión p-valor.

res.aov <- anova_test(
  data = datos2,
  dv = rto,
  wid = id,
  within = c(treatment,
             tiempo)
  )
get_anova_table(res.aov)
datos2 %>%
  group_by(treatment, tiempo) %>%
  identify_outliers(rto)
datos2 %>%
  group_by(treatment, tiempo) %>%
  shapiro_test(rto)

Gráfico de interacción.

interaction.plot(datos2$tiempo,
                 datos2$treatment,
                 datos2$rto)

datos2 %>% 
  group_by(tiempo, treatment) %>% 
  summarise(mean_rto = mean(rto)) %>% 
  ggplot()+
  aes(tiempo, mean_rto,
      color=treatment,
      group=treatment)+
  geom_point(size=5)+
  geom_line(linewidth=3)
## `summarise()` has grouped output by 'tiempo'. You can override using the
## `.groups` argument.

Referencia.