多元统计分析上机考试

更新时间:2023-11-07 23:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 聚类分析

一、实验目的与要求

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语言中只要允许用一个空格的地方就可以加入任意多个空白(空格、制表符、回车),允许用空格的地方是名字周围、运算符周围。比如,程序

proc print

data=c9501;

by avg; run; 和

proc print data=c9501;by avg;run;

是等效的。另外,虽然SAS关键字和SAS名字不区分大小写,但字符型数据值要区分大小写,比如\和\被认为是不同的数据值。 在SAS程序中可以加入注释,注释使用C语言语法,用/*和*/在两端界定注释,这种注释可以出现在任何允许加入空格的位置,可以占多行。我们一般只把注释单独占一行或若干行,不把注释与程序代码放在同一行。注释的另一个作用是把某些代码暂时屏蔽使其不能运行。下面是一个注释的例子: /* 生成95级1班考试成绩的数据集 */ data c9501;

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过程的一般格式为:

PROC CLUSTER DATA=输入数据集 METHOD=聚类方法 选项; VAR 聚类用变量; COPY 复制变量; RUN;

其中的VAR语句指定用来聚类的变量。COPY语句把指定的变量复制到OUTTREE=的数据集中。 PROC CLUSTER语句的主要选项有:

(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=数据集作为输入数据集,画出谱系聚类的树形图,并按照用户指定的聚类水平(类数)产生分类结果数据集。其一般格式如下:

PROC TREE DATA=数据集 OUT=输出数据集 NCLUSTER=类数 选项;

COPY 复制变量; RUN;

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

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

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

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

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

4.例子

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

本文来源:https://www.bwwdw.com/article/3362.html

Top