分享

顶级期刊BMJ最新临床统计指南:为什么我们需要验证预测模型?

 妙趣横生统计学 2024-04-18 发布于江苏

随着数据质量的增加和建模方法的成熟,临床预测模型成为目前医学研究的热点之一。医疗保健决策通常基于风险或概率,而评估临床预测模型的性能对于确定其在预期使用人群和环境中的预测准确性至关重要。为帮助研究人员对模型的预测准确性做出可靠而公正的评价,顶级医学期刊BMJ在2023年底陆续发布了三篇临床预测模型评估指南。我们也将用三篇推文系统地介绍这一指南。

现有的临床预测模型可以根据个体的多个因素(如年龄、家族史、症状、血压)特征来估算个人的预后风险。例如,ISARIC 4C模型用于估算急性COVID-19患者临床病情恶化的风险,或PREDICT模型用于估计早期乳腺癌女性患者五年的总体生存概率和乳腺癌特定生存概率。如今,心血管疾病预测有超过300 个模型, 新冠肺炎有600 个以上的预后模型。

尽管模型的数量在不断增加,但由于模型存在研究设计和分析方面(如样本量小、过度拟合)、报告不完整(难以对预测模型研究进行全面评估)以及没有明确联系临床决策等问题,能用于常规临床实践的模型寥寥无几。

目前,大多数模型都缺乏在具有代表性的目标人群和临床环境中的预测性能评估,这反而会模糊研究人员对模型价值的判断,以及是否可以进行下一阶段的评估(如干预或成本效益研究)或需要模型更新(如重新调试)。为解决这一问题,本篇推文将介绍模型评估的基本原理和方法,并阐述模型评估为什么要在多个阶段检查模型的预测性能。

1. 为什么要评估预测模型?

在模型开发(或训练)过程中,研究设计和数据分析方法会对模型在来自某些目标人群的新数据中的预测性能产生影响。模型在开发数据集中展现的预测性能往往非常出色,但在另一个数据集(即使是来自同一人群)中进行评估时就会大打折扣。其带来的后续结果是,模型的实用性明显降低,甚至可能产生负面医疗保健后果。因此,一旦开发出预测模型,就有必要对其性能进行充分且有意义的评估。

评估预测模型性能的过程通常被称为“验证”。然而,验证一词定义不清,经过验证的模型让人联想到其达到了某种预先设定统计或临床水平。同时,许多经过某种形式验证的预测模型仍然表现不佳,要么模型辨别能力大幅下降,要么是校准能力更差。此外,研究人员对确定预测性能是否足够的判定仍然是主观的。经常被忽视的是,许多验证研究也考虑到自身的样本量不足,对模型性能的估计不够精确。

所以,仅仅因为进行了一项标注为验证的研究,就将模型称为已经"验证"或"有效",是无效的,甚至可以说是一种误导。实际上,模型对不同的目标人群或不同的时间段和地点(如不同的中心或国家)的出现性能差异是理解的,一个模型不可能总是被证明有效的。

2. 模型开发评估:内部验证方法

在模型开发阶段,研究人员需根据可用数据的可用性、结构(如多数据集、多中心)和规模,决定如何最好地利用可用数据开发临床预测模型,并以无偏见、公平和信息丰富的方式评估其性能。当评估过程使用与模型开发相同的数据(或数据源)时,该过程被称为内部验证例如,"个人预后或诊断多变量预测模型论文的报告指南(TRIPOD)"中也要求作者说明模型的类型、所有模型建立程序(包括任何预测因子的选择)以及内部验证的方法"。

广泛使用的内部验证方法包括数据分割(Data splitting,使用数据的一个子集进行开发,其余部分用于性能评估)或重采样(Resampling)。对于非常庞大的数据集和计算密集型的模型程序,采用哪种方法进行内部验证可能需要谨慎考虑。然而,有些方法效率低、信息量小,尤其是在样本量较小的情况时,甚至可能导致结果有偏差、不精确、最终得出误导性结论。下文将详细介绍几种内部验证策略的优缺点。

2.1 表观性能(Apparent performance)

最简单的方法是使用所有可用数据开发预测模型,然后直接评估其在完全相同数据中的性能(通常称为表观性能)显然,这种方法是有问题的,尤其是当模型的复杂性和预测因子(需要估算的模型参数)的数量相较于数据集中的事件数量较多时(表明存在过度拟合的情况)。因此,模型的表观性能结果通常是一种乐观估计;这也意味着在随后新的数据中评估模型时,即使数据来自同一人群,性能通常也会低得多。对于小数据集而言,表观性能的乐观程度和不确定性可能很大,但随着用于开发模型的数据样本量的增加也会相应降低;但在大多数医疗保健研究数据集中,都或多或少存在乐观估计。

在BMJ指南的案例中,CRASH-2临床试验(n=20207,3089人在28天内死亡)使用14个预测因子(包括4个临床预测因子,年龄、性别、收缩压和格拉斯哥昏迷评分)和10个噪声预测因子(即与结局无关),建立了一个logistic回归模型,用于预测急性心肌梗死患者创伤后28天内的院内死亡率。探究人员将样本量设定为200到10000之间,从原始数据中采集了500个子集,并计算基于每个子集构建出的模型的表观性能。这里我们引入一个关键变量:C统计量,它是预测模型区分度的一个度量(即模型区分有无发生结局的程度,0.5 表示无法区分,1 表示能完全区分)。

图1显示了不同样本量子集下模型表观性能c与根据所有可用数据建立的模型性能值ĉ(0.815)的差异的大小和变化情况。对于小样本量,c-ĉ差异很大,而且变化很大,表观c统计量从0.7到略低于1不等。随着样本量的增加,表观性能的变异性会减小,对于非常大的样本量,表观性能的乐观程度可以忽略不计,因此可以很好地估计全部数据。

图1. 不同样本量子集下模型性能c与最大样本量下模型性能值ĉ(0.815)的差异的大小和变化情况

2.2 随机分割(Random split)

随机分割数据集常常被错误地认为是一种优势方法,其实不然。有研究者常常将同一数据源分割出的两个数据集标注为独立数据集,虽然患者并无重叠,但 "独立 "这一词却名不副实,因为它们实际是同一来源。

随机分割法会产生两个较小的数据集,而且通常整个数据集一开始样本量就不够大。如果开发数据集过小,则不利于构建模型,并增加过度拟合和产生不可靠模型的可能性;而如果测试集过小,就无法可靠、精确地估计模型性能。

图2.展示了样本大小对使用随机分割样本方法的预测模型性能(c 统计量)的影响。与之前相同的例子,利用14个预测因子(年龄、性别、收缩压、格拉斯哥昏迷评分和10个噪声预测因子)建立了预测急性心肌梗死患者 8天死亡率的logistic回归模型。这些模型在CRASH-2数据集分割出的500个子集中进行拟合和评估,其中70%的观测值分配给开发数据集构建模型,30%分配给测试集用于评估性能(例如,在子集样本量为n=200时,140个用于开发,60个用于评估)。

图2.不同样本量下采用7:3分割数据集对模型性能的影响

根据图2结果,对于小规模数据集来说,使用分割样本的方法效率不高、意义有限。与大样本性能相比,开发集的表观c统计量过大(即过于乐观),而且变化显著。而测试集评估(验证)的结果显示模型的c统计量要低得多,而且变异更大,与模型的大样本性能相比c统计量被低估了(再次体现由于数据太少,模型开发过程中存在过度拟合)。倘若分配给测试集的参与者人数较少时(例如,90:10 的比例),模型观察到的测试集表现的变异将进一步提高。

随着样本量的增加,开发集的表观性能与测试集性能之间的差异会减小。在样本量非常大的情况下,差异可以忽略不计。因此,在样本量较大时,利用所有数据进行模型开发并报告表观性能,或在样本量较小时,使用下文介绍的内部验证方法,数据拆分是不必要的。这一观点早在20多年前的方法学文献中就已提出,但目前仍未进入主流生物医学和机器学习文献。

对于复杂度较高的模型(如深度学习),如果不能对整个数据集进行重采样,则可能仍有必要采用分割样本的方法。有时,不同来源的数据集(例如来自两个电子健康数据库)由于某些限制而无法合并,也只能采用样本分割法;在这种情况下,指南强烈建议尽可能多地增加开发和测试数据集的样本量,否则开发的模型可能不稳定,测试性能也不可靠,从而导致整个过程徒劳无功。除了效率低下和变异性增加的问题外,随机分割数据集还会带来多重观察和旋转的危险。也就是说,如果在随机拆分数据集的测试部分对模型进行评估时发现性能不佳,研究人员可能会受到诱惑,进而重复分析,再次拆分数据,直到获得理想的结果,误导读者相信模型具有良好的性能。

2.3 重采样法:Bootstrapping(自举法)和k倍交叉验证法


与样本分割法不同,自举法是评估模型建立的“过程”(如预测因子的选择、估算、回归系数的估计),并估计在现有样本量下使用该建模过程的预期乐观程度;随后利用这一乐观估计值,对开发数据集所代表的群体的未来模型性能(如c统计量、校准斜率)进行稳定且近似无偏的估计;最后使用自举法对模型性能估计值和回归系数进行估计并调整乐观程度。

2.3.1 使用自举法进行内部验证

利用自举法计算乐观修正性能的步骤:

1.     利用全部原始数据建立预测模型,并计算表观性能
2.     从原始数据中替换抽取个体,生成自举样本(与原始数据大小相同
3.     使用自举样本建立自举模型(采用与步骤1相同的建模和预测因子选择方法):
      ①
确定该模型在自举样本上的表观性能(如c统计量、校准斜率)
      ②确定自举模型在原始数据中的性能(测试性能)
4.     计算乐观程度,即自举模型性能与测试性能之差
5.     多次重复步骤2至4(例如500次)
6.     将步骤5中的乐观估计值平均化
7.     从步骤1得出的表观性能中减去平均乐观值(来自步骤 6),得出乐观值修正后的性能估计值

在步骤2中产生的自举模型会有所不同(与根据整个数据建立的预测模型不同),但这些自举模型只用于性能评估,而不用于个体风险预测。有研究表明,只需200次自举,就可以精确估计出预期乐观值,且抽样变异性较小;在BMJ指南中,建议至少进行500次自举。自举过程的另一个好处是,乐观度校正后的校正斜率值可以作为原始回归系数(预测效应)的缩减因子,用于调整模型,避免过拟合。

从图三的Bootstrap correction结果中可见,自举法是一种比样本分割更高效的内部验证方法,可以获得最接近大样本性能的估计值。对于非常大的数据集,进行自举的计算负担可能会有困难;但在这种情况下,使用整个数据集来同时构建和评估模型的意义已经受限了,因为此时表观性能估计值已经接近模型的大样本性能。

2.3.2 使用k倍交叉验证进行内部验证

另一种重取样方法,k倍交叉验证法通常与自举法的性能相当。与自举法一样,所有可用数据都用于建立模型,所有可用数据都用于评估模型性能.。


k倍交叉验证的过程是将数据分成大小相等的"k"组。在k-1组中建立模型,并在其余组中评估其性能(如c统计量)。这一过程要进行k次,因此每次都要使用不同的 k-1组来开发模型,并使用不同的组来评估模型性能(图4)。k次迭代的平均性能将作为模型性能的估计值。在实践中,k值通常取5或10;应避免随意选择k值。重复k倍交叉验证(多次重复k倍验证,并对结果求平均值)通常会比k倍交叉验证更好。

图3. k倍交叉验证法原理

2.4 非随机分割(用于模型开发)

其他可供选择的拆分方法包括为时间(时间验证)或按位置(地理或空间验证)进行拆分。然而,这些方法会导致在模型开发过程中无法探索时间和地点特征对结果的影响。

在时间验证中,一个时间段的数据用于开发预测模型,而另一个(非重叠)时间段的数据用于评估其性能。不过,问题在于选择哪个时间段用于开发模型,哪个时间段用于评估性能。开发模型若使用较早时期的数据可能无法反映当前患者的特征。反之,如果使用较新的时间段来开发模型,就只能用较早时间段的数据来评估模型的性能,因此只能反映出历史患者队列的预测准确性。这两种方案都不能得到令人满意的结果,因此BMJ指南不建议在开发模型时采用时间验证法。例如,随着时间的推移,手术技术的改进使得更多的患者在手术中存活下来,因此模型预测的存活率会随着时间的推移而降低,这将影响模型的校准。BMJ建议应考虑采用持续更新模型的方法来防止校准漂移或使用动态预测模型。另一种选择是时空重新校准,即在整个数据集中估计预测效果,但在最近的时间窗口中估计基线风险。

地理或空间验证是将某个地理位置(或医院、中心)的数据用于开发模型,而另一个地理位置的数据用于评估模型。与上文讨论过的其他数据拆分方法一样,在大多数情况下,拆分数据的收效甚微,反而会错失利用所有数据开发出更具普遍性的模型的机会。然而,如果有来自许多地理区域(或中心)的数据可用于开发模型,其中包括大量的观测数据,而模型开发的计算负担又无法进行k倍交叉验证或自举,那么可以考虑排除一个或多个区域来评估性能。如果考虑拆分,应只拆分一次(即在取得良好结果之前不重复拆分),确保足够的观测量用于开发和性能评估。

3.模型开发评估:内部-外部交叉验证


来自大型电子健康记录数据库、多中心研究的数据越来越多地被提供并用于预测模型。研究人员可能会倾向于对数据进行某种形式的(地理或空间)分割,仅使用部分数据(例如,一组中心、一个国家的地区或一组研究)来开发模型,其余数据用来评估其性能。然而,内部-外部交叉验证是一种更有效、信息量更大的方法,它可以检验模型性能的异质性和普遍性。

3.1 内部-外部交叉验证

内部-外部验证利用了许多数据集的共同特点,即聚类(例如,按中心、地理区域或研究)。该方法不将数据分为开发组群和验证组群,先排除某一个分组(如中心、地理区域、研究),并对其余分组采用固定的模型建立步骤;然后在被排除的群组中对模型进行评估(即校准和区分度的估计值以及置信区间);重复这些步骤,每次取出一个不同的聚类,从而探究模型在不同聚类中的普适性和异质性(使用元分析技术;图 5)。森林图可以清晰展示内部-外部验证的结果,还能使用meta分析计算汇总的性能估计值。

例如,在开发ISARIC 4C模型以识别急性Covid-19成人临床恶化风险增加的个体时,就使用了内部-外部交叉验证。作者使用了来自英国九个地区(每个地区包括3066到15583个个体)的所有可用数据(n=74944)来开发模型。为了检查模型普遍性和异质性,在模型开发时对八个地区和第九个地区进行了内部-外部交叉验证。结果显示,该模型在不同地区的表现一致,C 统计量的点估计值在0.75到0.77之间,合并随机效应估计值为0.76(95%CI:0.75-0.77)。

图4. 通过森林图展示内部-外部交叉验证的结果

4.    使用新数据集进行评估:外部验证

部验证是指在一个新的数据集中对现有模型的性能进行评估的过程,其目的是证明模型在用于开发模型的数据之外(如在不同医院、不同国家)的通用性和可移植性例如,Collins和Altman等人对QRISK2和Framingham风险评分进行了独立的外部验证,结果表明Framingham存在系统性误判,在当前(当时)的治疗阈值下没有净获益,需要采用不同的治疗阈值。

有些期刊拒绝发表未经外部验证的模型开发研究,但这种观点已经过时,且存在误导性,可能会鼓励研究人员进行无意义的、误导性的外部验证(例如,非代表性方便样本、样本太小,甚至以外部验证为名进行数据分割)。事实上,如果模型开发数据集规模大且能代表目标人群(包括结果和预测因子测量),并且内部验证做得恰当,可能根本不需要立即进行外部验证。然而,在许多情况下,用于开发预测模型的数据可能无法反映模型所针对的目标人群,测量结果的差异或缺乏标准化(包括测量误差)、统计方法不完善、样本量不足、缺失数据的处理方法以及医疗保健的变化等因素都会影响模型在目标代表性人群中的应用效果。因此,大多数预测模型都需要在新数据中进行评估,以证明在什么情况下应该或不应该考虑使用这些模型或进一步评估其临床影响。

由于医疗服务的提供、患者的人口统计学特征以及当地的特殊性(如结果定义)都会影响预测模型的性能,因此进行外部验证也是有意义的。随着时间的推移,人口特征或医疗保健措施会发生变化,对样本人群进行持续或定期评估有利于识别和处理模型性能是否发生劣化。不过,研究人员也可以考虑在完全不同的人群(如不同的中心或国家)或环境(如初级/中级医疗或成人/儿童)中进行外部验证,进而拓展模型在其他人群中应用。

总体来说, BMJ期刊建议在开发模型时使用所有可用数据来建立模型,同时进行有意义的内部或内部-外部交叉验证。这也意味着在大多数情况下外部验证研究应随后在模型开发研究之外进行,特定预测模型的每个预期目标人群或环境都应有相应的验证工作。越多的外部验证研究显示良好(或可接受)的性能,模型就越有可能在其他未经测试的环境中发挥作用。

4.1 亚组评估:跨人群评估模型性能

对模型性能的评估通常侧重于数据集层面的性能测量(例如,单个c统计量或单个校准图或测量值),以此作为预期目标人群的代表。虽然量化和报告这种性能非常重要,但仍应共同努力探索潜在的异质性,并深入研究模型性能的普遍性。研究人员不应只强调其模型在哪些方面表现良好,还应开展更深入的研究并报告研究结果,找出模型预测准确性较差的实例、环境和人群,因为使用这样的模型反而可能带来负面医疗服务后果。

除了上文提到的探索不同中心或群组间的异质性表现外,BMJ指南还鼓励研究人员评估模型在其他关键亚群体(如性别、种族/民族群体)中的表现,尤其是当样本量足够大,且数据收集方式适当,能代表模型适用人群时更是如此。例如,在对QRISK2和Framingham风险评分进行外部验证和比较时,Collins和Altman证实Framingham风险评分存在误判,对所有年龄段的男性都存在系统性高估,而QRISK2则对年龄较大者存在小幅误判。

小结

评估预测模型的性能至关重要,验证研究必不可少。本篇推文介绍了如何充分利用现有数据来开发预测模型,以及如何评估从开发到外部验证的整个过程。一般来说,应避免在开发模型时拆分数据,因为这样会丢弃数据,导致模型更加不可靠。相反,应充分利用所有能代表模型实施的预期目标人群的数据集建立更优质的模型,并利用重采样方法进行内部验证,并利用内部-外部验证来评估模型的性能和跨群组的通用性。在后续研究中应考虑进行外部验证研究,且最好由独立研究人员进行,以评估模型在具有代表性的数据集中的表现。本系列推文的下一篇将介绍如何开展外部验证研究。

参考资料:

1. Collins G S, Dhiman P, Ma J, Schlussel M M, Archer L, Van Calster B et al. Evaluation of clinical prediction models (part 1): from development to external validation BMJ 2024; 384 :e074819 doi:10.1136/bmj-2023-074819.

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多