其中的VAR语句指定用来聚类的变量。COPY语句把指定的变量复制到OUTTREE=的数据集中。 PROC CLUSTER语句的主要选项有:
METHOD=选项,这是必须指定的,此选项决定我们要用的聚类方法,主要由类间距离定义决定。方法有AVERAGE、CENTROID、COMPLETE、SINGLE、DENSITY、WARD、EML、FLEXIBLE、MCQUITTY 、MEDIAN、TWOSTAGE等,其中DENSITY、TWOSTAGE等方法还要额外指定密度估计方法(K=、R= 或HYBRID)。
? 输入DATA=数据集,可以是原始观测数据集,也可以是距离矩阵数据集。
? OUTTREE=输出谱系聚类树数据集,把谱系聚类树输出到一个数据集,可以用TREE过程绘图并实际分类。
? STANDARD选项,把变量标准化为均值0,标准差1。
? ?
PSEUDO选项和CCC选项。PSEUDO选项要求计算伪F和伪 选项要求计算
、半偏
统计量,CCC
和CCC统计量。其中CCC统计量也是一种考察聚类效果的统计量,CCC较大的聚类水平是较好的。
二、TREE过程用法
TREE过程可以把CLUSTER过程产生的OUTTREE=数据集作为输入,画出谱系聚类的树图,并按照用户指定的聚类水平(类数)产生分类结果数据集。一般格式如下:
PROC TREE DATA=输入聚类结果数据集 OUT=输出数据集 GRAPHICS NCLUSTER=类数 选项; COPY 复制变量; RUN;
其中COPY语句把输入数据集中的变量复制到输出数据集(实际上这些变量也必须在CLUSTER 过程中用COPY语句复制到OUTTREE=数据集)。PROC TREE语句的重要选项有:
o
DATA=数据集,指定从CLUSTER过程生成的OUTTREE=数据集作为输入。
o
OUT=数据集,指定包含最后分类结果(每一个观测属于哪一类,用一个CLUSTER变量区分)的输出数据集。
NCLUSTERS=选项,由用户指定最后把样本观测分为多少个类。 o GRAPHICS,这是指定画谱系聚类的树图时使用高分辨率图形(要求有SAS/GRAPH模块)。
o HORIZONTAL,画树图时横向画。
o
三、例子
我们以多元分析中一个经典的数据作为例子,这是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;
可以显示如下的聚类过程(节略):
T
Pseudo Pseudo i
NCL -Clusters Joined- FREQ SPRSQ RSQ ERSQ CCC F t**2 e
149 OB16 OB76 2 0.000000 1.0000 . . . .
148 OB2 OB58 2 0.000007 1.0000 . . 1854.1 . T 147 OB96 OB107 2 0.000007 1.0000 . . 1400.1 . T 146 OB89 OB113 2 0.000007 1.0000 . . 1253.1 . T 145 OB65 OB126 2 0.000007 1.0000 . . 1182.9 . T ??????????????
25 CL50 0.973335 24 CL78 0.972254 23 CL68 0.971101 22 CL30 0.969868 21 CL70 0.968545 20 CL36 0.967119 19 CL40 0.965579 18 CL25 0.963906 17 CL29 0.962081 16 CL34 0.960079 15 CL24 0.957871 14 CL21 0.955418 13 CL18 0.952670 12 CL16 0.949541 11 CL14 0.945886 10 CL26 0.941547 9 CL27 0.936296 OB57 6.446 291.0 CL62 6.430 293.5 CL38 6.404 296.0 OB137 6.352 298.3 CL33 6.290 300.7 OB25 6.206 302.9 CL22 6.146 306.1 CL39 6.082 309.5 CL45 6.026 313.5 CL32 5.984 318.4 CL28 5.929 323.7 CL53 5.850 329.2 CL48 5.690 333.8 CL23 4.632 342.4 CL43 4.675 353.3 CL20 4.811 368.1 CL17 5.018 386.6 7 0.000634 0.9824 5.6
7 0.000742 0.9817 9.8
9 0.000805 0.9809 6.9
6 0.000896 0.9800 5.1
4 0.000976 0.9790 3.2
10 0.001087 0.9779 9.8
19 0.001141 0.9768 7.7
10 0.001249 0.9755 6.2
16 0.001351 0.9742 8.2
15 0.001462 0.9727 9.0
15 0.001641 0.9711 9.8
7 0.001873 0.9692 5.1
15 0.002271 0.9669 8.9
24 0.002274 0.9647 9.6
12 0.002500 0.9622 5.8
22 0.002694 0.959512.9
31 0.003060 0.956417.8
8 CL35 CL15 23 0.003095 0.9533 0.929791 5.443 414.1 13.8
7 CL10 CL47 26 0.005811 0.9475 0.921496 5.426 430.1 19.1
6 CL8 CL13 38 0.006042 0.9414 0.910514 5.806 463.1 16.3
5 CL9 CL19 50 0.010532 0.9309 0.895232 5.817 488.5 43.2
4 CL12 CL11 36 0.017245 0.9137 0.872331 3.987 515.1 41.0
3 CL6 CL7 64 0.030051 0.8836 0.826664 4.329 558.1 57.2
2 CL4 CL3 100 0.111026 0.7726 0.696871 3.833 502.8 115.6
1 CL5 CL2 150 0.772595 0.0000 0.000000 0.000 . 502.8 伪F图形
CCC图形
伪图形
半偏图形
这个输出列出了把150个观测每次合并两类,共合并149次的过程。NCL列指定了聚类水平G (即这一步存在的单独的类数)。
“-Clusters Joined-”为两列,指明这一步合并了哪两个类。其中OBxxx表示哪一个原始观测,而CLxxx表示在哪一个聚类水平上产生的类。比如,NCL为149时合并的是OB16和OB76,即16 号观测和76号观测,