当前位置:首页 > 数据分析实务与案例
统使用PROC SQL过程实现对SQL的支持。SQL过程的基本格式:
PROC SQL [选项表];
ALTER TABLE alter语句说明项; CREATE create语句说明项; DISCRIBE discribe语句说明项; DROP drop语句说明项; INSERT insert语句说明项; RESET [选项表];
SELECT select语句说明项; UPDATE update语句说明项; VALIDATE validate语句说明项;
CONNECT TO DBMS名 [AS 别名] [选项表]; DISCONNECT FROM DBMS名|别名; EXECUTE (SQL语句) BY DBMS名|别名; [RUN;]
在SAS中,可以用查询器来完成对数据集的SQL查询操作,只要单击菜单项?Tools=> Query?即可打开SQL查询表窗口,进行数据查询。
? 实验项目6。
用SQL窗查找出GPA数据集中gpa大于5的所有记录并且计算出它们的gpa的平均值。 〖实验指导〗 ★有关知识★ 同项目5。
实验六 聚类分析
?实验目的?
1.通过上机操作使学生掌握系统聚类分析方法在SAS软件中的实现,熟悉系统聚类的用途和操作方法,了解各种距离,能按要求将样本进行分类;
2.要求学生重点掌握该方法的用途,能正确解释软件处理的结果,尤其是冰柱图和树形图结果的解释;
? 实验项目1
用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,画树形图时沿水平方向画,即绘制水平方向的树形图,系统默认绘制垂直方向的树形图。 【实验过程(步骤、程序)】
以多元统计分析中一个经典的数据作为例子,这是Fisher分析过的鸢尾花数据,有三种不同鸢尾花(Setosa、Versicolor、Virginica),种类信息存入了变量SPECIES,并对每一种测量了50棵植株的花瓣长(PETALLEN)、花瓣宽(PETALWID)、花萼长(SEPALLEN)、花萼宽(SEPALWID)。这个数据已知分类,并不属于聚类分析的研究范围。这里我们为了示例,假装不知道样本的分类情况(既不知道类数也不知道每一个观测属于的类别),用SAS去进行聚类分析,如果得到的类数和分类结果符合真实的植物分类,我们就可以知道聚类分析产生了好的结果。
这里假定数据已输入SASUSER.IRIS中(见系统帮助菜单的?Sample Programs | SAS/STAT | Documentation Example 3 from Proc Cluster?)。为了进行谱系聚类并产生帮助确定类数的统计量,编写如下程序:
proc cluster data=sasuser.iris method=ward outtree=otree pseudo ccc; var petallen petalwid sepallen sepalwid; copy species; run;
可以显示如下的聚类过程(节略):
共分享92篇相关文档