PRUEBA DE NORMALIDAD
¿Qué es una prueba de normalidad?
Las pruebas de normalidad son métodos estadísticos utilizados para determinar si una muestra de datos sigue una distribución normal. Estas pruebas son relevantes en el análisis estadístico, ya que muchos procedimientos estadísticos se basan en la suposición de normalidad de los datos (Flores-Tapia y Flores-Ceballos, 2021).
Tipos de pruebas de normalidad
Gráficas:
Histograma: Permite comparar visualmente la forma de los datos con una curva normal.
Gráfico Q-Q (Quantile-Quantile): Compara los cuantiles de los datos con los cuantiles de una distribución normal. Si los puntos caen aproximadamente sobre una línea recta, los datos se consideran normales
Pruebas de hipótesis
Shapiro-Wilk. Prueba para muestras pequeñas que calcula una estadístico W que mide qué tan bien se ajustan los datos a una distribución normal.
Kolmogorov-Smirnov: Compara la función de distribución empírica de la muestra con la distribución normal teórica.
Anderson-Darling Evalúa qué tan compatibles son los datos observados con una distribución normal teórica, dando más peso a las colas de la distribución
Prueba de D’Agostino K²: Evalúa la asimetría y curtosis de los datos para determinar desviaciones de la normalidad
Nota: Estudiar la normalidad permite verificar si los supuestos del método estadístico que queremos utilizar son adecuados. Ignorarla puede conducir a inferencias poco confiables, como p-valores o intervalos de confianza que podrían no comportarse como el método estadístico afirma que deberían hacerlo.
Implementación en R-Studio
1-Prueba de Shapiro-Wilk
La prueba de Shapiro-Wilk es una prueba de hipótesis que permite determinar si un conjunto de datos es compatible con una distribución normal.
Las hipótesis que se plantean son:
\(H_0\):Los datos siguen una distribución normal
\(H_1\):Los datos no siguen una distribución normal
Para tomar una decisión utilizaremos un nivel de significancia de \(\alpha=0.05\).
Si \(p>0.05\), no se rechaza \(H_0\). No existe evidencia suficiente para afirmar que los datos no siguen una distribución normal.
Si \(p\leq0.05\), se rechaza \(H_0\). Existe evidencia estadísticamente significativa de que los datos no siguen una distribución normal.
En R podemos realizar esta prueba mediante la función shapiro.test().
Ejemplo sencillo
Primero creamos un vector que contiene los datos que queremos analizar:
datos <- c(5, 3, 2, 6, 9, 10, 21, 2, 5, 10, 12, 11, 10)
Después aplicamos la prueba de Shapiro-Wilk:
shapiro.test(datos)
El resultado tendrá la siguiente estructura:
Shapiro-Wilk normality test data: datos W = 0.89306, p-value = 0.1074
En este caso, el valor obtenido es: \(p=0.1074\) . Como: \(0.1074>0.050\) no se rechaza \(H_0\). Por lo tanto, no existe evidencia suficiente para afirmar que estos datos se alejan de una distribución normal.
2-Prueba de Lilliefors
2. Prueba de Lilliefors
Adaptación de Kolmogorov-Smirnov
Para muestras mayores utilizaremos la prueba de Lilliefors, una adaptación de la prueba de Kolmogorov-Smirnov para evaluar la normalidad cuando los parámetros de la distribución normal son estimados a partir de los datos.
Las hipótesis son:
\(H_0\): Los datos siguen una distribución normal.
\(H_1\): Los datos no siguen una distribución normal.
La regla de decisión también será:
Si \(p>0.05\), no se rechaza \(H_0\).
Si \(p\leq0.05\), se rechaza \(H_0\).
La función lillie.test() se encuentra en el paquete nortest.
Si todavía no tenemos instalado el paquete, podemos instalarlo mediante:
# install.packages("nortest")
La instalación solamente es necesaria la primera vez. Una vez instalado, no es necesario ejecutar nuevamente
install.packages().
Después cargamos el paquete:
library(nortest)
Ejemplo sencillo
Para practicar esta prueba utilizaremos un conjunto de datos con más observaciones.
Primero creamos un vector:
datos_mayores <- c( 12, 15, 14, 16, 13, 17, 18, 15, 14, 16, 13, 12, 15, 17, 19, 16, 14, 15, 13, 18, 16, 15, 14, 17, 13, 16, 15, 14, 18, 17, 15, 16, 14, 13, 17, 18, 15, 16, 14, 15, 13, 17, 16, 15, 14, 18, 17, 16, 15, 14, 13, 16, 17, 15, 14, 18, 16, 15, 17, 14 )
Podemos verificar el tamaño de la muestra:
length(datos_mayores)
Ahora aplicamos la prueba de Lilliefors:
lillie.test(datos_mayores)
El resultado tendrá una estructura similar a:
Lilliefors (Kolmogorov-Smirnov) normality test data: datos_mayores D = ..., p-value = ...
En esta prueba observamos el estadístico D y, principalmente, el p-value para tomar una decisión sobre la normalidad.
Interpretación
La decisión se toma de la misma manera:
Si \(p>0.05\), no se rechaza \(H_0\).
Si \(p\leq0.05\), se rechaza \(H_0\).
Aplicación a la base TenMileRace
Ahora aplicaremos la prueba a una situación real utilizando la base de datos TenMileRace.
En este análisis estudiaremos la variable net, que corresponde al tiempo neto de carrera, y utilizaremos age y sex para formar los grupos de interés.
Primero cargamos la base de datos:
library(mosaicData) data(TenMileRace)
Podemos observar las primeras observaciones de la base:
head(TenMileRace)
Hombres de 10 a 19 años
Primero seleccionamos únicamente a los hombres cuya edad se encuentra entre 10 y 19 años:
hombres_10_19 <- subset( TenMileRace, sex == "M" & age >= 10 & age <= 19 )
En este código:
TenMileRaceindica la base de datos que estamos utilizando.sex == "M"selecciona a los hombres.age >= 10indica que la edad debe ser mayor o igual a 10.age <= 19indica que la edad debe ser menor o igual a 19.&significa “y”, por lo que ambas condiciones deben cumplirse.
Ahora extraemos únicamente la variable net:
datos_hombres_10_19 <- hombres_10_19$net
El símbolo $ permite seleccionar una variable específica de la base de datos.
Antes de realizar la prueba, verificamos el tamaño de la muestra:
length(datos_hombres_10_19)
Este resultado nos indica cuántos corredores pertenecen al grupo.
Finalmente, aplicamos la prueba de Shapiro-Wilk:
shapiro.test(datos_hombres_10_19)
Interpretación
Las hipótesis para este caso son:
\(H_0\): El tiempo neto de los hombres de 10 a 19 años sigue una distribución normal
\(H_1\) :El tiempo neto de los hombres de 10 a 19 años no sigue una distribución normal
Nota importante
Esta división se utiliza únicamente con fines didácticos. No significa que Shapiro-Wilk solamente pueda utilizarse con muestras menores o iguales a 50. En R, shapiro.test() permite trabajar con muestras de 3 a 5000 observaciones.