PLANTEAMIENTO DEL PROBLEMA

El objetivo de este estudio es evaluar si una estrategia de aprendizaje basada en predecir el resultado de un código antes de ejecutarlo produce un rendimiento académico diferente al de una estrategia tradicional basada en explicaciones y ejercicios prácticos.

PREGUNTAS DE INVESTIGACIÓN

¿Existen diferencias significativas en el rendimiento de los estudiantes según la estrategia de enseñanza de programación utilizada?

TRATAMIENTOS

Tratamiento 1: Predicción previa. El estudiante predice qué resultado producirá un código, después lo ejecuta y recibe retroalimentación para comprender sus errores.

Tratamiento 2: Explicación y práctica. El estudiante recibe explicaciones de los conceptos, observa ejemplos y resuelve ejercicios prácticos.

Para que la comparación sea válida, ambos grupos deberían estudiar los mismos contenidos, durante un tiempo equivalente y con evaluaciones comparables. La diferencia principal debería ser la estrategia de enseñanza.

Tratamientos incluidos en el documento Word original.
Tratamientos incluidos en el documento Word original.

DCA

En este estudio:

La lógica del diseño es asignar a los estudiantes al azar a uno de los dos grupos y comparar sus resultados después de aplicar cada estrategia. Los datos usados aquí son simulados, por lo que el análisis es demostrativo y no constituye evidencia empírica sobre estudiantes reales.

VARIABLES INDEPENDIENTES Y DEPENDIENTES

Elemento En nuestro estudio
Variable independiente Estrategia de enseñanza
Niveles de la variable independiente Predicción previa y explicación y práctica
Variable dependiente principal Calificación del postest
Variable de control o medición inicial Calificación del pretest
Variable de respuesta adicional Calificación de retención después de una semana
Tabla de variables del documento Word original.
Tabla de variables del documento Word original.

REPRESENTACIÓN DEL DISEÑO (DCA)

Representación del diseño completamente al azar incluida en el Word.
Representación del diseño completamente al azar incluida en el Word.

El pretest permite conocer el nivel inicial de los estudiantes. El postest mide el rendimiento después de la intervención, mientras que la prueba de retención permite evaluar cuánto recuerdan una semana después.

GRÁFICOS EXPLORATORIOS

PRE TEST

El gráfico compara las calificaciones iniciales de ambos tratamientos. Sirve para explorar visualmente posibles diferencias de partida y la dispersión de las puntuaciones.

# Leer el CSV ubicado en la misma carpeta que este Rmd.
datos <- read.csv("datos_DCA_prediccion_programacion_v2.csv",
                  fileEncoding = "UTF-8-BOM", stringsAsFactors = FALSE)

# Estandarizar las etiquetas para que coincidan con las del documento.
datos$Tratamiento <- trimws(datos$Tratamiento)
datos$Tratamiento[datos$Tratamiento == "Prediccion previa"] <- "Predicción previa"
datos$Tratamiento[datos$Tratamiento == "Explicacion y practica"] <- "Explicación y práctica"
datos$Tratamiento <- factor(datos$Tratamiento,
                            levels = c("Explicación y práctica", "Predicción previa"))

# Validaciones básicas de la estructura de los datos.
stopifnot(nrow(datos) == 40)
stopifnot(all(table(datos$Tratamiento) == 20))
stopifnot(all(c("Estudiante", "Tratamiento", "Pretest", "Postest",
                "Retencion_1_semana") %in% names(datos)))

knitr::kable(head(datos), caption = "Primeras filas de la base de datos")
Primeras filas de la base de datos
Estudiante Tratamiento Pretest Postest Retencion_1_semana
E01 Predicción previa 50.4 74.2 51.5
E02 Predicción previa 54.8 73.2 56.8
E03 Explicación y práctica 62.6 79.7 59.7
E04 Predicción previa 52.8 66.2 51.6
E05 Explicación y práctica 60.9 68.7 67.8
E06 Predicción previa 57.3 68.8 61.1

POS TEST

El postest es la variable de respuesta principal del DCA. El boxplot permite comparar mediana, variabilidad y posibles valores extremos entre los tratamientos.

ggplot(datos, aes(x = Tratamiento, y = Postest, fill = Tratamiento)) +
  geom_boxplot(alpha = 0.65, show.legend = FALSE) +
  geom_jitter(width = 0.10, alpha = 0.65, show.legend = FALSE) +
  labs(title = "Postest por método de enseñanza",
       x = "Tratamiento", y = "Nota del postest (0–100)") +
  theme_minimal()

ANOVA PARA ANÁLISIS DEL DCA

El ANOVA de un factor permite evaluar si las medias de los resultados de los dos tratamientos presentan una diferencia estadísticamente significativa.

HIPÓTESIS

  • H₀: las medias de rendimiento de ambos tratamientos son iguales.
  • H₁: las medias de rendimiento de ambos tratamientos son diferentes.

Se utiliza un ANOVA de un factor con nivel de significación \(\alpha = 0.05\).

modelo_dca <- aov(Postest ~ Tratamiento, data = datos)
tabla_anova <- summary(modelo_dca)
tabla_anova
##             Df Sum Sq Mean Sq F value Pr(>F)  
## Tratamiento  1    246  246.02   3.016 0.0906 .
## Residuals   38   3100   81.58                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Para tomar la decisión, se consulta la columna Pr(>F), que contiene el valor p. En el documento original se reporta aproximadamente p = 0.0906.

  • Si \(p < 0.05\), se rechaza H₀ al nivel del 5 %: hay evidencia estadística de una diferencia entre medias.
  • Si \(p \geq 0.05\), no se rechaza H₀: la evidencia no basta para afirmar que las medias difieren.

No rechazar H₀ no demuestra que los métodos sean idénticos. También deben considerarse la diferencia estimada, el intervalo de confianza y el tamaño del efecto.

MEDIAS, DIFERENCIA E INTERVALO DE CONFIANZA

resumen <- datos %>%
  group_by(Tratamiento) %>%
  summarise(n = n(),
            Media = mean(Postest, na.rm = TRUE),
            SD = sd(Postest, na.rm = TRUE),
            Mediana = median(Postest, na.rm = TRUE),
            Minimo = min(Postest, na.rm = TRUE),
            Maximo = max(Postest, na.rm = TRUE),
            .groups = "drop")
knitr::kable(resumen, digits = 2,
            caption = "Estadísticos descriptivos del postest por tratamiento")
Estadísticos descriptivos del postest por tratamiento
Tratamiento n Media SD Mediana Minimo Maximo
Explicación y práctica 20 64.86 8.29 65.75 50.2 79.7
Predicción previa 20 69.83 9.72 69.25 49.6 88.5

En el documento original se informa lo siguiente:

# Diferencia definida como Predicción previa menos Explicación y práctica.
post_pred <- datos$Postest[datos$Tratamiento == "Predicción previa"]
post_exp  <- datos$Postest[datos$Tratamiento == "Explicación y práctica"]
diferencia <- mean(post_pred) - mean(post_exp)
prueba_welch <- t.test(post_pred, post_exp, conf.level = 0.95)

res_diferencia <- data.frame(
  Comparacion = "Predicción previa - Explicación y práctica",
  Diferencia_de_medias = diferencia,
  IC95_inferior = prueba_welch$conf.int[1],
  IC95_superior = prueba_welch$conf.int[2],
  p_Welch = prueba_welch$p.value
)
knitr::kable(res_diferencia, digits = 3,
             caption = "Diferencia de medias e intervalo de confianza del 95 %")
Diferencia de medias e intervalo de confianza del 95 %
Comparacion Diferencia_de_medias IC95_inferior IC95_superior p_Welch
Predicción previa - Explicación y práctica 4.96 -0.827 10.747 0.091

El intervalo de confianza muestra qué diferencias entre medias son compatibles con los datos. Una diferencia positiva favorece numéricamente a Predicción previa; una negativa favorece a Explicación y práctica. El intervalo debe interpretarse junto con su amplitud y con el valor p.

EVALUACIÓN DE SUPUESTOS

NORMALIDAD EN LOS RESIDUOS

El supuesto relevante para ANOVA es la normalidad aproximada de los residuos del modelo, no que todas las variables del archivo deban seguir una distribución normal. Se evalúa con el gráfico Q–Q y la prueba de Shapiro–Wilk.

Gráfico Q-Q del documento Word original.
Gráfico Q-Q del documento Word original.

visualmente se describe una desviación en los extremos, aunque el centro sigue bastante bien la línea de referencia. El gráfico debe evaluarse junto con la prueba formal y teniendo en cuenta que los extremos pueden estar influidos por observaciones alejadas.

  • H₀: los residuos siguen una distribución normal.
  • H₁: los residuos no siguen una distribución normal.
residuos_dca <- residuals(modelo_dca)
prueba_shapiro <- shapiro.test(residuos_dca)
prueba_shapiro
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos_dca
## W = 0.98121, p-value = 0.7344

En el Word se reporta p = 0.7344. Al ser superior a 0.05, no se rechaza la hipótesis nula de normalidad. Esto significa que la prueba no detecta evidencia suficiente contra la normalidad; no demuestra que los residuos sean perfectamente normales.

HOMOCEDASTICIDAD DE VARIANZA

La homocedasticidad significa que la variabilidad de las calificaciones es similar entre los grupos.

  • H₀: las varianzas de los grupos son iguales (homogéneas).
  • H₁: las varianzas de los grupos son diferentes (heterogéneas).
prueba_levene <- car::leveneTest(Postest ~ Tratamiento, data = datos, center = median)
prueba_levene

se reporta p = 0.707. Como es superior a 0.05, no se rechaza H₀; no se detecta evidencia suficiente de diferencias entre las varianzas de los grupos. Es más preciso decir que los datos son compatibles con varianzas homogéneas que afirmar que la igualdad está demostrada.

GRÁFICO DE LOS RESIDUOS

Los gráficos de residuos permiten detectar patrones sistemáticos, dispersión no constante y desviaciones de normalidad que las pruebas formales podrían no detectar por sí solas.

par(mfrow = c(1, 2))
plot(fitted(modelo_dca), residuos_dca,
     xlab = "Valores ajustados", ylab = "Residuos",
     main = "Residuos frente a valores ajustados")
abline(h = 0, lty = 2, col = "red")
qqnorm(residuos_dca, main = "Gráfico Q-Q de residuos")
qqline(residuos_dca, col = "red", lwd = 2)

par(mfrow = c(1, 1))

Se concluye que los gráficos respaldan de forma aceptable la evaluación de los supuestos y que la diferencia numérica entre los métodos es sutil frente a la variabilidad observada. Esta interpretación debe leerse junto con las pruebas formales y los gráficos recalculados en este informe.

APLICACIÓN DE ANOVA A UN FACTOR

Las hipótesis estadísticas del modelo son:

El modelo ajustado es:

modelo_dca <- aov(Postest ~ Tratamiento, data = datos)
summary(modelo_dca)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## Tratamiento  1    246  246.02   3.016 0.0906 .
## Residuals   38   3100   81.58                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Tomando el nivel de significación estándar \(\alpha = 0.05\), el Word informa un valor p aproximado de 0.089 (redondeado de forma ligeramente diferente en otras secciones). Al ser mayor que 0.05, no se rechaza H₀.

Aunque el grupo de Predicción previa obtuvo un promedio numéricamente superior (69.83 frente a 64.86, diferencia aproximada de 4.97 puntos), esa diferencia no es estadísticamente significativa al nivel del 5 % según el ANOVA reportado. Por tanto, no existe evidencia suficiente en estos datos simulados para afirmar que un método sea superior al otro; la diferencia observada es compatible con la variabilidad aleatoria.

Conclusión del DCA

El análisis del DCA encuentra una diferencia descriptiva a favor de Predicción previa, pero el contraste ANOVA reportado no alcanza significación estadística al nivel de 0.05. Los diagnósticos descritos en el Word no detectan evidencia suficiente contra la normalidad de los residuos ni contra la homogeneidad de varianzas. La conclusión debe ser prudente: no se detectó una diferencia estadísticamente significativa, lo cual no prueba que ambos métodos sean idénticos.