Requisitos previos

Asegúrese de haber instalado los siguientes paquetes de R:

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.3.2
library(rstatix)
## Warning: package 'rstatix' was built under R version 4.3.2
## 
## Attaching package: 'rstatix'
## 
## The following object is masked from 'package:stats':
## 
##     filter

ANOVA de medidas repetidas unidireccionales

Preparación de datos

Usaremos el conjunto de datos de puntuación de autoestima medido en tres momentos. Los datos están disponibles en el paquete datarium.

library(readxl)
EJERCICIO1DISEÑO <- read_excel("C:/vale/EJERCICIO1DISEÑO.xlsx")
View(EJERCICIO1DISEÑO)
# Data preparation
# Wide format
data("EJERCICIO1DISEÑO")
## Warning in data("EJERCICIO1DISEÑO"): data set 'EJERCICIO1DISEÑO' not found
head(EJERCICIO1DISEÑO)
# Gather columns t1, t2 and t3 into long format
# Convert id and time into factor variables
EJERCICIO1DISEÑO <-EJERCICIO1DISEÑO %>%
  gather(key = "time", value = "score", X1, X2, X3, X4) %>%
  convert_as_factor(time)
head(EJERCICIO1DISEÑO,3)

El ANOVA de medidas repetidas unidireccionales se puede utilizar para determinar si las puntuaciones medias de autoestima son significativamente diferentes entre los tres puntos temporales.

Resumen estadístico

Calcular algunas estadísticas resumidas de la autoestima scorepor grupos ( time): media y sd (desviación estándar)

EJERCICIO1DISEÑO %>%
  group_by(time) %>%
  get_summary_stats(score, type = "mean_sd")

Visualización

Cree un diagrama de caja y agregue puntos correspondientes a valores individuales:

bxp <- ggboxplot(EJERCICIO1DISEÑO, x = "time", y = "score", add = "point")
bxp

Verifique los supuestos

Valores atípicos

Los valores atípicos se pueden identificar fácilmente utilizando métodos de diagrama de caja, implementados en la función R identify_outliers()[paquete rstatix].

EJERCICIO1DISEÑO %>%
  group_by(time) %>%
  identify_outliers(score)
  • No hubo valores atipicos extremos

Supuesto de normalidad

El supuesto de normalidad se puede verificar calculando la prueba de Shapiro-Wilk para cada momento. Si los datos se distribuyen normalmente, el valor p debe ser mayor que 0,05.

EJERCICIO1DISEÑO%>%
  group_by(time) %>%
  shapiro_test(score)

-La puntuación de autoestima se distribuyó normalmente en cada momento, según lo evaluado mediante la prueba de Shapiro-Wilk (p > 0,05).

Tenga en cuenta que, si el tamaño de su muestra es mayor que 50, se prefiere el gráfico QQ normal porque en tamaños de muestra más grandes la prueba de Shapiro-Wilk se vuelve muy sensible incluso a una desviación menor de la normalidad.

El gráfico QQ dibuja la correlación entre unos datos determinados y la distribución normal. Cree gráficos QQ para cada punto temporal:

ggqqplot(EJERCICIO1DISEÑO, "score", facet.by = "time")

- Del gráfico anterior, como todos los puntos caen aproximadamente a lo largo de la línea de referencia, podemos asumir normalidad.

Suposición de esfericidad

Como se mencionó en secciones anteriores, la suposición de esfericidad se verificará automáticamente durante el cálculo de la prueba ANOVA utilizando la función R anova_test()[paquete rstatix]. La prueba de Mauchly se utiliza internamente para evaluar el supuesto de esfericidad.

Al utilizar la función get_anova_table()[rstatix] para extraer la tabla ANOVA, la corrección de esfericidad de Greenhouse-Geisser se aplica automáticamente a los factores que violan el supuesto de esfericidad.

calculo

res.aov <- anova_test(EJERCICIO1DISEÑO, dv = score,  wid = ID, within = time)
get_anova_table(res.aov)

La puntuación de autoestima fue estadísticamente significativamente diferente en los diferentes momentos durante el tiempo, F(3, 87) = 3293,515, p <0,0001, eta2[g] = 0,88

dónde: F Indica que estamos comparando con una distribución F (prueba F); (3, 87) indica los grados de libertad en el numerador (DFn) y el denominador (DFd), respectivamente; 3293,515 indica el valor estadístico F obtenido pespecifica el valor p geses el tamaño del efecto generalizado (cantidad de variabilidad debido al factor intrasujetos)

Pruebas post hoc

Puede realizar múltiples pruebas t pareadas entre los niveles del factor intrasujetos (aquí time). Los valores P se ajustan utilizando el método de corrección de pruebas múltiples de Bonferroni.

# pairwise comparisons
pwc <- EJERCICIO1DISEÑO %>%
  pairwise_t_test(
    score ~ time, paired = TRUE,
    p.adjust.method = "bonferroni"
    )
pwc

-Todas las diferencias por pares son estadísticamente significativas.

Informe

Podríamos informar el resultado de la siguiente manera:

La puntuación de autoestima fue estadísticamente significativamente diferente en los diferentes momentos durante el tiempo, F(3, 87) = 3293,515, p <0,0001, eta2[g] = 0,88

Los análisis post hoc con un ajuste de Bonferroni revelaron que todas las diferencias por pares, entre puntos temporales, fueron estadísticamente significativas (p <= 0,05).

# Visualization: box plots with p-values
pwc <- pwc %>% add_xy_position(x = "time")
bxp + 
  stat_pvalue_manual(pwc) +
  labs(
    subtitle = get_test_label(res.aov, detailed = TRUE),
    caption = get_pwc_label(pwc)
  )