R语言简单实现聚类分析计算与分析(基于系统聚类法)

时间:2023-03-09 16:53:27
R语言简单实现聚类分析计算与分析(基于系统聚类法)

聚类分析计算与分析(基于系统聚类法)

下面以一个具体的例子来实现实证分析。2008年我国其中31个省、市和自治区的农村居民家庭平均每人全年消费性支出。

根据原始数据对我国省份进行归类统计。

原始数据如下

R语言简单实现聚类分析计算与分析(基于系统聚类法)

注:数据来源—www.stats.gov.cn(*国家统计局)

代码如下:

#读入数据
china <- read.table("F:\\2008年我国其中31个省、市和自治区的农村居民家庭平均每人全年消费性支出.txt",header=TRUE)
distance <- dist(china) #计算距离
china.hc <- hclust(distance) #聚类分析,最长距离法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

re
for (i in 1:5) {
print(paste("第",i,"类"))
print(china[re[[i]],]$地区)
}

R语言简单实现聚类分析计算与分析(基于系统聚类法)

china.hc <- hclust(distance,method="single") #聚类分析,最短距离法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

R语言简单实现聚类分析计算与分析(基于系统聚类法)

china.hc <- hclust(distance,method="average") #聚类分析,类平均法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

R语言简单实现聚类分析计算与分析(基于系统聚类法)

china.hc <- hclust(distance,method="centroid") #聚类分析,重心法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

R语言简单实现聚类分析计算与分析(基于系统聚类法)

china.hc <- hclust(distance,method="median") #聚类分析,中间距离法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

R语言简单实现聚类分析计算与分析(基于系统聚类法)

china.hc <- hclust(distance,method="ward") #聚类分析,离差平方和法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类

R语言简单实现聚类分析计算与分析(基于系统聚类法)

以上实现了不同聚类分析计算两个类距离算法得出的不同结果。

根据离差平方和法可将我国省份作出以下分类:

第一类:北京 上海 浙江

第二类:江苏 福建 广东

第三类:江西 湖北 湖南 四川

第四类:天津   河北   辽宁   黑龙江 安徽   山东   河南   云南

第五类:山西   内蒙古 吉林   广西   海南   重庆   贵州   *   陕西   *   甘肃   青海   宁夏