Prueba de bondad de ajuste

Las pruebas de bondad de ajuste son un contraste de hipótesis para determinar el grado o nivel de ajuste de nuestros datos a una distribución teórica.

Estas pruebas se basan en la comparación de las frecuencias de ocurrencia observadas en una muestra empírica y las frecuencias esperadas de una distribución teórica. En donde, el objetivo será si existe o no discrepancia entre los valores observados y los valores esperados de la distribución de interés.

La hipótesis a probar de interés estará dada por \begin{align*} H_0: X \sim F_0(x) \quad \text{vs} \quad H_1: X \nsim F_0(x) \end{align*}

Siendo $F_0(x)$ la distribución de probabilidad hipótetica que se quiere probar.

Entre las pruebas de bondad de ajuste más usadas se tiene:

Prueba Librería Función
Kolmogorov–Smirnov stats ks.test()
Cramer–von Mises goftest cvm.test()
Anderson–Darling goftest ad.test()
QQPlot car qqPlot()

Donde éstas pruebas, requieren de los parámetros de la distribución que se quiere probar, y para encontrarlos, es posible emplear métodos de optimización que nos permitan observar cuales son los parámetros ajustados para un conjunto de datos determinado. Para emplear estos método de optimización es posible usar la función fitdistr() de la librería MASS.

Ejercicio

Suponga que el grupo de Economía de la Salud ha realizado un estudio sobre los contagios que se han presentado durante las últimas semanas por el COVID-19, ya que tienen la hipótesis de la tasa de contagios posee una distribución Weibull.

Para probar si dicha hipótesis se encuentra apoyada o no por la información empírica, el grupo de Economía de la Salud, ha decidido tomar como una muestra de los últimos 2 meses (61 días) sobre el número de contagios que se han presentado la región antioqueña, encontrado los siguientes registros (en miles)

714 754 679 735 684 759 759 741 713 722
739 710 737 708 711 744 733 739 681 741
723 689 699 680 690 678 694 710 690 694
722 725 747 693 701 724 713 720 696 682
713 657 714 717 695 724 735 700 713 739
737 721 744 668 728 727 695 725 705 678
713

Si se decide emplear un nivel de significancia del \(5\%\), pruebe si las hipótesis planteadas por el grupo de la economía de la salud se encuentran o no apoyadas por la información empírica.

Solución

En este caso estamos interesados en emplear un nivel de significancia \(\alpha=0.05\) para probar si la información obtenida en \(61\) días apoya o no la hipótesis sobre que los contagios que se han presentado durante las últimas semanas por el COVID-19 poseen una distribución Weibull, esto es \[\begin{align*} H_0:X \sim Wei(\alpha,\beta)\\ H_1:X \not\sim Wei(\alpha,\beta) \end{align*}\] y para ello debemos inicialmente ajustar los parámetros de una distribución Weibull que mejor ajustan los datos, mediante la función fitdistr de la librería MASS, tal que

## Se cargan los datos
datos <- c(714, 754, 679, 735, 684, 759, 759, 741, 713, 722,
           739, 710, 737, 708, 711, 744, 733, 739, 681, 741,
           723, 689, 699, 680, 690, 678, 694, 710, 690, 694,
           722, 725, 747, 693, 701, 724, 713, 720, 696, 682,
           713, 657, 714, 717, 695, 724, 735, 700, 713, 739,
           737, 721, 744, 668, 728, 727, 695, 725, 705, 678,
           713)


## Se realiza el ajuste de los parámetros a una distribución Weibull
library(MASS)
parametros <- fitdistr(x = datos, densfun = "weibull")
parametros
     shape        scale   
   33.781908   724.649562 
 (  3.286809) (  2.906706)

Una vez conocidos el valor de los parámetros de la distribución Weibull que ofrecen un mejor ajuste a los datos muestrales, tal que \(\alpha = 33.781908\) y \(\beta = 724.649562\), se procede al ajuste de la distribución mediante el empleo de la prueba Cramer-Von Mises, mediante la función cvm.test de la librería goftest

## Se hace el ajuste de los datos a la distribución Weibull
library(goftest)
cvm.test(x = datos, null = "pweibull", shape = parametros$estimate[1],
    scale = parametros$estimate[2])
 Cramer-von Mises test of goodness-of-fit
    Null hypothesis: Weibull distribution
    with parameters shape = 33.781908, scale =
    724.649562
    Parameters assumed to be fixed

data:  datos
omega2 = 0.067026, p-value = 0.7718

Donde se observa que la prueba de bondad de ajuste arrojó un P-valor\(=0.7718\), por lo cual al ser mayor que al nivel de significancia \(\alpha=0.05\), se concluirá que no hay evidencia en contra de rechazar la hipótesis nula de que los datos poseen una distribución Weibull con parámetro de forma \(\alpha = 33.781908\) y parámetro de escala \(\beta = 724.649562\).

Adicionalmente, podemos ver el ajuste que tiene la distribución Weibull de parámetros \(\alpha = 33.781908\) y \(\beta = 724.649562\), mediante un QQ-plot, tal que

## Se muestra el ajuste de la distribución Weibull de forma gráfica
library(car)
qqPlot(datos, dist = "weibull", shape = parametros$estimate[1], scale = parametros$estimate[2],
    envelope = 0.95)

en donde se observa que todos los puntos asociados a la distirbución empírica caen dentro de los límites de confianza del \(95\%\) del QQ-plot, y por tanto se tendrá con un nivel de significancia \(\alpha=0.05\), que el número de contagios que se han presentado durante las últimas semanas por el COVID-19, posee una distribución Weibull con parámetro de forma \(\alpha = 33.781908\) y parámetro de escala \(\beta = 724.649562\).

Pruebas de normalidad

Un caso particular de las pruebas de bondad de ajuste son las pruebas específicas que permiten probar si un conjunto de datos se distribuyen o no normalmente, en donde el juego de hipótesis de interés estará dado por

\begin{align*} H_0: X \sim N(\mu,\sigma^2) \quad \text{vs} \quad H_1: X \nsim N(\mu,\sigma^2) \end{align*}

A saber, las funciones más usadas de bondad de ajuste para probar normalidad son:

Prueba Librería Función
Shapiro-Wilk stats shapiro.test()
Lilliefors nortest lillie.test()
Shapiro-Francia nortest sf.test()
Cramer Von-Mises nortest cvm.test()
Anderson-Darling nortest ad.test()
QQPlot car qqPlot()

en donde, a diferencia de las pruebas de bondad de ajuste anteriormente presentadas, éstas pruebas no requieren ajustar con anterioridad los parámetros de la distribución normal, ya que dicho procedimiento se realiza de forma interna dentro de las funciones de ajuste.

Ejercicio

Suponga que el grupo de Economía de la Salud ha realizado un estudio sobre los contagios que se han presentado durante las últimas semanas por el COVID-19, ya que tienen la hipótesis de la tasa de contagios posee una distribución Normal.

Para probar si dicha hipótesis se encuentra apoyada o no por la información empírica, el grupo de Economía de la Salud, ha decidido tomar como una muestra de los últimos 2 meses (61 días) sobre el número de contagios que se han presentado la región antioqueña, encontrado los siguientes registros (en miles)

714 754 679 735 684 759 759 741 713 722
739 710 737 708 711 744 733 739 681 741
723 689 699 680 690 678 694 710 690 694
722 725 747 693 701 724 713 720 696 682
713 657 714 717 695 724 735 700 713 739
737 721 744 668 728 727 695 725 705 678
713

Si se decide emplear un nivel de significancia del \(5\%\), pruebe si las hipótesis planteadas por el grupo de la economía de la salud se encuentran o no apoyadas por la información empírica.

## Se cargan los datos
datos <- c(714, 754, 679, 735, 684, 759, 759, 741, 713, 722, 739, 710, 737, 708,
    711, 744, 733, 739, 681, 741, 723, 689, 699, 680, 690, 678, 694, 710, 690, 694,
    722, 725, 747, 693, 701, 724, 713, 720, 696, 682, 713, 657, 714, 717, 695, 724,
    735, 700, 713, 739, 737, 721, 744, 668, 728, 727, 695, 725, 705, 678, 713)

## Se hace el ajuste de los datos a la distribución Normal
library(nortest)
lillie.test(datos)
    Lilliefors (Kolmogorov-Smirnov) normality test

data:  datos
D = 0.066013, p-value = 0.7321

Observando que al obtener un P-valor\(=0.7321\) se tendrá que no hay evidencia en contra de la hipótesis nula, ya que el P-valor obtenido en la prueba de normalidad es superior al nivel de significancia \(\alpha=0.05\), concluyendo entonces que el número de contagios que se han presentado durante las últimas semanas por el COVID-19, posee una distribución Normal.

Además, si realizamos el QQ-plot para observar el ajuste de las observaciones a la distribución normal se tiene que

## Se muestra el ajuste de la distribución Normal de forma gráfica
library(car)
qqPlot(datos, envelope = 0.95)

En donde se aprecia que la totalidad de los puntos asociados a los datos muestrales caen dentro de las bandas de confianza del \(95\%\) de la distribución normal, por lo cual se concluye con un nivel de significancia del \(5\%\) que el número de contagios que se han presentado durante las últimas semanas por el COVID-19, si posee una distribución Normal.

Tablas de contingencia

Las tablas de contingencia se emplean para probar si uno o más atributos de una población son o no independientes. Para ello se plantea el siguiente juego de hipótesis

\begin{align*} H_0&: \text{Los atributos de la población son independientes}\\ H_1&: \text{Los atributos de la población son dependientes} \end{align*}

Suponga que en una población se clasifica según los atributos $A$ y $B$, y además suponga que existen $r$ categorías en el atributo $A$ y $c$ categorías en el atributo $B$, de forma que hay un total de $r\times c$ posibles combinaciones entre los atributos, tal que

Donde $O_{ij}$: es el número de observaciones entre la i-ésima categoría de $A$ y la j-ésima categoría de $B$, $R_{i}$: es la suma de las observaciones por fila, y $C_{j}$: es la suma de las observaciones por columnas, tal que \begin{align*} R_{i}=\sum_{j=1}^{c}O_{ij} \qquad \qquad C_{j}=\sum_{i=1}^{r}O_{ij} \end{align*}

Ahora, con el fin de probar si hay o no independencia entre las categorías, es necesario calcular $E_{ij}$ el número de observaciones esperadas en la casilla $ij$, tal que \begin{align*} E_{ij}=np_{ij} \end{align*}

donde $pij$ es la probabilidad conjunta bajo el supuesto de independiencia, entonces \begin{align*} p_{ij} = \frac{R_{i}}{n}\times \frac{C_{j}}{n} =\frac{R_{i}C_{j}}{n^2} \end{align*}

y por tanto \begin{align*} E_{ij} = \frac{R_{i}C_{j}}{n} \end{align*}

Una vez calculados cada uno de los $E_{ij}$, es posible reescribir dichos valores de forma en forma de matríz de la forma

Finalmente, al comparar las frecuencias observadas $O_{ij}$ con las frecuencias esperadas $E_{ij}$, se tendrá que el estadístico de prueba para probar la independencia, será de la forma \begin{align*} \chi^2_{c}=\sum_{i=1}^{r}\sum_{j=1}^{c} \frac{(O_{ij}- E_{ij})^2}{E_{ij}} \sim \chi^2_{(r-1)(c-1)} \end{align*}

la región crítica \begin{align*} RC:\{\chi^2|\chi^2>\chi^2_{\alpha,(r-1)(c-1)}\} \end{align*}

y el P-valor \begin{align*} \text{P-valor}=\mathbb{P}(\chi^2_{(r-1)(c-1)}>\chi^2_c) \end{align*}

Ejercicio

Suponga que se desea clasificar los defectos de fabricación en una empresa manufacturera de acuerdo al tipo de defecto y la jornada en la cual fueron producidas.

Suponga que se obtienen los siguientes resultados de una muestra aleatoria de \(350\) productos defectuosos

Contrastar a un nivel de significancia del \(5%\), si existe independencia entre el tipo de defecto y el turno de producción en el cual fue manufacturado el producto.

Solución

Con el fin de probar si existe o no independencia entre el tipo de defecto y el turno de producción en el cual fue manufacturado el producto, es necesario calcular inicialmente las sumas marginales por filas y columnas de la varible observada, tal que

Una vez calculadas las sumas marginales por fila y por columna, se procede a calcular las frecuencias esperadas, mediante la ecuación \[\begin{align*} E_{ij} = \frac{R_{i}C_{j}}{n} \end{align*}\] para obtener la siguiente tabla de frecuencias esperadas, de la forma

Y ahora, al emplear los valores observados con los esperados, se realiza el cálculo del estadístico de prueba, tal que \[\begin{align*} \chi^2_{c}&=\sum_{i=1}^{r}\sum_{j=1}^{c} \frac{(O_{ij}- E_{ij})^2}{E_{ij}} \sim \chi^2_{(r-1)(c-1)}\\ &=\frac{(16 - 26.71429)^2}{26.71429} + \frac{(27 - 24.51429)^2}{24.51429} + \ldots + \frac{(23 - 17.45714)^2}{17.45714}\\ &=22.98415 \end{align*}\] Finalmente se plantea el criterio de decisión, en donde la región crítica asociada para un nivel de significancia del \(5\%\) está dada por \[\begin{align*} RC&:\{\chi^2|\chi^2>\chi^2_{\alpha,(r-1)(c-1)}\}\\ RC&:\{\chi^2|\chi^2>\chi^2_{0.05,(3-1)(4-1)}\}\\ RC&:\{\chi^2|\chi^2>\chi^2_{0.05,6}\}\\ RC&:\{\chi^2|\chi^2>12.5915872\}\\ \end{align*}\] mientras que el P-valor asociado al estadístico de prueba es igual a \[\begin{align*} \text{P-valor}&=\mathbb{P}(\chi^2_{(r-1)(c-1)} > \chi^2_c)\\ &=\mathbb{P}(\chi^2_{(3-1)(4-1)} > 22.98415)\\ &=\mathbb{P}(\chi^2_{6} > 22.98415)\\ &=0.0008018046 \end{align*}\] Encontrando con un nivel de significancia del \(5\%\) que se rechaza la hipótesis nula de que el tipo de defecto y el turno sean categorías independiente, lo cual quiere decir que el turno laboral si influye en el tipo de defecto que tienen los productos producidos por la empresa maufacturera, debido a que el estadístico de prueba cae dentro de la región crítica, y el P-valor es menor al nivel de significancia \(\alpha = 0.05\).