这一章的开头4节都在讲bootstrap。Bootstrap在技术上非常简单,用『有放回的重抽样』就可以概括;但它背后的原理极其复杂,基于一个被称为Edgeworth的正态展开(类似于泰勒级数),特别当针对一个pivot做bootstrap时,可以得到二阶的精度。ESL这一章并没有探讨bootstrap的原理,而主要描述了方法和现象,Efron有一本专门的著作『An Introduction to the Bootstrap』。

通过Bootstrap抽样,我们可以通过计算机对给定数据的性质进行估计,包括样本均值的方差,样本方差的方差,估计值的置信区间,等等等等。待估计的这个估计量是任意的,举例来说,如果我们要估计某个估计量\(\hat{\theta} = \hat{\theta}(x_1, x_2, \dots, x_n)\)的方差,那么我们只要首先生成\(B\)组(参数/非参数的,后面会解释)bootstrap样本集,然后就能得到估计

\[\mathbb{Var}_B^{*}(\hat{\theta}) = \frac{1}{B-1}\sum_{i=1}^B (\hat{\theta}_i^{*} - \bar{\hat{\theta}^{*}})^2\]

其中\(\hat{\theta}_i^{*}\)表示通过第\(i\)组中样本得到的估计量,\(\bar{\hat{\theta}^{*}}\)表示所有\(B\)个估计量的平均值,一般bootstrap抽样得到的估计量都用上标星号表示。

所谓非参数bootstrap是指bootstrap样本抽样来自原始的样本,不涉及参数估计;而参数的bootstrap会假设一个样本发生模型,然后从样本中推断出模型的参数(一般是MLE),最后从估计的这个模型中sample出bootstrap样本(后面有例子具体说明)。

Bootstrap与最小二乘的置信区间

书上是这样定义这个问题的:对于一组(一维)数据,我们用三次样条进行拟合,样条结点选取在\(X\)的4分位点上,按照之前(书上143页)的方法,自由度为\((4 \: region) \times (4\: params\: per\: region) - (3 \: knots) \times (3\: constraints\: per\: knot) = 7\),于是有模型:

\[\mu(x) = \sum_{j=1}^{7} \beta_j h_j(x)\]

由最小二乘解出\(\hat{\boldsymbol{\beta}} = (H^T H)^{-1} H^T \mathbf{y}\). 其中\(H\)是一个\(N \times 7\)的矩阵,\(H_{ij} = h_j(x_i)\)

接下去要找到预测值的standard error,令\(\mathbf{h}(x) = (h_1(x), h_2(x), \dots, h_7(x))\):

\[\begin{equation} \label{eq:se} \begin{split} \operatorname{se}[\hat{\mu}(x)] &= \left[ \mathbf{h}(x)^T \operatorname{Var}(\hat{\boldsymbol{\beta}})\mathbf{h}(x) \right]^{1/2} \\ &= \left[ \mathbf{h}(x)^T (H^T H)^{-1} H^T \operatorname{Var}(\mathbf{y}) H (H^T H)^{-1} \mathbf{h}(x) \right]^{1/2} \\ &\approx \left[ \mathbf{h}(x)^T (H^T H)^{-1} \cdot \hat{\sigma}^2 I \cdot \mathbf{h}(x) \right]^{1/2} \\ &= \hat{\sigma} \left[ \mathbf{h}(x)^T (H^T H)^{-1} \mathbf{h}(x) \right]^{1/2} \end{split} \end{equation}\]

上式中取近似的那一步假设\(\operatorname{Var}(\mathbf{y}) = \operatorname{diag}(\hat{\sigma}^2)\),其中\(\hat{\sigma}^2 = \sum_{i=1}^N (y_i - \hat{\mu}(x_i))^2 / N\)

图8.2右上画出了拟合曲线的\(95\%\)置信区间,即\(\hat{\mu}(x) \pm 1.96 \cdot \hat{\operatorname{se}}[\hat{\mu}(x)]\)

稍微解释一下,以上的置信区间是这么算的:首先假设\(\mu(x) = \hat{\mu}(x) + \epsilon_{\mu}; \: \epsilon_{\mu} \sim N(0, \sigma_{\mu}^2)\),这样\(\frac{\mu(x)-\hat{\mu}(x)}{\sigma_{\mu}} \sim N(0, 1)\),其中\(\sigma_{\mu}^2 = \operatorname{Var}[\mu(x)] = \operatorname{Var}[\boldsymbol{\beta}^T \mathbf{h}(x)] = \operatorname{se}^2 [\hat{\mu}(x)]\). 而\(1.96\)是标准正态分布的\(95\%\)分位点。

而右下图画出了bootstrap方法得到的拟合曲线的\(95\%\)置信区间,具体做法如下:

  • 从训练集中重抽样出\(B=200\)个bootstrap训练集,每个训练集包含\(N=50\)个样本;
  • 对每一个训练集\(Z^{*}\)拟合得到一个三次样条\(\hat{\mu}^{*}(x)\)
  • 在每一个\(x\)处找第\(2.5\% \times 200 = 5\)大和第\(5\)小的值,这样得到\(95\%\)的置信区间

以上方法被称为『非参数boostrap』,因为这是直接从训练集出发抽样得到新的数据集,而不是从参数模型中sample得到数据集。

与之相对的是『参数bootstrap』,在参数化的方法中:

  • 我们首先假设一个样本生成模型,例如高斯扰动\(y_i = \mu(x_i) + \epsilon_i, \: \epsilon \sim N(0, \sigma^2)\)
  • 通过(使用样条的)最小二乘得到均值\(\hat{\mu}(x_i)\)和方差\(\hat{\sigma}^2\)
  • 对每一个训练集中的\(x_i, \: i = 1,2,\dots ,N\),通过上述模型sample出一组新的\(y_i^{*} = \hat{\mu}(x_i) + \epsilon_i^{*}; \: \epsilon_i^{*} \sim N(0, \hat{\sigma}^2)\),共\(N\)个训练数据点:\((x_1, y_1^{*}), \dots, (x_N, y_N^{*})\)
  • 产生\(B=200\)个bootstrap训练集,对每一个重新拟合三次样条,得到\(\hat{\mu}^{*}(x) = \mathbf{h}(x)^T (H^T H)^{-1}H^T \mathbf{y}^{*}\)
  • 通过和非参数bootstrap一样的方法得到置信区间

我们注意到\(\hat{\mu}^{*}(x)\)也是一个高斯分布,有均值\(\mathbb{E}[\hat{\boldsymbol{\mu}}^{*}(x)] = [\mathbf{h}(x)^T (H^T H)^{-1}H^T] [H(H^T H)^{-1}H^T\mathbf{y}] = \hat{\boldsymbol{\mu}}(x)\),方差\(\mathbf{h}(x)^T(H^T H)^{-1} \mathbf{h}(x) \hat{\sigma}^2\),以及和式(\(\ref{eq:se}\))一样的se,因此当\(B \to \infty\)时我们可以得到和最小二乘完全一样的置信区间。

Bootstrap与最大似然的置信区间

上面的分析展示了bootstrap和最小二乘的关系,而我们知道最小二乘和假设正态误差后求MLE是一回事情:

\[y_i = \boldsymbol{\beta}^T \mathbf{h}(x_i) + \epsilon, \epsilon \sim N(0, \sigma^2)\]

求解最大似然可以得到\(\boldsymbol{\beta}\)和\(\sigma\)的估计值,这两个估计值应该和最小二乘得到的一样。

这一节的关键在于最大似然估计的置信区间,用到了最大似然的渐进性质。MLE的渐进分析基于这样一个方法:将似然函数\(l(\boldsymbol{\theta};Z_i)\)中的\(Z_i\)看作随机变量,这样\(l\)也是一个随机变量;如果认为\(Z_i\)之间互相独立,那么\(l_N(\boldsymbol{\theta};\mathbf{Z}) = \sum_{i=1}^N l(\boldsymbol{\theta};Z_i)\)也是随机变量,有自己的概率分布,并且不同的\(\boldsymbol{\theta}\)值对应不同的概率分布。进一步的,似然函数的一阶、二阶导都是随机变量,最大似然估计\(\hat{\boldsymbol{\theta}}\)也是一个随机变量。

最大似然函数的二阶导矩阵被称为information matrix,而它的期望\(I_n(\boldsymbol{\theta})\),被成为Fisher information,这是最大似然渐进分析中最重要的一个统计量了,且有(注意这里的记号和ESL不太一样):

\[I_N(\boldsymbol{\theta}) = \mathbb{E}_\boldsymbol{\theta}[l_N^{\prime\prime}(\boldsymbol{\theta};\mathbf{Z})] = \mathbb{Var}_\boldsymbol{\theta}[l_N^{\prime}(\boldsymbol{\theta};\mathbf{Z})]\]

这里下标\(N\)是强调有\(N\)个随机变量的联合分布,下标\(\boldsymbol{\theta}\)是为了强调用于计算期望的概率密度函数,它的参数\(\boldsymbol{\theta}\)和\(l_N(\boldsymbol{\theta};\mathbf{Z})\)中的参数是同一个(比如说,如果有均值\(\mu\)和方差\(\sigma\)两个参数,不能一个是\(\mu\),另一个是\(\sigma\))

MLE有一个重要的渐进性质,在绝大多数情况下,有

\[(\hat{\boldsymbol{\theta}} - \boldsymbol{\theta}_0) \longrightarrow N(\mathbf{0}, I_n(\boldsymbol{\theta}_0)^{-1})\]

其中\(\boldsymbol{\theta}_0\)表示参数的真实值。以上结论具体的证明不妨参考UMN的Stat-5102第8章Conlecture notes

有了这个结论,就可以构造MLE的置信区间了,很显然得到的是和最小二乘相同的置信区间。

Bootstrap与贝叶斯方法

这一节我没有特别理解,大意是说给定noninformative的先验,那么贝叶斯后验和MLE就非常相似了,Bootstrap可用于这种情况下贝叶斯方法的估计。这显然是一定的:例如,令\(z \sim N(\theta, 1)\),先验\(\theta \sim N(0, \tau)\),那么后验

\[\theta \vert z \sim N\left(\frac{z}{1+1/\tau}, \frac{1}{1+1/\tau} \right)\]

当\(\tau \rightarrow \infty\)时,这就是一个noninformative先验,显然,此时\(\theta\vert z\)趋向于MLE的结果。