目录

什么是聚类分析

​聚类分析法的类型

聚类统计量

​系统聚类法

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法

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

聚类分析及R编程实现相关推荐

  1. 第7章 聚类分析及R使用

    第1章 多元统计分析概述 第2章 多元数据的数学表达 第3章 多元数据的直观表示 第4章 多元相关与回归分析 第5章 广义与一般线性模型 第6章 判别分析及R使用 第7章 聚类分析及R使用 7.1 聚 ...

  2. R 编程中的 LOOCV(留一法交叉验证)

    LOOCV(Leave One Out Cross-Validation)是一种交叉验证方法,其中每个观察被视为验证集,其余(N-1)个观察被视为训练集.在 LOOCV 中,模型的拟合完成并使用一个观 ...

  3. R语言学习记录:聚类分析的R实现

    时间: 2018-08-04 参考教程: Learn R | 统计建模之聚类分析(上). Learn R | 统计建模之聚类分析(下) 学习内容:聚类分析的R实现 数据来源:<应用多元统计分析& ...

  4. matlab rad2deg,在R编程中将弧度值转换为度值–rad2deg()函数

    R语言中的rad2deg()函数用于将指定的弧度值转换为度数值.注意:此函数需要安装"grid"包.语法:rad2deg(x)参数:x:要转换的弧度值示例1:filter_none ...

  5. matlab留学生作业代做,25877留学生作业代做、代写MATLAB,R编程设计作业、代做MATLAB/R课程作业、代写portfolio作业...

    25877留学生作业代做.代写MATLAB,R编程设计作业.代做MATLAB/R课程作业.代写portfolio作业 日期:2019-06-10 09:48 Financial Markets Ins ...

  6. r语言聚类分析_「SPSS数据分析」SPSS聚类分析(R型聚类)的软件操作与结果解读...

    ​ 在上一讲中,我们讲述了针对样本进行聚类的分析方法-Q型聚类.今天我们将详细讲解针对变量数据进行的聚类分析--系统聚类之R型聚类. 我们要将数据变量进行聚类,但不知道要分成几类,或者没有明确的分类指 ...

  7. r型聚类分析怎么做_【SPSS数据分析】SPSS聚类分析(R型聚类)的软件操作与结果解读 ——【杏花开生物医药统计】...

    ​ 在上一讲中,我们讲述了针对样本进行聚类的分析方法-Q型聚类.今天我们将详细讲解针对变量数据进行的聚类分析--系统聚类之R型聚类. 我们要将数据变量进行聚类,但不知道要分成几类,或者没有明确的分类指 ...

  8. 可用于 线性判别、聚类分析 的R语言函数总结

    一.判别分析 判别分析是一种分类技术,其通过一个已知类别的"训练样本"来建立判别准则,并通过预测变量来为未知类别的数据进行分类.根据判别的模型分为线性判别和非线性判别,线性判别中根 ...

  9. rstudio 关联r_使用关联规则提出建议(R编程)

    rstudio 关联r 背景 (Background) Retailers typically have a wealth of customer transaction data which con ...

最新文章

  1. tasklist 妙用
  2. nofollow标签_网站nofollow标签的应用 - 最蜘蛛池博客
  3. python 有效的括号
  4. 对象检测和浏览器检测
  5. 解决逆向工程mapper映射文件不发布问题
  6. redis实现令牌桶算法思路
  7. SAP S/4HANA Cloud 系统集成的一些场景介绍
  8. CSS position属性---absolute与relative
  9. Application和Console Application
  10. BAPI_PO_CREATE1 创建采购订单
  11. javascript 调用webservice 的几种方法
  12. 黑苹果和笔记本键盘按键的映射及快捷键的设置
  13. 局域网下 mac和Windows 互相访问共享文件
  14. Jetpack Compose for Desktop: 里程碑1发布
  15. 子午学术论坛邀请注册码
  16. CAPEX/OPEX概念解释
  17. 【6.21更新】coursera视频打不开的解决方法
  18. 51单片机之点阵、矩阵键盘
  19. 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证来宾访问。
  20. Pytest-html 报告内中文方法标题乱码

热门文章

  1. Unity 3D 游戏与编程
  2. 【Java】如何优雅的使用HttpClient
  3. 【案例分享】项目施工进度报告 - 树形报表
  4. CSS实现汉字与数字底部对齐
  5. tensor如何实现转置_pytorch tensor 变换
  6. 一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码
  7. AWS ELB技术要点
  8. JavaScript关于exec()函数的理解
  9. hadoop之MapReduce学习教程
  10. Tomcat与JDK版本的对应