1 Alcance, pregunta científica y diseño

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.

1.1 Correspondencia con la consigna explicada por el profesor

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.

2 Datos originales y controles obligatorios

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")
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")

3 P1. ¿Existe diferencia por composición GHO/GHE?

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")
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")
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")
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.

4 P2. ¿Difiere la interacción grupal entre composiciones?

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")
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")
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")
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")
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.

4.1 P2 — Extensión solicitada: variable cuantitativa adicional de interacción

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")
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)")
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")
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.

5 P3. ¿Qué disciplina académica presenta mejores resultados al considerar los GHO y los GHE como Grupo Mixto?

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")
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")
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.

5.1 P3 — Complemento: temáticas de las actividades, diferentes de la disciplina académica

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")
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")
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.

5.2 P3 — Complemento adicional: disciplina de origen de estudiantes por composición

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")
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.

6 P4. ¿Qué temática prefieren y qué exposición previa tuvo?

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")
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")
P4: frecuencia de elecciones entre los cuatro GHE
tema n porcentaje
CE 0 0
TI 0 0
CSH 4 100
CVA 0 0

6.1 P4 — Matriz de trazabilidad de dosificación, rendimiento y elección final

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")
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")
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.

7 P5. ¿Se asocian el promedio de actividades y la nota final?

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")
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")
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")
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")
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.

7.1 P5 — Verificación adicional: ponderaciones individuales agregadas por equipo

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")
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")
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.

8 P6. ¿Cuál disciplina presenta mayor éxito en las ponderaciones académicas individuales?

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")
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")
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.

9 Discusión complementaria. ¿Cómo podría mejorarse este diseño de investigación?

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.

  1. Replicación y tamaño muestral. El diseño actual tiene un solo equipo homogéneo por disciplina y cuatro equipos heterogéneos. Para comparar áreas con inferencia sustentable hacen falta varios equipos homogéneos por área y un mayor número de equipos mixtos. El tamaño de muestra debería justificarse mediante precisión o potencia para un efecto relevante, no por un número arbitrario de participantes.
  2. Aleatorización y balance temático. Asignar la composición cuando sea viable y balancear el orden, la modalidad A/B, la dificultad y la exposición a disciplinas; documentar quién recibe cada secuencia. Una rotación o bloques podrían disminuir confusión entre disciplina, posición y dificultad, siempre respetando restricciones logísticas y éticas.
  3. Medición de interacción. Definir conductas observables para los cuatro criterios ordinales, capacitar observadores y evaluar concordancia interevaluador. Diferenciar participación real, puntuación valorativa y recuentos simulados. Registrar y justificar la escala y la frecuencia de evaluación sin suponer validez por el mero reescalamiento a 0–100.
  4. Elección temática del trabajo final. Registrar las alternativas ofrecidas, motivos de elección y calificaciones previas; incorporar variación real o simulada preespecificada en el mecanismo de elección. En E0 las cuatro elecciones mixtas fueron CSH y no permiten identificar el efecto del tema ni de la dosificación sobre la elección.
  5. Análisis coherente con la dependencia. Preespecificar hipótesis y unidades experimentales, distinguir descriptivos de efectos causales y, con suficiente replicación, estudiar modelos jerárquicos para actividades repetidas y estudiantes anidados en equipos. En una única realización con ocho equipos las correlaciones deben considerarse exploratorias, con intervalos amplios y sensibilidad a observaciones influyentes.
  6. Robustez y reproducibilidad. Mantener CSV, parámetros de simulación, código generador, semillas y manifiestos de integridad; explorar múltiples escenarios sintéticos y evaluar cómo se recuperan efectos conocidos. No retocar la realización E0 para lograr significancia ni tratar verificaciones técnicas como pruebas de validez científica.

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.

10 Síntesis y límites

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")
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.

11 Reproducibilidad y sesión

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