SAS讲义 第三十九课聚类分析.doc_第1页
SAS讲义 第三十九课聚类分析.doc_第2页
SAS讲义 第三十九课聚类分析.doc_第3页
SAS讲义 第三十九课聚类分析.doc_第4页
SAS讲义 第三十九课聚类分析.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三十九课 聚类分析聚类分析是多元统计分析中研究“物以类聚”的一种方法,用于对事物的类别面貌尚不清楚,甚至在事前连总共有几类都不能确定的情况下进行分类的场合。聚类分析主要目的是研究事物的分类,而不同于判别分析。在判别分析中必须事先知道各种判别的类型和数目,并且要有一批来自各判别类型的样本,才能建立判别函数来对未知属性的样本进行判别和归类。若对一批样品划分的类型和分类的数目事先并不知道,这时对数据的分类就需借助聚类分析方法来解决。聚类分析把分类对象按一定规则分成组或类,这些组或类不是事先给定的而是根据数据特征而定的。在一个给定的类里的这些对象在某种意义上倾向于彼此相似,而在不同类里的这些对象倾向于不相似。关于聚类分析的任何通则必定是含糊的、不明确的,因为在众多的各种不同领域里聚类方法已经发展了,类和对象间的相似性具有不同定义。各种聚类分析方法通过用于聚类分析的各种各样的领域反映出来。因此尽管聚类方法有很多种,但不管哪一种都不能说得到的分类是准确的。下面我们介绍聚类分析中常用的一些方法。一、 距离和相似系数什么是“类”呢?粗略地说,相似物体的集合称作类;聚类分析的目的就是把相似的东西归类。其次“相似”是什么含意?怎样度量“相似”?我们必须给出度量“相似”的统计指标。聚类根据实际的需要有两个方向,一是对样品的聚类,一是对变量的聚类。相应的聚类统计量有两类:一种统计指标是类与类之间距离,它是把每一个样品看成高维空间中的一个点,类与类之间用某种原则规定它们的距离,将距离近的点聚合成一类,距离远的点聚合成另一类。距离一般用于对样品分类。另一种是相似系数,根据这个统计指标将比较相似的变量归为一类,而把不怎么相似的变量归为另一类,用它可以把变量的亲疏关系直观地表示出来。1. 距离设有组样品,每组样品有个变量,组样品数据如表39.1所示:表39.1 个变量的组样品数据 样品号变量 1 2 n 第i个与第j个样品之间距离用表示,一般应满足下面的条件:l 当第i个样品与第j个样品相等;l 对一切i,j;l 对一切i,j;l 对一切对一切i,j ,k。最常用的距离有欧几里德距离、闵可夫斯基和马氏距离:1) 欧几里德(Euclid)距离: (39.1)2) 闵可夫斯基(Minkowski)距离:(39.2)g一般为1或2,如果g=1时也称之为绝对值距离,g=2时即为欧几里德距离。3) 马氏(Mathalanobis)距离:(39.3)其中为第i个样品的p个元素组成的向量,为第j个样品的p个元素组成的向量,为个样品的的协方差矩阵的逆矩阵。2. 相似系数聚类分析有时也需要对变量进行聚类。在对变量进行聚类时,也可以定义变量间的距离,通常使用变量间的相似系数。常用的相似系数有:1) 夹角余弦夹角余弦作为变量间的相似关系,它忽视各变量的绝对长度,着重从形状方面反映它们之间的关系。记变量与的夹角余弦为,其中,则有(39.4)2) 相关系数变量与的相关系数为(39.5)表示第个指标的平均值。借助于相似系数,可以定义变量之间的距离。例如,采用非相似测度距离为,或 。另外,还有其他一些定义相似系数的方法。二、 类的特征和类与类之间距离及统计量我们的目的是聚类,那么什么叫类呢?由于客观事物的千差万别,在不同的问题中类的含义是不尽相同的。如图391中表现是五种不同类型的类。图391 各种形式的类企图给类一个严格的定义,绝非一件简单的事。下面给出类的几个定义,不同的定义适用于不同的场合。用表示类,假设中有个元素,用、表示中第、个因素。定义1 T为一给定的阈值,如果对任意的,有(为i和j的距离),则称G为一个类。定义2 T为一给定的阈值,如果对每个,有,则称G为一个类。定义3 T为一给定的阈值,如果对任意一个,一定存在使得则称G为一个类。易见,定义1的要求是最高的,凡符合它的类,一定也是后两种定义的类。此外,凡符合定义2的类,也一定是定义3的类。1. 类的特征现在类的元素用表示,m为内的样品数,可以从不同的角度来刻画的特征。常用的特征有如下三种:1) 均值(或称为的重心):(39.6)2) 样品协方差阵: (39.7)3) G的直径。它有多种定义,例如:(39.8)(39.9)2. 类的距离在聚类分析中,不仅要考虑各个类的特征,而且还要计算类与类之间的距离。由于类的形状是多种多样的,所以类与类之间的距离也有多种计算方法。令和中分别有和个样品,它们的重心分别记为和。下面给出一些常用的类与类之间距离定义,用表示:1) 最短距离:(39.10)类与类之间距离定义为和中最邻近的两个样品的距离。最短距离法有许多理想的理论性质,但在蒙特卡洛(Monto Carlo)模拟研究中(例:Milligan 1980)进行得很不顺利。它不对类的形状加以限制,保证了对拉长和不规则类的检测,例如,如图391中的(b)、(c)、(e)(d)形式的类。但它却牺牲了恢复压缩类的性能,另外它也趋向于在分开主要类之前去掉分布的尾部(Hartigan 1981)。2) 最长距离:(39.11)类与类之间距离定义为和中最远的两个样品的距离。最长距离法严重地倾向于产生直径粗略相等的类,而且可能被异常值严重地扭曲。例如,如图391中的(a)形式的类。最长距离法由Sorensen(1948)提出。3) 重心法距离: (39.12)类与类之间距离定义为两个重心或均值和之间欧氏距离的平方。重心法在处理异常值上比其他谱系方法更稳健,但是在其他方便不如Ward或类平均距离法的效果好(Milligan 1980)。重心法由Sokal和Michener(1958)提出。4) 类平均距离:(39.13)类与类之间距离定义为和中所有两个样品对之间距离的平均。类平均距离法趋向于合并具有较小偏差的类,而且稍微有点倾向与产生相同方差的类。例如,如图391中的(a)形式的类。类平均距离法首先由Sokal和Michener(1958)提出。5) Ward最小方差法或Ward离差平方和距离:若采用直径(式39.8)的定义方法,用、分别表示和的直径,用表示大类的直径,则,(39.14)(39.15)其中。用离差平方和法定义和之间的距离为两个类对所有变量的ANOVA平方和,即(39.16)可以证明这种定义是有意义的,并且 (39.17)那么 (39.18)如果样品间的距离采用欧氏距离,上式可表为(39.19)这表明,与重心法的距离(式39.12)只差一个常数倍,这个倍数显然与这两类的样品数和有关。Ward离差平方和距离法在每次合并类和类为类时,总是选择这样两个类和类,使它们合并成类后的值最小,故也称为Ward最小方差法。合并后增加的最小方差除以合并后总的离差平方和的比值(即半偏)的统计意义是容易解释的。Ward最小方差法一般是在多元正态混合型、等球形协方差、等抽样概率假设下合并类。所以,Ward方法趋向于合并具有少量观察的类,并倾向于形成具有大约相同数目观察的类。例如,如图74中的(a)形式的类。Ward方法对异常值也很敏感(Milligan 1980)。最小方差法或离差平方和由Ward(1963)提出。6) 密度估计法:密度估计法是一类使用非参数概率密度的聚类方法。例如,如图391中的(b)形式的类。包括两个步骤:使用一种基于密度估计的新的非相似测度来计算样品和的近邻关系;然后根据基于方法计算的距离,采用最小距离法进行聚类。有三种不同的密度估计法: 最近邻估计法最近邻估计法(Wong和Lane 1983)使用最近邻密度估计来计算距离。令为点到第个最近观察的距离。考虑以点为中心为半径的封闭球,在点的密度估计函数等于球内的观察数目除以球的体积所得比值。这样,新的非相似测度距离为:(39.20)最近邻估计法适用于样品数目较多且密度较高的类。 均匀核估计法均匀核估计使用了均匀核密度估计来计算距离。考虑以点为中心为半径的封闭球,在点的密度估计函数等于球内的观察数目除以球的体积所得比值。它与最近邻估计法的主要区别为半径是一个指定的值,即封闭球大小是一样的(均匀核)。这样,新的非相似测度距离为:(39.21) Wong混合法Wong混合法初始聚类时采用最近邻估计法,得到初始分类、和,及也可从输入数据集得到类的均值、和,样品数、和。判断这三个初始分类中某二个初始分类是近邻的标准为:(假设判断类和)(39.22)那么,新的非相似测度距离为(39.23)其中,和是初始分类和的直径,计算公式见式(39.14)。为观察样品的变量维数。Wong混合法适用于大的数据集而不适用于小的数据集。7) 两阶段密度估计法:两阶段密度估计法是SAS研究所的W.S.Sarle发展的。使用密度估计法时,众数类(modal clusters)经常在尾部所有点聚类之前就已经被合并掉了。两阶段密度估计法对密度估计法这一缺点进行了修正,以确保众数类被合并之前,所有点能被分配到众数类中去。同样,两阶段密度估计法支持密度估计法的三种形式:最近邻估计法、均匀核估计和Wong混合法。两阶段密度估计法的两阶段是指:在第一阶段中,互不相交的众数类被生成。密度估计法中的类合并使用与最短距离算法相同的合并方法。但有一个例外,只有在两个类中至少有一个类中的样品个数少于proc cluster过程的选项mode=值时才能合并。在第一阶段结束时每个样品点属于一个众数类。在第二阶段中,把第一阶段中形成的众数类再按最短距离法谱系地(某一类能够完全地包含在别的类里,但在类之间不允许其他形式的重迭)合并。8) 最大似然估计法:最大似然估计法EML是SAS研究所的W.S.Sarle发展Symans(1981)对不相交的类的研究,由最大似然公式得到。类和类合并成类,和两类之间的距离公式为:(39.24)其中,为观察总数,为观察样品的变量维数,为公式(39.16),为在谱系的第层对个类的直径求和。最大似然估计法是在三个基本假设:多元正态混合分布、等球面协方差和不等抽样概率的前提下,使得在谱系的每个水平上似然值最大。EML除了偏向于生成不等大小的类外,与Ward最小方差法很相似。proc cluster过程的偏度选项penalty=p值可用于调整偏向的程度。修正公式为对式(39.24)中的2改为p值。3. 类的各种统计量1) 类的均方根标准差(39.25)其中,为类的直径,定义见式(39.8),即类内的离差平方和。把一个类的离差平方和定义为直径是非常形象化的,例如,如果一个类的离差平方和等于0,那么类内的所有点都集中在一个点上,所以类的直径为0;如果一个类的离差平方和逐渐变大,那么类内的所有点就越来越分散,包含所有点的一个圆或球就会越来越大,相应地这个圆或球的直径就越来越大。为观察样品的变量维数,为类中的观察数目。2) 统计量(39.26)其中,为在谱系的第层对个类的直径求和,为所有观察的总离差平方和。一般来说,统计量用于评价每次合并成个类时的聚类效果。当值越小(也即统计量越大,越接近1),表示类内离差平方和在总离差平方和中所占的比例越小,说明了这个类的越分开,故聚类效果越好。的值总是在0和1之间,当个样品各自为一类时,说明类被完全分开;当个样品最后合并成一类时,说明类被完全混合在一起了,分不清楚了。而且的值总是随着分类个数的减少而变小。那么如何根据的值来确定个样品应分为几类最合适呢?首先,最合适分类的的值不能太小,最好能达到0.7以上;其次,不能孤立地看合并后值的大小,应该看值的变化。类的合并总是使值变小,如果这种变小是均匀的,合并是应该的,但当某次合并使值减少很多,这次合并就不应该,即我们找到了最合适的分类数。例如,从10类合并到5类时,值每次减少大约在0.01到0.02之间,值减小到0.8,从5类合并到4类时,值减少了0.3,即=0.80.3=0.5,这时,我们就可以得出分5类是最合适的。3) 半偏统计量合并类和类为类时,可以用半偏统计量评价这次合并的效果,半偏(Semipartial)计算公式为(39.27)其中,的计算公式见式(39.16),表示合并类和类为新类后,类内离差平方和的增量。显然,半偏值=上次合并后值这次合并后值,例如,以上例的数据为例,合并到4类时的半偏值=0.3。故这次合并后的半偏值越大,说明上次合并后停止合并的效果最好。4) 伪统计量(39.28)其中,为聚类的个数,为观察总数,为观察样品的变量维数。自由度为和。在给定显著水平上该伪(pseduo)统计量用于评价分为个聚类的效果。伪值越大越表示这些观察可显著地分为个类。5) 伪统计量(39.29)该统计量用以评价合并类和类的效果。该值很大说明合并类和类为类后,使得离差平方和的增加量()相对于原来和两类的类内离差平方和很大。这表明上一次合并的两个类和是很分开的,也就是说上一次聚类的效果是很好的。否则,这两个类应该在再合并时的离差平方和的增加量很小。上面的两个伪和伪统计量都可以作为确定类个数的有用指标,但是它们不是真正具有像随机变量一样的分布和分布。因为只有在观察数据来自具有标量协方差矩阵的多元正态分布的独立样本,且聚类方法将观察随机分类的假设前提下,伪和伪统计量才具有真正的分布和分布。而上述的两个假设前提在实际应用中是很难到达的,故称这两个统计量为伪统计量。4. 类的个数确定各种形式的聚类分析总体中的类的个数问题,至今找不到经人满意的方法。在聚类过程中到底把分类对象分成多少类适宜是一个十分困难的问题。一般情况下,是看每个变量的值及所有变量的累积值,观察这些值与聚类个数所画的折线图形对判断分成几类是有帮助的。检查数据的散点图对于确定聚类的个数也是一个很好的主意。对于观察数据只有二维或三维变量,使用proc plot或proc gplot过程来画二维数据的散点图,使用proc g3d过程来画三维数据的散点图。对于更多维数(3)的变量数据,首先使用proc candisc典型判别分析过程对原始变量进行降维,计算出典型变量can1、can2、can3等。一般情况下,3个或3个以内的典型变量就已经能很好地概括原始数据的变异了。然后,对这些典型变量作散点图。通常的显著性检验,比如方差分析的检验,对于检验类之间的差异是无效的。Arnold(1979)使用模拟的方法导出了有关确定类的个数准则的有用信息。Sarle(1983)在应用广泛的模拟基础上,发展提出立方聚类准则CCC(Cubic Clustering Criterion)。这个准则可以用于原始的假设检验及估计总体分类的数目。CCC是基于这样的假设:在超矩形上的均匀分布将粗略地被分为形状像超正方体一样的类。如果在大样本时有可能分成合适数目的超正方体,那么这个假设将给出很准确的结果。但在其他情况下,CCC将给出比较保守的结果。Milligan(1984)和Cooper(1985)使用4种谱系聚类方法比较了30种不同总体类型的聚类个数确定。在对样本数据的模拟研究中,找出了以下三个最好的准则:伪统计量;伪统计量;立方聚类准则CCC。在cluster过程中这三个准则都被应用和输出,而在fastclus过程中仅伪统计量和CCC统计量被应用和输出。我们建议寻找这三种统计量之间的一致性,即:CCC统计量和统计量的局部峰值所对应的聚类数,与这个聚类数伪统计量的一个较小值和下一个聚类数的一个较大伪统计量相吻合。还必须强调这些准则仅仅适用于紧凑的或略微拉长的类,也较好地适合于略微正态分布的类。或许,研究类的个数的最好方法是Wong等人在1983年提供的最近邻估计法同变化的值一起被应用的方法。如果值在一个很宽的范围内所得到的聚类估计数都是常数,则这个常数是一个很好的聚类数结论。通常应该画出聚类估计数对值的图形,这样还可能从图形中获得很多有用信息。三、 聚类方法1. 系统聚类法系统聚类法(Hierarchical clustering method)是目前使用最多的一种方法。其基本思想是首先将n个样品看成n类(即一类包括一个样品),然后规定样品之间的距离和类与类之间的距离。将距离最近的两类合并为一个新类,在计算新类和其他类之间的距离,再从中找出最近的两类合并,继续下去,最后所有的样品全在一类。将上述并类过程画成聚类图,便可以决定分多少类,每类各有什么样品。系统聚类法的步骤为:首先各样品自成一类,这样对组样品就相当于有类;计算各类间的距离,将其中最近的两类进行合并;计算新类与其余各类的距离,再将距离最近的两类合并;重复上述的步骤,直到所有的样品都聚为一类时为止。下面我们以最短距离法为例来说明系统聚类法的过程。最短距离法的聚类步骤如下: 规定样品之间的距离,计算样品的两两距离,距离矩阵记为,开始视每个样品分别为一类,这时显然应有; 选择距离矩阵中的最小元素,不失一般性,记其为,则将与合并为一新类,记为,有; 计算新类与其他各类的距离,得到新的距离矩阵记为; 对重复开始进行第步,直到所有样本成为一类为止。值得注意的是在整个聚类的过程中,如果在某一步的距离矩阵中最小元素不止一个时,则可以将其同时合并。2. 动态聚类法开始将n个样品粗略地分成若干类,然后用某种最优准则进行调整,一次又一次地调整,直至不能调整了为止。此法非常类似于计算方法的迭代法。3. 分解法它的程序正好和系统聚类相反,开始时所有的样本都在一类,然后用某种最优准则将它分成两类。再用同样准则将这两类各自试图分裂为两类,从中选出一个使目标函数较好者,这样由两类变成了三类。如此下去,一直分裂到每类只有一个样品为止(或用其他停止规则)。4. 加入法将样品依次输入,每次输入后将它放到当前聚类图的应有位置上,全部输入后,即得聚类图。四、 应注意的几个问题l 判别分析和聚类分析是两种不同的分类方法,它们所起的作用是不同的。判别分析方法假定类已事先分好,判别新样品应归属哪一类,对类的事先划分常常通过聚类分析得到。聚类分析方法是按样品的数据特征,把相似的样品倾向于分在同一类中,把不相似的样品倾向干分在不同类中。l 聚类的几种类型:不相交聚类、谱系聚类、重迭聚类、模糊聚类。l 通常测量变量有三种尺度:间隔尺度、有序尺度和名义尺度,其中间隔尺度使用得最多,本章主要讨论这种尺度。l 距离和相似系数这两个概念反映了样品(或变量)之间的相似程度。相似程度越高,一般两个样品(或变量)间的距离就越小或相似系数的绝对值就越大;反之,相似程度越低,一般两个样品(或变量)间的距离就越大或相似系数的绝对值就越小。l 系统聚类法是最常用的一种聚类方法,常用的系统聚类方法有最短距离法、最长距离法、中间距离法、类平均法、重心法、Ward最小方差法、密度估计法、两阶段密度估计法、最大似然估计法、相似分析法和可变类平均法。l 大多数的研究表明:最好综合特性的聚类方法为类平均法或Ward最小方差法,而最差的则为最短距离法。Ward最小方差法倾向于寻找观察数相同的类。类平均法偏向寻找等方差的类。具有最小偏差的聚类方法为最短距离法和密度估计法。拉长的或无规则的类使用最短距离法比其他方法好。最没有偏见的聚类方法为密度估计法。五、 SAS的聚类分析过程SAS的聚类过程能够被用来对某个SAS数据集中的观察进行分类。能得到谱系的和不相交的这两种分类。SAS聚类分析用于将一批样本按各变量(指标)的亲疏程度进行分类。亲疏程度依样本间的距离或相似系数进行计算。聚类方法很多,但SAS系统使用系统聚类法(Hierarchical cluster)和动态聚类法(Disjoint cluster)这两种方法。SAS的系统聚类法按样本距离定义类间距离,将个样本各自看作一类,对两类距离最小的样本合并,重新计算类间距离。如此反复进行,直到所有样本合并为一类。最后结果用聚类系谱图反映。SAS的动态聚类法基于上限中心点重心的原理,首先将个样本初步分为类,作为聚类个数的“上限”,从中确定其“中心点”,用作迭代的起点,然后每考察一个样本观察值,就把它移到最靠近的类,并算出每一类的“重心”,再考察一个观察点移到另一类。若能减少样本对于各自中心的离差之和,则把此两类的中心同时移到新的重心,并以重新计算的重心取代原来的重心,如此反复迭代,直到再也无法降低样本与重心离差之和为止,移动终止,分成类。SAS软件主要有以下5个聚类过程,即cluster,fastclus,modeclus、varclus和tree过程。这5个过程的比较和选择为:cluster过程为系统聚类过程,可使用十一种聚类方法进行谱系聚类,包括重心法、Ward离差平方和法和欧氏平均距离法等等。fastclus过程为动态聚类过程,使用 K-means算法寻找不相交的聚类,适宜于大样本分析,观察值可多达万个。modeclus过程为动态聚类过程,使用非参数密度估计法寻找不相交的聚类。varclus过程可用于系统或动态聚类,通过斜交多组分量分析对变量作谱系的和不相交的这两种聚类。cluster过程、fastclus过程和modeclus过程用于对样品聚类,varclus过程用于对变量聚类。tree过程将cluster或varclus过程的聚类结果画出树形结构图或谱系图。1. Cluster系统聚类过程cluster过程一般由下列语句控制:proc cluster ;var 变量表;id 变量;freq 变量;copy 变量表;rmsstd 变量;by 变量表;run;1) proc cluster语句 。l data=输入数据集命名包含进行聚类的观察的输入数据集。通过选项type=可以接受距离矩阵或非相似类型的距离。l outtree=输出数据集供tree过程调用,用来输出聚类结果的树状图。l method=算法包括 ward(离差平方和法),average(类平均法),centroid(重心法),complete(最长距离法),single(最短距离法),median(中间距离法),density(密度法),flexible(可变类平均法),twostage(两阶段密度法),eml(最大似然法),mcquitty(相似分析法)。l standard对变量实施标准化。l nonorm阻止距离被正态化成均数为1或均方根为1。l nosquare阻止过程在method= average、centroid、median、ward方法中距离数据被平方。l mode=n当合并两个类时,规定对被指定的众数类中的每个类至少有n个成员。这个选项只能在method= density或 twostage时一起使用。l penalty=p指定用于method= eml中的惩罚系数。p的值必须大于0,缺省时为2。l trim=p要求从分析中删去那些概率密度估计较小的点。p的有效值为大于等于0到小于100之间,被当作百分比。在使用method= ward 或complete时,因类可能被异常值严重地歪曲,最好使用这个选项。也可用于method= single中。l dim=n当规定method= density或 twostage时指定使用的维数。n的值必须大于等于1。如果数据是坐标数据,缺省值为变量的个数;如果是距离数据,缺省值为1。l hybrid要求用Wong混合聚类方法,其中密度用k均值法的初始聚类分析中的均值计算得到。这个选项只能在规定method= density或 twostage时使用。l k=n指明k最近邻估计法中近邻的个数。近邻个数n必须大于等于2且小于观察数。l r=n指明均匀核密度估计法的支撑球半径。n的值必须大于0。l notie阻止cluster过程在聚类历史过程中检查每次产生的类间最小距离连结(ties)的情况。可以规定这个选项以便减少过程执行的时间和空间。l rsquare打印输出R2和半偏R2。l rmsstd打印输出每一类的均方根标准差。l ccc要求打印输出在均匀的原假设下判断聚类分成几类合适的一种立方聚类准则统计量ccc和近似期望值R2。同时打印输出选项rsquare有关的R2和半偏R2。此选项不适合于method=single,因为该方法容易删掉分布的结尾部分。l pseudo要求打印输出伪统计量(标志为PSF)和伪统计量(标志为PST2)。当分类数目不同时,它们有不同的取值。l simple打印简单统计数。l std变量标准化。在输出报表中,可以根据输出的ccc、psf和pst2统计量确定多少分类数较合适。当ccc和psf值出现峰值所对应的分类数较合适,而pst2值是在出现峰值所对应的分类数减1较合适。2) 其他语句。l copy语句指明输入数据集中的一些变量拷贝到outtree=的输出数据集中。l rmsstd语句当输入数据集中的坐标数据代表类的均值时,定义表示均方根标准差变量,通常与freq语句中的变量配合使用。cluster过程的输出结果包括观察值间均方根距离、聚类数目等。2. Fastclus快速聚类过程Fastclus过程称为快速聚类过程或动态聚类过程。它是根据由一个或几个定量变量计算的欧氏距离和k均值聚类方法对数据进行分类,该过程只须对这组数据扫描二次或三次就能寻找出很好的分类结果,这些类之间互不相交。当需要聚类的样品数较多时,如果采用cluster过程就需要计算很长时间,因为它要从一个样品一类依此聚类到所有样品作为一类。而在实际问题中,常常只需要知道聚类到有实用价值的几类结果即可。此时使用fastclus过程就能很快地和很好地将大量样品数聚类成两类或三类。聚类的结果是将每个样品加上所属的类别标记。Fastclus过程的聚类步骤如下: 选择若干个观察作为“凝聚点”或称类的中心点,作为这些类均值的第一次猜测值; 通过可选择地分配,把每一个观察分配到与这些“凝聚点”中最近距离的类里来形成临时类。每次对一个观察进行分类,同时对加入新观察的“凝聚点”更新为这一类目前的均值; 重复步骤直到所有观察分配完成之后,这些类的“凝聚点”用临时类的均值替代。该步可以一直进行到类中的“凝聚点”的改变很小或为0时停止; 最终的分类由分配每一个观察到最近的“凝聚点”而形成。初始类的“凝聚点”必须是没有丢失值的观察,用户可以选择这些“凝聚点”,或让过程自己去选择。用户还可以指定最大的“凝聚点”个数,及“凝聚点”之间的必须分隔开的最小距离。特别要注意,fastclus过程对异常点很敏感,通常会把异常点分配为单独的一个类,因此也是检测异常点的有效过程。fastclus过程一般由下列语句控制:proc fastclus ;var 变量表;id 变量;freq 变量;weight 变量;by 变量表;run;1) proc fastclus语句 。按选项控制的性质可以分成以下4类。 有关输入输出数据集选项:data=输入数据集原始输入数据集。seed=输入数据集指定一个SAS数据集,其中含有初始的“凝聚点”,但无原始数据。mean=输出数据集生成一个输出数据集,其中包含每个类的均值和一些统计量。out=输出数据集将含有原始数据和分类标志的聚类结果输出到指定数据集。 有关控制聚类的初始中心点选项:maxclusters=n(或maxc=n)指定所允许的最大聚类数(缺省值为100)。radius =t为选择新的“凝聚点”指定最小距离准则。当一个观察点与已有“凝聚点”的最小距离都大于t值时,该观察可考虑用来作为一个新的“凝聚点”。t的缺省值为0。要注意,选择一个好的t值,可以得到好的分类结果。注意用户必须规定说明maxclusters=或radius =中的一个。replace = full | part | none |random指定“凝聚点”的替换方式。full为用统计方法替换,缺省值;part为仅当观察点与最近的“凝聚点”距离大于“凝聚点”之间的最小距离时,那么有一个老的“凝聚点”被替换;none为禁止“凝聚点”的替换;random为从完整的观察样本中随机地选择一组样本作为初始“凝聚点”。 有关控制最终聚类“凝聚点”的计算选项:drift每当一个观察归入最靠近的“凝聚点”所在类后,此类的“凝聚点”都要被该类中现有观察的均值所替代。因而“凝聚点”不断发生变化。convergec=c(或conv= c)指定收敛的判断准则,c为任意非负值,缺省值为.。当“凝聚点”改变的最大距离小于或等于初始“凝聚点”之间的最小距离乘以c值时,循环过程结束。maxiter= n指定重新计算“凝聚点”所需的最大迭代次数,缺省值为。strict= s当一个观察同其最近“凝聚点”之间的距离大于s值时,此观察不归入此类。 有关控制打印输出的选项:distance要求打印类均值之间的距离。list要求列出所有观察的id变量值,观察所归入类的类号,及观察与最终“凝聚点”之间的距离。2) 其他语句。主要有var、id、freq、weight、by等语句,意义同其他聚类过程中的语句,不再赘述。另外,在采用fastclus过程之前,若变量值的单位不一致则必须对变量预先用standard过程转换成标准分(例如:proc standard mean=0 std=1 out=abc;var x1 x2;)或由factor过程产生因子得分,然后由fastclus过程加以聚类。3. Varclus方差聚类过程varclus过程基于相关矩阵或协方差矩阵,对数值变量进行不相交或谱系分类。类的划分通过计算每类第一主成份或重心成份的最大方差而确定,因此,同每一类有联系的是该类中这些变量的线性组合。varclus过程能够被用来作为变量压缩的方法。对于含有很多变量的变量集,常常用信息损失很少的类分量集替代。若采用相关矩阵的信息,则所有变量都平等;当引用协方差矩阵分析时某变量有较大方差,该变量则较为重要。varclus过程生成的输出数据集,可由score过程计算出每类的得分。varclus过程的变量聚类步骤如下:如果没有为过程提供初始分类的情况(缺省情况),该过程开始把所有变量看成一个类,然后它重复以下步骤: 首先挑选一个将被分裂的类。根据规定的选项,选中的类应该是:或者用它的类分量所解释的方差百分比最小,或者同第二主成份有关的特征值为最大; 把选中的类分裂成两个类。先计算出开头两个主成份,再进行斜交旋转,并把每个变量分配到旋转分量对应的类里,分配原则为使变量与这个主成份的相关系数最大。 变量重新分类。通过迭代,变量被重新分配到这些类里,使得由这些类分量所解释的方差最大。重新分配可能要求保持谱系结构。 当每一类满足用户规定的准则时,过程停止迭代。用户准则:或者是每个类分量所解释的方差百分比,或者是每一类的第二特征值。准则缺省时,每类只要有一个特征值大于1,则过程停止。varclus过程一般由下列语句控制:proc varclus ;var 变量表;partial 变量表;seed 变量表;freq 变量;weight 变量;by 变量表;run; 1) proc varclus语句。根据选项所控制的类型,可以把选项列表分成以下4类。 有关输入输出数据集选项有:l data=输入数据集可以是原始数据或type =corr、ucorr、cov、ucor、sscp或factor类型的数据集。l outstat=输出数据集存储均值、标准差、相关系数、类得分系数和聚类结构。l outtree=输出数据集包含聚类过程的树状结构信息,供tree过程调用。 有关控制聚类数选项主要有:l minc =最小聚类个数(默认为)。l maxc=最大聚类个数。l maxeigen=规定每一类中第二特征值所允许的最大值。l percent=指定类分量必须解释的方差百分比。 有关控制聚类方法选项主要有:l centroid使用重心成份法而不是主成份法。l maxiter= n规定在交替最小二乘法阶段中的最大迭代次数。l maxsearch= n指定在搜索阶段最大迭代次数。l cov用协方差矩阵聚类。l hi要求在不同层次的类构成谱系聚类结构。l initial= group| input|random|seed规定初始化类的方法。 有关控制输出选项主要有:l corr打印相关系数。l simple打印均值和标准差。l short不打印类结构、得分系数和类间相关阵。l summary只打印最后的汇总表。l trace列出在迭代过程中每个变量所归入的类。2) 其他语句。主要有var、partial、seed、freq、weight、by语句,意义同其他聚类过程中的语句,不再赘述。4. Tree聚类树型输出过程本过程利用cluster过程和varclus过程生成的数据集来绘制树状结构图。这个树状结构图可以按垂直或水平方向输出。tree过程可以把输入数据集中的任何数值变量都能够用来规定这些类的高度,还可根据用户的要求生成一个输出数据集,其中包含一个变量,其值用以标识在这个树里指定水平上不相交的类。tree过程一般由下列语句控制:proc tree ;name 变量;parent 变量 ;height 变量;id 变量;copy 变量表;freq 变量;by 变量表;run;1) proc tree语句。按选项控制的性质可以分成以下3类。 有关输入输出数据集的选项:l data=输入数据集输入由cluster过程和varclus过程生成的数据集。l out=输出数据集输出绘制树形结构图的有关数据到指定数据集。 有关树状结构控制的选项:l level =n对于out=的输出数据集,规定确定不相交类的树状图水平(层次)。l ncl =n规定在out=的输出数据集中所希望的类个数。l dock =n当某个类中的对象(观察或变量)的个数小于或等于n时,在out=的输出数据集里把该类中这些对象的变量cluster和clusname的值置为丢失值。n的缺省值为0。l root =“名称值”如果不想输出整个树状图,规定想输出的子树根的name变量的值。l hor要求树状图的取向为水平方向,且树根在左边。如果没有指明此选项,则其为垂直方向,树根在上部。 有关树高度和树叶控制的选项:l height=常规变量规定在树状图中用以确定高度轴的常规变量。常规变量为h/l/m/n,分别指_height_变量、根到自己节点的路径长度、_mode_变量、_ncl_变量。l maxh=n指定在高度轴上打印的最大值。l minh=n指定在高度轴上打印的最小值。l ntich=n指定在高度轴上刻度之间的间隔个数。l pages=n规定这个树状图被展开的页数。l pos=n指定在高度轴上打印位置的个数。l spaces=n规定在打印输出中对象之间的空格数。l tickpos=n指定在高度轴上每个刻度间隔打印位置的个数。l fillchar=“字母”规定没有连成一类的树叶之间的打印字符。缺省值为空格。l joinchar=“字母”规定已连成一类的树叶之间的打印字符。缺省值为X。l leafchar=“字母” 规定表示没有子辈的类的打印字符。缺省值为“.”。l treechar=“字母” 规定表示有子辈的类的打印字符。缺省值为“X”。 其他选项l sort按照类的形成顺序,用height变量对每个节点的子辈排序。l des把选项sort的排列顺序反过来。l list列出这个树中所有节点,并且打印高度、父辈及每个节点的子辈。l noprint只创建out=的输出数据集而不绘制树状图。l graphics要求在graph窗口中输出高分辨率的树状图,类的合并用连接线归纳表示。2) 其他语句。l name语句规定一个字符或数值变量,用以标识每个观察代表的节点。name变量同parent变量联合确定树的结构。语句缺省时寻找_name_变量。l parent语句规定一个字符或数值变量,用以标识每个观察的父辈节点。语句缺省时寻找_parent_变量。l height语句规定一个数值变量用于定义这个树中每个节点(类)的高度。高度变量由选项height=规定。l copy语句把语句中列出的一个或几个变量复制到out=的输出数据集中。l id语句id变量可以是字符或数值变量,用以在打印输出树状图中识别对象。六、 实例分析例39.1 试对1976年74个国家每100000人口的出身率和死亡率数据进行聚类分析(使用cluster和tree过程)。数据见表39.2所示。表39.2 1976年74个国家的出身率和死亡率countrybirthdeathcountrybirthdeathAFGHANISTAN5230KOREA,DEM PEO REP4312LGERIA5016KOREA,REPUBLIC OF266ANGOLA4723MADAGASCAR4722ARGENTINA2210MALAYSIA306AUSTRALIA168MEXICO407AUSTRIA1213MOROCCO4716BANGLADESH4719MOZAMBIQUE4518BELGIUM1212NEPAL4620BRAZIL3610NET

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论