bootstrapping 的 wiki 页面说你在底层分布未知的情况下使用它。为什么自举或带放回抽样比直接从数据中计算方差和其他属性更好?
为什么要使用自举?
一般来说,当您评估统计数据时,有两种主要方法:要么使用一些分布假设(数据的生成模型),要么不使用。只要有可能,您可能会使用统计模型。但通常分布假设可能是错误的,或者您无法使用它们。
如果您正在推断总体的平均值,那么您可以依靠中心极限定理并为此建立统计数据。方差也一样。然而,估计一些不依赖于一般假设的东西呢?Bootstrap 适用于任何类型的统计数据,这就是它的强大之处。这很简单,并且只需要最少的假设。
在实践中还出现了另一个问题。估计均值依赖于中心极限定理。确实,您的一组假设只需要独立且相同的分布式数据。但还有更多。CLT 适用于大样本,它在极限范围内工作。对于小样本,它可能会更频繁地出错。如果你的分布有偏差怎么办。虽然 CLT 确实仅依赖于独立同分布,但估计偏态分布的平均值所需的样本量通常大于对称分布的平均值。
我发现自举在两种主要情况下非常有用:当样本相当小(但不是很小)和分布不干净时(假设它是两种分布的混合)。并且非常有用,因为您不仅可以构建总体参数的估计值,还可以构建 p 值置信区间的估计值。而且因为它很容易应用,我也发现有时即使你假设一些模型也很有用。并行执行可以帮助您查看您的样本中是否真的有一些令人毛骨悚然的东西或假设,如果推论产生的结果太不同,它会让您思考或重新评估您的设置。
在许多现实世界的问题中(特别是在数据是测量结果的情况下),可用数据量相对较少,并且获得更多测量值非常昂贵。幸运的是,现代数据科学是基于计算机的,我们可以在其中重复我们的实验模拟以产生更多数据。Bootstrapping 实际上从您现有的数据中创建了更大的样本,甚至可以多次重复执行此操作以进行显着性测试。
Bootstrapping 尊重现有数据的分布,因此您无需对数据的分布做出任何假设。这很重要,因为在大多数统计方法中都有这样的假设,有时我们在应用它们之前甚至没有意识到或检查。(例如看看这里或这篇文章)
Bootstrapping 通常用于计算置信区间或进行假设检验。如果您使用的是 python,您可能会发现以下链接很有用: