疾病诊断模型

  • 格式:doc
  • 大小:546.00 KB
  • 文档页数:18

我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写):我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):广东商学院参赛队员 (打印并签名) :1. 邓思文2. 苏境财3. 吴妙指导教师或指导教师组负责人 (打印并签名):戴宏亮日期: 2012 年 8 月 18 日赛区评阅编号(由赛区组委会评阅前进行编号):2010高教社杯全国大学生数学建模竞赛编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):疾病诊断问题摘要随着就医压力增加,在降低误诊率的前提下提高诊断效率是非常重要的,本文利用确诊样本数据建立判别模型,并利用模型筛选出主要元素,对就诊人员进行诊断。

针对问题(1),利用确诊数据建立Fisher判别模型、Logistic回归模型和BP神经网络模型,运用matlab、spss求解,定出判别标准,并进行显著性检验和回代检验,判别模型的准确率。

结果显示Fisher判别模型的准确率为%,Logistic回归模型和BP 神经网络模型准确率均为100%,Logistic回归模型相对简便。

针对问题(2),选择问题一中检验准确率为100%的Logistic回归模型和BP神经网络模型对40名就诊人员进行诊断,结果如下表:针对问题(3),建立Logistic逐步回归模型对元素进行筛选,利用spss软件求解,确定Ca和Fe是影响人们患这种病的主要因素,因此在建立诊断模型时,其他元素不作为参考指标。

针对问题(4),筛选出主要影响因素后,将Ca和Fe作为指标建立Logistic回归模型和BP神经网络模型,发现两个模型的诊断结果一致,如下:针对问题(5),对比问题二和问题四结果,发现无关元素会影响模型进行诊断的准确率。

关键词 Fisher判别模型 Logistic回归模型 BP神经网络模型逐步回归模型一、问题重述人们到医院就诊的时候,通常通过化验一些指标来协助医生诊断。

医生根据化验所得的元素含量,利用某种指标,判断病人是否患病。

本题给出了附录1(确诊人数),和附录2(待诊人数),其中附录一中1至30号是确定患病的病人,而31至60号是没有患病的健康人,要求回答以下问题:(1)、根据附件1中的数据,提出一种或多种简便的方法,判断属于患病者或健康人的方法,并检验你提出方法的正确性。

(2)、按照(1)提出的方法,对附件2中的40名就诊人员的化验结果进行判定他(她)是患病者还是健康人。

(3)、能否根据附件1的数据特征,确定哪些指标是影响人们患这种病的关键或主要因素,一边减少化验的指标。

(4)、根据(3)的结果,对附件2中的40名就诊人员的化验结果进行判别,判定他(她)们是患病者还是健康人。

(5)、对(2)和(4)的结果作进一步分析。

二、问题分析随着就医压力增大,简便的医学化验标准和方法可以大大提高医生诊断的效率。

依据已确诊的病例数据特征,对就诊病例进行分类,协助医生做出准确的医疗判断。

针对问题(1),要求利用附录1已确诊的病例数据找出一种或多种简便的方法,判断就诊人员患病与否。

依据附录1中60位已确诊病例,可从患病者与健康者体内的7种元素含量入手,即分析确诊人员的体内元素含量和患病与否的关系。

因此,可构造各种判别分析法,同时对其进行检验,再利用已知数据回代,分别计算不同判别方法的准确率并进行比较。

针对问题(2),基于问题(1),可选择准确率最高的判定方法对附录2的就诊人员进行病例判诊,诊断出就诊人员是否健康。

针对问题(3),问题二中两个准确的模型出现不同结果,所以可以确定存在干扰因素,利用Logistic逐步回归模型确定主要影响元素,提高诊断的准确率与速度。

针对问题(4),排除无关元素,利用问题(1)中确定的模型重新建立诊断函数,对40名就诊人员重新进行诊断。

针对问题(5),通过比较问题(2)和问题(4)元素和结果的改变,分析影响诊断结果的因素是什么。

三、模型假设(1)假设检测数据准确无误。

(2)假设确诊人员中没有误诊的情况出现。

四、符号说明五、模型的建立与求解问题一的求解依据检查结果,对就诊人员进行健康与否诊断的方法有多种,根据已知限制条件,本文选择其中三种判别分析模型:Fisher 判别模型、二类logistic 回归判别模型以及BP 神经网络模型。

同时,为了检验三种判别分析模型的准确率,我们引入一个变量P 为准确率。

就诊总人数判断准确的人数=p5.1.1 Fisher 判别模型5.1.1.1 Fisher 判别模型的建立与求解将患病和健康为两个总体:1G 、2G ,并且都以体内检测的7个元素作为其集合元素。

Fisher 判别主要借助方差分析的思想,利用投影,将这两个总体投影到一个方向,建立线性判别函数,并利用判别规则,通过计算后得出检查结果属于1G 或2G 。

(1)确定原始数据矩阵以各元素为列向量,以就诊人员为行向量,构造关于病患和健康者的两个矩阵。

1G 的数据矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=169...28.8178............427...15.7185513...15.81661W 2G 的数据矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=330...21179............330...13.9170168...19.12132W (2)计算两组各元素数据的平均值。

矩阵1W ,2W 的列平均数分布为:1X =(,,,,,)2X =(,,,,,,)(3)利用微分学的方法,计算系数ic ,i =1,2,3,4,5,6,7要体现出分组的两个特征:①、组间差距越大越好;②、组内差距越小越好。

可得出以下公式:∑∑+=60312223012112217654321)-()-()-()l ,,,,,,x x x xx x l l l l l l L (对其求偏导,得出C =ic 。

(4)确定判别函数77665544332211x c x c x c x c x c x c x c y ++++++=(5)计算1G 、2G 代表的判别值∑==7111i i i x c y∑==7122i i i x c y得出判别值为:603030210y y y +=(6)上述计算过程,可由matlab 编程实现,代码见附录 得出结果如下:96543210000629.00000137.00.000199-0.0000624-0.000337-0.00346-0.000069x x x x x x x y --+=⎪⎪⎩⎪⎪⎨⎧===0811.0-152.0-01075.0-021y y y 因此,在本题中1y >y ,当y>y 时,y 的样本属于1G ,即样本属于患病者。

反之样本属于2G ,即样本属于健康者。

5.1.1.2 Fisher 判别法的检验利用F 检验,设显著性水平α=.计算统计量如下:F 2121-71-7-303030303030-1--y y y y p p t s t s t s ⨯⎥⎦⎤⎢⎣⎡+⨯+⨯=⋅⎥⎦⎤⎢⎣⎡+⋅+⋅== αF (7,52)≤αF (7,50)=因此,F >αF (7,50)> αF (7,52).说明判别函数是有效的,从而可以用来做判别。

5.1.1.3 Fisher 判别回代检验将已确诊样本数据回代判定函数,得出患病者检验值表5.1.1-1(见附录表)和健康者检验值如表:个,分别为就诊人员32、38、39和60,它们都大于。

因此,Fisher 判别模型的准确率P 为:P =6056=%.5.1.2 BP 神经网络 由定理得出,以双曲线正切函数为激活函数的三层BP 神经网络,可以以任意精度逼近任意连续函数。

并且,有导师学习的BP 神经网络实质是在对学习样本进行学习的过程中,利用梯度下降法,不断反馈修改权值,直到网络输出与期望值的误差小于给定标准,结束学习训练,并固定联结权值,输入待测样本就可给出适当的输出。

因此,BP 网络对于解决判别就诊人员健康与否的问题非常实用、有效。

5.1.2.1 有导师学习的BP 神经网络模型的建立 (1)确定学习样本以样本)B ,(i i A 作为学习样本,其中,输入数据为)1,,,,(721x x x A i ,),,,(21n i y y y B 为相应的期望输出值。

当30,,2,1 =i ,i A 表示已确诊为患病的1-30号病例;当60,,32,31 =i 时,i A 表示已确诊为健康的31-60号病例。

(2)构造前向三层网络前向三层网络含有输入层、输出层和隐含层,并依据 Lippmann 研究]2[:对于任给k 个实数值样本,有2k+1个隐节点的三层网络可以记忆它们,这个隐单元的激发函数可以是任何渐近函数,可设隐含层节点N=5,即能使网络记忆全部样本信息。

其结构如图5.1.2-1:11x12x18x输出层 隐含层(节点数为5) 输出层图5.1.2-1 神经网络结构图(3)计算各层输出对于隐含层的第i 个神经元的输出2i x ,有:111=+n x,i n i w θ-=+)1(,∑+==1112n j jijixwd,)(22i i u f x =其中,Sigmoid 函数211)(2i u i eu f -+=,各层权系数ij w 随机初始化,而输出层输出值)1,0(3∈x . (4)求各层的学习误差 输出层误差为))(1(3333y x x x d--=,隐含层误差为3222)1(d w x x d i i i i-=.(5)修正权系数ij w 和阀值i θ,有:输入层与隐含层的连接权重:12)()1(j i ij ij xd t w t w η-=+,隐含层与输出层的链接权重:23)()2(i ij i xdt w t w η-=+.其中,t 为学习次数,η为学习效率,即步长,一般比较小。

(6)判断学习结束,检验网络误差 给出误差函数∑-=iy x e )(213的标准,若满足误差要求,学习结束,固定权系数,并重新对样本进行检验,计算出网络命中率;否则,一直循环至最大迭代次数n 。

(7)输入待测病例样本,对病例样本进行健康与否分类。