计算统计学与数据科学 05:重抽样方法

墨尔本大学 MAST90083 课程笔记

Posted by YEY on August 31, 2020

Lecture 05 重抽样方法

参考教材

  • Gareth, J., Daniela, W., Trevor, H., & Robert, T. (2013). An intruduction to statistical learning: with applications in R. Spinger.
  • Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning: data mining, inference, and prediction. Spinger Science & Business Media.

现代统计学中,重抽样方法 (resampling method) 是一种不可或缺的工具。这种方法通过反复从训练集中抽取样本,然后对每一个样本重新拟合一个感兴趣的模型,来获取关于拟合模型的附加信息 (例如,它可以提供测试集上预测误差的估计值,以及我们参数估计值的标准差和偏差)。

在本节课中,我们主要讨论两种 重抽样方法 (resampling)交叉验证法bootstrap

1. 交叉验证法

1.1 训练误差 vs. 测试误差

回忆一下 测试误差 (test error)训练误差 (training error) 之间的区别:

  • 测试误差 是使用某种统计学习方法预测在一个新的观测 (即在训练模型时没有用到的一个观测) 上的响应值所产生的平均误差。

  • 相反,通过将统计学习方法用于训练观测上,可以轻松计算出 训练误差

但是,训练错误率通常跟测试错误率有很大差别,尤其是表现为前者可能会 严重低估 后者。

图 1:模型复杂度 vs. 预测误差。红色曲线代表测试误差,蓝色曲线代表训练误差。随着模型复杂度增加:模型将具有低偏差,高方差;训练误差逐渐下降;而测试误差将先下降再上升,呈现出 U 型。

估计预测误差

最佳解决方案:准备一个非常大的指定测试数据集。然而,通常很难获得这样的数据集。

一些方法通过对训练错误率进行数学修正来估计测试错误率。其中包括 $C_p$ 统计量$\textit{AIC}$$\textit{BIC}$,我们将在后面课程中讨论这些方法。

在这里,我们考虑一类方法:在拟合过程中,保留 (holding out) 训练观测的一个子集,然后对保留的观测运用统计学习方法,从而来估计其测试错误率。

1.2 验证集方法

如果我们想要估计在一个观测数据集上拟合一种指定的统计学习方法所产生的测试误差,图 2 所示的 验证集方法 (validation-set approach) 就是一种非常简单的方法。

图 2:验证集方法的原理图。一个包含 $n$ 个观测的数据集被随机地分为一个训练集 (左下部分,包含观测 7、22、13 及其他观测) 和一个验证集 (右下部分,包含观测 91 及其他观测)。验证集方法是一种先在训练集上拟合统计学习方法,然后在验证集上评价其表现的方法。

在这里,我们将可用的样本集随机分为两部分:训练集 (training set)验证集 (validation set),又称 保留集 (hold-out set)

我们在训练集上拟合模型,然后用拟合的模型来预测验证集中观测的响应值。

最后得到的验证集误差提供了一个对于测试误差的估计。对于定量响应,通常使用 MSE 进行评估;对于定性 (离散) 响应,则使用误分类率进行评估。

例子:汽车数据集

我们将在 Auto 数据集上说明验证集方法的原理。回忆之前我们提到,mpghorsepower 之间似乎存在非线性关系,而加入 horsepowerhorsepower$^2$ 后的模型要比仅使用线性项拟合的模型的预测效果更好。那么很自然就会产生这样一个疑问:用三次或更高次项来拟合模型的效果是不是更好呢?

之前,我们通过考察用三次及更高次多项式进行线性回归所得到的 p 值回答了这个问题。这里,我们也可以用验证集方法来解决这个问题。

现在,我们想要比较仅包含线性项与包含高阶多项式项的线性回归模型的拟合效果。

我们将 $392$ 个观测值随机分为两组:一个包含 $196$ 个数据点的训练集,一个包含剩余 $196$ 个观测点的验证集。

图 3:在 Auto 数据集上,用验证集方法来估计用 horsepower 的多项式函数来预测 mpg所产生的测试误差。左图:用一种随机划分将数据集分为训练集和验证集,所产生的验证误差估计。右图:重复运用验证集方法十次,每次使用一种不同的随机划分将数据集分为训练集和验证集,图中反映了用验证集方法所产生的测试均方误差估计的波动性。

验证集方法的缺点

验证集方法的原理很简单,且易于执行。但它有 两个潜在缺陷

  1. 测试误差的验证集法估计的 波动很大 (如图 3 右图所示),这取决于具体哪些观测被包括在训练集中,哪些观测被包括在验证集中。

  2. 在验证集方法中,只有一部分观测 (即那些被包含在训练集而非验证集中的观测) 被用于拟合模型。由于训练样本越少,统计学习方法的表现越差,这意味着,验证集误差可能会 高估 在整个数据集上拟合模型所得到的测试误差。

1.3 $K$-折交叉验证

$K$-折交叉验证 是一种广泛用于估计测试误差的方法。

估计值可用于选择最佳模型,并给出最终选择模型的测试误差的相关信息。

核心思想:将数据随机分为 $K$ 个相等大小的部分。将其中第 $k$ 个部分留出,然后用其余 $K-1$ 个部分的数据来拟合模型,然后对之前留出的第 $k$ 个部分进行预测,并计算其均方误差 $\mathrm{MSE}_k$。依次针对每个部分 $k=1,2,\dots,K$ 重复该过程,然后将结果合并。

图 4:$5$ 折 CV 方法的原理图。一个包含 $n$ 个观测的数据集被随机地分为 $5$ 个不重叠的组。每一组轮流作为验证集 (图中米黄色部分),其余组作为训练集 (图中蓝色部分)。通过对最终得到的 $5$ 个均方误差估计求平均来估计测试误差。

将包含全部 $n$ 个观测的数据集划分为 $K$ 个部分 $C_1,C_2,\dots,C_K$,其中 $C_k$ 表示第 $k$ 个部分中观测的索引。$n_k$ 表示第 $k$ 个数据集中的观测数量:如果 $n$ 是 $K$ 的整数倍,那么 $n_k=n/K$。

计算 $K$-折 CV 估计:

\[\mathrm{CV}_{(K)}=\sum_{k=1}^{K}\dfrac{n_k}{n} \mathrm{MSE}_k\]

其中,$\mathrm{MSE}_k = \sum_{i\in C_k} (y_i - \hat y_i)^2 / n_k$,而 $\hat y_i$ 是第 $i$ 个观测的拟合值,它是通过移除第 $k$ 个部分后拟合出的模型得到的。

留一交叉验证

令 $K=n$,将得到 $n$-折 CV,也叫 留一交叉验证 (leave-one out cross-validation, LOOCV)

LOOCV 方法的计算量可能很大,因为模型需要被拟合 $n$ 次。但是,使用最小二乘法来拟合线性或多项式回归时,可以将 LOOCV 的计算成本缩减到与单个模型拟合成本相同。计算公式如下:

\[\mathrm{CV}_{(n)}=\dfrac{1}{n}\sum_{i=1}^{n}\left(\dfrac{y_i - \hat y_i}{1- h_i}\right)^2\]

其中,$\hat y_i$ 是原始最小二乘拟合的第 $i$ 个拟合值,$h_i$ 是杠杆值 (帽子矩阵的对角线上的第 $i$ 个元素;有关详细信息,请参见教材)。类似于普通的 $\mathrm{MSE}$,区别仅在于第 $i$ 个残差除了一个系数 $1-h_i$。

LOOCV 有时很有用,但通常会使 数据重组不够充分 (即每次只留出一个观测作为验证集,可能导致每次训练集之间的差异过小)。由于每折观测的估计值高度相关,因此它们的平均值可能具有很高的方差。

通常,更好的选择是 $K=5$ 或 $10$。

$K$-折 CV vs. LOOCV

Auto 数据集上分别用 LOOCV 和 $10$-折 CV 方法,得到用 horsepower 的多项式函数拟合线性回归模型,来预测 mpg 所产生的测试集均方误差的一个估计,如图 5 所示。

图 5:在 Auto 数据袋上,用交叉验证法来估计用 horsepower 的多项式函数来预测 mpg 所产生的测试误差。左图:LOOCV 误差曲线。右图:分别应用 $10$-折 CV 方法 $9$ 次,每次用一种不同的随机划分将数据分为 $10$ 个部分。图中展示了 $9$ 条略微不同的 CV 误差曲线。

从图 5 中的右图可以看到, CV 估计存在一定的波动性,这是由于将观测分为 $10$ 折的划分差异所造成的。但这种波动通常比之前的验证集方法所得的测试误差的波动要小得多 (对比图 3 中的右图)。

当检验真实数据时,测试均方误差的真实值是未知的,因此很难衡量交叉验证估计的精度。所以这里我们采用模拟数据来衡量交叉验证结果的精度。图 6 描述了不同模拟数据集上采用光滑样条法所得到的测试误差的交叉验证估计值和真实值。

图 6:不同模拟数据集上的测试均方误差的真实值和估计值。蓝色实线为测试均方误差的真实值,黑色虚线为 LOOCV 估计值,橙色实线为 $10$-折 CV 估计值。用 “$\times$” 标注的点表示每条均方误差曲线的最小值点。

可以看到,在三个模拟数据集上,这两种交叉验证估计都非常接近。在图 6 的右图中,测试均方误差的真实值和 CV 估计曲线几乎重合。在图 6 的中图中,当模型灵活度较低时,真实值曲线和 CV 估计曲线比较接近,而当模型灵活度较高时,CV 曲线高估了测试集均方误差。在图 6 的左图中,CV 曲线的形状大致正确,但都低估了测试均方误差的真实值。

1.4 交叉验证法的其他问题

由于每个训练集大小仅为原始训练集的 $(K-1)/K$,因此预测误差的估计值通常会向上偏移 (即高估)。因为当使用全部数据进行训练时,模型拟合会更好,所以实际预测误差会低一些。

如前所述,当 $K = n$ 时,LOOCV 将使得上述偏移最小化,但这种情况下,估计值将具有较高的方差。因为在使用 LOOCV 方法时,实际上是在平均 $n$ 个拟合模型的结果,而其中每个模型都是在几乎相同的观测集上训练的;因此,这些结果相互之间是高度 (正) 相关的。

$K = 5$ 或 $10$ 为这种偏差-方差权衡提供了一个很好的折衷方案。

1.5 交叉验证法用于分类问题

将包含全部 $n$ 个观测的数据集划分为 $K$ 个大小大致相等的部分 $C_1,C_2,\dots,C_K$。其中,$C_k$ 表示第 $k$ 个部分中观测的索引。$n_k$ 表示第 $k$ 个数据集中的观测数量:如果 $n$ 是 $K$ 的整数倍,那么 $n_k=n/K$。

计算交叉验证估计 $\mathrm{CV}_{(K)}$:

\[\mathrm{CV}_{(K)} = \sum_{k=1}^{K}\dfrac{n_k}{n}\text{Err}_k\]

其中,$\text{Err}_k = \sum_{i\in C_k} I(y_i \ne \hat y_i)/n_k$。

$\mathrm{CV}_{(K)}$ 的标准差的估计为:

\[\widehat{\mathrm{SE}}(\mathrm{CV}_{(K)}) = \sqrt{\sum_{k=1}^{K}(\text{Err}_k-\overline{\text{Err}_k})^2 / (K-1)}\]

这是一个有用的估计,但严格来说,还不是很有效。

1.6 交叉验证法:正确与错误做法

考虑一个简单分类器用于一些二分类数据,这将包含以下两个步骤:

  1. 从 $5000$ 个预测变量和 $50$ 个样本开始,找到与类别标签相关性最大的 $100$ 个预测变量。
  2. 然后,我们应用一个分类器 (例如,逻辑回归),并且仅使用前一步得到的 $100$ 个预测变量。

我们应当如何估计该分类器的测试集性能?我们可以忽略第 1 步,而仅在第 2 步应用交叉验证吗?

答案是不能。

因为这种做法将忽略以下事实:在步骤 1 中,程序已经见过了训练数据的标签,并且已经使用过了它们。这实际上相当于某种形式的训练过程,而这些信息实际上应当被包含在验证过程中。这被称为 知识泄漏 (knowledge leaking)

也就是说,当我们应用特征选择时,我们同时使用了来自训练集和后面的 CV 验证集的信息,结果就是,我们的逻辑回归模型提前知道了验证集中应该隐藏的信息。

我们已经在许多高级基因组学的相关论文中看到了这类错误做法。

为了避免这种情况,我们应当在每轮交叉验证批处理期间计算特征相关性。这和之前做法的不同之处在于,现在特征关联将仅使用训练集中的信息,而非整个数据集。

  • 错误做法:交叉验证仅应用于步骤 2。

    图 7:交叉验证法的错误使用方式。

  • 正确做法:交叉验证同时应用于步骤 1 和步骤 2。

    图 8:交叉验证法的正确使用方式。

2. Bootstrap 方法

Bootstrap 是一种灵活而强大的统计工具,可以用它来衡量一个指定的估计器或统计学习方法中的不确定因素。

例如,它可以提供某个回归系数的标准误的一个估计,或者该系数的置信区间。

2.1 Bootstrap 名称的由来

Bootstrap 一词的使用源于用自己的 靴子 (bootstraps) 来帮助自己站起来,这被广泛认为是基于 18 世纪 Rudolph Erich Raspe 的小说《蒙克豪森男爵的惊人历险记》中的某个场景:

男爵跌落进了一个深湖的底部。就好像一切都消失了一样,他想着通过自己的靴子 (bootstraps) 站起来。

它与计算机科学中使用的 “引导程序 (bootstrap)” 一词并不相同,意思是从一组核心指令中 “引导 (boot)” 计算机,尽管两者的过程存在相似之处。

2.2 一个简单的例子

假设我们希望将一笔固定数额的资金投入到两个收益分别为 $X$ 和 $Y$ 的金融资产中,其中 $X$ 和 $Y$ 是随机变量。我们选择将占比为 $\alpha$ 的资金投到 $X$,将剩余的占比为 $1-\alpha$ 的资金投到 $Y$。

由于这两笔投资的收益存在波动性,因此我们希望选择一个 $\alpha$ 使得投资的总风险或者方差最小。换句话说,我们希望使 $\mathrm{Var}(\alpha X + (1-\alpha)Y)$ 最小。

可以证明,能够使风险最小化的 $\alpha$ 的值为:

\[\alpha = \dfrac{\sigma_Y^2 - \sigma_{XY}}{\sigma_X^2 + \sigma_Y^2 -2\sigma_{XY}}\]

其中,$\sigma_X^2= \mathrm{Var}(X),\;\sigma_Y^2= \mathrm{Var}(Y),\;\sigma_{XY}= \mathrm{Cov}(X,Y)$。

但在实践中,我们并不知道 $\sigma_X^2$、$\sigma_Y^2$ 和 $\sigma_{XY}$ 的值,我们可以使用一个包含 $X$ 和 $Y$ 的测量的数据集来计算这些量的估计,$\hat \sigma_X^2$、$\hat \sigma_Y^2$ 和 $\hat \sigma_{XY}$。

然后,我们就可以估计出使得投资方差最小化的 $\alpha$ 值:

\[\hat \alpha = \dfrac{\hat \sigma_Y^2 - \hat \sigma_{XY}}{\hat \sigma_X^2 + \hat \sigma_Y^2 -2\hat \sigma_{XY}}\]

图 9 展示了在一个模拟数据集上用此方法估计 $\alpha$ 的结果。

图 9:每一部分展示了 $100$ 个模拟生成的投资收益 $X$ 和 $Y$。从左到右,从上到下,所得的的 $\alpha$ 的估计值分别为 $0.576$、$0.532$、$0.657$ 和 $0.651$。

我们还希望评估一下 $\alpha$ 估计的精度。为了估计 $\hat \alpha$ 的标准差,我们重复了模拟生成了 $100$ 对 $X$ 和 $Y$ 的观测,并对 $\alpha$ 进行 $1000$ 次估计。因此得到了 $1000$ 个 $\alpha$ 的估计,即 $\hat \alpha_1, \hat \alpha_2, \dots, \hat \alpha_{1000}$。

图 10 的左图显示了所得估计的直方图。在模拟生成这些数据时,参数设定为 $\sigma_X^2=1,\; \sigma_Y^2=1.25,\; \sigma_{XY}=0.5$,因此我们知道 $\alpha$ 的真实值为 $0.6$ (图中红线表示)。

$\alpha$ 全部 $1000$ 个估计的均值为:

\[\overline \alpha = \dfrac{1}{1000}\sum_{r=1}^{1000}\hat \alpha_r = 0.5996\]

这与 $\alpha=0.6$ 非常接近,而该估计量的标准差为:

\[\sqrt{\dfrac{1}{1000-1}\sum_{r=1}^{1000}(\hat \alpha_r - \overline \alpha)^2} =0.083\]

这为我们提供了一个关于 $\hat \alpha$ 精度的很好的认识:$\mathrm{SE}(\hat \alpha)\approx 0.083$。

因此,大致来看,对于一个来自总体的随机样本,可以认为平均上,$\hat \alpha$ 和 $\alpha$ 的差别大约为 $0.08$。

图 10左图:由真实的总体生成的 $1000$ 个模拟数据集所计算得到的 $\alpha$ 估计的直方图。中图:由一个数据集生成的 $1000$ 个 bootstrap 样本所得到的 $\alpha$ 估计的直方图。右图:左图和中图展示的 $\alpha$ 估计的箱型图。每个图中的粉色直线代表 $\alpha$ 的真实值。

2.3 回到现实世界

通常在实践中,我们无法通过以上方法来大致估计 $\mathrm{SE}(\hat \alpha)$,因为对于真实数据,我们无法从原始总体中生成新的样本。但是,bootstrap 方法让我们可以使用计算机来模拟获取新的数据集的过程,从而可以估计 $\hat \alpha$ 的波动性而不用生成额外的样本。

相比从总体中重复获得独立的数据集,bootstrap 方法通过重复地对来自原始数据集的观测进行 有放回抽样 来获得不同的数据集。每个 “bootstrap 数据集” 都是通过 有放回抽样 创建的,并且与原始数据集 大小相同。这就导致对于一个给定的 bootstrap 数据集,某些观测可能会出现多次,而某些观测可能根本不会出现。

2.4 Bootstrap 方法的例子

图 11 在一个仅包含 $n=3$ 个观测的简单数据集 $Z$ 上展示了 bootstrap 方法的原理。

图 11:在一个仅包含 $n=3$ 个观测的原始数据集上对 bootstrap 方法原理进行图解说明。每个 bootstrap 数据集包含 $n$ 个观测,它们是通过从原始数据集中进行有放回抽样得到的。然后,在每个 bootstrap 数据集上得到一个 $\alpha$ 的估计。

我们将第一个 bootstrap 数据集记为 $Z^{*1}$,然后我们通过 $Z^{*1}$ 生成 $\alpha$ 的一个新的 bootstrap 估计,记为 $\hat \alpha^{*1}$。

重复上述过程 $B$ 次,通常 $B$ 是一个很大的值 (例如:$100$ 或者 $1000$)。然后,我们得到 $B$ 个不同的 bootstrap 数据集 $Z^{*1},Z^{*2},\dots,Z^{*B}$,以及 $B$ 个对应的 $\alpha$ 估计 $\hat \alpha^{*1},\hat \alpha^{*2},\dots,\hat \alpha^{*B}$。

然后,我们可以利用下面的公式计算这些 bootstrap 估计的标准误:

\[\mathrm{SE}_B(\hat \alpha)=\sqrt{\dfrac{1}{B-1}\sum_{r=1}^{B}(\hat \alpha^{*r} - \overline{\hat \alpha^*})^2}\]

其中,$\overline{\hat \alpha^*}=\frac{1}{B}\sum_{r’=1}^{B}\hat \alpha^{* r’}$。

我们将上式作为从原始数据集估计的 $\hat \alpha$ 的标准误的一个估计。如之前图 10 的中图所示,在该例中,$\mathrm{SE}_B(\hat \alpha)=0.087$。

2.5 一般的 bootstrap 方法

图 12:Bootstrap 方法的大致流程。

在更复杂的数据情况下,找出适当的方法来生成 bootstrap 样本可能需要一些思考。

例如,当原始观测数据是一个时间序列时,我们将无法简单地对这些观测进行有放回抽样。为什么呢?因为时间序列存在某种时间趋势,不能直接通过原序列进行构造。

这种情况下,我们可以先创建一些由连续观测组成的数据块,然后对这些数据块进行有放回抽样。然后,我们将抽样得到的块组合在一起得到一个 bootstrap 数据集。

2.6 Bootstrap 的一些其他用法

Bootstrap 方法主要用于获得某个估计的 标准误 (standard errors)

Bootstrap 方法还为我们提供了总体参数的一个 近似置信区间。例如,在图 10 的中图所示的直方图中,可以看到,$1000$ 个 $\alpha$ 估计值的 $5\%$ 和 $95\%$ 分位数分别为 $0.43$ 和 $0.72$。因此,该方法为我们提供了真实 $\alpha$ 的一个近似 $90\%$ 置信区间 $[0.43, 0.72]$,我们称之为 Bootstrap 百分比置信区间,这也是通过 bootstrap 获得置信区间的众多方法中最简单的一种。

那么,我们可以通过 bootstrap 方法来估计预测误差吗?

  • 在交叉验证中,$K$ 个验证折里的每一个都与其他 $K-1$ 个用于训练的折不同:不存在重叠。而这也是交叉验证法成功的关键。

  • 为了使用 bootstrap 估计预测误差,我们可以考虑将每个 bootstrap 数据集用作训练样本,并将原始样本用作验证样本。

  • 但是,每个 bootstrap 样本都与原始数据有很大的 重叠 部分。事实上,大约有三分之二的原始数据点会出现在每个 bootstrap 样本中。简单证明如下:

    \[\Pr\{i\text{-th observation} \in Z^{*b}\} = 1-\left(1- \dfrac{1}{n}\right)^n \approx 1- e^{-1} =0.632\]
  • 这将导致 bootstrap 严重低估 真实的预测误差。因为大量数据重叠导致过拟合使得 bootstrap 的估计误差仅为真实误差的大约三分之一。

  • 而另一方面,将原始样本作为训练样本,将 bootstrap 数据集作为验证样本,结果更糟糕。

消除重叠

  • 通过仅对那些没有 (偶然) 出现在当前 bootstrap 样本中的观测进行预测,可以部分解决此问题。
  • 但是,这种方法非常复杂。因此,交叉验证为估计预测误差提供了一种更简单、更具吸引力的方法。

2.7 预验证

在微阵列和其他基因组研究中,一个重要的问题是将源自大量 “生物标志物” 的疾病结果的预测变量与标准临床预测变量进行比较。

在用于导出生物标记预测变量的同一数据集上,对上述两组预测变量进行比较,可能会导致结果偏向于生物标记预测变量。

预验证 (Pre-validation) 可用于在两组预测变量之间进行更公平的比较。

预验证的例子

Van’t Veer 等人的论文 (Nature, 2002) 中提供了关于这个问题的一个例子:他们的微阵列数据具有 $78$ 个病例上测量的 $4918$ 个基因,这些基因来自乳腺癌研究。其中,预后良好组包含 $44$ 例,预后不良组包含 $34$ 例。“微阵列” 预测变量的构成如下:

  1. 选择 $70$ 个基因,它们与上面 $78$ 个类标签具有最大的绝对相关性的。
  2. 利用这 $70$ 个基因,构建了一个最近质心分类器 $C(x)$。
  3. 将分类器应用于 $78$ 个微阵列,得到每个病例 $i$ 的二分预测变量 $z_i=C(x_i)$。

使用预后情况的逻辑回归预测结果,对微阵列预测变量和一些临床预测变量进行比较:

表 1:Van’t Veer 等人的论文中,使用逻辑回归得到的预后情况的结果。包含一个微阵列预测变量 microarray,以及 6 个临床预测变量:angioergradepragesize

预验证背后的思想

设计一种用于将自适应派生的预测变量与某些固定的预定义预测变量进行比较的方法。

该想法旨在形成自适应预测变量的 “预验证” 版本:特别是没有 “见过” 响应 $y$ 的 “更公平” 版本。

预验证流程

图 13: 预验证的流程。

前面例子中的详细预验证流程:

  1. 将全部 $78$ 个病例分为 $K = 13$ 个相等大小的部分,每部分包含 $6$ 个病例。
  2. 留出其中一个部分。仅使用其余 $12$ 个部分的数据,选择与类别标签具有至少 $0.3$ 的绝对相关性的特征,并构建最近质心分类规则。
  3. 使用构建好的分类规则预测之前留出部分的类别标签。
  4. 对 $13$ 个部分中的每个部分都执行上述步骤 2 和 3,从而为 $78$ 个病例中的每一个都生成一个 “预验证” 微阵列预测变量 $\tilde z_i$。
  5. 对生成的预验证微阵列预测变量和其他 6 个临床预测变量拟合一个逻辑回归模型。

2.8 Bootstrap vs. 置换检验 (Permutation tests)

  • Bootstrap 从 估计总体 (estimated population) 中抽样,并使用其结果来估计 标准误置信区间

  • 置换方法从数据的 估计零分布 (estimated null distribution) 中抽样,并用它来估计 p 值 和假设检验的 错误发现率(False Discovery Rates, FDR)

  • Bootstrap 可用于在简单情况下 检验零假设。例如,如果 $H_0: \theta=0$,则我们可以检查 $\theta$ 的置信区间中是否包含 $0$。

  • 我们也可以将 bootstrap 抽样用于零分布 (请参阅 Efron 和 Tibshirani 的书 《An Introduction to the Bootstrap》(1993, 第 16 章)),但这种做法与置换方法相比并不存在真正的优势。

下节内容:线性模型选择与正则化

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!