有关估计样本 SD 置信区间的引导程序的更多详细信息

机器算法验证 引导程序 小样本
2022-04-17 23:34:26

我最初在这篇文章中提出了这个问题,我解释说我只有 25 项措施可供我使用。因此,计算样本 SDσx并假设它是分布中的一个看起来非常乐观,我想计算一个置信区间。

有人建议我使用引导方法,但我不确定如何使用它;我相信我将不得不进行如下操作:

  • 对样本背后的潜在概率分布做出一些假设,例如,我假设它是正常的,并应用我估计的参数:N(s,σx)
  • 产生n尺寸为 25 的样品(与我的原始样品尺寸完全相同)
  • 计算 25 个样本的 SD
  • 然后看看最接近平均值的(85%);它们都将在 85% 的区间内。

我想我做对了,但我必须对底层分布做出假设,我真的很想避免这种情况。

还有其他方法吗,还是我误解了什么?

1个回答

是的,你错过了一些东西,或者更确切地说添加了一些东西。您正在执行参数引导,仅当您了解您期望的分布类型时才适用。此外,您将使用 mle 估计参数分布。在您不知道分布的情况下,请忽略正态性假设并使用简单的案例重采样。从数据中获取样本,而不是从理论分布中获取样本。因此,只需从您的 25 个替换样本中重新采样 25 个即可。多次这样做,您可以生成置信区间。如果我假设您的数据y在 R 中,则代码通常可能是....

library(boot)
sdb <- function(y, i) sd(y[i])  #boot needs a function of y that can index y
b <- boot(y, sdb, 1000)
boot.ci(b)

但是,您可能更喜欢通过更明确的方式来做这样一个简单的示例,因此可以了解真正发生的事情并充分利用它。请注意, b下面与b上面不同。

b <- sapply( 1:1000, function(x) {
    s <- sample(y, 25, replace = TRUE)
    sd(s) } )
b <- sort(b)
#low end of CI
b[25]
#hi end of CI
b[975]