对数据进行分类,基于数据的基本特征,通过计算一些统计指标,反映数据(观测或变量)之间的相似程度。根据分类对象的不同又可分为变量聚类和样本聚类。
系统聚类
原理:基于样本(变量)两两间距离的远近进行分类。
CLUSTER过程
专门用于系统聚类的实现。
格式:
proc cluster data=数据集名 method=方法名 <选项>;
var 指标变量名; *指定需要进行聚类的变量名;
id 观测序号;
run;
注:
1.proc
选项:
i.method=方法名
,方法名有很多,必须指定一个方法名;
ii.standard
:对原始数据的标准化;
iii.outtree
:指定聚类分析的输出数据集名;
TREE过程
以Cluster过程产生的特定数据集作为输入,绘制聚类分析谱系。
格式:
proc tree data=数据集名;
id 样本序号;
run;
例
如下表,根据统计数据对城市进行分类。
代码:
data test; /*创建数据集*/
input country$ x1-x8;
cards;
南京市 572.23 424.59 8904 403537 497020 530284 61188 317989
无锡市 442.54 287.14 5701 253792 250216 239309 42988 227412
徐州市 908.66 392.64 18516 251067 343409 448939 45516 118537
常州市 346.22 201.01 3806 182043 168611 164427 37477 152556
苏州市 590.97 367.92 13471 525769 326485 268477 52288 544960
南通市 777.62 323.53 14833 263851 254781 220819 56164 256482
连云港市 467.83 171.51 22668 91013 167608 181301 34004 65984
淮安市 519.92 184.29 28437 128906 190317 197345 37418 112897
盐城市 796.51 310.59 37272 177835 265264 260096 35594 184681
扬州市 453.61 221.45 4140 187164 177370 205166 40986 122522
镇江市 267.19 153 5570 138695 158502 170563 41795 90409
泰州市 503.38 231.01 7022 147837 171609 161746 58405 106317
宿迁市 517.26 160.35 11107 52339 112796 109921 7058 59263
;
run;
proc cluster data=test method=median outtree=treedata standard ccc; /*执行系统聚类分析*/
var x1-x8; /*指定聚类分析的变量*/
id country; /*指定识别观测的变量*/
run;
proc tree data=treedata horizontal; /*绘制谱系图*/
run;
结果:
下表显示了聚类历史,其中R方的值可以评价聚类效果,值越大说明效果越好。
下图为谱系图: