1. bootstrap 是什么

假设你手里有一组估计结果:

这组数可能来自:

  • 多次 simulation run
  • 多个被试
  • 多次 recovery 重复实验

你现在想知道它们的平均值有多稳定,或者这个参数估计的大致区间是多少。

bootstrap 的做法不是去假设“它服从正态分布”,而是:

  1. 从这 个观测值里,有放回抽样
  2. 每次重新抽出一个大小仍为 的样本
  3. 对这个重抽样样本重新计算你关心的统计量,比如均值
  4. 重复很多次,得到这个统计量的经验分布

如果第 次 bootstrap 抽样得到的统计量记为

那么这一堆

就构成了你要的 bootstrap 分布。


2. 为什么它有用

因为很多时候你关心的不是原始数据本身,而是某个统计量:

  • 均值
  • 中位数
  • 回归系数
  • RMSE
  • 参数估计值
  • 两种方法的差值

这些统计量的理论方差有时不好推,尤其是模型复杂、分布偏、样本量不大时。

bootstrap 的优点就在于:

  • 不太依赖分布假设
  • 实现简单
  • 对复杂统计量也适用
  • 特别适合画图里的误差带和置信区间

3. 需要注意的局限

bootstrap 很好用,但不是万能的。

第一,它依赖“现有样本能代表总体”。 如果原始重复实验本身太少,或者分布很怪,bootstrap 也只能在有限信息上重抽样,不能凭空创造信息

第二,如果数据之间有依赖结构,不能乱 bootstrap。 比如时间序列、层级数据、同一被试的重复测量,往往要用更合适的版本,比如:

  • block bootstrap
  • cluster bootstrap
  • hierarchical bootstrap

第三,bootstrap 区间反映的是 采样不确定性,不等于消除了系统偏差。 如果一个参数本来就 recover 不好,bootstrap 只能告诉你“这个坏结果是否稳定”,不能把它变好。