sas讲稿第5章.docx
- 文档编号:30727274
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:26
- 大小:438.94KB
sas讲稿第5章.docx
《sas讲稿第5章.docx》由会员分享,可在线阅读,更多相关《sas讲稿第5章.docx(26页珍藏版)》请在冰豆网上搜索。
sas讲稿第5章
SAS软件与应用统计
第五章SAS多元统计分析
多元统计分析是统计学的重要应用工具,SAS实现了许多常用的多元统计分析方法。
SAS用于多变量分析的过程有PRINCOMP(主分量分析),FACTOR(因子分析),CANCORR(典型相关分析),MDS(多维标度过程),MULTTEST(多重检验),PRINQUAL(定性数据的主分量分析),CORRESP(对应分析),用于判别分析的过程有DISCRIM(判别分析),CANDISC(典型判别),STEPDISC(逐步判别),用于聚类分析的过程有CLUSTER(谱系聚类),FASTCLUS(K均值快速聚类),MODECLUS(非参数聚类),VARCLUS(变量聚类),TREE(画谱系聚类的结果谱系图并给出分类结果)。
我们这一章介绍最常见的多元统计方法,更详细的资料请参考《SAS系统SAS/STAT软件使用手册》。
5.1多变量分析
现实中的统计对象经常用多个指标来表示,比如人口普查,就可以有姓名、性别、出生年月日、籍贯、婚姻状况、民族、政治面貌、地区等,企业调查,可以有净资产、负债、盈利、职工人数、还贷情况等等。
多个指标(变量)可以分别进行分析,但是,我们往往希望综合使用这些指标,这时,有主分量分析、因子分析等方法可以把数据的维数降低,同时又尽量不损失数据中的信息。
5.1.1主分量分析
1.理论介绍(选讲,学生可以自己看)
主分量分析的目的是从原始的多个变量取若干线性组合,能尽可能多地保留原始变量中的信息。
从原始变量到新变量是一个正交变换(坐标变换)。
设有X=(X1…Xp)'是一个p维随机变量,有二阶矩,记=E(X),∑=Var(X)。
考虑它的线性变换
易见
i,j=1,…,p
如果要用Y1尽可能多地保留原始的X的信息,经典的办法是使Y1的方差尽可能大,这需要对线性变换的系数l1加限制,一般要求它是单位向量,即l1'l1=1。
其它的各Yi也希望尽可能多地保留X的信息,但前面的Y1…Yi-1已保留的信息就不再保留,即要求Cov(Yi,Yj)=0,j=1…,i-1,同时对li也有li'li=1的要求,在这样的条件下使Var(Yi)最大。
设协方差阵∑的特征值为12…p0,相应的单位特征向量分别为a1,a2,…,ap(当特征根有重根时单位特征向量不唯一)。
这时X的第i个主成分为Yi=ai'X,i=1,…,p,且Var(Yi)=i。
记
A=(a1,a2,…,ap),
,Y=(Y1,Y2,…,Yp),则A为正交阵,Y=A'X,Var(Y)=,且
,其中ii为的主对角线元素。
主分量Yk与原始变量Xi的相关系数(Yk,Xi)称为因子负荷量(factorloading),可以证明
,k,i=1,…,p,
,
。
为了减少变量的个数,希望前几个Yi就可以代表X的大部分信息。
定义
为主分量Yi的贡献率,称
为主分量Y1,…,Ym的累计贡献率。
一般取m使得累计贡献率达到70%~80%以上。
累计贡献率表示m个主分量从X1,…,Xp中提取了多少信息,但没有表达用它来恢复每一个Xi能恢复多少,为此定义m个主分量Y1,…,Ym对原始变量Xi的贡献率vi,vi为Xi对Y1,…,Ym的复相关系数平方,可以用公式
计算(注意m=p时vi1)。
前m个主分量Y(m)=(Y1…Ym)',在X的m个线性组合中能对X最好地线性逼近。
在上面的主分量计算方法中,方差越大的变量越被优先保留信息,实际中为了消除这种影响经常把变量标准化,即令
i=1,…,p
这时
的协方差阵就是X的相关阵R。
这时,主分量的协方差阵是
,其中
为R的特征根;
;Xi*与主分量Yk*的相关系数(因子负荷量)为
,其中
为R的对应k*的单位特征向量;
。
对于X的观测样本,设第t次观测为x(t)=(xt1,…,xtp),t=1,…,n,把数据写成矩阵形式为
由
得协方差阵∑的估计
和相关阵R的估计
,从
或
可以得到主分量分解。
计算特征值和单位特征向量,仍记为
和a1,a2,…,ap,用Y=ai'X作为X的第i主分量,而Y(t)=x(t)A称为第t个观测的主分量得分。
结果得到的主分量得分矩阵为
=XA。
可以把
的前几列作为维数压缩后的数据。
在SAS的PRINCOMP中计算主分量得分时如果主分量分解是用相关阵得到的则原始自变量要先标准化(减去均值并除以标准差),如果分解用的是协方差阵则计算主分量得分时只对原始变量中心化(减去均值)。
2.用PRINCOMP过程计算主分量分析(不要求掌握)
SAS的PRINCOMP过程有如下功能:
完成主分量分析。
主分量的个数可以由用户自己确定,主分量的名字可以用户自己规定,主分量得分是否标准化可自己规定。
输入数据集可以是原始数据集、相关阵、协方差阵或叉积阵。
输入为原始数据时,用户还可以规定从协方差阵出发还是从相关阵出发进行分析。
由协方差阵出发时方差大的变量在分析中起到更大的作用。
计算结果有:
简单统计量,相关阵或协方差阵,从大到小排序的特征值和相应特征向量,每个主分量解释的方差比例,累计比例等。
可生成两个输出数据集:
一个包含原始数据及主分量得分,另一个包含有关统计量,类型为TYPE=CORR或COV。
可揭示变量间的共线关系。
若某特征值特别接近0说明变量线性相关,这时用这些变量作回归自变量可能得到错误的结果。
PRINCOMP过程主要使用PROCPRINCOMP语句与VAR语句。
PROCPRINCOMP语句用来规定输入输出和一些运行选项,包括:
DATA=输入数据集,可以是原始数据集,也可以是TYPE=CORR,COV的数据集
OUT=输出包含原始数据和主分量得分的数据集
OUTSTAT=统计量输出数据集
COV要求从协方差阵出发计算主分量。
缺省为从相关阵出发计算。
N要计算的主分量个数。
缺省时全算。
NOINT要求在模型中不使用截距项。
这时统计量输出数据集类型为TYPEUCORR或UCOV。
STD要求在OUT的数据集中把主分量得分标准化为单位方差。
不规定时方差为相应特征值。
用VAR语句指定原始变量,必须为数值型(区间变量)。
3.应用举例
例5.1一月和七月平均气温的主分量分析在数据集TEMPERAT中存放有美国一些城市一月和七月的平均气温。
我们希望对这两个气温进行主成分分析,希望用一个统一的温度来作为总的可比的温度,所以进行主分量分析。
程序如下(数据见文件例5.1,导入生成所需的):
DATATEMPERAT;
PROCPRINCOMPCOVOUT=PRIN;
VARJULYJANUARY;
RUN;
主成分得分输出到了数据集PRIN中,显示的输出结果如下:
结果包括观测数、变量数,分析变量的简单统计量、协方差阵,总的方差,协方差阵的特征值(包括特征值、特征值之间的差、比例、累计比例),特征向量。
程序中的COV选项是要求用协方差阵而不是相关阵的特征值,结果中给了特征向量,我们就可以知道主分量得分的计算公式为:
PRIN1=0.343532*(JULY-24.23)+0.939141*(JANUARY-0.05)
PRIN2=0.939141*(JULY-24.23)-0.343532*(JANUARY-0.05)
如果没有用COV选项,原始变量中心化后还需要除以标准差。
由系数可见,第一主分量是两个月份的加权平均,代表了一个地方的气温水平,第二主分量系数一正一负,反应了冬季和夏季的气温差别。
图5-1一月、七月气温的散点图和主分量的散点图
在INSIGUT中打开WORK.PRIN,分别绘制JULY对JANUARY、PRIN2对PRIN1的散点图(图5-1)。
从图可以看出主分量为原始变量的一个正交旋转。
例5.2美国各种类型犯罪的主分量分析
在数据集CRIME中有美国各个州的各种类型犯罪的犯罪率数据。
希望对这些犯罪率数据进行主分量分析以概括犯罪情况。
程序(数据见文件例5.2,导入生成所需的)如下:
DATACRIME;
TITLE'各州每十万人的犯罪率';
PROCPRINCOMPOUT=CRIMCOMP;
RUN;
PROCSORT;
BYPRIN1;
PROCPRINT;
IDSTATE;
VARPRIN1PRIN2MURDERRAPEROBBERYASSAULT
BURGLARYLARCENYAUTO;
TITLE2'各州按第一主分量作为总犯罪率排列';
PROCSORT;
BYPRIN2;
PROCPRINT;
IDSTATE;
VARPRIN1PRIN2MURDERRAPEROBBERYASSAULT
BURGLARYLARCENYAUTO;
TITLE2'各州按第二主分量作为金钱犯罪与暴力犯罪对比的排列';
GOPTIONSFTEXT='宋体';
PROCGPLOT;
PLOTPRIN2*PRIN1=STATE;
TITLE2'前两个主分量的散点图';
PROCGPLOT;
PLOTPRIN3*PRIN1=STATE;
TITLE2'第一、三主分量的散点图';
RUN;
输入数据后,用PROCPRINCOMP对数据进行主分量分析,结果先给出了各变量的简单统计量,变量的相关阵,其特征值和特征向量结果如下:
第一主分量贡献率只有59%,前两个主分量累计贡献率达到76%,可以用前两个主分量。
前三个主分量累计贡献率已达到87%,所以前三个主分量可以表现犯罪率的大部分信息。
第一主分量的计算系数都是正数,所以它是一个州的犯罪率的一个加权平均,代表这个州的总的犯罪情况。
第二主分量在入室盗窃(BURGLARY)、盗窃罪(LARCENY)、汽车犯罪(AUTO)上有较大的正系数,在谋杀(MURDER)、强奸(RAPE)、斗殴(ASSAULT)上有较大的负系数,所以代表了暴力犯罪与其它犯罪的一种对比。
第三主分量为抢劫、汽车犯罪等与盗窃罪、入室盗窃、强奸的对比,其意义不易解释。
为了看出各州按第一主分量和第二主分量由低到高排列的情况,先用SORT过程排了序,然后用PRINT过程打印了结果(结果略)。
在按第一主分量排序中,NorthDakota、SouthDakota、WestVirginia排列在前,说明其犯罪率最低,Nevada、California排列在后,说明其犯罪率最高。
在按第二主分量排列的结果中,Mississippi排在最前,说明其暴力犯罪最高,Massachusetts最后,说明其暴力犯罪最低。
后面用PLOT过程画了主成分的散点图。
4.用SAS/INSIGHT和Analyst进行主分量分析
在SAS/INSIGHT中可进行主分量分析。
例如,对于上面的WORK.CRIME数据集,在INSIGHT中打开它后,选"Analyze-Multivariate(Y's)”,弹出选择变量的对话框,把各犯罪率变量都选为Y变量,然后按Output按钮,选中主分量分析(PrincipalComponentAnalysis)复选框,OK后就得到了多变量分析结果(包括原始变量的简单统计量、相关阵)和主分量分析的结果(特征值、累计贡献率、特征向量)。
对话框的Method按钮可以选是按协方差阵计算还是按相关阵计算。
另外还画了前两个主分量的散点图。
在Analyst中也可以进行主分量分析。
选"Statistics-Multivariate-PrincipalComponents"可以打开主分量分析的对话框,可以选要分析的变量,其Statistics按钮可以选按协方差阵分析还是按相关阵分析。
此界面调用PROCPRINCOMP,所以得到的结果与前面的例子是一样的。
5.1.2因子分析
1.理论简介
主分量分析作p个原始变量的m个线性组合,这些线性组合在原始变量的所有m个线性组合中可以最好地预报原始变量。
因子分析对主分量分析进行了推广,它用潜在的m个“因子”来概括原始变量的信息,这些因子不一定是原始变量的线性组合。
设x为p1随机向量,其均值为,协方差阵为∑=(ij),我们称x满足有k个因子的模型,若x能表为
其中:
pk是未知常数阵,f:
kp和u:
p1为随机向量。
f称为公共因子,u叫做特殊因子,叫因子载荷矩阵。
这个模型像是回归分析模型,但是这里x是多元随机变量而不是一个随机变量的样本,f也是随机变量而不是一般的回归系数。
求因子分解要用到原始变量协方差阵∑。
∑与和特殊因子的协方差阵的如下关系式:
∑='+
公因子模型分解是不唯一的,因为如果是一个正交阵,则有
x=+()('f)+u
这时'f是新的公共因子,是新的因子载荷阵。
我们可以利用这一特点对得到的因子模型进行旋转以产生容易解释的因子。
旋转时一般试图使因子载荷系数靠近正负1和0,这样容易解释因子的组成。
2.FACTOR过程使用
SAS/STAT的FACTOR过程可以进行因子分析、分量分析和因子旋转。
对因子模型可以使用正交旋转和斜交旋转,可以用回归法计算得分系数,同时把因子得分的估计存贮在输出数据集中:
用FACTOR过程计算的所有主要统计量也能存贮在输出数据集中。
FACTOR过程用法很简单,主要使用如下语句:
PROCFACTORDATA=数据集选项
VAR原始变量;
RUN;
输出结果包括特征值情况、因子载荷、公因子解释比例,等等。
为了计算因子得分,一般在PROCFACTOR语句中加一个SCORE选项和“OUTSTAT=输出数据集”选项,然后用如下的得分过程计算公因子得分:
PROCSCOREDATA=原始数据集
SCORE=FACTOR过程的输出数据集
OUT=得分输出数据集;
VAR用来计算得分的原始变量集合;
RUN;
3.例子
数据集SOCECON为洛杉基12个地区统计的五个社会经济指标:
人口总数(POP),教育程度(SCHOOL),就业数(EMPLOY),服务业人数(SERVICES),中等的房价(HOUSE)。
用FACTOR过程可以进行主分量分析。
下例中的SIMPLE选项要求计算变量的简单统计量,CORR要求输出相关阵。
DATASOCECON;
TITLE'五个经济指标的分析';
INPUTPOPSCHOOLEMPLOYSERVICESHOUSE;
CARDS;
570012.8250027025000
100010.96001010000
34008.81000109000
380013.6170014025000
400012.8160014025000
82008.326006012000
120011.44001016000
910011.533006014000
990012.5340018018000
960013.7360039025000
96009.633008012000
940011.4400010013000
PROCFACTORDATA=SOCECONSIMPLECORR;
TITLE2'主分量分析';
RUN;
结果给出了五个变量的简单统计量,相关阵,和相关阵的特征值、累计贡献:
前两个主分量解释了93.4%的方差,按照缺省的选择因子个数的准则MINEIGEN,取大于1的特征值,所以取两个因子。
因子模式阵(factorpattern,或称因子载荷阵)为最重要的结果之一:
它们是用公因子预报原始变量的回归系数。
第一主分量(因子)在所有五个变量上都有正的载荷,可见这个因子反应了城市规模的影响。
第二主分量在人口、就业上有大的正载荷,在教育程度和住房价格上有大的负载荷,则第二个因子较大的城市人口多但是教育程度和住房价格低。
结果还给出了公因子解释能力的估计:
这里给出了公因子对每一个原始变量的解释能力的量度,这是用原始变量对公因子的复相关系数平方(取0到1间值)来计算的。
CommunalityEstimates:
Total是这些复相关系数平方的总和。
因为每一个复相关系数平方都比较大,所以我们可以认为两个公因子可以很好地解释原始变量中的信息。
但是我们得到的因子解释不够清楚,于是考虑用其它的因子分析方法。
我们来进行主因子分析。
用FACTOR过程作主因子分析与作主分量分析的不同只是增加一个PRIORS选项,可以用PRIORS=SMC或者MAX、ONE等。
例如:
PROCFACTORDATA=SOCECONpriors=smc;
TITLE2'主因子分析';
RUN;
主因子法计算简约了的相关阵(相当于∑-的估计)的特征值,所以其特征值可能为负值。
选取因子个数的缺省准则是PROPORTION=1,即累计特征值达到特征值总和的100%。
这样取了两个因子。
结果与主分量分析相似。
为了得到好的因子解释,我们在上面的PROCFACTOR语句中再加上一个ROTATEPROMAX旋转选项,这样将在得到主因子分析后先产生方差最大正交预旋转(VARIMAX)然后进行斜交旋转,并加了一个REORDER选项使输出时把原始变量受相同因子影响的放在一起:
PROCFACTORDATA=SOCECONPRIORS=SMC
ROTATE=PROMAXREORDER;
TITLE2'主因子分析及PRONAX斜交旋转';
RUN;
在初始的主因子结果之后是方差最大预旋转的结果(只显示了旋转阵和旋转后的因子载荷):
可见第一因子反映了房价、教育水平、服务业人数,这些应该与发达程度有关。
第二因子反映了人口和就业情况,与城市规模有关。
这样得到的因子已经比较好用。
我们再看斜交旋转的结果,这里只给出了旋转后的因子载荷阵:
从结果看得到的因子比正交旋转没有改进。
因为斜交旋转后的公因子是相关的,所以结果中还给出了公因子的相关阵,参考结构(ReferenceStructure,为每个原始变量与公因子扣除其它公因子影响的偏相关),因子结构(FactorStructure,为原始变量与公因子间的相关系数)。
为了产生因子得分,需要在FACTOR过程中使用SCORE选项和OUTSTAT=选项输出得分系数数据集并调用SCORE过程。
比如,为了计算方差最大正交旋转的主因子得分,可以用如下程序:
PROCFACTORDATA=SOCECONPRIORS=SMC
ROTATE=VARIMAXREORDERSCOREOUTSTAT=OUTF;
TITLE2'主因子分析及VARINAX正交旋转';
RUN;
PROCSCOREDATA=SOCECONSCORE=OUTFOUT=OUTS;
TITLE2'VARINAX正交旋转后的主因子得分';
RUN;
5.2聚类分析
聚类分析和判别分析有相似的作用,都是起到分类的作用。
但是,判别分析是已知分类然后总结出判别规则,是一种有指导的学习:
而聚类分析则是有了一批样本,不知道它们的分类,甚至连分成几类也不知道,希望用某种方法把观测进行合理的分类,使得同一类的观测比较接近,不同类的观测相差较多,这是无指导的学习。
所以,聚类分析依赖于对观测间的接近程度(距离)或相似程度的理解,定义不同的距离量度和相似性量度就可以产生不同的聚类结果。
SAS/STAT中提供了谱系聚类、快速聚类、变量聚类等聚类过程。
5.2.1谱系聚类方法介绍
谱系聚类是一种逐次合并类的方法,最后得到一个聚类的二叉树聚类图。
其想法是,对于n个观测,先计算其两两的距离得到一个距离矩阵,然后把离得最近的两个观测合并为一类,于是我们现在只剩了n-1个类(每个单独的未合并的观测作为一个类)。
计算这n-1个类两两之间的距离,找到离得最近的两个类将其合并,就只剩下了n-2个类,……,直到剩下两个类,把它们合并为一个类为止。
当然,真的合并成一个类就失去了聚类的意义,所以上面的聚类过程应该在某个类水平数(即未合并的类数)停下来,最终的类就取这些未合并的类。
决定聚类个数是一个很复杂的问题。
设观测个数为n,变量个数为v,G为在某一聚类水平上的类的个数,xi为第i个观测,CK是当前(水平G)的第K类,NK为CK中的观测个数,X为均值向量,XK为类CK中的均值向量(中心),||x||为欧氏长度,
为总离差平方和,
为类CK的类内离差平方和,PG=∑WJ为聚类水平G对应的各类的类内离差平方和的总和。
假设某一步聚类把类CK和类CL合并为下一水平的类CM,则定义BKL=WM-WK-WL为合并导致的类内离差平方和的增量。
用d(x,y)代表两个观测之间的距离或非相似性测度,DKL为第G水平的类CK和类CL之间的距离或非相似性测度。
进行谱系聚类时,类间距离可以直接计算,也可以从上一聚类水平的距离递推得到。
观测间的距离可以用欧氏距离或欧氏距离的平方,如果用其它距离或非相似性测度得到了一个观测间的距离矩阵也可以作为谱系聚类方法的输入。
根据类间距离的计算方法的不同,有多种不同的聚类方法。
其中几种介绍如下:
1.类平均法(METHOD=AVERAGE)
测量两类每对观测间的平均距离,即
在d(x,y)=||x-y||2时若类CK和类CL合并为下一水平的类CM,则合并得到的类CM和其他的类CJ之间距离的递推公式为
2.重心法(METHOD=CENTROID)
重心法测量两个类的重心(均值)之间的(平方)欧氏距离。
即
当观测间距离为平方欧氏距离时有递推公式
3.最长距离法(METHOD=COMPLETE)
计算两类观测间最远一对的距离,即
递推公式为
4.最短距离法(METHOD=SINGLE)
计算两类观测间最近一对的距离,即
递推公式为
5.密度估计法(METHOD=DENSITY)
密度估计法按非参数密度来定义两点间的距离d*。
如果两个点xi和xj是近邻(两点距离小于某指定常数或xj在距离xi最近的若干点内)则距离是两点密度估计的倒数的平均,否则距离为正无穷。
密度估计有最近邻估计(K=)、均匀核估计(R=)和Wong混合法(HYBRID)。
6.Ward最小方差法(METHOD=WARD)
也称Ward离差平方和法。
组间距离为
当观测间距离为d(x,y)=||x-y||2/2时,递推公式为
Ward方法并类时总是使得并类导致的类内离差平方和增量最小。
其它的聚类方法还有EML法、可变类平均法(FLEXIBLE)、McQuitty相似分析法(MCQUITTY)、中间距离法(MEDIAN)、两阶段密度估计法(TWOSTAGE)等。
5.2.2谱系聚类类数的确定
谱系聚类最终得到一个聚类树,可以把所有观测聚为一类。
到底应该把观测分为几类是一个比较困难的问题,因为分类问题本身就是没有一定标准的,关于这一点《实用多元统计分析》(王学仁、王松桂,上海科技出版社)第十章给出了一个很好的例子,即扑克牌的分类。
我们可以把扑克牌按花色分类,按大小点分类,按桥牌的高花色低花色分类,等等。
决定类数的一些方法来自统计的方差分析的思想,我们在这里作一些介绍。
1.R2统计量
其中PG为分类数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sas 讲稿