lab04b: Contraste de hipótesis

XS3310 Teoría Estadística

Autor/a
Afiliación

Shu Wei Chou Chen

Escuela de Estadística (UCR)

Este documento ilustra de manera intuitiva, por medio de simulaciones, el concepto del contraste de hipótesis.

1 Paquetes

library(dplyr)
set.seed(123)

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\).

K <- 1000
n <- 10
X <- list()
for(i in 1:K){
  X[[i]] <- rexp(n,1) 
}

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:

RV <- function(X,H0=1){
  n <- length(X)
  RV <- 2*n*mean(X)/H0 
  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\%\).

RV_resultado <- sapply(X,RV)
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]\]

RV_wilks <- function(X,H0=1){
  n <- length(X)
  RV_wilks <- -2*n*(log(mean(X))-log(H0)+1-(mean(X)/H0))
  return(RV_wilks)
}

RV_wilks_resultado <- sapply(X,RV_wilks)
sim2 <- sum(RV_wilks_resultado>qchisq(p=0.95,1))/K

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)\]

estad_wald <- function(X,H0=1){
  n <- length(X)
  estad_wald <- (mean(X)-H0)^2*(n/mean(X)^2)
  return(estad_wald)
}

estad_wald_resultado <- sapply(X,estad_wald)
sim3 <- sum(estad_wald_resultado>qchisq(p=0.95,1))/K

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\)

K <- 1000
n <- 50
X <- list()
for(i in 1:K){
  X[[i]] <- rexp(n,1) 
}

RV_resultado <- sapply(X,RV)
sum(!between(RV_resultado,qchisq(p=0.025,2*n),qchisq(p=0.975,2*n)))/K
[1] 0.046
RV_wilks_resultado <- sapply(X,RV_wilks)
sum(RV_wilks_resultado>qchisq(p=0.95,1))/K
[1] 0.046
estad_wald_resultado <- sapply(X,estad_wald)
sum(estad_wald_resultado>qchisq(p=0.95,1))/K
[1] 0.058

2.5 Con \(n=50\) y \(\alpha=0.1\)

K <- 1000
n <- 50
X <- list()
for(i in 1:K){
  X[[i]] <- rexp(n,1) 
}

RV_resultado <- sapply(X,RV)
sum(!between(RV_resultado,qchisq(p=0.05,2*n),qchisq(p=0.95,2*n)))/K
[1] 0.112
RV_wilks_resultado <- sapply(X,RV_wilks)
sum(RV_wilks_resultado>qchisq(p=0.9,1))/K
[1] 0.114
estad_wald_resultado <- sapply(X,estad_wald)
sum(estad_wald_resultado>qchisq(p=0.9,1))/K
[1] 0.121