这篇来谈谈 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]={1\over B-1}\sum(\hat\theta^{(i)}-\bar{\hat\theta^{*}})^2 \]
其中的 \(\bar{\hat\theta^*}\) 为 B 个 Bootstrap 估计量的均值;分母用了\(B-1\) 是为了无偏。于是我们得到了 se
的 Bootstrap 估计公式
\[ \hat{se}(\hat\theta)=\sqrt{{1\over B-1}\sum(\hat\theta^{(i)}-\bar{\hat\theta^{*}})^2}\tag{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}\\ \]
注意从第一行到第二行(其估计)中,我们用了三次 "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 \]
我们考虑
\[ 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,因此和总体的估计在形式上是一致的。另,上式只是考虑了编号为 j 的一组抽样,我们将 n 组式子相加,容易得到
\[ \hat{bias}_{Jack}(\hat\theta)=(n-1)(\bar{\hat\theta^*}-\hat\theta)\tag{3} \]
其中 \(\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{{n-1\over n}\sum(\hat\theta-\bar{\hat\theta^*})^2}\tag{4} \]
比较(3)(4)和(1)(2),我们可以发现 Jackknife 估计要比 Bootstrap 估计在分子上多一个\(n-1\),这可以理解为,the Jackknife sample \(x^{(i)}\) is very similar to \(x\) compared with Bootstrap replicates。
Bootstrap CI
下面回过头来继续介绍使用 Bootstrap 方法来估计置信区间。主要介绍了 5 中方法:
- Standard normal
- Basic CI
- Percential CI
- Bootstrap t CI
- 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)})} \]
注意到,在(1)中,我们仅需要用 Bootstrap 方法来估计 \(se(\hat\theta)\) 。而在这里,我们需要使用 Bootstrap 生成 B 个 t-type statistic;对于每一个 \(t^{(b)}\),我们都需要估计\(\hat{se}(\hat\theta^{(b)})\) ,也就是说,我们要在内部再嵌套一个 Bootstrap。显然,Bootstrap t CI 提高了计算的成本,但也避免了简单的 Standard normal 所具有的一些不足;并且带来了后面讲到的二阶性质。
参考(1)中的结果,其最终的形式是
\[ [\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 | ✓ | ✓ |