Quería hacer una demostración de clase donde comparo un intervalo t con un intervalo de arranque y calculo la probabilidad de cobertura de ambos. Quería que los datos provengan de una distribución sesgada, así que elegí generar los datos como exp(rnorm(10, 0, 2)) + 1
, una muestra de tamaño 10 de un lognormal desplazado. Escribí un script para dibujar 1000 muestras y, para cada muestra, calcular un intervalo t del 95% y un intervalo de percentil de arranque del 95% basado en 1000 repeticiones.
Cuando ejecuto el script, ambos métodos dan intervalos muy similares y ambos tienen una probabilidad de cobertura del 50-60%. Me sorprendió porque pensé que el intervalo de arranque sería mejor.
Mi pregunta es si tengo
- cometió un error en el código?
- cometió un error al calcular los intervalos?
- cometió un error al esperar que el intervalo de arranque tenga mejores propiedades de cobertura?
Además, ¿hay alguna manera de construir un IC más confiable en esta situación?
tCI.total <- 0
bootCI.total <- 0
m <- 10 # sample size
true.mean <- exp(2) + 1
for (i in 1:1000){
samp <- exp(rnorm(m,0,2)) + 1
tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)
boot.means <- rep(0,1000)
for (j in 1:1000) boot.means[j] <- mean(sample(samp,m,replace=T))
bootCI <- sort(boot.means)[c(0.025*length(boot.means), 0.975*length(boot.means))]
if (true.mean > min(tCI) & true.mean < max(tCI)) tCI.total <- tCI.total + 1
if (true.mean > min(bootCI) & true.mean < max(bootCI)) bootCI.total <- bootCI.total + 1
}
tCI.total/1000 # estimate of t interval coverage probability
bootCI.total/1000 # estimate of bootstrap interval coverage probability