通过自举估计标准差置信区间的奇怪模式

机器算法验证 r 置信区间 标准差 引导程序
2022-03-04 09:35:20

我想估计一些数据的标准偏差的置信区间。R 代码如下所示:

library(boot)
sd_boot <- function (x, ind) {                
        res <- sd(x$ReadyChange[ind], na.rm = TRUE)
        return(res)            
}
data_boot <- boot::boot(data, statistic = sd_boot, R = 10000)
plot(data_boot)

我有下一个情节:在此处输入图像描述

我坚持正确解释这个自举直方图。每隔一组类似的数据显示引导估计的正态分布......但不是这个。顺便说一句,这是实际的原始数据:

> data$ReadyChange
 [1] 27.800000  8.985046 11.728021  8.830856  5.738600 12.028310  7.771528  9.208924 11.778611  6.024259  5.969931  6.063484  4.915764
[14] 12.027639  9.111146 13.898171 12.921377  6.916667 10.764479  6.875000 12.875000  7.017917  9.750000  7.921782 12.911551  6.000000

你能帮我解释一下这个引导模式吗?

2个回答

您的代码中可能有错误,或者引导库做了一些超出预期的事情。

编辑:

提供校正数据后,很明显该模式是由一个异常值引起的,每个峰对应于异常值被选入样本的不同次数。

在此处输入图像描述

我很犹豫是否将其作为答案,但对我来说,这似乎是由于您的引导程序所基于的数据点较少(21,如果我错了,请纠正我)。

更准确地说,在我看来,您从中采样的这 21 个特定值似乎只有少数可能的标准偏差(直方图中的峰值)。如果基础样本更大且更多样化,则生成的直方图会更加平滑(并且可能更类似于您所期望的正态分布)。

一般来说,假设我在这里,这是一个很好的例子,表明自举不能解决小样本的问题。