library(ggplot2)
# Creamos un dataframe con datos dummy. En este caso, inventamos uno donde nos diga el salón de clases en el que un alumno se encuentra y su calificación en la clase de minerÃa de datos.
scores <- data.frame(
salon = rep(c("A", "B", "C"), each = 20),
cali = c(
78, 80, 82, 75, 85, 79, 72, 76, 81, 77,
68, 70, 65, 72, 74, 71, 69, 67, 73, 75,
85, 87, 89, 82, 88, 84, 80, 83, 86, 81
)
)
str(scores)
## 'data.frame': 60 obs. of 2 variables:
## $ salon: chr "A" "A" "A" "A" ...
## $ cali : num 78 80 82 75 85 79 72 76 81 77 ...
table(scores$salon)
##
## A B C
## 20 20 20
# Cálculo de la Media por Salón de Clases. La función aggregate() agrupa los datos por salon y calcula la media de las calificaciones (cali) para cada salón.
aggregate(cali~salon, data = scores, FUN = mean)
## salon cali
## 1 A 74.45
## 2 B 81.50
## 3 C 77.45
# Visualización con Gráfico de Cajas (Boxplot)
ggplot(data = scores, aes(x=salon, y=cali, color = salon)) + geom_boxplot() + theme_light()

# Realizamos ahora si el anova para evaluar si hay diferencias significativas en las calificaciones entre los salones de clases. La función aov() realiza el ANOVA con scores$cali como la variable dependiente y scores$salon como el factor categórico. summary(anova) muestra los resultados del análisis, incluyendo la estadÃstica F, los grados de libertad y los valores p.
anova = aov(scores$cali ~scores$salon)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## scores$salon 2 500.7 250.35 6.779 0.00228 **
## Residuals 57 2104.9 36.93
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Diagrama de la prueba de Tukey. Esta parte genera un diagrama que muestra las diferencias significativas entre los grupos de salones de clases utilizando la prueba de Tukey para comparaciones múltiples después del ANOVA. Muestra los intervalos de confianza y qué grupos tienen diferencias significativas en las calificaciones.
plot(TukeyHSD(anova))
