用R语言探索城镇居民消费结构

城镇居民消费水平通常用8项指标来描述: 人均粮食支出 x1(元/人),人均副食支出 x2(元/人),人均烟、酒、茶支出 x3(元/人),人均其他副食支出 x4(元/人),人均衣着商品支出 x5(元/人),人均日用品支出 x6(元/人),人均燃料支出 x7(元/人),人均非商品支出 x8(元/人)。这8项指标间存在着一定的相关性。为了研究城镇居民的消费结构,需将相关性强的指标归并到一起,这实际上就是对指标进行聚类分析。

1. 数据准备

首先,我们需要准备数据。假设我们已经有了一份包含城镇居民消费水平8项指标的数据集,其中每一行代表一个城镇居民家庭,每一列代表一项指标。我们可以使用以下代码读取并查看部分数据:

# 读取数据
data <- read.csv('data.csv', header = TRUE)

# 查看前6行数据
head(data)

2. 数据标准化

由于8项指标的单位和数量级不同,为了让它们能够在聚类分析中被平等地对待,我们需要对数据进行标准化。这里采用z-score标准化方法,将每一项指标减去其均值,再除以标准差。这样处理后,每一项指标的均值为0,标准差为1。

# 标准化数据
data_std <- scale(data)

# 查看前6行数据
head(data_std)

3. 聚类分析

接下来,我们可以进行聚类分析。这里使用k-means算法进行聚类,将数据分为3个簇。聚类的结果保存在cluster.labels中。

# 进行聚类分析
set.seed(123)  # 设置随机种子,保证结果可重复
k <- 3  # 设置簇的数量
kmeans.fit <- kmeans(data_std, centers = k, nstart = 25)
cluster.labels <- kmeans.fit$cluster

# 查看聚类结果
cluster.labels

4. 结果可视化

最后,我们可以将聚类结果可视化。这里使用ggplot2包绘制散点图,将不同簇的数据用不同颜色表示。

# 可视化聚类结果
library(ggplot2)

# 将数据转化为数据框
data_df <- data.frame(data_std)
data_df$cluster <- as.factor(cluster.labels)

# 绘制散点图
ggplot(data_df, aes(x = x1, y = x2, color = cluster)) + geom_point() + 
  xlab('人均粮食支出') + ylab('人均副食支出')

image-20211103103606679

可以看到,k-means算法将城镇居民消费水平8项指标分为了3个簇,不同簇的数据在散点图上呈现出不同的颜色。通过观察散点图,我们可以初步判断不同簇的消费结构有所差异。


原文地址: https://www.cveoy.top/t/topic/oG3d 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录