Este informe analiza datos sintéticos del diseño DGP v1.3 en el escenario E0. Los resultados describen una única realización simulada; no representan observaciones de estudiantes reales, efectos causales, ni evidencia generalizable a una población. La semilla 20261018 corresponde al generador de origen. Este informe es reproducible a partir de los CSV originales congelados; no pretende reimplementar en R el generador Python.
Ocho equipos (cuatro homogéneos GHO, cuatro heterogéneos GHE) con cuatro estudiantes cada uno ejecutan seis productos: A1–A3 (casos aplicados) y B1–B3 (ideas de investigación). Las posiciones 1–3 determinan las temáticas, cada una repetida en dos modalidades. Se registra también un trabajo final por equipo. La media de actividades es exactamente la media no ponderada de los seis productos; con menos de seis datos válidos, se detiene el procesamiento, en lugar de promediar un subconjunto.
Este informe único responde las seis preguntas usando el diseño proporcionado por el profesor, no un experimento nuevo. Las variables, escalas y datos del escenario E0 fueron simulados por el equipo. La elección de Welch, las correlaciones y los resúmenes descriptivos es una decisión analítica del equipo, no una prueba única impuesta por el docente. Se incluyen objetivos, hipótesis pertinentes, supuestos, decisiones, gráficos y conclusiones particulares. La matriz completa de operacionalización se conserva como documento independiente; a continuación figura su síntesis.
| Variable | Definición operacional y fuente | Escala / unidad | Pregunta |
|---|---|---|---|
| Composición | GHO (una disciplina) y GHE (varias disciplinas);
grupos.csv |
Nominal; equipo | P1–P2 |
| Calificación grupal | Suma ponderada de cuatro criterios de nivel 0–4, pesos
30/30/25/15, reescalada a 0–100;
calificaciones_grupales.csv |
Cuantitativa discreta; equipo × producto | P1, P3, P5 |
| Interacción | Cuatro criterios ordinales sintéticos
de 0–4 con pesos iguales (25%); índice
100 × (s1+s2+s3+s4)/16; interacciones.csv |
Ordinal por criterio; índice derivado 0–100; equipo × producto | P2 |
| Disciplina académica de referencia | Área de formación del equipo GHO, frente a la categoría
conjunta Grupo Mixto de los cuatro GHE; grupos.csv |
Nominal; equipo | P3 |
| Disciplina temática | Área del contenido A/B de la actividad;
actividades.csv |
Nominal; producto | P3 complementaria, P4 |
| Elección y exposición | Tema elegido en proyecto final y número de posiciones
temáticas previas coincidentes; seleccion_tema.csv,
posiciones_tematicas.csv |
Nominal y conteo 0–3; equipo | P4 |
| Promedio de asignaciones | Media completa de seis notas grupales y medias por modalidad de tres notas A1–A3 y tres B1–B3 | Cuantitativa; equipo | P1, P5 |
| Nota final | Calificación de rúbrica 0–100 del trabajo final independiente | Cuantitativa; equipo | P4, P5 |
| Disciplina de origen y éxito individual | Área de formación y media de las seis notas por
estudiante; media como indicador principal de éxito (rúbrica
35/30/20/15), con distribución complementaria;
estudiantes.csv,
calificaciones_individuales.csv |
Nominal y cuantitativa; estudiante anidado | P6 |
Criterio de conservación: el código R se presenta
íntegramente (echo=TRUE) junto con sus salidas; se
mantienen sin cambio los nueve CSV congelados. Las extensiones de P2, P3
y P5 se identifican como análisis complementarios, no sustituciones
silenciosas.
Reservas de medición. En el material fuente no se
documentan etiquetas conductuales sustantivas para
criterio_1 a criterio_4 de interacción; no
debe afirmarse que correspondan al número de mensajes, a una encuesta
Likert aplicada ni a registros reales de WhatsApp. Las 48 valoraciones
por producto son la decisión provisional implementada en E0. El profesor
autorizó definir una escala de interacción propia, pero su validez de
contenido debe justificarse. Tampoco se equipara la rúbrica sintética
con la rúbrica oficial de calificación.
Correspondencia con la consigna — Versión 3.2. P3 emplea como análisis principal la disciplina académica de referencia de cada equipo homogéneo frente a los cuatro GHE reunidos bajo la etiqueta analítica «Grupo Mixto»; la comparación por temas A/B se conserva solo como complemento. P4 añade una matriz que documenta exposición, notas A/B por posición y elección final sin atribuir causalidad. P5 explicita promedios de A1–A3, B1–B3 y conjunto, con correlaciones complementarias. P6 define «mayor éxito» como promedio académico individual y presenta su distribución. Una discusión independiente formula mejoras para futuros diseños; no constituye una séptima pregunta de la consigna.
grupos <- leer("grupos")
estudiantes <- leer("estudiantes")
actividades <- leer("actividades")
cal_gr <- leer("calificaciones_grupales")
cal_ind <- leer("calificaciones_individuales")
interacciones <- leer("interacciones")
posiciones <- leer("posiciones_tematicas")
seleccion <- leer("seleccion_tema")
finales <- leer("trabajos_finales")
assert(nrow(grupos)==8 && !anyDuplicated(grupos$grupo_id),"se requieren ocho grupos distintos")
assert(identical(sort(table(grupos$composicion)),c(GHE=4L,GHO=4L)) ||
all(table(grupos$composicion)[c("GHE","GHO")]==4),"se requieren cuatro GHE y cuatro GHO")
assert(nrow(estudiantes)==32 && !anyDuplicated(estudiantes$estudiante_id),"32 estudiantes únicos")
assert(all(table(estudiantes$grupo_id)==4) && all(grupos$grupo_id %in% estudiantes$grupo_id),"cuatro alumnos por grupo")
assert(nrow(actividades)==48 && nrow(cal_gr)==48 && nrow(interacciones)==48,"48 productos, calificaciones e interacciones")
assert(nrow(cal_ind)==192,"192 calificaciones individuales")
assert(nrow(posiciones)==24,"24 posiciones temáticas")
assert(nrow(seleccion)==8 && nrow(finales)==8,"8 elecciones y 8 finales")
assert(!anyDuplicated(paste(actividades$grupo_id,actividades$codigo)),"clave actividades repetida")
assert(!anyDuplicated(paste(cal_gr$grupo_id,cal_gr$codigo)),"clave calificación grupal repetida")
assert(!anyDuplicated(paste(interacciones$grupo_id,interacciones$codigo)),"clave interacción repetida")
assert(!anyDuplicated(paste(cal_ind$estudiante_id,cal_ind$codigo)),"clave calificación individual repetida")
assert(all(table(cal_gr$grupo_id)==6) && all(table(interacciones$grupo_id)==6),"faltan productos por equipo")
assert(all(table(cal_ind$estudiante_id)==6),"faltan productos por estudiante")
assert(all(table(actividades$grupo_id)==6),"actividades incompletas")
assert(all(sort(unique(cal_gr$codigo))==sort(c("A1","A2","A3","B1","B2","B3"))),"códigos inesperados")
assert(all(cal_gr$grupo_id %in% grupos$grupo_id) && all(cal_ind$estudiante_id %in% estudiantes$estudiante_id),"claves huérfanas")
assert(all(interacciones$grupo_id %in% grupos$grupo_id) && all(finales$grupo_id %in% grupos$grupo_id),"grupos huérfanos")
assert(all(cal_ind$grupo_id==estudiantes$grupo_id[match(cal_ind$estudiante_id,estudiantes$estudiante_id)]),"estudiante en grupo incorrecto")
assert(all(cal_ind$disciplina==estudiantes$disciplina[match(cal_ind$estudiante_id,estudiantes$estudiante_id)]),"disciplina origen inconsistente")
assert(all(merge(cal_gr[,c("grupo_id","codigo","disciplina_tarea")],
actividades[,c("grupo_id","codigo","disciplina_tarea")],
by=c("grupo_id","codigo"))$disciplina_tarea.x ==
merge(cal_gr[,c("grupo_id","codigo","disciplina_tarea")],
actividades[,c("grupo_id","codigo","disciplina_tarea")],
by=c("grupo_id","codigo"))$disciplina_tarea.y),"disciplina tarea incompatible")
for (z in list(cal_gr$nota,cal_ind$nota,interacciones$nota,finales$nota))
assert(all(!is.na(z) & is.finite(z) & z>=0 & z<=100),"nota ausente/fuera de 0 a 100")
assert(!anyDuplicated(finales$grupo_id) && !anyDuplicated(seleccion$grupo_id),"final o selección duplicada")
assert(setequal(finales$grupo_id,grupos$grupo_id),"finales no cubren los ocho equipos")
assert(all(finales$tema_final==seleccion$tema_final[match(finales$grupo_id,seleccion$grupo_id)]),"tema final inconsistente")
control <- data.frame(tabla=c("grupos","estudiantes","actividades","calificaciones_grupales",
"calificaciones_individuales","interacciones","posiciones_tematicas","seleccion_tema","trabajos_finales"),
n=c(nrow(grupos),nrow(estudiantes),nrow(actividades),nrow(cal_gr),nrow(cal_ind),
nrow(interacciones),nrow(posiciones),nrow(seleccion),nrow(finales)),
esperado=c(8,32,48,48,192,48,24,8,8))
tabla(control,caption="Integridad de las nueve tablas fuente")
| tabla | n | esperado |
|---|---|---|
| grupos | 8 | 8 |
| estudiantes | 32 | 32 |
| actividades | 48 | 48 |
| calificaciones_grupales | 48 | 48 |
| calificaciones_individuales | 192 | 192 |
| interacciones | 48 | 48 |
| posiciones_tematicas | 24 | 24 |
| seleccion_tema | 8 | 8 |
| trabajos_finales | 8 | 8 |
Los controles anteriores verifican estructura, claves, integridad básica y rangos. No equivalen a los 40/40, 44/44 ni 17/17 controles citados en otras piezas documentales: su código de pruebas y resultados auxiliares no se incluyen necesariamente en este paquete R.
# Agregación por grupo: se reconstruye desde las notas originales, no desde P1/P2/P5.
pg <- aggregate(nota~grupo_id,data=cal_gr,FUN=mean)
n_g <- aggregate(nota~grupo_id,data=cal_gr,FUN=length)
assert(all(n_g$nota==6),"promedio grupal debe tener exactamente 6 productos")
names(pg)[2] <- "promedio6"
pg <- merge(pg,grupos[,c("grupo_id","composicion")],by="grupo_id")
pi <- aggregate(nota~grupo_id,data=interacciones,FUN=mean)
n_i <- aggregate(nota~grupo_id,data=interacciones,FUN=length)
assert(all(n_i$nota==6),"promedio de interacción requiere 6 notas")
names(pi)[2] <- "interaccion6"
pi <- merge(pi,grupos[,c("grupo_id","composicion")],by="grupo_id")
Objetivo: estimar y contrastar la diferencia de calificación promedio entre GHO y GHE. Hipótesis: H₀: μ_GHE = μ_GHO; H₁: μ_GHE ≠ μ_GHO. Regla de decisión: rechazar H₀ solo si la p ajustada de Holm para la familia P1–P2 es menor que α = 0.05. Supuestos: equipos tratados como unidades independientes; análisis exploratorio con cuatro equipos por composición; Welch admite varianzas diferentes y no demuestra la normalidad con n pequeño.
Hipótesis exploratoria: H₀: las medias grupales son iguales; H₁: difieren. Para evitar seudorreplicación se contrastan cuatro medias por composición mediante Welch bilateral (α=0.05), con ajuste Holm conjunto para P1–P2. Dado el pequeño tamaño por brazo y la ausencia de asignación aleatoria comprobable, no cabe interpretación causal.
p1 <- welch(pg,"promedio6")
tabla(pg[order(pg$composicion,pg$grupo_id),],caption="Medias de seis productos por equipo")
| grupo_id | promedio6 | composicion |
|---|---|---|
| GHE-01 | 68.750 | GHE |
| GHE-02 | 71.667 | GHE |
| GHE-03 | 72.083 | GHE |
| GHE-04 | 61.250 | GHE |
| GHO-01 | 81.042 | GHO |
| GHO-02 | 85.208 | GHO |
| GHO-03 | 47.083 | GHO |
| GHO-04 | 65.833 | GHO |
tabla(p1,caption="P1: diferencia GHE menos GHO, IC de Welch y prueba bilateral")
| contraste | media_GHE | media_GHO | diferencia | IC_inferior | IC_superior | estadistico_t | gl | p |
|---|---|---|---|---|---|---|---|---|
| GHE - GHO | 68.438 | 69.792 | -1.354 | -27.795 | 25.086 | -0.151 | 3.502 | 0.889 |
loo1 <- sensibilidad_welch(pg,"promedio6")
tabla(loo1,caption="P1: sensibilidad al excluir un equipo")
| grupo_excluido | diferencia | p |
|---|---|---|
| GHE-01 | -1.458 | 0.884 |
| GHE-02 | -2.431 | 0.806 |
| GHE-03 | -2.569 | 0.794 |
| GHE-04 | 1.042 | 0.912 |
| GHO-01 | 2.396 | 0.850 |
| GHO-02 | 3.785 | 0.741 |
| GHO-03 | -8.924 | 0.266 |
| GHO-04 | -2.674 | 0.847 |
boxplot(promedio6~composicion,data=pg,ylab="Media de seis productos (0–100)",
main="P1: composición de los equipos",col=c("grey85","grey65"))
stripchart(promedio6~composicion,data=pg,vertical=TRUE,method="jitter",pch=19,
add=TRUE,col="black")
Interpretación dinámica. La diferencia estimada GHE−GHO es -1.3542 puntos (IC95% [-27.7946, 25.0863]); p Welch = 0.8886. No se detecta una diferencia al umbral no ajustado; esto no prueba equivalencia ni ausencia de efecto. El intervalo expresa la incertidumbre bajo los supuestos del procedimiento, y la sensibilidad deja ver el efecto de cada equipo.
Conclusión específica de P1 (datos sintéticos E0). La media de las calificaciones colectivas de los equipos heterogéneos fue inferior a la de los homogéneos en 1.354 puntos, pero la evidencia obtenida no permite rechazar la hipótesis de igualdad de medias al nivel establecido después del ajuste por comparaciones múltiples. El intervalo de confianza es amplio e incluye diferencias de ambos signos. Esto es especialmente relevante porque la comparación dispone únicamente de cuatro equipos por condición, lo que limita la precisión y la capacidad de detectar diferencias. Las seis actividades de cada equipo se resumieron en una media para no considerarlas réplicas independientes. El resultado describe esta realización simulada; no demuestra equivalencia entre composiciones ni permite afirmar un efecto causal de la estructura grupal sobre el aprendizaje.
Objetivo: estimar la diferencia entre los índices promedio de interacción de equipos GHO y GHE. Hipótesis: H₀: μ_interacción,GHE = μ_interacción,GHO; H₁: difieren. Regla: p de Welch ajustada por Holm menor que 0.05. Supuestos y límites: seis puntuaciones por equipo, dependencia intragrupo, observador fijo del equipo y escala sintética sin etiquetas conductuales originales.
Se promedian exactamente seis evaluaciones de interacción por equipo y se contrasta una observación por grupo. Un mismo observador evalúa productos del mismo grupo; la severidad del observador no es separable de la composición de ese equipo.
p2 <- welch(pi,"interaccion6")
ps <- p.adjust(c(p1$p,p2$p),method="holm")
comparacion <- data.frame(pregunta=c("P1 composición","P2 interacción"),
diferencia=c(p1$diferencia,p2$diferencia),
p_Welch=c(p1$p,p2$p),p_Holm=ps)
tabla(pi[order(pi$composicion,pi$grupo_id),],caption="Medias de interacción por equipo")
| grupo_id | interaccion6 | composicion |
|---|---|---|
| GHE-01 | 61.458 | GHE |
| GHE-02 | 62.500 | GHE |
| GHE-03 | 75.000 | GHE |
| GHE-04 | 50.000 | GHE |
| GHO-01 | 67.708 | GHO |
| GHO-02 | 57.292 | GHO |
| GHO-03 | 64.583 | GHO |
| GHO-04 | 66.667 | GHO |
tabla(p2,caption="P2: contraste de interacción")
| contraste | media_GHE | media_GHO | diferencia | IC_inferior | IC_superior | estadistico_t | gl | p |
|---|---|---|---|---|---|---|---|---|
| GHE - GHO | 62.24 | 64.062 | -1.823 | -17.13 | 13.484 | -0.324 | 4.213 | 0.761 |
tabla(comparacion,caption="Ajuste Holm para la familia de dos contrastes P1 y P2")
| pregunta | diferencia | p_Welch | p_Holm |
|---|---|---|---|
| P1 composición | -1.354 | 0.889 | 1 |
| P2 interacción | -1.823 | 0.761 | 1 |
loo2 <- sensibilidad_welch(pi,"interaccion6")
tabla(loo2,caption="P2: análisis leave-one-group-out")
| grupo_excluido | diferencia | p |
|---|---|---|
| GHE-01 | -1.562 | 0.853 |
| GHE-02 | -1.910 | 0.821 |
| GHE-03 | -6.076 | 0.273 |
| GHE-04 | 2.257 | 0.678 |
| GHO-01 | -0.608 | 0.922 |
| GHO-02 | -4.080 | 0.486 |
| GHO-03 | -1.649 | 0.798 |
| GHO-04 | -0.955 | 0.880 |
boxplot(interaccion6~composicion,data=pi,ylab="Interacción media (0–100)",
main="P2: interacción",col=c("grey85","grey65"))
stripchart(interaccion6~composicion,data=pi,vertical=TRUE,method="jitter",pch=19,add=TRUE)
Interpretación dinámica. Diferencia GHE−GHO: -1.8229 puntos; IC95% [-17.1297, 13.4838]; p Welch=0.7613; p Holm=1.0000. No se detecta diferencia al umbral ajustado, sin que ello indique equivalencia.
Yostin pidió expresamente, además de las ponderaciones cualitativas
de los observadores, simular una variable cuantitativa
adicional de interacción por asignación. Como los nueve CSV
originales no contienen mensajes ni participaciones contadas, aquí se
genera un escenario complementario independiente,
registrado como numero_intervenciones_simuladas. No son
mensajes reales de WhatsApp ni registros efectuados por los
observadores; sus parámetros son supuestos didácticos, no estimaciones.
La puntuación cualitativa/ordinal original y la variable de conteo no
deben confundirse ni considerarse dos mediciones empíricas
independientes.
Definición operacional del nuevo indicador: número de intervenciones sustantivas hipotéticas del equipo durante un producto A/B; escala de razón, conteo entero no negativo; una observación por equipo × actividad. Se simula con Poisson de media 6 para todos los equipos (escenario neutral deliberado, sin diferencia programada por composición), utilizando una semilla fija distinta de la semilla generadora original. No pretende medir calidad de las contribuciones ni demostrar que dos composiciones sean equivalentes.
# Extensión didáctica: NO procede de los CSV E0 y NO modifica ningún archivo original.
set.seed(20261113)
conteo_p2 <- interacciones[,c("grupo_id","codigo","modalidad","posicion")]
conteo_p2$numero_intervenciones_simuladas <- rpois(nrow(conteo_p2),lambda=6)
assert(nrow(conteo_p2)==48 && all(conteo_p2$numero_intervenciones_simuladas>=0),
"recuento simulado P2 inválido")
conteo_g <- aggregate(numero_intervenciones_simuladas~grupo_id,conteo_p2,mean)
conteo_g <- merge(conteo_g,grupos[,c("grupo_id","composicion")],by="grupo_id")
conteo_comp <- welch(conteo_g,"numero_intervenciones_simuladas")
tabla(conteo_p2[order(conteo_p2$grupo_id,conteo_p2$codigo),],
caption="P2 ampliación: 48 conteos enteramente simulados, sin observación empírica")
| grupo_id | codigo | modalidad | posicion | numero_intervenciones_simuladas | |
|---|---|---|---|---|---|
| 7 | GHE-01 | A1 | A | 1 | 4 |
| 9 | GHE-01 | A2 | A | 2 | 4 |
| 11 | GHE-01 | A3 | A | 3 | 10 |
| 8 | GHE-01 | B1 | B | 1 | 6 |
| 10 | GHE-01 | B2 | B | 2 | 6 |
| 12 | GHE-01 | B3 | B | 3 | 9 |
| 19 | GHE-02 | A1 | A | 1 | 2 |
| 21 | GHE-02 | A2 | A | 2 | 10 |
| 23 | GHE-02 | A3 | A | 3 | 8 |
| 20 | GHE-02 | B1 | B | 1 | 5 |
| 22 | GHE-02 | B2 | B | 2 | 11 |
| 24 | GHE-02 | B3 | B | 3 | 4 |
| 31 | GHE-03 | A1 | A | 1 | 9 |
| 33 | GHE-03 | A2 | A | 2 | 7 |
| 35 | GHE-03 | A3 | A | 3 | 7 |
| 32 | GHE-03 | B1 | B | 1 | 8 |
| 34 | GHE-03 | B2 | B | 2 | 8 |
| 36 | GHE-03 | B3 | B | 3 | 5 |
| 43 | GHE-04 | A1 | A | 1 | 7 |
| 45 | GHE-04 | A2 | A | 2 | 3 |
| 47 | GHE-04 | A3 | A | 3 | 5 |
| 44 | GHE-04 | B1 | B | 1 | 1 |
| 46 | GHE-04 | B2 | B | 2 | 6 |
| 48 | GHE-04 | B3 | B | 3 | 9 |
| 1 | GHO-01 | A1 | A | 1 | 10 |
| 3 | GHO-01 | A2 | A | 2 | 7 |
| 5 | GHO-01 | A3 | A | 3 | 6 |
| 2 | GHO-01 | B1 | B | 1 | 6 |
| 4 | GHO-01 | B2 | B | 2 | 6 |
| 6 | GHO-01 | B3 | B | 3 | 5 |
| 13 | GHO-02 | A1 | A | 1 | 5 |
| 15 | GHO-02 | A2 | A | 2 | 5 |
| 17 | GHO-02 | A3 | A | 3 | 8 |
| 14 | GHO-02 | B1 | B | 1 | 10 |
| 16 | GHO-02 | B2 | B | 2 | 10 |
| 18 | GHO-02 | B3 | B | 3 | 7 |
| 25 | GHO-03 | A1 | A | 1 | 9 |
| 27 | GHO-03 | A2 | A | 2 | 5 |
| 29 | GHO-03 | A3 | A | 3 | 5 |
| 26 | GHO-03 | B1 | B | 1 | 5 |
| 28 | GHO-03 | B2 | B | 2 | 8 |
| 30 | GHO-03 | B3 | B | 3 | 4 |
| 37 | GHO-04 | A1 | A | 1 | 8 |
| 39 | GHO-04 | A2 | A | 2 | 7 |
| 41 | GHO-04 | A3 | A | 3 | 3 |
| 38 | GHO-04 | B1 | B | 1 | 11 |
| 40 | GHO-04 | B2 | B | 2 | 3 |
| 42 | GHO-04 | B3 | B | 3 | 10 |
tabla(conteo_g[order(conteo_g$grupo_id),],
caption="P2 ampliación: media de conteos de intervenciones por equipo (n=8)")
| grupo_id | numero_intervenciones_simuladas | composicion |
|---|---|---|
| GHE-01 | 6.500 | GHE |
| GHE-02 | 6.667 | GHE |
| GHE-03 | 7.333 | GHE |
| GHE-04 | 5.167 | GHE |
| GHO-01 | 6.667 | GHO |
| GHO-02 | 7.500 | GHO |
| GHO-03 | 6.000 | GHO |
| GHO-04 | 7.000 | GHO |
tabla(conteo_comp,caption="P2 ampliación: contraste exploratorio de conteos simulados por composición")
| contraste | media_GHE | media_GHO | diferencia | IC_inferior | IC_superior | estadistico_t | gl | p |
|---|---|---|---|---|---|---|---|---|
| GHE - GHO | 6.417 | 6.792 | -0.375 | -1.768 | 1.018 | -0.679 | 5.342 | 0.525 |
boxplot(numero_intervenciones_simuladas~composicion,data=conteo_g,
ylab="Intervenciones hipotéticas por asignación (media)",
main="P2: escenario adicional de conteos simulados",col=c("grey85","grey65"))
stripchart(numero_intervenciones_simuladas~composicion,data=conteo_g,
vertical=TRUE,method="jitter",pch=19,add=TRUE)
Lectura del complemento. La diferencia GHE−GHO del conteo simulado es -0.38 intervenciones por producto (p exploratoria de Welch = 0.5254). Su resultado no modifica el contraste principal del índice 0–100; la simulación Poisson neutral demuestra un modo reproducible de crear la variable adicional solicitada, no valida la observación cualitativa ni una relación causal. Los cuatro criterios de la rúbrica original siguen sin etiquetas conductuales documentadas; adjudicarles nombres a posteriori sería incorrecto.
Respuesta explícita a los dos componentes de P2: el
índice de interacción derivado de cuatro criterios ordinales permite
comparar descriptivamente las condiciones y explorar diferencias entre
medias de equipo; el numero_intervenciones_simuladas es una
variable cuantitativa adicional, creada mediante
Poisson con semilla fija, independiente de los nueve CSV originales.
Ninguno de estos indicadores representa observaciones reales de
interacción.
Conclusión específica de P2 (datos sintéticos E0). El índice de interacción media se calculó a partir de seis productos por equipo, pero para el contraste se emplearon ocho medias grupales, evitando tratar las evaluaciones repetidas como equipos independientes. La diferencia GHE menos GHO estimada fue -1.823 puntos, y el contraste no detectó una diferencia estadísticamente significativa después del ajuste de Holm. Esta decisión no implica que la interacción sea idéntica en ambos arreglos. Además, el índice proviene de cuatro criterios ordinales sintéticos convertidos a escala de 0 a 100: el paquete no documenta que tales niveles sean recuentos de mensajes, intervenciones observadas o respuestas de una encuesta real. Cada grupo mantiene un observador, de manera que tampoco puede separarse su posible severidad del efecto del grupo. Las conclusiones son estrictamente exploratorias.
Consigna: «Tomando solo los grupos homogéneos y los
grupos heterogéneos como “Grupo Mixto”, ¿qué disciplina académica posee
mejor resultados?». La explicación oral del profesor precisa que los
cuatro equipos heterogéneos se reúnen bajo la categoría Grupo
Mixto. La disciplina de referencia corresponde al
área de formación de cada equipo homogéneo
(grupos$disciplina_referencia), no a la temática de
cada actividad (disciplina_tarea).
Objetivo: ordenar descriptivamente las cuatro disciplinas de equipos homogéneos y el conjunto de equipos heterogéneos agrupados, usando el promedio de las seis calificaciones grupales por equipo. Hipótesis e inferencia: no se efectúa contraste confirmatorio de superioridad, porque existe un solo equipo homogéneo por disciplina y cuatro equipos diferentes en la categoría mixta. Esta tabla clasifica unidades distintas sin convertir la categoría Grupo Mixto en una única réplica experimental, ni atribuir una disciplina particular al rendimiento colectivo mixto.
p3_equipos <- merge(pg[,c("grupo_id","composicion","promedio6")],
grupos[,c("grupo_id","disciplina_referencia")],by="grupo_id")
assert(nrow(p3_equipos)==8 && all(!is.na(p3_equipos$disciplina_referencia)),
"P3: ocho equipos y referencias disciplinares completas")
p3_equipos$categoria <- ifelse(p3_equipos$composicion=="GHO",
p3_equipos$disciplina_referencia,"Grupo Mixto")
assert(sum(p3_equipos$categoria=="Grupo Mixto")==4 &&
length(unique(p3_equipos$categoria[p3_equipos$composicion=="GHO"]))==4,
"P3: se requieren 4 grupos mixtos y 4 disciplinas GHO")
p3_media <- aggregate(promedio6~categoria,p3_equipos,mean)
p3_n <- aggregate(grupo_id~categoria,p3_equipos,length)
p3_rango <- aggregate(promedio6~categoria,p3_equipos,
function(x) paste(formato(min(x),3),formato(max(x),3),sep=" a "))
p3_res <- Reduce(function(a,b) merge(a,b,by="categoria"),list(p3_media,p3_n,p3_rango))
names(p3_res) <- c("categoria","media","n_equipos","rango_equipos")
p3_res <- p3_res[order(-p3_res$media),]
p3_lider_gho <- p3_res$categoria[p3_res$categoria!="Grupo Mixto"][1]
p3_nota_lider <- p3_res$media[p3_res$categoria==p3_lider_gho]
p3_media_mixta <- p3_res$media[p3_res$categoria=="Grupo Mixto"]
tabla(p3_equipos[order(p3_equipos$composicion,p3_equipos$grupo_id),],
caption="P3: ocho equipos, composición, disciplina de referencia y promedio de seis productos")
| grupo_id | composicion | promedio6 | disciplina_referencia | categoria |
|---|---|---|---|---|
| GHE-01 | GHE | 68.750 | CSH | Grupo Mixto |
| GHE-02 | GHE | 71.667 | CE | Grupo Mixto |
| GHE-03 | GHE | 72.083 | TI | Grupo Mixto |
| GHE-04 | GHE | 61.250 | CVA | Grupo Mixto |
| GHO-01 | GHO | 81.042 | CSH | CSH |
| GHO-02 | GHO | 85.208 | CE | CE |
| GHO-03 | GHO | 47.083 | TI | TI |
| GHO-04 | GHO | 65.833 | CVA | CVA |
tabla(p3_res,caption="P3 principal: cuatro disciplinas GHO y los cuatro GHE agrupados descriptivamente como Grupo Mixto")
| categoria | media | n_equipos | rango_equipos | |
|---|---|---|---|---|
| 1 | CE | 85.208 | 1 | 85.208 a 85.208 |
| 2 | CSH | 81.042 | 1 | 81.042 a 81.042 |
| 4 | Grupo Mixto | 68.438 | 4 | 61.250 a 72.083 |
| 3 | CVA | 65.833 | 1 | 65.833 a 65.833 |
| 5 | TI | 47.083 | 1 | 47.083 a 47.083 |
barplot(setNames(p3_res$media,p3_res$categoria),ylim=c(0,100),
col="grey65",ylab="Media de seis productos por equipo (0–100)",
main="P3: disciplina GHO y conjunto Grupo Mixto")
Respuesta principal: la disciplina homogénea con la media grupal más elevada es CE, con 85.208 puntos. Los cuatro equipos de composición heterogénea, reunidos como Grupo Mixto, obtienen una media de 68.438 puntos. No es válido concluir una diferencia estadística ni causal entre disciplinas a partir de un solo equipo homogéneo por área.
Conclusión específica de P3 (datos sintéticos E0). Conforme a la formulación escrita y a la explicación oral del docente, los cuatro equipos homogéneos se identificaron por su disciplina de referencia, mientras que los cuatro heterogéneos se resumieron conjuntamente bajo la categoría Grupo Mixto. La medida utilizada fue el promedio de las seis asignaciones grupales de cada equipo. La disciplina homogénea con mayor media observada fue CE, con 85.208 puntos; el conjunto heterogéneo presentó una media de 68.438 puntos. Esta agrupación es descriptiva: se conservaron los cuatro promedios mixtos y no se les trató como una única observación independiente. Solo existe un equipo homogéneo por disciplina, lo cual impide estimar la variabilidad entre equipos de la misma área y contrastar confirmatoriamente su superioridad. El resultado tampoco atribuye el rendimiento de un equipo mixto a un estudiante individual ni a la temática particular de sus asignaciones.
El siguiente desglose de disciplina_tarea se conserva
para explorar las cuatro temáticas de productos A/B sin
sustituir la respuesta principal ni atribuir los resultados a
la formación de los integrantes.
p3data <- merge(cal_gr[,c("grupo_id","codigo","disciplina_tarea","nota")],
grupos[,c("grupo_id","composicion")],by="grupo_id")
p3mean <- aggregate(nota~composicion+disciplina_tarea,p3data,mean)
p3sd <- aggregate(nota~composicion+disciplina_tarea,p3data,sd)
p3n <- aggregate(nota~composicion+disciplina_tarea,p3data,length)
p3g <- aggregate(grupo_id~composicion+disciplina_tarea,p3data,
function(z) length(unique(z)))
p3 <- Reduce(function(a,b) merge(a,b,by=c("composicion","disciplina_tarea")),
list(p3mean,p3sd,p3n,p3g))
names(p3) <- c("composicion","disciplina_tarea","media","desviacion","n_productos","n_grupos")
assert(nrow(p3)==8 && all(p3$n_productos==6) && all(p3$n_grupos==3),
"P3: verificar cobertura de cuatro temas en ambas condiciones")
p3 <- p3[order(p3$composicion,-p3$media),]
p3$puesto <- ave(-p3$media,p3$composicion,FUN=function(x) rank(x,ties.method="min"))
tabla(p3,caption="P3: media, dispersión, cobertura y orden de temáticas por composición")
| composicion | disciplina_tarea | media | desviacion | n_productos | n_grupos | puesto | |
|---|---|---|---|---|---|---|---|
| 4 | GHE | TI | 74.375 | 17.937 | 6 | 3 | 1 |
| 2 | GHE | CSH | 68.125 | 18.553 | 6 | 3 | 2 |
| 3 | GHE | CVA | 67.708 | 20.953 | 6 | 3 | 3 |
| 1 | GHE | CE | 63.542 | 28.311 | 6 | 3 | 4 |
| 8 | GHO | TI | 78.125 | 14.679 | 6 | 3 | 1 |
| 7 | GHO | CVA | 71.458 | 13.144 | 6 | 3 | 2 |
| 6 | GHO | CSH | 68.333 | 36.671 | 6 | 3 | 3 |
| 5 | GHO | CE | 61.250 | 21.766 | 6 | 3 | 4 |
p3_ancha <- merge(p3[p3$composicion=="GHO",c("disciplina_tarea","media","puesto")],
p3[p3$composicion=="GHE",c("disciplina_tarea","media","puesto")],
by="disciplina_tarea",suffixes=c("_GHO","_GHE"))
p3_ancha <- p3_ancha[order(p3_ancha$puesto_GHO),]
tabla(p3_ancha,caption="P3: comparación lado a lado y posiciones por temática")
| disciplina_tarea | media_GHO | puesto_GHO | media_GHE | puesto_GHE | |
|---|---|---|---|---|---|
| 4 | TI | 78.125 | 1 | 74.375 | 1 |
| 3 | CVA | 71.458 | 2 | 67.708 | 3 |
| 2 | CSH | 68.333 | 3 | 68.125 | 2 |
| 1 | CE | 61.250 | 4 | 63.542 | 4 |
p3_primero_gho <- p3$disciplina_tarea[p3$composicion=="GHO"][1]
p3_primero_ghe <- p3$disciplina_tarea[p3$composicion=="GHE"][1]
mat_p3 <- xtabs(media~disciplina_tarea+composicion,data=p3)
barplot(t(mat_p3),beside=TRUE,ylim=c(0,100),col=c("grey80","grey40"),
ylab="Calificación promedio (0–100)",xlab="Temática de la actividad",
main="P3: rendimiento temático en ambas composiciones",
legend.text=c("GHE","GHO"),args.legend=list(x="topright",bty="n"))
Resultado complementario: en GHO la temática con mayor media es TI y en GHE es TI. La tabla muestra las posiciones primera a cuarta dentro de cada condición, sin atribuir los promedios a la especialidad de los integrantes.
Las medias individuales por disciplina y composición se presentan para transparentar el origen académico; no constituyen el contraste principal de P3 ni permiten atribuir la nota grupal a estudiantes individuales.
p3_individual <- aggregate(nota~estudiante_id,cal_ind,mean)
n_individual <- aggregate(nota~estudiante_id,cal_ind,length)
assert(all(n_individual$nota==6),"P3: medias individuales requieren seis notas")
names(p3_individual)[2] <- "promedio_individual6"
p3_individual <- merge(p3_individual,estudiantes[,c("estudiante_id","grupo_id","disciplina")],
by="estudiante_id")
p3_individual <- merge(p3_individual,grupos[,c("grupo_id","composicion")],by="grupo_id")
p3_med <- aggregate(promedio_individual6~composicion+disciplina,p3_individual,mean)
p3_sd <- aggregate(promedio_individual6~composicion+disciplina,p3_individual,sd)
p3_n <- aggregate(estudiante_id~composicion+disciplina,p3_individual,length)
p3_ng <- aggregate(grupo_id~composicion+disciplina,p3_individual,
function(x) length(unique(x)))
p3_origen <- Reduce(function(a,b) merge(a,b,by=c("composicion","disciplina")),
list(p3_med,p3_sd,p3_n,p3_ng))
names(p3_origen) <- c("composicion","disciplina","media","desviacion","n_estudiantes","n_equipos")
tabla(p3_origen[order(p3_origen$composicion,-p3_origen$media),],
caption="P3 complemento: disciplina de origen de estudiantes por composición")
| composicion | disciplina | media | desviacion | n_estudiantes | n_equipos | |
|---|---|---|---|---|---|---|
| 1 | GHE | CE | 78.594 | 22.712 | 4 | 4 |
| 2 | GHE | CSH | 75.156 | 11.142 | 4 | 4 |
| 3 | GHE | CVA | 69.479 | 25.982 | 4 | 4 |
| 4 | GHE | TI | 66.458 | 21.951 | 4 | 4 |
| 6 | GHO | CSH | 74.792 | 22.028 | 4 | 1 |
| 5 | GHO | CE | 71.198 | 17.294 | 4 | 1 |
| 8 | GHO | TI | 63.229 | 23.888 | 4 | 1 |
| 7 | GHO | CVA | 61.823 | 28.235 | 4 | 1 |
Interpretación: la clasificación de productos temáticos de P3 sigue siendo válida como respuesta descriptiva complementaria, pero ahora se distingue expresamente de la disciplina de origen. No se infiere que una disciplina origine mejores notas a partir de un solo equipo GHO por disciplina ni se atribuye una nota grupal a un integrante por su especialidad.
Objetivo: describir los temas de proyecto elegidos por GHE, su nota final y coincidencias con posiciones temáticas previas. Hipótesis: análisis descriptivo; con cuatro elecciones y una sola categoría observada no es identificable un efecto estadístico de temática o exposición. Decisión: frecuencias y cruces sin inferencia causal ni modelo confirmatorio.
La pregunta se restringe a los cuatro GHE. Se comparan las elecciones finales con la lista original de posiciones temáticas: la exposición es el número de posiciones temáticas cursadas que coincide con el tema elegido (0–3), distinguiéndola de los productos A/B (dos productos por posición). El generador E0 describe selección uniforme; observar una coincidencia no significa efecto causal.
elecciones <- merge(seleccion[seleccion$composicion=="GHE",],
finales[,c("grupo_id","nota")],by="grupo_id")
names(elecciones)[names(elecciones)=="nota"] <- "nota_final"
exposicion <- merge(elecciones,posiciones[,c("grupo_id","posicion","disciplina_tarea")],by="grupo_id")
exposicion$coincide <- exposicion$tema_final==exposicion$disciplina_tarea
expo_por_grupo <- aggregate(as.integer(exposicion$coincide),
by=list(grupo_id=exposicion$grupo_id),FUN=sum)
names(expo_por_grupo)[2] <- "posiciones_expuestas"
p4 <- merge(elecciones,expo_por_grupo,by="grupo_id")
tabla(p4[order(p4$grupo_id),],caption="P4: elección, exposición previa y nota final")
| grupo_id | composicion | tema_final | mecanismo | nota_final | posiciones_expuestas |
|---|---|---|---|---|---|
| GHE-01 | GHE | CSH | uniforme_E0 | 25.00 | 0 |
| GHE-02 | GHE | CSH | uniforme_E0 | 78.75 | 1 |
| GHE-03 | GHE | CSH | uniforme_E0 | 28.75 | 1 |
| GHE-04 | GHE | CSH | uniforme_E0 | 28.75 | 1 |
frecuencias <- table(factor(p4$tema_final,levels=c("CE","TI","CSH","CVA")))
tabla(data.frame(tema=names(frecuencias),n=as.integer(frecuencias),
porcentaje=as.numeric(frecuencias)/sum(frecuencias)*100),
caption="P4: frecuencia de elecciones entre los cuatro GHE")
| tema | n | porcentaje |
|---|---|---|
| CE | 0 | 0 |
| TI | 0 | 0 |
| CSH | 4 | 100 |
| CVA | 0 | 0 |
Cada posición previa contiene dos productos (A y B). La tabla reconstruye las tres posiciones por cada uno de los cuatro GHE, sus notas específicas, la media de ambos productos, la coincidencia con la temática finalmente elegida y la nota del trabajo final. Este desglose distingue haber cursado una temática de haber obtenido mejor rendimiento en ella; las elecciones del escenario E0 se simularon mediante un mecanismo uniforme independiente de esa exposición.
p4_traza <- merge(posiciones[posiciones$grupo_id %in% p4$grupo_id,
c("grupo_id","posicion","disciplina_tarea")],
cal_gr[cal_gr$grupo_id %in% p4$grupo_id,
c("grupo_id","posicion","modalidad","nota")],
by=c("grupo_id","posicion"))
assert(nrow(p4_traza)==24 && all(table(paste(p4_traza$grupo_id,p4_traza$posicion))==2),
"P4: deben existir 2 modalidades por posición y 3 posiciones por GHE")
p4_pos <- reshape(p4_traza,idvar=c("grupo_id","posicion","disciplina_tarea"),
timevar="modalidad",direction="wide")
assert(nrow(p4_pos)==12 && all(c("nota.A","nota.B") %in% names(p4_pos)) &&
!anyNA(p4_pos[,c("nota.A","nota.B")]),"P4: faltan notas A o B")
p4_pos$media_AB <- (p4_pos$nota.A+p4_pos$nota.B)/2
p4_pos <- merge(p4_pos,p4[,c("grupo_id","tema_final","nota_final")],by="grupo_id")
p4_pos$coincide_tema_final <- p4_pos$disciplina_tarea==p4_pos$tema_final
p4_pos <- p4_pos[order(p4_pos$grupo_id,p4_pos$posicion),
c("grupo_id","posicion","disciplina_tarea","nota.A","nota.B",
"media_AB","coincide_tema_final","tema_final","nota_final")]
tabla(p4_pos,caption="P4: dosificación A/B en cada posición, calificaciones y elección final de cada GHE")
| grupo_id | posicion | disciplina_tarea | nota.A | nota.B | media_AB | coincide_tema_final | tema_final | nota_final |
|---|---|---|---|---|---|---|---|---|
| GHE-01 | 1 | CE | 68.75 | 76.25 | 72.500 | FALSE | CSH | 25.00 |
| GHE-01 | 2 | TI | 67.50 | 73.75 | 70.625 | FALSE | CSH | 25.00 |
| GHE-01 | 3 | CVA | 82.50 | 43.75 | 63.125 | FALSE | CSH | 25.00 |
| GHE-02 | 1 | TI | 73.75 | 100.00 | 86.875 | FALSE | CSH | 78.75 |
| GHE-02 | 2 | CVA | 43.75 | 68.75 | 56.250 | FALSE | CSH | 78.75 |
| GHE-02 | 3 | CSH | 65.00 | 78.75 | 71.875 | TRUE | CSH | 78.75 |
| GHE-03 | 1 | CVA | 71.25 | 96.25 | 83.750 | FALSE | CSH | 28.75 |
| GHE-03 | 2 | CSH | 32.50 | 71.25 | 51.875 | TRUE | CSH | 28.75 |
| GHE-03 | 3 | CE | 61.25 | 100.00 | 80.625 | FALSE | CSH | 28.75 |
| GHE-04 | 1 | CSH | 78.75 | 82.50 | 80.625 | TRUE | CSH | 28.75 |
| GHE-04 | 2 | CE | 61.25 | 13.75 | 37.500 | FALSE | CSH | 28.75 |
| GHE-04 | 3 | TI | 85.00 | 46.25 | 65.625 | FALSE | CSH | 28.75 |
mejor_previo <- do.call(rbind,lapply(split(p4_pos,p4_pos$grupo_id),function(z) {
data.frame(grupo_id=z$grupo_id[1],tematica_previa_mejor=z$disciplina_tarea[which.max(z$media_AB)],
media_AB_mejor=max(z$media_AB),tema_final=z$tema_final[1],
mayor_media_previa_coincide=(z$disciplina_tarea[which.max(z$media_AB)]==z$tema_final[1]))
}))
tabla(mejor_previo,caption="P4 complemento: contraste descriptivo entre mejor rendimiento temático previo y tema elegido")
| grupo_id | tematica_previa_mejor | media_AB_mejor | tema_final | mayor_media_previa_coincide | |
|---|---|---|---|---|---|
| GHE-01 | GHE-01 | CE | 72.500 | CSH | FALSE |
| GHE-02 | GHE-02 | TI | 86.875 | CSH | FALSE |
| GHE-03 | GHE-03 | CVA | 83.750 | CSH | FALSE |
| GHE-04 | GHE-04 | CSH | 80.625 | CSH | TRUE |
Alcance de la tercera subpregunta: las coincidencias se calculan por posición y sus dos modalidades. Ni estas coincidencias ni las diferencias de notas permiten estimar asociación con la decisión de tema final, pues las cuatro elecciones son CSH; mucho menos un efecto causal de dosificación sobre elección. Para identificarlo en un futuro estudio serían necesarias elecciones variables y un mecanismo de asignación/exposición que permita contrastes.
barplot(frecuencias,ylab="Equipos GHE",main="P4: temática elegida para trabajo final",
ylim=c(0,4),col="grey65")
Interpretación dinámica. CSH = 4. 3 de cuatro grupos habían desarrollado previamente al menos una posición relacionada con el tema elegido. Con cuatro decisiones y una elección uniforme programada, no se estima un efecto de exposición ni se atribuye causalidad a la nota final.
Respuesta por componentes de P4: (1) preferencia observada: las cuatro selecciones corresponden a CSH; (2) relación entre temática seleccionada y nota final: no es identificable un efecto temático, porque la variable de selección no varía; (3) posible influencia de tareas previas: la coincidencia entre posiciones cursadas y elección final se describe por equipo, pero ni asociación con la elección ni efecto causal son estimables con este escenario.
Conclusión específica de P4 (datos sintéticos E0). Los cuatro equipos heterogéneos escogieron la temática CSH para el trabajo final. Esta concentración constituye un resultado de la simulación y no permite inferir que los estudiantes reales prefieran dicha disciplina. La selección en el escenario E0 se generó bajo un mecanismo uniforme programado; por tanto, no existe una relación causal diseñada entre la exposición previa y la elección. La trazabilidad por posición documenta notas A y B, media previa, temática de mayor rendimiento y coincidencias con la elección final, pero la falta de variación entre los cuatro temas elegidos impide identificar un efecto de la temática sobre las calificaciones del proyecto. También es insuficiente el tamaño de la muestra para extrapolar preferencias. La respuesta defendible consiste en informar los recuentos observados y reconocer que los efectos planteados no pueden estimarse con esta realización.
Objetivo: determinar el grado de relación entre la media de las asignaciones A1–A3 y B1–B3 y las ponderaciones del Trabajo Final. Se usa como indicador principal la media conjunta de seis notas grupales y se añaden dos correlaciones complementarias por bloque (A y B). Hipótesis: H₀: ρ = 0 frente a H₁: ρ ≠ 0, contrastada bilateralmente. Regla: p de Pearson menor que 0.05; Spearman y LOO son diagnósticos complementarios. Supuestos: ocho pares entre grupos, forma de asociación, sensibilidad a valores extremos; no causalidad. Las notas finales disponibles son grupales; no se inventan finales individuales.
Cada equipo aporta un par: promedio de seis notas y calificación final. Se reportan Pearson bilateral con IC de Fisher (aproximado bajo normalidad bivariante), Spearman bilateral y una sensibilidad leave-one-group-out (LOO). Con n=8 estos resultados son exploratorios.
p5 <- merge(pg,finales[,c("grupo_id","nota")],by="grupo_id")
names(p5)[names(p5)=="nota"] <- "nota_final"
assert(nrow(p5)==8 && !anyNA(p5[,c("promedio6","nota_final")]),"faltan pares P5")
pear <- cor.test(p5$promedio6,p5$nota_final,method="pearson",conf.level=1-params$alfa)
spear <- suppressWarnings(cor.test(p5$promedio6,p5$nota_final,method="spearman",exact=FALSE))
p5res <- data.frame(metodo=c("Pearson","Spearman (aprox.)"),
estimacion=c(unname(pear$estimate),unname(spear$estimate)),
p=c(pear$p.value,spear$p.value),
IC_inferior=c(pear$conf.int[1],NA_real_),IC_superior=c(pear$conf.int[2],NA_real_))
loo5 <- do.call(rbind,lapply(p5$grupo_id,function(id) {
z <- p5[p5$grupo_id!=id,]
data.frame(grupo_excluido=id,r_Pearson=cor(z$promedio6,z$nota_final))
}))
# Separar los bloques A1–A3 y B1–B3 sin alterar el promedio principal de seis actividades.
p5_modalidad <- aggregate(nota~grupo_id+modalidad,cal_gr,mean)
p5_nmodalidad <- aggregate(nota~grupo_id+modalidad,cal_gr,length)
assert(nrow(p5_nmodalidad)==16 && all(p5_nmodalidad$nota==3),
"P5: exactamente tres actividades A y tres B por equipo")
p5_bloques <- reshape(p5_modalidad,idvar="grupo_id",timevar="modalidad",direction="wide")
assert(nrow(p5_bloques)==8 && all(c("nota.A","nota.B") %in% names(p5_bloques)),
"P5: faltan promedios A/B")
names(p5_bloques)[names(p5_bloques)=="nota.A"] <- "promedio_A1_A3"
names(p5_bloques)[names(p5_bloques)=="nota.B"] <- "promedio_B1_B3"
p5 <- merge(p5,p5_bloques,by="grupo_id")
assert(all(abs((p5$promedio_A1_A3+p5$promedio_B1_B3)/2-p5$promedio6)<1e-8),
"P5: la media de A y B debe reconstruir el promedio conjunto")
p5_pear_A <- cor.test(p5$promedio_A1_A3,p5$nota_final,method="pearson")
p5_pear_B <- cor.test(p5$promedio_B1_B3,p5$nota_final,method="pearson")
p5_bloques_cor <- data.frame(contraste=c("A1–A3 vs final","B1–B3 vs final","A1–B3 (seis) vs final"),
r_Pearson=c(unname(p5_pear_A$estimate),unname(p5_pear_B$estimate),unname(pear$estimate)),
p_bilateral=c(p5_pear_A$p.value,p5_pear_B$p.value,pear$p.value),
n_equipos=rep(nrow(p5),3))
tabla(p5[order(p5$grupo_id),c("grupo_id","composicion","promedio_A1_A3",
"promedio_B1_B3","promedio6","nota_final")],
caption="P5: desglose explícito de modalidades A y B, promedio conjunto y trabajo final")
| grupo_id | composicion | promedio_A1_A3 | promedio_B1_B3 | promedio6 | nota_final |
|---|---|---|---|---|---|
| GHE-01 | GHE | 72.917 | 64.583 | 68.750 | 25.00 |
| GHE-02 | GHE | 60.833 | 82.500 | 71.667 | 78.75 |
| GHE-03 | GHE | 55.000 | 89.167 | 72.083 | 28.75 |
| GHE-04 | GHE | 75.000 | 47.500 | 61.250 | 28.75 |
| GHO-01 | GHO | 75.417 | 86.667 | 81.042 | 100.00 |
| GHO-02 | GHO | 91.667 | 78.750 | 85.208 | 96.25 |
| GHO-03 | GHO | 48.750 | 45.417 | 47.083 | 52.50 |
| GHO-04 | GHO | 69.583 | 62.083 | 65.833 | 42.50 |
tabla(p5_bloques_cor,caption="P5: correlaciones Pearson por modalidad y correlación conjunta principal")
| contraste | r_Pearson | p_bilateral | n_equipos |
|---|---|---|---|
| A1–A3 vs final | 0.399 | 0.327 | 8 |
| B1–B3 vs final | 0.488 | 0.220 | 8 |
| A1–B3 (seis) vs final | 0.585 | 0.128 | 8 |
tabla(p5res,caption="P5: estimadores y contraste bilateral")
| metodo | estimacion | p | IC_inferior | IC_superior |
|---|---|---|---|---|
| Pearson | 0.585 | 0.128 | -0.203 | 0.913 |
| Spearman (aprox.) | 0.503 | 0.204 | NA | NA |
tabla(loo5,caption="P5: sensibilidad de Pearson al retirar un equipo")
| grupo_excluido | r_Pearson |
|---|---|
| GHE-01 | 0.637 |
| GHE-02 | 0.587 |
| GHE-03 | 0.671 |
| GHE-04 | 0.543 |
| GHO-01 | 0.470 |
| GHO-02 | 0.420 |
| GHO-03 | 0.832 |
| GHO-04 | 0.578 |
plot(p5$promedio6,p5$nota_final,pch=19,xlab="Media de las seis actividades",
ylab="Nota del trabajo final",main="P5: asociación por equipo",xlim=c(0,100),ylim=c(0,100))
text(p5$promedio6,p5$nota_final,labels=p5$grupo_id,pos=4,cex=.65)
abline(lm(nota_final~promedio6,data=p5),lty=2)
Interpretación dinámica. Las correlaciones de los bloques A y B son complementarias y exploratorias; se calculan sobre los mismos ocho equipos, por lo que no representan muestras independientes. Pearson global r=0.5852 (IC95% [-0.2033, 0.9133]), p=0.1275; Spearman ρ=0.5030, p aproximada=0.2039. No se rechaza la hipótesis de correlación lineal cero; ello no demuestra falta de relación. El rango de Pearson en sensibilidad LOO es [0.4200, 0.8317].
Conclusión específica de P5 (datos sintéticos E0). La correlación de Pearson entre el promedio de las seis actividades grupales y la calificación del trabajo final se estimó en 0.585, lo que indica una asociación lineal positiva en estos ocho equipos simulados. Sin embargo, la p del contraste y el intervalo de confianza no proporcionan evidencia suficiente para rechazar la hipótesis de correlación cero al umbral de 0.05. El desglose por modalidades A1–A3 y B1–B3 permite inspeccionar asociaciones separadas con la nota final sin reemplazar la media global. Spearman sirve como comprobación complementaria de la dirección de la asociación, mientras que el análisis de exclusión de un grupo muestra su sensibilidad a la muestra pequeña. El generador incorpora un componente latente compartido por las calificaciones colectivas y el trabajo final; por ello, la asociación no prueba que el desempeño en asignaciones cause una mejor nota final. La interpretación queda restringida a indicadores grupales.
Yostin mencionó la ponderación individual al explicar el diseño. Como el trabajo final solamente tiene una nota por equipo en la base, no es válido duplicarla en cuatro filas y usar 32 pares como si fueran independientes. Para examinar ese aspecto sin seudorreplicación, calculamos primero la media de seis actividades por estudiante, después la media de los cuatro estudiantes de cada equipo y finalmente la relacionamos con las ocho calificaciones finales grupales. Este complemento no identifica correlaciones entre notas finales individuales porque no existen notas finales individuales en los datos fuente.
p5_alumno <- aggregate(nota~estudiante_id+grupo_id,cal_ind,mean)
p5_n <- aggregate(nota~estudiante_id+grupo_id,cal_ind,length)
assert(nrow(p5_alumno)==32 && all(p5_n$nota==6),"P5: promedio individual incompleto")
names(p5_alumno)[3] <- "media_individual6"
p5_equipo_ind <- aggregate(media_individual6~grupo_id,p5_alumno,mean)
nombres <- names(p5_equipo_ind); nombres[2] <- "media_individual_del_equipo";names(p5_equipo_ind)<-nombres
p5_ind <- merge(p5_equipo_ind,finales[,c("grupo_id","nota")],by="grupo_id")
names(p5_ind)[3] <- "nota_final_grupal"
assert(nrow(p5_ind)==8 && !anyNA(p5_ind),"P5: ocho pares agregados requeridos")
p5_ind_pearson <- cor.test(p5_ind$media_individual_del_equipo,
p5_ind$nota_final_grupal,method="pearson")
p5_ind_spearman <- suppressWarnings(cor.test(p5_ind$media_individual_del_equipo,
p5_ind$nota_final_grupal,method="spearman",exact=FALSE))
p5_ind_res <- data.frame(metodo=c("Pearson","Spearman aproximado"),
estimacion=c(unname(p5_ind_pearson$estimate),unname(p5_ind_spearman$estimate)),
p=c(p5_ind_pearson$p.value,p5_ind_spearman$p.value))
tabla(p5_ind[order(p5_ind$grupo_id),],
caption="P5 complemento: medias individuales agregadas y final grupal; n=8")
| grupo_id | media_individual_del_equipo | nota_final_grupal |
|---|---|---|
| GHE-01 | 74.583 | 25.00 |
| GHE-02 | 88.698 | 78.75 |
| GHE-03 | 72.604 | 28.75 |
| GHE-04 | 53.802 | 28.75 |
| GHO-01 | 74.792 | 100.00 |
| GHO-02 | 71.198 | 96.25 |
| GHO-03 | 63.229 | 52.50 |
| GHO-04 | 61.823 | 42.50 |
tabla(p5_ind_res,caption="P5 complemento: correlaciones exploratorias con ponderación individual agregada")
| metodo | estimacion | p |
|---|---|---|
| Pearson | 0.458 | 0.253 |
| Spearman aproximado | 0.335 | 0.417 |
plot(p5_ind$media_individual_del_equipo,p5_ind$nota_final_grupal,pch=19,
xlab="Media de notas individuales agregada por equipo",
ylab="Nota final grupal",main="P5 complemento: 8 equipos",xlim=c(0,100),ylim=c(0,100))
text(p5_ind$media_individual_del_equipo,p5_ind$nota_final_grupal,
labels=p5_ind$grupo_id,pos=4,cex=.65)
abline(lm(nota_final_grupal~media_individual_del_equipo,data=p5_ind),lty=2)
Lectura del complemento. Correlación de Pearson con la media de calificaciones individuales agregada por equipo: r=0.458, p=0.2534. Es una asociación entre indicadores agregados para los mismos ocho equipos, no una correlación individual ni una prueba causal. La inferencia es exploratoria y el intervalo de incertidumbre se mantiene amplio dada la muestra reducida.
Objetivo: identificar descriptivamente la disciplina con mayor éxito en las ponderaciones académicas individuales. Definición operacional de éxito: media aritmética de las seis notas por estudiante; un mayor promedio denota mejor resultado en esta escala sintética, sin representar por sí solo tasa de aprobación o éxito general en posgrado. Hipótesis: no se plantea contraste confirmatorio de superioridad; comparación descriptiva por promedios y desviaciones. Decisión: agregar seis calificaciones por estudiante y después resumir por disciplina, dejando explícita la anidación de estudiantes dentro de equipos.
La disciplina es la de origen del estudiante. Primero se promedian sus seis evaluaciones y después se describen las medias de estudiantes agrupados por disciplina. Los estudiantes están anidados en grupos: la siguiente clasificación no es una prueba inferencial de superioridad.
ind <- aggregate(nota~estudiante_id,data=cal_ind,FUN=mean)
indn <- aggregate(nota~estudiante_id,data=cal_ind,FUN=length)
assert(all(indn$nota==6),"cada promedio individual requiere seis notas")
names(ind)[2] <- "promedio6_individual"
ind <- merge(ind,estudiantes,by="estudiante_id")
p6mean <- aggregate(promedio6_individual~disciplina,ind,mean)
p6sd <- aggregate(promedio6_individual~disciplina,ind,sd)
p6n <- aggregate(estudiante_id~disciplina,ind,length)
p6g <- aggregate(grupo_id~disciplina,ind,function(z) length(unique(z)))
p6 <- Reduce(function(a,b) merge(a,b,by="disciplina"),list(p6mean,p6sd,p6n,p6g))
names(p6) <- c("disciplina","media","desviacion","n_estudiantes","n_grupos")
p6 <- p6[order(-p6$media),]
p6med <- aggregate(promedio6_individual~disciplina,ind,median)
p6iqr <- aggregate(promedio6_individual~disciplina,ind,IQR)
p6min <- aggregate(promedio6_individual~disciplina,ind,min)
p6max <- aggregate(promedio6_individual~disciplina,ind,max)
p6_disp <- Reduce(function(a,b) merge(a,b,by="disciplina"),list(p6med,p6iqr,p6min,p6max))
names(p6_disp) <- c("disciplina","mediana","rango_intercuartilico","minimo","maximo")
p6_disp <- p6_disp[match(p6$disciplina,p6_disp$disciplina),]
tabla(p6,caption="P6: medias y desviaciones de estudiantes por origen")
| disciplina | media | desviacion | n_estudiantes | n_grupos | |
|---|---|---|---|---|---|
| 2 | CSH | 74.974 | 16.161 | 8 | 5 |
| 1 | CE | 74.896 | 19.102 | 8 | 5 |
| 3 | CVA | 65.651 | 25.450 | 8 | 5 |
| 4 | TI | 64.844 | 21.308 | 8 | 5 |
tabla(p6_disp,caption="P6: distribución complementaria del promedio individual por disciplina")
| disciplina | mediana | rango_intercuartilico | minimo | maximo | |
|---|---|---|---|---|---|
| 2 | CSH | 76.458 | 15.990 | 46.250 | 100.000 |
| 1 | CE | 74.479 | 28.698 | 47.500 | 100.000 |
| 3 | CVA | 67.917 | 32.969 | 22.292 | 91.875 |
| 4 | TI | 66.250 | 29.063 | 35.625 | 93.542 |
boxplot(promedio6_individual~disciplina,data=ind,ylim=c(0,100),col="grey85",
xlab="Disciplina académica de origen",ylab="Promedio individual (0–100)",
main="P6: distribución de promedios individuales por disciplina")
stripchart(promedio6_individual~disciplina,data=ind,vertical=TRUE,method="jitter",
add=TRUE,pch=19,cex=.65,col="grey35",jitter=.08)
Interpretación dinámica. «Mayor éxito» se definió antes de ordenar los grupos como media de las seis ponderaciones individuales; la mediana y dispersión son complementarias y no se asumió un umbral de aprobación. La media mayor corresponde a CSH, con 74.974 puntos, seguida de CE (74.896). La diferencia descriptiva entre ambas es 0.078 puntos. No se afirma superioridad estadística, causalidad ni independencia de integrantes del mismo equipo.
Conclusión específica de P6 (datos sintéticos E0). Al definir operacionalmente el éxito académico como la media de seis calificaciones individuales y ordenar después los resultados por disciplina de origen, la media más elevada correspondió a CSH, con 74.974 puntos, seguida por CE, con 74.896 puntos. La distancia entre ambas medias es pequeña y constituye una diferencia descriptiva de esta muestra simulada, no evidencia suficiente de una superioridad estadística o académica. Cada participante aporta seis notas, pero esas mediciones no son seis estudiantes diferentes. Además, los estudiantes comparten equipos y contextos, por lo que existe dependencia intragrupo. La mediana y la distribución individual permiten examinar la heterogeneidad, pero no se ha establecido un umbral oficial de aprobación para medir una tasa de éxito. Este apartado se refiere a la formación académica del estudiante y no a la disciplina temática de la tarea, distinción necesaria para no confundir sus conclusiones con las de P3.
Esta reflexión se añadió durante la revisión del equipo. No es una séptima pregunta de la consigna del profesor ni una modificación retroactiva del escenario E0. Las recomendaciones se refieren a una investigación futura con datos observados o a una simulación alternativa preespecificada.
Síntesis: las mejoras prioritarias son replicar equipos por disciplina, equilibrar las exposiciones y generar mediciones y decisiones temáticas interpretables. Estas propuestas son decisiones metodológicas prospectivas; el análisis P1–P6 conserva los datos sintéticos originales.
resumen <- data.frame(
Pregunta=paste0("P",1:6),
Unidad=c("grupo","grupo","equipo (4 GHO + 4 GHE)","elección GHE","grupo","estudiante anidado"),
Resultado=c(paste0("GHE-GHO=",formato(p1$diferencia,2),"; p Holm=",formato(ps[1],3)),
paste0("GHE-GHO=",formato(p2$diferencia,2),"; p Holm=",formato(ps[2],3)),
paste0("mayor disciplina GHO: ",p3_lider_gho,"; media mixta=",formato(p3_media_mixta,2)),
paste0("modalidad temática: ",names(which.max(frecuencias))),
paste0("r Pearson=",formato(unname(pear$estimate),3)),
paste0("mayor media origen: ",p6$disciplina[1])),
Alcance=c("exploratorio","exploratorio","descriptivo","descriptivo",
"exploratorio","descriptivo"))
tabla(resumen,caption="Resumen automatizado de P1–P6")
| Pregunta | Unidad | Resultado | Alcance |
|---|---|---|---|
| P1 | grupo | GHE-GHO=-1.35; p Holm=1.000 | exploratorio |
| P2 | grupo | GHE-GHO=-1.82; p Holm=1.000 | exploratorio |
| P3 | equipo (4 GHO + 4 GHE) | mayor disciplina GHO: CE; media mixta=68.44 | descriptivo |
| P4 | elección GHE | modalidad temática: CSH | descriptivo |
| P5 | grupo | r Pearson=0.585 | exploratorio |
| P6 | estudiante anidado | mayor media origen: CSH | descriptivo |
Conclusiones. Las seis preguntas están calculadas desde las tablas fuente; P3 identifica las disciplinas de los GHO frente al conjunto GHE como Grupo Mixto, P4 documenta la dosificación, P5 desglosa A/B y P6 operacionaliza el éxito individual. Las pruebas inferenciales se restringen a P1, P2 y P5 como exploratorias; P3, P4 y P6 son descriptivas. La ausencia de significancia no prueba equivalencia. No hay evidencia de asignación aleatoria verificable ni de la rúbrica oficial Excel, y el escenario E0 no acredita robustez multiescenario ni causalidad. La matriz y la rúbrica utilizada en la simulación deben distinguirse de los criterios oficiales de calificación académica.
El código no usa resultados P1–P6 precalculados ni figuras PNG. El documento incluye los nueve archivos fuente, funciones de agregación, validaciones y gráficos. Exige únicamente R, el paquete rmarkdown y knitr; para compilar HTML se requiere Pandoc, habitualmente disponible desde RStudio. Se recomienda R 4.2 o posterior. No se instala ningún paquete desde el propio informe.
archivos <- file.path(params$carpeta_datos,paste0(c("grupos","estudiantes","actividades",
"calificaciones_grupales","calificaciones_individuales","interacciones",
"posiciones_tematicas","seleccion_tema","trabajos_finales"),".csv"))
cat("Huellas MD5 de CSV fuente (para detectar cualquier cambio):\n")
## Huellas MD5 de CSV fuente (para detectar cualquier cambio):
print(tools::md5sum(archivos))
## datos/grupos.csv datos/estudiantes.csv
## "2cbc26e27ccc457bc3948522e66257bf" "5c5e06ece6716fc4dab49fa6731bf026"
## datos/actividades.csv datos/calificaciones_grupales.csv
## "fed45e3bb80393540de6a7331898e792" "df5ec863c32e909bee5fd674c69d5a2a"
## datos/calificaciones_individuales.csv datos/interacciones.csv
## "4d4c1b75b6a082276147c10bbc3b0c6c" "11ae7b1b03f7a2a33bf495550674a8b5"
## datos/posiciones_tematicas.csv datos/seleccion_tema.csv
## "98bb3f16cc2b32535186152b1b580f41" "07b279af87d86880e7fb56ebe1abc464"
## datos/trabajos_finales.csv
## "87454c2a74c38bf0c71163e8b75172be"
cat("\nInformación de sesión de R:\n")
##
## Información de sesión de R:
print(sessionInfo())
## R version 4.6.0 (2026-04-24)
## Platform: aarch64-apple-darwin23
## Running under: macOS 27.0.1
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## time zone: America/Panama
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0 xfun_0.57
## [5] cachem_1.1.0 knitr_1.51 htmltools_0.5.9 rmarkdown_2.31
## [9] lifecycle_1.0.5 cli_3.6.6 sass_0.4.10 jquerylib_0.1.4
## [13] compiler_4.6.0 rstudioapi_0.18.0 tools_4.6.0 evaluate_1.0.5
## [17] bslib_0.10.0 yaml_2.3.12 otel_0.3.0 jsonlite_2.0.0
## [21] rlang_1.3.0