资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
用SAS进行聚类分析,系统聚类法,书p243,表6.7,16个地区农民生活水平调查数据,data d641; input group $ x1-x6; cards; 北京 190.33 43.77 9.73 60.54 49.01 9.04 天津 135.20 36.40 10.47 44.16 36.49 3.94 河北 95.21 22.83 9.30 22.44 22.81 2.80 山西 104.78 25.11 6.40 9.89 18.17 3.25 内蒙 128.41 27.63 8.94 12.58 23.99 3.27 辽宁 145.68 32.83 17.79 27.29 39.09 3.47 吉林 159.37 33.38 18.37 11.81 25.29 5.22 黑龙江 116.22 29.57 13.24 13.76 21.75 6.04 上海 221.11 38.64 12.53 115.65 50.82 5.89 江苏 144.98 29.12 11.67 42.60 27.30 5.74 浙江 169.92 32.75 12.72 47.12 34.35 5.00 安徽 153.11 23.09 15.62 23.54 18.18 6.39 福建 144.92 21.26 16.96 19.52 21.75 6.73 江西 140.54 21.50 17.64 19.19 15.97 4.94 山东 115.84 30.26 12.20 33.61 33.77 3.85 河南 101.18 23.26 8.46 20.20 20.50 4.30 ; proc print data=d641; run;,输入资料:,proc cluster data=d641 method=ave std pseudo ccc outtree=b641; var x1-x6; id group; proc tree data=b641 horizontal graphics ; title 使用类平均法的谱系聚类图; run; title;,使用系统聚类方法,距离使用类平均法,cluster过程,用来进行系统聚类 method=ave或method=AVERAGE,表示类间距离使用类平均距离 std或standard选项,变量数据都标准化(均值0,标准差1)以后,再计算距离 pseudo,输出伪F、伪t平方统计量 ccc选项,计算半偏R平方、ccc统计量 var x1-x6,用x1、x2、x6作为计算距离的变量 id group,用group变量的值作为每一个样品的id outtree=b641,将树形分类结果输出到数据集b641 tree过程,输出CLUSTER和VARCLUS过程产生的树形分类结果,NCL为聚类数; FREQ为新类中所含的样品数; SPRSQ为半偏R2, PSF为伪F, PST2为伪T2 Norm RMS Dist是正规化的的两类元素间距离的均方根,使用系统聚类方法,距离使用中间距离法,proc cluster data=d641 method=med std pseudo ccc outtree=b641; var x1-x6; id group; proc tree data=b641 horizontal graphics ; title 使用中间距离法的谱系聚类图; run; title;,method=med或method=MEDIAN,表示类间距离使用中间距离,proc cluster data=d641 method=fle std pseudo ccc BETA=-0.25 outtree=b641; var x1-x6; id group; proc tree data=b641 horizontal graphics ; title 使用可变类平均法的谱系聚类图; run; title;,使用系统聚类方法,距离使用可变类平均法,method=fle或method=FLEXIBLE,表示类间距离可变类平均法 BETA=-0.25,这也是缺省值,故可以省略,表示可变类平均法中的参数beta的取值,proc cluster data=d641 method=ward std pseudo ccc outtree=b641; var x1-x6; id group; proc tree data=b641 horizontal graphics n=5 out=c641 ; copy group x1-x6; title 使用Ward法的谱系聚类图; run; title 使用Ward法;,使用系统聚类方法,距离使用离差平方和(ward)法,method=ward或method=war,表示类间距离使用离差平方和(ward)法 tree过程中,n=5 out=c641表示,分为5类时,分类的结果输出到数据集c641中 copy语句不能少,它表示要把b641中的group、x1、x6拷贝到c641中去,如果我们想分别计算分成5组以后,每组样本的均值。,proc sort data=c641; by cluster; run; proc print data=c641; var cluster group x1-x6; run; proc means data=c641 ; by cluster; var x1-x6; run;,使用系统聚类方ward法,聚类为5类的结果输出,并分别计算各类均值,means过程的by cluster语句,以cluster变量进行分组,并分别计算各个分组的均值。,动态聚类法,proc standard mean=0 std=1 data=d641 out=sta653; var x1-x6; run; proc fastclus data=sta653 out=out653 maxc=5 list; var x1-x6; id group; run;,书p251,例6.5.3,还用表6.7的数据,但动态聚类,standard过程,将数据标准化 mean=0 std=1,标准化后的数据,均值为0,标准差为1 out=sta653,结果输出到数据集sta653中 fastclus,进行快速(动态)聚类 maxc=5,或写为MAXCLUSTERS=5,聚为5类。默认值为100。 list,列表显示所有的样本点,它的id值、它归为哪一个cluster、它到自己的cluster的凝聚点的距离,如果我们想分别计算分成5组以后,每组样本的均值。,上表是d641,下表是out653,它们有一个公共的变量group。如果我们能按group变量,把两个表合并起来,我们就可以计算每个cluster的均值。而不利的是,x1-x6的值从d641到out653时,发生了改变。,data out653a; set out653; keep group cluster; run; proc sort data=out653a; by group; run; proc sort data= d641; by group; run; data out653b; merge d641 out653a; by group; run; proc sort data=out653b; by cluster; run; proc means data=out653b; by cluster; var x1-x6; run; proc print data=out653b; var cluster x1-x6; run;,1.首先,因为out653中的x1-x6发生了改变,我们把out653中的数据拷贝到out653a中,但去掉x1-x6,只保留group、cluster的信息。 2.为了合并out653a和d641(它们有公共变量group),必须将它们都按变量group来排序。 3.将out653a和d641合并为数据集out653b(用merge语句)。 4.为了在合并的数据集out653b中计算按照cluster变量分类后的各类的均值,要将out653b按cluster变量进行排序。 5.排序后,就可以用means过程计算按cluster变量分类的均值了。 6.最后用print过程,把结果列表打印出来。,变量聚类法,data d672(type=corr); title 在中学生中测量八个体型指标的相关系数; label x1=身高 x2=手臂长 x3=上肢长 x4=下腿长 x5=体重 x6=颈围 x7=胸围 x8=胸宽; input _name_ $ x1-x8; _type_=corr; cards; x1 1.000 .846 .805 .859 .473 .398 .301 .382 x2 .846 1.000 .881 .826 .376 .326 .277 .415 x3 .805 .881 1.000 .801 .380 .319 .237 .345 x4 .859 .826 .801 1.000 .436 .329 .327 .365 x5 .473 .376 .380 .436 1.000 .762 .730 .629 x6 .398 .326 .319 .329 .762 1.000 .583 .577 x7 .301 .277 .237 .327 .730 .583 1.000 .539 x8 .382 .415 .345 .365 .629 .577 .539 1.000 ; proc print; title;,书p261,例6.7.2,还用p260表6.12的数据,但使用变量聚类,proc varclus data=d672 maxc=8 summary outtree=o672; run; proc tree data=o672 horizontal graphics ; run;,proc varclus data=d672; run;,proc varclus data=d672 centroid; run;,centroid表示距离用质心法,最简单的变量聚类:,变量聚类也可以不使用主成份,而使用质心:,复杂一点的变量聚类,可以打印出图形:,maxc=8表示聚类为8个类,这将使树形聚类显示,从8个变量各成一小类开始。如果这里maxc=2,则树形的聚类显示,一开始就从两个类开始,就看不出8个变量是如何逐步聚成两个大类的。 Varclus过程的summary选项输出一个概要表。,summary选项所打印的内容:,练习1、一组有关12盎司20种啤酒成分和价格的数据,分别用系统聚类法(距离用类平均距离)、动态聚类法,聚为4类,分别给出两种聚类方法的分类结果及各类均值。,实验报告中提交sas程序,和提交下面两个表就可以了。,练习2、对30个省的文化程度聚类,变量名为 DXBL,CZBL,WMBL ,分别用系统聚类法(距离用离差平方和法)、动态聚类法,聚为3类,分别给出两种聚类方法的分类结果及各类均值。,实验报告中提交sas程序,和提交下面两个表就可以了。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号