多元统计分析第九章聚类分析.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流多元统计分析第九章聚类分析.精品文档.聚类分析引言俗话说:“物以聚类,人以群分”,在现实世界中存在着大量的分类问题。例如,生物可以分成动物和植物,动物又可分为脊椎动物和无脊椎动物等;人按年龄可分为少年、青年、中年、老年,对少年的身体形态、身体素质及生理功能的各项指标进行测试,据此对少年又可进行分类;在环境科学中,我们可以对按大气污染的轻重分成几类区域;在经济学中,根据人均国民收入、人均工农业产值和人均消费水平等多项指标对世界上所有国家的经济发展状况进行分类;在产品质量管理中,要根据各产品的某些重要指标可以将其分为一等品,二等品等。研究事物分类问题的基本方法有两种:一是判别分析,二是聚类分析。若已知总体的类别数目及各类的特征,要对类别未知的个体正确地归属其中某一类,这时需要用判别分析法。若事先对总体到底有几种类型无从知晓,则要想知道观测到的个体的具体的分类情况,这时就需要用聚类分析法。聚类分析的基本思想:首先定义能度量样品(或变量)间相似程度(亲疏关系)的统计量,在此基础上求出各样品(或变量)间相似程度的度量值;然后按相似程度的大小,把样品(或变量)逐一归类,关系密切的聚集到一个小的分类单位,关系疏远的聚合到一个大的分类单位,直到所有的样品(或变量)都聚合完毕,把不同的类型一一划分出来,形成一个由小到大的分类系统;最后根据整个分类系统画出一副分群图,称之为亲疏关系谱系图。聚类分析给人们提供了丰富多彩的分类方法,大致可归为:系统聚类法:首先,将个样品看成类,然后将性质最接近的两类合并成一个新类,得到类,合并后重新计算新类与其它类的距离与相近性测度。这一过程一直继续直到所有对象归为一类为止,并且类的过程可用一张谱系聚类图描述。动态聚类法(调优法):首先对个对象初步分类,然后根据分类的损失函数尽可能小的原则进行调整,直到分类合理为止。有序样品聚类法(最优分割法):开始将所有样品看成一类,然后根据某种最优准则将它们分割为二类、三类,一直分割到所需的K类为止。这种方法适用于有序样品的分类问题,故称为有序样品聚类法模糊聚类法:该方法多用于定性变量的分类利用模糊集理论来处理分类问题,它对经济领域中具有模糊特征的两态数据和多态数据具有明显的分类效果图论聚类法:利用图论中最小支撑树的概念来处理分类问题,创造了独具风格的方法聚类预报法:利用聚类方法处理预报问题,在多元统计分析中,可用来作预报的方法很多,如回归分析或判别分析但对一些异常数据,如气象中的灾害性天气的预报,使用回归分析或判别分析处理的效果都不好,而聚类预报弥补了这一不足,这是一个值得重视的方法。本书主要介绍聚类分析不仅可以对样品进行分类,也可以对变量进行分类。对样品的分类称为Q型聚类分析,对变量进行分类称为R型聚类分析。聚类分析的历史还很短,它的方法很粗糙,理论上还不完善,但由于能解决许多实际问题,所以很受人们重视,同回归分析、判别分析一起被称为多元分析的三大实用分析方法。聚类统计量在对样品(或变量)进行分类时,样品(或变量)之间的相似性是如何度量的呢?这一节中,我们介绍三种相似性度量距离、匹配系数和相似系数。距离和匹配系数常用来度量样品之间的相似性,相似系数常用来变量之间的相似性。样品之间的距离和相似系数有着各种不同的定义,而这些定义与变量的类型有着非常密切的关系。通常变量按取值的不同可以分为:1.定量变量:变量用连续的量来表示,例如长度、重量、速度、人口等,又称为间隔尺度变量。2.定性变量:并不是数量上有变化,而只是性质上有差异。定性变量还可以再分为:有序尺度变量:变量不是用明确的数量表示,而是用等级表示,例如某产品分为一等品、二等品、三等品等,文化程度分为文盲、小学、中学、大学等。名义尺度变量:变量用一些类表示,这些类之间既无等级关系,也无数量关系,例如性别分为男、女,职业分为工人、教师、干部、农民等。下面我们主要讨论具有定量变量的样品聚类分析,描述样品间的亲疏程度最常用的是距离。9.2.1距离1. 数据矩阵设为第个样品的第个指标,数据矩阵如下表 表9.1 数据矩阵 变量样品 12n 在上表中,每个样品有个变量,故每个样品都可以看成是中的一个点,个样品就是中的个点。在中需定义某种距离,第个样品与第个样品之间的距离记为,在聚类过程中,相距较近的点倾向于归为一类,相距较远的点应归属不同的类。所定义的距离一般应满足如下四个条件:,对一切;且当且仅当 ,对一切;,对一切2定量变量的常用的距离对于定量变量,常用的距离有以下几种:闵科夫斯基(Minkowski)距离这里为某一自然数。闵科夫斯基距离有以下三种特殊形式:1) 当时,称为绝对值距离,常被形象地称为“城市街区”距离;2) 当时,称为欧氏距离,这是聚类分析中最常用的距离;3)当时,,称为切比雪夫距离。在实际中用得很多,但是有一些缺点,一方面距离的大小与各指标的观测单位有关,另一方面它没有考虑指标间的相关性。当各指标的测量值相差悬殊时,应先对数据标准化,然后用标准化后的数据计算距离;最常用的标准化处理是:令 其中为第个变量的样本均值,为第个变量的样本方差。兰氏(Lance和Williams)距离 当( )时,第个样品与第个样品间的兰氏距离为 这个距离与各变量的单位无关,但没有考虑指标间的相关性。马氏距离(Mahalanobis)距离第个样品与第个样品间的马氏距离为其中,为样品协方差矩阵。使用马氏距离的好处是考虑到了各变量之间的相关性,并且与各变量的单位无关;但马氏距离有一个很大的缺陷,就是难确定。由于聚类是一个动态过程,故随聚类过程而变化,那么同样的两个样品之间的距离可能也会随之而变化,这不符和聚类的基本要求。因此,在实际聚类分析中,马氏距离不是理想的距离。斜交空间距离 第个样品与第个样品间的斜交空间距离定义为其中是变量与变量间的相关系数。当个变量互不相关时,即斜交空间距离退化为欧氏距离(除相差一个常数倍外)。以上几种距离的定义均要求样品的变量是定量变量,如果使用的是定性变量,则有相应的定义距离的方法。3定性变量的距离下例只是对名义尺度变量的一种距离定义。 例9.1.1 某高校举办一个培训班,从学员的资料中得到这样6个变量:性别()取值为男和女;外语语种()取值为英、日和俄;专业()取值为统计、会计和金融;职业()取值为教师和非教师;居住处()取值为校内和校外;学历()取值为本科和本科以下。现有两名学员: (男,英,统计,非教师,校外,本科) (女,英,金融,教师,校外,本科以下)这两名学员的第二个变量都取值“英”,称为配合的,第一个变量一个取值为“男”,另一个取值为“女”,称为不配合的。一般地,若记配合的变量数为,不配合的变量数为,则它们之间的距离可定义为按此定义本例中与之间的距离为。当样品的变量为定性变量时,通常采用匹配系数作为聚类统计量。9.2.2匹配系数 定义9.2.1 第个样品与第个样品的匹配系数定义为 ,其中显然匹配系数越大,说明两样品越相似。例9.2.1 对购买家具的顾客作聚类分析。有以下三个变量: :喜欢的式样,老式记为1,新式记为2; :喜欢的图案,素式记为1,格子式记为2,花式记为3; :喜欢的颜色,蓝色记为1,黄色记为2,红色记为3,绿色记为4。 下面列出 表9.2 四位顾客(样品)的观测值 变量样品 1 2 3 4 1 3 11 2 22 3 32 2 3解 各样品为名义尺度变量,其取值仅代表不同状况、类别,无大小次序关系,故采用匹配系数作为聚类统计量,由定义得注:对,为非负整数; 越大,表明样品越相似;按由大到小,可将样品逐步聚类。上述匹配系数的计算没有考虑到各个变量取值个数的多寡而一视同仁。在上例中,式样 只取两个值1和2,图案取三个值(1,2,3),颜色取四个值(1,2,3,4). 故 即 这样,的大小主要由控制,而与的作用不适当地被削弱了。为了解决这一问题,引进对指标加权的匹配系数:其中是指标的权数,等于可能取值的个数。 对上例,求得各加权匹配系数为:聚类分析方法不仅用来对样品进行分类,而且可用来对变量进行分类。在对变量进行分类时,常常采用相似系数来度量变量之间的相似性。9.2.3相似系数设表示与的相似系数,它一般应满足如下三个条件: ,对一切; ,当且仅当存在常数和,使得;,对一切.最常用的相似系数有以下两种:1. 夹角余弦变量与的夹角余弦定义为它是中变量的观测向量与变量的观测向量之间夹角的余弦函数,即.2. 相关系数变量与的相关系数为其中,注:实际上是将数据标准化后的交角余弦。变量之间的这种相似性度量,在一些应用中要看相似系数的大小,而在另一些应用中要看相似系数绝对值的大小。相似系数(或其绝对值)越大,认为变量之间相似程度就越高;反之,则越低。聚类时,比较相似的变量倾向于归为一类,不太相似的变量归属不同的类。变量之间常借助于相似系数来定义距离,如令一般来说,同一批数据采用不同的相似性度量,会得到不同的分析结果。在进行聚类分析时,应根据实际情况选取合适的相似性度量,如在经济变量分析中,常用相关系数来描述变量间的相似程度。系统聚类法基本思想首先将个样品各自作为一类,并规定样品之间的距离和类与类之间的距离,然后将距离最近的两类合并成一个新类,计算新类与其它类的距离;重复进行两个最近类的合并,每次减少一类,直至所有的样品合并成一类。系统聚类的方法 设表示样品与样品之间的距离,表示类,表示与的距离。最短距离法1)最短距离定义即类与类之间的距离为两类最近样品间的距离。由METHOD=SIN指示SAS执行2)最短距离法步骤如下:规定样品之间的距离,计算个样品的距离矩阵,它是一个对称矩阵。选择中的最小元素,设为,则将与合并成一个新类,记为,即;在中划去与所对应的两行与两列。加入由新类与剩下的未聚合的各类之间的距离所组成的一行和一列,计算新类与任一类之间距离的递推公式为其余行列上的距离值不变,这样就得到了新的距离矩阵,记作。对重复上述对的两步得,如此下去直至所有元素合并成一类为止。如果某一步中的最小元素不止一个,则称此现象为结,对应这些最小元素的类可以任选一对合并或同时合并。最长距离法 1)最长距离定义即类与类之间的距离为两类最远样品间的距离.由METHOD=COM指示SAS执行。2)最长距离法 最长距离法与最短距离法的步骤类似,当某类与合并成一个新类,与任一类的距离为中间距离法最短距离法与最长距离法均取极端值,而对有些问题,比如要反映工资、收入、生活水平、价格等总体水平,取其中间值更能反映实际。当某类与合并成一个新类,计算与任一类的距离,其递推公式为其中常取,这时正好是以、为边的三角形中边上的中线. 类平均法类平均法有两种定义:一种定义方法是把类与类之间的距离定义为所有样品对之间的平均距离,即定义和之间的距离为其中和分别为类和的样品个数, 为 中样品与中样品之间的距离.用METHOD=AVE指示SAS执行当某类与合并成一个新类,计算与任一类的距离,其递推公式为另一种定义方法是定义类与类之间的平方距离为样品对之间平方距离的平均值,即在上面的递推公式中,没有被反映出来,为此可可将该公式进一步推广为其中,称这种系统聚类法为可变类平均法。用METHOD=FLE指示SAS执行重心法类与类之间的距离定义为它们的重心之间的欧氏距离设和的重心分别为和,则与之间的平方距离为这种系统聚类法称为重心法,它的递推公式为重心法在处理异常值方面比其他系统聚类法更稳健,但是在别的方面一般不如类平均法或离差平方和法的效果好。由METHOD=CEN指标SAS执行密度估计法(density method)这种方法包括两步,第一步定义一种新的距离;第二步基于,采用最短距离法由METHOD=DEN指示SAS执行。的估计有:1)最近邻估计法:令表示点到第个最近观测值的距离,其中由=选项指定,考虑以为中心,以为半径的闭球,在点的密度估计为球内观测数被球体积除所得的商,定义为 2) 一致核估计法:令为选择项=确定的值,考虑一个中心在,半径为的闭球,在点的密度的估计值为球内观测数被球体积去除所得的商,定义为3)Wong混合法离差平方和法类中各样品到类重心的平方欧氏距离之和称为(类内)离差平方和法设类和合并成新类,则、和的离差平方和法分别是它们反映了各自类内样品的分散程度如果和这两类相距较近,则合并后所增加的离差平方和法应较小;否则,应较大.所以我们定义和之间的平方距离这种系统聚类法称为离差平方和法或ard方法.离差平方和法类间距离与两类的样品数有较大关系,两个大的类倾向于有较大的距离,因而不易合并,这往往符合我们对聚类的实际要求离差平方和法在许多场合下优于重心法,是比较好的一种系统聚类法,但它对异常值很敏感由METHOD=WARD指示SAS执行系统聚类的SAS程序系统聚类可用CLUSTER过程实施,用前述十一种方法对数据集中的观测进行系统聚类,其输入数据可以是数值型的坐标值,也可以是距离值。还可用TREE 过程画谱系图,PRC TREE CLUSTER过程主要包括以下几个语句:PROC CLUSTER语句、VAR语句、ID语句。PROC CLUSTER语句一般形式是:PROC CLUSTER选择项1选择项2。PROC CLUSTER语句中的选择项可以是以下几种:1)数据集选项DATA一,用以指明过程分析的数据集;2)OUTTREE=命名一个输出数据集,该数据集供TREE过程用来画谱系图3)聚类方法选项METHOD=可以是前面的十一种方法中的任一种VAR语句一般形式是:VAR变量1 变量2;VAR语句用来列出聚类分析中所使用的变量ID语句一般形式是:ID变量;ID语句用的变量用以区分聚类过程打印输出和OUTTREE数据集中的观测TREE过程只有一条语句: PROC TREE DATA=数据集;它根据数据集华谱系图。proc tree data=tree1;COPY语句一般形式是:COPY变量。COPY语句用来把列出的变量从输入数据集复制到OUTTREE数据集中。 例9.3.2 对于北京地区1 9 5 11 9 6 1年11年的冬季1 2月、1月和2月三个月的气温(数据见)进行聚类分析。共采用五种聚类方法:类平均法、重心法、密度估计法、最小距离法和Ward法。(1)类平均法可采用以下SAS程序 data temperat;input year Dec Jan Feb;cards;1951 1.0 -2.7 -4.31952 -5.3 -5.9 -3.51953 -2.0 -3.4 -0.81954 -5.7 -4.7 -1.11955 -0.9 -3.8 -3.11956 -5.7 -5.3 -5.91957 -2.1 -5.0 -1.61958 0.6 -4.3 -0.21959 -1.7 -5.7 2.01960 -3.6 -3.6 1.31961 -3.0 -3.1 -0.8proc cluster data=temperat method=average;var Dec Jan Feb;id year;run;该程序第一步建立名为temperat的数据集,此数据集包括1 9 51-1 9 6 1年的资料。紧接着的proc cluster语句调用cluster过程用来对数据集temperat进行聚类,method=average表示采用类平均法,outtree=tree1指示电脑将聚类结果存入tree1数据集。语句var Dec Jan Feb表明对Dec,Jan,Feb三个月的平均温度进行聚类分析。id year;表明用年区分聚类的观测类平均法的输出如下 Average Linkage Cluster Analysis Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative 1 6.72019 1.90639 0.544682 0.54468 2 4.81380 4.00998 0.390167 0.93485 3 0.80382 . 0.065151 1.00000 Root-Mean-Square Total-Sample Standard Deviation = 2.027956 Root-Mean-Square Distance Between Observations = 4.967458 Number Frequency Normalized of of New RMS Clusters -Clusters Joined- Cluster Distance Tie 10 1953 1961 2 0.210174 9 CL10 1957 3 0.409358 8 1951 1955 2 0.503678 7 1952 1956 2 0.504482 6 CL9 1960 4 0.577050 5 1958 1959 2 0.699969 4 CL6 1954 5 0.712379 3 CL4 CL5 7 0.834187 2 CL8 CL3 9 1.046039 1 CL2 CL7 11 1.254241上表(表头Cluster History)给出了用类平均法聚类的结过程,每行指出新聚类的年份各行为:1)分成十类 53 61成一类,其余各自成一类 2)分成九类 53 61 57成一类,其余各自成一类 3)分成八类 53 61 57,51 55各为一类,其余各自成一类 4)分成七类 53 61 57,51 55,52 56各为一类,其余各自成一类 5)分成六类 53 61 57 60,51 55,52 56各为一类,其余各自成一类 6)分成五类 53 57 60 61,51 55,52 56,58 59,54 7)分成四类 53 54 57 60 61,51 55,52 56,58 59 8)分成三类53 54 57 58 59 60 61,51 55,52 569)分成二类51 53 54 55 57 58 59 60 61,52 56分成四类的结果很有意义,我们看到若用类平均法分成四类为53 54 57 60 61,51 55,52 56,58 59第一类都是在1 2月、1月温度较低,在2月份转暖第二类是1 9 5 1年和1 9 5 5年,都是1 2月份暖而1月、2月变冷型第三类1 9 5 2年和1 9 5 6年,1 2月、1月、2月相对都较冷,平均气温变化不大第四类1 9 5 8年1 9 5 9年则1月份平均气温最低而1 2月、2月相对高(2) 使用重心法,可采用程序proc cluster data=temperat method=centroid;var Dec Jan Feb;id year;run;得到的输出是 Centroid Hierarchical Cluster Analysis Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative 1 6.72019 1.90639 0.544682 0.54468 2 4.81380 4.00998 0.390167 0.93485 3 0.80382 . 0.065151 1.00000 Root-Mean-Square Total-Sample Standard Deviation = 2.027956 Root-Mean-Square Distance Between Observations = 4.967458 Number Frequency Normalized of of New Centroid Clusters -Clusters Joined- Cluster Distance Tie 10 1953 1961 2 0.210174 9 CL10 1957 3 0.395640 8 1951 1955 2 0.503678 7 1952 1956 2 0.504482 6 CL9 1960 4 0.539296 5 CL6 1954 5 0.649108 4 1958 1959 2 0.699969 3 CL5 CL4 7 0.661098 2 CL8 CL3 9 0.899558 1 CL2 CL7 11 1.087754上表(表头Cluster History)给出了用类平均法聚类的过程,每行指出新聚类的年份各行为:1)分成十类 53 61成一类,其余各自成一类 、2)分成九类 53 61 57成一类,其余各自成一类3)分成八类 53 61 57,51 55各为一类,其余各自成一类4)分成七类 53 61 57,51 55,52 56各为一类,其余各自成一类5)分成六类 53 61 57 60,51 55,52 56各为一类,其余各自成一类6)分成五类53 61 57 60 54,51 55,52 56各为一类,其余各自成一类7)分成四类53 61 57 60 54,51 55,52 56,58,59各为一类8)分成三类53 61 57 60 54 58 59,51 55,52 56 各为一类,9)分成二类53 61 57 60 54 58 59 51 55,52 56 各为一类10)分成一类:所有年份为一类使用密度法可用程序proc cluster data=temperat method=density k=3;var Dec Jan Feb;id year;run;得到的输出是 Density Linkage Cluster Analysis Eigenvalues of the Covariance Matrix Eigenvalue Difference Proportion Cumulative 1 6.72019 1.90639 0.544682 0.54468 2 4.81380 4.00998 0.390167 0.93485 3 0.80382 . 0.065151 1.00000 K = 3 Root-Mean-Square Total-Sample Standard Deviation = 2.027956 Normalized Maximum Density Number Frequency Normalized in Each Cluster of of New FusionClusters -Clusters Joined- Cluster Density Lesser Greater Tie 10 1953 1961 2 67.6663 51.1331 100.0000 9 CL10 1957 3 67.1343 50.5280 100.0000 8 CL9 1960 4 47.3132 30.9871 100.0000 7 CL8 1955 5 42.5310 36.7194 100.0000 6 CL7 1958 6 31.8196 18.9199 100.0000 5 CL6 1954 7 27.0097 18.3518 100.0000 4 CL5 1952 8 22.4193 28.8032 100.0000 3 CL4 1959 9 18.9815 13.6810 100.0000 2 CL3 1951 10 11.2800 6.6635 100.0000 1 CL2 1956 11 8.6379 5.0808 100.0000 One modal cluster has been formed. 上表(表头Cluster History)给出了用类平均法聚类的结过程,每行指出新聚类的年份 各行为: 1)分成十类 53 61成一类,其余各自成一类 、 2)分成九类 53 61 57成一类,其余各自成一类 3)分成八类 53 61 57 60为一类,其余各自成一类 4)分成七类 53 61 57 60 55为一类,其余各自成一类5)分成六类 53 61 57 60 55 58为一类,其余各自成一类 6)分成五类 53 61 57 60 55 58 54为一类,其余各自成一类 7)分成四类 53 61 57 60 55 58 54 52为一类,其余各自成一类 8)分成三类53 61 57 60 55 58 54 52 59为一类,其余各自成一类9)分成二类53 61 57 60 55 58 54 52 59 51为一类,其余各自成一类为了使用最短距离法,可使用以下程序proc cluster data=temperat method=single;var Dec Jan Feb;id year;run;