Javier Santibáñez
29 de noviembre de 2017
\[ H_0: F(\cdot) = N(\cdot \,\vert\, \mu, \sigma^2) \qquad \text{vs.} \qquad F(\cdot) \neq N(\cdot \,\vert\, \mu, \sigma^2) \]
Si \(M^*_1, \ldots, M^*_n\) denotan los valores esperados de los estadísticos de orden de la distribución \(N(0,1)\), entonces los valores esperados de los estadísticos de orden de la distribución \(N(\mu, \sigma^2)\) se pueden escribir como \[ M_i = \mu + \sigma M^*_i, \qquad i=1, \ldots,n. \]
Por otro lado, si la verdaera distribución de los datos es \(N(\mu, \sigma^2)\), entonces podemos modelar a los estadísticos de orden muestrales como \[ X_{(i)} = M_{i} + \epsilon_i, \qquad i = 1, \ldots, n. \] donde \(\epsilon_i\) representa la desviación del estadístico de orden observado y su valor esperado.
Podemos reunir las dos ecuaciones anteriores para relacionar los valores observados con los estadísticos de orden de la distribución \(N(0, 1)\) en el siguiente modelo \[ X_{(i)} = \mu + \sigma M^0_i + \epsilon_i, \qquad i = 1, \ldots, n. \]
La expresión anterior corresponde a un modelo de regresión con variable dependiente los valores observados en la muestra y variable independiente los valores esperados de los estadísticos de orden de la distribución \(N(0, 1)\).
La prueba de Shapiro-Wilk se basa en una comparación del estimador de \(\sigma^2\) libre de distribución y del estimador basado en el modelo lineal anterior, que se basa en el supuesto de normalidad dado en \(H_0\).
Shapiro y Wilk (1965) proponen el siguiente estadístico \[ W = \frac{\left(\sum_{i=1}^na_iX_{(i)}\right)^2}{\sum_{i=1}^n(X_i - \bar{X}_n)^2} \] donde \(\mathbf{a} = (a_1, \ldots, a_n)\) se calcula como \[ \mathbf{a} = \frac{\mathbf{M}^T_0\mathbf{V_0}^{-1}}{\left(\mathbf{M}^T_0\mathbf{V}^{-1}_0\mathbf{V}^{-1}_0\mathbf{M}_0\right)^{1/2}}, \] \(\mathbf{M}_0\) es el vector de valores esperados y \(\mathbf{V}_0\) es la matriz de covarianzas de los estadísticos de orden de la distribución \(N(0, 1)\).
Para rechazar \(H_0\) comparamos el estadistico \(W\) con los valores críticos de su distribución, la cual no tiene una forma analítica.
Al igual que con otros estadísticos, es posible aproximar la distribución de \(W\) con simulación. El problema con este estadístico es que depende de \(\mathbf{M}_0\) y \(\mathbf{V}_0\), por lo que se debe poder tener una buena aproximación numérica de estas cantidades para cada tamaño de muestra.
La distribución exacta de \(W\) se conoce para \(n = 3\). Para \(n > 3\) se han obtenido buenas aproximaciones a la distribución de \(\log(1-W)\). En R
se utilizan los algoritmos propuestos por Royston (ver referencias) para aproximar los valores críticos y p-values de la distribución de \(W\).
La prueba de Shapiro-Francia es una modificación de la prueba Shapiro-Wilk y se basa en una aproximación del estimador de \(\sigma\) bajo el supuesto de normalidad.
Shapiro y Francia (1972) proponen calcular el estadístico \(W'\) como \[ W' = \frac{\left(\sum_{i=1}^nb_iX_{(i)}\right)^2}{\sum_{i=1}^n(X_i-\bar{X}_n)^2} \] donde el vector \(\mathbf{b} = (b_1, \ldots, b_n)\) se calcula como \(\mathbf{b} = \mathbf{M}_0/\vert\vert \mathbf{M}_0\vert\vert\).
Lo anterior se sigue del hecho que \(\sum_{i=1}^nM_0^i = 0\), ya que así \(n\text{Cov} (X_{(i)}, M_0^i) = \sum_{i=1}^n M^i_0X_{(i)}\) y \(n\text{Var}(M_0^i) = \sum_{i=1}^n(M_0^i)^2 = \vert\vert \mathbf{M}_0 \vert\vert^2\).
Para rechazar \(H_0\) se compara el estadistico \(W'\) con los valores críticos de su distribución, la cual no tiene una forma analítica y debe ser aproximada numéricamente.
El estadístico \(W'\) tiene la ventaja de depender solamente de \(\mathbf{M}_0\) y ya no de \(\mathbf{V}_0\), por lo que se pueden obtener mejores aproximaciones con menor costo computacional.
El comportamiento asintótico del estadístico \(W'\) es similar al del estadístico \(W\), por lo que para tamaños de muestra grandes, se pueden usar los resultados obtenidos para \(W\).
A continuación se comparan con simulación tres pruebas de normalidad compuesta, es decir, cuando no se especifican los parámetros en \(H_0\) : Shapiro-Wilk, Shapiro-Francia y Lilliefors cuando la verdadera población.
Primero se utiliza una población con colas pesadas. En una población de este tipo, se observan valores extremos con más frecuencia que en una población normal. Se eligió la distribución \(t_{(1)}\) para simular la población
Después se utiliza una población con colas ligeras. En las poblaciones con colas ligeras, los valores extremos ocurren con menos frecuencia que en una población normal. Para tamaños de muestra pequeños, los extremos observados bajo normalidad o bajo colas ligeras son pocos, por lo que se pueden encontrar problemas. Se utilizó la distribución \(U(-3, 3)\) para simular la población.
Finalmente se utiliza una población asimétrica. En las poblaciones asimétricas, la frecuencia con la que ocurren valores menores a la media es distinta a la frecuencia de los valores mayores a la media. Se utilizó una distribución de Laplace asimétrica para generar esta última población.
Se eligió un tamaño de muestra \(n=23\) para ver el efecto del tamaño de muestra en las aproximaciones utilizadas en cada prueba.
La prueba Shapiro-Wilk está en el paquete base, por lo que no es necesario instalar/paquetes adicionales. Las pruebas de Shapiro-Francia y Lilliefors está en el paquete nortest
.
set.seed(1010)
ejemplo1 <- rt(23, 1)
shapiro.test(ejemplo1)
##
## Shapiro-Wilk normality test
##
## data: ejemplo1
## W = 0.79152, p-value = 0.0002812
library(nortest)
sf.test(ejemplo1)
##
## Shapiro-Francia normality test
##
## data: ejemplo1
## W = 0.79148, p-value = 0.000578
lillie.test(ejemplo1)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: ejemplo1
## D = 0.22421, p-value = 0.003991
ejemplo2 <- runif(23, -3, 3)
shapiro.test(ejemplo2)
##
## Shapiro-Wilk normality test
##
## data: ejemplo2
## W = 0.95786, p-value = 0.4216
sf.test(ejemplo2)
##
## Shapiro-Francia normality test
##
## data: ejemplo2
## W = 0.96553, p-value = 0.4991
lillie.test(ejemplo2)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: ejemplo2
## D = 0.14396, p-value = 0.2484
rald <- function(n, theta, lambda){
res <- c()
for(i in 1:n)
{
aux <- runif(1) < theta
lambda2 <- theta/(1-theta)*lambda
res[i] <- aux*rexp(1, lambda) - (1-aux)*rexp(1, lambda2)
}
return(res)
}
ejemplo3 <- rald(23, 0.8, 0.1)
shapiro.test(ejemplo3)
##
## Shapiro-Wilk normality test
##
## data: ejemplo3
## W = 0.82852, p-value = 0.001137
sf.test(ejemplo3)
##
## Shapiro-Francia normality test
##
## data: ejemplo3
## W = 0.81341, p-value = 0.001148
lillie.test(ejemplo3)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: ejemplo3
## D = 0.20819, p-value = 0.01095
En los tres casos, los estadísticos \(W\) y \(W'\) tienen valores similares. Lo cual hace razonable la aproximación aún para muestras pequeñas. De igual manera se obtienen p-values simlares.
Las tres pruebas detectan desviaciones a normalidad por colas pesadas y asimetría. Sin embargo, las tres pruebas fallan para detectar desviaciones por colas ligeras. Se puede pensar que este problema es provocado por tener un tamaño de muestra pequeño.
La prueba de Lilliefors es la que arroja los p-values más grandes. Esto implica que para esta prueba, la evidencia observada en contra de \(H_0\) no es tán extrema como lo es para las otras.
Royston, P. (1982) An Extension of Shapiro and Wilk’s W Test for Normality to Large Samples. Journal of the Royal Statistical Society. Series C, 31(2), 115-124.
Royston, P. (1992) Approximating the Shapiro-Wilk W-test for non-normality. Statistics and Computing, 2, 117-119.
Shapiro, S. & Francia, R. (1972) An approximate analysis of variance test for normality. Journal of the American Statistical Association, 67, 215-216.
Shapiro, S. & Wilk, M. (1965) An analysis of variance test for normality (complete samples). Biometrika, 52, 591-611.