Javier Santibáñez
28 de noviembre de 2017
La prueba exponencial (así aparece en el temario), es una modificación de la prueba de Kolmogorov-Smornov propuesta por Lilliefors (1969) para contrastar si una muestra aleatoria proviene de una población \(Exp(\lambda)\), con \(\lambda\) desconocida.
Se tiene una muestra aleatoria \(X_1, \ldots, X_n\) de una población con distribución \(F(x)\) y se tiene interés en contrastar las hipótesis \[ H_0: F = F_\lambda \qquad \text{vs.} \qquad F \neq F_\lambda \] donde \(F_\lambda\) denota la función de distribución exponencial con parámetro \(\lambda\), \(\lambda > 0\) desconocido.
\(H_0\) es una hipótesis compuesta, ya que no se especifica el valor de \(\lambda\), por lo que la prueba de Kolmogorov-Smirnov no puede ser utilizada.
La prueba exponencial se basa en un estadístico tipo Kolmogorov-Smirnov para los datos transformados, al igual que la prueba de Lilliefors para normalidad
Se calculan \(Y_1, \ldots, Y_n\) como sigue \[ Y_i = \frac{X_i}{\bar{X}_n}, \quad i = 1, \ldots, n, \quad \text{con} \quad \bar{X}_n = \frac{1}{n}\sum_{i=1}^n X_i. \]
El estadístico de prueba es \[ D = \sup_{y\in (0, \infty)} \left\lbrace \vert\, F_n(y) - F_1(y) \,\vert \right\rbrace \]
donde \(F_n\) denota la función de distribución empírica de la muestra transformada y \(F_1\) denota la función de distribución exponencial con parámetro \(\lambda = 1\).
Si \(D^{(1-\alpha)}\) es el cuantil \(1-\alpha\) de la distribución de \(D\) bajo \(H_0\), entonces se rechaza la hipótesis \(H_0: F = F_\lambda\) con una significancia aproximada \(\alpha\), si \(D > D^{(1-\alpha)}\).
Anteriormente se utilizaban tablas de la distribución del estadístico \(D\) para distintos valores de \(n\).
En la actualidad, es posible aproximar la distribución de \(D\) vía simulación, por lo que podemos presindir de las tablas.
Para \(n\) dado, generar una muestra \(x_1, \ldots, x_n\) de la distribución \(Exp(\lambda)\).
Calcular \(y_i = x_i/\bar{x}_n\), \(i=1,\ldots, n\), con \(\bar{x}_n = \frac{1}{n}\sum_{i=1}^nx_i\).
Calcular \(d_1 = \sup_{y\in (0, \infty)} \left\lbrace \vert\, F_n(y) - F_1(y) \,\vert \right\rbrace\).
Repetir los pasos anteriores un número grande de veces \(m\), para obtener \(d_1, \ldots, d_m\).
Los valores \(d_1, \ldots, d_m\) son realizaciones del estadístico \(D\) y su distribución de frecuencias se puede utilizar para aproximar los cuantiles \(D^{(1-\alpha)}\).
El siguiente código en R
nos permite generar 75,000 observaciones de la distribución de \(D\) para \(n = 20\).
set.seed(1010)
m <- 7.5E4; n <- 20; D <- c()
for(i in 1:m)
{
x <- rexp(n, 1)
x <- sort(x)
fn <- ecdf(x)
x0 <- c(0, x[-n])
dif1 <- max(fn(x) - pexp(x, 1/mean(x)))
dif2 <- max(pexp(x, 1/mean(x)) - fn(x0))
D[i] <- max(dif1, dif2)
}
v_criticos <- quantile(D, probs = c(0.80, 0.85, 0.90, 0.95, 0.99))
round(v_criticos, 3)
## 80% 85% 90% 95% 99%
## 0.189 0.199 0.213 0.234 0.278
ejemplo1 <- abs(rnorm(n))
ejemplo1 <- sort(ejemplo1)
fn_1 <- ecdf(ejemplo1)
ejemplo10 <- c(0, ejemplo1[-n])
dif1 <- max(fn_1(ejemplo1) - pexp(ejemplo1, 1/mean(ejemplo1)))
dif2 <- max(pexp(ejemplo1, 1/mean(ejemplo1)) - fn_1(ejemplo10))
D1 <- max(dif1, dif2); D1
## [1] 0.1948092
mean(D > D1)
## [1] 0.1704533
ejemplo2 <- rgamma(n, 3, 2)
ejemplo2 <- sort(ejemplo2)
fn_2 <- ecdf(ejemplo2)
ejemplo20 <- c(0, ejemplo2[-n])
dif1 <- max(fn_2(ejemplo2) - pexp(ejemplo2, 1/mean(ejemplo2)))
dif2 <- max(pexp(ejemplo2, 1/mean(ejemplo2)) - fn_2(ejemplo20))
D2 <- max(dif1, dif2); D2
## [1] 0.2641838
mean(D > D2)
## [1] 0.01685333