R语言数据探索和分析2-人口统计信息聚类分析

1.数据介绍

本文提供的数据包含了不同地区的人口统计信息,这些数据来自于统计局,本文针对这些数据用于进行聚类分析。数据中的特征包括地区名称、人口总数、出生率、死亡率、性别比例、老龄化比例以及青少年比例等。

读取数据

代码加数据

代码加报告

library(ggplot2)
library(stats)

data <- read.csv("data.csv")
data

从上面可以看到,横向依次是2022年人口总数,出生率,死亡率,性别比,老龄占比,少年占比,纵向为各个省份。

2.人口数据结构分析

str(data)

这个输出展示了数据框中包含7个变量(列),包括地区名称、人口数量、出生率、死亡率、性别比例、老龄化比例和青少年比例。每个变量的数据类型也被显示出来,如 int 表示整数,num 表示数值型数据,Factor 表示因子类型等。

使用summary函数获取数据框的汇总统计信息


# 获取数据框的汇总统计信息
summary(data)

接下来进行可视化:

# 绘制每个特征的箱线图
par(mfrow = c(2, 4))  # 设置画布布局

for (i in 2:7) {  # 假设特征是从第二列到第七列
  boxplot(data[, i], main = names(data)[i], ylab = names(data)[i])  # 绘制箱线图
}

可以画出每个特征的箱线图,每个箱线图显示了该特征的数据分布情况,其中:箱体:包含了数据的 25% 至 75% 分位数,箱体长度表示数据的分散程度。中位线:位于箱体内部的线表示数据的中位数。须:延伸出箱体的线段(即箱线图上方和下方的线),表示数据的分布范围。

# 创建散点图矩阵
# 绘制每个特征的散点图矩阵
pairs(data[, 2:7], main = "Scatterplot Matrix of Features")  # 假设特征是从第二列到第七列

散点图矩阵中,对角线是每个特征的直方图,非对角线上的图表是两两特征之间的散点图。从图上可以看出,大多都是非线性关系。同时,也能绘制热力图,来看哥哥特征之间的关系。

# 计算特征之间的相关系数矩阵
correlation_matrix <- cor(data[, 2:7])  # 假设特征是从第二列到第七列

# 创建特征之间的热力图
heatmap(correlation_matrix, 
        Colv = NA, Rowv = NA,
        xlab = "Features", ylab = "Features",
        main = "Heatmap of Feature Correlations")

热力图以颜色的不同深浅来表示特征之间的相关性,颜色越深表示相关性越高,颜色越浅表示相关性越低。对角线上一般会是深色,因为特征与自身的相关性为最高,所以通常不会进行聚类。

3.聚类分析

本文选择k均值聚类K均值聚类(K-means clustering)是一种常用的无监督学习算法,它将数据集分成K个簇,其中每个样本属于与其最近的均值(质心)所代表的簇。

features_for_clustering <- data[, 2:7]
# 对数据进行标准化(可选,但通常在聚类前会进行)
scaled_features <- scale(features_for_clustering)
# 执行K均值聚类,假设要分成4个簇
k <- 4
kmeans_model <- kmeans(scaled_features, centers = k)
# 聚类结果
cluster_labels <- kmeans_model$cluster
# 将聚类结果添加到原始数据中
data_with_clusters <- cbind(data, Cluster = cluster_labels)
# 显示聚类结果
data_with_clusters
# 显示每个簇的汇总统计信息
print(data_with_clusters)

代码中的 features_for_clustering <- data[, 2:7] 将选择数据集中的这些列作为聚类的特征。然后使用K均值算法对这些特征进行聚类,将数据集划分为假设的3个簇。

聚类分析的目的是根据这些特征的数值情况,找到它们之间的相似性,将具有相似特征值模式的样本分为同一簇。聚类的结果将每个样本分配到了某个簇中,并在 Cluster 列中标记了每个样本所属的簇编号。K均值聚类中的K值是一个需要预先设定的超参数,代表着聚类的数量。选择K的值通常是一个挑战,因为并没有一个确定的规则来确定最佳的K值,它通常是基于数据的特点和具体的问题而定的。

要画出聚类结果的可视化图,可以选择两个特征并根据聚类结果对它们进行散点图可视化。以下是一个示例代码,假设你选择了前两列作为特征,并使用ggplot2库进行可视化:

library(ggplot2)

# 假设数据集中的第一列和第二列是你选择的特征列

feature1 <- data_with_clusters[, 6]
feature1
feature2 <- data_with_clusters[, 3]
feature2

# 创建散点图,以特征1和特征2为坐标,使用Cluster列的不同值来区分颜色
ggplot(data_with_clusters, aes(x = feature1, y = feature2, color = factor(Cluster))) +
  geom_point() +
  labs(x = "Aging(%)", y = "Birthrate", color = "Cluster") +
  ggtitle("Cluster Visualization based on Feature 1 and Feature 2") +
  theme_minimal()

这段代码创建一个散点图,横坐标为第一个特征人口数量,纵坐标为第二个特征出生率,不同簇的样本以不同颜色显示。可以从上图看出,根据相应的特征我们将整体分别聚成了4类.可以从上面看到,紫色第四类分布最为广泛,其次是绿色、蓝色和红色。

总结

针对这个案例,涉及对中国各地区的人口统计数据进行聚类分析。通过分析人口数量、出生率、死亡率、性别比例、老龄化比例以及青少年比例等特征,可以获得一些有趣的启示和结论:

区域特征差异:中国各地区在人口统计特征上存在明显的差异。不同省份可能有不同的人口数量、出生率和死亡率等数据,这反映了各地区的经济、文化、教育和社会发展状况的差异。聚类分析:通过聚类分析可以将地区进行分类,从而辅助了解地区之间的相似性和差异性。聚类分析是一种利用数据进行洞察和决策支持的强大工具。通过深入分析人口数据,可以为政府、社会组织和企业等提供关键信息,从而更好地服务社会。

  • 33
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值