Üzerinde çalıştığım bir ders için şu sorum var:
Standart normal bootstrap güven aralığının ve temel bootstrap güven aralığının kapsama olasılıklarını tahmin etmek için bir Monte Carlo çalışması yapın. Normal bir popülasyondan örnek alın ve örnek ortalaması için ampirik kapsama oranlarını kontrol edin.
Standart normal bootstrap CI için kapsama olasılıkları kolaydır:
n = 1000;
alpha = c(0.025, 0.975);
x = rnorm(n, 0, 1);
mu = mean(x);
sqrt.n = sqrt(n);
LNorm = numeric(B);
UNorm = numeric(B);
for(j in 1:B)
{
smpl = x[sample(1:n, size = n, replace = TRUE)];
xbar = mean(smpl);
s = sd(smpl);
LNorm[j] = xbar + qnorm(alpha[1]) * (s / sqrt.n);
UNorm[j] = xbar + qnorm(alpha[2]) * (s / sqrt.n);
}
mean(LNorm < 0 & UNorm > 0); # Approximates to 0.95
# NOTE: it is not good enough to look at overall coverage
# Must compute separately for each tail
Bu kurs için öğretilenlerden temel bootstrap güven aralığı şu şekilde hesaplanabilir:
# Using x from previous...
R = boot(data = x, R=1000, statistic = function(x, i){ mean(x[i]); });
result = 2 * mu - quantile(R$t, alpha, type=1);
Mantıklı. Anlamadığım temel bootstrap CI için kapsama olasılıklarının nasıl hesaplanacağı . Kapsam olasılığının, CI'nin gerçek değeri kaç kez içerdiğini (bu durumda mu
) temsil edeceğini anlıyorum . boot
İşlevi birçok kez çalıştırıyor muyum ?
Bu soruya farklı şekilde nasıl yaklaşabilirim?
smpl = x[sample(1:n, size = 100, replace = TRUE)];
basitleştirilebilir smpl = sample(x, size=100, replace=TRUE)
.
mu
0 olmakla aynı şeydi . Normal CI iyi çalışıyor, zorlandığım temel bootstrap CI.
size=100
bir yazım hatası mısın? Döngüdeki CI'lerinizi hesapladığınızda örtük örnek boyutu 1000 olarak göründüğü için sağ üst ve alt sınırları aldığınıza inanmıyorum (sqrt.n
hesaplamada kullandığınızdan beri ). Ayrıca, nedenmu
doğrudan 0 ile değil de karşılaştırıyorsunuz (sonuncusu gerçek ortalama)?