library(dplyr)
set.seed(123)
lab04b: Contraste de hipótesis
XS3310 Teoría Estadística
Este documento ilustra de manera intuitiva, por medio de simulaciones, el concepto del contraste de hipótesis.
1 Paquetes
2 Ejemplo con la distribución exponencial
En la clase vimos el siguiente ejemplo:
Sea \(X_{1}, X_{2}, ... , X_{n}\) una muestra aleatoria tal que \(X_{j} \sim Exp(\theta)\) y suponga que se desean contrastar las hipótesis \(H_{0}: \theta = \theta_0\) contra \(H_{1}: \theta \neq \theta_0\). Encuentre el contraste de razón de verosimilitudes para un tamaño de \(\alpha_0\).
Suponga que la \(H_0: \theta_0=1\) es cierta. Generamos \(K=1000\) muestras independientes de tamaño \(10\).
<- 1000
K <- 10
n <- list()
X for(i in 1:K){
<- rexp(n,1)
X[[i]] }
2.1 Estadístico de razón de verosimilitud exacto
Calculamos el estadístico de razón de verosimilitud para cada repetición \(k=1,...,K\) y luego verificamos cuántas de ellas rechaza la hipótesis nula de acuerdo con la regla de decisión \[V=\frac{2n\bar{X}}{\theta_0}< \chi^{2}_{\frac{\alpha_0}{2},2n},~~ \text{o}~~ V=\frac{2n\bar{X}}{\theta_0} > \chi^{2}_{1-\frac{\alpha_0}{2},2n}.\]
Aquí se construye una función para el cálculo del estadístico de contraste para una muestra dada X
:
<- function(X,H0=1){
RV <- length(X)
n <- 2*n*mean(X)/H0
RV return(RV)
}
Luego, aplicamos la misma función a cada elemento de la lista X
, y verificamos que 44 de \(1000\) se rechaza la hipótesis, o sea próximo al tramaño del contraste \(5\%\).
<- sapply(X,RV)
RV_resultado sum(!between(RV_resultado,qchisq(p=0.025,2*n),qchisq(p=0.975,2*n)))/K
[1] 0.044
2.2 Estadístico de razón de verosimilitud (asintótico)
Por otro lado, usando el teorema de Wilks, calculamos el estadístico \[G = -2\ln(\lambda) = -2n\left[ \ln(\bar{X}) - \ln(\theta_0) + 1 - \frac{\bar{X}}{\theta_0} \right]\]
<- function(X,H0=1){
RV_wilks <- length(X)
n <- -2*n*(log(mean(X))-log(H0)+1-(mean(X)/H0))
RV_wilks return(RV_wilks)
}
<- sapply(X,RV_wilks) RV_wilks_resultado
<- sum(RV_wilks_resultado>qchisq(p=0.95,1))/K sim2
Encontramos que un 0.045 \(\%\) de las \(K=1000\) muestras rechaza la hipótesis, o sea próximo al tramaño del contraste \(5\%\).
sum(RV_wilks_resultado>qchisq(p=0.95,1))/K
[1] 0.045
Ambos resultados son muy próximos y nos damos cuenta que con \(n=10\), el resultado asintótico aproxima bastante bien.
2.3 Estadístico de Wald
Finalmente, utilizando el estadístico de Wald: \[W=(\hat{\theta}_n - \theta_0)I(\hat{\theta})(\hat{\theta}_n - \theta_0)\]
<- function(X,H0=1){
estad_wald <- length(X)
n <- (mean(X)-H0)^2*(n/mean(X)^2)
estad_wald return(estad_wald)
}
<- sapply(X,estad_wald) estad_wald_resultado
<- sum(estad_wald_resultado>qchisq(p=0.95,1))/K sim3
Encontramos que un 0.045 \(\%\) de las \(K=1000\) muestras rechaza la hipótesis, o sea próximo al tramaño del contraste \(5\%\).
sum(estad_wald_resultado>qchisq(p=0.95,1))/K
[1] 0.098
Los 3 resultados son muy próximos y nos damos cuenta que con \(n=10\), el resultado asintótico aproxima bastante bien.
2.4 Con \(n=50\) y \(\alpha=0.05\)
<- 1000
K <- 50
n <- list()
X for(i in 1:K){
<- rexp(n,1)
X[[i]]
}
<- sapply(X,RV)
RV_resultado sum(!between(RV_resultado,qchisq(p=0.025,2*n),qchisq(p=0.975,2*n)))/K
[1] 0.046
<- sapply(X,RV_wilks)
RV_wilks_resultado sum(RV_wilks_resultado>qchisq(p=0.95,1))/K
[1] 0.046
<- sapply(X,estad_wald)
estad_wald_resultado sum(estad_wald_resultado>qchisq(p=0.95,1))/K
[1] 0.058
2.5 Con \(n=50\) y \(\alpha=0.1\)
<- 1000
K <- 50
n <- list()
X for(i in 1:K){
<- rexp(n,1)
X[[i]]
}
<- sapply(X,RV)
RV_resultado sum(!between(RV_resultado,qchisq(p=0.05,2*n),qchisq(p=0.95,2*n)))/K
[1] 0.112
<- sapply(X,RV_wilks)
RV_wilks_resultado sum(RV_wilks_resultado>qchisq(p=0.9,1))/K
[1] 0.114
<- sapply(X,estad_wald)
estad_wald_resultado sum(estad_wald_resultado>qchisq(p=0.9,1))/K
[1] 0.121