작업중 인 과정에 대해 다음과 같은 질문이 있습니다.
Monte Carlo 연구를 수행하여 표준 일반 부트 스트랩 신뢰 구간 및 기본 부트 스트랩 신뢰 구간의 적용 확률을 추정하십시오. 정규 모집단에서 표본을 추출하고 표본 평균에 대한 경험적 적용률을 확인하십시오.
표준 일반 부트 스트랩 CI의 적용 확률은 쉽습니다.
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
이 과정에서 배운 내용에서 기본 부트 스트랩 신뢰 구간 은 다음과 같이 계산할 수 있습니다.
# 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);
말이 되네요 내가 이해하지 못하는 것은 기본 부트 스트랩 CI의 적용 범위 확률 을 계산하는 방법 입니다. 적용 확률은 CI에 실제 값이 포함 된 횟수 (이 경우 mu
)를 나타냅니다. 단순히 boot
함수를 여러 번 실행 합니까?
이 질문에 어떻게 다르게 접근 할 수 있습니까?
smpl = x[sample(1:n, size = 100, replace = TRUE)];
로 단순화 할 수 있습니다 smpl = sample(x, size=100, replace=TRUE)
.
mu
로 0 과 같습니다 . 일반 CI는 정상적으로 작동합니다. 기본 부트 스트랩 CI로 어려움을 겪었습니다.
size=100
오타는? 루프에서 CI를 계산할 때 암시 적 샘플 크기가 1000으로 표시되므로 계산에 사용하기 때문에 올바른 상한과 하한을 얻는다고 생각하지 않습니다sqrt.n
. 또한mu
0과 직접 비교 하지 않는 이유는 무엇입니까 (후자는 실제 평균)?