多元统计分析上机考试.docx

上传人:b****5 文档编号:3430102 上传时间:2022-11-23 格式:DOCX 页数:72 大小:204.81KB
下载 相关 举报
多元统计分析上机考试.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

多元统计分析上机考试

第一章  聚类分析

一、实验目的与要求

1.通过上机操作使学生掌握系统聚类分析方法在SAS和SPSS软件中的实现,熟悉系统聚类的用途和操作方法,了解各种距离,能按要求将样本进行分类;

2.要求学生重点掌握该方法的用途,能正确解释软件处理的结果,尤其是冰柱图和树形图结果的解释;

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

 

二、实验内容与步骤

SAS部分

(一)SAS程序语言简介

SAS系统强大的数据管理能力、计算能力、分析能力依赖于作为其基础的SAS语言。

SAS语言是一个专用的数据管理与分析语言,它的数据管理功能类似于数据库语言(如FoxPro),但又添加了一般高级程序设计语言的许多成分(如分支、循环、数组),以及专用于数据管理、统计计算的函数。

SAS系统的数据管理、报表、图形、统计分析等功能都可以用SAS语言程序来调用,只要指定要完成的任务就可以由SAS系统按照预先设计好的程序去进行,所以SAS语言和FoxPro等一样是一种第四代计算机语言。

SAS语言有它自己的对变量、常量、表达式的一系列规定,有一系列标准函数,有它自己的语句、语法,可以按一定规则构成SAS程序。

SAS语言程序由数据步(DATA步)和过程步(PROC步)组成。

数据步用来生成数据集、计算、整理数据,过程步用来对数据进行分析、报告。

SAS语言的基本单位是语句,每个SAS语句一般由一个关键字(如DATA,PROC,INPUT,CARDS,BY)开头,包含SAS名字、特殊字符、运算符等,以分号结束。

SAS关键字是用于SAS语句开头的特殊单词。

SAS名字在SAS程序中标识各种SAS成分,如变量、数据集、数据库,等等。

SAS名字由1到8个字母、数字、下划线组成,第一个字符必须是字母或下划线。

SAS关键字和SAS名字都不区分大小写。

语句关键字用大写或小写方式都可以,但不可简化,必须原样照写。

SAS程序由语句构成。

一个SAS语句可以占若干行,可以从任意一列开始,但必须在语句结束处加分号,因为SAS系统是根据分号判断哪些文字属于一个语句的,因此在一行上可以写几个SAS语句,只要每个语句都用分号结束(最常见的SAS编程错误就是丢失分号)。

因为分号作为语句结束标志,所以SAS语句不需要单独占一行,一个语句可以写到多行(不需任何续行标志),也可以在一行连续写几个语句。

SAS语言中只要允许用一个空格的地方就可以加入任意多个空白(空格、制表符、回车),允许用空格的地方是名字周围、运算符周围。

比如,程序

procprint

       data=c9501;

   by             avg;

 

run;

procprintdata=c9501;byavg;run;

 

是等效的。

另外,虽然SAS关键字和SAS名字不区分大小写,但字符型数据值要区分大小写,比如"Beijing"和"BEIJING"被认为是不同的数据值。

在SAS程序中可以加入注释,注释使用C语言语法,用/*和*/在两端界定注释,这种注释可以出现在任何允许加入空格的位置,可以占多行。

我们一般只把注释单独占一行或若干行,不把注释与程序代码放在同一行。

注释的另一个作用是把某些代码暂时屏蔽使其不能运行。

下面是一个注释的例子:

/*生成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;

run;

 

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

∙                                                                                  T 

∙                                                                    PseudoPseudoi 

NCL-ClustersJoined-  FREQ  SPRSQ   RSQ    ERSQ     CCC    F    t**2 e 

                                                                               

149  OB16    OB76      2  0.0000001.0000 .         .       .     .    

148  OB2     OB58      2  0.0000071.0000 .         .   1854.1    .  T

147  OB96    OB107     2  0.0000071.0000 .         .   1400.1    .  T 

146  OB89    OB113     2  0.0000071.0000 .         .   1253.1    .  T 

145  OB65    OB126     2  0.0000071.0000 .         .   1182.9    .  T 

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

25   CL50    OB57      7  0.0006340.98240.973335  6.446 291.0   5.6

24   CL78    CL62      7  0.0007420.98170.972254  6.430 293.5   9.8

23   CL68    CL38      9  0.0008050.98090.971101  6.404 296.0   6.9

22   CL30    OB137     6  0.0008960.98000.969868  6.352 298.3   5.1 

21   CL70    CL33      4  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      10 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      15 0.0016410.97110.957871  5.929 323.7   9.8 

14   CL21    CL53      7  0.0018730.96920.955418  5.850 329.2   5.1

13   CL18    CL48      15 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  

9    CL27    CL17      31 0.0030600.95640.936296  5.018 386.6  17.8 

8    CL35    CL15      23 0.0030950.95330.929791  5.443 414.1  13.8 

7    CL10    CL47      26 0.0058110.94750.921496  5.426 430.1  19.1 

6    CL8     CL13      38 0.0060420.94140.910514  5.806 463.1  16.3 

5    CL9     CL19      50 0.0105320.93090.895232  5.817 488.5  43.2 

4    CL12    CL11      36 0.0172450.91370.872331  3.987 515.1  41.0 

3    CL6     CL7       64 0.0300510.88360.826664  4.329 558.1  57.2 

2    CL4     CL3       1000.1110260.77260.696871  3.833 502.8 115.6 

1    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;

copyspecies;

run;

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

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

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

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

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

 

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

SPECIES(Species)    CLUSTER

 

Frequency |      1|      2|      3| Total

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

Setosa    |     0|     0|    50|    50

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

Versicolor|    49|     1|     0|    50

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

Virginica |    15|    35|     0|    50

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

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