唐 雯, 高峻逸, 马辛宇,3, 张超贺, 马连韬,3, 王亚沙,4△
(1. 北京大学第三医院肾内科, 北京 100191; 2. 北京大学高可信软件技术教育部重点实验室, 北京 100871; 3. 北京大学信息科学技术学院, 北京 100871; 4. 北京大学软件工程国家工程研究中心, 北京 100871)
腹膜透析是终末期肾病的重要替代治疗手段,作为居家治疗的替代治疗方式,具有较好的成本效益比,在国内外得到了广泛应用[1]。但进行腹膜透析治疗的终末期肾病患者病情复杂,常合并多种合并症和并发症,需要专业医护人员长期持续的照顾。在治疗和管理腹膜透析患者的过程中,需要根据患者随访过程中的各种变化因素,全面合理地进行病情评估,并据此给予具有针对性的个体化治疗方案。
随着医疗信息化程度的不断深入,各个医院已经积累了与患者健康相关的大量数据。基于这些数据进行分析和挖掘,建立患者预后预测模型成为近年来医学与信息学交叉研究的热点方向[2]。目前对于腹膜透析患者的预后预测研究多为基于基线数据的统计学回归分析模型,该模型由于难以描述患者队列数据中的径向关系,且难以捕捉数据之间复杂的非线性关系,而使其性能受限。
近年来,数据挖掘与机器学习技术蓬勃发展,特别是深度学习模型因其在计算机视觉、语音识别、自然语言处理、人机博弈等领域取得的显著应用效果而获得了广泛关注[3]。一些学者尝试将深度学习应用于医疗数据分析中,并在疾病自动诊断[4-5]、相似病人检索、医学影像数据分析[6]等方面获得了长足的进展。循环神经网络(recurrent neural network,RNN)及其变体门控循环单元(gated recurrent unit,GRU)作为典型的深度学习模型,可以灵活地处理变长时序数据,挖掘数据中深层的非线性关系,抽取数据中隐藏的模式,很适合腹膜透析患者的队列数据分析场景,较之回归分析模型可能会产生更加优越的预后预测性能。目前,尚未见基于循环神经网络的腹膜透析临床预后预测研究,因此,本研究基于北京大学第三医院腹膜透析门诊的常规诊疗数据,构建死亡风险预测模型,并与传统逻辑回归(Logistic regression,LR)模型进行性能比较,初步探讨人工智能预后模型的相关发现。
本研究纳入2006年1月至2018年1月在北京大学第三医院肾内科腹膜透析门诊长期随访的腹膜透析患者共计1 118人(数据处理筛选后656人),所有患者随访截止至2018年10月31日。所有研究资料来自北京大学第三医院腹膜透析门诊的常规诊疗数据,数据包括患者在开始透析时的基线数据、随访数据和预后数据。
基线数据包括患者的人口学资料、肾脏病原发病、在透析开始时的合并症状况(糖尿病、心力衰竭、肺部感染、冠心病、心肌梗死、脑出血、脑梗塞、截肢病史等),以及透析开始时的血压、化验检查(血肌酐、血尿素、血红蛋白、血白蛋白、血钙、血磷、甲状旁腺激素等)信息。
随访数据包括在治疗过程中患者随访检查的化验数据(血常规、肾功能、血白蛋白、电解质、血钙、血磷、血甲状旁腺激素、血糖、肝功能、血尿酸)、体重、血压等指标,以及患者在随访过程中所出现的各种急、慢性合并症。
预后数据指患者在随访结束时的状态及时间,包括死亡及死亡原因(排除非正常死亡,即经济原因放弃治疗或自杀患者)、转血液透析及其原因、肾移植、存活、转其他腹膜透析中心或失访。
按照医学指标(下称特征)所衡量的患者的不同身体情况,对所有用于本次研究的数据特征进行分类,详情如表1所示。
表1 腹膜透析相关医疗特征Table 1 Clinical features of peritoneal dialysis
WBC, white blood cell; Hb, hemoglobin; ALB, albumin; Cr, creatinine; K, blood potassium; Na, blood sodium; Cl, blood chlorine; CO2CP, carbon-dioxide combining power; Glu, blood glucose; hs-CRP, high-sensitivity C-reactive protein; Ca, blood calcium; P, blood phosphorus; iPTH, intact parathyroid hormone.
本研究的结局变量为腹膜透析患者在数据记录时刻的死亡风险状态(riskt),模型的预测结果为患者在相应时刻的死亡风险(概率)。利用在第1.1小节中提到的患者所有历次的数据记录对死亡风险进行预测。具体而言,将历次随访数据合并为数条时间记录序列(record1,record2,…,recordt),而预后数据主要用于提供患者的身体状况信息,用于计算结局变量。
对预后信息的处理如图1,对观察窗口内死亡患者,取死亡时间之前一年内时间段就诊为高死亡风险状态,记结局变量riskt=1;两年之前为低死亡风险状态,记结局变量riskt=0;中间为死亡风险不确定状态,记结局变量riskt=uncertain。对观察窗口内存活患者,将观察窗口截止处一年内设为不确定状态,一年以前记录全部设为低风险状态。
综上,本研究综合考虑了base,record1,record2, …,recordt的信息并对riskt给出了一个概率性的预测。
本研究排除了在某项特征或指标下没有数据记录的所有患者,且只选取出现于至少60%患者中的特征纳入预测模型。对记录中的缺失值,用该特征缺失时间点之前最近的数据进行补全。
图1 健康风险状态标签的定义Figure 1 Definition of health risk labels
其中,函数σ为激活函数。已知当前时间戳下的真实死亡风险为riskt,则定义交叉熵损失函数为:
图2 循环神经网络模型Figure 2 Recurrent neural network
1.4.2门控循环单元 门控循环单元(gated recurrent unit,GRU)是RNN的一种变体[8],其大体时序信息传播结构与RNN模型相似(图3)。σ和tanh分别为神经网络中sigmoid和tanh非线性激活函数,符号“×”和“+”指代矩阵的元素积和矩阵加法。GRU模型和RNN模型的区别在于其每个时间节点t下的处理更为复杂,对上一时间戳的状态ht-1,GRU会选择性地通过“更新门”和“重置门”机制对其保留和遗忘,即分别对应图中的zt和rt。而在医疗时序数据分析预测中,数据的长时间依赖对当前时间预测很重要,而传统RNN在处理时序数据时,无法很好地抽取长时间间距之间信息的相关信息,GRU的“更新门”和“重置门”机制很好地解决了这一问题。具体而言,GRU对于每一个时间戳下的输入向量recordt,结合节点状态向量ht-1,计算更新门与重置门,更新门的值越大则模型将会利用更多新时刻的信息,重置门的值越大则保留更多历史信息:
图3 基于时序数据进行分类的门控循环单元Figure 3 Gated recurrent unit, which is used to perform classification based on time series data
模型中的sigmoid函数即体现了最终输出概率与输入之间的非线性关系。同样采用交叉熵损失函数来衡量损失,并采用随机梯度下降的方式最小化损失,从而计算得到模型所需的最优参数W和b。值得一提的是,LR模型无法考虑时间这一因素带来的影响,而是单纯从每个数据本身挖掘其背后的特征和意义。因为LR模型无法处理时间序列,本研究将患者就诊记录序列中的每次就诊数据独立地输入LR模型中,每次就诊记录中包含的数据类型与RNN和GRU模型相同。某种程度上讲,前文提及的RNN和GRU模型纳入的信息相较于LR而言是更全面的。
本研究采用十折交叉验证的方式对模型的超参数进行调整,并使用独立验证集进行性能测试。其中,测试集在全部患者集合中随机选取50位。在训练集中利用GRU建立预测模型,在测试集中主要采用了受试者工作特征(receiver operation characteristic,ROC)曲线下面积(area under the ROC curve,AUROC)、召回率(recall)、F1分数(F1-score)三个指标来衡量模型对患者死亡风险的预测情况。其中,召回率在统计学上指所有预测为正样本中预测正确的比率,F1分数则指预测精确率和召回率的调和平均值。通过对比这三个指标,可以很容易地对不同模型的预测能力进行评估。
经过数据清洗、补全等预处理,本研究使用的数据集共有656例患者,包括死亡患者261例,所有患者共计13 091条记录。患者平均年龄(58.55±15.81)岁,平均每位患者拥有(19.95±13.53)条记录,女性患者占比49%。患者的各项化验指标的统计见表2,合并症记录统计见表3,患者基本信息统计见表4及图4。
表2 数据集中腹膜透析相关医疗特征统计Table 2 Statistics of peritoneal dialysis clinical features in the dataset
Std, standard devation. Other abbreviations as in Table 1.
对GRU、RNN和LR模型的性能进行十折交叉验证、调整超参数,并在测试集测试,结果见表5,各模型的ROC曲线见图5。可以看出RNN模型和GRU模型在AUROC、召回率、F1分数三项指标上都明显优于传统的LR模型。虽然LR模型已经达到了一定的预测水平,但其未考虑生存时间变量因素,很难随着患者的不同随访时间变化,做出更加准确的预测。RNN和GRU模型与LR模型相比,不仅能够处理当前状态数据,还能够处理时序数据,通过纳入患者之前的状态来对当前状态进行预测,所以其结果优于LR模型。但RNN模型在处理时序数据时,无法很好地抽取长距离信息依赖,GRU的“更新门”和“重置门”机制很好地解决了这一问题,同时从结果中也可以看出GRU模型的性能有了进一步的提升,说明GRU模型可以更深刻地理解当前数据背后的临床意义,并且能更好地拟合数据。
表3 数据集中腹膜透析相关合并症统计Table 3 Statistics of peritoneal dialysis complications in the dataset
表4 数据集基本统计特征Table 4 Statistics information of patients
Std, standard deviation.
图4 数据集中年龄与就诊频次的分布Figure 4 Data distribution of age and visiting frequency in the dataset
表5 测试集各预测模型性能的平均值Table 5 Average performance of each prediction model in testset
LR, logistic regression; RNN, recurrent neural network; GRU, gated recurrent unit; AUROC, area under the receiver operation charac-teristic curve.
为了确定模型对于不同死亡原因的预测表现,本研究计算了测试集上不同死亡原因的平均召回率。此外,还分析了预测窗口设置为3个月时模型的性能(图6)。相比于RNN和LR模型,GRU模型具有更好的预测效果,所以下文的结果和讨论均使用GRU模型。
本研究发现,与传统的LR模型相比,RNN及其变体GRU模型都具有更优的拟合和预测效果,展现了循环神经网络模型在临床预测模型中的潜在应用价值,在此基础上的数据挖掘可能为临床提供更为有意义的发现。
此外,根据图6中模型的表现,我们发现几种死亡原因(如感染、胃肠道出血、营养不良和癌症等)具有相当高的召回率,提示模型对于这几种原因导致的死亡的预测效果较好,但同时,一些死亡原因(如心血管疾病、脑血管疾病)的召回率相对较低,提示模型对急性发病的心脑血管疾病预测效果不佳,进一步提示需要在模型中纳入更多可能的危险因素,或在临床上需要进一步寻找可能的预测因子来提高模型的预测效果。
AUROC, area under the receiver operation characteristic curve.图5 预测模型的ROC曲线Figure 5 ROC of prediction models
PDAP, peritoneal dialysis associated peritonitis; PVD, peripheral vascular disease; GI, gastrointestinal.图6 不同预测窗口下对不同死因的召回率Figure 6 Recall of different death reasons at different prediction windows
需要注意的是,心脑血管疾病虽然具有相对较低的召回率,但随着预测窗口从一年减少到3个月,脑血管疾病的召回率增加,心血管疾病召回率增加不明显,表明对于患有脑血管疾病的患者,如果医生可以更加密切随访患者,则可以使用现有类型的临床数据进行预警。而对于患有心血管疾病的患者,当前的临床信息不足以更准确地对死亡做出预警,因此,临床上对于心血管疾病的预测,可能需要进行更详细的测试(如心电图、心肌酶、冠状动脉CT血管造影、超声心动图等心脏检查),进一步探索纳入这些心脏测试后的模型预测效果。
本研究也存在不足之处,比如数据缺失率较高[2],对风险预测有明显的负面影响。RNN模型中的机制旨在分析患者健康状况的变化特征,因此对缺失率较高的数据补全策略引起的异常变化非常敏感。在未来的工作中,将不同来源的数据更合理地结合或进行迁移学习和数据补全可能会解决这一问题。
综上所述,相比于传统医学研究所使用的LR模型,RNN模型,尤其RNN的变体GRU模型的性能更优,更适合预测终末期肾病腹膜透析患者的死亡风险。使用基于循环神经网络模型的死亡风险预测系统来辅助医生进行临床决策和干预,可能有助于临床医生更好地随访和检测患者,提高医疗质量。