本文整理自《Journal of Hepatology》(IF=25.7)的一篇综述,原文标题为“Developing and validating clinical prediction models in hepatology – An overview for clinicians”[1],详细拆解了开发和验证临床预测模型的步骤。小咖将拆成几篇推文进行介绍,希望能为你的研究提供一些帮助。
上一篇文章介绍了前两个步骤:确定是否需要新的预测模型,确定模型的目的和预期用途,错过的小伙伴可以点击查看:构建临床预测模型的步骤详解。今天我们来讲第3个步骤:评估数据的质量和数量。
案例和数据集
本文使用梅奥诊所的原发性胆汁性胆管炎(PBC)数据集,建模示例是一个诊断模型,使用的数据和所有代码,可以通过以下链接获取:https://github.com/rickstra/PBCexample
步骤3:评估数据的质量和数量
一旦确定了预测模型要解决的问题,就可以将重点转向数据了,需要检查数据的质量和数量。首先,我们当然希望数据集包含临床感兴趣的所有预测因子[2]。不希望看到的是,仅仅因为数据集中没有某个预测因子,就构建了一个没有该因子的预测模型。例如,使用一个没有肝硬化信息的数据集,开发预测患者未来罹患肝细胞癌风险的模型,很可能不会被临床医生采用。
此外,我们还应该考虑临床实践中如何测量这些预测因子。有些预测因子是"免费获取"的,如年龄、性别、体重和家族史;有些预测因子则需要医生对患者进行体格检查或采集血液样本。
有些预测因子则需要更高级的测量方法,如多基因风险评分、组学数据或影像学数据。在临床实践中应用时,测量这些预测因子的成本可能过高,如果一个用于基层医疗的模型,包含的预测因子的测量成本过高,那么该模型可能永远不会被使用。通过考虑每个预测因子在临床实践中的来源,我们在选择数据集覆盖的预测因子时,就能评估哪些在实践中是可行的,这就增加了模型在临床使用的可能性。
在作为示例的PBC数据集中,"免费获取"的预测因子是年龄和性别;血小板、凝血酶原时间、白蛋白、胆红素、碱性磷酸酶、天门冬氨酸氨基转移酶、胆固醇和甘油三酯等预测因子需要血液样本;水肿、蜘蛛痣和肝肿大需要临床评估;铜水平需要尿液样本。
由于尿铜是唯一需要采集尿样的预测指标,我们选择将其排除在外;我们还排除了凝血酶原时间,因为在许多情况下,该检测已不再经常使用。另外,腹水患者不在该预测模型的目标人群之列,因此也不将其作为预测指标。因此,在临床实践中要使用这个模型进行预测,需要临床评估和血液样本。
提及预测模型可用的数据量,我们通常会考虑"有效样本量",它由数据集中的事件数而非总人数来决定(例如,在PBC数据集中,“有效样本量”是88例肝硬化事件,而非288例患者数)。在有10,000例患者的数据集中,3000例事件比只有10例事件有用得多。
在二分类结局的诊断模型中,有效样本量为事件数或非事件数,以最小者为准(例如,如果10,000名患者中有7,000例事件,则有效样本量为3,000)。在预后模型中,有效样本量由所关注结局的事件数决定。
构建模型所需的有效样本量,取决于预测模型的复杂程度。模型的"自由度(degrees of freedom)"是我们纳入到模型中需要估计的参数总数。我们要求的自由度越大,就需要更多数据来准确估计所有参数。
每个预测因子至少需要一个自由度,也可能需要更多。对于分类变量的预测因子,自由度是类别数减一。例如,在PBC数据集中,发生水肿有三个类别(无水肿;治疗起效的水肿;治疗无效的水肿),因此自由度为2。如果我们希望看预测因子中的连续变量与结局间的非线性关联(例如使用样条函数),则需要根据所需的非线性复杂程度增加自由度,预测因子之间的交互作用也需要额外的自由度。
过去常用的经验法则是,模型中每一个自由度至少需要10例事件。例如,我们使用的PBC数据集的有效样本量为88,表明自由度最多为9。最近,有研究者开发出了一种更有针对性的方法[3]。根据事件发生率和预设的模型复杂度(所有候选预测因子的自由度总数),基于模型性能良好所需的4项标准来估算所需的样本量。这4项标准是:
1. 样本量能否足够精确估计总体风险?
我们应该能够以一定的精度估算出事件发生率,比如误差在±5%以内。以二分类结局为例,样本量计算方法为:
例如,对于结局事件发生率为0.5的二分类结局来说,误差为0.05的条件下,样本量至少为385:
2. 多大的样本量可以使预测的平均绝对误差较小?
预测的绝对误差是指患者的预测风险与真实风险之间的绝对差值。真实风险永远不可知,但仍可使用近似公式估算出保持足够小平均绝对误差(如小于5%)所需的样本量。计算公式如下:
注:示例中结局事件发生率为0.3,预测因子数(P)为10,预测的平均绝对误差(MAPE)为0.05
3. 多大的样本量可以将过拟合降至最小?
过拟合是指模型过分匹配特定训练数据集,对训练集外的数据无良好地拟合及预测,易出现极端预测情况。例如,如果二分类结局的预测模型过拟合,那么对于结局概率高于平均值的个体来说,预测概率会过于接近1,而对于结局概率低于平均值的个体来说,预测概率会过于接近0。
过拟合主要发生在样本量过小时,特别是当候选的预测因子数量相对参与者数量或结局事件数量来说较大时。过拟合的后果是,模型的表面预测性能(从开发数据集本身来看)是乐观的(即过高),而在来自同一目标人群的新数据集中的实际预测性能较差。
收缩法(Shrinkage,也称为惩罚或正则化)可以通过减少模型的预测可变性来处理过拟合的问题,即减少极端预测情况(预测概率接近0或1)的发生。
Riley等人[4,5]建议在开发模型时,确定与预期较低收缩率(≤0.1,即收缩因子S≥0.9)相匹配的样本量和候选预测因子数量。对于二分类结局,计算样本量时需要知道候选预测因子数量、目标结局发生率,还需要评价模型性能的保守指标Cox-Snell R2(缩写为R2CS,接近0时,估计不可靠,可能出现过拟合;接近1时,反之)。计算公式如下:
确认删除