1、1第 5 章 SAS 多元统计分析功能教学要求: 了解几种假设检验、线性回归、方差分析、拟合优度检验、列联表检验的原理背景 掌握 SAS 语言进行多变量分析过程(princomp 过程和 factor 过程) 掌握 SAS 语言进行 掌握 SAS 语言进行引言:前面介绍 SAS 的基本统计分析功能。本章我们讲述用 SAS 进行多元统计分析。SAS 进行多元统计分析的过程包括:第一类:多变量分析过程,包括 princomp(主成分分析)、factor(因子分析) 、cancorr(典型相关分析、multtest (多重检验) 、prinqual(定性数据的主分量分析)及 corresp(对应分析
2、);第二类:判别分析过程,包括 discrim(判别分析) 、candisc(典型判别) 、stepdisc(逐步判别)第三类:聚类分析过程,包括 cluster(谱系聚类) 、fastclus(K 均值快速聚类) 、modeclus(非参数聚类) 、varclus(变量聚类)及 tree(画谱系聚类的结果图);本章只讲其中常用的几种过程。5.1 多变量分析5.1.1 主分量分析(或叫主成分分析)1.原理简介引言:在实际中,为了全面分析问题,往往提出很多与此相关的变量(或因素) ,且每个变量都能在不同程度上反映这个问题的某些信息。但统计分析方法研究多变量问题时,变量个数太多容易增加问题的复杂性
3、。人们希望变量个数减少时,也能得到较多的信息。功能:主成分析是数学上处理降维的一种方法,它设法将初始变量重新组合成一组新的互相无关的几个综合变量,同时可根据实际需要从中取出较少的几个综合变量,尽可能多反映原来变量的信息。在这里,信息的大小用离差平方和或方差来表示。主分量分析的目的是从原始的多个变量中取若干线性组合,并尽可能多地保留原始变量的信息。设有 p 个指标 ,找 m 个综合指标 ,且 ,使得 12,.px12,.myp,1222212.pmmpmyaxaXyxx2式中 包含 的信息最多, 包含 的信息次之,依次类推,则称1y2,.px2y12,.px为 的第 i 个主成分, 为第 i 个
4、主成份在第 j 个变量上的载荷。i,. ija性质:(1)各主成分之间互不相关,且 12V.pyy(2)记向量 X 的协方差阵 (或相关系数阵 R)的特征值为 和特征向量为12,.,则是第 i 个主成分的方差 ,载荷 ;1,.pTiiyiiaT,(3)p 个原始指标的方差之和 =p 个主成分的方差之和 = =p1piiVx1piiVy1pi(4)第 i 个主成分的贡献率为 ,前 m 个主成分的累计贡献率是 ,实际1ipi 1mip应用中,主成分的个数选取依据累计贡献率达到或超过 80%,或取特征根 ,常常结合i两者确定主成分个数。 (注:累积贡献率标明的是前 m 个主成分提取了原始变量的多少信
5、息)12,.px(5)前 m 个主成分对原始变量 Xi 的贡献率为 Xi 与 的复相关系数的平方,表12,.my明了前 m 个主成分包含了第 i 个变量的多少信息。(6)由于主分量计算中,方差越大的变量越会被优先保留,所以实际中为了消除各变量的数值大小相关较大或者是量纲的影响,通常会将原始变量进行标准化,*()iiixEV1,2.p显然,标准化后的向量 X*的协方差阵 即为原始向量 X 的相关矩阵 R。实际中从相关系数阵出发进行主成分分析的较多。(7)主成分得分公式为:协方差阵 出发:111212 2212()().().()().()ppmmmppyaxxaxyxaxx3相关系数阵 R 出发
6、:*11212 2*12 .pmmmpyaxaxyxx其中 为第 i 个原始变量 xi 的均值. 为第 i 个原始变量 xi 减去均值除以标准差.后的标准ixi化值。主成分分析的步骤:(1) 求协方差阵 (或相关系数阵 R)的特征根与特征向量(2) 提取前 m 个主成份,并写出其表达式(3) 对主成分进行解释(4) 计算主成分得分并分析2 .PRINCOMP 过程(主成分分析过程)功能:完成主分析分析,输入数据集可以是原始数据集、相关阵、协方差阵或叉积阵。输出数据是原始数据集时,还可以选择是从协方阵还是相关阵出发进行分析。计算结果有:简单统计量、相关阵或协方差阵、从大到小排列的特征值与特征向量
7、、累积贡献率等。可生成两个输出数据集:一个包含原始数据集及主分成分得分,另一个包含有关统计量。一般格式为:PROC PRINCOMP 选项 ;VAR 变量列表 ;WEIGHT 变量列表 ;FREQ 变量 ;BY 变量 ;RUN ;一般读者只用到 PROC FACTOR 和 VAR 两条语句。有关说明:(1)PROC PRINCOMP 语句中的“选项”常用的主要包括:Data=输入数据集,可以是原始数据集,也可以是 type=corr(或 cov)的数据集Out=输出包含原始数据和主分成得分的数据集;Outstat=统计量输出数据集;Cov 要求从协方差阵出发计算主成分,默认为从相关系数阵出发的
8、N=要计算的主成分个数。默认为全体主成分。Std 要求在 out=指定的数据集中把主分量得分标准化为单位方差,不规定时方差为相应特征值(2)Var 语句指定要分析的原始变量,必须为数值型。3.案件分析国民生产状况的评价分析4为了分析评价改革开放以来我国的国民生产状况,收集了从 1978-1989 我国的国民收入等 5 个经济发展指标数据,如下表。年份 国民收入(亿元) 劳动者人数(万人)粮食产量(万吨)能源总量(万吨) 积累额(亿元)1978 3588.1 40152 30447 62770 10871979 3998.1 41024 33212 64562 11611980 4470 423
9、61 32056 63735 11651981 4773 43725 32502 63227 11061982 5193 45295 35450 66778 12361983 5809 46436 38728 71270 14211984 6962 48197 40731 77855 17961985 8667.6 49873 37911 85546 26281986 9696.3 51282 39151 88124 29441987 11301 52783 40298 91266 32981988 13984.2 54334 39408 95801 42311989 15788.7 5532
10、9 40755 101639 4674现采用主成分分析法对历年的国民生产状况进行评价分析。程序如下:5本程序是默认从相关系数出发计算主成分的,输出分为五部分。第一部分是变量的基本信息,第二部分为原始变量的均值和方差等简单统计量的值。第三部分相关系数矩阵:第四部分为特征值及累积贡献率: 第五部分为特征向量:第六部分是两个输出数据集:数据集 out1 输出包含原始数据和主分成得分的数据集;Out2输出主成分析的各统计量。6分析:(1)由第二部分相关系数矩阵知 gmsr ldrs lscl nyzl jle 这五个变量的相关系数都较大,最小的也有 0.7751,说明相互之间相关性较强,对其进行主成分
11、分析是必要的。(2) 123454.6380.45,.0219.06,.0, ,第一特征值 ,其累积贡献率为 92.77%80%,因此提取这个主成分即可代表原始数据的绝大部分信息。第一主成分得分公式为(*号表示原始变量要进行标准化) *10.4590.45980.40.4690.452ygmsrldrslscnyzljle(3)由第一主成分在各变量上的载荷都有近似相等的正数,代表该我国国民经济总体情况;(4)由第一主成分得分可知,从 1978-1989 年第一主成分呈现一定的递增趋势,说明改革开放以来,我国的国民经济生产能力逐年增加。注:为了输出各年份的原始数据及标准化变量的第一主成分得分可用
12、如下程序段:proc sort data=out1; by prin1; run;proc print data=out1;id year;var gmsr ldrs lscl nyzl jle prin1;run;7【讨论】如果要求从协方差阵进行主成分分析,怎么做?输出结果会怎样改变?提示:将原程序的 proc princomp 语句中加上 cov 选项, 结果输出中相关系数矩阵改为协方差矩阵,提取的变量倾向于方差最大的变量 nrzl。10.2493(7852.6)03(4756.9)02(36720.8)14.98ygmsrldrslscnyzlje5.1.2 因子分析1.原理简介引言:主
13、成分分析是对 p 个原始变量做的 m 个线性组合。这些线性组合可以很好代表原变量的信息(即降维作用) ,缺点是给出符合实际背景和意义的主成分解释比较困难。因子分8析是主成分分析的推广,它也可以降维,同时可以进行因子旋转使得因子解释更加容易,另外两者最大区别:主成分分析不能作为一个模型来描述,它只能作为一般的变量变换,主成分是可观测的原始变量的线性组合;而因子分析需要构造一个因子模型,公共因子不一定是原始变量的线性组合。数学模型:设有 p 维可观测的随机向量 ,其均值为 ,12(,.)pXx12(,.)p协主差矩阵为 ,因子分析一般模型为:()ij111211222212 .mppppmpxaf
14、fafxaffaf其中 为公共因子, 为特殊因子,它们都是不可观测的随机变量,12,.mf 1,.为第 i 个原始变量在第 j 个公共因子上的载荷。公共因子出现在每一个原始变量的表达ija式中,可理解为原始变量共同具有的公共因素,每个公共因子至少对两个原始变量有作用,否则归入特殊因子。每个特殊因子仅仅出现在与这相应的每个原始变量的表达吕,这只对这个原始变量有作用。因子模型的矩阵形式为: XAf式中 为公共因子向量, 为特殊因子向量,12(,.)mff12(,.)p为因子载荷矩阵。通常假定:)pmijAa 221()()(,.)ov,)pEfVfIDdiagCff00因子模型性质:(1) X 的
15、协方差矩阵可分解为 ,如果 X 的各变量已标准化了,则 就是A相关系数矩阵 R,即 (2) 模型不受单位的影响(3) 因子载荷是不唯一的(4) 因子载荷矩阵的统计意义:9A 的元素 aij原始变量 xi与公共因子 fj之间的协方差函数,如果 X 的各变量已标准化了,则表示 xi与 f 之间的相关系数。A 的行元素平方和 公共因子对原始变量 xi的方差贡献,如果 X 的21miijha各变量已标准化了,则 。2iiA 的列元素平方和 公共因子 fj对所有原始变量的方差贡献,是衡21piijga量公共因子重要性的一个尺度。因子分析的步骤:估计载荷矩阵,即求协方差阵 (或相关系数阵 R)的特征根与特
16、征向量;提取前 m 个公共因子,并对其进行解释(如果难以解释,则进行公因子旋转)计算因子得分并分析2.factor 过程与 score 过程一、 factor 过程1.功能:可进行因子分析、因子旋转等,对因子模型可以进行正交旋转和斜交旋转,可以用回归法计算因子得分,同是得分估计存储在一个指定数据集中,因子分析中主要统计量也能存储到指定数据集中。语句格式:PROC FACTOR 选项 ;PRIORS 变量共通性的预估值 ;VAR 要分析的变量名称 ;PARTIAL 变量名称 ;FREQ 变量名称 ;WEIGHT 变量名称 ;BY 变量名称 ;RUN ;一般读者只用到 PROC FACTOR 和
17、VAR 两条语句。常用选项有:1) 定义数据集有关选项有:Data=输入数据集;Out=输出数据集,指定输出数据集,其中包含原始输入数据集,以及因子得数,此选项要与“n=数字”合用,指定要提取几个公因子;Outstat=输出数据集,指定用于存储因子分析结果的数据集,其中包含均数、标准差、相关系数、协方差、特征向量、因子模型等;2) 与公因子提取与旋转有关的选项有:Method=方法,指定用于提取公因子的方法。还有可供选择的方法有: principal(主成分法,但当 principal 选项不与 Prior= 并用,或与 priors=one并用时,提取公因子方法为主成分分析法,否则为主(轴)
18、因子分析法) 、10alpha( 因子分析法)、ML(极大似然法)等。默认的是 principal(主成分法) 。Mineigen(或 min)=数字,指定提取公因子时最小的特征值,默认为 1Percent(或 P)=数字,指定选择公因子时累积贡献率的阈值。系统默认的是 100.Nfactors(或 N)=数字,指定要提取公因子的最大数量,默认为所有原始变量个数。Rotate=方法,指定公因子旋转方法。默认的是 varimax(方差最大正交旋转法).Priors= ,指定变量共性方差的预估值。可取:One 表示预估值为 1;Max 表示其预估值为每一变量与其它变量的最大相关系数的绝对值;SMC
19、 表示预估值为每个变量与其它所有变量的复相关系数的平方。3) 其它输出格式有关的选项:Simple:显示平均数与标准差;Corr: 显示相关系数矩阵;Score:显示因子得分系数矩阵;Reorder:让因子系数矩阵的这些行重新排列,使那些在第一因子上的载荷量的绝对值高的变量排在前面几列,以协助解释因子的含意,输出数据集中的变量顺序不变。二、 Score 过程功能:计算因子得分,该过程与 factor 过程配合使用,一般放在 factor 过程之后,语法格式:Proc Score ; Id ;Var ;Run; 说明:其中常用选项有:data=数据集,指定用于因子分析的初始数据集;out= 数据
20、集,指定存储因子得分的输出数据集;Id 语句用于指定对观测记录进行标识的变量;Var 语句指定要进行分析的原始变量,须为数值型。3.案例分析不同地区的经济状况的比较下表为某年洛杉矶 12 个地区的 5 项社会经济指标,包括:人口总数(POP)、教育程序(SCHOOL)、就业人数(EMPLOY)、服务业人数(SERVICES)、中等房价(HOUSE)。现采用因子分析法对该城市社会经济状况进行评价分析。地区号 POP人口总数 SCHOOL教育程序 EMPLOY就业人数 SERVICES服务业人数 HOUSE中等房价1 5700 12.8 2500 270 250002 1000 10.9 600
21、10 100003 3400 8.8 1000 10 90004 3800 13.6 1700 140 250005 4000 12.8 1600 140 250006 8200 8.3 2600 60 120007 1200 11.4 400 10 16000118 9100 11.5 3300 60 140009 9900 12.5 3400 180 1800010 9600 13.7 3600 390 2500011 9600 9.6 3300 80 1200012 9400 11.4 4000 100 13000初步因子分析:输出为:第一部分为:各变量的均值与方差第二部分为:各变量的相
22、关系数矩阵12第三部分为:从相关系数矩阵出发计算特征根、累积贡献率以及提取公因子的数量第四部分为:因子载荷矩阵,也就是用公因子预报原始变量的系数第五部分为:公因子解释能力的估计分析:(1)相关系数矩阵可知,有些变量之间存在较大程度的相关性,如 pop 和 employ的相关性为 0.97245,所以做因子分析有必要。(2)根据特征根和累积贡献率确定公因子数目。前两个特征根分别为,都大于 1,二者的累积贡献率达到 93.4%80%,已经反映了绝大12.8731.97,部分信息,因此可以选择两个公因子进行因子分析。(3)因子解释。由因子载荷矩阵知,第一个公因子在所有变量上都有较大的正载荷,可见13
23、这个因子反映了综合发展水平,第二个公因子在人口、就业上有大的正载荷,在教育程度和住房上有大的负载荷,因此第二个公因子数值较大表明城市人口多但教育程序和住房价格低。(4)由公因子解释能力的估计值知,原始变量对公因子的复相关系数的平方都比较大,所以我们可以认为这两个公因子很好地解释了原始变量中的信息。由于公因子解释不够清楚,所以考虑进行因子旋转进一步分析。进一步分析1:因子旋转/*因子分析,输出简单统计量及相关系数矩阵,采用主成分法,方差最大化正交旋转公因子,要求变量重新排列*/proc factor data=index simple corr rotate=varimax reorder;va
24、r POP SCHOOL EMPLOY SERVICES HOUSE;run;输出结果为:首先输出的结果与前面相同,包括初始因子载荷和方差贡献率等,结果略,注意到因子模式中变量排列顺序不同。接下来是旋转矩阵与旋转后的载荷矩阵:然后是公因子的解释能力:进一步分析:将旋转前后的载荷矩阵进行对比可知,各变量在 factor1 与 factor2 上的载荷数据差距拉大,因此命名更加容易一些。第一公因子在房价、教育水平、服务业人数有较大正载荷,反映了发达程度,因此命名为“发达程度”因子。第二公因子在人口总数和就业人数有较大的正载荷,反映了城市规模,因此命名为“城市规模”因子。进一步分析2 :计算因子得分
25、计算因子得分程序为:/*因子分析,输出简单统计量及相关系数矩阵,采用主成分法,方差最大化正交旋转公因子,要求变量重新排列,计算因子得分*/14proc factor data=index simple corr cov rotate=varimax reorder score outstat=out1 ;var POP SCHOOL EMPLOY SERVICES HOUSE;run;proc score data=index score=out1 out=out2;var POP SCHOOL EMPLOY SERVICES HOUSE;run;proc print data=out2;ru
26、n;/* 公因子 1与公因子2的散点图 */proc gplot data=out2;plot factor1*factor2;run;输出为:其它与前类似,只增加了提取的公因子与原变量的复相关系数平方,标准化的因子得分系数以及两个输出数据集 因子分析统计量和因子得分数据集。15进一步分析:根据得分系数可写出公因子得分函数: *120.4390.320.2940.9520.38*7696137648465fhousescholservicpoemploy由各地区的因子得分可知,按第一公因子排列前三的是地区 10 、地区 1、地区 4,也就是这三个地区的发达程序排前三名;按第二公因子排名前三的是
27、地区 12、地区 10、地区 9,也就是这三个地区的城市规模排名前三。【思考 1】如果要求因子分析是采用主因子法计算载荷,怎么办?结果会怎样?【思考 2】如果要求因子分析是从协方差矩阵出发的,采用主因子法计算载荷,怎么办?结果会怎样?/* 思考 1:主因子分析及方差最大正交旋转、计算因子得分 */proc factor data=index priors=SMC rotate=varimax reorder score outstat=out3;var POP SCHOOL EMPLOY SERVICES HOUSE;run;proc score data=index score=out3 o
28、ut=out4;var POP SCHOOL EMPLOY SERVICES HOUSE;run;/* 思考 2:主因子分析及方差最大正交旋转、计算因子得分,协方差矩阵出发 */proc factor data=index cov priors=SMC rotate=varimax reorder score outstat=out3;var POP SCHOOL EMPLOY SERVICES HOUSE;run;proc score data=index score=out3 out=out4;var POP SCHOOL EMPLOY SERVICES HOUSE;run;作业:P193
29、 T1165.2 判别分析引言:判别分析(discriminate Analysis)是是对已知分类的数据建立由数据指标构成的分类规则,然后用这样的规则对未知分类的样本进行分类。判别分析在科学研究各个领域中经常会遇到。如动物学家根据动物的特征,判别动物属于哪个纲、目、科的问题;经济学家研究价格指数,推断经济情况是通胀还是紧缩,以及医学上疾病的诊断、气象学中气候的分类等都属于判别分析范畴。本章介绍 SAS 中如何实现判别分析的过程,主要是 discrim(判别分析)。5.2.1 原理简介判别分析用统计模型的语言可以描述为:设有 k 个总体 G1、G2, 。 。 。 ,Gk,希望建立一个准则,对给
30、定的任意一个样本,依据这个准则能够判断它是来自哪个总体。当然所建立的准则应该是某种意义上的最优,比如使错判损失最小。按照不同的判别准则,判别分析的方法有以下几种:一.距离判别法对于新给定的样品,要判断它属于哪一类,一个最直观的方法就是计算它与各已知类别之间的距离,如果它与其中某一类距离最近,那么就可判定它属于该类。1.两总体情形设有两个总体 G1、G2,若定义样品 x 到 G1 和 G2 的距离分别为 d(x,G1)和 d(x,G2),则判别的准则如下: (,1)(,2)1.,.dxGGx若 则若 则若 则 待 判当总体 G1 和 G2 为正态总体时,距离采用马氏(Mahalanobis)距离
31、,公式如下:,2 11(,1)()dx( 2 122(,)()dxx(其中 分别为两个总体的均值和协方差矩阵。22和当 时,122 1122(,)(,) ()dxGxx( ) /令 ,令 ,则判别准则变为:112 2 ,()a=( ) / ()Wa0,1.(),.xG若 则若 则若 则 待 判W(x)称为判别函数,由于它是线性函数,因此又称为线性判别函数。17当 时,则判别函数 W(x)为122()(,)(,)WxdGx1122)()()xx ( (式中 W(x)是 x 的二次函数。2.多总体情形与两总体情况类似,计算样品 x 到每个总体的距离 然后进行比较,2(,) 1,2.dxGik如果
32、x 与总体 Gi 的距离最近,则把 x 判归总体 Gi. 二、费歇尔判别费歇尔(Fisher)判别对总体分布未提出特殊要求,它是处理概率分布未知的判别问题的一种重要方法。Fisher 判别的思想是通过将多维问题转化为一维问题来处理,投影的原则是使投影后的总体与总体之间尽可能地分开,然后利用一元方差分析的思想导出判别函数,对待判样品进行分类判别。下面仍以两个总体为例,说明 Fisher 判别方法原理。设有两个总体 G1 和 G2, 均值分别为 ,协方差矩阵分别为 ,并假定 ,考虑线性组合 。通12,12,12yLx过寻找合适的 L 向量,使得来自两个总体的样品间的距离较大 ,而来自同一总体的样品
33、间的距离较小。可以证明当选 ,其中 ,所得投影即满足要求。12()c0c当 c=1 时的线性函数 ,称为 Fisher 线性判别函数。其判别规11yxx则如下: ,.2mG若 则若 则其中 m 为两个总体均值在投影方向上的中点,即 112122()()Lx三、贝叶斯判别此前讨论的两种方法简单直观,结论明确,但它没有考虑到各个总体会以不同的概率出现,也没有考虑误判造成的损失。贝叶斯判别就是为了弥补这两个缺陷而提出的。1.最大后验概率准则设有 k 个总体 ,它们的概率分布密度函数分别是12,.kG,且这 k 个总体的先验概率分别为 ,且 。12(),.()kfxfx 12,.kq0,1iiq当取了
34、一个未知总体的样品 x,要判别它属于哪个总体,可用贝叶斯判别公式计算 x 属于总体 Gi 的后验概率 1()(|),.iikifxPiq18最大后验概率准则: 1,(|)max(|)hhiikxGPG若特例:当 都是正态总体,即 时,最大后验概率准则变为:12,.k ,ipiN:221,(,)n()hhiikxDxx若其中 计算公式为 2(,)iDxG,iiiGdgh2 1()()iiiidxx( 1212ln|, 2l, 1/i kii kigpqh若 .,不 全 相 等 .0若 =若 .,不 全 相 等 .若式中 称为广义平方距离, 为平方马氏距离。2(,)iDxG2(,)idxG注意到:
35、当 ,且 时,广义平方距离准则就等价12k=.121/kq=.于多总体的距离判别法。2.最小平均误判代价准则当假定将原本属于总体 Gi 的样品错判给总体 Gj,由此造成的损失为 ,有(|)cji,使平均误判代价最小的判别准则是:(|)0,(|),(12cijij, , .,k),(min( ,12,.lljkxGhxxjk若其中: 为误判的平均损失。1()(|)kjiihxqcjf注意到:当所有误判的代价都相等时(不防令 ) ,则最小平均误判代价准则等价(|)1cji于基本的最大后验概率准则。5.2.2discrim 过程功能:SAS 中的 discrim 过程可以进行判别分析方法有参数和非参
36、数方法。参数方法假定每类的观测来自多元正态总体,各类的分布的均值可以不同,该方法会导出一个线性或二次的判别函数。非参数方法不要求假定总体的分布,它对每一类使用非参数方法估计该类的分布密度,包括核密度法(kernel method)和 K 最邻近法(k-nearest- neighbor-method) ,然后据此建立判别规则。虽然非参数方法一般的教科书较少提及理论,但在实际应用中具有相当重要的作用,因为很多情况下的数据并不满足正态总体要求。一般格式:19Proc discrim data=输入数据集 选项;Class 分类变量;VAR 判别用自变量列表 ;WEIGHT 加权变量 ;BY 分组变
37、量 ;FREQ 频数变量 ;ID 标识变量 ;PRIORS 先验概率取值 ;TESTCLASS 检测数据集中的分类变量 ;TESTFREQ 检测频数变量 ;TESTID 标识变量 ;RUN ;1.Proc discrim 语句中的 “选项”说明:1).指定数据集选项:Data=输入数据集为训练数据集,包括一个分类变量(在 class 语句中说明)和用来建立判别公式的自变量集合(在 var 语句中说明) ;Testdata=检验数据集,它必须包含与训练数据集相同的自变量集合,用训练数据集产生判别规则后将对检验数据集中每一个观测给出分类值,可以不包括分类变量。Outstast=数据集,指定输出判别
38、函数的数据集,后面可以再次用 discrim 过程把这样输出的判别函数作为输入数据集读入,并用它来判别检验数据。Out=数据集,存放训练样本及后验概率、交叉确认分类的数据集。Outd=数据集,指定存放训练样本及分组的密度估计的数据集。Testout=数据集,指定存放检验数据的后验概率及分类结果的数据集。Testoutd=数据集,指定输出检验数据及分组密度估计。2). 指定判别分析方法选项:Method=normal 或 npar,来选择参数方法或非参数方法,默认的是 normal。Pool=no 或 yes 或 test ,分别选择不用合并协方差矩阵、使用合并协方差矩阵,通过检验决定是否使用合
39、并协方差矩阵, 默认的是 yes。注意:当设置为 test 时,要求各类的协方差矩阵进行齐次性检验,如果满足齐次性,则使用合并的协方差矩阵,否则使用各类内协方差矩阵。R=核估计半径 或 K=最近邻个数 是非参数方法中可以使用的密度估计方法。3.)规定显示结果的选项List 选项要求对训练数据中每一观测显示判别结果;Listerr 选项要求显示训练数据错判的观测;crossvalidate 选项是输出训练数据集中用交叉验证法各类判别结果和错判率Crosslist 选项要求显示用交叉验证法对训练数据的判别结果Crosslisterr 选项要求显示用交叉验证法对训练数据错判的观测;Noclassif
40、y 选项要求取消对训练数据的分类检验;testList 选项与”testdata=检验数据集”合用,要求对检验数据中每一观测显示判别结果;testListerr 选项与”testdata=检验数据集”、 “testclass 分类变量”合用,要求显示检验数据错判的观测nopinrt 选项可以取消结果显示; 2.其它常用语句说明20“Class 分类变量” ,指定训练数据集中的分类变量,此句不可省略,它的取值决定了判别分析的组;“Var 判别用自变量列表” ,指定判别分析中所有可能用到的变量名称,它们必须都是数值型的;“Testclass 检验用的分类变量” ,指定检验数据集中的观测的真实分类;
41、Priors 语句指定先验概率的取值。 “Priors equal” 指定等先验概率, “prior proportional ”指定先验概率与各类个数成正比, “priors 概率值列表”可以直接指定各组的先验概率值。缺省设置为“PRIORS EQUAL” 。5.2.3 案例分析用卫星遥感可以分辨作物的种类。Crops 是训练数据集,其中包含了作物的实际种类(crops)和四种遥感指标变量(x1x4) ,数据步中还把的变量值作为一个字符串变量读入作为行标识。21【首先采用最基本的用法】:用discrim过程产生线性判别函数 (method=normal规定参数方法、pool=yes 规定使用
42、合并协方差矩阵), outstat指定判别函数输出数据集输出为:第一部分为:观测及变量的基本信息,分类变量的频数、比例及先验概率等第二部分:各组间的广义平方距离和线性判别函数的系数即 2 1(|)2lnijijjDijxSxq( (合并后的协方差矩阵的秩以及其行列式值的自然对数先验概率22分析:从而可以写出分类变量的各类的线性判别函数:苜蓿: 1234()10.98457.90.7390.1890.1567Wxxxxx玉米: 265甜菜: 1234().8.4.8第三部分为:训练数据判别的概况,即每一类判入各类的个数及百分比,比如第一行苜蓿有 11 个观测,其中 6 个判对,占 54.55%,
43、有 3 个错判为 cotton 棉花,2 个错判为sugarbeets 甜菜,最后一行是各类的先验概率。紧接着是各类的错判率(即某类错判为其它类的比例)分析:除 corn(玉米)外,各类的错判率挺高的,识别最好的 corn(玉米) ,最差的是cotton(棉花) ,总误判率达到 50%。【try】请同学们逐一尝试其它选项功能:list 、listerr、crossvalidate、crosslistList 选项是输出训练数据集中每个观测判别结果和后验概率,对应输出为: 每类的错判率是上表中对应行中错判情况的和23Listerr 选项是输出训练数据集中错判的观测判别结果和后验概率,对应输出为:
44、 crossvalidate 选项是输出训练数据集中用交叉验证法各类判别结果和错判率,对应输出为: 24crossList 选项是输出训练数据集中用交叉验证法的每个观测判别结果和后验概率,对应输出为:【try】在基本用法的程序中,请同学们尝试将选项 pool=yes 改为 pool=no 或 test,比较结果?提示:判别函数是二次函数,没有线性判别函数,错判率会降低。25【判别函数的进一步应用】现在假设新收集到若干遥感数据放在数据集 test 中,实际上是已知农作物类型的(放在变量 crop1 中) ,但我们假装不知道,然后用上面建立的线性判别函数(上一步中已保存在数据集 cropstat
45、数据集中)对这此遥感数据进行判别,这样可以得到对判别结果比较客观的评价。输出结果窗口中列出了每个观测的判别结果和判入每类的后验概率;因为我们知道真实类,拟结果中有一项是“From crop1” ,然后是各类的判别概况及错判率。26分析:对于前面训练数据集使用参数方法、合并协方差计算广义平方距离的方法得出的判别函数进一步应用对检验数据集进行检验,由输出结果可知 5 个观测有 3 个错判,分别是clovercottonsugarbeets,总错判率达到 63.89%(此数据为什么不是 60%?) 。作业:课后 P194 T327课后练习鸢尾花的类型判别Fisher 于 1936 年发表的鸢尾花数据
46、是分类研究中的经典范例,本节也通过这一实例来介绍典型判别分析。数据来自 3 个品种的鸢尾花 setosa、versicolor 、virginica,对每一品种测量了 50 株植株的花瓣长(petallength) 、花瓣宽(petalwidth) 、花萼长(sepallength) 、花萼宽(sepalwidth) 。数据文件见 SAS 数据集 flowers.5.3 聚类分析引言:聚类分析与判别分析相似,都有分类作用。但判别分析是已知分类然后总结判别规则,是一种有指导的学习,而聚类分析是有了一批样本,不知它们的分类,甚至连分成几类也不知道,希望用某种方法把观测进行合理的分类,使得同一类的观
47、测比较接近,不同类的观测相差较远,因此是一种无指导的学习。聚类分析主要依赖观测间距离或相似程度的理解,不同度量方式产生不同的聚类结果。SAS 系统中提供了谱系聚类、快速聚类、变量聚类等过程。5.3.1 聚类原理简介1.聚类分析的基本原理,每个样品都只有 p 个指标,用 xij 表示第 i 个样品的第 j 个观测指标,那么以 xij 为元素的矩阵称为观测矩阵。12112 . . . pnnpX所谓聚类分析就是由此矩阵出相似统计量,并依此相似统计量对单个元素进行分类。按照聚类分析对象不同,可以将聚类分析分为 Q 型聚类(对样本观测 cases 进行分类)和 R 型聚类分析(对变量 variable
48、 进行分类) 。2.聚类方法概述对样本进行聚类的方法有多种,常用的有:(1) 系统聚类法:又分为凝聚的方法和分裂的方法。凝聚方法更常用,它先将每个样品或指标各自看成一类,然后按照一定的法则进行聚类,每次减少一类或几类,直到所有的样品都聚成一类。(2) 动态聚类法:初始时随机选择 k 个对象,每个对象初始地代表一个类的平均值或中心,对剩余的每个对象,根据其类中心的距离,被划分到最近的类,然后重新计算每个类的平均值,不断重复这个过程,直到所有的样本都不能再分配为止。5.3.2 系统聚类原理1.系统聚类的一般步骤1)将每个样品(指标)视为一类,共有 n 个样品(指标) ,则共分为 n 类;2)分别计算 n 个样品(指标)两两之间的距离;