关于肾炎病人的诊断的数学建模论文.docx
《关于肾炎病人的诊断的数学建模论文.docx》由会员分享,可在线阅读,更多相关《关于肾炎病人的诊断的数学建模论文.docx(19页珍藏版)》请在冰豆网上搜索。
关于肾炎病人的诊断的数学建模论文
摘要
人们到医院就诊时,其是否患有肾炎一般是通过化验人体内各种元素的含量来协助医生的诊断。
本文解决的是如何根据就诊者体内各种元素的含量,判别就诊者是否患有肾炎,并找出人们患肾炎的主要因素,以便减少化验的指标,减少检查费用。
对于问题一,我们采用了构建BP人工神经网络,输入层为7个神经元,分别对应7种元素;输出层为1个神经元,其输出值“1”和“0”,分别对应“健康”和“患病”;至于隐藏层,我们最后经过反复调试,确定其神经元数为7。
构建出来的模型,回代检验得出的效果较好,只有1个与原数据有出入,判别准确率达到98.25%。
问题二时,我们将待测者数据代入模型后得出结果为,16人患病,14人健康。
对于问题三,我们采用了归一化比较分析法,将已知患病情况的人体内各元素的含量算术平均后再归一化得出其在所有7种元素中所占的比重。
从而得出关键因素为Ca、K、Na和非关键因素Zn、Fe、Cu、Mg。
问题四时,我们将四个分关键因素剔除后又按原算法构建了BP人工神经网络,回代后得出的结果仍为1个误判,准确率还是98.25%。
得出的结果为17人患病,13人健康。
与第二问结果出入不大。
问题五,对比第二问和第四问的结果,在剔除四个非关键因素后,模型的准确率并没有受太大影响,而检测结果的一致率达到高达96.7%。
所以我们得出进一步结论:
Ca、K、Na三种元素才是影响化验结果的主要元素,而且化验其他四种元素对于诊断的结果影响很小,即就诊人员只需要化验Ca、K、Na三种元素基本上就可以判定是否患病,这样就大大节省了看病的时间以及人力财力。
一.问题重述:
人们到医院就诊时,通常要化验一些指标来协助医生的诊断。
诊断就诊人员是否患肾炎时通常要化验人体内各种元素含量。
表B.1是确诊病例的化验结果,其中1-30号病例是已经确诊为肾炎病人的化验结果;31-60号病例是已经确定为健康人的结果。
表B.2是就诊人员的化验结果。
我们的问题是:
1.根据表B.1中的数据,提出一种或多种简便的判别方法,判别属于患者或健康人的方法,并检验你提出方法的正确性。
2.按照1提出的方法,判断表B.2中的30名就诊人员的化验结果进行判别,判定他(她)们是肾炎病人还是健康人。
3.能否根据表B.1的数据特征,确定哪些指标是影响人们患肾炎的关键或主要因素,以便减少化验的指标。
4.根据3的结果,重复2的工作。
5.对2和4的结果作进一步的分析。
二.问题分析:
对于这个问题,我们首先从宏观角度对题目所给的七组数据的统计特征入手进行分析。
从数据的规律与联系寻找突破口,建立模型,给出诊断判别的方法。
对1~60号就诊者的7项化验指标的均值做出统计分布图如下:
患者与健康人体内Zn含量对比(红色为患者,绿色为健康人)
从图中可以看出,患者体内的Zn元素含量比健康人体内略低。
患者与健康人体内Cu含量对比(红色为患者,绿色为健康人)
此图看出,患者和健康人体内的Cu元素含量相差不大,但是第40号健康人体内的Cu元素含量明显高出其他健康人,这是不太正常的。
患者与健康人体内Fe含量对比(红色为患者,绿色为健康人)
此图看出,患者体内的Fe含量比健康人体内略低,但是第40号与第41号健康人的Fe元素含量又是明显高于其他健康人,这也是不太正常的。
患者与健康人体内Ca含量对比(红色为患者,绿色为健康人)
此图看出,人体内的Ca元素含量明显高于其他元素,而且患者体内的Ca元素含量比健康人体内要低一些。
所以Ca元素可以作为区别患者与正常人的重要指标。
但是第40号健康人体内的Ca元素又明显高于其他健康人。
患者与健康人体内Mg含量对比(红色为患者,绿色为健康人)
此图看出,患者体内的Mg元素含量略低于健康人。
患者与健康人体内K含量对比(红色为患者,绿色为健康人)
此图看出,患者体内K元素含量与健康人相差不大,只有少数的患者体内K元素含量超过了健康人,且第11号患者体内K元素含量过高。
患者与健康人体内Na含量对比(红色为患者,绿色为健康人)
此图看出,患者体内的Na元素含量整体略低于健康人的。
综上,从所给样本数据看,患者与健康人的体内7项元素化验指标有各自的明显的特征。
有些元素如Cu、K相差不大,有些元素如Ca、Mg含量差异则很明显。
我们可以利用这些差异把健康人与患者看作两个母本,对待测患者进行判别。
另外,由于第11号患者的K元素、第40号健康人的Cu和Ca元素、第41号健康人的Ca元素明显超过了大多数人的正常水平,为了确保样本空间数据的可靠性与特征的明显性,我们将其从母本空间中剔除。
这样,我们的样本空间A为患者含29组数据,样本空间B为健康人含28组数据。
我们对这两个样本空间进行建模,构造函数,并进行判别待测者的身体健康状况。
3.模型假设
1.除了题目所给的7种元素外,其他元素对肾炎影响较小,可以忽略不计。
2.没患肾炎的都是健康人。
3.是否患肾炎与性别和年龄无关。
4.假设所有的数据都是在同等条件下检测的,且仪器精确度极高。
4.变量说明
1.A:
健康人组成的总体;
2.B:
患者组成的总体;
3.a:
肾炎病人的各元素的平均值向量;
4.b:
正常人的各元素的平均值向量;
5.c:
肾炎病人的各元素的平均值之和;
6.d:
正常人的各元素的平均值之和;
7.:
归一化之后患肾炎的各元素含量的权值向量;
8.:
归一化之后正常人的各元素含量的权值向量;
9.:
健康人和患者体内各元素的算术平均值;
10.:
健康人和患者体内各元素所占的比重;
5.模型的建立与求解
问题一
1.问题分析
该问要求我们提出判别一个人属于患者还是健康人的一种或多种方法,并
检验所提方法的确性。
题目中表.1中给出了已经确诊为肾炎病人和健康人的各
30组数据;每一组数据都有七个数,分别代表了Zn,Cu,Fe,Ca,Mg,K,Na在每个人体内的量;这就需要通过对60组(实为57组)数据的分析得出健康人和肾炎患者体中这些元素量之差异,在寻找数据的差异时,我们想到的传统方法
就是求数据的方差和均值。
但是经过讨论,我们认为,此题要求的得到的结果是患病与否,我们想到采用人工神经网络模型,构建BP神经网络,输入为7种元素的含量。
输出为两种情形:
“1”和“0”,“1”代表健康,“0”代表患病。
2.模型建立
理论上已证明:
具有偏差和至少一个S形隐藏层加上一个线性输出层的网络,能够逼近任何有理函数。
针对本文实测目标,神经网络模型采用三层前馈网络,由输入层、隐藏层、输出层组成。
输入层有七个神经元,每个神经元对应一个元素;输出层有一个神经元,起输出为待测者的健康情况。
第一层(输入层):
将输入引入神经网络。
Outi
(1)=Ini
(1)=x,i=1,2,…,m
第二层(隐藏层):
其中f(x)为传递函数,这里采用的是正切Sigmoid函数:
F(x)=tanh(x)
第三层(输出层):
其中,m,n,l分别代表输入层节点数、输出层节点数、隐层神经元个数。
根据本问题可以直接确定m=7,n=1。
至于l,不能直接确定,这里采取经验公式:
来确定其初始值l=5。
3.模型求解
对于上面建立的基于BP神经网络的模型,我们利用了方便使用的MATLAB神经网络工具箱进行求解。
把所有的60组(实为57组)样本整体代入用作训练数据,然后整体回代如模型进行检验。
经过反复调整权值、阈值和隐层神经元个数,最终确定隐层神经元个数l=7,实现效果良好。
由上图可以看出,该算法通过65次训练达到了预设的误差0.01。
检验结果如下图所示:
由图可以看出,我们的BP神经网络模型较好的实现了患病情况的诊断,判断的准确率为98.25%。
问题二
在第一问的基础上,我们只需要将表二中待测者的30组数据代入问题一的模型中,应用问题一中的程序用matlab即可求解出结果,最终得到判断结果如下:
待测者编号
判断结果
待测者编号
判断结果
1
患病
16
患病
2
患病
17
健康
3
患病
18
健康
4
患病
19
患病
5
患病
20
健康
6
健康
21
健康
7
患病
22
健康
8
患病
23
患病
9
患病
24
患病
10
健康
25
健康
11
患病
26
健康
12
患病
27
患病
13
患病
28
健康
14
健康
29
健康
15
健康
30
健康
总体结果为:
16人患病,14人健康。
问题三
该问要求找出人们患肾炎的主要因素,我们想到了采用归一化比较分析法。
1.归一化比较分析法步骤:
1)首先分别算出健康人和患者体内各元素的算术平均值
2)归一化,分别算出健康人和患者体内各元素所占的比重
3)比较分析,通过比较健康人和患者体内各元素所占的比重的差别,如果肾炎患者和正常人两种元素的权值差别太大,就说明该元素是主要元素,反之则说明该元素不是关键元素,从而可以不考虑该元素的影响。
2.按照上面所述方法,得出如下结果:
1)健康人和患者体内各元素含量的算术平均值:
肾炎患者
正常人
Zn
143.1033
186.6000
Cu
12.3343
21.9237
Fe
23.0667
62.0117
Ca
698.1667
2511.1
Mg
113.3933
295.1367
K
201.1333
90.3700
Na
526.8333
367.2100
2)归一化之后健康人和患者体内各元素所占的权重:
健康人
患者
Zn
0.0833
0.0528
Cu
0.0072
0.0062
Fe
0.0134
0.0175
Ca
0.4064
0.7105
Mg
0.0660
0.0835
K
0.1171
0.0256
Na
0.3066
0.1037
3.由上面所得到的结果,分析判断得出:
Ca元素在健康人和患者体内的含量所占权重相差最大,正常人体内所占权重大于患者;其次,Na元素在患者体内所占权重比健康人要大;另外,K元素在患者体内所占的权重也比健康人要大。
所以可以认为Ca、Na、K三种元素为主要因素。
其余的Zn、Cu、Fe、Mg四种元素各所占权重在健康人体内和患者体内相差不大,所以可以认为它们是无关因素。
结果分析:
得出三种主要影响判断结果的元素,排除了四种非关键元素。
但是不足之处在于,由于采用的是算术平均法,其受极值的影响较大,从而影响检验结果。
问题四
去除四个非关键元素后,将待测者的数据再次代入模型中,得到如下结果:
待测者编号
判断结果
待测者编号
判断结果
1
患病
16
患病
2
患病
17
健康
3
患病
18
健康
4
患病
19
患病
5
患病
20
患病
6
健康
21
健康
7
患病
22
健康
8
患病
23
患病
9
患病
24
患病
10
健康
25
健康
11
患病
26
健康
12
患病
27
患病
13
患病
28
健康
14
健康
29
健康
15
健康
30
健康
总体结果为:
虽然总的结果仍为17人患病,13人健康。
问题五
由前面的的分析解答,我们第一问权重赋予后代回表一检验,得出其中有1个不符合,这样,我们的判别准确率约为98.25%。
因此,问题二16位为患者,14位为健