交叉验证和bootstrap在internal validation 中的应用
Posted SPSS学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交叉验证和bootstrap在internal validation 中的应用相关的知识,希望对你有一定的参考价值。
背景:internal validation 和external validation是预测模型评价中两个重要的问题。其中internal validation是external validation的前提。仅利用构建模型的数据来评价internal validation常常会高估模型。故介绍两种用于评价internal validation的模拟方法,使得模型评价的结果更加可靠。
目的: 通过比较评价指标可信区间覆盖率来评价两种模拟方法的优劣。CI覆盖率越高,方法越好。即如果CI包含真值的次数越多,说明方法越好。
说明:我们用AUC或者AP作为模型评价的指标。
模拟方法1:交叉验证
交叉验证主要有:10-fold 交叉验证、10×10 交叉验证和Many times’ 交叉验证三种。
A. 10-fold 交叉验证
1) 首先,我们利用交叉验证来得到AUC/AP的点估计。将样本分为多份。例如分为10份。
2) 划分训练集和测试集:每次任取其中的9份作为训练集,剩余1份作为测试集。用训练集来得到对应模型,然后应用模型得到训练集的预测值。
3) 重复步骤2,得到每一个样本的预测值。基于观察值和预测值可以计算出此模型的AUC/AP
4) 最后,利用步骤三得到的点估计和R中的APtool包可以得到AUVC/AP的区间估计。
B. 10×10 交叉验证
将10-fold 交叉验证拓展到 10×10 交叉验证。
1) 重复10-fold 交叉验证中的步骤1-3 多次. 例如,重复步骤1-3十次,那么我们可以得到10个AUC/AP。
2) 计算这10个AUC/AP的平均值,并将其作为点估计。
3) 最后,利用点估计值和APtool来得到区间估计。
C. Many times’ 交叉验证
将10-fold 交叉验证拓展到a thousand times’交叉验证。
1) 重复10-fold 交叉验证中的步骤1-3 多次. 例如,重复10000次,那么我们可以得到10000个AUC/AP。
2) 10000个AUC/AP即可以得到AUC/AP的分布
3) 最后,取百分位数来作为CI (percentile method)例如,取2.5%-97.5%的值作为95%CI。
模拟方法2:Bootstrap
Bootstrap方法主要有:regular法, 632法和632+法。
首先计算apparent 模型:基于所有样本数据得到我们的预测模型,同时将所有样本数据作为测试集计算预测值。可以看到,此模型的训练集和测试集均为所有样本数据,这样的模型叫做apparent模型。
2.1 Regular
1) 划分训练集和测试集:将bootstrap抽样作为训练集,测试集为所有样本数据。Bootstrap抽样为:在样本中重复抽样n次,n为样本容量。取n次抽样结果中被抽中的所有观测值作为训练集。
2) 用训练集构造模型,然后应用模型分别计算训练集和测试集的预测值。通过观测值和预测值可以计算出训练集和测试集的AUC/AP
3) 重复步骤2多次,例如10000次,那么我们可以得到10000个训练集和测试集的预测值,由此可以得出10000个训练集和测试集的AUC/AP
4) 利用公式Apparent - average(bootstrap-test)来得到AUC/AP的估计值
5) 利用APtool计算可信区间。
2.2 632法
1) 划分训练集和测试集:将bootstrap抽样作为训练集,未被抽中的样本作为测试集。
2) 用训练集构造模型,然后应用模型分别计算训练集和测试集的预测值。通过观测值和预测值可以计算出训练集和测试集的AUC/AP。
3) 重复步骤2多次,例如10000次,那么我们可以得到10000个训练集和测试集的预测值,由此可以得出10000个训练集和测试集的AUC/AP
4) 利用 0.368*Apparent +0.632*average(test) 得到点估计。
5) 利用APtool计算可信区间。
2.3 632+法
1) 重复632法中的步骤1-3
2) 利用 (1-w)*Apparent +w*average(test)来得到AUC/AP的点估计值。为权重w= .632 / (1-.368* R), 其中R (test-apparent) /(“no information” -apparent )
3) ‘no information’ 的AUC值通过取apparent的平均值来近似。
4) 利用 APtool计算可信区间。
总结:
1. 交叉验证和bootstrap的不同之处在于划分训练集,测试集的方法以及计算评价指标点估计的方法。
2. 0.632法的取名是因为bootstrap在所有样本中重复抽样n次后,大约可以取到样本中63.2%的观测。
3. Bootstrap的regular法中用所有样本数据作为测试集,而其余两法则是用bootstrap未选中的样本作为测试集。
4. 模拟的目的是通过多次改变训练集和测试集来得到AUC/AP。避免仅仅通过评价一次训练集和测试集导致对模型的高估。
5. 得到可信区间后可以多次重复以上方法,最后得到多个可信区间,并与真实AUC/AP值比较,得到CI覆盖率,由此可以得到表现更佳的模拟方法。
参考文献:
Internal validation of predictive models: Efficiency of some procedures for logistic regression analysis
(点击获知详情),购买方式如下:
方式一:在京东/淘宝/当当搜索 “菜鸟学SPSS数据分析”
方式二:扫描下方二维码,即可购买~
学堂君的历史合辑:
欢迎添加:
【数据分析服务】请点击
【社群服务助手】请点击
【加入团队】请点击
以上是关于交叉验证和bootstrap在internal validation 中的应用的主要内容,如果未能解决你的问题,请参考以下文章