MATLAB数据分析方法-判别分析_第1页
MATLAB数据分析方法-判别分析_第2页
MATLAB数据分析方法-判别分析_第3页
MATLAB数据分析方法-判别分析_第4页
MATLAB数据分析方法-判别分析_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB数据分析方法

第4章判别分析判别分析的基本思想是根据已知类别的样本所提供的信息,总结出分类的规律性,建立判别公式和判别准则,判别新的样本点所属类型。本章介绍距离判别分析、Bayes判别分析极其MATLAB软件的实现。

4.1距离判别分析4.1.1判别分析的概念在一些自然科学和社会科学的研究中,研究对象用某种方法已划分为若干类型,当得到的一个新样品数据(通常是多元的),要确定该样品属于已知类型中的哪一类,这样的问题属于判别分析.从统计数据分析的角度,可概括为如下模型:设有k个总体,它们都是p元总体,其数量指标是

1)若总体的分布函数是已知,对于任一新样品数据,判断它来自哪一个总体。

2)通常各个总体的分布是未知的,由从各个总体取得的样本(训练样本)来估计。一般,先估计各个总体的均值向量与协方差矩阵。原则:1.从统计学的角度,要求判别准则在某种准则下是最优的,例如错判的概率最小等。

2.根据不同的判别准则,有不同的判别方法,这里主要介绍距离判别和Bayes判别

4.1.2距离的定义

1.闵可夫斯基距离设有n维向量称绝对距离称称为n维向量x,y之间的闵可夫斯基距离,其中为常数。欧氏距离显然,当r=2和1时闵可夫斯基距离分别为欧氏距离和绝对距离.(1)同一总体的两个向量之间的马氏距离其中

为总体协方差矩阵,通常取

为实对称正定矩阵.显然,当

为单位矩阵时马氏距离就是欧氏距离.设有n维向量,则称为n维向量x,y之间的马氏距离.2.马氏距离马氏距离是由印度统计学家马哈拉诺比斯(PCMahalanobis)提出的,由于马氏距离具有统计意义,在距离判别分析时经常应用马氏距离:(4.1.1)(2)一个向量到一个总体的马氏距离总体G

的均值向量为μ,协方差矩阵为Σ.则称为n维向量x与总体G的马氏距离.

MATLAB中有一个命令:d=mahal(Y,X),计算X矩阵每一个点(行)至Y矩阵中每一个点(行)的马氏距离。其中Y的列数必须等于X的列数,但它们的行数可以不同。X的行数必须大于列数。输出d是距离向量。

(4.1.2)(3)两个总体之间的马氏距离设有两个总体G1,G2,两个总体的均值向量分别为

,协方差矩阵相等,皆为Σ,则两个总体之间的马氏距离为通常,在判别分析时不采用欧氏距离的原因在于,该距离与量纲有关.例如平面上有A,B,C,D四个点,横坐标为代表重量(单位:kg),纵坐标代表长度(单位:cm),如下页图。

(4.1.3)这时显然AB>CD如果现在长度用mm为单位,重量的单位保持不变,于是A点的坐标为(0,50),B点的坐标为(0,100),此时计算线段的长度为此时,AB<CD这表明欧氏距离有一个缺陷,当向量的分量是不同的量纲时欧氏距离的大小竟然与指标的单位有关.而马氏距离则与量纲无关.

4.1.3两总体的距离判别分析先考虑两个总体的情况。设,为两个不同的p元已知总体,的均值向量是,,的协方差矩阵是,.设是一个待判样品,距离判别准则为(4.1.4)即当到的马氏距离不超过到的马氏距离时,判来自;反之,判来自.由于马氏距离与总体的协方差矩阵有关,所以利用马氏距离进行判别分析需要分别考虑两个总体的协方差矩阵是否相等.1.两个总体协方差矩阵相等的情况设有两个总体G1,G2,均值分别为,协方差矩阵相等为Σ。考虑样品x到两个总体的马氏距离平方差:其中,令于是距离判别准则为(4.1.6)

由于总体的均值、协方差矩阵通常是未知的,数据资料来自两个总体的训练样本,于是用样本的均值、样本的协方差矩阵代替总体的均值与协方差.注意:若S1,S2分别为两个样本的协方差矩阵,则在两个总体协方差矩阵相等时,总体的协方差矩阵估计量其中n1,n2分别为两个样本的容量.得到教材中判别法则:(4.1.11)

(4.1.9)matlab判别步骤:

1.计算A、B两类的均值向量与协方差阵;ma=mean(A),mb=mean(B),S1=cov(A),S2=cov(B)2.计算总体的协方差矩阵其中n1,n2分别为两个样本的容量.3.计算未知样本x到A,B两类马氏平方距离之差

d=(x-ma)S-1(x-ma)’-(x-mb)S-1(x-mb)’4.若d<0,则x属于A类;若d>0,则x属于B类上述公式可以化简为:W(x)=(ma-mb)S-1(x-(ma+mb)/2)’若W(x)>0,x属于G1;若W(x)<0,x属于G2注意:1.此处ma,mb都是行向量;2.当x是一个矩阵时,则用ones矩阵左乘(ma+mb)/2以后,方可与x相减.※Matlab中直接进行数据的判别分析命令为classify,其调用格式class=classify(sample,training,group'type')例4.1.1(1989年国际数学竞赛A题)蠓的分类蠓是一种昆虫,分为很多类型,其中有一种名为Af,是能传播花粉的益虫;另一种名为Apf,是会传播疾病的害虫,这两种类型的蠓在形态上十分相似,很难区别.现测得6只Apf和9只Af蠓虫的触角长度和翅膀长度数据Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96);Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).

若两类蠓虫协方差矩阵相等,试判别以下的三个蠓虫属于哪一类?(1.24,1.8),(1.28,1.84),(1.4,2.04)解:假定两总体的协方差相等,源程序如下:apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96];af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];x=[1.24,1.8;1.28,1.84;1.4,2.04];%输入原始数据m1=mean(apf);

m2=mean(af);s1=cov(apf);s2=cov(af);s=(5*s1+8*s2)/13;%计算样本均值与协方差矩阵fori=1:3W(i)=(x(i,:)-1/2*(m1+m2))*inv(s)*(m1-m2)';%计算判别函数值

end;输出结果为:W=2.16401.35681.9802由判别准则(4.1.11)可知,三只蠓虫均属于Apf.直接调用MATLAB的判别分析命令classify。apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96];%总体apfaf=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];%总体aftraining=[apf;af];

%合并两个总体形成训练集n1=size(apf,1);

%总体apf中样本的行数n2=size(af,1);

%总体af中样本的行数group=[ones(1,n1),2*ones(1,n2)];

%apf中样本与af中样本类属x=[1.24,1.8;1.28,1.84;1.4,2.04];

%输入原始待判数据即sampleclass=classify(x,training,group)

%判别分析输出结果为:class=111由判别准则(4.1.11)可知,三只蠓虫均属于Apf.2.两个总体协方差矩阵不相等样品到两个总体的马氏距离平方分别为:令则判别准则:(4.1.13)当两个总体的协方差矩阵不等时,可以建立MATLAB的判别法如下:例4.1.2对例4.1.1的数据,假定两类总体的协方差矩阵不相等,重新判别上述三个蠓虫的类别.

解:程序如下:

apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96]

af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];x=[1.24,1.8;1.28,1.84;1.4,2.04];%输入原始数据

W=mahal(x,apf)-mahal(x,af)%计算判别函数

输出结果为:

W=1.76113.88123.6468

由判别准则(4.1.17)可知,三个蠓虫均属于Af.3.两个总体协方差矩阵相等的检验

以上两个例题的结果大相径庭,由此我们不禁要问究竟哪个结果更可靠?问题的关键在于:两类蠓虫总体的协方差矩阵是否相等?着手解决协方差矩阵的检验.

检验统计量:对给定的,查卡方分布表得到临界值.若,则接受H0,否则拒绝H0对于例4.1.1

,应用检验程序如下:n1=6;n2=9;p=2;s=(5*s1+8*s2)/13;Q01=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1));Q02=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2));结果:Q01=2.5784,Q02=0.7418对,查自由度为3的卡方分布chi2inv(0.05,3),得到临界值为:7.8147由于Q01<7.8147,Q02<7.8147,故认为两总体协方差矩阵相同。例4.1.1的那种解法更合理.

4.1.4多个总体的距离判别设有k个总体G1,G2,…,Gk,若判别某个体x属于哪个总体,则有如下方法:若存在某个正整数k0,使得mahal(y,Gk0)=min(mahal(y,Gi)),(i=1,2,…,k)则判别y属于第k0个总体.多个总体协方差矩阵是否相等的检验(参考第二章第2.2.2节)1.总体协方差矩阵相等时的判别设有k个总体G1,G2,…,Gk,是取自总体Gj

(j=1,2,…,k)的训练样本,记于是未知样品到各总体的判别函数为:其中判别准则为:若则x属于Gj0(4.1.21)解:根据例2.2.3的结论,可以认为三类总体协方差矩阵相等.A=[260 75 40 18 310 122 30 21 320 64 39 17;……260 135 39 29 280 40 37 17 250 117 36 16];G1=A(:,1:4);G2=A(:,5:8);G3=A(:,9:12);%三类总体数据x=[190673017;3151003519;240603718];%待判定的数据m(1,:)=mean(G1);m(2,:)=mean(G2);m(3,:)=mean(G3);s1=cov(G1);s2=cov(G2);s3=cov(G3);s=19*(s1+s2+s3)/57;fori=1:3forj=1:3

fork=1:3例4.1.3对例2.2.3表2.6中给出的身体指标化验数据,对三个待判数(190,67,30,17),(315,100,35,19),(240,60,37,18)进行判别归类。

w(j,k)=(x(i,:)-1/2*(m(j,:)+m(k,:)))*inv(s)*(m(j,:)-m(k,:))';ifw(j,k)<0q=0;break;elseq=1;end;end;ifq==1y(i)=j;end;end;end;输出结果:y=132

由以上判别准则可知,三个待判数据(190,67,30,17),(315,100,35,19),(240,60,37,18)分别属于G1,G3和G2,和

2.总体协方差矩阵不全相等时的判别计算样品到各总体马氏距离平方:记判别准则为:若则判别x属于Gj0(4.1.27)4.2判别准则的评价

当一个判别准则提出以后,还要研究它的优良性,即考察它的误判概率.以训练样本为基础的估计思想:若属于的样品被误判为属于的个数为个,属于的样品被误判为属于的个数为个,两类总体的样品总数为,则误判概率的估计为:

针对具体情况,通常采用回代法和交叉法进行误判概率的估计。(1)回代误判率设G1,G2为两个总体,X1,X2,…,Xm和Y1,Y2,…,Yn是分别来自G1,G2的训练样本,以全体训练样本作为m+n个新样品,逐个代入已建立的判别准则中判别其归属,这个过程称为回判。若属于G1的样品被误判为属于G2的个数为N1个,属于G2的样品被误判为属于G1的个数为N2个,则误判率估计为:

(4.2.1)(2)交叉误判率估计交叉误判率估计是每次剔除一个样品,利用其余的m+n-1个训练样本建立判别准则再用所建立的准则对删除的样品进行判别。对训练样本中每个样品都做如上分析,以其误判的比例作为误判率,具体步骤如下:①

从总体为G1的训练样本开始,剔除其中一个样品,剩余的m-1个样品与G2中的全部样品建立判别函数;②

用建立的判别函数对剔除的样品进行判别;③重复步骤①,②,直到G1中的全部样品依次被删除,又进行判别,其误判的样品个数记为④对G2的样品重复步骤①,②,③直到G2中的全部样品依次被删除又进行判别,其误判的样品个数记为于是交叉误判率估计为:

(4.2.2)例4.2.1

根据教材表4.1数据,判别两类总体的协方差矩阵是否相等,然后用马氏距离判别未知地区的类别,并计算回代误判率与交叉误判率.解:首先判断两组数据协方差是否相等.再建立判别准则,计算回代和交叉误判率,源程序如下:a=[503.1021.80332.30188.50…………769.9050.90605.0041.00];b=[89.709.50105.209.60…………1142.7030.80448.50334.20];x=[431.3047.20210.6014.40;1401.3047.20654.70350.701331.6057.00693.8020.40;279.9015.10118.505.10];n1=length(a(:,1));n2=length(b(:,1));s1=cov(a);s2=cov(b);p=4;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1))q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2))chi2inv(0.95,10)

%验证两总体的协方差矩阵相同fori=1:4D(i)=(x(i,:)-mean(a))*inv(s)*(x(i,:)-mean(a))'-(x(i,:)-mean(b))*inv(s)*(x(i,:)-mean(b))';end%由D结果可得:前三个属于第一类,最后一个属于第二类

fori=1:n1d11(i)=(a(i,:)-mean(a))*inv(s)*(a(i,:)-mean(a))'-(a(i,:)-mean(b))*inv(s)*(a(i,:)-mean(b))';endfori=1:n2d22(i)=(b(i,:)-mean(b))*inv(s)*(b(i,:)-mean(b))'-(b(i,:)-mean(a))*inv(s)*(b(i,:)-mean(a))';endn11=length(find(d11>0));n22=length(find(d22>0));p0=(n11+n22)/(n1+n2)%计算回代误判率fori=1:n1A=a([1:i-1,i+1:n1],:);n1=length(A(:,1));n2=length(b(:,1));s1=cov(A);s2=cov(b);p=4;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);D11(i)=(a(i,:)-mean(A))*inv(s)*(a(i,:)-mean(A))'-(a(i,:)-mean(b))*inv(s)*(a(i,:)-mean(b))';endfori=1:n2B=b([1:i-1,i+1:n2],:);n1=length(a(:,1));n2=length(B(:,1));s1=cov(A);s2=cov(B);p=4;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);D22(i)=(b(i,:)-mean(B))*inv(s)*(b(i,:)-mean(B))'-(b(i,:)-mean(a))*inv(s)*(b(i,:)-mean(a))';endN11=length(find(D11>0));N22=length(find(D22>0));p1=(N11+N22)/(n1+n2)%计算交叉误判率输出结果:p0=0.1923p1=0.2400

4.3Bayes判别分析

贝叶斯公式是一个我们熟知的公式

距离判别只要求知道总体的数字特征,不涉及总体的分布函数,当参数和协方差未知时,就用样本的均值和协方差矩阵来估计。距离判别方法简单实用,但没有考虑到每个总体出现的机会大小,即先验概率,没有考虑到错判的损失。贝叶斯判别法正是为了解决这两个问题提出的判别分析方法。

4.3.1两个总体的Bayes判别1.一般讨论

考虑两个p元总体分别具有概率密度函数f1(x),f2(x),设出现的先验概率为:,且当取得新样品后,根据Bayes公式的后验概率分别为

(4.3.1)因此,两个总体的Bayes判别准则为2.两个正态总体的Bayes判别(1)两个总体协方差矩阵相等的情形设总体G1,G2的协方差矩阵相等且为Σ,概率密度函数为:(4.3.2)损失相等的Bayes判别准则为其中基于两正态总体后验概率的Bayes判别准则为其中在实际问题中,关于先验概率,通常用下列两种方式选取:1)采用等概率选取,即2)按训练样本的容量的比例选取,即例4.3.1

对例4.1.1的数据,重新对上述三个蠓虫的类别进行Bayes判别.(假设误判损失相等)第1步:可以验证两个总体服从二元正态分第2步:检验两个总体的协方差矩阵相等;第3步:估计两个总体的先验概率,,这里按样本容量的比例选取.由于Apf与Af分别为6个与9个,故估计Apf类蠓虫的先验概率,Af类蠓虫的先验概率

;第4步:利用MATLAB软件计算:apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96];af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];x=[1.24,1.8;1.28,1.84;1.4,2.04];m1=mean(apf);m2=mean(af);s1=cov(apf);s2=cov(af);s=(5*s1+8*s2)/13;fori=1:3

w1(i)=m1*inv(s)*x(i,:)'-1/2*m1*inv(s)*m1'+log(0.4);w2(i)=m2*inv(s)*x(i,:)'-1/2*m2*inv(s)*m2'+log(0.6);

ifw1(i)>=w2(i)

disp(['第',num2str(i),'个蠓虫属于Apf类']);

else

disp(['第',num2str(i),'个蠓虫属于Af类']);

end;end;

输出结果:

第1个蠓虫属于Apf类

第2个蠓虫属于Apf类

第3个蠓虫属于Apf类(2)两个总体协方差矩阵不相等的情形设总体的协方差矩阵不相等分别为Σ1,Σ2概率密度函数为:则基于两正态总体误判损失相等的Bayes判别准则其中

例4.3.2对破产的企业收集它们在破产前两年的年度财务数据,对财务良好的企业也收集同一时间的数据.数据涉及四个变量:现金流量/总债务,

净收益/总资产,

流动资产/流动债务,以及

流动资产/净销售额,数据如表4.2

所示.假定两总体G1,G2均服从四元正态分布,在误判损失相等且先验概率按比例分配的条件下,对待判样本进行bayes判别.

解:第1步:检验两个总体的协方差矩阵相等;源程序如下:A=[-0.45-0.411.090.45 0.51 0.10 2.49 0.54……-0.13-0.14 1.42 0.44 0.17 0.07 1.80 0.52]x=[-0.23-0.30 0.330.18;0.15 0.05 2.17 0.55-0.28-0.23 1.190.66;0.48 0.09 1.24 0.18];G1=A(:,1:4);G2=A(:,5:8);%二类总体数据m1=mean(G1);m2=mean(G2);s1=cov(G1);s2=cov(G2);n=18;n1=9;n2=9;p=2;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);Q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1));Q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2));ifQ1<chi2inv(0.95,p*(p+1)/2)&&Q2<chi2inv(0.95,p*(p+1)/2)

disp('两组数据协方差相等');elsedisp('两组数据协方差不全相等');end;输出结果:

两组数据协方差不全相等第2步:根据第1步结论,构造判别函数,得出判结果.p1=n1/n;p2=n2/n;%计算先验概率fori=1:4d1(i)=mahal(x(i,:),G1)-log(det(s1))-2*log(p1);d2(i)=mahal(x(i,:),G2)-log(det(s2))-2*log(p2);ifd1(i)<=d2(i)disp(['第',num2str(i),'个属于破产企业']);elsedisp(['第',num2str(i),'个属于非破产企业']);end;end;输出结果:第1个属于破产企业第2个属于非破产企业第3个属于破产企业第4个属于非破产企业4.3.2多个总体的Bayes判别设有k个总体G1,G2,…,Gk的概率密度为fj(x)各总体出现的先验概率为

1.一般讨论当出现样品时,总体的后验概率Bayes判别准则为:若则判样本注:当达到最大后验概率的不止一个时,可判为达到最大后验概率的总体的任何一个.2.多个正态总体的Bayes判别(1)当时,设

线性判别函数为其中基于误判损失相等的Bayes判别准则为基于后验概率的Bayes判别准则为其中在实际问题中,由于未知,各总体的训练样本均值(2)当不全相等时,设则基于后验概率的Bayes判别准则为其中未知,估计.例4.3.3.某医院利用心电图检测来对人群进行划分,数据见表.“g=1”表示健康人,“g=2”表示主动脉硬化患者,“g=3”表示冠心病患者,X1

,X2表示测得的心电图中表明心脏功能的两项不相关的指标.某受试者心电图该两项指标的数据分别为380.20,9.08.设先验概率按比例分配,进行bayes判别,判定其归属.表4.324人心电图数据编号X1X2编号X1X2123456789101112261.01185.39249.58137.13231.34231.38260.25259.51273.84303.59231.03308.907.365.996.114.358.798.5310.029.798.798.536.158.49111111111112131415161718192021222324258.69355.54476.69316.12274.57409.42330.34331.47352.50347.31189.59380.207.169.4311.328.179.6710.499.6113.7211.0011.195.469.0822222233333待判解:A=[261.01 7.36185.395.99……189.59 5.46]x=[380.20 9.08];G1=A(1:11,:);G2=A(12:18,:);G3=A(19:23,:);%三类总体数据n=23;k=3;p=2;n1=11;n2=7;n3=5;f=p*(p+1)*(k-1)/2;d=(2*p^2+3*p-1)*(1/(n1-1)+1/(n2-1)+1/(n3-1)-1/(n-k))/(6*(p+1)*(k-1));p1=n1/n;p2=n2/n;p3=n3/n;m1=mean(G1);m2=mean(G2);m3=mean(G3);s1=cov(G1);s2=cov(G2);s3=cov(G3);%计算协方差阵s=((n1-1)*s1+(n2-1)*s2+(n3-1)*s3)/(n-k);M=(n-k)*log(det(s))-((n1-1)*log(det(s1))+(n2-1)*log(det(s2))+(n3-1)*log(det(s3)));T=(1-d)*M%计算统计量观测值C=chi2inv(0.95,f)ifT<chi2inv(0.95,f)

disp('三组数据协方差相等');else

disp('三组数据协方差不全相等');end;w(1)=m1*inv(s)*x'-1/2*m1*inv(s)*m1'+log(p1);w(2)=m2*inv(s)*x'-1/2*m2*inv(s)*m2'+log(p2);w(3)=m3*inv(s)*x'-1/2*m3*inv(s)*m3'+log(p3);fori=1:3ifw(i)==max(w)

disp(['属于第',num2str(i),'组']);end;end;输出结果:三组数据协方差相等属于第2组

4.3.3平均误判率Byaes判别的有效性可以通过平均误判率来确定。这里仅对两个正态总体,且协方差矩阵相等的情况下研究平均误判率的计算.设总体,其先验概率,两个总体的马氏平方距离记为则基于误判损失相等时的平均误判率为其中为标准正态分布函数.从(4.3.11)式知,当总体的马氏平方距离越大,即两总体的分离程度越大时,平均误判概率最小.推广到一般情况也成立.(4.3.11)例4.3.42008年全国部分地区城镇居民人均年家收入情况见表.按四种指标分为二类,用bayes判别判定青海、广东两省区属于哪一类,并用回代法和交叉法对误判率进行估计(假定误判损失相等).解:第1步,检验三个总体的协方差矩阵相等;A=[18738.96 778.36 452.75 7707.87……9422.22 938.15 141.75 1976.49];x=[8595.48763.07 50.17 3458.6315188.39

2405.92

701.25 3382.95];

%待判样品G1=A(1:2,:);G2=A(3:8,:);G3=A(9:27,:);%输入三类总体数据n1=size(G1,1);%总体G1的样本数n2=size(G2,1);%总体G2的样本数n3=size(G3,1);%总体G3的样本数n=n1+n2+n3;

%三个总体合并的样本数k=3;p=4;f=p*(p+1)*(k-1)/2;d=(2*p^2+3*p-1)*(1/(n1-1)+1/(n2-1)+1/(n3-1)-1/(n-k))/(6*(p+1)*(k-1));p1=n1/n;p2=n2/n;p3=n3/n;m1=mean(G1);m2=mean(G2);m3=mean(G3);s1=cov(G1);s2=cov(G2);s3=cov(G3);%计算协方差阵s=((n1-1)*s1+(n2-1)*s2+(n3-1)*s3)/(n-k);M=(n-k)*log(det(s))-((n1-1)*log(det(s1))+(n2-1)*log(det(s2))+(n3-1)*log(det(s3)));T=(1-d)*M%计算统计量观测值C=chi2inv(0.95,f)ifT<chi2inv(0.95,f)disp('三组数据协方差相等');elsedisp('三组数据协方差不全相等');end输出结果:三组数据协方差相等第2步,根据第1步结论,构造判别函数,得出判别结果.fori=1:2w(1)=m1*inv(s)*x(i,:)'-1/2*m1*inv(s)*m1'+log(p1);w(2)=m2*inv(s)*x(i,:)'-1/2*m2*inv(s)*m2'+log(p2);w(3)=m3*inv(s)*x(i,:)'-1/2*m3*inv(s)*m3'+log(p3);%计算判别函数

forj=1:3

ifw(j)==max(w)

disp(['待判样品属于第',num2str(j),'类城市']);

end

endend输出结果:待判样品属于第3类城市

待判样品属于第2类城市第3步,计算回代误判率.n11=0;n22=0;n33=0;fori=1:n1w1(i,1)=m1*inv(s)*G1(i,:)'-1/2*m1*inv(s)*m1'+log(p1);

w1(i,2)=m2*inv(s)*G1(i,:)'-1/2*m2*inv(s)*m2'+log(p2);w1(i,3)=m3*inv(s)*G1(i,:)'-1/2*m3*inv(s)*m3'+log(p3);%计算判别函数

forj=1:3ifw1(i,j)==max(w1(i,:))&j~=1

n11=n11+1;endendendfori=1:n2

w2(i,1)=m1*inv(s)*G2(i,:)'-1/2*m1*inv(s)*m1'+log(p1);w2(i,2)=m2*inv(s)*G2(i,:)'-1/2*m2*inv(s)*m2'+log(p2);w2(i,3)=m3*inv(s)*G2(i,:)'-1/2*m3*inv(s)*m3'+log(p3);%计算判别函数

forj=1:3ifw2(i,j)==max(w2(i,:))&j~=2

n22=n22+1;endendend

fori=1:n3

w3(i,1)=m1*inv(s)*G3(i,:)'-1/2*m1*inv(s)*m1'+log(p1);w3(i,2)=m2*inv(s)*G3(i,:)'-1/2*m2*inv(s)*m2'+log(p2);w3(i,3)=m3*inv(s)*G3(i,:)'-1/2*m3*inv(s)*m3'+log(p3);%计算判别函数

forj=1:3ifw3(i,j)==max(w3(i,:))&j~=3

n33=n33+1;endendendp00=(n11+n22+n33)/(n1+n2+n3)输出结果:p00=

0第4步,计算交叉误判率.N11=0;N22=0;N33=0;

fork=1:n1A=G1([1:k-1,k+1:n1],:);

N1=length(A(:,1));M1=mean(A,1);s11=cov(A);

S1=((N1-1)*s11+(n2-1)*s2+(n3-1)*s3)/(N1+n2+n3-k);P01=N1/(n-1);P02=n2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论