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)
##
## Control Experimental
## 35 39
## [1] 74
| 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 |
| 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 |
| 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 |
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))
| 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.
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.