En esta ocasión haremos un ejemplo de ANOVA de una vía, en la que analizaremos el siguiente ejercicio:
Bajo nuevas reformas educativas aplicadas recientemente se requiere conocer el nivel académico de los institutos educativos de una ciudad para clasificarlos, para lo que se aplicó un examen estandarizado “ENLACE” a los alumnos de los principales colegios de la ciudad, del total de estudiantes entre los colegios se escogió una muestra aleatoria y se graficaron las calificaciones promedio de los alumnos.
Primero carguemos nuestro espacio de trabajo:
setwd("C:/Users/danie/Desktop/School/Tareas/Estadística/Presentación ANOVA")
#### Cargamos nuestras paqueterías ####
library(dplyr)
library(ggpubr)
library(ggplot2)
library(psych)
library(knitr)
library(broom)
library(car)
library(tidyverse)
colegios <- read.table("Calificaciones.csv", row.names = "id", header= TRUE, sep = ",")
glimpse(colegios)
## Rows: 40
## Columns: 2
## $ calificaciones <dbl> 5.5, 5.2, 5.9, 7.1, 6.2, 5.9, 5.3, 6.2, 6.1, 7.2, 5.5, …
## $ instituto <chr> "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", …
####Para demostrar independencia de datos
durbinWatsonTest(aov(calificaciones ~ instituto, data = colegios)) |>
tidy() |>
kable()
| statistic | p.value | autocorrelation | method | alternative |
|---|---|---|---|---|
| 1.576989 | 0.044 | 0.1881788 | Durbin-Watson Test | two.sided |
#### Normalidad
shapiro.test(colegios$calificaciones) |>
tidy() |>
kable()
| statistic | p.value | method |
|---|---|---|
| 0.9609726 | 0.1808055 | Shapiro-Wilk normality test |
#### Histograma
hist(colegios$calificaciones,
main = "Distribución de Calificaciones",
xlab = "Figura 1: Calificaciones de los estudiantes durante la prueba Enlace",
ylab = "Calificaciones",
col = "lightblue",
border = "black",
probability = TRUE)
media <- mean(colegios$calificaciones, na.rm = TRUE)
desv <- sd(colegios$calificaciones, na.rm = TRUE)
x <- seq(min(colegios$calificaciones, na.rm = TRUE),
max(colegios$calificaciones, na.rm = TRUE),
length = 100)
curve(dnorm(x, mean = media, sd = desv),
col = "red",
lwd = 2,
add = TRUE)
#### Homogeneidad
bartlett.test(calificaciones ~ instituto, data = colegios)
##
## Bartlett test of homogeneity of variances
##
## data: calificaciones by instituto
## Bartlett's K-squared = 3.6487, df = 4, p-value = 0.4556
group_by(colegios, instituto) %>%
summarise(
count = n(),
mean = mean(calificaciones, na.rm = TRUE),
sd = sd(calificaciones, na.rm = TRUE)
)
## # A tibble: 5 × 4
## instituto count mean sd
## <chr> <int> <dbl> <dbl>
## 1 A 8 5.91 0.613
## 2 B 8 6.92 1.04
## 3 C 8 5.82 0.801
## 4 D 8 4.95 1.14
## 5 E 8 5.95 0.695
#### Boxplot
boxplot(calificaciones ~ instituto, data = colegios,
xlab = "Figura 2: Comparativo de las calificaciones de alumnos para la prueba ENLACE", ylab = "Calificaciones",
frame = FALSE, col = c("#ff395a","#62bd41","#f6a49c", "#ffde20", "#527b08"))
anova <- aov(calificaciones ~ instituto, data = colegios)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## instituto 4 15.69 3.921 5.031 0.00261 **
## Residuals 35 27.28 0.779
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Con el valor F=0.00261 calculado podemos rechazar H0 y por lo tanto, deducir que si existen diferencias significativas entre las medias en las calificaciones de la prueba, sin embargo, no conocemos aún que grupo o grupos varían entre sí, por lo que realizaremos una prueba post-Hoc de Tukey para analizar las diferencias entre grupos
TukeyHSD(aov(calificaciones ~ instituto, data = colegios)) |>
tidy() |>
kable()
| term | contrast | null.value | estimate | conf.low | conf.high | adj.p.value |
|---|---|---|---|---|---|---|
| instituto | B-A | 0 | 1.0125 | -0.2565981 | 2.2815981 | 0.1710418 |
| instituto | C-A | 0 | -0.0875 | -1.3565981 | 1.1815981 | 0.9996377 |
| instituto | D-A | 0 | -0.9625 | -2.2315981 | 0.3065981 | 0.2107900 |
| instituto | E-A | 0 | 0.0375 | -1.2315981 | 1.3065981 | 0.9999876 |
| instituto | C-B | 0 | -1.1000 | -2.3690981 | 0.1690981 | 0.1156449 |
| instituto | D-B | 0 | -1.9750 | -3.2440981 | -0.7059019 | 0.0007001 |
| instituto | E-B | 0 | -0.9750 | -2.2440981 | 0.2940981 | 0.2002714 |
| instituto | D-C | 0 | -0.8750 | -2.1440981 | 0.3940981 | 0.2954823 |
| instituto | E-C | 0 | 0.1250 | -1.1440981 | 1.3940981 | 0.9985225 |
| instituto | E-D | 0 | 1.0000 | -0.2690981 | 2.2690981 | 0.1804018 |
Concluimos que el nivel académico de los colegios A, B, C y E no tienen diferencia significativa entre si, es decir, tienen un nivel académico similar, sin embargo, el nivel del colegio D varía de los demás institutos, especialmente del nivel del colegio B, donde se ve una significancia bastante notable, lo cual a su vez nos indica que el colegio B sobresale un poco sobre el nivel de las demás escuelas.