10第10章--多元统计分析.docx

上传人:可****阿 文档编号:32680382 上传时间:2022-08-09 格式:DOCX 页数:29 大小:1.29MB
返回 下载 相关 举报
10第10章--多元统计分析.docx_第1页
第1页 / 共29页
10第10章--多元统计分析.docx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《10第10章--多元统计分析.docx》由会员分享,可在线阅读,更多相关《10第10章--多元统计分析.docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第10章 多元统计分析多元统计分析是研究多个变量之间相互依赖关系以及内在统计规律性的一门统计学科。多元统计分析是实现定量分析的有效工具,在很多工程领域有着广泛使用。10.1 多元线性回归多元回归分析是研究多个变量之间关系的回归分析方法。按回归模型类型可划分为线性回归分析和非线性回归分析,我们这里介绍多元线性回归模型。10.1.1 多元线性回归模型1.模型多元线性回归分析的模型为(10.1)式中都是与无关的未知参数,其中称为回归系数。现得到个独立观测数据,由得(10.2)记,(10.3),.式可以表示为(10.4)其中为阶单位矩阵。2.参数估计模型中的参数用最小二乘法估计,即应选取估计值,使当,

2、时,误差平方和(10.5)达到最小。为此,令,.得(10.6)经整理化为以下正规方程组(10.7)正规方程组的矩阵形式为,(10.8)当矩阵列满秩时,为可逆方阵,式的解为.(10.9)将代回原模型得到的估计值.(10.10)而这组数据的拟合值为,拟合误差称为残差,可作为随机误差的估计,而(10.11)为残差平方和(或剩余平方和)。3.回归模型的假设检验对总平方和进行分解,有,(10.12)其中是由定义的残差平方和,反映随机误差对的影响;称为回归平方和,反映自变量对的影响。上面的分解中利用了正规方程组。因变量与自变量之间是否存在如模型所示的线性关系是需要检验的,显然,如果所有的 都很小,与的线性

3、关系就不明显,所以可令原假设为.当成立时由分解式定义的满足.(10.13)在显著性水平,有上分位数,若,接受;否则,拒绝。注10.1 接受只说明与的线性关系不明显,可能存在非线性关系,如平方关系。还有一些衡量与相关程度的指标,如用回归平方和在总平方和中的比值定义复判定系数.(10.14)称为复相关系数,越大,与相关关系越密切,通常,大于0.8(或0.9)才认为相关关系成立。4.回归系数的假设检验和区间估计当上面的被拒绝时,不全为零,但是不排除其中若干个等于零。所以应进一步作如下个检验:().由于,其中是中的第元素,用代替,当成立时,(10.15)对给定的,若,接受;否则,拒绝。式也可用于对作区

4、间估计(),在置信水平下,的置信区间为.(10.16)其中。10.1.2 MATLAB统计工具箱的回归分析命令MATLAB统计工具箱的回归命令很多,我们这里主要介绍线性回归的命令regress和逐步线性回归命令stepwise。1.线性回归命令regress线性回归命令regress既可以用于第5章的一元线性回归分析,也可以用于多元线性回归,其调用格式为b,bint,r,rint,stats=regress(y,X,alpha)上面命令中,各参数的含义如下:(1),输入参数y,X分别对应上面的列向量和矩阵,返回值b为回归系数的点估计,对一元线性回归分析,取即可。(2)alpha为显著性水平(缺

5、省值为0.05)。(3)bint为回归系数的区间估计。(4)r和rint分别为残差及其置信区间。(5)stats是用于检验回归模型的统计量,有4个数值,第一个是相关系数的平方(也称为拟合优度),越接近1,说明回归方程越显著;第二个是值,(这里是分布的上分位数)时,拒绝,越大,说明回归方程越显著;第三个是与对应的概率,时拒绝,回归模型成立;第四个是模型方差的估计值。例10.1 某品种水稻糙米含镉量(mg/kg)与地上部生物量(g/kg)及土壤含镉量(100mg/kg)的8组观测值见表10.1。试建立多元线性回归模型。表10.1 某水稻糙米含镉量的观测值1.3711.349.670.7617.67

6、15.9115.745.419.081.893.0610.20.050.731.036.254.931.862.335.780.060.430.873.86解 数学原理我们这里就不赘述了。利用MATLAB求得的线性回归模型为,模型的检验统计量如下:,模型整体上通过了检验。模型中系数的置信区间为,置信区间包含了零点,说明变量是不显著的,去掉变量后,得到的线性回归模型为,模型的检验统计量如下:,模型也通过了检验。画出该模型的残差及残差的置信区间如图10.1所示。图10.1 残差及残差的置信区间 通过图10.1可以看出,第4个样本观测值是奇异值,删除第4个样本观测值,重新建立的线性回归模型为,模型的

7、检验统计量如下:,最后的模型也过了检验。计算及画图的MATLAB程序如下:clc, clear, close alla=1.37, 11.34, 9.67, 0.76, 17.67, 15.91, 15.74, 5.419.08, 1.89, 3.06, 10.2, 0.05, 0.73, 1.03, 6.254.93, 1.86, 2.33, 5.78, 0.06, 0.43, 0.87, 3.86;X=ones(8,1),a(1,2,:); y=a(3,:);b,bint,r,rint,stats=regress(y,X)rcoplot(r,rint) %画出残差及其置信区间X2=ones

8、(8,1),a(1,:); b2,bint2,r2,rint2,stats2=regress(y,X2)figure, rcoplot(r2,rint2) X3=X2; X3(4,:)=; y3=y; y3(4)=;b3,bint3,r3,rint3,stats3=regress(y3,X3)figure, rcoplot(r3,rint3)2.逐步线性回归命令stepwise逐步线性回归的数学原理我们就不介绍了,感兴趣的读者可以参看其他的一些参考资料。在MATLAB统计工具箱中用作逐步回归的命令是stepwise,它提供了一个交互式画面,通过这个工具你可以自由地选择变量,进行统计分析,其通常

9、用法是:stepwise(x,y,inmodel,alpha)其中x是自变量数据,y是因变量数据,分别为(为观测值的个数,为自变量的个数,即x的第1列不包含数据1)和矩阵,inmodel是矩阵x的列数的指标,给出初始模型中包括的子集(缺省时设定为空),alpha为显著性水平。运行stepwise命令后产生一个 Stepwise Regression 窗口,显示回归系数及其置信区间,和其它一些统计量的信息。蓝色表示在模型中的变量,红色表示从模型中移去的变量。在这个窗口中有Export按钮,点击Export按钮产生一个菜单,可以向 MATLAB工作区传递参数,它们给出了统计计算的一些结果。下面通过

10、一个例子说明stepwise的用法。例10.2 水泥凝固时放出的热量与水泥中4种化学成分有关,今测得一组数据如表10.2,试用逐步回归来确定一个线性模型。表10.2 水泥放出热量及化学成分的观测值序号12345678910111213711111711312211111026295631525571315447406668615886917221842398605220473322644222634121278.574.3104.387.695.9109.2102.772.593.1115.983.8113.3109.4编写MATLAB程序如下:clc, cleara=load(gtable1

11、0_2.txt);x=a(1:4,:); y=a(5,:); stepwise(x,y,1:4)运行上述程序,得到图10.2所示的图形界面。可以看出,不显著,点图形界面中的“All Steps”按钮,移去这两个变量后的统计结果如图10.3所示。图10.2 逐步回归交互式画面图10.3 逐步回归的最终结果图10.3中的两行用红色显示,表明它们已移去,从图中可以看出,虽然剩余标准差没有太大的变化,但是统计量的值明显增大,因此新的回归模型更好一些。求得最终模型为.10.2 聚类分析聚类分析又称群分析,它是研究分类问题的一种多元统计分析。所谓类,通俗地说,就是指相似元素的集合。要将相似元素聚为一类,通

12、常选取元素的许多共同指标,然后通过分析元素的指标值来分辨元素间的差距,从而达到分类的目的。聚类分析可以分为Q型聚类(样本聚类)、R型聚类(指标聚类)。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法等。本节主要介绍常用的系统聚类法、动态聚类法和模糊均值聚类法。10.2.1 系统聚类法设有个样品,每个样品测得项指标(变量),原始数据阵为.其中(;)为第个样品的第个指标的观测数据。1. 数据的变换处理由于样本数据矩阵由多个指标组成,不同指标一般有不同的量纲,为消除量纲的影响,通常需要进行数据变换处理。常用的数据变换方法有:(1)规格化变换规格化变换是从数据矩阵

13、的每一个变量值中找出其最大值和最小值,这两者之差称为极差,然后从每个变量值的原始数据中减去该变量值的最小值,再除以极差,就得到规格化数据,即有(;).(2)标准化变换首先对每个变量进行中心化变换,然后用该变量的标准差进行标准化,即有(;),其中,。记变换处理后的数据矩阵为.(10.17)2.样品间亲疏程度的测度计算研究样品的亲疏程度或相似程度的数量指标通常有两种:一种是相似系数,性质越接近的样品,其取值越接近于1或-1,而彼此无关的变量的相似系数则越接近于0,相似的归为一类,不相似的归为不同类。另一种是距离,它将每个样品看成维空间的一个点,个样品组成维空间的个点。用各点之间的距离来衡量各样品之

14、间的相似程度。距离近的点归为一类,距离远的点属于不同的类。(1)常用距离的计算令表示样品与的距离。常用的距离有闵氏(Minkowski)距离.当时,即绝对值距离。当时,即欧氏距离。当时,即车比雪夫距离。马氏(Mahalanobis)距离马氏距离是由印度统计学家马哈拉诺比斯于1936年定义的,故称为马氏距离。其计算公式为,这里表示矩阵的第行,表示观测变量之间的协方差阵,其中,这里。(2)相似系数的计算研究样品之间的关系,除了用距离表示外,还有相似系数。相似系数是描述样品之间相似程度的一个统计量,常用的相似系数有:夹角余弦将任何两个样品与看成维空间的两个向量,这两个向量的夹角余弦用表示,则,.当时

15、,说明两个样品与完全相似;接近1时,说明与相似密切;时,说明与完全不一样;接近0时,说明与差别大。把所有两两样品的相似系数都计算出来,可排成相似系数矩阵,其中。根据可对个样品进行分类,把比较相似的样品归为一类,不怎么相似的样品归为不同的类。皮尔逊相关系数第个样品与第个样品之间的相关系数定义为,其中,。实际上,就是两个向量与的夹角余弦,其中。若将原始数据标准化,满足,这时。,其中,可根据对个样品进行分类。3.基于类间距离的系统聚类系统聚类法是聚类分析方法中使用最多的方法。其基本思想是:距离相近的样品(或变量)先聚为一类,距离远的后聚成类,此过程一直进行下去,每个样品总能聚到合适的类中。它包括如下

16、步骤:(1)将每个样品独自聚成一类,构造个类。(2)根据所确定的样品距离公式,计算个样品(或变量)两两间的距离,构造距离矩阵,记为。(3)把距离最近的两类归为一新类,其它样品仍各自聚为一类,共聚成类。(4)计算新类与当前各类的距离,将距离最近的两个类进一步聚成一类,共聚成类。以上步骤一直进行下去,最后将所有的样品聚成一类。(5)画聚类谱系图。(6)决定类的个数及各类包含的样品数,并对类做出解释。正如样品之间的距离可以有不同的定义方法一样,类与类之间的距离也有各种定义。例如可以定义类与类之间的距离为两类之间最近样品的距离,或者定义为两类之间最远样品的距离,也可以定义为两类重心之间的距离等。类与类

17、之间用不同的方法定义距离,就产生了不同的系统聚类方法。常用的系统聚类方法有,最短距离法、最长聚类法、中间距离法、重心法、类平均法、可变类平均法、可变法和离差平方和法。10.2.2 MATLAB聚类分析的相关命令及应用1.MATLAB聚类分析的相关命令常用的MATLAB聚类分析相关命令说明如下。(1)pdistB=pdist(A)计算矩阵A(看作个维行向量,每行是一个对象的数据)中两两对象间的欧氏距离。对于有个对象组成的数据集,共有个两两对象组合。输出B是包含距离信息的长度为的向量。可用squareform函数将此向量转换为方阵,这样可使矩阵中的元素对应原始数据集中对象和间的距离。B=pdist

18、(A,metric)用metric指定的方法计算矩阵A中对象间的距离。metric可取表10.3中的特征字符串值。表10.3 metric取值及含义字符串 含 义euclidean 欧氏距离(缺省值)seuclidean 标准欧氏距离cityblock 绝对值距离minkowski Minkowski距离chebychev Chebychev距离mahalanobis Mahalanobis距离hamming 海明距离(Hamming距离)cosine 1两个向量夹角的余弦correlation 1样本的相关系数spearman 1样本的Spearman秩相关系数jaccard 1Jaccar

19、d系数custom distance function 自定义函数距离B=pdist(A,minkowski,p)用Minkowski距离计算矩阵A中对象间的距离。p为闵氏距离计算用到的指数值,缺省值为2。(2)linkageZ=linkage(B)使用最短距离算法生成具层次结构的聚类树。输入矩阵B为pdist函数输出的维距离行向量。Z=linkage(B, method)使用由method指定的算法计算生成聚类树。method可取表10.4中特征字符串值。表10.4 method取值及含义 字符串 含 义 single 最短距离(缺省值) average 无权平均距离 centroid 重心

20、距离 complete 最大距离median 赋权重心距离 ward 离差平方和方法(Ward方法)weighted 赋权平均距离输出Z为包含聚类树信息的矩阵。聚类树上的叶节点为原始数据集中的对象,由1到,它们是单元素的类,级别更高的类都由它们生成。对应于Z中第行每个新生成的类,其索引为,其中为初始叶节点的数量。Z的第1列和第2列,即Z(:,1:2)包含了被两两连接生成一个新类的所有对象的索引。生成的新类索引为。共有个级别更高的类,它们对应于聚类树中的内部节点。Z的第三列Z(:,3)包含了相应的在类中的两两对象间的连接距离。(3)clustercluster的主要调用格式如下:T=cluste

21、r(Z,cutoff,c) %其中Z为linkage输出的聚类树,c是聚类的阈值,小于c的节点为一类。返回值T为聚类结果。T=cluster(Z,maxclust,n) %按照指定的聚类准则,划分成n类。(4)zsore(A)对数据矩阵进行标准化处理,处理方式为,其中是矩阵每一列的均值和标准差。(5)Hdendrogram(Z,P)由linkage产生的数据矩阵Z画聚类树状图。P是结点数,默认值是30。(6)squareformZOut=squareform(yIn)将pdist输出距离的行向量yIn转换为方阵ZOut。2.两种常用的系统聚类法(1)最短距离法最短距离法定义类与之间的距离为两类

22、间最邻近的两样品之距离,即与两类间的距离定义为.设类与合并成一个新类记为,则任一类与的距离是.最短距离法聚类的步骤如下:定义样品之间距离,计算样品两两距离,得一距离矩阵记为,开始每个样品自成一类,显然这时。找出的非对角线最小元素,设为,则将和合并成一个新类,记为,即。给出计算新类与其它类的距离公式:.将中第行及列,用上面公式合并成一个新行新列,新行新列对应,所得到的矩阵记为。对重复上述类似的、两步得到。如此下去,直到所有的元素并成一类为止。如果某一步中非对角线最小的元素不止一个,则对应这些最小元素的类可以同时合并。为了便于理解最短距离法的计算步骤,下面举一个简单例子。例10.3 设抽出5个样品

23、,每个样品只测1个指标,它们是2, 3, 3.5, 7, 9,试用最短距离法对5个样品进行分类。解 (1)定义样品间距离采用欧氏距离,计算样品两两距离,得距离矩阵,如表10.5所示。表10.5 表011.557100.5461.50.503.55.5543.502765.520(2)找出中非对角线最小元素是0.5,即,则将与合并成一个新类,记为。(3)计算新类与其它类的距离,按公式,.即将表的第2,3列值取较小值合成新列,第2,3行值取较小值合成新行,得表,如表10.6所示。表10.6 表0157103.55.553.50275.520(4)找出中非对角线最小元素是1,则将相应的两类和合并为,

24、然后再按公式计算各类与的距离,即将相应的两行两列归并为一行一列,新的行(列)由原来的两行(列)中对应的较小值组成,计算结果得表,如表10.7所示。表10.7 表03.55.53.5025.520(5)找出中非对角线最小元素是2,则将与合并成,最后再按公式计算与的距离,即将相应的两行两列归并成一行一列,新的行(列)由原来的两行(列)中对应的较小值组成,得表,如表10.8所示。表10.8 表03.53.50最后,将和合并成,上述合并过程可用图10.4表达。纵坐标的刻度是并类的距离。图10.4 最短距离法聚类图由图10.4看出分成两类及比较合适。计算及画聚类图的MATLAB程序如下clc, clea

25、r, close alla=2,3,3.5,7,9;x=pdist(a) %求聚类对象两两之间的欧氏距离xc=squareform(x) %变换成距离方阵,方便观察对象之间的距离y=linkage(x) %产生聚类树name=cellstr(strcat(w,int2str(1:5); %构造标注名称的字符串细胞数组dendrogram(y,label,name) %画聚类图n=input(请输入分类的类别数(输入后请回车)n= n);T=cluster(y,maxclust,n)最短距离法也可用于指标(变量)分类,分类时可以用距离,也可以用相似系数。但用相似系数时应找最大的元素并类,也就是把

26、公式中的min换成max。(2) 最长距离法定义类与类之间距离为两类最远样品的距离,即.最长距离法与最短距离法的合并步骤完全一样,也是将各样品先自成一类,然后将非对角线上最小元素对应的两类合并。设某一步将类与合并为,则任一类与的距离用最长距离公式为.再找非对角线最小元素对应的两类并类,直至所有的样品全归为一类为止。可见,最长距离法与最短距离法只有两点不同,一是类与类之间的距离定义不同;二是计算新类与其它类的距离所用的公式不同。例10.4(续例10.3)设抽出5个样品,每个样品只测1个指标,它们是2, 3, 3.5, 7, 9,试用最长距离法对5个样品进行分类。解 这里我们使用马氏距离,利用MA

27、TLAB软件画出的聚类图见图10.5,从图10.5可以看出聚类效果和例10.3是一样的。图10.5 基于最长距离的聚类图计算及画图的MATLAB程序如下clc, clear, close alla=2, 3, 3.5, 7, 9;x=pdist(a,mahalanobis) %求聚类对象两两之间的马氏距离y=linkage(x,complete) %利用最长距离法产生聚类树name=cellstr(int2str(1:5); %构造标注名称的字符细胞数组T=cluster(y,maxclust,2) %划分成两类10.2.3 动态聚类法用系统聚类法聚类时,随着聚类样本对象的增多,计算量会迅速增

28、加,而且聚类结果谱系图会十分复杂,不便于分析。特别是样品的个数很大(如)时,系统聚类法的计算量非常大,将占据大量的计算机内存空间和较多的计算时间,甚至会因计算机内存或计算时间的限制而无法进行。为了改进上述缺点,一个自然的想法是先粗略地分一下类,然后按某种最优原则进行修正,直到将类分得比较合理为止。基于这种思想就产生了动态聚类法,也称逐步聚类法。动态聚类适用于大型数据。动态聚类法有许多种方法,这里介绍一种比较流行的动态聚类法均值法,它是一种快速聚类法,该方法得到的结果简单易懂,对计算机的性能要求不高,因而应用广泛。该方法由麦克奎因(Macqueen)于1967年提出。算法的思想是假定样本集中的全

29、体样本可分为类,并选定个初始聚类中心,然后,根据最小距离原则将每个样本分配到某一类中,之后不断迭代计算各类的聚类中心,并依据新的聚类中心调整聚类情况,直到迭代收敛或聚类中心不再改变。均值聚类算法最后将总样本集划分为个子集:,它们满足下面条件:(1);(2)();(3),()。设()为个聚类中心,记,使最小的聚类是误差平方和准则下的最优结果。均值聚类算法描述如下:(1)初始化。设总样本集是个样品组成的集合,聚类数为(),将样本集任意划分为类,记为,计算对应的个初始聚类中心,记为,并计算。(2)(),按最小距离原则将样品()进行聚类,即若,则,。重新计算聚类中心,式中,为当前类中的样本数目。并重新

30、计算。(3)若连续两次迭代的不变,则算法终止,否则算法转(2)。注10.2 实际计算时,可以不计算,只要聚类中心不发生变化,算法即可终止。MATLAB中实现均值聚类的命令是kmeans,其调用格式为idx,C=kmeans(X,k,Name,Value)其功能是将数据矩阵X聚成k类,使得样品到类中心距离平方和最小,其中默认使用欧氏距离。输入X为观测数据,行为个体,列为指标。输出idx为个元素的列向量,包含每个样品属于哪一类的信息;C为聚类中心,每一行表示一个类的中心。Name是某种属性,例如可以通过Name属性指定距离和迭代次数,Value是对应的属性值。例10.5 已知聚类的指标变量为,四个

31、样本点的数据分别为,.试用均值聚类分析把样本点分成2类。解 现要分为两类和类,设初始聚类为,则初始聚类中心为类:为值,即。类:.计算每个数据点到聚类中心的距离,;,;,;,;得到新的划分为:,新的聚类中心为类:。类:为值,即.重新计算每个样本点到聚类中心的距离,;,;,;,;所以,得新的划分为:,。可见,新的划分与前面的相同,聚类中心没有改变,聚类结束。计算的MATLAB程序如下clc, cleara=1 3; 1.5 3.2; 1.3 2.8; 3 1; %输入数据IDX,C=kmeans(a,2) %IDX返回的是聚类编号,C的每一行是一个聚类中心。例10.6(续例10.4)设抽出5个样品

32、,每个样品只测1个指标,它们是2, 3, 3.5, 7, 9,试用均值聚类法把5个样品分成两类。解 进行均值聚类的MATLAB程序如下:clc, cleara=2,3,3.5,7,9; %输入数据IDX,C=kmeans(a,2) %IDX返回的是聚类编号,C的每一行是一个聚类中心。聚类效果和例10.4的聚类效果是一样的。10.2.4 模糊均值聚类将均值聚类算法改进为模糊均值聚类算法的方法如下。设总样本集是个样品组成的集合,为预定的类别数目,为每个聚类的中心,表示样品对第类的隶属度。用隶属度定义的聚类损失函数可以写为,(10.18)其中,是一个可以控制聚类结果的模糊程度的常数。在不同的隶属度定

33、义方法下,最小化式的损失函数,就得到不同的模糊聚类方法。其中最有代表性的是模糊均值方法,它要求一个样本对于各个聚类的隶属度之和为1,即.(10.19)在条件式下求式的极小值,令对和的偏导数为0,可得必要条件,(10.20).(10.21)用迭代方法求解式和式,就是模糊均值算法。算法步骤如下:Step1 初始化。设定聚类数目()和参数。设总样本集,样本数。要将样本集划分为类,记为,初始化个聚类中心(聚类中心取为各类的几何中心),记为。Step2 重复下面的运算,直到各聚类中心稳定。(1)用当前的聚类中心根据式计算隶属度;(2)用当前的隶属度按式更新计算各聚类中心。当算法收敛时,就得到了各类的聚类

34、中心和各个样本对于各类的隶属度值,从而完成了模糊聚类。例10.7(续例10.5) 已知聚类的指标变量为,四个样本点的数据分别为,.试用模糊均值聚类分析把样本点分成2类。解 设模糊均值聚类算法中。现要分为两类和类,初始时,设,。则类(各点的隶属度均为1)聚类中心的坐标;类(各点的隶属度均为1)聚类中心的坐标为坐标值。计算每个数据点到中心的距离,类似地,计算得,计算得到4个数据点到类中心的距离分别为,.计算4个数据点对类的隶属度,同理,4个数据点对类的隶属度为,.重新计算聚类中心:对类:,对类,类似计算得聚类中心。即得新的聚类中心为:,。利用式,计算得到聚类损失函数所以,在0.001的误差范围内,

35、认为得到的新聚类中心与前面的相同,没有改变,聚类结束。根据最大隶属度原则,把聚为一类,自成一类。计算的MATLAB程序如下:clc, clearG=1,3;1.5,3.2;1.3,2.8;3,1; %每行是一个对象,每列是一个指标的值c,U=fcm(G,2) %c的每行是一类的聚类中心,U的每列是一个对象的隶属度10.3 判别分析在我们的日常生活和工作实践中,常常会遇到判别分析问题,即根据历史上划分类别的有关资料和某种最优准则,确定一种判别方法,判定一个新的样本归属哪一类。例如,某医院有部分患有肺炎、肝炎、冠心病、糖尿病等病人的资料,记录了每个患者若干项症状指标数据。现在想利用现有的这些资料找

36、出一种方法,使得对于一个新的病人,当测得这些症状指标数据时,能够判定其患有哪种病。常用的判别分析方法主要包括距离判别、贝叶斯判别、费歇尔判别等,本节介绍距离判别。10.3.1 距离判别法1.两总体情形设有两个总体和,是一个样品(维),如能定义到和的距离分别为和,则可用如下的规则进行判别:(10.22)判别分析时,我们通常使用马氏(Mahalanobis)距离,因为它是无量纲的。马氏距离定义如下:,(10.23)其中分别为和的均值和协方差阵。(1)当时 ,令,于是判别规则可表示为(10.24)这个规则取决于的值,通常称为判别函数,由于它是的线性函数,又称为线性判别函数,线性判别函数使用起来最方便

37、。当未知时,可通过算出对应的样本均值和样本协方差值来代替。设是来自的个样本点, 是来自的个样本点,则样本的均值与协方差为,(10.25),(10.26)其中,.对于待测样本,其判别函数定义为,判别准则为(10.27)(2)当两个总体协方差阵与不等时可用作判别函数,它是的二次函数。 2.多总体情形(1)协方差阵相同设有个总体,它们的均值分别为,协方差阵为。类似于两总体的讨论,判别函数为,(10.28)相应的判别规则是(10.29)当未知时,设从中抽取的样本为,则它们的估计为,(10.30),(10.31)其中,。(2)协方差阵不相同这时判别函数为,相应的判别规则为当,未知时,的估计使用式,的估计

38、为.3.应用实例例10.8 两种朦虫Af和Apf已由生物学家W.L.Gorgna和W.W.Wirth于1981年根据它们的触角长度和翼长加以区分,见表10.9。根据已知的数据建立判别模型,并对触角长度和翼长分别为1.24,1.80,1.28,1.84,1.40,2.04的三个样本进行判别。表10.9 朦虫触角长度和翼长数据Af触角长度/mm1.241.361.381.381.381.41.481.541.58翼长/mm1.721.741.641.821.901.71.821.822.08Apf触角长度/mm1.141.161.201.261.281.30翼长/mm1.781.961.862.0

39、02.001.96解 令Af,Apf,样品是二维的,其中为触角长度,为翼长,共15个样品,其中9个属于Af,6个属于Apf,由样本计算得到样本均值和协方差阵分别为,设任给一朦虫,它到Af和Apf的马氏距离分别为,则有,判别函数.当,故判断Af;当时,故也判断Af;当时,故仍判断Af。计算的MATLAB程序如下:clc, clear, syms x1 x2a=1.24, 1.36, 1.38, 1.38, 1.38, 1.4, 1.48, 1.54, 1.581.72, 1.74, 1.64, 1.82, 1.90, 1.7, 1.82, 1.82, 2.08;b=1.14, 1.16, 1.2

40、0, 1.26, 1.28, 1.301.78, 1.96, 1.86, 2.00, 2.00, 1.96;mu1=mean(a), mu2=mean(b) %求均值s1=cov(a), s2=cov(b) %计算协方差阵d1=x1-mu1(1),x2-mu1(2)*inv(s1)*x1-mu1(1);x2-mu1(2); %马氏距离的平方d1=expand(d1); d1=vpa(d1,8)d2=x1-mu2(1),x2-mu2(2)*inv(s2)*x1-mu2(1);x2-mu2(2);d2=expand(d2); d2=vpa(d2,8)Wx=(d2-d1)/2; Wx=vpa(Wx,

41、7) %定义判别函数x=1.24,1.80; 1.28,1.84; 1.40,2.04; %待判样本点y=subs(Wx,x1,x2,x(:,1),x(:,2) %代入待判样本点在MATLAB中,判别分析的命令为fitcdiscr,其调用格式为:obj=fitcdiscr(X,Y,Name,Value)其中X为训练样品矩阵,每一行是一个样本点,Y指明训练集中每一行属于的类别。Name,Value是某个属性及对应的属性值。例如属性DiscrimType的取值可以为linear (缺省值) | quadratic | diagLinear | diagQuadratic | pseudoLinea

42、r | pseudoQuadratic,其各个取值的含义见表10.10。表10.10 DiscrimType的取值含义值描述协方差处理linear正则化线性判别分析(LDA)所有总体有相同的协方差矩阵diaglinearLDA所有总体有相同的对角协方差矩阵pseudolinearLDA所有总体有相同的协方差矩阵,软件使用伪逆变换协方差矩阵quadratic二次判别分析(QDA)各个总体具有不同的协方差矩阵diagquadraticQDA各个总体具有不同的对角协方差矩阵pseudoquadraticQDA各个总体具有不同的协方差矩阵,软件使用伪逆变换协方差矩阵新样品的预测使用命令predict,

43、调用格式为label=predict(obj,X)其中obj是fitcdiscr的返回值,X为新样品的数据矩阵,label是新样品的分类标号。例10.8的直接使用MATLAB工具箱的计算程序如下:clc, cleara=1.24, 1.36, 1.38, 1.38, 1.38, 1.4, 1.48, 1.54, 1.581.72, 1.74, 1.64, 1.82, 1.90, 1.7, 1.82, 1.82, 2.08;b=1.14, 1.16, 1.20, 1.26, 1.28, 1.301.78, 1.96, 1.86, 2.00, 2.00, 1.96;c=ones(size(a,1),1);2*ones(size(b,1),1); %类别编号obj=fitcdiscr(a;b,c,DiscrimType,quadrat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁