聚类分析计算与分析(基于系统聚类法)
下面以一个具体的例子来实现实证分析。2008年我国其中31个省、市和自治区的农村居民家庭平均每人全年消费性支出。
根据原始数据对我国省份进行归类统计。
原始数据如下
注:数据来源—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]],]$地区)
}
china.hc <- hclust(distance,method="single") #聚类分析,最短距离法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类
china.hc <- hclust(distance,method="average") #聚类分析,类平均法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类
china.hc <- hclust(distance,method="centroid") #聚类分析,重心法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类
china.hc <- hclust(distance,method="median") #聚类分析,中间距离法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类
china.hc <- hclust(distance,method="ward") #聚类分析,离差平方和法
plot(china.hc, hang = -) #绘画系谱图
re <- rect.hclust(china.hc, k = ) #分为5类
以上实现了不同聚类分析计算两个类距离算法得出的不同结果。
根据离差平方和法可将我国省份作出以下分类:
第一类:北京 上海 浙江
第二类:江苏 福建 广东
第三类:江西 湖北 湖南 四川
第四类:天津 河北 辽宁 黑龙江 安徽 山东 河南 云南
第五类:山西 内蒙古 吉林 广西 海南 重庆 贵州 * 陕西 * 甘肃 青海 宁夏