论文部分内容阅读
研究背景:重症监护室(intensive care unit)内的患者病情严重,生命体征变化迅速,在短时间内容易发生恶性事件(malignant event)降低其生存概率(survival probablity)。当前有多种量表或模型用于患者病情严重程度与死亡概率的预测(mortality prediction),但仅仅依据横截面数据(如入院时情况),不能全面地反映患者的健康程度。缺乏时序性数据的支撑,死亡预测模型仅仅只能表现单一的概率,无法对具体体征变化及其背后的器官损伤或其他问题起到预测和预警作用。动态贝叶斯网络(dynamic Bayes network)是有向无环图(directed acyclic graph)模型在时间序列这一领域的应用,与隐马尔可夫模型(hidden Markov model)有较强的相似性,具有直观的节点关系表现形式。动态贝叶斯网络学习算法通过建立时间片段的概念,根据专家知识(expert knowledge)或数据集的学习,以一个时间片段内或时间片段之间的节点相连表示节点之间的因果关系,建立网络的拓扑结构(topological structure)。然后通过参数学习(parameter learning)得到完整的动态贝叶斯网络。主要应用于有时间概念下的高维数据的关系网建立、因果推断和目标节点预测等领域。动态贝叶斯网络与多元时间序列相仿,都可以对一个变量的变化趋势进行预测,但其通过贝叶斯统计理论的形式,相比于一般的线性方程(linear equation)或时间序列模型可以更好地解释每个变量之间的相互关系和模型中的交互效应(interaction effect)。为基于纵向监测数据开展ICU患者预后预测提供了可能的解决方法。但是,如何应用动态贝叶斯网络对重症监护室内的患者指标及其死亡概率进行预测,尤其是对基于同时存在有离散变量和连续变量的混合数据类型(mixed data type)的贝叶斯网络,尚待进一步的研究,存在较多的挑战。其中最主要的难点主要是当连续型变量非正态分布时的结构学习算法。研究目的:针对重症监护室中患者的病情变化和死亡预测问题,探索不同的动态贝叶斯网络学习算法构建重症监护室内患者指征时序性动态变化模型,通过平均预测ROC曲线下面积、敏感度和特异度等指标筛选最优模型,应用于重症监护室脓毒血症患者的24小时死亡预测。并比较动态贝叶斯网络学习算法与其他死亡预测模型的优劣点,评价动态贝叶斯网络在重症监护室数据的应用价值。以期为临床上的死亡预测提供方法学支持或参考。研究方法:1.针对不同特征数据集的动态贝叶斯网络学习算法研究本研究根据现有的动态贝叶斯网络结构学习方法构建了朴素的动态贝叶斯网络模型(na?ve dynamic Bayes network)和高斯混合的动态贝叶斯网络模型(dynamic Bayes network with Gaussian mixture model)。朴素的动态贝叶斯网络是所有数据节点均离散的网络结构,本研究介绍并构建爬山搜索-BIC记分法、禁忌搜索-BIC记分法、增长收缩算法、增长相关马尔可夫毯算法、快速增长相关马尔可夫毯算法、交叉增长相关马尔可夫毯算法、错误发现率控制的增长相关马尔可夫毯算法、PC算法、最大最小节点爬山算法、限制最大化算法、ARCANE算法、Si Hiton父子节点算法和最大最小父子节点算法等13种基于完整数据集的动态贝叶斯网络结构学习算法以及应用EM算法的爬山搜索-BIC记分法和禁忌搜索-BIC记分法的基于缺失数据的2种学习算法共15种朴素算法。本研究还构建了可应用于混合类型数据集的高斯混合动态贝叶斯网络,这一方法利用高斯混合模型将数据分为若干个子模型使连续型变量在每个子模型中均服从正态分布,可以针对混合类型数据集进行网络构建,且对连续型变量的分布不作限制。可以避免数据离散化的信息损失,提高模型的预测能力。得到网络结构后通过最大似然估计法对网络的参数进行学习得到完整的动态贝叶斯网络。2.基于重症监护室纵向监测数据的动态贝叶斯网络构建以MIMIC-Ⅲ中的脓毒血症患者数据作为本研究的实例研究数据来源,利用SQL语句提取患者的个人基本信息、生命体征和实验室检查资料,通过多项式插补法建立完整数据集,并利用Chi Merge和百分位数分组方法将连续型变量离散化得到完全离散的数据集。使用前文中已介绍的16种算法构建动态贝叶斯网络模型。3.基于重症监护室纵向监测数据的动态贝叶斯网络评价本研究应用十折交叉验证法,将数据集分为训练集和测试集对朴素动态贝叶斯网络进行所有节点的平均预测能力评估。以24小时死亡预测的受试者工作特征曲线下面积(AUROC)作为主要指标,敏感度、特异度和学习所需时长作为次要指标,评价不同网络学习算法在重症监护室患者中对于死亡的预测价值,并与logistic回归、支持向量机和量表评分法等其他方法进行比较。研究结果:本研究对动态贝叶斯结构学习算法进行了详细的算法阐述和软件实现。朴素的动态贝叶斯网络结构学习算法主要分为四大类:基于记分的算法(score-based algorithm)、基于约束的算法(constraint-based algorithm)、混合算法(hybrid algorithm)和其他算法。基于记分的算法是通过空间搜索算法(space searching algorithm)(如爬山算法等)对候选模型进行记分,寻找得到分数最优模型的方法。基于约束的算法是通过条件独立性检验(Conditional independence test),寻找变量间相关关系再整合为有向无环图的方法。混合算法是结合前两种方法,先寻找变量间相关关系得到候选的图模型集,再寻找记分最优模型的方法,可以有效地提高模型学习效率。其他算法主要包含了交互信息算法(mutual information)和局部发现算法(local discovery algorithm)。高斯混合动态贝叶斯网络是一种用高斯混合模型处理连续变量,使用隐藏节点(hidden nodes)表示高斯混合模型中子模型的动态贝叶斯网络,在非高维变量集的条件下可以用以学习基于混合类型数据的动态贝叶斯网络。这一算法结合了在科学领域常用的高斯混合模型,易于理解和实际应用,并且模型本身对连续变量的分布不作要求。通过筛选,本研究共纳入MIMIC-Ⅲ数据库中1994名脓毒血症患者建立数据集,提取患者的性别、年龄、保险类型、人种、入院类型、入院来源等患者基本信息作为静态资料。以4小时作为时间间隔,获取患者的生命体征和实验室检查结果并取均值,其中生命体征数据主要为心电监护仪中记录的心跳频率、每分钟呼吸次数、血氧饱和度、收缩压、舒张压以及体温等。实验室检验数据主要包含白细胞计数、血红蛋白含量、血小板计数、血糖浓度、肌酸酐、尿素氮、谷丙转氨酶和谷草转氨酶的血清浓度。通过数据填补、离散化处理和T0-T1表的横向连接,得到分析数据集包含105399对时间片段记录。应用16种不同的动态贝叶斯网络结构学习算法和最大似然估计的参数学习,得到了根据填补后数据集直接学习得到的13个动态贝叶斯网络结构,EM算法结合记分算法得到的2个动态贝叶斯网络以及1个包含隐变量的高斯混合动态贝叶斯网络。通过对建好的朴素动态贝叶斯网络进行十折交叉验证,得到网络所有节点的平均预测准确度和似然损失。其中,记分算法得到的网络结构平均节点预测错误率(19.02%)和平均节点预测对数似然损失(36.14)均为最优。EM算法由于在学习过程中对参数和缺失数据集同时进行迭代,结合爬山算法的学习算法平均学习时长最久,需要112.43分钟;其他算法中既能保证有高准确率又能够较快完成网络结构学习的算法是基于记分的爬山搜索算法(1.35秒),而基于约束的算法中的PC算法耗时最长(71.47秒)。本研究以原始数据中所有患者的末次时间片段节点为自变量,是否存活为因变量,应用logstic回归建立了即时的判断模型。以每名患者末次时间片段24小时前的指标数据作为患者当前情况,动态贝叶斯网络以4小时为间隔进行6次迭代预测,得到末次片段的指标预测值。通过前述的即时生存模型进行生存预测。朴素的动态贝叶斯网络在预测能力上没有显著差异,AUROC均在0.866左右。与高斯混合的动态贝叶斯网络和其他24小时死亡预测模型相比,高斯混合的动态贝叶斯网络的AUROC(0.850)相对朴素的低,但没有统计学差异。而logistic回归模型和支持向量机算法的AUROC则比朴素动态贝叶斯网络中记分算法得到的预测模型低0.030和0.038,且有统计学差异。研究结论:通过构建动态贝叶斯网络算法并将其应用于MIMIC-Ⅲ数据库中的脓毒血症患者,本研究对多种网络学习算法进行了十折交叉验证,比较了不同模型的AUROC、敏感度和特异度。动态贝叶斯网络算法通过对指标间的因果关系进行学习和推断,能够预测得到下一个时间点的患者指标,从而能够为医护人员提供更加详细的信息。在本研究的实例应用十折交叉验证结果显示,PC算法、RSMAX2算法、Si Hiton父子节点算法的AUROC最高,PC算法的敏感度最高,高斯混合动态贝叶斯网络的特异度最高,从综合的角度来看,PC算法、爬山算法和最大最小节点爬山算法分别是三种主要朴素算法中最适用于重症监护室患者数据的动态贝叶斯网络学习算法,高斯混合的动态贝叶斯网络能够预测得到更加精确的数值,但其AUROC与朴素的动态贝叶斯网络没有差异。在与其他算法或评分量表的比较中,动态贝叶斯网络能够有更强的24小时生存预测能力。