我想做一个课堂演示,在其中我将t间隔与引导间隔进行比较,并计算两者的覆盖率。我希望数据来自偏斜的分布,因此我选择将数据生成为exp(rnorm(10, 0, 2)) + 1
对数正态偏移后的大小为10的样本。我编写了一个脚本来绘制1000个样本,并针对每个样本,基于1000个重复计算出95%的t间隔和95%的bootstrap百分位间隔。
当我运行脚本时,这两种方法的间隔都非常相似,并且覆盖率均为50-60%。我感到很惊讶,因为我认为引导间隔会更好。
我的问题是
- 在代码中犯了错误?
- 在计算间隔时出错了?
- 期望引导间隔具有更好的覆盖范围特性而犯了一个错误?
另外,在这种情况下是否有办法构建更可靠的配置项?
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