En este documento se presenta un ejemplo de cómo realizar una prueba de aleatorización en R. La prueba de aleatorización es una técnica estadística que se utiliza para evaluar si un tratamiento tiene un efecto significativo en una variable de interés. La idea básica es comparar la diferencia entre el grupo de tratamiento y el grupo de control con la diferencia que se esperaría si los tratamientos se asignaran al azar.
Para realizar una prueba de aleatorización en R, primero necesitamos cargar los datos y luego calcular la diferencia entre los grupos de tratamiento y control. A continuación, simulamos la asignación de tratamientos al azar y calculamos la diferencia entre los grupos de tratamiento y control en cada simulación. Finalmente, comparamos la diferencia observada con la distribución de diferencias simuladas para determinar si el tratamiento tiene un efecto significativo.
En el siguiente ejemplo, se comparan las calificaciones de dos grupos de estudiantes antes (1 a 10) y después (11 a 20) de un tratamiento (nuevo método de enseñanza). El objetivo es determinar si el tratamiento tuvo un efecto significativo en las calificaciones de los estudiantes.
Hipótesis nula: No hay diferencia en las calificaciones entre los dos grupos.
Hipótesis alternativa: Hay una diferencia en las calificaciones entre los dos grupos.
# Calificaciones obtenidas por los estudiantes en los dos grupos
all_scores <- c(72, 69, 78, 80, 75, 68, 74, 77, 71, 73,
79, 81, 85, 82, 78, 80, 83, 77, 84, 76)
# Diferencia observada entre los dos grupos
observed_diff <- mean(all_scores[11:20]) - mean(all_scores[1:10])
# Número de permutaciones para la prueba de aleatorización
n_permutations <- 10000
# Realizar permutaciones y calcular la diferencia entre los grupos
results <- replicate(n_permutations, {
shuffled <- sample(all_scores)
mean(shuffled[11:20]) - mean(shuffled[1:10])
})
# Calcular el p-valor
p_value <- sum(abs(results) >= abs(observed_diff)) / n_permutations
# Graficar la distribución nula con ggplot2
library(ggplot2)
ggplot(data.frame(results = results), aes(x = results)) +
geom_histogram(binwidth = 1, fill = "lightblue", color = "black") +
geom_vline(xintercept = observed_diff, color = "red", linetype = "dashed") +
geom_vline(xintercept = -observed_diff, color = "red", linetype = "dashed") +
labs(title = "Distribución Nula", x = "Diferencia en Medias", y = "Frecuencia")
# Imprimir resultados
cat("Diferencia observada:", observed_diff, "\n")
## Diferencia observada: 6.8
cat("P-value:", p_value, "\n")
## P-value: 6e-04
Diferencia observada: La diferencia de medias entre los grupos de tratamiento y control es de 6.80. Esto significa que, en promedio, los estudiantes del grupo de tratamiento (nuevo método de enseñanza) obtuvieron 6.80 puntos más que los del grupo de control.
Distribución nula: El histograma muestra la distribución de las diferencias que esperaríamos ver si no hubiera un efecto real del método de enseñanza (es decir, si la hipótesis nula fuera verdadera). Las líneas rojas representan nuestra diferencia observada (tanto positiva como negativa, ya que la prueba es bilateral).
Valor p: El valor p es \(6\times 10^{-4}\), que es mucho menor que el nivel de significación convencional de 0.05. Este valor p nos indica la probabilidad de observar una diferencia tan extrema como 6.80 (o más extrema) si no hubiera un efecto real del método de enseñanza.
Conclusión: Dado el valor p muy bajo (\(6\times 10^{-4}\) < 0.05), tenemos evidencia sólida para rechazar la hipótesis nula. Esto sugiere que la diferencia que observamos entre los dos grupos es estadísticamente significativa y es poco probable que haya ocurrido solo por casualidad.
En términos prácticos, esto significa que el nuevo método de enseñanza parece ser eficaz para mejorar las calificaciones de los estudiantes en las pruebas. La mejora promedio de 6.80 puntos es estadísticamente significativa.