这篇来谈谈 Bootstrap 和 Jackknife。先来一个总括:在之前的 MC in Statistic Inference 中,我们假定已知了 population 的分布,并基于此进行样本生成,对于估计的 se、MSE 、置信水平进行估计,或做假设检验;然而这种方法的应用显然有点窄——很多情况下,我们是不知道总体分布,甚至我们能采集到的样本就只有这些,限于种种原因无法采集更多的样本——那么,在不知道总体分布,或者样本量较少的情况下,我们如何对于上述这些进行估计呢?这里就用了 Bootstrap 方法,本质是上一种重抽样的方法:既然我们只知道这些数据,那么我们就把这些数据看做整体(Empirical dist.),基于这些数据再进行多次抽样并计算得我们想要的内容(更加充分运用了这些数据)。补充:1. 我们也把 MC in Statistic Inference 中的方法叫做参数 Bootstrap(因为它也涉及到了重新的多次抽样,不过是从 population 中抽取的);而这里的方法则叫做非参数 Bootstrap,我们一般讲的 Bootstrap 就是这里的;2. Jackknife 实际上是 Bootstrap 的一种特例:一种类似于「leave-one-off」的思想。

Two Approximations, "Plug-in" Priniciple

理解整个过程:从 population \(X\sim F(x)\) 中,我们观测到了 n 个样本 \(X=(x_1,...,x_n)\);我们把这些样本看作一个整体再次抽样,实际上是从 Empirical dist. 中进行抽样 \(X^*\sim F_n(x)\);这些新的样本又有分布 \(F_n^*(x)\)。这里就涉及到了两个近似: \[ F\rightarrow X\overset{(x_i)}{\rightarrow} \hat F\\\hat F\rightarrow X^*\overset{(x_i^*)}{\rightarrow} \hat F^* \] 在进入 Bootstrap 之前,还需要对统计量和分布的关系;以及 "Plug-in" Priniciple 进行理解。

  • 对于一个 parameter \(\theta\) 来说,我们可以把它看作是分布 F 上的一个函数 \(\theta=t(F)\)
  • 这是对于 population 的,而在 sample level,我们认为 statistic/estimator 是 sample(\(\hat F\)) 的一个函数 \(\hat\theta=t(\hat F)\)

例如,对于期望来说是在 F 上的一个积分;而其估计则是样本的均值。

"Plug-in" Priniciple ,简单的理解就是对于我们要估计的参数/统计量,我们用 sample level 上的数来代替 population level 上的数,给出两个例子:

对于均值来说 \[ \theta=\mu=E_F[X]=\int xdF(x)\\\hat\theta=\hat\mu={1\over n}\sum x_i=\int xd\hat F(x)=E_{\hat F}(X) \] 注意这里我们给出了期望及其估计值的另一种表示:用\(E_{\hat F}(X)\) 来估计\(E_{ F}(X)\)

对于 standard error of the mean estimator \[ F\sim(\mu,\sigma^2), E_F(X)=\mu, Var_F(X)=\sigma^2 \] 因为有 \[ \sigma^2=E_F[(X-E_F[X])^2]\\\hat \sigma^2=E_{\hat F}[(X-E_{\hat F}[X])^2]={1\over n}\sum(x_i-\bar x)^2\\ \] (注意,这里我们用了两次 "Plug-in" Priniciple ,并给出了其具体的表达形式。)对于 \(se(\bar X)={\sigma \over\sqrt{n}}\) 我们有估计 \(\hat {se}(\bar X)={\hat\sigma \over\sqrt{n}}\)

Bootstrap

接下来正式进入 Bootstrap,我们先用它来估计 估计量的 se, bias:

前面讲过,Bootstrap 就是多次抽样,这样就得到了 Empirical dist. \(\hat F(x)\) ,而我们的估计量则是 \(t(\hat F)\) 。我们先来看 se,考虑 \[ Var(\hat\theta)=E[(\hat\theta -E[\hat\theta])^2]=E_F\big[(t(\hat F)-E_F[t(\hat F)])^2\big] \] (注意这里取的期望都是在原分布下的)我们使用 "Plug-in" Priniciple,则 \[ \hat{Var}(\hat\theta)=E_{\hat F}\big[(t({\hat F}^*)-E_{\hat F}[t(\hat{F}^*)])^2\big]=\frac{1}{B-1} \sum(\hat\theta^{(i)}-\bar{\hat\theta^*})^2 \] 其中的 \(\bar{\hat\theta^*}\) 为 B 个 Bootstrap 估计量的均值;分母用了\(B-1\) 是为了无偏。于是我们得到了 se 的 Bootstrap 估计公式

\[ \hat{se}(\hat\theta)=\sqrt{\frac{1}{B-1}\sum(\hat\theta^{(i)}-\bar{\hat\theta^{*}})^2}\tag{2.1} \]

对于 bias,由于

\[ bias(\hat\theta)=E[\hat\theta-\theta]=E_F[t(\hat F)-t(F)] \]

\[ \hat{bias}(\hat\theta)=E_{\hat F}[t(\hat F^*)-t(\hat F)]=E_{\hat F}[\hat\theta^*]-\hat\theta = \bar{\hat\theta^*}-\hat\theta\tag{2.2} \]

注意从第一行到第二行(其估计)中,我们用了三次 "Plug-in" Priniciple。 其中的 \(\bar{\hat\theta^*}\) 为 B 个 Bootstrap 估计量的均值。

还讲了 Bootstrap 方法来估计置信区间,我们把这部分放到后面去讲,接下来,看看一个特例:Jackknife。

Jackknife

这里,我们用了两个例子,来说明该公式与 Bootstrap 下的区别。给出 Jackknife 的流程为:对于一个大小为 n 的样本,每次去除第 i 个样本,将剩下的其余样本作为第 i 次重抽样得到的数据;也就是说,在 Jackknife 下,我们只能有 n 个重抽样结果(而在 Bootstrap 下是不限制的);每个抽样结果的大小为 \(n-1\)(在 Bootstrap 下为 n)。

来看 bias,以 \(\theta=\sigma^2\) 为例,估计量为\(\hat \theta={1\over n}\sum(x_i-\bar x)^2\) 。注意到有 \[ bias(\hat\theta)=E[\hat\theta-\theta]=...={1\over n}\sigma^2\tag{3.1} \] 我们考虑 \[ E[\hat\theta^{(j)}-\hat\theta]=E[\hat\theta^{(j)}-\theta]-E[\hat\theta-\theta]\\=(-{\sigma^2\over n-1})-(-{\sigma^2\over n})={1\over n-1}bias(\hat\theta) \] 上式第一行到第二行成立,是因为,我们把 \(x_j\) 去除,也可以把剩余的观测看做是 population 的\(n-1\) 次 realization,因此和式(3.1)的估计在形式上是一致的。另,上式只是考虑了编号为 j 的一组抽样,我们将 n 组式子相加,容易得到 \[ \hat{bias}_{Jack}(\hat\theta)=(n-1)(\bar{\hat\theta^*}-\hat\theta)\tag{3.2} \] 其中 \(\bar{\hat\theta^*}\)为 n 个估计量的均值。

再来看 se,以 \(\theta=EX\)为例,\(\hat\theta=\bar X\)。注意到 \[ se(\hat\theta)=\sqrt{Var(\bar{X})}={\sigma\over\sqrt{n}} \] 另外,我们仔细看这几个估计量, \[ \hat\theta^{(j)}={1\over n-1}(n\bar{x}-x_i),\\ \bar{\hat\theta^*}={1\over n}\sum{n\bar{x}-x_i\over n-1}=\bar{x} \] 则有 \[ \sum(\hat\theta-\bar{\hat\theta^*})^2=\sum ({n\bar{x}-x_i\over n-1}-\bar{x})^2={1\over(n-1)^2}\sum(x_i-\bar{x})^2={s^2\over n-1} \]

显然 \({s\over\sqrt{n}}\)\(se(\hat\theta)={\sigma\over\sqrt{n}}\) 的无偏估计,比较形式,我们可以得到最终的形式 \[ \hat{se}_{Jack} (\hat\theta)=\sqrt{\frac{n-1}{n}\sum(\hat\theta-\bar{\hat\theta^*})^2}\tag{3.3} \] 比较(3.2)(3.3)和(2.1)(2.2),我们可以发现 Jackknife 估计要比 Bootstrap 估计在分子上多一个\(n-1\),这可以理解为,the Jackknife sample \(x^{(i)}\) is very similar to \(x\) compared with Bootstrap replicates

Bootstrap CI

下面回过头来继续介绍使用 Bootstrap 方法来估计置信区间。主要介绍了 5 中方法:

  1. Standard normal
  2. Basic CI
  3. Percential CI
  4. Bootstrap t CI
  5. Better BCa CI

第一种 Standard normal 中,引入了 pivot quantity \[ Z={\hat\theta-E[\hat\theta]\over se(\hat\theta)} \] 显然,该量在 n 很大情况下由 CLL 可知是近似标准正态;那么1. 再假设该统计量是无偏的,即\(\theta=E[\hat\theta]\) ;2. 使用 Bootstrap 方法估计 se,我们就可以得到 \(\theta\) 的一个置信区间 \[ [\hat\theta\pm z_{\alpha/2}\hat{se}(\hat\theta)]\tag{5} \] 其中 \(z_{\alpha/2}=\Phi(1-\alpha/2)\) ,即标准正态的上 \(\alpha /2\)分位数。

第二种 Basic CI中,我们对于偏差进行考虑: \[ P((\hat\theta-\theta)_{\alpha/2}<\hat\theta-\theta< (\hat\theta-\theta)_{1-\alpha/2})=1-\alpha \] 我们用 \(\hat\theta^*-\hat\theta\) 来估计 \(\hat\theta-\theta\) ,就有 \[ P((\hat\theta^*-\hat\theta)_{\alpha/2}<\hat\theta-\theta< (\hat\theta^*-\hat\theta)_{1-\alpha/2})\approx 1-\alpha \] 整理可得结果 \[ [2\hat\theta-\hat\theta^*_{1-\alpha/2}, 2\hat\theta-\hat\theta^*_{\alpha/2}]\tag{6} \] 第三种 Percential CI 仅和 Basic CI 有微小的区别:直接使用了 \(\hat\theta\) 的分布来估计 \(\theta\) ,因此形式为 \[ [\hat\theta^*_{\alpha/2}, \hat\theta^*_{1-\alpha/2}]\tag{7} \] 注意到,这里没有出现 \(\hat\theta\)

第四种 Bootstrap t CI 是对 Standard normal 的改进——显然,后者的要求过高了(1. 无偏;2. 近似正态)。在 Bootstrap t CI 中,我们引入了一个 t-type statistic ,作为对于(1)中 pivot quantity \(Z\) 的改进: \[ t^{(b)}={\hat\theta^{(b)}-\hat\theta\over\hat{se}(\hat\theta^{(b)})} \] 注意到,在 Standard normal 中,我们仅需要用 Bootstrap 方法来估计 \(se(\hat\theta)\) 。而在这里,我们需要使用 Bootstrap 生成 B 个 t-type statistic;对于每一个 \(t^{(b)}\),我们都需要估计\(\hat{se}(\hat\theta^{(b)})\) ,也就是说,我们要在内部再嵌套一个 Bootstrap。显然,Bootstrap t CI 提高了计算的成本,但也避免了简单的 Standard normal 所具有的一些不足;并且带来了后面讲到的二阶性质。

参考 Standard normal 中的结果,其最终的形式是 \[ [\hat\theta-t_{1-\alpha/2}^*\hat{se}(\hat\theta), \hat\theta-t_{\alpha/2}^*\hat{se}(\hat\theta)]\tag{8} \]

第五种 Better BCa CI,太过复杂在此不做展开,感兴趣可自行搜索。它主要的思想是对于 Percential CI 进行提升。最终形式为 \[ [\hat\theta^*_{1-\alpha/2}, \hat\theta^*_{\alpha/2}]\tag{9} \] 最后,我们从两个维度来比较这些 CI:1. Transformation respecting: given \(t(.)\) , whether CI for \(\theta\) can be t-transformed directly to CI for \(t(\theta)\) ; 2. Second order accuracy

第一点,变换性指出了,在一定的变换下,我们直接对 CI 的 upper 和 lower 进行相应的变换就可以得到 \(t(\theta)\) 的 CI(似乎是说,upper 和 lower 似乎和分位数相关?)。第二点,二阶精准意味着 \[ P(\theta<\hat\theta_{lower})={\alpha\over 2}+{C_{lower}\over n}\\ P(\theta<\hat\theta_{upper})={\alpha\over 2}+{C_{upper}\over n} \] 这是相较于一阶,也就是说下面的 \(n\) 变为 \(\sqrt{n}\) ,借助数值的内容刻画了某种「收敛速度」。

Trans Second order
Standard normal
Basic
Percentile
Bootstrap t
Better BCa