社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

25年Lancet Digit Health因果深度学习文章-4

灵活胖子的科研进步之路 • 9 月前 • 231 次点击  
文章首页
文章首页
原文思维导图
原文思维导图

结果

初始数据库包含410万条记录,最终筛选出14513例住院病例(对应14403名患者)纳入推导队列,这些患者共接受了23933例心脏手术。该队列患者的中位年龄为56岁(四分位距45-65岁);在14513例病例中,女性5515例(占38.0%),男性8998例(占62.0%)(详见表格)。心脏手术相关急性肾损伤(CSA-AKI)的发生率为21.0%(14513例中3047例),其中512例(占3.5%)为重度CSA-AKI。在发生CSA-AKI的患者中,1715例(占56.3%)在术后48小时内发病(详见表格)。在初始诊断为轻度CSA-AKI的2710例患者中,848例(占31.3%)进展为更严重的分期。

外部验证数据集包含来自三家医疗机构的20552名患者(对应20813例住院病例),分别是南京鼓楼医院、中国人民解放军总医院第六医学中心和第七医学中心。该数据集患者的中位年龄为57岁(四分位距45-66岁);在20813例病例中,女性8608例(占41.4%),男性12205例(占58.6%)。此外,为进行跨国验证,我们还纳入了来自MIMIC-IV数据库的14229名患者和来自eICU数据库的13794名患者。

REACT模型在整个数据集上完成训练后,将1328个输入变量(详见附录第18页)精简为仅6个预测CSA-AKI的关键因果变量,即年龄、血清肌酐、尿素氮、尿酸、乳酸脱氢酶和肌酸激酶。在内部验证集中,对于所有预测窗口(6小时、12小时、24小时、48小时)的重度CSA-AKI预测,REACT模型的平均受试者工作特征曲线下面积(AUROC)达到0.930(标准差0.032);其中,48小时预测窗口的AUROC为0.949(95%置信区间0.945-0.953),12小时预测窗口的AUROC最高,达0.971(95%置信区间0.967-0.974);精确率-召回率曲线下面积(AUPRC)则在48小时窗口的0.663(95%置信区间0.647-0.677)至6小时窗口的0.739(95%置信区间0.712-0.761)之间波动(见图3及附录第23、25页)。

图3:模型性能
图3:模型性能
  • A板块展示了各模型预测术后24小时内任意分期急性肾损伤(AKI)的受试者工作特征曲线(ROC曲线)与精确率-召回率曲线(PRC曲线)。
  • B板块展示了各模型在三项任务(预测任意分期AKI、中重度AKI、重度AKI)及四个不同预测窗口(6小时、12小时、24小时、48小时)下的受试者工作特征曲线下面积(AUROC)与精确率-召回率曲线下面积(AUPRC)。 图中阴影区域代表各性能曲线的95%置信区间(CI)。

在预测术后24小时内重度CSA-AKI时,REACT模型的AUROC为0.969(95%置信区间0.966-0.972),AUPRC为0.725(95%置信区间0.709-0.741)。当选择概率阈值使假发现率接近0.671时,该模型在预测术后24小时内重度AKI时,敏感性为0.864、特异性为0.955、F1分数为0.476(详见附录第27页)。

在更短的预测窗口(6小时、12小时)中,REACT模型仍保持优异性能。例如,在内部验证中,预测6小时内重度CSA-AKI的AUROC为0.970(95%置信区间0.965-0.975),预测12小时内重度CSA-AKI的AUROC为0.971(95%置信区间0.967-0.974)(详见附录第23页)。外部队列中也呈现类似趋势,仅48小时预测窗口的鉴别能力略有下降(AUROC为0.904,95%置信区间0.902-0.905)。

精确率-召回率曲线下面积(AUPRC)为0.606(95%置信区间0.602-0.610)(详见附录第24、26页);但该模型在所有预测窗口中整体表现优异,其中6小时窗口的受试者工作特征曲线下面积(AUROC)为0.964(95%置信区间0.961-0.966),12小时窗口为0.964(95%置信区间0.963-0.966),24小时窗口为0.964(95%置信区间0.963-0.965)(详见附录第24页)。

在使用全部变量训练的情况下,REACT模型的性能优于所有其他方法(通过两两德龙检验比较,REACT与其他模型在AUROC和AUPRC上的差异均具有统计学意义,p<0.0001)。其他方法的性能如下:

  • 多层感知器(MLP):预测术后24小时内重度心脏手术相关急性肾损伤(CSA-AKI)的AUROC为0.913(95%置信区间0.908-0.918),AUPRC为0.370(95%置信区间0.353-0.390);
  • 长短期记忆网络(LSTM):AUROC为0.881(95%置信区间0.875-0.888),AUPRC为0.397(95%置信区间0.379-0.415);
  • Transformer模型:AUROC为0.943(95%置信区间0.939-0.947),AUPRC为0.591(95%置信区间0.576-0.605)(详见附录第23、25页)。

此外,在预测术后24小时内任意分期CSA-AKI及中重度CSA-AKI时,REACT模型的准确性均有提升(见图3及附录第23、25页):

  • 预测任意分期CSA-AKI的AUROC为0.892(95%置信区间0.889-0.895),AUPRC为0.637(95%置信区间0.629-0.646);
  • 预测中重度CSA-AKI的AUROC为0.936(95%置信区间0.932-0.940),AUPRC为0.671(95%置信区间0.658-0.680)(见图3及附录第23-25页)。

敏感性范围为0.716至0.876,特异性范围为0.780至0.959(详见附录第27页)。在重度急性肾损伤(AKI)预测方面,模型校准度良好(布里尔分数=0.064;详见附录第47页)。

在内部验证中,REACT模型识别心脏手术相关急性肾损伤(CSA-AKI)的时间平均比基于指南的临床诊断早14.65小时(标准差3.17)。 值得注意的是,对于术后24小时内发生的AKI事件,REACT的检测速度快约45.4%(模型检测耗时10.43小时,临床诊断耗时19.10小时);对于术后48小时内发生的AKI事件,该模型的识别速度快57.7%(模型识别耗时13.57小时,临床诊断耗时32.09小时),为早期干预争取了关键时间(详见附录第22页)。在外部验证中,REACT检测CSA-AKI的时间平均比基于指南的临床诊断早16.35小时(标准差2.01)(详见附录第22页)

随着AKI事件发生时间的临近,模型的预测准确性逐步提升:在内部验证中,对于706例AKI病例,模型提前48小时成功预测了535例(占比75.8%),提前24小时成功预测了600例(占比85.0%)。对所有预测不准确的案例进行深入分析后发现,在1440例预测失误案例中,495例(占34.4%)是由于AKI在评估时间后24小时内延迟发病,118例(占8.2%)是由于AKI在评估时间后24-48小时内发病;730例(占50.7%)为实际假阳性案例(未达到相应诊断阈值),这一权衡设计旨在避免警报疲劳(详见附录第53页)。

在外部验证数据集上,我们的模型性能持续优于其他对比方法,平均受试者工作特征曲线下面积(AUROC)达0.920(标准差0.036;详见附录第24、26、28页)。

表:患者基线特征
表:患者基线特征

在重度急性肾损伤(AKI)预测方面,模型校准度同样良好,布里尔分数(Brier score)为0.062(详见附录第47页)。值得注意的是,尽管外部验证集使用的是全新数据,但REACT模型仍展现出最优性能,且性能波动极小(见图3及附录第24、26、28页),AUROC(受试者工作特征曲线下面积)的中位损失仅为0.008(四分位距0.006-0.012)。这一性能显著优于其他对比模型——多层感知器(MLP)的AUROC损失为0.152(四分位距0.143-0.164),长短期记忆网络(LSTM)为0.028(四分位距0.022-0.031),Transformer模型为0.031(四分位距0.023-0.041)。

在MIMIC-IV和eICU数据库中,我们的模型同样表现出稳健性能,平均AUROC达0.867(标准差0.073)。在这两个数据库的24小时预测窗口中:MIMIC-IV数据库中,预测任意分期AKI、中重度AKI、重度AKI的AUROC分别为0.752、0.883、0.943;eICU数据库中,上述三类AKI预测的AUROC分别为0.806、0.898、0.950(详见附录第52页)。

实验表明,若仅使用筛选出的6个变量,采用常规神经网络(如多层感知器、LSTM、Transformer)单独训练(而非我们的因果深度学习策略),会导致AUROC和AUPRC(精确率-召回率曲线下面积)显著降低(详见附录第23-26页)。以预测术后24小时内重度心脏手术相关急性肾损伤(CSA-AKI)为例,这种单独训练方案的性能较REACT下降了11%——REACT在内部验证中的AUPRC达0.725(95%置信区间0.709-0.741)。由此可见,我们的因果深度学习方法通过整合因果发现,不仅提升了模型泛化性,还降低了过拟合风险。

在所有人口统计学亚组和手术类型亚组中,REACT均保持稳健性能,仅在心包切除术亚组中出现轻微性能下降(详见附录第30-38页)。2023年6月至10月开展的前瞻性研究中,我们纳入了754例接受大型心脏直视手术的患者(详见附录第20、21页)。研究期间,129例患者发生CSA-AKI,REACT在所有预测窗口中提前识别出其中121例(占比93.8%),敏感性达0.825,特异性达0.811。在这些患者中,6例发展为重度CSA-AKI,REACT成功预测出5例,阳性预测值为0.608,阴性预测值为0.998(见图4)。当预测准确时,REACT系统能为临床医生提供平均16.64小时(标准差0.78)的干预提前量。敏感性分析(如重复入院病例、仅基于肌酐的诊断标准、近期肌酐检测——定义为每个预测时间点仅使用最新血清肌酐值而非累积值、采样间隔调整等)结果证实了主要研究结论的稳健性(详见附录第40-43页)。

讨论

REACT整合了深度学习技术与因果发现的优势,为CSA-AKI预测提供了切实可行的解决方案。一方面,该方法借助神经网络的强大能力,基于患者动态变化的临床状态生成精准的实时预测;另一方面,通过因果发现,REACT能评估变量的因果效应,提炼出关键因果变量——这不仅大幅减少了预测所需的输入变量数量,还提升了神经网络的泛化性。仅用6个变量就在7个不同队列中实现可靠预测,REACT成功填补了从预测模型到临床应用的鸿沟。

为验证该方法的有效性,我们通过中国不同地区的5个队列及美国的2个国际数据库对REACT进行了性能验证:外部测试中,模型识别CSA-AKI的时间较临床诊断提前16.35小时;内部验证中,提前时间为14.65小时。此外,我们还开发了用户友好的网页版计算器和小程序,并根据正在进行的前瞻性应用研究中临床医生的反馈持续更新优化。

对高风险患者的AKI进行早期检测,有助于在并发症出现前及时干预。例如,术后及时应用《肾脏病:改善全球预后》(KDIGO)护理套餐(如优化容量和血流动力学、避免肾毒性物质、控制高血糖等),可降低高风险患者的CSA-AKI发生率[3]。传统CSA-AKI风险评分通常基于既往知识,仅使用少量变量计算,丢弃了电子健康记录中大量有价值的数据[9,32]。这类方法未纳入许多持续变化的生命体征、实验室检查及其他临床特征,因此无法捕捉患者病情的突然变化——而这种变化在CSA-AKI患者中十分常见,导致难以实现AKI的及时预测。这些传统模型在各自内部验证队列中的AUROC仅为0.69-0.83[5]。Demirjian及其团队[10]开发的模型采用术后实验室检查结果和时间信息,预测72小时内中重度AKI,AUROC为0.876;但该模型需在术后中位10小时才能应用,可能延误干预时机。

图 4:前瞻性验证 该图展示了 REACT 模型在前瞻性验证中的性能。子图呈现了预测 24 小时内急性肾损伤(AKI)发生风险的受试者工作特征曲线(ROC 曲线)与精确率 - 召回率曲线(PRC 曲线),图中阴影区域代表各性能曲线的置信区间(CI)。
图 4:前瞻性验证 该图展示了 REACT 模型在前瞻性验证中的性能。子图呈现了预测 24 小时内急性肾损伤(AKI)发生风险的受试者工作特征曲线(ROC 曲线)与精确率 - 召回率曲线(PRC 曲线),图中阴影区域代表各性能曲线的置信区间(CI)。

相比之下,REACT在术后任意时间点均可使用,且准确性更高:预测24小时内中重度AKI时,内部验证AUROC达0.936,外部验证达0.932,显著优于传统模型,同时还保持了较高的阳性预测值和阴性预测值。

LSTM等深度学习方法擅长识别复杂关系,且能处理电子健康记录中的高维时间序列数据——这些都是传统风险评分难以实现的。但这类方法通常需要极大规模的输入数据集,限制了其临床应用。例如,Tomašev及其团队[21]开发的实时AKI预测模型,使用了数百个变量的62万条数据记录,虽体现了深度学习的优势,却也暴露了其对海量数据输入的强依赖性。在实际应用中,单个特征的缺失或数据结构的变化都可能导致模型整体性能下降;此外,数据分布不匹配也会影响模型泛化性。在Tomašev的研究中,94%的受试者为男性;后续在性别均衡队列中进行的验证, 在女性群体中的性能有所下降[22]。相比之下,REACT模型将长短期记忆网络(LSTM)的优势与因果发现技术相结合,提炼出心脏手术相关急性肾损伤(CSA-AKI)的因果变量,从而降低了对大量变量输入的依赖。该模型在跨中心、跨国别的外部验证中均表现出稳健性能,解决了现有深度学习模型在临床应用中的核心局限之一。

此前开发的大多数模型仅聚焦于需肾脏替代治疗的重度急性肾损伤(AKI)。然而,即便是轻度CSA-AKI(血清肌酐轻微变化),也会导致患者预后恶化[6,10,33]。本研究显示,31.2%的轻度CSA-AKI患者会进展为中重度AKI,这凸显了早期检测轻度CSA-AKI的重要性。此外,轻中度CSA-AKI患者的临床症状较隐匿,易被临床医生忽视,相较于重度AKI患者,这类患者可能从深度学习模型中获益更多。正如兰克(Rank)及其团队[19]所指出的,轻中度CSA-AKI患者的临床症状往往较轻微,容易被医生忽略;医生通常只能识别出重度AKI或需透析的病例,整体敏感性低至0.594。在他们的实验中,深度学习模型在AKI预测方面的表现优于经验丰富的医生,但仅局限于中重度AKI。与之相反,REACT模型能精准预测所有分期的AKI(包括轻度病例)。考虑到该领域相关研究的稀缺性,这一发现具有特殊重要意义。此外,尽管当前模型聚焦于术后预测,但REACT框架可基于基线特征调整,用于术前风险评估。未来研究还可探索阈值λ的自动超参数选择方法,以最大限度降低手动调参带来的过拟合风险。

我们的因果发现方法假设所有主要混杂因素均已被测量。这一假设在格兰杰因果分析中十分常见。在临床场景中,这只是一种近似处理——总会存在一些未被捕捉到的因素(如遗传易感性、手术操作中的细微差异等)。不过,我们已尝试纳入一套全面的围手术期变量,以最大限度减少未测量因素的影响。此外,模型在外部验证中的成功表明,未测量的混杂因素并未严重影响其泛化性;若这些因素产生了关键影响,那么模型在新数据上的表现理应较差,其受试者工作特征曲线下面积(AUROC)和校准度会显著下降。

本研究具有多项显著优势。首先,据我们所知,本研究使用的数据集是目前用于CSA-AKI预测的最大规模数据集。研究基于中国人民解放军总医院5家医疗中心的大量连续患者数据开展,这些医疗中心均为三级甲等医院——中国医院分级体系中的最高级别,能提供最全面、专业的医疗服务。这些医疗中心接收来自全国各地的患者,患者地域分布与中国人口密度分布相符。这一庞大的数据集为稳健的内部和外部验证提供了支持,提升了研究结果的泛化性与可靠性。其次,REACT是首个将深度学习与因果模型用于心脏手术相关急性肾损伤(CSA-AKI)预测的模型,为该领域树立了新基准。此外,我们的模型在不同亚组中均表现出稳定性能,证实了其在多样临床场景中的稳健性与适应性。

然而,本研究仍存在局限性。首先,由于研究为回顾性设计,前瞻性验证数据较少,研究结果可能存在固有偏倚。尽管外部验证结果良好,但仍需前瞻性随机对照试验来证实其临床有效性。其次,尽管我们通过因果深度学习方法及反事实推理识别因果变量,提升了模型在外部验证中的实用性与稳定性,但此处的“因果关系”更侧重于预测能力,而非CSA-AKI发生的根本生理机制。若存在未被测量的混杂因素,因果归因可能出现偏差,因此解读研究结果时需保持审慎。未来探索CSA-AKI发病机制,还需开展更多与生理机制相关的实验及额外的随机对照试验。此外,模型训练未纳入部分术中变量:例如,虽考虑了术中输血情况,但未统计红细胞输注单位数量,这可能给结果带来偏差;类似地,中性粒细胞明胶酶相关脂质运载蛋白(NGAL)、胰岛素样生长因子结合蛋白7-金属蛋白酶组织抑制剂2(TIMP-2·IGFBP7)等新兴生物标志物,因常规数据中获取率较低而未被纳入,但我们的模型框架可轻松兼容未来对这些指标的整合。心包切除术亚组中,由于样本量较小且患者血流动力学特征特殊,模型对该亚组任意分期AKI的预测准确性较低;未来研究中扩大该亚组样本量,或可提升模型在该场景下的稳定性与泛化性。最后,本研究数据集主要来自亚洲人群:尽管我们已在更具多样性的美国数据集(MIMIC-IV和eICU)中验证了REACT模型,但仍需在其他人群中进一步验证,以全面评估模型的泛化能力。

综上,本研究提出了一种创新性模型,通过整合深度学习与因果发现,可提前48小时动态、精准地预测CSA-AKI。该模型将所需输入变量缩减至6个,且在不同队列中均表现出良好泛化性——这两点对于人工智能模型的临床应用至关重要。REACT模型在CSA-AKI早期预测中的成功,也凸显了因果深度学习在更广泛领域的应用潜力,有望通过更早干预改善患者预后。

相关课程推荐

课程更新-基于AI辅助Python/R编程的机器学习与因果推断在医学研究中的应用培训班

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187501