全部聚成一大类的聚类最大最小距离聚类算法分别是多少

博客访问: 680501
博文数量: 6323
注册时间:
鏆傛棤浠嬬粛
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: IT综合技术
:[@more@] 方法的概述  (Cluster Analysis)是物以类聚的一种统计分析方法。用于对事物类别的面貌尚不清楚,甚至在事前连总共有几类都不能确定的情况下进行分类的场合。  可分为对变量聚类(如在儿童的生长发育研究中,把以形态学为主的指标归于一类,以机能为主的指标归于另一类等)和对样品聚类(如解剖学上依据骨骼的形状和大小等,不仅可以区别样品是人还是猿,还可以区别性别、年龄等)。  聚类方法大致可归纳如下:  ①系统聚类法 先将n个元素(样品或变量)看成n类,然后将性质最接近(或相似程度最大)的2类合并为一个新类,得到n-1类,再从中找出最接近的2类加以合并变成了n-2类,如此下去,最后所有的元素全聚在一类之中。  ②分解法 其程序与系统聚类相反。首先所有的元素均在一类,然后用某种最优准则将它分成2类,再用同样准则将这2类各自试图分裂为2类,从中选1个使目标函数较好者,这样由2类变成了3类。如此下去,一直分裂到每类中只有1个元素为止,有时即使是同一种聚类方法,因聚类形式(即距离的定义方法)不同而有不同的停止规则。  ③动态聚类法 开始将n个元素粗糙地分成若干类,然后用某种最优准则进行调整,一次又一次地调整,直至不能调整了为止。  ④有序样品的聚类  n个样品按某种因素(时间或年龄或地层深度等)排成次序,要求必须是次序相邻的样品才能聚在一类。  其他还有加入法、有重叠的类、模糊聚类等。  实质上是寻找一种能客观反映元素之间亲疏关系的统计量,然后根据这种统计量把元素分成若干类。常用的聚类统计量有距离系数和相似系数2类。距离系数一般用于对样品分类,而相似系数一般用于对变量聚类。距离的定义很多,如极端距离、明考斯基距离、欧氏距离、切比雪夫距离等。相似系数有相关系数、夹角余弦、列联系数等。  第2节 用VARCLUS过程实现变量  [例6.4.1] 为研究人脑老化的严重程度, 有人测定了不同年龄的60名正常男性10项有关指标的数据,各变量的含义如下: AGE为年龄、TJ为图片记忆、SG为数字广度记忆、TS为图形顺序记忆、XX为心算位数、XS为心算时间、CK为规定时间内穿孔数、BJ为步距、JJ为步行时双下肢夹角、BS步速。试对这些指标作变量。AGE TJ SG TS  XX XS CK BJ  JJ  BS  AGE TJ SG TS  XX XS CK BJ  JJ  BS16 17 9 14 5.14 4 9 54 35.32 3.92  48 20 8 3 5.00 5 12 37 24.70 3.7318 12 8 14 3.57 5 11 46 30.66 3.30  49 18 8 5 1.87 5 10 34 22.54 4.7719 11 8 2 11.67 3 12 53 37.01 3.08  50 13 8 4 3.20 5 11 45 33.47 2.7820 18 9 5 7.04 5 9 47 30.10 3.90  51 16 7 14 3.58 5 2 40 26.27 4.3821 15 9 6 6.57 5 10 57 37.14 2.72  52 17 8 14 2.86 5 7 34 23.93 5.1022 19 8 14 3.29 5 11 46 30.66 3.24  53 10 8 14 3.43 3 4 41 26.01 4.0424 16 9 5 3.50 2 10 43 27.64 4.41  54 11 8 8 6.18 5 2 37 25.45 3.8025 19 9 6 3.57 1 9 42 26.54 4.49  55 11 8 14 2.15 4 0 42 29.68 2.6126 17 9 14 3.86 3 9 52 29.24 3.54  56 8 7 9 22.10 1 5 45 29.80 6.6727 15 8 1 6.00 4 9 42 32.30 4.38  57 12 10 7 4.50 5 8 24 15.95 7.2928 18 7 14 3.98 5 9 51 33.94 3.03  58 10 6 9 9.50 2 4 43 28.96 3.5029 20 10 14 1.93 5 8 43 30.79 4.51  59 11 10 12 8.69 0 12 44 31.15 2.8930 14 10 14 2.93 5 7 45 32.67 4.45  60 12 7 8 8.78 2 8 18 12.92 7.4331 19 8 10 3.73 5 10 33 19.91 5.71  61 10 5 2 6.35 5 0 15 8.96 11.1432 14 10 14 3.57 2 12 44 31.92 4.12  62 12 8 7 17.00 5 8 32 21.83 4.7133 15 9 14 3.36 5 6 42 28.61 5.39  63 14 9 4 9.40 2 12 42 28.96 4.0134 15 7 14 3.94 5 10 43 30.26 4.31  64 12 9 5 3.00 5 12 30 22.18 5.4135 17 9 14 2.64 2 11 27 27.79 4.45  66 7 7 3 8.49 5 1 29 20.62 5.6736 18 9 12 3.23 5 10 38 25.83 4.68  67 15 8 6 3.43 5 6 37 24.65 5.5037 19 8 7 3.00 5 9 38 25.38 3.73  68 14 5 6 8.00 0 8 40 28.06 4.3438 16 8 7 4.38 4 11 35 23.34 4.99  69 6 7 2 8.34 2 2 29 17.02 4.6939 20 8 14 1.43 5 11 46 30.30 3.41  70 13 9 11 94 4 1 38 25.83 3.7040 17 8 7 2.05 2 12 37 24.56 4.49  71 15 9 14 4.50 5 6 41 28.01 5.0641 17 9 11 3.70 5 11 35 23.76 4.33  72 10 7 2 3.33 5 7 38 24.80 3.8842 16 9 8 3.33 5 9 12 32.11 2.63  73 0 7 6 5.77 1 0 31 21.27 5.7343 20 8 3 2.50 2 10 39 25.90 3.77  74 20 8 8 4.11 5 7 39 27.69 5.6044 14 9 14 2.57 4 10 43 27.03 3.71  75 12 8 14 8.14 3 4 28 19.23 6.2645 18 8 2 2.67 5 8 39 27.51 3.94  76 6 7 3 6.75 3 5 24 16.63 7.5646 20 8 10 2.82 5 10 40 27.06 3.54  78 9 7 4 8.20 2 4 13 9.44 8.9147 18 9 14 1.93 5 9 43 27.95 5.01  79 13 5 1 9.50 0 6 38 25.53 3.24  [SAS程序]──[D6P5.PRG]DATA               PROC VARCLUS CENTROID;INFILE 'a:llhyj.dat';         VAR age tj sg xx xsINPUT age tj sg xx xs              RUN;    ts ck bj jj bs @@;      PROC VARCLUS HI MAXC=4;                    VAR age tj sg xx xsPROC VARCLUS;                  RUN;VAR age tj sg xx xs         PROC VARCLUS CENTROID MAXC=4;            VAR age tj sg xx xsRUN;                       RUN;(程序的第1部分)          (程序的第2部分)  [程序修改指导] 第1个过程语句中没有任何选择项,其聚类方法为主成分聚类法;第2个过程语句中用了选择项CENTROID,其聚类方法为重心分量聚类法。这2个过程步最终会聚成多少类,将由软件中隐含的临界值来决定;第3个过程语句中加了HI(要求在不同水平上的聚类保持系统结构,但与无此选则项时的区别并不明显),MAXC=4要求从1类聚到4类,此选择项的最大值为变量的个数。第4个过程语句要求用重心分量法从1类聚到4类。对于一批给定的资料,究竟应聚成几类合适,没有统一的规则。可先将资料聚成各只同的类,然后结合专业知识和各类能解释总方差的百分比来权衡。  何时需选用重心分量聚类方法呢?当用户想让类分量或成分(Cluster Components)代表标准化变量(未加权的,是软件缺省值)或未标准化变量(若指定用COV,即用协方差矩阵)的时,应加CENTROID。  当操作的数据对象是样本相关矩阵(缺省值)时,视各变量的重要性相同;当操作的数据对象是样本协方差矩阵(需在过程语句中加COV)时,使具有较大方差的变量起的作用大些。  [输出结果及其解释]  Oblique Principal Component Cluster Analysis          60 Observations    PROPORTION =    0          10 Variables     MAXEIGEN  =    1            Cluster summary for 1 cluster(s)             Cluster   Variation  Proportion   Second Cluster   Members  Variation  Explained   Explained  Eigenvalue -------------------------------------------------------------------------   1     10    10.0000   4.29072   0.4291     1.6661      Total variation explained = 4.290718 Proportion = 0.4291Cluster 1 will be split.  这是用分解法思想进行斜交主成分聚类的第1步,把全部10个变量聚成一类,能解释的方差为4.290718,占总方差10的42.91%,并预告这一类将被分裂。            Cluster summary for 2 cluster(s)             Cluster   Variation  Proportion   Second Cluster   Members  Variation  Explained   Explained  Eigenvalue -------------------------------------------------------------------------   1      5    5.00000   3.27601   0.6552     0.8495   2      5    5.00000   2.37844   0.4757     0.9116      Total variation explained = 5.654444 Proportion = 0.5654  1类分裂成2类,各含5个指标,此时能解释的方差为5.65444,占总方差10的56.54%。                 R-squared with                ------------------                 Own    Next   1-R**2          Variable  Cluster  Closest   Ratio    Cluster  1----------------------------------------          AGE     0.5843   0.2958  0.5903          CK      0.4006   0.1719  0.7238          BJ      0.7414   0.0839  0.2823          JJ      0.8580   0.1320  0.1636          BS      0.6917   0.1106  0.3467    Cluster  2----------------------------------------          TJ      0.5593   0.2701  0.6038          SG      0.4595   0.1927  0.6695          XX      0.3632   0.0983  0.7062          XS      0.5864   0.0489  0.4349          TS      0.4100   0.0134  0.5980  这是每个指标与类成分之间相关系数的平, 如:指标AGE在第1类中,它与第1类成分(相当于中的第1公因子)之间相关系数的平是0.5843(称为R-Squared WithOwn Cluster),同理可理解该列中的其他相关系数的含义; 第1类中的某个指标与相邻类(此处为第2类)的类成分之间的相关系数的平,称为R-squared with Next closest,如:AGE与第2类成分之间的相关系数的平为0.2958,该值越小,说明分类越合理。最后一列的比值由同一横行的数据求得,如:(1-0.5843)/(1-0.3,此值越小,表明分类越合理。从最后一列可看出,很多比值较大,说明这10个变量分成2类是不太合适的。           Standardized Scoring Coefficients           Cluster       1       2           -----------------------------------           AGE     -.233329   0.000000           TJ      0.000000   0.314445           SG      0.000000   0.284992           XX      0.000000   0.253402           XS      0.000000   -.321956           TS      0.000000   0.269220           CK      0.193211   0.000000           BJ      0.262837   0.000000           JJ      0.282748   0.000000           BS      -.253864   0.000000  这是从标准化变量预测类成分的标准回归系数,若设C1、C2分别为第1和第2类成分,即:  C1=-0.233329AGE+0.193211CK+0.262837BJ+0.282748JJ-0.253864BS  C2=0.314445TJ+0.284992SG+0.253402XX-0.321956XS+0.269220TS               Cluster Structure           Cluster       1       2           -----------------------------------           AGE     -.764387   -.543839           TJ      0.519746   0.747887           SG      0.438921   0.677836           XX      0.313525   0.602701           XS      -.221198   -.765752           TS      0.115617   0.640323           CK      0.632961   0.414644           BJ      0.861055   0.289621           JJ      0.926285   0.363380           BS      -.831661   -.332602  类结构相当于中的因子模型,即每个标准化变量可以表示成全部类成分的线性组合。如:AGE=-0.-0.。             Inter-Cluster Correlations           Cluster       1       2           1       1.00000    0.47031           2       0.47031    1.00000No cluster meets the criterion for splitting.  类内相关就是类成分之间的相关系数。此时已达到隐含的停止分裂的临界值,停止分裂。              ①      ②       ③              Total  Proportion    Minimum       Number  Variation of Variation  Proportion        of   Explained   Explained   Explained      Clusters by Clusters  by Clusters by a Cluster      -------------------------------------------------        1    4.290718    0.4291    0.4291        2    5.654444    0.5654    0.4757  第①列表示分成一类与两类时分别能解释的总方差量;第②列表示分成一类与两类时分别能解释的方差占全部10个变量的总方差的百分比;第③列表示分成一类与两类时由1个类成分能解释的方差占全部10个变量的总方差的最小百分比。                ①     ②      ③               Maximum  Minimum    Maximum       Number     Second R-squared 1-R**2 Ratio        of    Eigenvalue   for a     for a      Clusters  in a Cluster  Variable   Variable      -------------------------------------------------        1      1.666142   0.1079     .        2      0.911631   0.3632    0.7238  第①列为各类中最大的第2特征值;第②列为各类中1个变量与其所在类成分的最小相关系数的平R2;第③列为各类中(1-R2)own/(1-R2)next的最大比值。 参见前面关于“R-squared with own cluster 、next cluster”部分输出结果及其解释。         Oblique Centroid Component Cluster Analysis          60 Observations    PROPORTION =   0.75          10 Variables     MAXEIGEN  =    0         Oblique Centroid Component Cluster Analysis                 R-squared with                ------------------                 Own    Next   1-R**2          Variable  Cluster  Closest   Ratio    Cluster  1----------------------------------------          TJ      0.7991   0.2978  0.2861          CK      0.7991   0.3119  0.2920    Cluster  2----------------------------------------          XS      1.0000   0.1725  0.0000    Cluster  3----------------------------------------          BJ      0.9130   0.4428  0.1561          JJ      0.9130   0.6504  0.2487    Cluster  4----------------------------------------          XX      1.0000   0.1622  0.0000    Cluster  5----------------------------------------          BS      1.0000   0.5932  0.0000    Cluster  6----------------------------------------          TS      1.0000   0.1725  0.0000    Cluster  7----------------------------------------          SG      1.0000   0.2022  0.0000    Cluster  8----------------------------------------          AGE     1.0000   0.3815  0.0000No cluster meets the criterion for splitting.  上述主要结果是由第2个过程步输出的。         Oblique Principal Component Cluster Analysis          60 Observations    PROPORTION =    1          10 Variables     MAXEIGEN  =    0                 R-squared with                ------------------                 Own    Next   1-R**2          Variable  Cluster  Closest   Ratio    Cluster  1----------------------------------------          BJ      0.8166   0.2582  0.2472          JJ      0.9162   0.3359  0.1262          BS      0.8013   0.2143  0.2529    Cluster  2----------------------------------------          TJ      0.6381   0.4199  0.6239          XS      0.6774   0.1469  0.3782          TS      0.5469   0.0709  0.4876    Cluster  3----------------------------------------          SG      0.7013   0.2547  0.4007          XX      0.7013   0.1067  0.3343    Cluster  4----------------------------------------          AGE     0.7792   0.3298  0.3294          CK      0.7792   0.1771  0.2682  这是第3个过程步输出的主要结果。         Oblique Centroid Component Cluster Analysis          60 Observations    PROPORTION =    1          10 Variables     MAXEIGEN  =    0                 R-squared with                ------------------                 Own    Next   1-R**2          Variable  Cluster  Closest   Ratio    Cluster  1----------------------------------------          SG      0.7013   0.2374  0.3916          XX      0.7013   0.1392  0.3470    Cluster  2----------------------------------------          AGE     0.6075   0.5235  0.8238          XS      0.4801   0.1725  0.6283          BS      0.5562   0.5019  0.8909    Cluster  3----------------------------------------          TS      1.0000   0.1018  0.0000    Cluster  4----------------------------------------          TJ      0.5368   0.3965  0.7676          CK      0.5720   0.2783  0.5931          BJ      0.6357   0.3369  0.5493          JJ      0.7015   0.4689  0.5621  这是第4个过程步输出的主要结果。  [专业结论] 结合专业知识发现:由第3个过程仓类的结果比较合理,即第1类中含BJ(步距)、JJ(步行时双下肢夹角)、BS(步速)这三个与走步有关的变量;第2类中含TJ(图片记忆)、XS(心算时间)、TS(图形顺序记忆)这三个与记忆、计算有关的指标;第3类中含SG(数字广度记忆)、XX(心算位数)这两个与记忆、计算有关的指标;第4类中含AGE(年龄)、CK(穿孔)这两个与视力和协调能力有关的指标。 分类的结果将有助于研究者对影响人脑老化本质的认识,为进一步从事这方面的研究提供了一些线索。  第3节 用CLUSTER过程实现样品  [例6.4.2] 某研究者收集了24种菌株,其中17~22号为已知的标准菌株,它们分别取自牛、羊、犬、猪、鼠、绵羊,其他为未知菌株。镶得各菌株的16种脂肪酸百分含量,试作样品,以便了解哪些未知菌株与已知的标准菌株在全部指标上最为接近。  菌株号 X1   X2   X3   X4   X5   X6   X7   X8    1 0.1 0.5 0.5 0.8    2 0.3 0.9 0.5 0.0    3 0.7 0.1 0.7 0.8    4 0.7 0.5 0.5 0.1    5 0.1 0.2 0.2 0.4    6 0.1 0.7 0.1 2.3    7 0.2 0.7 0.7 0.1    8 1.2 1.3 0.1 0.4    9 0.8 0.9 0.9 0.5   10 0.3 0.8 0.9 0.9   11 0.9 0.9 0.4 0.7   12 1.6 1.1 0.6 2.0   13 0.8 0.9 0.9 0.5   14 1.1 1.6 0.2 2.4   15 1.4 1.9 0.8 2.8   16 2.6 0.3 0.2 0.2   17 1.6 0.7 0.0 0.3   18 1.9 0.8 0.5 0.1   19 0.4 0.8 0.6 0.1   20 1.2 0.8 0.0 0.1   21 0.5 0.2 0.8 0.3   22 2.6 0.7 0.6 0.5   23 1.5 0.3 0.7 0.2   24 0.8 0.6 0.4 0.9  菌株号 X9   X10   X11  X12   X13   X14  X15   X16    1 0.0 7.9 4.1 0.0    2 0.0 8.7 5.1 0.0    3 0.0 7.5 4.4 0.0    4 0.0 7.5 4.7 0.0    5 0.0 7.5 4.4 0.0    6 1.8 29.2 16.4 1.6    7 0.0 6.1 3.0 0.0    8 0.3 22.0 11.2 1.3    9 0.0 8.3 4.4 0.0   10 0.0 7.9 4.2 0.0   11 0.0 7.1 3.3 0.0   12 1.7 23.2 11.7 1.9   13 0.0 20.6 10.3 0.6   14 1.0 23.0 11.5 1.7   15 1.7 23.0 11.4 1.0   16 0.0 0.9 0.0 0.0   17 0.7 23.9 11.5 1.9   18 0.0 5.0 2.7 0.0   19 0.1 20.3 10.6 0.8   20 0.2 18 3 9.7 1.4   21 1.3 22.4 12.6 1.9   22 0.0 0.2 0.0 0.0   23 1.8 23.9 11.8 1.6   24 1.0 23.6 13.8 1.2  [SAS程序]──[D6P6.PRG]DATAINFILE 'a:clyclust.dat';  INPUT x1-x16;PROC CLUSTER STANDARD METHOD=AVERAGE NONORM NOSQUARE CCC PSEUDO OUT=TREE;PROC TREE DATA=TREE HORIZONTAL SPACES=1; RUN;  [程序修改指导] 建立数据文件CLYCLUST.DAT时,最好将X9~X18这9列数据排在X1~X8的右侧,这样语句写起来方便些。 在SAS中用系统聚类法对样品进行聚类时提供了11只同的聚类形式(即距离的定义方法不同),指定的方法是在METHOD=后面填入1个相应的选择项,它们是:  AVERAGE(平均法)         CENTROID(重心分量法)  COMPLETE(最长距离法)      DENSITY(非参数密度估计法)  EML(最大似然法)         FLEXIBLE(flexible-beta法)  MCQUITTY(Mcquitty的相似分析法) MEDIAN(中位数法)  SINGLE(最短距离法)       TWOSTAGE(两阶段密度法)  WARD(Ward最小方差法)  不同的聚类形式之间的主要区别在于:计算新类与其他类之间的距离的递推公式不同,一旦任何两类之间的距离算出来后,仍按距离最小者先合并。用不同的聚类形式对同一批资料进行聚类,其聚类结果不完全相同,需结合专业知识从各种聚类结果中选择最合适的。这11种方法所对应的递推公式从略,感兴趣的读者可参阅有关专著。  第1个过程步是调用CLUSTER过程进行样品。选用的聚类形式是平均法(AVERAGE);对变量实施标准化(STANDARD);在选用多数聚类形式时,NONORM阻止距离被正态化成为1或均方根为1;当METHOD=WARD时,NONORM阻止类间平夯总平和正态化而产生半偏相关平;当METHOD=DENSITY,EML,或TWOSTAGE时,选择项NONORM无效;当METHOD=CENTROID,MEDIAN或WARD时,NOSQUARE阻止距离被平。  选择项CCC、PSEUDO都是为了计算一些统计量用以判别全部样品究竟聚成几类合适。CCC要求打印出聚类判别据的立方(即判断资料聚成几类合适的一种统计量)及在一致无效假设下近似期望值R2,PSEUDO要求打印伪F(标志PSF)和t2(标志PST2)统计量。当分类数目不同时,它们就有不同的取值,CCC和PSF出现峰值所对应的分类数较合适、PST2出现峰值的前一行所对应的分类数较合适。  OUT=TREE产生1个名为TREE的输出数据集,它可被TREE过程用来输出聚类结果的树状图。HORIZONTAL要求将树状图水平置,SPACES=1要求置各样品之间的间隔为1。所输出的图看上去并不直观(从略),用GRAPH模块绘出样品聚类图的SAS程序很长,将在本章第6节中给出。  [输出结果及其解释] Average Linkage Cluster Analysis          Eigenvalues of the Correlation Matrix        Eigenvalue   Difference   Proportion   Cumulative          ①       ②       ③        ④    1     8.29203     5.94344    0.518252     0.51825    2     2.34859     0.27544    0.146787     0.66504    3     2.07316     0.89858    0.129572     0.79461    4     1.17458     0.17075    0.073411     0.86802    5     1.00383     0.35715    0.062740     0.93076    6     0.64669     0.33118    0.040418     0.97118    7     0.31551     0.25537    0.019719     0.99090    8     0.06014     0.01121    0.003759     0.99466    9     0.04893     0.02531    0.003058     0.99772    10     0.02361     0.01615    0.001476     0.99919    11     0.00747     0.00413    0.000467     0.99966    12     0.00333     0.00207    0.000208     0.99987    13     0.00127     0.00073    0.000079     0.99995    14     0.00053     0.00034    0.000033     0.99998    15     0.00019     0.00005    0.000012     0.99999    16     0.00014     .       0.000009     1.00000     The data have been standardized to mean 0 and variance 1     Root-Mean-Square Total-Sample Standard Deviation =   1  这是用平均距离法进行样品的结果,首先给出的是①相关矩阵的特征值、②两相邻特征值之差、③各特征值占总方差16的百分比和④累计百分比。                                Aver NCL Clusters Joined FREQ SPRSQ  RSQ  ERSQ CCC  PSF PST2 Dist Tie 23 OB10   OB11   2 0. .   .  837  .  0.200 22 OB3   OB4    2 0. .   .  373  .  0.385 21 CL22   OB5    3 0. .   .  219 2.1 0.519 20 OB21   OB24   2 0. .   .  186  .  0.572 19 CL21   OB9    4 0. .   .  144 2.5 0.660 18 CL19   CL23   6 0. .   .  87.4 5.7 0.830 17 OB2   CL18   7 0. .   .  80.2 2.0 0.883 16 OB12   OB14   2 0. .   .  81.0  .  0.908 15 OB16   OB22   2 0. .   .  77.0  .  1.129 14 OB1   OB7    2 0. .   .  74.9  .  1.180 13 CL17   OB18   8 0. .   .  64.2 4.7 1.348 12 OB19   OB23   2 0. .   .  52.1  .  2.176 11 CL12   CL20   4 0. .   .  39.8 3.2 2.305 10 CL16   OB15   3 0. .   .  36.4 8.3 2.311  9 CL14   CL13   10 0. .   .  25.9 19.8 2.609  8 OB13   CL11   5 0. .   .  26.0 2.2 2.747  7 OB6   CL10   4 0. .   .  24.8 4.1 3.434  6 CL8   OB17   6 0. .   .  23.1 4.1 4.027  5 CL7   CL6   10 0. .   .  16.1 7.8 4.565  4 CL9   CL15   12 0. 0.645 0.85 13.8 25.1 4.801  3 CL5   OB8   11 0. 0.559 1.18 16.3 3.1 5.731  2 CL4   CL3   23 0. 0.427 -3.79 3.9 24.7 6.376  1 CL2   OB20   24 0. 0.000 0.00  .  3.9 8.392 接着给出了将24个样品依次聚成23~1类的结果。NCL为聚类数;(Clusters Joined)为每次聚成1个新类的2个样品(标有OB)或旧类(标有CL);FREQ为新类中所含的样品数;SPRSQ为半偏R2,它表示每一次合并对信息的损失程度,看这1列的数值可知:从3类合并成2类时损失最多,此统计量表明聚成3类较合适;RSQ为R2,它反映的是累计聚类结果,上一次的R2减去本次半偏R2等于本次R2,从3类合并成2类R2减少了很多,它也支持分3类;ERSQ为在一致无效假设下近似期望的R2;再结合CCC、PSF、PST2这3个统计量的值,看看究竟分几类较合适。 CCC在NCL=3时达到唯一的峰值1.18;PSF在NCL=16、NCL=8和NCL=3时3次达靛值,但在NCL=3时峰更陡些;PST2在多处出现峰值,但从NCL=3到NCL=2比从NCL=5到NCL=4时峰值增加的幅度更大一些。综合这3个统计量的结果可知:将24个样品分为3类较合适。Aver Dist为两样品或类间的平均距离。  下面详细看看样品聚类的过程:开始24个样品各自成1类,共有24类,经过1次运算后,将第10号与第11号样品合并成1个新类,记为CL23,因为此时共有23类,经过第2次运算后,将第3号与第4号样品合并成另1个新类,记为CL22,因为此时共有22类;依次类推。若有SAS/GRAPH模块,并运行本章第6节中所给的程序,可得到图6.4.1。              图6.4.1  样品的动态过程。     从图上可清楚地看出:聚成3类是较合适的。按图中纵轴方向由上往下样品排列的顺序号,若聚成3类,各类所包含的样品分别为:(10~22)、(21~8)、(20)。由此可看出:第20号样品与其他样品相似程度较小。  [专业结论] 因17~22号样品是已知菌株,故得知:24号与21号最接近、16号与22号最接近、23号与19号最接近、(10,11,3,4,5,9,2)号与18号最接近。  第4节 用FASTCLUS过程进行大样本样品  如果在[例6.4.2]中的样品数不是24,而是成千上万,甚至更多,用CLUSTER过程就需要计算很长时间,况且,在实际问题中,常希望将样品聚成较少的几类更有实用价值。此时,用SAS中提供的FASTCLUS过程能很好地将资料聚成两类或三类。程序会自动给每个样朴上所属类别的标记,于是,可对每类样品作进一步地分析。  [例6.4.3] 在[例6.4.1]中进行了人脑老化资料的变量,资料中含有10个指标60个样品,但此资料实际上有893个样品。 现使用FASTCLUS过程对全部资料进行快速,结合专业知识可知,将脑老化程度分为轻、中、重为宜。资料太多,从略,这里仅给出SAS程序。  [SAS程序]──[D6P7.PRG]DATA a1;                DATA b1 b2 b3;INFILE 'c:llhyjb.dat';         SETINPUT age tj sg xx xs          IF c=1 THEN OUTPUT b1;             IF c=2 THEN OUTPUT b2;PROC FASTCLUS OUT=aaa          IF c=3 THEN OUTPUT b3;   MAXC=3 CLUSTER=c;         PROC PRINT DATA=b1; VAR age tj sg xx xs          PROC PRINT DATA=b2;            PROC PRINT DATA=b3;RUN;                  RUN;(程序的第1部分)          (程序的第2部分)  [程序修改指导] 数据很多,存在硬盘C上,文件名为LLHYJB.DAT,它有893行10列。首先调用FASTCLUS过程对资料进行快速聚类,要求将那些在10个指标上尽可能接近的样品聚在同一类,共聚成3类(MAXC=3);分类的标志用C表示(CLUSTER=C),它的取值为1~3;将聚类结果(含原始数据和分类标志)输出到数据集AAA中去(OUT=AAA)。  程序的第2部分是产生3个数据集B1、B2、B3,它们分别包含标志为1、2、3的样品,最后用PRINT过程将它们分别输出到OUTPUT窗口中去(结果从略),也可对数据集作其他处理。  第5节 用ACECLUS过程对需作样品的资料进行预处理  少数场合下用CLUSTER或FASTCLUS过程进行样品聚类效果不佳,这可能是由于资料不满足经典聚分析方法所要求的条件,为此,SAS提供了1个专门用于对需作样品的资料进行预处理的过程,即ACECLUS过程,它可以对数据进行线性转换,使转换后的数据满足经典方法的要求。  [例6.4.4] 沿用[例6.4.2]资料,先用ACECLUS过程,后用CLUSTER过程进行样品。  [SAS程序]──[D6P8.PRG]DATAINFILE 'a:clyclust.dat';INPUT x1-x16;PROC ACECLUS OUT=aaa P=0.02;PROC CLUSTER DATA=aaa STANDARD METHOD=AVERAGE NONORM       NOSQUARE CCC PSEUDO OUT=TREE;PROC TREE DATA=TREE HORIZONTAL SPACES=1; RUN;  [程序修改指导] 此程序仅比[D6Pd.PRG]多了调用ACECLUS过程的语句,这里的P=0.02是1个控制迭代过程的量。  [主要输出结果及其解释]  Average Linkage Cluster Analysis                               AverNCL Clusters Joined FREQ SPRSQ  RSQ  ERSQ CCC  PSF PST2 Dist Tie23 OB3   OB10   2 0. .   .  29.1  .  1.51522 CL23   OB5    3 0. .   .  12.6 3.8 2.66821 OB4   OB11   2 0. .   .  11.5  .  2.80220 OB12   OB14   2 0. .   .  10.2  .  3.30419 CL22   OB9    4 0. .   .  8.7 2.8 3.47318 CL21   OB18   3 0. .   .  7.2 2.9 4.32117 CL19   CL18   7 0. .   .  5.4 3.7 4.52216 OB16   OB22   2 0. .   .  5.4  .  4.53215 OB2   CL17   8 0. .   .  5.3 1.7 4.78714 OB21   OB24   2 0. .   .  5.4  .  4.86313 CL15   OB7    9 0. .   .  4.8 2.9 6.13612 CL20   OB15   3 0. .   .  4.6 4.3 6.16111 OB1   CL13   10 0. .   .  4.4 2.3 6.22910 OB19   CL14   3 0. .   .  4.5 1.9 6.265 9 CL10   OB23   4 0. .   .  4.6 1.4 6.647 8 OB13   CL9    5 0. .   .  4.7 1.3 6.875 7 OB6   CL12   4 0. .   .  4.9 2.0 6.920 6 CL11   CL16   12 0. .   .  4.5 4.6 7.147 5 CL7   CL8    9 0. .   .  4.3 2.9 7.582 4 CL5   OB17   10 0. 0.473 -1.14 5.0 1.3 7.640 3 CL6   CL4   22 0. 0.383 -4.34 2.3 8.7 8.441 2 CL3   OB8   23 0. 0.263 -3.31 2.6 2.0 9.263 1 CL2   OB20   24 0. 0.000 0.00  .  2.6 10.474  与[例6.4.2]的相应结果相比,聚类的结果基本一致,第20、8号样品是最后才被聚类的。从SPRSQ、RSQ、CCC、PSF、PST2这5个统计量的值来看,波动有所减小,尤其是PST2的值最明显。根据它们的数值判断,似应聚成4类为好。各类所含的样品是:(20)、(8)、(17,CL5)、(CL6),即(20)、(8)、(12,14;15;6;21,24;19;23;13;17)、(3,10;5;9;4,11;18;2;7;1;16,22)。括号内相邻2个分号之间的样品是一次运算后聚到一起的,如12,14;21,24。  第6节 用SAS/GRAPH模块绘制样品聚类图的SAS程序  [SAS程序]──[D6P9.PRG]goption device=  infile 'a:clyclust.dat' end=  input x1-x16;   n=_n_*2-1;  call symput('n',left(n));  proc cluster data=example outtree=tree standard method=ave%let len=4;            /* max_length of names is 12 */%  length function $5 text $&  keep text function x   array name[&n] $&len _temporary_;  array prnt[&n] $4 _temporary_;  array freq[&n] _temporary_;  array hgt[&n] _temporary_;  array lft[&n] _temporary_;  array rght[&n] _temporary_;  array par[&n] _temporary_;  array cmin[&n] _temporary_;  do i=1 to &n;   set tree(keep=_name_ _parent_ _freq_ _height_);   name(i)=_name_;   prnt(i)=_parent_;   freq(i)=_freq_;   hgt(i)=_height_;   h=5/3*&  init=100;  k=90/(&n+3)*2;  xsys='5';  ysys='5';  position='4';  do i=1 to &n;   if prnt[i]='' then head=i;   sp=  par[sp]=0;  do while (i^=0);   lft[sp]=0;   do i=1 to &n;     if prnt[i]=name[sp] and lft[sp]=0      lft[sp]=i;      par[i]=         else if prnt[i]=name[sp] and lft[sp]^=0      rght[sp]=i;      par[i]=          sp=lft[sp];   if freq[sp]=1     sp=par[sp];     if freq[rght[sp]]^=1      i=rght[sp];      rght[sp]=lft[sp];      lft[sp]=i;      sp=lft[sp];              cmin[sp]=hgt[sp];      i=0;          do while (sp^=head and i=0);     if name[sp]=name[lft[par[sp]]]      sp=rght[par[sp]];      if freq[sp]^=1 then i=1;              sp=par[sp];        cmin[sp]=cmin[lft[sp]];                    sp=par[sp];      if cmin[lft[sp]]>cmin[rght[sp]]        i=lft[sp];        lft[sp]=rght[sp];        rght[sp]=i;        i=0;            cmin[sp]=cmin[lft[sp]];          maxhgt=0;  do i=1 to &n;   if hgt(i)>maxhgt then maxhgt=hgt(i);   maxhgt=ceil(maxhgt);  do i=1 to &n;   hgt[i]=hgt[i]/maxhgt*(95-h)+h;   sp=  do while (i^=0);   sp=lft[sp];   if freq[sp]=1     text='';function='move'; x=h; y=init-k;         text=name[sp]; function='label';         text='';function='draw';  x=hgt[par[sp]];         y=init-2*k;         x=h;         text=name[rght[par[sp]]]; function='label';         sp=par[sp];     cmin[sp]=init-3*k/2;     init=y;     i=0;     do while (sp^=head and i=0);      if name[sp]=name[lft[par[sp]]]        sp=rght[par[sp]];        if freq[sp]=1         text=''; function='move'; x=hgt[lft[par[sp]]];         y=cmin[lft[par[sp]]];                  function='draw'; x=hgt[par[sp]];                  y=init-k;                  x=h;                  text=name[sp]; function='label';                  init=y;         sp=par[sp];         cmin[sp]=(cmin[lft[sp]]+y)/2;               else i=1;                    sp=par[sp];        text=''; function='move'; x=hgt[lft[sp]];        y=cmin[lft[sp]];               function='draw'; x=hgt[sp];               y=cmin[rght[sp]];               x=hgt[rght[sp]];               cmin[sp]=(cmin[lft[sp]]+cmin[rght[sp]])/2;                function='move';x=h;y=100;position=' ';text='';   function='draw';  y=5;   x=100;   function='label';x=h;  position='8';text='0';   do i=1 to 5;   function='move';position=' ';text='';x=h+(95-h)/5*i;y=6;      function='draw';   y=5;      function='label';position='8'; text=maxhgt*0.2*i;   text=substr(text,&len-2,3);    proc gslide annotate=a;%%clus  [程序修改指导] 在低档计算机上需将第1行上的VGA改成EGA,数据文件就是本章第3节中的数据。(注∶本程序由代炼忠编写)                                   (胡良平)
阅读(3802) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 距离聚类 的文章

 

随机推荐