【sas代码模板】聚类分析_cluster
- 格式:docx
- 大小:165.28 KB
- 文档页数:2
聚类分析聚类分析是根据样本代表性指标在性质上的亲疏程度进行分类。
因此,我们可以把模糊聚类分析的步骤分解如下:2.1确定样本统计指标与数据标准化对样本进行分类的效果如何,关键在于要把统计指标选择合理。
也就是统计指标应该有明确的实际意义,有较强的分辨力和代表性,即要有一定的普遍意义。
2.1.1标准差标准化(z-score)SX XXii-=*标准差标准化后的数据均值为0,标准差为1。
2.2点(观察值,case )到点的距离 设有两个p 维观察值(点):),...,,(,),...,,(2121'='=jpj j j ip i i i XXX x X X X x在聚类分析中,它们之间的距离有: 欧氏距离(Euclidian Distance)∑=-=p k jkik ij XX d 12)(2.3.相似系数2.3.1皮尔逊相似系数(Pearson)∑∑∑===----=p k jjkp k i ikp k jjki ikij X XX XX XX Xd 12121)()())((其中的:∑∑====p k jkjp k ikiXpXXpX111,12.4.类(group)与类之间的距离类指观察值的集合。
两个类之间的距离,是用这两个类的特殊点之间的距离来定义。
设有两个类:G a 和G b ,它们之间的距离用D (a , b )表示。
则有: 2.4.1最短法},min{),(b j a i ij G x G x d b a D ∈∈=2.5进行聚类在确定了样本之间的距离后,就可以对样本进行归类,归类的方法很多,其中用得最广泛的是系统聚类法。
它首先把n 个样本每个自成一类,然后每次将具有最小距离的两类合并成一类,合并后又再重新计算类与类之间的距离,直至所有样品归为一类为止。
例一:clc,cleara=[1,0;1,1;3,2;4,3;2,5];y=pdist(a,'cityblock');yc=squareform(y)z=linkage(y)[h,t]=dendrogram(z)例二:X1-上体长,x2-手臂长,…..x14-臀围a=textread('ch.txt')10.366 10.242 0.233 10.28 0.194 0.59 10.36 0.324 0.476 0.435 10.282 0.262 0.483 0.47 0.452 10.245 0.265 0.54 0.478 0.535 0.663 10.448 0.345 0.452 0.404 0.431 0.322 0.266 10.486 0.367 0.365 0.357 0.429 0.283 0.287 0.82 10.648 0.662 0.216 0.032 0.429 0.283 0.263 0.527 0.547 10.689 0.671 0.243 0.313 0.43 0.302 0.294 0.52 0.558 0.957 10.486 0.636 0.174 0.243 0.375 0.296 0.255 0.403 0.417 0.857 0.852 10.133 0.153 0.732 0.477 0.339 0.392 0.446 0.266 0.241 0.054 0.099 0.055 10.376 0.252 0.676 0.581 0.441 0.447 0.44 0.424 0.372 0.363 0.376 0.321 0.627 1 for i=1:14a(i,i)=0;endb=a(:);b=nonzeros(b);b=b';b=1-b;z=linkage(b,'complete');y=cluster(z,2)dendrogram(z)ind1=find(y==2);ind1=ind1'ind2=find(y==1);ind2=ind2'可以看出,人体的变量大体可以分为两类:一类反映人高、矮的变量,如上体长,手臂长,前腰节高,后腰节高,总体长,身高,下体长;另一类是反映人体胖瘦的变量,如胸围,颈围,总肩围,总胸宽,后背宽,腰围,臀围。
一、主成分分析1、数据引入PROC IMPORT OUT= WORK.shuruDA TAFILE= "E:\****\****\数据分析\试验\shouru.xls"DBMS=EXCEL2000 REPLACE;GETNAMES=YES;RUN;2、程序proc princomp data=shouru out=defen;var x1-x9;run;proc sort data=defen;by prin1 prin2;run;proc print data=defen;run;二、判别分析程序2.2方法1:先改变shuru 数据的结构,把待判的数据去掉,再引入数据data shouru1;input diqu $ x1-x9;cards;广东211.3 114 41.44 33.2 11.2 48.72 30.77 14.9 11.1西藏175.93 163.8 57.89 4.22 3.37 17.81 82.32 15.7 0;run;proc discrim data=shourutestdata=shouru1 method=normallist all crosslist testlist;class leixing;var x1-x9;run;方法2:原shuru数据不变,直接判别,但此法虽可判断待判的两省属于那类,但无法给出误判率;proc discrim data=shouruout=a1outstat=a2 outcross=a3method=normallist all crosslist testlist;class leixing;var x1-x9;run;程序2.3proc discrim data=shourutestdata=shouru1 method=normallist all crosslist crossvalidate testlist;class leixing;var x1-x9;priors prop;run;三、聚类分析程序proc cluster data=yjshr method=sin outtree=y1 ;/*最短距离法*/ var x1-x9;run;proc tree data=y1 nclusters=3 out=z1;run;proc print data=z1;run;proc cluster data=yjshr method=com outtree=y2 ;/*最长距离法*/ var x1-x9;run;proc tree data=y2 nclusters=3 out=z2;run;proc print data=z2;run;proc cluster data=yjshr method=ave outtree=y3 ;/*类平均距离法*/ var x1-x9;run;proc tree data=y3 nclusters=3 out=z3;run;proc print data=z3;run;proc fastclus data=yjshr out=a1maxc=3 cluster=c distance list; /*快速聚类分三类情况*/ proc plot;plot x2*x1=c;run;。
SAS聚类分析程序:聚类分析过程命令Data pgm33b;Input x1-x3;cards;9.30 30.55 8.7(样品数据)1.85 20.66 12.75;Proc cluster standard method= single nonormnosquare ccc pseudo out=tree;Proc tree data=tree horizontal spaces=1; run;Data pgm33bInput x1-x4;cards;9.30 30.55 8.7(样品数据)1.85 20.66 12.75;Proc cluster standard method=complete nonormnosquare ccc pseudo out=tree;Proc tree data=tree horizontal spaces=1; run;刷黑该块过程命令程序,提交便计算出相应聚类结果。
语句解释: 聚类指定的方法是在“method=”后面填入一个相应的选择项,它们是:single(最短距离法),complete(最长距离法),average(类平均法), centroid(重心法),median(中位数法),ward(离差平方和法),flexible (可变类平均法),density(非参数概率密度估计法),eml(最大似然法),twostage(两阶段密度法)。
主成分分析程序:1. 主成分分析实验程序例:主成分分析过程命令data socecon;input x1-x6;cards;16369 3504887 66047 2397739 198.46 104395513379 566257 4744 456100 76.96 2026379707 397183 1303 887034 18.88 10594810572 414932 1753 751984 27.67 12826112284 876667 18269 1015669 60.09 3327009738 604935 5822 1307908 30.54 22279916970 778830 2438 630014 76.64 27220310006 617436 13543 866013 58.59 22279410217 636760 9967 996912 34.55 16102520946 1380781 16406 526527 150.15 42693711469 720416 7141 853778 43.41 15727414165 1504005 29413 1025363 149.17 56889912795 966188 11580 723278 45.13 16531912762 584696 13583 343107 65.31 16645412008 501780 4986 278310 15.04 86575 11208 981367 13364 1295189 79.8 337947 12719 716491 4448 408796 15.68 99949 ;proc princomp out=aaa prefix=z;var x1-x6; run;data a2;set aaa;proc print;var z1-z2 ;run;。
实验四聚类分析实验要求:选取一组有实际意义的数据,利用SAS的五种系统聚类方法将n个样本进行分类,要求:1)说明每一种方法的分类结果;2)利用主成分分析说明哪一种分类结果更合理。
实验目的:学会利用SAS语言编写程序以实现聚类分析过程。
实验过程与结果分析:我们仍对实验一的数据集chengshi(2006年各省市主要城市建设水平指标年度统计数据)进行聚类分析。
第一步:编写SAS程序。
proc cluster data=chengshi method=single outtree=tree1;id region;proc tree data=tree1 horizontal graphics;id region;run;proc cluster data=chengshi method=complete outtree=tree2;id region;proc tree data=tree2 horizontal graphics;id region;run;proc cluster data=chengshi method=centroid outtree=tree3;id region;proc tree data=tree3 horizontal graphics;id region;run;proc cluster data=chengshi method=average outtree=tree4;id region;proc tree data=tree4 horizontal graphics;id region;run;proc cluster data=chengshi method=ward outtree=tree5;id region;proc tree data=tree5 horizontal graphics;id region;run;第二步: 将数据集提交运行,运行结果见图1-图10;图1 利用最小距离法所得到的树状分类图图2 最小距离法的聚类过程图3 利用最大距离法所得到的树状分类图图4 最大距离法的聚类过程图5 利用重心法所得到的树状分类图图6 重心法的聚类过程图7 利用平均距离法所得到的树状分类图图8 平均距离法的聚类过程图9 利用离差平方和法所得到的树状分类图图10 离差平方和法的聚类过程第三步:对输出的结果进行分析。
SAS做的聚类分析编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(SAS做的聚类分析)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为SAS做的聚类分析的全部内容。
实验项目二聚类分析实验目的:通过聚类分析的实验,熟悉聚类分析问题的提出、解决问题的思路、方法和技能,会调用SAS软件聚类分析有关过程命令,根据计算机计算的结果,分析和解决聚类分析问题。
实验原理:解决聚类分析问题的思路、理论和方法。
实验设备:计算机与SAS软件。
实验步骤:调用聚类分析过程命令输入数据得到聚类过程表和聚类图,距离选用欧氏距离,方法选用最短距离法。
实验数据:实验数据:我国西部环境保护的数据一、问题的提出西部大开发是我国在新世纪提出的一项国家发展战略。
基于西部地区特殊的地理位置和生态环境状况,国家在提出西部大开发之初就明确指出,西部开发绝不能以牺牲环境为代价,西部地区生态环境极其脆弱,一经破坏就难以恢复,所以实施西部大开发,环境保护是关键,必须建设一个“山川秀丽的西部”。
近几年国家在保护西部地区的环境上也花了大力气,并取得了良好的效果,但并没有从根本上解决在发展西部过程中环境保护的问题。
西部环境保护现状、特点怎样?本实验就这一问题用聚类分析进行探索并提出一些看法和建议。
指标选取考虑的因素:(1)指标的选择要能尽量反映西部现时的生态环境状况;(2)数据尽量从统计年鉴等规范、权威的刊物中获取.下面十三个指标和数据符合以上要求。
表1 西部环境保护的原始数据123标率(%);X4-人均工业废水排放量(万吨/万人);X5-人均工业废气排放量(亿标立方米/万人);X6—人均工业固体废物产生量 (万吨/万人);X7—各地区工业污染治理汇总工业企业数(个);X8—环保系统机构总数(个);X9—环保系统人员总数(人);X10-自然保护区面积占辖区面积比率(%);X11-污染治理项目本年完成投资(万元);X12—各地径流深与常年比较(±%);X13-各地径流深(mm)。
第二十章 聚类分析SAS 程序设计一、聚类基本思想1. 什么是聚类分析聚类分析(cluster analysis):是一种将样本数据按一定科学方法分为若干类的统计方法。
聚类使得在同一类的事物具有高度的同质性(homogeneity),不同类事物具有高度的异质性(heterogeneity)。
聚类分析是为达到“物以类聚”目的分类。
聚类分析是研究事物的分类,事先对事物个体没有分类信息,完全根据数据的内在规律按相近原则划分新的类别。
对一个指标分类相对容易,当有多个指标,要进行分类就不是很容易了,对于事物按多指标同时考虑进行分类需要进行多元分类,即聚类分析。
聚类分析是依赖一批样本,不知道它们的分类,甚至连分成几类也不知道,希望用某种方法把观测样本进行合理的分类,使得同一类的观测比较接近,不同类的观测相差较多。
聚类分析依赖于对观测样本间的接近程度(距离)或相似程度的理解,定义不同的距离量度和相似性量度就可以产生不同的聚类结果。
聚类是相将近或相似的个体归为一类,聚类的实质就是相似性衡量。
类就是相似元素的集合。
聚类分析所要研究的是(1)、如何衡量事物之间的相似性---相似性度量。
(2)、如何将相似事物归为一类---聚类方法。
(3)、分类后如何描述这些类。
如何根据专业知识对所分的真实的类,自然客观的而非主观加工的类,进行经济意义或社会意义的解释。
2、相似度量聚类分析就是要找出具有相近程度的样本聚为一类;相似性度量的种类有多种,主要衡量这个“相近程度”的有距离、相似系数、相关系数、夹角余弦等。
距离的四个条件1.(,)(,)2.(,)0,3.(,)0,4.(,)(,)(,)d P Q d Q P d P Q Q Pd P Q Q Pd P Q d Q R d P R =>≠==≤+若若相似性度量的结果是得到一个相似测度矩阵。
若样本容量为n,n个样本的相似测度矩阵为n*n的对称矩阵。
样本间距离用欧式距离Euclid),马式距离(Mathalanobis),相关系数,夹角余弦等。
【sas代码模板】聚类分析_cluster
(1)聚类分析简易代码
——————————————模板————————————————
proc cluster data=() method=聚类方法std outtree=() pseudo simple;
id 识别变量;
var 要聚类的变量;
run;
——————————————模板————————————————
Method=指定聚类的方法,常用方法如下:
●AVERAGE或AVE:类平均法,距离为平方距离,除非规定NOSQUARE。
●CENTROD或CEN:距离为平方距离,除非规定NOSQUARE。
●COMPLETE或COM:最长距离法
●EML:最大似然谱系聚类
●SINGLE或SIN:最短距离法。
●WARD或WAR:WARD最小方差法。
●MEDIAN|MED:中间距离法
●FLEXIBLE|FLE:可变距离法
Std是将数据标准化。
outtree=生成记录聚类过程的输出数据集,此数据集将在画谱系图的时候用到,如果缺省,默认用Data1、Data2、Data3…..来命名。
Pseudo输出F统计量和伪T2统计量,当method=指定是ave、cen和ward时才有效。
Simple输出每个变量的描述性统计量。
Id用于指定识别变量,缺省则用obn。
Var指定要聚类的变量,缺省时,则默认为其他语句中没出现过的其他变量。
(2)画出谱系图代码模板
————————————————模板———————————————————
proc tree data=聚类过程的输出数据集n=类的个数out=() horizontal graphics;
id province;
run;
————————————————模板———————————————————Data=指定的输入数据集,是聚类cluster过程的输出数据集。
n=与out=联合使用,n=给出类的个数,每个观测值属于哪类就会储存在out中。
有out=语句必须有n=语句,可以两者都不要。
Horizontal=指定绘制水平的聚类图,缺省则默认水平聚类图。
Graphics=指定一个高分辨率的图,如果缺省则默认低分辨率的图。
(3)简例
如下数据进行聚类分析:
代码为:
/*聚类分析*/
proc cluster data=a method=ward std outtree=eco1 pseudo; id province;
run;
/*谱系图*/
proc tree data=eco1 n=4 out=out1 horizontal graphics;
id province;
run;。