1. bootstrap 是什么
假设你手里有一组估计结果:
这组数可能来自:
- 多次 simulation run
- 多个被试
- 多次 recovery 重复实验
你现在想知道它们的平均值有多稳定,或者这个参数估计的大致区间是多少。
bootstrap 的做法不是去假设“它服从正态分布”,而是:
- 从这 个观测值里,有放回抽样
- 每次重新抽出一个大小仍为 的样本
- 对这个重抽样样本重新计算你关心的统计量,比如均值
- 重复很多次,得到这个统计量的经验分布
如果第 次 bootstrap 抽样得到的统计量记为
那么这一堆
就构成了你要的 bootstrap 分布。
2. 为什么它有用
因为很多时候你关心的不是原始数据本身,而是某个统计量:
- 均值
- 中位数
- 回归系数
- RMSE
- 参数估计值
- 两种方法的差值
这些统计量的理论方差有时不好推,尤其是模型复杂、分布偏、样本量不大时。
bootstrap 的优点就在于:
- 不太依赖分布假设
- 实现简单
- 对复杂统计量也适用
- 特别适合画图里的误差带和置信区间
3. 需要注意的局限
bootstrap 很好用,但不是万能的。
第一,它依赖“现有样本能代表总体”。 如果原始重复实验本身太少,或者分布很怪,bootstrap 也只能在有限信息上重抽样,不能凭空创造信息。
第二,如果数据之间有依赖结构,不能乱 bootstrap。 比如时间序列、层级数据、同一被试的重复测量,往往要用更合适的版本,比如:
- block bootstrap
- cluster bootstrap
- hierarchical bootstrap
第三,bootstrap 区间反映的是 采样不确定性,不等于消除了系统偏差。 如果一个参数本来就 recover 不好,bootstrap 只能告诉你“这个坏结果是否稳定”,不能把它变好。