Diseño de las comparaciones

La cohorte 2025-A cuenta con mediciones pretest (A) y postest (B) de 39 participantes con datos completos. La cohorte 2025-B cuenta con una medición inicial (C) de 35 participantes; posteriormente también participó en actividades de voluntariado y no se dispone de su postest. Por ello, C constituye una cohorte de comparación, no un grupo control sin intervención. A–B son mediciones relacionadas; A–C y B–C son muestras independientes. Las diferencias entre cohortes no permiten establecer efectos causales de la intervención.

library(readxl)
library(dplyr)
library(tidyr)
library(knitr)
library(rstatix)

Carga y preparación de los datos

## 
##      Control Experimental 
##           35           39
## [1] 74

Estadísticas descriptivas

Tabla 3.32. Pretest y postest de la cohorte 2025-A (A vs. B)

Dimensión n_A: 2025-A pretest n_B: 2025-A postest M_A: 2025-A pretest M_B: 2025-A postest DE_A: 2025-A pretest DE_B: 2025-A postest
Total 39 39 54.15 56.46 7.23 5.29
Ayudar 39 39 22.05 23.38 3.49 2.61
Compartir 39 39 12.72 12.77 1.47 1.27
Empatía 39 39 20.28 20.95 2.71 2.32

Tabla 3.33. Mediciones iniciales de las cohortes 2025-A y 2025-B (A vs. C)

Medición Dimensión n M DE
A: 2025-A pretest Total 39 54.15 7.23
A: 2025-A pretest Ayudar 39 22.05 3.49
A: 2025-A pretest Compartir 39 12.72 1.47
A: 2025-A pretest Empatía 39 20.28 2.71
C: 2025-B inicial Total 35 48.17 8.59
C: 2025-B inicial Ayudar 35 20.20 4.38
C: 2025-B inicial Compartir 35 11.23 2.00
C: 2025-B inicial Empatía 35 17.91 3.42

Tabla 3.34. Postest 2025-A y medición inicial 2025-B (B vs. C)

Medición Dimensión n M DE
B: 2025-A postest Total 39 56.46 5.29
B: 2025-A postest Ayudar 39 23.38 2.61
B: 2025-A postest Compartir 39 12.77 1.27
B: 2025-A postest Empatía 39 20.95 2.32
C: 2025-B inicial Total 35 48.17 8.59
C: 2025-B inicial Ayudar 35 20.20 4.38
C: 2025-B inicial Compartir 35 11.23 2.00
C: 2025-B inicial Empatía 35 17.91 3.42

Pruebas de Wilcoxon y tamaño del efecto

Se utilizó la prueba de rangos con signo de Wilcoxon para A vs. B (muestras relacionadas) y la prueba de suma de rangos de Wilcoxon para A vs. C y B vs. C (muestras independientes). Se calculó el tamaño del efecto r mediante rstatix::wilcox_effsize (magnitud absoluta del estadístico estandarizado dividida entre la raíz del tamaño muestral pertinente). Los tamaños del efecto de las comparaciones entre cohortes describen diferencias entre grupos, no efectos atribuibles causalmente al voluntariado.

# Función única: mismo orden de grupos para W y para r.
calcular <- function(dim, a, b, pareado, etiqueta) {
  grupo_a <- if (a == "C") "Control" else "Experimental"
  grupo_b <- if (b == "C") "Control" else "Experimental"
  x <- datos_fase3_listo[[paste0(a, "_", dim)]][datos_fase3_listo$Grupo == grupo_a]
  y <- datos_fase3_listo[[paste0(b, "_", dim)]][datos_fase3_listo$Grupo == grupo_b]

  if (pareado) {
    completos <- complete.cases(x, y)
    x <- x[completos]; y <- y[completos]
    # El orden x/y coincide con el Wilcoxon de la tabla original.
    prueba <- wilcox.test(x, y, paired=TRUE)
    # Un par por identificador; cada sujeto tiene dos observaciones.
    largo <- tibble(id=rep(seq_along(x), each=2),
                    Medición=rep(c("A", "B"), times=length(x)),
                    Puntaje=as.vector(rbind(x, y)))
    # Los niveles A, B son explícitos para asegurar el orden de los pares.
    largo$Medición <- factor(largo$Medición, levels=c("A","B"))
    efecto <- rstatix::wilcox_effsize(largo, Puntaje ~ Medición,
                                      paired=TRUE)$effsize[1]
    n1 <- length(x); n2 <- length(y)
  } else {
    x <- x[!is.na(x)]; y <- y[!is.na(y)]
    prueba <- wilcox.test(x, y, paired=FALSE)
    largo <- tibble(Grupo=factor(c(rep("Primero", length(x)),
                                   rep("Segundo", length(y))),
                                 levels=c("Primero","Segundo")),
                    Puntaje=c(x,y))
    efecto <- rstatix::wilcox_effsize(largo, Puntaje ~ Grupo,
                                      paired=FALSE)$effsize[1]
    n1 <- length(x); n2 <- length(y)
  }
  tibble(Comparación=etiqueta, Dimensión=dim, n1=n1, n2=n2,
         W=unname(prueba$statistic), p=prueba$p.value,
         r=as.numeric(efecto))
}

resultados <- bind_rows(
  lapply(dimensiones, function(d) calcular(d,"A","B",TRUE,"A vs. B")),
  lapply(dimensiones, function(d) calcular(d,"B","C",FALSE,"B vs. C")),
  lapply(dimensiones, function(d) calcular(d,"A","C",FALSE,"A vs. C"))
)

# Comprobación contra los W previamente documentados (Total de cada comparación).
stopifnot(isTRUE(all.equal(resultados$W[resultados$Comparación=="A vs. B" &
                                          resultados$Dimensión=="Total"], 119)),
          isTRUE(all.equal(resultados$W[resultados$Comparación=="B vs. C" &
                                          resultados$Dimensión=="Total"], 1059.5)),
          isTRUE(all.equal(resultados$W[resultados$Comparación=="A vs. C" &
                                          resultados$Dimensión=="Total"], 952)))

resultados_tabla <- resultados %>%
  mutate(W=round(W,1),
         p=ifelse(p < .001, "< .001", sprintf("%.3f",p)),
         r=round(r,3))

Tabla 3.35. Pruebas de Wilcoxon y tamaños del efecto

Comparación Dimensión n1 n2 W p r
A vs. B Total 39 39 119.0 < .001 0.590
A vs. B Ayudar 39 39 76.5 < .001 0.603
A vs. B Compartir 39 39 45.5 0.669 0.018
A vs. B Empatía 39 39 118.5 0.010 0.413
B vs. C Total 39 35 1059.5 < .001 0.475
B vs. C Ayudar 39 35 1007.5 < .001 0.411
B vs. C Compartir 39 35 1002.0 < .001 0.409
B vs. C Empatía 39 35 1035.5 < .001 0.447
A vs. C Total 39 35 952.0 0.004 0.340
A vs. C Ayudar 39 35 853.0 0.064 0.216
A vs. C Compartir 39 35 985.0 < .001 0.387
A vs. C Empatía 39 35 954.5 0.003 0.344

Nota. W = estadístico de Wilcoxon; p = significancia estadística; r = tamaño del efecto. A = pretest 2025-A; B = postest 2025-A; C = medición inicial 2025-B. A vs. B: muestras relacionadas; B vs. C y A vs. C: independientes. n1 y n2 corresponden a los tamaños efectivos de cada comparación. El tamaño del efecto no demuestra causalidad.

Interpretación

Las diferencias pretest–postest de 2025-A se interpretan como cambios observados en la misma cohorte. Las diferencias frente a 2025-B deben leerse con cautela, pues las cohortes no fueron asignadas aleatoriamente y ya diferían en la medición inicial. La cohorte 2025-B no contó con una medición posterior. La magnitud de los tamaños del efecto se interpreta conjuntamente con el diseño y los valores p.