多元统计分析课程实验--聚类分析
- 格式:doc
- 大小:200.00 KB
- 文档页数:11
第9章 聚类分析9.1 引言俗话说:“物以聚类,人以群分”,在现实世界中存在着大量的分类问题。
例如,生物可以分成动物和植物,动物又可分为脊椎动物和无脊椎动物等;人按年龄可分为少年、青年、中年、老年,对少年的身体形态、身体素质及生理功能的各项指标进行测试,据此对少年又可进行分类;在环境科学中,我们可以对按大气污染的轻重分成几类区域;在经济学中,根据人均国民收入、人均工农业产值和人均消费水平等多项指标对世界上所有国家的经济发展状况进行分类;在产品质量管理中,要根据各产品的某些重要指标可以将其分为一等品,二等品等。
研究事物分类问题的基本方法有两种:一是判别分析,二是聚类分析。
若已知总体的类别数目及各类的特征,要对类别未知的个体正确地归属其中某一类,这时需要用判别分析法。
若事先对总体到底有几种类型无从知晓,则要想知道观测到的个体的具体的分类情况,这时就需要用聚类分析法。
聚类分析的基本思想:首先定义能度量样品(或变量)间相似程度(亲疏关系)的统计量,在此基础上求出各样品(或变量)间相似程度的度量值;然后按相似程度的大小,把样品(或变量)逐一归类,关系密切的聚集到一个小的分类单位,关系疏远的聚合到一个大的分类单位,直到所有的样品(或变量)都聚合完毕,把不同的类型一一划分出来,形成一个由小到大的分类系统;最后根据整个分类系统画出一副分群图,称之为亲疏关系谱系图。
聚类分析给人们提供了丰富多彩的分类方法,大致可归为:⑴系统聚类法:首先,将n 个样品看成n 类,然后将性质最接近的两类合并成一个新类,得到1 n 类,合并后重新计算新类与其它类的距离与相近性测度。
这一过程一直继续直到所有对象归为一类为止,并且类的过程可用一张谱系聚类图描述。
⑵动态聚类法(调优法):首先对n 个对象初步分类,然后根据分类的损失函数尽可能小的原则进行调整,直到分类合理为止。
⑶有序样品聚类法(最优分割法):开始将所有样品看成一类,然后根据某种最优准则将它们分割为二类、三类,一直分割到所需的K类为止。
多元统计分析-聚类分析聚类分析是⼀个迭代的过程对于n个p维数据,我们最开始将他们分为n组每次迭代将距离最近的两组合并成⼀组若给出需要聚成k类,则迭代到k类是,停⽌计算初始情况的距离矩阵⼀般⽤马⽒距离或欧式距离个⼈认为考试只考 1,2⽐较有⽤的⽅法是3,4,5,8最喜欢第8种距离的计算 欧式距离 距离的⼆范数 马⽒距离 对于X1, X2均属于N(u, Σ) X1,X2的距离为 (X1 - X2) / sqrt(Σ)那么不同的聚类⽅法其实也就是不同的计算类间距离的⽅法1.最短距离法 计算两组间距离时,将两组间距离最短的元素作为两组间的距离2.最长距离法 将两组间最长的距离作为两组间的距离3.中间距离法 将G p,G q合并成为G r 计算G r与G k的距离时使⽤如下公式 D2kr = 1/2 * D2kp + 1/2 * D2kq + β * D2pq β是提前给定的超参数-0.25<=β<=04.重⼼法 每⼀组都可以看成⼀组多为空间中点的集合,计算组间距离时,可使⽤这两组点的重⼼之间的距离作为类间距离 若使⽤的是欧⽒距离 那么有如下计算公式 D2kr = n p/n r * D2kp + n q/n r * D2kq - (n p*n q / n r*n r ) * D2pq5.类平均法 两组之间的距离 = 组间每两个样本距离平⽅的平均值开根号 表达式为D2kr = n p/n r * D2kp + n q/n r * D2kq6.可变类平均法 可以反映合并的两类的距离的影响 表达式为D2kr = n p/n r *(1- β) * D2kp + n q/n r *(1- β) * D2kq + β*D2pq 0<=β<17.可变法 D2kr = (1- β)/2 * (D2kp + D2kq) + β*D2pq8.离差平⽅和法 这个⽅法⽐较实⽤ 就是计算两类距离的话,就计算,如果将他们两类合在⼀起之后的离差平⽅和 因为若两类本⾝就是⼀类,和本⾝不是⼀类,他们的离差平⽅和相差较⼤ 离差平⽅和:类中每个元素与这⼀类中的均值距离的平⽅之和 若统⼀成之前的公式就是 D2kr = (n k + n p)/(n r + n k) * D2kp + (n k + n q)/(n r + n k) -(n k)/(n r + n k) * * D2pq⼀些性质 除了中间距离法之外,其他的所有聚类⽅法都具有单调性 单调性就是指每次聚类搞掉的距离递增 空间的浓缩和扩张 D(A)>=D(B) 表⽰A矩阵中的每个元素都不⼩于B D(短) <= D(平) <= D(长) D(短,平) <= 0 D(长,平) >= 0 中间距离法⽆法判断。
《多元统计实验》---聚类分析实验报告
rownames(ex4)=ex4.4[,1]
KM<-kmeans(ex4,4,nstart = 20,algorithm = "Hartigan-Wong")
KM
sort(KM$cluster)
三、实验结果分析:
第一题:
如下图为20种啤酒最小距离法系统聚类树状图,当取合并距离为20时,20种啤酒可以分为3类,第一类为{16,19},第二类为{10,12,9,20},第三类为{2,7,4,3,5,15,13,14,8,17,11,1,6,18}。
如下图为20种啤酒最大距离法系统聚类树状图,如果将啤酒分为4类,则第一类为{16,19},第二类{10,12,9,20},第三类{4,2,7},第四类{13,17,11,8,6,18,5,15,3,14},即蓝色框出。
如下截图为当20种啤酒分为3类是的最大距离法聚类出的结果,即分为{1,3,5,6,8,11,13,14,15,17,18}、{2,4,7}、{9,10,12,16,19,20}。
第二题:
如下截图,31个地区被聚成大小为4、3、16、8的四个类,means表示各类均值,
如下截图得出的结果,按地区原顺序聚类后的分类情况以及类间平方和在总平方和中的占比为79.7%,分类结果为:
第一类:天津、江苏、福建、广东
第二类:北京、上海、浙江
第三类:河北、山西、辽宁、吉林、黑龙江、山东、河南、广西、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆
第四类:内蒙古、安徽、江西、湖北、湖南、海南、重庆、四川。
武汉理工大学实验(实训)报告项目名称实验2―聚类分析所属课程名称多元统计分析项目类型设计性实验实验(实训)日期年月日班级学号姓名指导教师武汉理工大学统计学系制实验报告2聚类分析(设计性实验)实验原理:聚类分析的目的是将分类对象按一定规则分为若干类,这些类不是事先给定的,而是根据数据的特征确定的。
在同一类里的这些对象在某种意义上倾向于彼此相似,而在不同的类里的对象倾向于不相似。
系统聚类法是聚类分析中用的最多的一种,其基本思想是:开始将n个对象各自作为一类,并规定对象之间的距离和类与类之间的距离,然后将距离最近的两类合并成一个新类,计算新类与其它类之间的距离;重复进行两个最近类的合并,每次减少一类,直至所有的对象合并为一类。
实验题目一:为了对11种语言——英语、挪威语、丹麦语、荷兰语、德语、法语、西班牙语、意大利语、波兰语、匈牙利语及芬兰语进行比较研究,研究人员选取每种语言的1至10十个数字相应的单词列表分析。
对于同一数字,某两种语言的第一个字母若相同,则称这两者在该数字上一致,否则非一致。
将这11种语言两两比较后,计算每一对在十个数字上非一致的数目,得到下列距离矩阵:E N Da Du G Fr Sp I P H FiE 0N 2 0Da 2 1 0Du 7 5 6 0G 6 4 5 5 0Fr 6 6 6 9 7 0Sp 6 6 5 9 7 2 0I 6 6 5 9 7 1 1 0P 7 7 6 10 8 5 3 4 0H 9 8 8 8 9 10 10 10 10 0Fi 9 9 9 9 9 9 9 9 9 8 0(1)对这11种语言分别用最小距离法(single linkage)、最大距离法(complete linkage)、平均距离法(average linkage)进行聚类分析;(2)画出以上三种方法聚类分析结果的树状图;(3)结合三种方法的树状图,你认为将11种语言分为哪几类比较合适?(4)用最大距离法将11种语言聚为3类,并将聚类结果存储在一个SPSS数据文件中。
多元统计实验报告设计题目:聚类分析聚类分析是根据“物以类聚”的道理,对样品或指标进行分类的一种多元统计分析方法,它们讨论的对象是大量的样品,要求能合理地按各自的特性来进行合理的分类,没有任何模式可供参考或依循,即是在没有先验知识的情况下进行的。
基本思想:是根据事物本身的特性研究个体分类的方法;聚类原则:是同一类中的个体有较大的相似性,不同类中的个体差异很大系统聚类分析法一、分析数据1990年全国人口普查数据二、基本原理系统聚类的基本思想是:距离相近的样品(或变量)先聚成类,距离相远的后聚成类,过程一直进行下去,每个样品或变量总能聚到合适的类中。
系统聚类的计算步骤:●对数据进行变换处理,消除量纲●构造n个类,每个类只包含一个样本计算●n个样本两两间的距离{dij}●合并距离最近的两类为一新类●计算新类与当前各类的距离,重复上一步●画聚类图●决定类的个数和类三、实验步骤①1、选择Analyze→Classify→Hierarchical Cluster,打开分层聚类分析主对话框;2、选择聚类分析变量点击向右的箭头按钮,将三个变量移到Variable栏中;3、选择标识变量,单击“地区”点击向右的箭头按钮,将其移入Label Case By栏中;4、选择聚类方法,单击Method…按钮,选择数值标准化法,Z-Score;选择聚类法Between-group linkage;距离测度采用Interval的Squared Euclidean distance;单击Continue按钮,返回主对话框;5、选择输出统计量,单击Statistics…按钮,打开Statistics子对话框。
选择输出Agglomeration Schedule、Proximity Matric,范围从3类到5类的聚类解,单击Continue按钮,返回主对话框;6、选择输出聚类图,单击Plots…按钮,打开Plots子对话框。
选择Dendrogram 树形图,单击Continue按钮,返回主对话框;7、点击OK按钮,显示结果清单。
多元统计分析课程实验--聚类分析我国各地区城镇居民消费性支出的聚类分析一、问题的背景下表列出了1999年全国31个省、直辖市和自治区(港、澳、台不在其中)的城镇居民家庭平均每人全年消费性支出的八个主要变量数据。
这八个变量是1x :食品5x :交通和通讯 2x :衣着6x :娱乐教育文化服务3x :家庭设备用品及服务 7x :居住 4x :医疗保健8x :杂项商品和服务消费性支出数据单位:元资料来源:2000年《中国统计年鉴》我们希望根据上述八个指标对各地区进行聚类。
聚类分析的方法有很多,其中有系统聚类法和动态聚类法等等,本次试验将用R软件进行系统聚类法和动态聚类法。
一、系统聚类法系统聚类法(hierarchical clustering method)是聚类分析诸方法中用的最多的一种,其基本思想是:开始将n个样本各自作为一类,并确定样本之间的距离和类与类之间的距离,然后将聚类最近的两类合并成一个新类,计算新类与其他类的距离;重复进行两个最近类的合并,每次减少一类,直至所有的样本合并为一类。
系统聚类法距离的确定方法有很多,如:最短距离法(single)、最长距离法(complete)、中间距离法(median)、mcquitty相似法(mcquitty)、类平均法(average)、重心法(centroid)、离差平方和法(Ward方法)(ward),括号后面是R软件中的表示代码。
R软件可以用hclust()函数进行系统聚类。
(1)最短距离法(single)广东西藏上海北京浙江海南福建广西天津江西云南江苏陕西安徽贵州重庆河南湖南湖北四川青海宁夏内蒙古山西甘肃吉林辽宁黑龙江山东河北新疆1234hclust (*, "single")dH e i g h t按照最短距离法得到的5类分别为: 第1类:广东 第2类:西藏 第3类:上海 第4类:北京第5类:浙江、海南、福建、广西、天津、江西、云南、江苏、陕西、安徽、贵州、重庆、河南、湖南、湖北、四川、青海、宁夏、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、山东、河北、新疆(2)最长距离法(complete )西藏江西安徽贵州海南福建广西河南陕西青海宁夏内蒙古山西甘肃吉林辽宁黑龙江重庆江苏云南湖南湖北四川山东河北新疆广东天津浙江北京上海2468hclust (*, "complete")dH e i g h t按照最长距离法得到的5类分别为: 第1类:西藏第2类:江西、安徽、贵州、海南、福建、广西、河南、陕西、青海、宁夏、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、重庆、江苏、云南、湖南、湖北、四川、山东、河北、新疆 第3类:广东 第4类:天津、浙江 第5类:北京、上海(3)中间距离法(median )广东北京上海天津浙江西藏海南江西广西福建青海宁夏陕西河南安徽贵州云南重庆江苏山东湖南内蒙古山西甘肃吉林辽宁黑龙江河北新疆湖北四川1234hclust (*, "median")dH e i g h t第1类:广东 第2类:北京第3类:上海、天津、浙江 第4类:西藏第5类:海南、江西、广西、福建、青海、宁夏、陕西、河南、安徽、贵州、云南、重庆、江苏、山东、湖南、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、河北、新疆、湖北、四川(4)mcquitty 相似法(mcquitty )广东浙江天津重庆湖南湖北四川山东河北新疆江苏云南北京上海西藏江西安徽贵州陕西青海宁夏河南内蒙古山西甘肃吉林辽宁黑龙江海南福建广西01234567hclust (*, "mcquitty")dH e i g h t第1类:广东第2类:浙江、天津、重庆、湖南、湖北、四川、山东、河北、新疆、江苏、云南第3类:北京、上海 第4类:西藏第5类:江西、安徽、贵州、陕西、青海、宁夏、河南、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、河南、福建、广西(5)类平均法(average )西藏海南江西福建广西陕西湖南湖北四川山东河北新疆安徽贵州青海宁夏河南内蒙古山西甘肃吉林辽宁黑龙江天津重庆江苏云南广东上海北京浙江123456hclust (*, "average")dH e i g h t第1类:西藏第2类:河南、江西、福建、广西、陕西、湖南、湖北、四川、山东、河北、新疆、安徽、贵州、青海、宁夏、海南、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、天津、重庆、江苏、云南 第3类:广东 第4类:上海 第5类:北京、浙江(6)重心法(centroid )西藏天津海南福建江西广西重庆云南江苏山东安徽贵州陕西湖南湖北四川河南青海宁夏内蒙古山西甘肃吉林辽宁黑龙江河北新疆广东上海北京浙江0.01.02.03.04.0hclust (*, "centroid")dH e i g h t第1类:西藏第2类:河南、江西、福建、广西、陕西、湖南、湖北、四川、山东、河北、新疆、安徽、贵州、青海、宁夏、海南、内蒙古、山西、甘肃、吉林、辽宁、黑龙江、天津、重庆、江苏、云南 第3类:广东 第4类:上海 第5类:北京、浙江(7)离差平方和法(Ward 方法)广东上海北京浙江西藏天津重庆江苏云南湖南湖北四川山东河北新疆内蒙古山西甘肃青海宁夏吉林辽宁黑龙江江西安徽贵州河南陕西海南福建广西510152025hclust (*, "ward")dH e i g h t第1类:广东、上海、北京、浙江 第2类:西藏第3类:天津、重庆、江苏、云南、湖南、湖北、四川、山东、河北、新疆 第4类:内蒙古、山西、甘肃、青海、宁夏、吉林、辽宁、黑龙江 第5类:河南、江西、福建、广西、陕西、、安徽、贵州、海南总结:7种方法得到的类有的相同、有的不同,需要根据具体的数据与背景再进一步确定认同哪种聚类是较为合理的。
二、动态聚类法动态聚类法又称为逐步聚类法,其基本思想是:开始先粗略地分一下类,然后按照某种最优原则修改不合理的分类,直至类分得比较合理为止,这样就形成一个最终的分类结果。
这种方法具有计算量较小,占计算机内存较少和方法简单等有限,适用于大样本的Q 型聚类。
kmeans ()函数采用的是K 均值方法,采用逐个修改方法,最早由MacQueen 于1967年提出来。
接下来进行R 软件聚类。
用R 软件得到如下结果:> km=kmeans(scale(X),5,nstart=20);kmK-means clustering with 5 clusters of sizes 7, 4, 1, 16, 3Cluster means:x1 x2 x3 x4 x5 x61 0.3809105 0.72772805 0.4284646 -0.1235496 0.08595291 0.22151082 0.1884219 -1.53016321 -0.6594861 -1.0978219 0.05751333 -0.42704523 1.8308656 -1.12773604 0.9368961 1.2959544 3.90904835 1.60144194 -0.6858629 -0.05818051 -0.4787096 -0.1598851 -0.57749718 -0.50709075 1.9076266 1.02839359 2.1203833 2.1727806 1.49972764 2.2232050x7 x81 -0.02724055 0.39045492 0.33154520 -0.23368783 3.88031413 2.01876534 -0.49317064 -0.60332385 0.95830640 1.9453274Clustering vector:北京天津河北山西内蒙古辽宁吉林黑龙江上海江苏浙江5 1 4 4 4 4 4 4 5 1 5安徽福建江西山东河南湖北湖南广东广西海南重庆4 2 2 1 4 4 1 3 2 2 1四川贵州云南西藏陕西甘肃青海宁夏新疆4 4 1 1 4 4 4 4 4Within cluster sum of squares by cluster:[1] 23.348448 9.131334 0.000000 19.783881 10.280048(between_SS / total_SS = 73.9 %)Available components:[1] "cluster" "centers" "totss" "withinss"[5] "tot.withinss" "betweenss" "size" "iter"[9] "ifault"第1类:天津、江苏、重庆、山东、湖南、云南、西藏第2类:福建、江西、广西、海南第3类:广东第4类:河北、山西、内蒙古、辽宁、吉林、黑龙江、安徽、河南、湖北、四川、贵州、陕西、甘肃、青海、宁夏、新疆第5类:北京、上海、浙江附录(R程序):###总数据读取X=data.frame(read.delim("D:\\an\\clust.txt",header = T),s=c("北京","天津","河北","山西","内蒙古","辽宁","吉林","黑龙江", "上海","江苏","浙江","安徽","福建","江西","山东","河南","湖北","湖南","广东", "广西","海南","重庆","四川","贵州","云南","西藏","陕西","甘肃","青海","宁夏","新疆"))###生成距离结构,做系统聚类d=dist(scale(X))hc1=hclust(d,"single")hc2=hclust(d,"complete")hc3=hclust(d,"median")hc4=hclust(d,"mcquitty")hc5=hclust(d,"average")hc6=hclust(d,"centroid")hc7=hclust(d,"ward")###绘出谱系图和聚类情况(最长距离发和类平均法)plclust(hc1,hang=-1);rel=rect.hclust(hc1,k=5,border="red")plclust(hc2,hang=-1);rel=rect.hclust(hc2,k=5,border="red")plclust(hc3,hang=-1);rel=rect.hclust(hc3,k=5,border="red")plclust(hc4,hang=-1);rel=rect.hclust(hc4,k=5,border="red")plclust(hc5,hang=-1);rel=rect.hclust(hc5,k=5,border="red")plclust(hc6,hang=-1);rel=rect.hclust(hc6,k=5,border="red")plclust(hc7,hang=-1);rel=rect.hclust(hc7,k=5,border="red")###动态聚类法km=kmeans(scale(X),5,nstart=20);km。