这篇来谈谈 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 (Xsim F(x)) 中,我们观测到了 n 个样本 (X=(x_1,...,x_n));我们把这些样本看作一个整体再次抽样,实际上是从 Empirical dist. 中进行抽样 (X^*sim F_n(x));这些新的样本又有分布 (F_n^*(x))。这里就涉及到了两个近似:
在进入 Bootstrap 之前,还需要对统计量和分布的关系;以及 "Plug-in" Priniciple 进行理解。
- 对于一个 parameter ( heta) 来说,我们可以把它看作是分布 F 上的一个函数 ( heta=t(F)) 。
- 这是对于 population 的,而在 sample level,我们认为 statistic/estimator 是 sample((hat F)) 的一个函数 (hat heta=t(hat F))
例如,对于期望来说是在 F 上的一个积分;而其估计则是样本的均值。
而 "Plug-in" Priniciple ,简单的理解就是对于我们要估计的参数/统计量,我们用 sample level 上的数来代替 population level 上的数,给出两个例子:
对于均值来说
注意这里我们给出了期望和估计值的另一种表示:用(E_{hat F}(X)) 来估计(E_{ F}(X)) 。
对于 standard error of the mean estimator
因为有
(注意,这里我们用了两次 "Plug-in" Priniciple ,并给出了其具体的表达形式。)所以对于 (se(ar X)={sigma oversqrt{n}}) 我们有估计 (hat {se}(ar X)={hatsigma oversqrt{n}})。
Bootstrap
接下来正式进入 Bootstrap,我们先用它来估计 se, bias:
前面讲过,Bootstrap 就是多次抽样,这样就得到了 Empirical dist. (hat F(x)) ,而我们的估计量则是 (t(hat F)) 。我们先来看 se,考虑
我们使用 "Plug-in" Priniciple,则
其中的 (ar{hat heta^*}) 为 B 个 Bootstrap 估计量的均值;分母用了(B-1) 是为了无偏。于是我们得到了 se
的 Bootstrap 估计公式
对于 bias
,由于
注意从第一行到第二行(其估计)中,我们用了三次 "Plug-in" Priniciple。 其中的 (ar{hat heta^*}) 为 B 个 Bootstrap 估计量的均值。
还讲了 Bootstrap 方法来估计置信区间,我们把这部分放到后面去讲,接下来,看看一个特例:Jackknife。
Jackknife
这里,我们用了两个例子,来说明该公式与 Bootstrap 下的区别。我们给出 Jackknife 的流程为:对于一个大小为 n 的样本,每次去除第 i 个样本,将剩下的其余样本作为第 i 次重抽样得到的数据;也就是说,在 Jackknife 下,我们只能有 n 个重抽样结果(而在 Bootstrap 下是不限制的);每个抽样结果的大小为 (n-1)(在 Bootstrap 下为 n)。
来看 bias
,以 ( heta=sigma^2) 为例,估计量为(hat heta={1over n}sum(x_i-ar x)^2) 。注意到有
我们考虑
上式第一行到第二行成立,是因为,我们把 (x_j) 去除,也可以把剩余的观测看做是 population 的(n-1) 此 realization,因此和总体的估计在形式上是一致的。另,上式只是考虑了编号为 j 的一组抽样,我们将 n 组式子相加,容易得到
其中 (ar{hat heta^*})为 n 个估计量的均值。
再来看 se
,以 ( heta=EX)为例,(hat heta=ar X)。注意到
另外,我们仔细看这几个估计量,
则有
显然 ({soversqrt{n}}) 是(se(hat heta)={sigmaoversqrt{n}}) 的无偏估计,比较形式,我们可以得到最终的形式
比较(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
显然,该量在 n 很大情况下由 CLL 可知是近似标准正态;那么1. 再假设该统计量是无偏的,即( heta=E[hat heta]) ;2. 使用 Bootstrap 方法估计 se,我们就可以得到 ( heta) 的一个置信区间
其中 (z_{alpha/2}=Phi(1-alpha/2)) ,即标准正态的上 (alpha /2)分位数。
第二种 Basic CI中,我们对于偏差进行考虑:
我们用 (hat heta^*-hat heta) 来估计 (hat heta- heta) ,就有
整理可得结果
第三种 Percential CI 仅和 Basic CI 有微小的区别:直接使用了 (hat heta) 的分布来估计 ( heta) ,因此形式为
注意到,这里没有出现 (hat heta) !
第四种 Bootstrap t CI 是对 Standard normal 的改进——显然,后者的要求过高了(1. 无偏;2. 近似正态)。在 Bootstrap t CI 中,我们引入了一个 t-type statistic ,作为对于(1)中 pivot quantity (Z) 的改进:
注意到,在(1)中,我们仅需要用 Bootstrap 方法来估计 (se(hat heta)) 。而在这里,我们需要使用 Bootstrap 生成 B 个 t-type statistic;对于每一个 (t^{(b)}),我们都需要估计(hat{se}(hat heta^{(b)})) ,也就是说,我们要在内部再嵌套一个 Bootstrap。显然,Bootstrap t CI 提高了计算的成本,但也避免了简单的 Standard normal 所具有的一些不足;并且带来了后面讲到的二阶性质。
参考(1)中的结果,其最终的形式是
第五种 Better BCa CI,太过复杂了不做展开,感兴趣可自行搜索。它主要的思想是对于 Percential CI 进行提升。最终形式为
最后,我们从两个维度来比较这些 CI:1. Transformation respecting: given (t(.)) , whether CI for ( heta) can be t-transformed directly to CI for (t( heta)) ; 2. Second order accuracy
第一点,变换性指出了,在一定的变换下,我们直接对 CI 的 upper 和 lower 进行相应的变换就可以得到 (t( heta)) 的 CI(似乎是说,upper 和 lower 似乎和分位数相关?)。第二点,二阶精准意味着
这是相较于一阶,也就是说下面的 (n) 变为 (sqrt{n}) ,借助数值的內容刻画了某种「收敛速度」。
Trans | Second order | |
---|---|---|
Standard normal | ✕ | ✕ |
Basic | ✕ | ✓ |
Percentile | ✓ | ✕ |
Bootstrap t | ✕ | ✓ |
Better BCa | ✓ | ✓ |