《多元统计分析》实验上机指导书文档格式.docx

上传人:b****3 文档编号:16658094 上传时间:2022-11-25 格式:DOCX 页数:72 大小:204.65KB
下载 相关 举报
《多元统计分析》实验上机指导书文档格式.docx_第1页
第1页 / 共72页
《多元统计分析》实验上机指导书文档格式.docx_第2页
第2页 / 共72页
《多元统计分析》实验上机指导书文档格式.docx_第3页
第3页 / 共72页
《多元统计分析》实验上机指导书文档格式.docx_第4页
第4页 / 共72页
《多元统计分析》实验上机指导书文档格式.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

《多元统计分析》实验上机指导书文档格式.docx

《《多元统计分析》实验上机指导书文档格式.docx》由会员分享,可在线阅读,更多相关《《多元统计分析》实验上机指导书文档格式.docx(72页珍藏版)》请在冰豆网上搜索。

《多元统计分析》实验上机指导书文档格式.docx

下面是一个注释的例子:

/*生成95级1班考试成绩的数据集*/

datac9501;

SAS程序包括数据步和过程步两种结构,每一个步是一段相对完整的可以单独运行的程序。

每个步以RUN语句结束。

当一个步后面跟着另一个步时,前面一个步的RUN语句可以省略。

一个DATA步后面可以跟几个PROC步,也可以若干个DATA步后面跟几个PROC步;

或以PROC步打头,后面跟若干个DATA步,再跟PROC步,程序中的每个步都是相应独立的,彼此不能交叉,不能嵌套。

数据步用来生成、整理数据和自编程计算,过程步调用SAS已编好的处理过程对数据进行处理。

我们自己用SAS编程序实现各多元统计分析方法主要用到过程步。

在本课的学习过程中,主要采用调用已有数据集的方式,因此程序的重点在PROC步上,要分析的数据集只要在选择项DATA=中指明即可。

最简单的PROC步只有一个PROC语句,即:

PROC过程名;

该语句调用指定的过程分析在该语句之前最近建立的数据集。

在调用时的其他要求全部采用SAS系统设置的缺省值。

PROC语句的一般格式为:

PROC 

过程名选择项;

(二)用CLUSTER过程和TREE过程进行谱系聚类

聚类分析又称群分析、点群分析,是定量研究分类问题的一种多元统计方法。

聚类分析的基本思想是认为所研究的样品或指标之间存在着程度不同的相似性,于是根据一批样品的多个观测指标,找出能够度量样品或变量之间相似程度的统计量,并以此为依据,采用某种聚类法,将所有的样品或变量分别聚合到不同的类中,使同一类中的个体有较大的相似性,不同类中的个体差异较大。

所以,聚类分析依赖于对观测间的接近程度(距离)或相似程度的理解,定义不同的距离量度和相似性量度就可以产生不同的聚类结果。

SAS/STAT模块中提供了谱系聚类(CLUSTER)、快速聚类(FASTCLUS)、变量聚类(VARCLUS)等聚类过程。

我们重点要求掌握谱系聚类法。

谱系聚类是一种逐次合并类的方法,最后得到一个聚类的二叉树聚类图。

其基本计算过程是,对于n个观测,先计算其两两的距离得到一个距离矩阵,然后把离得最近的两个观测合并为一类,于是我们现在只剩了n-1个类(每个单独的未合并的观测作为一个类)。

计算这n-1个类两两之间的距离,找到离得最近的两个类将其合并,就只剩下了n-2个类……直到剩下两个类,把它们合并为一个类为止。

当然,真的合并成一个类就失去了聚类的意义,所以上面的聚类过程应该在某个类水平数(即未合并的类数)停下来,最终的类数就是这些未合并的类的个数。

决定聚类个数是一个很复杂的问题。

1.谱系聚类类数的确定

谱系聚类最终得到一个聚类树形图,可以把所有观测聚为一类。

到底应该把观测分为几类合适是一个比较难抉择的问题,因为分类问题本身就是没有一定标准的,关于这一点《实用多元统计分析》(王学仁、王松桂,上海科技出版社)第十章给出了一个很好的例子,即扑克牌的分类。

我们可以把扑克牌按花色分类,按大小点分类,按桥牌的高花色低花色分类,等等。

决定类数的一些方法来自于统计的方差分析的思想,我们在这里作一些介绍。

(1)

统计量

其中

为分类数为

个类时的总类内离差平方和,

为所有变量的总离差平方和。

越大,说明分为

个类时每个类内的离差平方和都比较小,也就是分为

个类是合适的。

但是,显然分类越多,每个类越小,

越大,所以我们只能取

使得

足够大,但

本身比较小,而且

不再大幅度增加。

(2)半偏相关

在把类

和类

合并为下一水平的类

时,定义半偏相关

半偏

为合并类引起的类内离差平方和的增量,半偏相关越大,说明这两个类越不应该合并,所以如果由

类合并为

类时如果半偏相关很大就应该取

类。

(3)伪F统计量

伪F统计量评价分为

个类的效果。

如果分为

个类合理,则类内离差平方和(分母)应该较小,类间平方和(分子)相对较大。

所以应该取伪F统计量较大而类数较小的聚类水平。

(4)伪

用此统计量评价合并类

的效果,该值大说明不应合并这两个类,所以应该取合并前的水平。

2.CLUSTER过程用法

由于在SAS系统中聚类分析过程没有现成的窗口操作,所以实现聚类分析必须编写SAS程序。

SAS/STAT模块中的Cluster过程可实现系统聚类分析,可调用Tree过程生成聚类谱系图。

CLUSTER过程的一般格式为:

PROCCLUSTERDATA=输入数据集METHOD=聚类方法 

选项;

VAR聚类用变量;

COPY复制变量;

RUN;

其中的VAR语句指定用来聚类的变量。

COPY语句把指定的变量复制到OUTTREE=的数据集中。

PROCCLUSTER语句的主要选项有:

(1)METHOD=选项,这是必须指定的,此选项决定我们要用的聚类方法,主要由类间距离定义决定。

方法有AVERAGE、CENTROID、COMPLETE、SINGLE、DENSITY、WARD、EML、FLEXIBLE、MCQUITTY、MEDIAN、TWOSTAGE等,其中DENSITY、TWOSTAGE等方法还要额外指定密度估计方法(K=、R=或HYBRID)。

(2)DATA=输入数据集,可以是原始观测数据集,也可以是距离矩阵数据集。

(3)OUTTREE=输出数据集,把绘制谱系聚类树的信息输出到一个数据集,可以用TREE过程调用此数据集绘图树形图并实际分类。

(4)STANDARD选项,把变量标准化为均值为0,标准差为1。

(5)PSEUDO选项和CCC选项。

PSEUDO选项要求计算伪F和伪

统计量,CCC选项要求计算

、半偏

和CCC统计量。

其中CCC统计量也是一种考察聚类效果的统计量,CCC较大的聚类水平是较好的。

3.TREE过程用法

TREE过程可以把CLUSTER过程产生的OUTTREE=数据集作为输入数据集,画出谱系聚类的树形图,并按照用户指定的聚类水平(类数)产生分类结果数据集。

其一般格式如下:

PROCTREEDATA=数据集OUT=输出数据集 

NCLUSTER=类数选项;

COPY复制变量;

RUN;

其中COPY语句把输入数据集中的变量复制到输出数据集(实际上这些变量也必须在CLUSTER过程中用COPY语句复制到OUTTREE=数据集)。

PROCTREE语句的重要选项有:

(1)DATA=数据集,指定从CLUSTER过程生成的OUTTREE=数据集作为输入数据集。

(2)OUT=数据集,指定包含最后分类结果(每一个观测属于哪一类,用一个CLUSTER变量区分)的输出数据集。

(3)NCLUSTERS=选项,由用户指定最后把样本观测分为多少个类(即聚类水平)。

(4)HORIZONTAL,画树形图时沿水平方向画,即绘制水平方向的树形图,系统默认绘制垂直方向的树形图。

4.例子

我们以多元统计分析中一个经典的数据作为例子,这是Fisher分析过的鸢尾花数据,有三种不同鸢尾花(Setosa、Versicolor、Virginica),种类信息存入了变量SPECIES,并对每一种测量了50棵植株的花瓣长(PETALLEN)、花瓣宽(PETALWID)、花萼长(SEPALLEN)、花萼宽(SEPALWID)。

这个数据已知分类,并不属于聚类分析的研究范围。

这里我们为了示例,假装不知道样本的分类情况(既不知道类数也不知道每一个观测属于的类别),用SAS去进行聚类分析,如果得到的类数和分类结果符合真实的植物分类,我们就可以知道聚类分析产生了好的结果。

这里我们假定数据已输入SASUSER.IRIS中(见系统帮助菜单的“SamplePrograms|SAS/STAT|DocumentationExample3fromProcCluster”)。

为了进行谱系聚类并产生帮助确定类数的统计量,编写如下程序:

procclusterdata=sasuser.irismethod=wardouttree=otreepseudoccc;

varpetallenpetalwidsepallensepalwid;

copyspecies;

可以显示如下的聚类过程(节略):

∙ 

 

PseudoPseudoi 

NCL-ClustersJoined- 

FREQ 

SPRSQ 

RSQ 

ERSQ 

CCC 

t**2 

149 

OB16 

OB76 

0.0000001.0000 

148 

OB2 

OB58 

0.0000071.0000 

1854.1 

T

147 

OB96 

OB107 

1400.1 

146 

OB89 

OB113 

1253.1 

145 

OB65 

OB126 

1182.9 

………………………………………………………………………………………………………

25 

CL50 

OB57 

0.0006340.98240.973335 

6.446 

291.0 

5.6

24 

CL78 

CL62 

0.0007420.98170.972254 

6.430 

293.5 

9.8

23 

CL68 

CL38 

0.0008050.98090.971101 

6.404 

296.0 

6.9

22 

CL30 

OB137 

0.0008960.98000.969868 

6.352 

298.3 

5.1 

21 

CL70 

CL33 

0.0009760.97900.968545 

6.290 

300.7 

3.2

20 

CL36 

OB25 

10 

0.0010870.97790.967119 

6.206 

302.9 

9.8 

19 

CL40 

CL22 

19 

0.0011410.97680.965579 

6.146 

306.1 

7.7 

18 

CL25 

CL39 

0.0012490.97550.963906 

6.082 

309.5 

6.2 

17 

CL29 

CL45 

16 

0.0013510.97420.962081 

6.026 

313.5 

8.2 

16 

CL34 

CL32 

15 

0.0014620.97270.960079 

5.984 

318.4 

9.0 

15 

CL24 

CL28 

0.0016410.97110.957871 

5.929 

323.7 

14 

CL21 

CL53 

0.0018730.96920.955418 

5.850 

329.2 

5.1

13 

CL18 

CL48 

0.0022710.96690.952670 

5.690 

333.8 

8.9 

12 

CL16 

CL23 

24 

0.0022740.96470.949541 

4.632 

342.4 

9.6 

11 

CL14 

CL43 

12 

0.0025000.96220.945886 

4.675 

353.3 

5.8 

10 

CL26 

CL20 

22 

0.0026940.95950.941547 

4.811 

368.1 

12.9 

CL27 

CL17 

31 

0.0030600.95640.936296 

5.018 

386.6 

17.8 

CL35 

CL15 

23 

0.0030950.95330.929791 

5.443 

414.1 

13.8 

CL10 

CL47 

26 

0.0058110.94750.921496 

5.426 

430.1 

19.1 

CL8 

CL13 

38 

0.0060420.94140.910514 

5.806 

463.1 

16.3 

CL9 

CL19 

50 

0.0105320.93090.895232 

5.817 

488.5 

43.2 

CL12 

CL11 

36 

0.0172450.91370.872331 

3.987 

515.1 

41.0 

CL6 

CL7 

64 

0.0300510.88360.826664 

4.329 

558.1 

57.2 

CL4 

CL3 

1000.1110260.77260.696871 

3.833 

502.8 

115.6 

CL5 

CL2 

1500.7725950.00000.000000 

0.000 

502.8

伪F图形

CCC图形

图形

输出结果列出了把150个观测每次合并两类,共合并149次的过程。

NCL列指定了聚类水平G(即这一步存在的单独的类数)。

“-ClustersJoined-”为两列,指明这一步合并了哪两个类。

其中OBxxx表示原始观测,而CLxxx表示在某一个聚类水平上产生的类。

比如,NCL为149时合并的是OB16和OB76,即16号观测和76号观测合并;

NCL为1(最后一次合并)合并的是CL5和CL2,即类水平为5时得到的类和类水平为2时得到的类合并,CL5又是由CL9和CL19合并得到的,CL2是由CL4和CL3合并得到的,等等。

FREQ表示这次合并得到的类中有多少个观测。

SPRSQ是半偏

,RSQ是

,ERSQ是在均匀零假设下的

的近似期望值,CCC为CCC统计量,PseudoF为伪F统计量,Pseudot**2为伪

统计量,NormRMSDist是正规化的两类元素间距离的均方根,Tie指示距离最小的候选类对是否有多对。

因为我们假装不知道数据的实际分类情况,所以我们必须找到一个合理的分类个数。

为此,考察CCC、伪F、伪

和半偏

统计量。

我们打开ASSIST模块,调入上面产生的OTREE数据集,绘制各统计量的图形。

因为类水平太大时的信息没有多少用处,所以我们用WHERE语句对OTREE数据集取其类水平不超过30的观测。

各统计量的图形显示:

CCC统计量建议取5类或3类(局部最大值),伪F建议3类(局部最大值),伪

建议3类(局部最大值处是不应合并的,即局部最大值处的类数加1),半偏

建议3类。

由这些指标看,比较一致的是3类,其次是5类。

为了看为什么不能明显地分为三类,我们对四个变量求主分量,画出前两个主分量的散点图。

可以看出Setosa(红色)与其它两类分得很开,而Versicolor(绿色)与Virginica(蓝色)则不易分开。

因为我们知道要分成3类,所以我们用如下的TREE过程绘制树形图并产生分类结果数据集:

proctreedata=otreehorizontalnclusters=3out=oclust;

树形图因为观测过多所以显得杂乱。

从图中也可以看出,分为两类可以分得很开,而分成三类时距离则不够远。

这个TREE过程用NCLUSTERS=3指定了分成3个类,结果数据集OCLUST中有一个CLUSTER变量代表生成的分类。

我们把这个数据集调入ASSIST模块中用不同颜色代表SPECIES(实际种类),用不同符号代表不同聚类过程分类,作前两个主分量散点图。

可以看出,Virsicolor和Virginica两类互相都有分错为对方的。

为了统计分类结果,可以用ASSIST模块FREQ过程作表,得到如下结果:

SPECIES(Species) 

CLUSTER

Frequency 

1| 

2| 

3| 

Total

-----------+--------+--------+--------+

Setosa 

0| 

50| 

50

Versicolor| 

49| 

1| 

Virginica 

15| 

35| 

Total 

64 

36 

50 

150

可见Virginica被分错的较多。

同学们可以自己试用其它的类间距离来聚类,可以得到不同的结果。

SPSS部分

系统聚类分析在SPSS中的实现较为简单,因为有现成的窗口菜单操作,在SPSS主菜单中选择Analyze→Classify→Hierarchical 

Cluster,可实现系统聚类分析。

SPSS软件处理结果的解释可参见SAS部分的相关内容,所不同的是在SPSS的结果中,聚类进度表中以0表示参与合并的是观测,以数字表示参与合并的是类,作为类出现时用类中较小的观测号来表示。

聚类分析在写作中的应用

从“中国期刊网”上查阅相关文章,如“中国城市竞争力聚类分析”等,掌握聚类分析在写作中的应用。

第二章 

判别分析

1.通过上机操作使学生掌握判别分析方法在SAS和SPSS软件中的实现,了解判别方法的分类、适用条件和结果验证方法;

2.要求学生熟悉判别分析的用途和操作,重点掌握对软件处理结果的解释(区域图、未标准化典型判别函数、Bayes判别函数)和如何使用分析结果对新样品进行分类;

3.要求学生阅读一定数量的文献资料,掌握判别分析方法在写作中的应用。

二、实验内

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1