ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用SAS进行简单的聚类分析讲解(转载)

使用SAS进行简单的聚类分析讲解(转载)

原创 Linux操作系统 作者:hutulaodao 时间:2009-05-14 20:50:41 0 删除 编辑

转载于 http://www.mysas.net/forum/viewtopic.php?t=3550

聚类分析的目的是把分类对象按一定的规则分成若干类,这些类不是事先给定的,而是根据数据的特征确定的,对类的数目和类的结构不必作任何的假定。在同一类里的这些对象在某种意义上倾向于彼此相似,而在不同类里的对象倾向于彼此不相似。

聚类分析根据分类对象不同分为Q型聚类分析和R型聚类分析。Q型聚类是指对样品进行聚类,R型聚类分析是指对变量进行聚类。

SAS中用于判别分析的过程主要有以下四个:

PROC CLUSTER 谱系聚类(Q型聚类分析)
PROC FASTCLUS K均值快速聚类,适用于大样本(Q型聚类分析)
PROC MODECLUS 非参数聚类(Q型聚类分析)
PROC VARCLUS 变量聚类(R型聚类分析)

1. 用PROC CLUSTER进行样品聚类分析(Q型聚类分析)

[例1]试根据1997年信息基础设施的发展情况,对世界20个国家和地区进行聚类分析。描述信息基础设施的变量主要有六个:
Cal-每千人拥有电话线数;
Cellphone-每千户居民移动电话数;
Fee-高峰时期每三分钟国际电话成本;
Computer-每千人拥有的计算机数;
Mips-每千人中计算机功率(每秒百万指令);
Net-每千人互联网络户主数。

data cluster1;
infile datalines;
input Country $ Cal Cellphone Fee Computer Mips Net;
datalines;
美国 631.6 161.9 0.36 403 26073 35.34
日本 498.4 143.2 3.57 176 10223 6.26
德国 557.6 70.6 2.18 199 11571 9.48
瑞典 684.1 281.8 1.4 286 16660 29.39
瑞士 644 93.5 1.98 234 13621 22.68
丹麦 620.3 248.6 2.56 296 17210 21.84
新加坡 498.4 147.5 2.5 284 13578 13.49
中国台湾 469.4 56.1 3.68 119 6911 1.72
韩国 434.5 73 3.36 99 5795 1.66
巴西 81.9 16.3 3.02 19 876 0.52
智利 138.6 8.2 1.4 31 1411 1.28
墨西哥 92.2 9.8 2.61 31 1751 0.35
俄罗斯 174.9 5 5.12 24 1101 0.48
波兰 169 6.5 3.68 40 1796 1.45
匈牙利 262.2 49.4 2.66 68 3067 3.09
马来西亚 195.5 88.4 4.19 53 2734 1.25
泰国 78.6 27.8 4.95 22 1662 0.11
印度 13.6 0.3 6.28 2 101 0.01
法国 559.1 42.9 1.27 201 11702 4.76
英国 521.1 122.5 0.98 248 14461 11.91
;
run;

PROC CLUSTER DATA=cluster1 STANDARD METHOD=CENTROID CCC PSEUDO UT=TREE;
PROC TREE DATA=TREE HORIZONTAL SPACES=1;
RUN;

[说明]
METHOD=的选项可以为:

    AVERAGE(平均法)
    CENTROID(重心法)
    COMPLETE(最长距离法)
    DENSITY(非参数概率密度估计法)
    EML(最大似然法)
    FLEXIBLE(flexible-beta法)
    MCQUITTY(Mcquitty的相似分析法)
    MEDIAN(中位数法)
    SINGLE(最短距离法)
    TWOSTAGE(两阶段密度法)
    WARD(Ward最小方差法)

STANDARD 对变量实施标准化。
CCC、PSEUDO 为了计算一些统计量用以判别全部样品究竟聚成几类较为合适。CCC要求打印聚类判别据的立方及在一致无效假设下近似期望值R2,PSEUDO要求打印伪F(标志PSF)和t2(标志PST2)统计量。当分类数目不同时,它们就有不同的取值,CCC和PSF出现峰值所对应的分类数较合适、PST2出现峰值的前一行所对应的分类数较合适。
OUT=TREE 产生名为TREE的输出数据集,它可被TREE过程用来输出聚类结果的树状图。HORIZONTAL要求将树状图水平放置,SPACES=1要求各样品之间的间隔为1。

[结果及其解释]
如果聚为3类,其聚类结果为:一类是信息基础设施最为发达的美国,一类是一些发达国家,其他的国家和地区聚为另外一类。

2. 用PROC FASTCLUS进行大样本的样品聚类分析(Q型聚类分析)

处理大样本时一般采用非分层聚类法(快速聚类法)。聚类的个数k可以根据需要事先指定。与分层聚类方法相比,非分层聚类方法不必确定距离矩阵,不必存储基本数据,因此适用于处理很大的数据集。
下面仍使用[例1]的数据,对PROC FASTCLUS加以说明:

PROC FASTCLUS DATA=cluster1 UT=result MAXC=3 CLUSTER=c;
RUN;

[说明]
MAXC=3 要求总共聚为3类
OUT=result 结果输出到数据集result
CLUSTER=c 分类标志的变量名c,其取值为1,2,3

[结果及其解释]
聚类结果为:一类是信息基础设施最为发达的美国,一类是一些发达国家,其他的国家和地区聚为另外一类。

3. 用 PROC VARCLUS 进行变量聚类分析(R型聚类分析)

[例 2] 对1996年全国30个省市自治区经济发展基本情况的八项指标作变量聚类分析:
X1:GDP
X2:居民消费水平
X3:固定资产投资
X4:职工平均工资
X5:货物周转量
X6:居民消费价格指数
X7:商品零售价格指数
X8:工业总产值

data cluster2;
infile datalines;
input Province $ X1-X8;
datalines;
北京 1394.89 2505 519.01 8144 373.9 117.3 112.6 843.43
天津 920.11 2720 345.46 6501 342.8 115.2 110.6 582.51
河北 2849.52 1258 704.87 4839 2033.3 115.2 115.8 1234.85
山西 1092.48 1250 290.9 4721 717.3 116.9 115.6 697.25
内蒙 832.88 1387 250.23 4134 781.7 117.5 116.8 419.39
辽宁 2793.37 2397 387.99 4911 1371.1 116.1 114 1840.55
吉林 1129.2 1872 320.45 4430 497.4 115.2 114.2 762.47
黑龙江 2014.53 2334 435.73 4145 824.8 116.1 114.3 1240.37
上海 2462.57 5343 996.48 9279 207.1 118.7 113 1642.95
江苏 5155.25 1926 1434.95 5943 1025.5 115.8 114.3 2026.64
浙江 3524.79 2249 1006.39 6619 754.4 116.6 113.5 916.59
安徽 2003.58 1254 474 4609 908.3 114.8 112.7 824.14
福建 2160.52 2320 553.97 5857 609.3 115.2 114.4 433.67
江西 1205.11 1182 282.84 4211 411.7 116.9 115.9 571.84
山东 5002.34 1527 1229.55 5145 1196.6 117.6 114.2 2207.69
河南 3002.74 1034 670.35 4344 1574.4 116.5 114.9 1367.92
湖北 2391.42 1527 571.86 4685 849 120 116.6 1220.72
湖南 2195.7 1408 422.61 4797 1011.8 119 115.5 843.83
广东 5381.72 2699 1639.83 8250 656.5 114 111.6 1396.35
广西 1606.15 1314 382.59 5105 556 118.4 116.4 554.97
海南 364.17 1814 198.35 5340 232.1 113.5 111.3 64.33
四川 3534 1261 822.54 4645 902.3 118.5 117 1431.81
贵州 630.07 942 150.84 4475 301.1 121.4 117.2 324.72
云南 1206.68 1261 334 5149 310.4 121.3 118.1 716.65
西藏 55.98 1110 17.87 7382 4.2 117.3 114.9 5.57
陕西 1000.03 1208 300.27 4396 500.9 119 117 600.98
甘肃 553.35 1007 114.81 5493 507 119.8 116.5 468.79
青海 165.31 1445 47.76 5753 61.6 118 116.3 105.8
宁夏 169.75 1355 61.98 5079 121.8 117.1 115.3 114.4
新疆 834.57 1469 376.95 5348 339 119.7 116.7 428.76
;
run;

PROC VARCLUS DATA=cluster2 CENTROID MAXC=3;
VAR x1-x8;
RUN;

[说明]
CENTROID 聚类方法为重心法,默认聚类方法为主成分法
MAXC=3 要求总共聚为3类

[结果及其解释]
聚类结果为:第一类变量主要反映了生产状况;第二类变量主要反映了消费状况,第三类变量主要反映了价格状况。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31491/viewspace-598177/,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle 分析函数
请登录后发表评论 登录
全部评论

注册时间:2009-05-14

  • 博文量
    6
  • 访问量
    48131