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

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

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

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

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

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;

是等效的。

另外,虽然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;

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

 

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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