聚类分析及R编程实现

目录

什么是聚类分析

​聚类分析法的类型

聚类统计量

​系统聚类法

R语言实现

最短距离法

最长距离法

 中间距离法

 类平均法

 重心法

 ward法


什么是聚类分析

聚类分析法-cluster analysis是以研究"物以类聚"的一种现代统计分析方法,利用数学方法进行分类,排除主观性和任意性,揭示客观事物内在差别和联系,特别是对多指标,多分类问题。

聚类分析的目的是把分类对象按照一定规律分成若干分类,这些分类不是事先给定的,而是根据数据的特征确定的,在同一类中这些对象在某种意义上趋向于彼此相似,而在不同类中趋向于不相似。

聚类分析法的类型

用来分类的数据成为指标,待分类物体成为样品,聚类分析的基本思想就是研究样品或变量之间存在着不同程度的相似性。

通常根据分类对象不同可将聚类分析分为两类,一类是对样品进行分类处理,叫Q型,另一类是对变量进行分类处理,叫R型。Q型聚类又叫样品分类,就是对观测对象进行聚类,是根据观测对象的各种特征进行分类

聚类统计量

为了将样品聚类,一种方法是将每一个样品看作p维空间的一个点,并在空间定义距离,距离较近的点归为一类,对变量通常计算他们的相似系数,性质越相似的变量的相似系数越接近于1或-1,彼此无关的系数越接近于0,比较相似的变量归为一类,不怎么相似的变量属于不同的类。

系统聚类法

(1)最短距离法:类与类之间的距离等于两类最近样品之间的距离

(2)最长距离法:类与类之间的距离等于两类最远样品之间的距离

(3)重心法:类与类之间的距离定义为对应这两类重心之间的距离,对样品分类来说,每一类的类中心就是该样品的均值。

设样品之间的距离用欧式距离,若Gp与类Gq合并为Gr后,他们各有n各样品,重心用x表示

某一类Gk的重心xk,他与新类Gr的距离是

进一步推导

(4)中间距离法:最长距离夸大了类间距离,最远距离低估了类间距离,结于两者间的距离法即为中间距离法,类与类之间的距离采用最远和最近之间的距离。

(5)类平均法:类与类之间的距离等于各类元素两辆之间的平方距离的平均

 递推公式为

(6)利差平方和法-Ward法:基于方差分析的思想,如果类分的正确,同类样品之间的离差平方和应当较小,类与类之间的离差平方和应当较大。

R语言实现

	X1	X2	X3	X4	X5	X6	X7	X8
北京	2671.52	512.35	436.31	217.82	257.02	699.15	286.99	313.68
天津	2398.47	349.24	372.27	141	247.15	435.68	320.88	191.89
河北	1533.42	302.35	281.69	155.08	185.82	336.37	260.63	118.19
山西	1400.26	347.83	202.2	145.89	144.96	316.73	163.29	132.52
内蒙古	1249.58	254.29	192.44	134.5	133.3	274.78	186.06	121.67
辽宁	1749.76	365.36	167.58	135.6	154.07	303.62	244.31	128.44
吉林	1438.94	329.63	161.49	137.96	137.35	243.28	253.19	121.92
黑龙江	1437.24	359.83	162.47	173.68	137.33	246.69	258.44	108.75
上海	3415.5	363.61	637.28	147.78	467.85	779.28	392.62	333.19
江苏	2070.29	280.72	364.72	94.4	233.48	337.28	306.11	165.94
浙江	2704.43	412.57	650.11	246.32	307.82	538	404.5	250.71
安徽	1938.62	297.49	232.77	75.32	196.13	302.37	256.41	127.7
福建	2610.66	308.71	249.76	78.17	190.16	245.33	309.45	141.89
江西	1579.21	174.97	196.56	71.94	119.68	246.63	276.97	138.58
山东	1645.74	356.25	354.42	147.29	183.01	377.95	231.69	173.34
河南	1439.32	304.06	215.52	125.97	131.74	211.41	281.61	115.25
湖北	1731.43	350.53	279.58	113.16	175.41	436.9	287.13	142.25
湖南	1986.57	313.03	334.06	149.81	210.63	460.88	267.79	181.45
广东	3186.77	343.38	531.97	240.97	421.82	746.68	751.2	395.84
广西	2188.14	246.9	344.15	106.33	252.3	530.48	376.06	162.87
海南	2237.13	186.07	222.21	125.95	140.55	385.35	280.17	180.07
四川	1925.3	329.08	293.22	135.29	145.34	380.37	272.48	143.53
贵州	1918.76	247.69	304.9	93.04	154.85	287.6	257.57	146.83
云南	1971.54	346.19	284.49	180.51	208.3	364.15	294.03	193.19
西藏	2592.26	618.38	182.47	151.91	107.68	248.64	178.35	222.2
陕西	1461.62	242.03	318.43	144.75	167.61	294.25	264.29	133.82
甘肃	1443.01	214.28	188.2	130.42	123.19	249.55	163.5	132.89
青海	1651.16	275.3	195.27	190.13	168.08	244.39	125.23	148.95
宁夏	1377.25	301.18	214.49	171.77	209.98	262.57	132.5	143.87
新疆	1531.88	352.17	254.04	155.85	191.48	323.24	184.93	215.31

自定义函数

H.clust<-function(X,d="euc",m="comp",proc=FALSE,plot=TRUE)
{
  D=dist(X,d)
  hc <- hclust(D,m)            
  #if(proc){ cat("\n cluster procdure: \n"); print(cbind(hc$merge,hc$height)) }
  PROC=cbind(merge=hc$merge,height=hc$height)
  if(proc) print(PROC)
  if(plot) plot(hc,ylab=d,main=m)    
  #plot(hc,hang=hang,xlab="",ylab="",main="")    
  #hc1=as.dendrogram(hc)
  #plot(hc1,xlab="G",ylab="D",horiz=TRUE) 
  #list(D=D,hc=hc,proc=proc)
  return(hc)
} #C=H.clust(X)

 复制数据

> d7.2=read.table("clipboard",header=T) 
> plot(d7.2)

 mvstats包中包含了自定义函数H

最短距离法

> library(mvstats)
H.clust(d7.2,"euclidean","single",plot=T)#最短距离法

最长距离法

H.clust(d7.2,"euclidean","complete",plot=T)#最长距离法

 中间距离法

H.clust(d7.2,"euclidean","median",plot=T)#中间距离法

 类平均法

H.clust(d7.2,"euclidean","average",plot=T)#类平均法 

 重心法

H.clust(d7.2,"euclidean","centroid",plot=T)#重心法 

 ward法

H.clust(d7.2,"euclidean","ward",plot=T)#ward法

 观察可知,经济实力相同或地域相似的省份经常被分为一类。这符合常理。

 

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海人001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值