基于单次观察的自举置信区间

问题描述 投票:0回答:1

我们可以使用 Bootstrap CI 来计算单个观测值 x(其中 0)的 95% 置信区间吗<=x<=100?

> n=1
> x=98
> mean_est=mean(x)
> nboot <- 2000
> resample_dist <- rep(NA, length = nboot)
> for (i in 1:nboot) {
+   resample_i <- sample(x, size = n, replace = TRUE)
+   resample_dist[[i]] <- mean(resample_i)
+ }
> b_lci <- quantile(resample_dist, probs = 0.025)
> b_uci <- quantile(resample_dist, probs = 0.975)
> 
> 
> sprintf("Bootstrapped: %.3f [%.3f, %.3f]", mean_est, b_lci, b_uci)
[1] "Bootstrapped: 98.000 [3.000, 96.000]"
r confidence-interval bootstrapping
1个回答
2
投票

不,这样不行。

让我们从代码开始。如果您查看

sample()
的文档,它会显示:

如果 x 的长度为 1,是数字(在 is.numeric 的意义上)并且 x >= 1, 通过样本进行采样从 1:x

开始

所以你的代码

resample_i <- sample(x, size = n, replace = TRUE)
对于 x = 98,实际上采样了 1 到 98 之间的 1 个数字。

好吧,这就是你得到结果的原因,但这与你想要做的完全不同。

现在从概念上讲,为了引导感兴趣的统计数据,我们需要具有不同值的样本。如果您只有一个观察结果,那么您的重采样将始终只包含相同的数字,计算这些数据的任何附加统计数据是没有意义的。

把它想象成一个瓮问题: 假设您有一个装有 10 个红球和 10 个绿球的瓮。

您进行一项观察(红色)。现在,如果您计算这一观察值的平均值(这对于一个样本来说没有意义),您将得到“红色”。对您的一次观察结果进行重新采样也无济于事,因为您的重新采样始终是

c("red","red",...,"red")
,当然,每次重新采样的平均值也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.