目录
简述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"。
2. 加载数据并计算距离矩阵
data=read.xlsx('1996年数据.xlsx',rowNames=T);data
dist_matrix <- dist(data)
结果如下
进行最短距离聚类:
j1 <- hclust(dist_matrix, method = "single")
plot(j1, main = "最短距离聚类树状图")
结果如下
进行最长距离聚类:
j2 <- hclust(dist_matrix, method = "complete")
plot(j2, main = "最长距离聚类树状图")
结果如下
进行中间距离聚类:
j3 <- hclust(dist_matrix, method = "median")
plot(j3, main = "中间距离聚类树状图")
结果如下
进行类平均法聚类:
j4 <- hclust(dist_matrix, method = "average")
plot(j4, main = "类平均法聚类树状图")
结果如下
进行重心法聚类:
j5 <- hclust(dist_matrix, method = "centroid")
plot(j5, main = "重心法聚类树状图")
结果如下
进行ward.D聚类:
j6 <- hclust(dist_matrix, method = "ward.D")
plot(j6, main = "ward.D聚类树状图")
结果如下
进行ward.D2聚类:
j7 <- hclust(dist_matrix, method = "ward.D2")
plot(j7, main = "ward.D2聚类树状图")
结果如下