Este documento pretende revisar conceptos básicos sobre la prueba de bondad y ajuste.
Responsabilidad de autor: el ejercicio mostrado a continuación ha sido fruto de practicas desarrolladas en las secciones de la asignatura Estadística no paramétrica del programa de Maestría en Bioestadística impartido por el Departamento de Epidemiología Clínica y Bioestadística de la Facultad de Medicina de la Pontificia Universidad Javeriana; sin embargo, la información mostrada acá es responsabilidad del autor.
Por otro lado, la información mostrada acá solo deben ser usada con fines académicos, no pueden ser objeto de estudios para hacer inferencias ni se podrán ser extrapolados para otras poblaciones u otros contextos diferentes al mostrado en este documento.
Se realizó la medición del peso de 206 personas (se desconoce totalmente la población). Se tiene el interés de saber si esta variable proviene de una población con distribución normal con media 10 y desviación estándar igual a 3. Realizar la evaluación utilizando distintas pruebas de bondad y ajuste y la evaluación a través de gráficos.*
#Librerías a utilizar
library(readxl)
library(ggplot2)
library(nortest)
<- read_excel("Caso prueba de bondad y ajuste.xlsx",
base range = "A3:A209", col_types = c("numeric"))
En el gráfico mostrado abajo se observa cierta asimetría positiva en la distribución de los datos. También se puede observar que la media de los datos podría estar ligeramente encima de los 10 Kg; además, esta asimetría observada podría elevar el valor de la desviación en los datos.
ggplot(base, aes(x=peso))+
geom_histogram(bins = 10, fill = "white", color = "blue", size = 0.1) +
aes(y = ..density..) +
geom_density(col = "Black", size=1) +
labs(title = "Histograma", y = "Densidad", x = "Peso") +
theme_classic()
Por otro lado, al observar el gráfico de cajas y bigotes realizado con los datos, se aprecia la presencia de valores atípicos, lo que podría estar explicando la asimetria positiva presente en los datos.
ggplot(base, aes(x = peso))+
geom_boxplot(outlier.color = "blue" )+
coord_flip()+
labs(title = "Gráfico de cajas y bigotes") +
theme_classic()
Con relación a la distribución en los datos, el Q-Q plot realizado con los datos muestra algunas observaciones alejadas de los quantiles teóricos, por lo que visualmente podría cuaestionarse la normalidad en este conjunto de datos.
qqnorm(base$peso)
qqline(base$peso,col= "red")
Por último, al contrastar la distribución empírica vs la distribución teórica de los datos se observan marcadas diferencias, la distribución empírica tiende a caer por debajo de la distribución teórica, mostrando quizás, una media más elevada.
ggplot(base,aes(x=peso)) +
stat_ecdf(geom = "step") +
stat_function(fun = pnorm, color = "blue", args = list(10,3),size=0.8 )+
labs(title = "Distribución empírica vs teórica", y = "Densidad", x = "x") +
theme_classic()
A continuación, se contrastarán cuatro diferentes alternativas para el contraste de la bondad y ajuste en los datos.
La prueba de Kolmogorov-Smirnov, en esta ocación la prueba asintótica de para una muestra de una muestra, principalmente se utiliza cuando la distribución subyacente es desconocida y se desea verificar si los datos siguen una distribución normal, en este caso la utilizaremos para comparar la distribución acumulativa empírica de la muestra con la distribución acumulativa teórica de una distribución normal, especificando los parámetros.
La hipótesisi a contrastar en esta prueba es la siguiente:
\(H0:\) la variable proviene de una población con distribución normal con media 10 y desviación estándar igual a 3.
\(H1:\) la variable no proviene de una población con distribución normal con media 10 y desviación estándar igual a 3.
A continuación se contrastan las hipótesis planteadas utilizando la función ks.test del la librería stats:
ks.test(x = base$peso, y = "pnorm", 10, 3, alternative = "two.sided", exact = FALSE)
Asymptotic one-sample Kolmogorov-Smirnov test
data: base$peso
D = 0.31143, p-value < 2.2e-16
alternative hypothesis: two-sided
Al contrastar las hipótesis, se rechaza la hipótesis nula y se concluye que la distribución empírica no sigue la distribución de la muestra teórica (p-value < 0.001), es decir, que la variable no proviene de una población con distribución normal con media 10 y desviación estándar igual a 3.
En el análisis anterior, se rechazó la hipótesis nula y se concluyó que la variable no proviene de una población con distribución normal con media 10 y desviación estándar igual a 3; sin embargo, podemos contrastar si la variable proviene de una muestra con distribución normal. Planteado esto, las hipótesis a contrastar son las siguientes:
\(H0:\) Los datos siguen una distribución normal.
\(H1:\) Los datos no siguen una distribución normal.
Para contrastar las hipótesis, haremos uso de tres diferente pruebas y compararemos sus resultados.
En primer lugar, la prueba de Normalidad de Shapiro-Wilk, evalúa si una muestra sigue una distribución normal, basandose en las covarianzas entre los valores ordenados y los pesos específicos proporcionados por la distribución normal. Es bastante potente para detectar desviaciones de la normalidad, especialmente en muestras de tamaño moderado a grande. Para contrastar la hipótesis por medio de esta prueba, haremos uso de la función shapiro.test de la librería de la librería stats:
shapiro.test(base$peso)
Shapiro-Wilk normality test
data: base$peso
W = 0.97054, p-value = 0.0002594
Al contrastar las hipótesis, se rechaza la hipótesis nula y se concluye que datos no siguen una distribución normal (p-value < 0.001).
Otra de las pruebas utilizadas para contrastar esta hipótesis es la prueba de normalidad de Shapiro-Francia Es una extensión de la prueba de Shapiro-Wilk, pero proporciona una corrección para el sesgo. También se utiliza para evaluar la normalidad de una muestra y puede ser especialmente útil en muestras grandes. Para contrastar la hipótesis por medio de esta prueba, haremos uso de la función sf.test de la librería de la librería nortest:
sf.test(base$peso)
Shapiro-Francia normality test
data: base$peso
W = 0.96819, p-value = 0.0002705
Al contrastar las hipótesis, se rechaza la hipótesis nula y se concluye que datos no siguen una distribución normal (p-value < 0.001).
Por último, contrastaremos la hipótesis por medio de la prueba de normalidad Lilliefors (Kolmogorov-Smirnov), es similar al test de Kolmogorov-Smirnov, pero utiliza una tabla de valores críticos ajustados para muestras pequeñas. A menudo se llama Kolmogorov-Smirnov de Lilliefors. Al contrario de las anteriores, es útil para muestras pequeñas, donde la corrección de Lilliefors puede proporcionar una mejora en la sensibilidad de la prueba. Para contrastar la hipótesis por medio de esta prueba, haremos uso de la función lillie.test de la librería de la librería nortest:
lillie.test(base$peso)
Lilliefors (Kolmogorov-Smirnov) normality test
data: base$peso
D = 0.045054, p-value = 0.39
Al contrastar las hipótesis, no se rechaza la hipótesis nula y se concluye que datos siguen una distribución normal (p-value = 0.39).
Mediante este último contraste, se ilustrará cómo el uso incorrecto de una prueba puede cambiar su decisión en un contraste de hipótesis, es decir, como se mencionó anteriormente, la prueba de normalidad Lilliefors (Kolmogorov-Smirnov) es mayormente utilizada en tamaños de muestras pequeñas; sin embargo, el tamaño de muestra que estamos trabajando en este ejemplo no es considerado adecuado para esta prueba.
En general, todas estas pruebas tienen sus propias características y limitaciones. No hay una única prueba que sea la mejor en todos los escenarios, y la elección depende de diversos factores, como el tamaño de la muestra y la naturaleza de los datos. Además, es importante recordar que estas pruebas son sensibles al tamaño de la muestra, y en muestras muy grandes, pequeñas desviaciones de la normalidad pueden resultar en rechazo o aceptación de la hipótesis nula.
Recuerda que la elección de la prueba depende de la naturaleza de tus datos y de la distribución que estás tratando de evaluar. Además, ten en cuenta que ninguna prueba es perfecta, y siempre es útil complementar los resultados de la prueba con visualizaciones y análisis exploratorio de datos.
A continuación una Interrogante para fomentar el pensamiento crítico
Consideras que hubiesen cambiado las decisiones de las hipótesis de haber retirado los valores extremos identificados en el gráfico de cajas y bigotes?