Booststrap (自助法) 方法是一种估计标准差和计算置信区间的方法。

令 $ T_{n}=g\left (X_{1}, \ldots, X_{n}\right) $ 是一个统计量(statistic),也就是说, $ T_{n} $ 是数据的任意函数。假定我们想估计 $ T_{n} $ 的方差 $ \mathbb {V}_{F}\left (T_{n}\right) $ 。例如,如果 $ T_{n}=\bar {X}_{n} $ ,那么 $ \mathbb {V}_{F}\left (T_{n}\right)=\sigma^{2} /n $, 其中 $ \sigma^{2}=\int (x-\mu)^{2} d F (x) $, 且 $ \mu=\int x d F (x) $ 。这样,$ T_{n} $ 的方差是 $ F $ 的函数。

使用下标 $ F $ 强调 这个方差通常取决于末知的分布函数 $ F $

Bootstrap 的思想包括两个步骤:

  • 步骤 1: 估计 $ \mathbb {V}_{F}\left (T_{n}\right) $ 使用 $ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right) $ 。
  • 步骤 2: 渐进逼近 $ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right) $ 使用仿真方法 (Simulation,注意这里仿真和随机模拟是一个意思)。
  • 对于统计量 $ T_{n}=\bar {X}_{n} $, 对于步骤 1 我们有 $ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right)=\widehat {\sigma}^{2} /n $, 其中 $ \hat {\sigma}^{2}=n^{-1} \sum_{i=1}^{n}\left (X_{i}-\bar {X}_{n}\right) $ 。这种情况下,步骤 1 是充分的。但是, 在更为复杂情况下,我们无法写下一个关于 $ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right) $ 的简单不等式。这也是需要步骤 2 的原因。接下来,我们先考虑仿真法的基本思想。

随机模拟

假设我们从分布 $ G $ 中抽取独立同分布样本 $ Y_{1}, \ldots, Y_{B} $ 。依据大数定律,

$$ \bar{Y}_{n}=\dfrac{1}{B} \sum_{j=1}^{B} Y_{j} \stackrel{\mathrm{P}}{\longrightarrow} \int y d G(y)=\mathbb{E}(Y) $$

当 $ B \rightarrow \infty $ 。这样,如果我们从分布 $ G $ 中抽取大量样本,我们可以使用 样本均值 $ \bar {Y}_{n} $ 逼近 $ \mathbb {E}(Y) $ 。一次仿真中,我们可以使 $ B $ 尽可能大,这样, $ \bar {Y}_{n} $ 和 $ \mathbb {E}(Y) $ 之间的差异就可以忽略。

更一般地,如果 $ h $ 是任意关于样本的函数且具有有限均值,那么

$$ \dfrac{1}{B} \sum_{j=1}^{B} h\left(Y_{j}\right) \stackrel{\mathrm{P}}{\longrightarrow} \int h(y) d G(y)=\mathbb{E}(h(Y)) $$

当 $ B \rightarrow \infty $ 。特别地,

$$ \begin{aligned} \dfrac{1}{B} \sum_{j=1}^{B}\left(Y_{j}-\bar{Y}\right)^{2} &=\dfrac{1}{B} \sum_{j=1}^{B} Y_{j}^{2}-\left(\dfrac{1}{B} \sum_{j=1}^{B} Y_{j}\right)^{2} \\ & \stackrel{\mathrm{P}}{\longrightarrow} \int y^{2} d F(y)-\left(\int y d F(y)\right)^{2} \\ &=\mathbb{V}(Y) \end{aligned} $$

因此,我们能够使用仿真数据的样本均值来逼近 $ \mathbb {V}(Y) $ 。

Bootstrap 方差估计

根据以上学到的,我们可以借助仿真方法逼近 $ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right) $ 。这样,$ \mathbb {V}_{\widehat {F}_{n}}\left (T_{n}\right) $ 是指 “给定数据分布是 $ \widehat {F}_{n} $ 时 $ T_{n} $ 的方差 “。问题是,我们在假 定数据具有分布 $ \widehat {F}_{n} $ 时,如何仿真出 $ T_{n} $ 的分布。问题的答案是,从经验 分布函数 $ \widehat {F}_{n} $ 中仿真 $ X_{1}^{*}, \ldots, X_{n}^{*} $, 然后计算 $ T_{n}^{*}=g\left (X_{1}^{*}, \ldots, X_{n}^{*}\right) $ 。这形成 了从分布 $ T_{n} $ 中的一次抽样。这个思想可以用下面的示意图解释:

Real world $ F \quad \Longrightarrow \quad X_{1}, \ldots, X_{n} \quad \Longrightarrow \quad T_{n}=g\left(X_{1}, \ldots, X_{n}\right) $

Bootstrap world $ \widehat{F}_{n} \quad \Longrightarrow \quad X_{1}^{*}, \ldots, X_{n}^{*} \quad \Longrightarrow \quad T_{n}^{*}=g\left(X_{1}^{*}, \ldots, X_{n}^{*}\right) $

那么我们又怎么从经验分布函数 $ \widehat {F}_{n} $ 中仿真出 $ X_{1}^{*}, \ldots, X_{n}^{*} $ 呢 $ ? $ 注意到, 经验分布函数 $ \widehat {F}_{n} $ 是在每一个数据点 $ X_{1}, \ldots, X_{n} $ 上放置 $ 1 /n $ 的质量。因 此,从经验分布函数 $ \widehat {F}_{n} $ 抽取一个观测等价于从原始数据集中随机抽取 一个数据点。 这样,为了仿真数据满足 $ X_{1}^{*}, \ldots, X_{n}^{*} \sim \widehat {F}_{n} $ ,只要从 $ X_{1}, \ldots, X_{n} $ 有放回抽 取 $ n $ 次观测就足够了。

  1. 抽取数据 $ X_{1}^{*}, \ldots, X_{n}^{*} \sim \widehat {F}_{n} $ 。
  2. 计算 $ T_{n}^{*}=g\left (X_{1}^{*}, \ldots, X_{n}^{*}\right) $ 。
  3. 重复步骤 1 和步骤 $ 2, B $ 次,得到 $ T_{n, 1}^{*}, \ldots, T_{n, B}^{*} $
  4. 使用
$$ v_{\text {boot }}=\dfrac{1}{B} \sum_{b=1}^{B}\left(T_{n, b}^{*}-\dfrac{1}{B} \sum_{r=1}^{B} T_{n, r}^{*}\right)^{2} $$

Bootstrap 置信区间