数模-化验结果判别及matlab程序,数模-化验结果判别及matlab程序.doc

a7f4a3f590493a1e451dd952a488fd7c.gif 数模-化验结果判别及matlab程序.doc

(15页)

1.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

地贫患者的基因筛查问题摘 要地中海贫血(简称“地贫”)是全球广为流行、危害极为严重的遗传性溶血性疾病,全世界至少有3.45亿人携带地中海贫血的致病基因。医学上通过大人群的基因筛查来预防地贫患儿的出生。本文应用统计学原理,对病人以及健康人的110个基因进行分析,采用Fisher判别模型建立判别标准和多元统计模型spss 软件进行筛选。问题一,利用费希尔模型判别待测者是否患有地贫,以编号1~20地贫患者的样本,编号21~40健康人员的样本,分别作为模版建立模型,用mathlab软件求解得到待测组的患病者编号41~60个是待筛查人员的样本。问题二,为确定“地贫”样本与“健康”样本在基因链上的区别。以及癌症样本中是否有子类。我们用1~20数据为标准化并确立相关系数矩阵,求出相关矩阵的特征值和特征向量,然后通过前m 个主成 分的累计贡献率满足 来确定贡献率矩阵,从而得出各种基因的权值,又利用初始特征值需大于 1,再运用逐步剔除法得出关键基因关键字:地贫患者的基因 Fisher判别 筛查 相关系数矩阵1 问题重述化验指标能够协助医生诊断。人们到医院就诊时,诊断就诊人员是否患肾炎时通常要化验人体内各种元素含量。表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的结果作进一步的分析。2 问题分析问题解决的关键是如何正确判断正常人与患者之间的差异,利用所给数据,可以选择用医学统计方法[1]中的判别分析法[2]进行分析。从题目给出的表中可以得出以下信息:1) 表中分别给出正常人与患者各30组数据,每组数据各包含7种元素(Zn、Cu、Fe、Ca、Mg、K、Na)在人体中的含量。通过对这些数据进行分析,可以从中找出数据差异,根据判别法确定判别标准。利用所得判别标准,与就诊人员的化验结果比较可以判别其是否患有肾炎;2) 采用某医院化验的30名健康人和30名肾炎患者体内的7种微量元素的含量作为基础数据,从中选取20名健康人和20名肾炎患者的数据作为样本,进行采样分析,建立判定模型,并利用剩余的 10 名健康人和 10 名患者对判定模型进行正确率检验,即可得到判定模型的正确率。3) 利用不同的判别法,用Matlab软件编程对数据进行处理,得到相应判别标准。将就诊人员数据与判别值比较,即可对就诊人员是否患病做出明确判断。这样就解决了第二问;4) 在第一问基础上利用EXCEL将各元素比重进行作图分析,即可直观地确定各种元素的权重,从而筛选出关键因素。这样就解决了第三问;5) 在第四问中将第三问得出的关键元素对应的数据的在判别程序中保留,其余元素的数据删除。再利用Matlab软件对就诊人员数据进行处理,判断其是否患病。6) 在第五问中,将第二问与第四问所得结果进行直观比较,观察其差异进行详细分析。3 模型假设1) 表中所给数据全部正确;2) 除表中所给元素外,其它元素对肾炎的影响甚小;3) 外界条件对肾炎患者影响不计。4 符号说明注:约定0表示正常人,1表示患者,例如x0表示正常人数据。A:患者矩阵B:正常人矩阵S1:患者离差矩阵S2:正常人离差矩阵:正常人数据代表,即均值:患者数据代表,即均值:组A代表(平均值的判别值):组B代表(平均值的判别值):正常人数据协方差矩阵:患者数据协方差矩阵:患者数据马氏距离定义:正常人样本马氏距离定义:Fisher判别模型临界值:马氏距离判别模型判别函数5 模型建立 该问题的关键是如何判别一个人是否患有肾炎,属于分类问题,可以采用统计方法中的判别分析方法进行处理。题目只需区分病体和健康体,所以可以采用二类群体判别的方法。可选取判别模型中的Fisher判别模型、马氏距离判别模型和BP神经网络分类模型进行研究。5.1 不等协差阵的两总体Fisher判别模型[2][3]5.1.1 基本思想从两个总体中抽取具有p个指标的样品观测数据,借助方差分析的思想造一个判别函数或称判别式:y = c1x1 + c2x2 + … + cpxp其中系数c1,c2,…,cp 确定的原则是使两组间的区别最大,而使每个组内部的离差最小。有了判别式后,对于一个新样品,将它的p个指标值代入判别式中求出y值,然后与判别临界值(或称分界点后面给出)进行比较,就可以判别它应属于哪一个总体。5.1.2 建立过程将患者与正常人数据分别表示成矩阵如下:算出两组数据的代表,即平均值: (正常人均值) (患者均值) 其中,j = 1,…,7。 做新的矩阵A1,B1及两组数据的离差矩阵S1,S2如下:则有: 最优判别函数的系数C1,C2,…,C7为下述方程组的解: 即: 可以写出判别函数: (S-1)算出两组数据平均值的判别值:则临界值为:故若将待测样本值代入S-1式得出相应y值,可得出如下判别结果:1) 时,若,则判别该对象患病,属于组A;若,则判别该对象正常,属于组B;2) 时,若,则判别该对象正常,属于组B;若,则判别该对象患病,属于组A.5.2 马氏距离判别模型[2]5.2.1 基本思想首先根据已知分类的数据,分别计算各类的中心即分组(类)的均值。判别准则是对任给的一次观测,若它与第i类的中心距离最近,就认为它来自第i类。5.2.2 建立过程设,,,分别为A、B的均值向量和协方差阵。距离定义采用马氏距离,即: 根据问题要求,将G0对应于正常人数据组B,将G1对应于患者数据组A。首先计算X到A、B两个总体的距离,分别记为和,按距离最近准则判别归类,则可写成:记,则有:然后比较和的大小,按距离最近准则判别归类。① 若正常人与患者数据的协方差相同,由得到判别函数为: 其中,判别标准是② 若正常人与患者数据的协方差不同,即,则定义判别函数:5.3 BP神经网络分类模型[1][5]5.3.1 基本思想 基于误差反向传播(Back propagation)算法的多层前馈网络(Multiple - layer feed forward network ,简记为 BP 神经网络),是目前应用最成功和广泛的人工神经网络(如下图所示),它基于信息的正向传播和误差的反向回馈来训练整个 BP 神经网络,使得输出层误差的平方和达到最小。5.3.2 。省略部分。 179 21.0 35.0 1560 226 47.9 330 ;];X=[58.2 5.42 29.7 323 138 179 513 ; 106 1.87 40.5 542 177 184 427 ; 152 0.80 12.5 1332 176 128 646 ; 85.5 1.70 3.99 503 62.3 238 762.6; 144 0.70 15.1 547 79.7 71.0 218.5; 85.7 1.09 4.2 790 170 45.8 257.9; 144 0.30 9.11 417 552 49.5 141.5; 170 4.16 9.32 943 260 155 680.8; 176 0.57 27.3 318 133 99.4 318.8; 192 7.06 32.9 1969 343 103 553 ; 188 8.28 22.6 1208 231 1314 1372 ; 153 5.87 34.8 328 163 264 672.5; 143 2.84 15.7 265 123 73.0 347.5; 213 19.1 36.2 2220 249 62.0 465.8; 192 20.1 23.8 1606 156 40.0 168 ; 171 10.5 30.5 672 145 47.0 330.5; 162 13.2 19.8 1521 166 36.2 133 ; 203 13.0 90.8 1544 162 98.9 394.5; 164 20.1 28.9 1062 161 47.3 134.5; 167 13.1 14.1 2278 212 36.5 96.5 ; 164 12.9 18.6 2993 197 65.5 237.8; 167 15.0 27.0 2056 260 44.8 72.0 ; 158 14.4 37.0 1025 101 180 899.5; 133 22.8 31.3 1633 401 228 289 ; 169 8.0 30.8 1068 99.1 53.0 817 ; 247 17.3 8.65 2554 241 77.5 373.5; 185 3.90 31.3 1211 190 134 649.8; 209 6.43 86.9 2157 288 74.0 219.8; 182 6.49 61.7 3870 432 143 367.5; 235 15.6 23.4 1806 166 68.9 188 ;]; Ca=cov(A); Cb=cov(B); CA=inv(Ca); CB=inv(Cb); Ua=sum(A)./30; Ub=sum(B)./30; for i=1:30 Xa=X(i,:)-Ua; DA(i)=Xa*CA*Xa'; Xb=X(i,:)-Ub; DB(i)=Xb*CB*Xb'; w(i)=DA(i)-DB(i); end for i=1:30 if w(i)>0 x(i)=0; else x(i)=1; end end x Fisher判别模型主程序:clcclearA=[…]; %A数组赋值与马氏模型中A的赋值情况相同%B=[…]; %B数组赋值与马氏模型中B的赋值情况相同%X=[…]; %X数组赋值与马氏模型中X的赋值情况相同% Ua=sum(A)./30; Ub=sum(B)./30; d=(Ua-Ub)';EA=[Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;Ua;]EB=[Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;Ub;]; A0=(A-EA)'; B0=(B-EB)'; S1=A0*A; S2=B0*B; S=S1+S2; S0=inv(S); C=S0*d; m=A*C; Ya=sum(m)/30; n=B*C; Yb=sum(n)/30; Ye=(Ya+Yb)/2;for i=1:30 Y(i)=X(i,:)*C; if Y(i)>Ye x(i)=1; else x(i)=0; endendx BP神经网络分类模型程序:clearclcA=[…]; %A数组赋值与马氏模型中A的赋值情况相同%B=[…]; %B数组赋值与马氏模型中B的赋值情况相同%X=[…]; %X数组赋值与马氏模型中X的赋值情况相同%d=[A;B];q=premnmx(d);X=premnmx(X);X=X';p=q';t=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];net=newff(minmax(p),[3 1],{'tansig' 'logsig'},'traingdx');net.trainParam.show=50;net.trainParam.lr=0.1;net.trainParam.lr_inc=1.05;net.trainParam.epochs=1000;net.trainParam.goal=0.01;net=train(net,p,t);y=sim(net,p);w=sim(net,X)- 14 - 关 键 词: matlab 结果 程序 化验 数模 判别

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值