1、模型开发队列(Derivation cohort)
指的是用于模型开发的人群,此处的模型开发是广义上的概念,是指建立模型的全过程,包括变量转换、变量筛选、模型拟合以及内部验证。
1.1、内部验证(Internal validation):
内部验证是基于模型开发队列数据进行的验证,通常内部验证也是作为模型开发的一部分,其目的是检验模型开发过程的可重复性(Reproducibility),并且防止模型过度拟合以致高估模型的性能。内部验证是针对整个建模过程中的所有步骤,包括变量转换、变量筛选以及模型选择,甚至需要包括对数据缺失值的插补,而不是仅针对最终模型进行验证。而且,内部验证不等于直接在模型开发队列数据中评价模型表现,内部验证的实施通常需要借助数据分割或重抽样方法来实现。
1.1.1、随机拆分验证
模型的内部验证,最初的做法是将模型开发队列随机分为训练集(training set)和验证集(validation set)两部分(训练集和验证集是模型开发和评估过程中的技术术语:训练集用于模型拟合,验证集用于评估训练集拟合的模型的表现),通常两者比例为1:1、2:1、3:1、7:3。采用该方法将数据分为两部分进行“内部验证”。由于只有一部分的数据用于构建模型,因此模型相对不稳定,样本量较小的研究通常不适合这种方法。
1.1.2、交叉验证(cross-validation)
交叉验证又称K折检验,是随机拆分验证的改进。常用的有半折交叉验证和十折交叉验证。半折交叉验证法是将原始数据分成两部分,一部分用于建立模型,另一部分用于验证模型,然后调换两部分的数据并相互验证。K=10的十折交叉验证法是将开发队列随机分成十份,每次利用其中九份作为训练集建模,另一份作为验证集进行模型验证。用这种方法建立和验证模型十次,就可以构建一个相对稳定的模型。但交叉验证对于模型开发数据的使用效率不佳,所以逐渐被Bootstrap方法取代。
1.1.3、Bootstrap法
用Bootstrap方法进行内部验证,是通过在模型开发队列中进行有放回随机抽样,构造一个相同样本量大小的Bootstrap重抽样样本,并将此样本作为训练集,将模型开发队列(即原始数据集)作为验证集评价模型性能重复此过程n次,就可以得到模型在内部验证中的表现。(也可以描述为:传统的Bootstrap内部有效性验证方法是在原始数据集中有放回的随机抽取一定数量的样本建立模型,然后使用原始数据集对模型进行验证。通过500-1000次的随机抽样、建立和验证,可以得到500-1000个模型,并可以总结出模型的参数分布。因此,可以确定模型的最终参数值。实践证明,该方法得到的模型比前两种方法具有更高的稳定性。)
Bootstrap方法根据技术细节,又细分为简单Bootstrap法,加强Bootstrap法,和0.632法。简单法最为直观,直接将n次重抽样获得的模型表现进行平均作为内部验证表现;加强法通过计算模型表现在训练集和验证集中的差异,得到模型表现的高估值(optimism),并根据高估值调整模型表现;0.632法用另外一种方法来计算高估值,需要用到Bootstrap重抽样中未被选择的样本作为验证集。这些方法中,加强Bootstrap法最为常用。
1.1.4、 “内部-外部”交叉验证
“内部-外部”交叉验证类似于交叉验证,但是在拆分数据时不是随机分组,而是根据数据来源分组,这种方法多用于多中心数据开发队列。每次抽取一个中心的数据作为验证集,剩余数据作为训练集,重复此过程使每一个中心的数据都曾被用作验证集。最后将每次“内部-外部”交叉验证中获得的模型表现汇总,得到内部验证中的模型表现。其优势是在模型开发过程中利用了全部开发队列数据(因此仍属于内部验证),同时在内部验证中通过非随机拆分,实现了外部验证的效果。
2、模型验证队列(Validation cohort)
与模型开发队列相对应的是模型验证队列,通常特指独立于模型开发队列的外部验证队列,是研究设计层面的概念,模型验证使用开发队列还是验证队列决定了模型验证的性质是属于内部验证还是外部验证。
2.1、外部验证(External validation)
外部验证,是利用模型开发中没有使用过的数据来评估模型在新数据中的表现。相对于内部验证,外部验证更关注的是模型的可移植性(Transportability)和可泛化性(Generalizability),也即模型在与模型开发队列不同时间段,不同区域或不同人群中的表现是否与模型开发时一致。为了提高研究成果的质量并且使预测模型更有公信力,在模型开发和内部验证完成后,还要对开发的模型进行外部验证,并且将外部验证结果与模型开发过程在研究论文中一起报告。另外,利用现有数据对他人已发表的模型进行外部验证,也可以作为单独的模型外部验证类研究发表。
2.1.1、外部验证的类别
根据模型验证队列数据来源的不同,外部验证可以分为以下几类:
时段验证(Temporalvalidation),指的是利用与模型开发队列来源相同,但是时间段不同的数据对模型表现进行验证。最常见的是在模型开发过程中继续收集数据,在模型开发完成后,利用新收集的数据对模型进行外部时段验证。
空间验证(Geographical validation),指的是对模型在其他中心甚至其他国家的数据中的表现进行验证,所以验证队列可能采用与开发队列不同的纳入/排除标准或不同的预测因子和结局变量的测量方法。空间验证比时段验证能更好的检验模型的可转移性和泛化性。
领域验证(Domain validation),是指在不同的临床场景中对模型进行验证,例如模型开发时是基于医院的患者数据,在领域验证时可以利用社区居民数据检验模型在不同人群中的表现。
2.1.2对模型进行外部验证
外部验证需要将待验证的模型应用于验证队列数据中,计算出预测值并与观测值相比较,这就要求待验证的模型提供了完整的信息,包括预测变量的赋值方法、权重(回归系数),对于Cox模型还需要知道分组生存曲线或基础生存曲线。
外部验证最重要的准则,就是需要严格按照待验证的原始模型,计算风险评分(即风险因子乘以回归系数后相加得到的线性预测值)或预测概率,在验证步骤中不得对原模型进行调整,以确保验证结果的客观公正。
常用的验证方法包括,将根据原始模型计算的风险评分作为独立的风险因子,在验证队列中重新拟合模型。由此得到的回归系数就是校准斜率(calibration slope),若是Logistic回归,还可以得到校准截距(calibration-in-the-large)。若校准斜率小于1,表示模型在开发过程中有一定程度的过度拟合,也预示着模型预测值过于极端(低风险预测过低,高风险预测过高),且在外部验证中的区分度会低于模型开发时报告的区分度。校准截距用来比较预测概率的均值和观测到的事件发生的概率,若校准截距大于0,代表模型验证队列的事件发生率高于模型开发队列。此外,利用区分度C统计量(Concordance statistics,也叫一致性统计量)只依赖于风险评分的排序这一性质,此模型拟合中得到的C统计量的估计,就是原始模型在外部验证中的C统计量。最后,可通过计算验证队列中每个个体的绝对概率预测值和结局变量值,计算Brier得分,验证原始模型的校准度。
3、数据集的4种分类:
根据模型建立、验证过程中所用数据集的差异,将预测模型的验证过程分成4大类、6小类。涉及的数据集主要有3种情况:1、只有一个数据集可用,所有的数据都需要用来建模(对应分类中的1类,包括1a、1b);2、只有一个数据集可用,其中一部分用来建模,另一部分用来进行验证(对应分类中的2类,包括2a、2b);3、有多个数据集可用(对应分类中的3、4类)。
(1)1a型:数据有限,只有一个数据集可用。基于全部数据建立预测模型,然后使用完全相同的数据直接评估模型的预测能力。由于建模、验证使用统一数据集,通常会高估模型的预测效能。(2)1b型:数据有限,只有一个数据集可用。基于全部数据集建立预测模型,然后使用Bootstrapping或交叉验证等重复抽样技术评估预测模型的效能。重复抽样技术通常被认为是“内部验证”,是开展预测模型研究的基本条件与方法,在数据有限的情况下较为常用。
(3)2a型:数据相对较多,可被随机分成两组,一组用来建立预测模型,另一组用来评估模型的预测效果。虽然2a型研究被广泛应用,但是TRIPOD中认为改型研究并不优于1b型,因为2a型对样本利用率不高,可能导致建模和验证过程中的功效不足。(4)2b型:数据相对较多,可被非随机地分成两组,一组用于建立预测模型,另一组用来评估模型的预测效果。TRIPOD认为2b型研究优于2a型,因为它允许2个数据集之间的非随机变化,此时对模型外推能力的验证结果更为稳健。
(5)3型:数据较多,有2个以上数据集可用。使用一个数据集建立预测模型,另一个完全不同数据集用于评估模型的预测效果。比如开展前后两个独立的研究,一个用于建模,另一个用于验证。
(6)4型:仅针对现有(已发表)的预测模型,在独立数据集上评价其预测效果。
建模时,通常先从样本数据集中抽取部分样本用于建模,该部分样本称为训练集(training set)。建模完成后对模型进行验证时,先使用数据集中的保留样本进行模型的初步评价(internal validation),这部分样本称为测试集(testing set)。在单个数据集中表现良好的模型在其他数据集中的表现不一定令人满意,因此还需要在全新的数据集中对模型进行外部验证,这个数据集称为验证集(validation set)。