R语言进行聚类分析

目录

简述6种系统聚类法

实验实例和数据资料:

上机实验步骤:

进行最短距离聚类:

进行最长距离聚类:

进行中间距离聚类:

进行类平均法聚类:

进行重心法聚类:

进行ward.D聚类:

进行ward.D2聚类:


简述6种系统聚类法

(一)单链接聚类法:也称为最小距离聚类法,它通过计算两个簇中最近的成员之间的距离来确定簇之间的距离。该方法通常会产生长而细的簇,对异常值敏感。

(二)完全链接聚类法:也称为最大距离聚类法,它通过计算两个簇中最远的成员之间的距离来确定簇之间的距离。该方法通常会产生紧凑的簇,对异常值不敏感。

(三)平均链接聚类法:它通过计算两个簇中所有成员之间的平均距离来确定簇之间的距离。该方法可以在一定程度上平衡单链接和完全链接的缺点。

(四)中心链接聚类法:它通过计算两个簇的质心之间的距离来确定簇之间的距离。质心是指簇中所有成员的平均值。该方法产生的簇具有更加均衡的大小。

(五)Ward聚类法:它基于最小方差准则,通过计算将两个簇合并后整体的方差增加量来确定簇之间的距离。该方法倾向于产生方差相对较小的簇。

(六)类平均聚类法:它通过计算两个簇中所有成员之间的平均距离来确定簇之间的距离。类平均聚类法与平均链接聚类法类似,但不同于平均链接聚类法使用所有成员之间的距离,而是只使用两个簇之间的成员之间的距离。

实验实例和数据资料:

P212:2) 为了比较我国 31个省、市、自治区 1996年和2007年(数据见本章例7.2:d3.1)城镇居民生活消费的分布规律,根据调查资料作区域消费类型划分。并将1996年和2007年的数据进行对比分析。今收集了八个反映城镇居民生活消费结构的指标(1996年数据见表1和表2):

表1 八个反映城镇居民生活消费结构的指标

|-------------------------|----------------------------------------------------------------------------------|---------------------------------|
| 符号 | 指标 | 单位 |
| X1 X2 X3 X4 X5 X6 X7 X8 | 人均食品支出 人均衣着商品支出 人均家庭设备用品及服务支出 人均医疗保健支出 人均交通和通信支出 人均娱乐教育文化服务支出 人均居住支出 人均杂项商品和服务支出 | 元/人 元/人 元/人 元/人 元/人 元/人 元/人 元/人 |

表2 1996年全国31个省、市、自治区城镇居民消费数据

|-----|---------|---------|---------|---------|---------|---------|---------|---------|
| | X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 |
| 北京 | 8170.22 | 2794.87 | 1974.25 | 1717.58 | 4106.04 | 3984.86 | 2125.99 | 1401.08 |
| 天津 | 7943.06 | 1950.68 | 1205.62 | 1694.29 | 3468.86 | 2353.43 | 2088.62 | 1007.31 |
| 河北 | 4404.4 | 1488.11 | 977.46 | 1117.3 | 2149.57 | 1550.63 | 1526.28 | 426.29 |
| 山西 | 3676.65 | 1627.53 | 870.91 | 1020.61 | 1775.3 | 2065.44 | 1612.36 | 516.84 |
| 内蒙古 | 6117.93 | 2777.25 | 1233.39 | 1394.8 | 2719.92 | 2111 | 1951.05 | 943.72 |
| 辽宁 | 5803.9 | 2100.71 | 1145.57 | 1343.05 | 2589.18 | 2258.46 | 1936.10 | 852.69 |
| 吉林 | 4658.13 | 1961.2 | 908.43 | 1692.11 | 2217.87 | 1935.04 | 1932.24 | 627.3 |
| 黑龙江 | 5069.89 | 1803.45 | 796.38 | 1334.8 | 1661.35 | 1396.38 | 1543.29 | 556.16 |
| 上海 | 9822.88 | 2032.28 | 1705.47 | 1350.28 | 4736.36 | 4122.07 | 2847.88 | 1537.78 |
| 江苏 | 7074.11 | 2013 | 1378.85 | 1122 | 3135 | 3290 | 1564.3 | 794.00 |
| 浙江 | 8008.16 | 2235.21 | 1400.57 | 1244.37 | 4568.32 | 2848.75 | 2004.69 | 947.13 |
| 安徽 | 6370.23 | 1687.49 | 898.55 | 869.89 | 2411.16 | 1904.15 | 1633.55 | 480.16 |
| 福建 | 7424.67 | 1685.07 | 1416.94 | 935.5 | 3219.46 | 2448.36 | 2013.53 | 949.19 |
| 江西 | 5221.1 | 1566.49 | 1004.15 | 672.5 | 1812.78 | 1671.24 | 1414.89 | 471.58 |
| 山东 | 5625.94 | 2277.03 | 1269.65 | 1109.37 | 2474.83 | 1909.84 | 1780.07 | 665.52 |
| 河南 | 4913.87 | 1916.99 | 1281.06 | 1054.54 | 1768.28 | 1911.16 | 1315.28 | 660.81 |
| 湖北 | 6259.22 | 1881.85 | 1059.22 | 1033.46 | 1745.05 | 1922.83 | 1456.30 | 391.57 |
| 湖南 | 5583.99 | 1520.35 | 1146.65 | 1078.82 | 2409.83 | 2080.46 | 1529.50 | 537.51 |
| 广东 | 8856.91 | 1614.87 | 1539.09 | 1122.71 | 4544.21 | 3222.40 | 2339.12 | 893.95 |
| 广西 | 5841.16 | 1015.88 | 1086.46 | 776.26 | 2564.92 | 2093.99 | 1622.50 | 386.46 |
| 海南 | 6979.22 | 932.63 | 1030.79 | 734.28 | 2005.73 | 1923.48 | 1578.65 | 408.26 |
| 重庆 | 7245.12 | 2333.81 | 1325.91 | 1245.33 | 1976.19 | 1722.66 | 1376.15 | 588.70 |
| 四川 | 6471.84 | 1727.92 | 1196.65 | 1019.04 | 2185.94 | 1877.55 | 1321.54 | 542.99 |
| 贵州 | 4915.02 | 1401.85 | 1083.77 | 633.72 | 1870.08 | 1950.28 | 1496.49 | 351.66 |
| 云南 | 5741.01 | 1356.91 | 987.24 | 1085.46 | 2197.73 | 2045.29 | 1384.91 | 357.61 |
| 西藏 | 5889.48 | 1528.14 | 541.46 | 617.97 | 500.6 | 1551.34 | 963.99 | 638.89 |
| 陕西 | 6075.58 | 1915.33 | 1060.49 | 1310.19 | 2019.08 | 2208.06 | 1465.81 | 626.16 |
| 甘肃 | 5162.87 | 1747.32 | 939.48 | 1117.42 | 1503.61 | 1547.65 | 1596 | 406.37 |
| 青海 | 4777.1 | 1675.06 | 890.08 | 813.13 | 1742.96 | 1471.98 | 1684.78 | 484.41 |
| 宁夏 | 4895.2 | 1737.21 | 1001.82 | 1158.83 | 2503.65 | 1868.42 | 1497.98 | 657.99 |
| 新疆 | 5323.5 | 2036.94 | 977.8 | 1179.77 | 2210.25 | 1597.99 | 1275.35 | 604.55 |

试对该数据进行聚类分析。​​​​​​​

上机实验步骤:

1.准备数据:根据提供的消费数据,将数据保存在一个Excel文件中,并确保每个地区在所有指标上都有完整的数据。将文件命名为"1996年数据.xlsx"。

  1. 加载数据并计算距离矩阵
R 复制代码
data=read.xlsx('1996年数据.xlsx',rowNames=T);data  
dist_matrix <- dist(data)  

结果如下

进行最短距离聚类:

R 复制代码
j1 <- hclust(dist_matrix, method = "single")  
plot(j1, main = "最短距离聚类树状图")  

结果如下

进行最长距离聚类:

R 复制代码
j2 <- hclust(dist_matrix, method = "complete")  
plot(j2, main = "最长距离聚类树状图")  

结果如下

进行中间距离聚类:

R 复制代码
j3 <- hclust(dist_matrix, method = "median")  
plot(j3, main = "中间距离聚类树状图")  

结果如下

进行类平均法聚类:

R 复制代码
j4 <- hclust(dist_matrix, method = "average")  
plot(j4, main = "类平均法聚类树状图")  

结果如下

进行重心法聚类:

R 复制代码
j5 <- hclust(dist_matrix, method = "centroid")  
plot(j5, main = "重心法聚类树状图")

结果如下

进行ward.D 聚类:

R 复制代码
j6 <- hclust(dist_matrix, method = "ward.D")  
plot(j6, main = "ward.D聚类树状图")  

结果如下

进行ward.D2 聚类:

R 复制代码
j7 <- hclust(dist_matrix, method = "ward.D2")  
plot(j7, main = "ward.D2聚类树状图") 

结果如下

相关推荐
风中飘爻17 分钟前
JavaScript:BOM编程
开发语言·javascript·ecmascript
kyle~19 分钟前
ROS2---std_msgs基础消息包
开发语言·python·机器人·ros·机器人操作系统
满怀101520 分钟前
【NumPy科学计算引擎:从基础操作到高性能实践】
开发语言·python·numpy
我命由我123451 小时前
35.Java线程池(线程池概述、线程池的架构、线程池的种类与创建、线程池的底层原理、线程池的工作流程、线程池的拒绝策略、自定义线程池)
java·服务器·开发语言·jvm·后端·架构·java-ee
&zzz1 小时前
Python生成exe
开发语言·python
Chandler241 小时前
Go:方法
开发语言·c++·golang
CopyLower2 小时前
分布式ID生成方案的深度解析与Java实现
java·开发语言·分布式
随便@_@3 小时前
基于MATLAB/simulink的信号调制仿真--AM调制
开发语言·matlab·simulink·移动仿真
爱代码的小黄人3 小时前
深入解析系统频率响应:通过MATLAB模拟积分器对信号的稳态响应
开发语言·算法·matlab
vsropy3 小时前
matlab安装python API 出现Invalid version: ‘R2022a‘,
开发语言·python