Promedas—贝叶斯网络在医学诊断中的应用1. 综述
现代的医学诊断是一个非常复杂的过程,要求具备患者准确的资料,以及对医学著作深刻的理解,还有多年的临床经验。
这样的情况尤其适用在内科诊断中,因为它涵盖了一个巨大范围的诊断门类。
而且也因此使得内科诊断成为了一个需要专攻的学科。
诊断是一个过程。
通过这个过程,医生为病人的症状寻找拥有最佳解释的病因。
这个研究的过程是一个连续的过程,即病人的症状会指示医生对其进行一些初步的检查。
基于这些初步检查的结果,一个关于可能的病因的试探性的假设形成了。
这个过程可能会在若干个循环中推进,直到病人被以充分的确定性来做了诊断,而且其症状的病因也被建立起来。
诊断过程的一个很重要的部分是标准化诊断的形式。
这里有若干的规则来限制:依据病人的症状以及检验的结果,什么样的检查应该被执行,它们的顺序应该是什么样的。
这些规则形成了一个决策树,其节点是诊断的中间过程;依据当前诊断的结果,其枝干指向额外的检查。
这些规则是由每个国家的一个医学专家委员会制定的。
在平时遇到的大部分诊断里,上面提到的指南已经足以准确的指导我们做出正确的诊断。
对于这种“一般”的情形,一个“决策支持系统”是没有必要的。
在10%~20%的案例中,进行诊断的过程是很困难的。
因为对于正确的诊断结果的不确定性,以及对下一步进行什么检查的不确定性,不同的医生在不同的诊断过程中做出的决策是不一样的,而且缺乏“推理”。
在这些案例中,通常一个专攻此类疾病的专家或者详细描述此类疾病的著作将会被咨询。
对于这种困难的情形,基于计算机的决策支持系统可以作为一个可供选择的信息来源。
而且,这样一个由计算机提供帮助的决策支持系统在指出其他一些原来可能被忽略的疾病方面是有帮助的。
它可能就此导致一个被提高的,更加理性的诊断过程,并且更见高效和廉价。
自从1996年以来,SNN和UMC为内科诊断建立了临床诊断决策支持系统,称为Promedas。
在这个系统中,患者的信息,例如年龄,性别,收获(如症状,病理学检测的结果,以及实验的测试结果)都可以被引用到。
随后这个系统就可以以一个可能性的诊断列表的形式,生成针对于每个患者的诊断说明,并为其中的一些诊断提供一些后续的检查建议。
这个系统旨在支持那些缺少临床患者的诊断决策以及教学的目的。
它的目标使用人群是内科医师,专业的医生,医院实习医生和普通居民,医学院学生,和其他在医院环境中工作的人们。
目前,这个项目的一些琐碎的版本被安装到了UMC的内科诊室。
它包括大约3500个诊断,其建立在大约50000个关系上。
这个系统与患者的电子档案相连接,这样医生就可以很容易的咨询该系统,而不需要人工的键入相应的信息。
一个可用的演示可以在网站:www.promedas.nl上获得。
Promedas基于一个贝叶斯网络。
在下面的章节中我们将进一步从细节上描述这个模型。
我们从每个部分上来关注这个模型,包括确定的建模步骤,模型的选择,以及适用于推断的方法。
模型中的医学细节将不在本节的关注范围之内。
2. 建立一个大范围的概率模型
为了这个应用,其中罕见的疾病在这里扮演了重要的角色,数据是不足以来训练模型的。
当用手工构建一个贝叶斯网络时,标准的过程是具体化一些局部关系的网络结构,然后将那些,需要定义其定量标准的关系的概率值具体化。
对于中等规模的网络(最多50~100个变量),利用一些构建贝叶斯网络的工具软件来做这些工作是可行的。
但是我们的目标是将这个模型的规模扩展到1000个变量。
对于这个更大的模型而言,对这个模型的检索而不迷失在错综复杂的关系中将变得更加的困难。
而且,可用的医学知识对于诊断与检测之间的二元关系来说是有限的,从灵敏度和专业性上来说。
所以我们决定使用一种更加结构化的方式,使得我们在其中能够假定一种更加一般化的模型结构。
对这个结构的一个总体上的假设是影响疾病概率的风险因素,以及影响症状概率的疾病。
我们进一步限制这个模型:其中的参数将被医学中可用的二元关系信息所决定。
为了进一步优化这个模型,我们开发了一个数据库,其中医疗专家可以容易的输入他们的研究成果,
而不用经过太过复杂的过程。
在下面的几节里,我们将简述这个数据库的结构。
然后我们将简述贝叶斯网络在这里是如何定义的,以及我们所做的模型的选择。
最后,我们将简述如何由我们的模型计算出一个不同反响的诊断结果。
2.1 数据库的结构
这个数据库所包含信息的格式,使得贝叶斯网络的结构和其参数可以从中产生。
另外这个数据库包含了多种类型的数据,例如,关于Promedas的图形化界面接口的信息。
它主要包含症状的分组和命名,以及相关医学分类的风险因素,例如抱怨,病理学的检查,施药,实验结果,以及对以上过程的检测。
此外,描述,注释以及索引都被包含在内。
在这一节的后半部分,我们限制这些信息直接与计算模型有关。
这个模型包含三种变量:
1.风险因子:例如职业,药物的使用情况,过去的病史,以及现在的疾病。
风险因子被作为二值变量赋值(存在为1,不存在为0)。
2.诊断:例如当前的疾病,综合征,药物的副作用,怀孕等。
诊断也被作
为二值变量赋值。
3.检查:例如实验检测,症状,病理学的检查等等。
检查常常被赋值成多
值变量或二值变量(减少,正常,增加,或是明显增强)。
当因为检查被
连续的进行而区分度并不是很明显时,这个数据库中的区分度被可能存
在的医学上的标准定义为分隔点。
这些区分度可能依赖于年龄或者是性
别。
这样的检查状态空间定义使得总是有一个“正常的状态”。
当其被定
义为二值变量时,“不存在”则是表示“非正常的状态”。
此外,这个数据集包含量化关系,它们将被用来对贝叶斯网络中的概率进行赋值。
量化的可以针对单个的变量,也可是对变量之间的联系。
联系可以被定义
在风险因子与诊断之间,也可以被定义在诊断与检查之间。
关系只能被定义在非正常的状态下,例如,当诊断d 为真,而检查t 处在“增加”的状态,这就意味着,他们之间的关系是正关系。
诊断d 与检查t 之间状态“正常”的缺失,表明这种疾病会使得这种检查的结果更倾向于不正常。
这个数据集包括四种量化关系:
1. 优先:对于任何一个诊断d ,存在一个d P ,它表示在其他风险因子缺失
的情况下该诊断成立的概率。
2. 泄露:对于每一个检测,这里有一个所谓的泄露的t s p =对于每一个非正常
状态的检测。
这个泄露的概念可以粗略的解释为,在所有诊断缺
失的前提下,检查的结果t s =的概率。
在一个理想的检查中,在
诊断缺失的前提下其结果应该是正常的,所以许多非正常的状态
具有0概率。
在非理想的条件下,一个泄露为非正常的状态产生
了正的概率。
有时,泄露被用来为没有明显原因的检查的正概率
建模。
3. 多因子:对于每一个风险因子—诊断的关系,这里存在一个多因子dr m ,借此系数,在风险因子r 存在的情况下,诊断d 的优先概率被乘倍。
4. :对于每个检查—诊断关系,。