10.1判别分析10.1.1判别分析的基本概念医学研究中,常根据观察到的数据资料,对所研究的对象进行分类,如根据病人的各种症状、体征和各种检验结果,判别病人患的是哪一种疾病;根据细菌的形态和生化特征,判别其属于哪一种菌株等。判别分析是对已知有确切类别的一批样品资料,根据其判别指标(例如症状、体征、检验结果等)应用一定的统计方法建立判别函数(或量表),进而对给定的新样品判断其归属哪一类总体。根据资料的性质,可分为定性资料的判别分析和定量资料的判别分析;根据建立判别函数的判别准则,又有Fisher判别分析、Bayes判别分析、距离判别分析等方法。本节介绍国内常用的几种判别分析方法以及如何在SAS软件中实现。无论何种判别分析方法,其步骤为(以疾病诊断为例):收集训练样本。收集一批已知为G种不同类型的病人组成训练样本,作为训练样本的每个个体均需经金标准确诊;根据专业测定或调查每个病人对诊断可能有影响的体征或检测结果指标m项;选择判别方法。根据专业问题特性和资料的性质选择相应的判别分析方法,就训练样本资料建立判别函数(或判别量表),并作假设检验;回代考核。将训练样本每个个体的各项指标回代到所建立的判别函数,作出类别判断,并与训练样本的原确诊类别进行比较,计算回代符合率,以考核所建立函数的判别效果;前瞻考核。当回代符合率较高时,可用已确诊的新个体的各项指标代入判别函数,计算判别符合率(又称外推符合率),进一步考核所建立函数的效果。前瞻考核常见的方法有两种:一是当训练样本较大时,先将训练样本分成两部分,一部分用作建立判别函数,另一部分作为前瞻考核的个体;二是用刀切法或称交叉检验。这种方法的做法是将训练样本1到N个个体每次去掉一个,用其余N-1个样品拟合判别函数用以判别所去掉的1个样品的类别,如此求得训练样本判别函数判断与原确诊类别的符合率。10.1.2定性资料的最大似然判别法1.方法概述这种方法适合于全部或大部分指标为定性或分类变量,少量定量或数值变量指标则可转化为有序多分类变量;所研究医学问题的总体类别可以是两类或多类,各类间是一个互斥的完备集。从理论上讲,这种判别方法要求各指标(变量)间相互独立,实际应用中这种要求难以达到,则应尽量选择彼此独立或近似独立的指标,避免用彼此高度相关的指标,以提高运用该法的实际效果。作定性资料的最大似然判别分析,常将资料整理成表10.1的形式。设研究问题有G(≥2)个总体类别,记为G21iy,,y,y:y;判别指标有m项记为m21jx,,x,x:x。第j项指标jx有K种表现(或称水平),记为)K,,2,1k(xjk。对如表10.1形式的资料,可分别计算各类别下每项指标的各种表现的出现频率,即K1kijkijkijknnf(ijkn为频数)。当样本含量较大时,ijkf可作为条件概率)y/x(pijk的估计值,其意义是患第iy种疾病的患者出现第j种指标中第k种表现的可能性。对于第iy种疾病,m项指标中每项指标均有特定表现,同一指标,不同疾病的表现也不同。因此,对于未知类别个体,根据条件概率的意义和该个体的各指标表现,可通过综合比较各种疾病类别下所有m项指标的表现的条件概率,来判断该个体的疾病类别。根据概率定理中关于独立事件的乘法定理,第iy类别下m项指标某种表现同时出现的概率等于各指标条件概率之和,iy类别下m项指标某种表现发生的可能性称为联合概率或似然值,记为iL,则iL为:m1jijkimkik2ik1i)y/x(p)y/x(p)y/x(p)y/x(pL(10.1)对于某一样品,可分别求得Gi21L,,L,,L,L值,比较其值大小,从中挑选最大值,假设为iL,则其样品属于iy类。实际应用中为简化计算常将条件概率作如下转换:101)y/x(plglijkijk(10.2)称ijkl为评分指数,其取值在—10~10之间,则iy类下的似然值为:m1jijkilL在最大似然判别法中,再考虑各类总体类别的先验概率)y(pi,则称Bayes公式判别法。其原理是按Bayes逆概率公式,当某样品在各类别指标出现其特定表现时,计算该样品a归属各类别的事后概率。m1jijkG1iim1jijkii)y/x(p)y(p)y/x(p)y(p)a|y(p(10.3)由于式(10.3)中分母在各类)a/y(pi指标是相同的,所以只比较分子大小,与式(10.1)比较,差别在)y(pi。将)y(pi作如下转换:10)1)y(p(lgliiBayes公式判别法的评分指数计算公式为:im1jijkillL(10.4)2.应用实例的SAS程序例10.1某医院放射科拟用表10.1所示的12个放射学征象来判别4种常见先天性心脏病(y1:房间隔缺损,y2:室间隔缺损,y3:动脉导管未闭,y4肺动脉瓣狭窄),作定性资料的判别分析。表10.1用作判别的12项放射学征象指标XjxjkY1Y2Y3Y4例数%例数%例数%例数%X1X11001325.513.213.8X126093.82447.12580.62596.2X130023.90000X1446.31223.5412.900X15000013.200X2X2169.42345.1929.01350.0X224976.61427.5619.4830.8X23914.11427.51651.6519.2X3X314976.64384.33110026100X321523.4815.70000X4X412031.351100311001661.5X424468.800001038.5X5X5146.32956.91341.9623.1X526093.81733.31445.21765.4X530059.8412.9311.5X6X61641001325.5722.626100X62002345.192900X63001529.41548.400X7X713250511003110026100X723250000000X8X814976.62447.1001661.5X8246.31631.4619.41038.5X831117.21121.6619.400X8400001961.300X9X9134.73160.81341.913.8X923554.71019.61341.9934.6X932640.61019.6516.11661.5X10X1010000002284.6X10234.73670.6825.8415.4X1033046.947.892900X1043148.41121.61445.200X11X1115890.64180.4228826100X11269.41019.631200X12X121813.839782278.626100X1225086.21122621.400SAS程序:DATAD1;INFILE'D1P10.DAT';%LETM=12;%LETG=4;ARRAYK(&M);ARRAYY(&M,&M,&M);K(1)=5;K(2)=3;K(3)=2;K(4)=2;K(5)=3;K(6)=3;K(7)=2;K(8)=4;K(9)=3;K(10)=4;K(11)=2;K(12)=2;/*表示各指标的水平数*/DOI=1TO&M;DOL=1TOK(I);DOJ=1TO&G;INPUTA@@;IFA=1THENB=-10;ELSEB=10*(LOG10(A/100)+1);Y(I,L,J)=ROUND(B,1);OUTPUT;END;END;END;FILEPRINT;DOI=1TO&M;DOL=1TOK(I);PUT@10'X('I','L')'@25Y(I,L,1)@35Y(I,L,2)@45Y(I,L,3)@55Y(I,L,4);END;END;RUN;将表10.2各类别各指标下的频率由其它软件建立数据文件,由D1P10.PRG程序调入。应根据具体问题修改指标数m和类别数G及各指标的水平数)i(k。将在LOG窗口中输出得分结果。10.1.3定量资料的两类Fisher判别1.方法概述由提出该法的Fisher而命名,适用于判别指标为定量的两类判别问题。它是将两种类型的对象所观察到的m项指标m21x,,x,x,用数学方法按一定的原则找到这m项指标的一个适当的线性组合作为一个综合指标,将两类事物加以区分的一种统计方法。其判别函数的形式为:mm2211xbxbxby(10.5)公式中的m21b,,b,b为待求解的线性判别函数的系数。(1)Fisher判别准则建立如公式(10.5)线性判别函数的准则是要求两类之间的变异尽可能大,而各类别内部的变异尽可能小,其中变异大小用离均差平方和表示。对A和B两类判别,要求比值BAn1k2BBkn1k2AAk2BB2AA)yy()yy()yy(n)yy(n(10.6)达到最大。式(10.6)中的nA和nB分别表示A类和B类的例数;Aky和Bky分别为A类与B类中第k类的y值;Ay和By分别为A类和B类的均数;y为两类合并后的均数。(2)建立判别函数的步骤依据判别准则,求线性判别函数,先求各类内各指标的离均差和或积和,计算公式为:An1k)A(j)A(jk)A(i)A(ikij)xx)(xx()A(lBn1k)B(j)B(jk)B(i)B(ikij)xx)(xx()B(l(10.7)再求两类离均差平方和及积和的合并值和差值id:)B(ij)A(ijijlll,)B(ii)A(iiiilll(10.8))B(i)A(iixxd(10.9)据此可建立下列方程组mmmm22m11m2mm22221211mm1212111dblblbldblblbldblblbl(10.10)通过解此联立方程组可得到判别系数bi,并建立线性判别函数。(3)求判别界值0y。将A类和B类的各指标的均数)A(ix和)B(ix代入线性判别函数,即可得到Ay和By,则2/)yy(yBA0,如果已知两类的先验概率Ap与Bp,则判别临界值0y为)PPln(2/)yy(yBABA0(10.11)(4)判别效果的假设检验。Fisher判别效果的检验是通过比较两类别多指标的总体均数有无差别来实现,其条件是两样本取自协方差阵相同的两个多元正态总体。其检验方法为F检验。2BABABABAD)nn)(2nn(mnn)1mnn(F(10.12)其中)2nn)(yy(DBABA2。自由度m1,1mnnBA2。(5)Fisher两类判别的SAS软件实现Fisher两类判别与前面介绍的线性回归方法,当因变量取二值时是等价的;同时,与后述的Bayes判别分析的效果也是等价的。虽然Fisher两类判别、二值回归判别法和两类Bayes判别法所求得的线性判别函数不完全相同,这是Fisher线性判别函数的不唯一性造成的,其判别效果是一致的。因此,Fisher判别分析在SAS软件实现可通过procreg过程和procdiscrim过程来实现。Fisher两类判别若要挑选对判别分类作用有统计意义的判别指标,可采用逐步回归法或Bayes逐步判别法(后述)。2.应用实例的SAS程序与分析结果例10.2某医疗单位对若干健康人和心肌梗塞病人的心电图作分析对比,寻找能区分两类患者的指标。这里仅选用其中3个指标,随机抽取10名健康人(10n,1g1)和6名病人(g=2,n2=6)训练样本数据如表10.2,用Fisher判别法作3个判别指标的两类判别分析。表10.210名健康人和6名心肌梗塞病人的心电图的3个指标数据。gkX1gkX2gkX3gk11436.7049.592.3212290.6730.022.4613352.5336.232.3614340.9138.282.4415332.8341.922.2816319.9731.422.4917361.3137.992.02183