PRUEBA DE NORMALIDAD

Author

Georgina Pérez

¿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:

  • TenMileRace indica la base de datos que estamos utilizando.

  • sex == "M" selecciona a los hombres.

  • age >= 10 indica que la edad debe ser mayor o igual a 10.

  • age <= 19 indica 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.