Я хотел сделать демонстрацию класса, где я сравниваю интервал t с интервалом начальной загрузки и вычисляю вероятность охвата обоих. Я хотел, чтобы данные поступали из искаженного дистрибутива, поэтому я решил сгенерировать данные в exp(rnorm(10, 0, 2)) + 1
виде выборки размером 10 из смещенного логнормаляра. Я написал сценарий, чтобы нарисовать 1000 образцов и рассчитать для каждого образца 95-процентный интервал и 95-процентный интервал начальной загрузки на основе 1000 повторностей.
Когда я запускаю скрипт, оба метода дают очень похожие интервалы, и оба имеют вероятность покрытия 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