如何解读R语言中fviz_cluster()结果及聚类的实际含义?
如何解读K-Means聚类结果,明确聚类实际含义?
针对你用K-Means分析地缘政治下企业税率、财政收支平衡、税收收入占GDP比重的场景,以下是直接落地的解读方法,附R代码实现:
1. 还原聚类的原始变量均值,获取实际业务含义
你当前的K-Means是基于标准化后的数据运行的,标准化值无法直接对应实际指标的量级,必须转回原始尺度计算每个聚类的特征均值:
# 将聚类标签合并到原始数据 data$cluster <- kmeans_vis$cluster # 按聚类分组,计算原始变量的均值(替换为你的实际变量名:企业税率、财政收支平衡、税收GDP占比等) cluster_profiles <- aggregate(data[, c("corporate_tax", "fiscal_balance", "tax_gdp_ratio")], by = list(Cluster = data$cluster), FUN = mean) # 打印聚类特征概览 print(cluster_profiles)
通过这个结果,你能直接看到每个聚类在核心指标上的实际水平,比如“聚类1的企业税率均值25%,财政收支平衡为正,税收GDP占比30%”。
2. 可视化聚类间的特征差异,定位核心区分点
用箱线图或分组柱状图直观展示每个变量在不同聚类的分布,快速找到聚类的核心特征:
# 箱线图:展示单个变量在各聚类的分布(以企业税率为例) ggplot(data, aes(x = factor(cluster), y = corporate_tax, fill = factor(cluster))) + geom_boxplot() + labs(title = "各聚类的企业税率分布", x = "聚类", y = "企业税率(%)") + theme(plot.title = element_text(hjust = 0.5)) # 分组柱状图:展示所有核心变量的聚类均值 library(tidyr) cluster_profiles_long <- pivot_longer(cluster_profiles, cols = -Cluster, names_to = "Indicator", values_to = "Mean") ggplot(cluster_profiles_long, aes(x = factor(Cluster), y = Mean, fill = Indicator)) + geom_col(position = "dodge") + labs(title = "各聚类核心指标均值对比", x = "聚类", y = "指标均值") + theme(plot.title = element_text(hjust = 0.5))
通过这类图,你能快速识别:比如聚类2的财政收支平衡显著低于其他聚类,聚类3的税收GDP占比最高。
3. 结合地缘政治标签(Region)关联聚类含义
你已经有Region变量,可以交叉分析聚类与地区的对应关系,结合地缘政治背景赋予聚类实际意义:
# 计算各地区在每个聚类中的占比 cluster_region_dist <- table(data$Region, data$cluster) %>% prop.table(margin = 1) %>% # 按地区计算占比 as.data.frame() %>% rename(Region = Var1, Cluster = Var2, Proportion = Freq) # 可视化地区-聚类的分布 ggplot(cluster_region_dist, aes(x = Region, y = Proportion, fill = factor(Cluster))) + geom_col(position = "stack") + labs(title = "各地区的聚类分布占比", x = "地区", y = "占比") + theme(axis.text.x = element_text(angle = 45, hjust = 1), plot.title = element_text(hjust = 0.5))
比如如果聚类4主要由欧盟国家组成,且该聚类的企业税率高、财政收支平衡稳定,就可以命名为“欧盟高税收稳健型经济体”。
4. 验证聚类稳定性(可选)
如果想确保聚类结果不是随机的,可以用bootstrap重采样或换用不同聚类算法(比如层次聚类)验证:
# 层次聚类验证 hc <- hclust(dist(scale(data[,3:6])), method = "ward.D2") hc_clusters <- cutree(hc, k = 4) # 对比K-Means和层次聚类的一致性 table(kmeans_vis$cluster, hc_clusters)
如果两种算法的聚类结果高度重合,说明你的聚类特征是稳定的,含义更可信。
内容的提问来源于stack exchange,提问作者Renuka Bhat
相关产品推荐
相关产品推荐

