从0开始学习R语言--Day32--基尼系数

在分析连续变量的数据时,我们常常需要分析数据的各种指标,如离散程度、中位数、平均值、方差,甚至有时候需要对数据进行标准化后才能知道数据反映的结果。假设想要分析数据的分布以及研究数据中的特殊部分(如人群中最穷的人或最富的占比),可以尝试用基尼系数去判断。

基尼系数的好处在于,先对数据进行排序后,按照累次占比基于其权重,由于是分批累次加入数据所看到的影响,所以可以从变量曲线的斜率能够看到数据在人群里哪一部分是能造成较大影响的。

以下是一个例子:

library(ineq)      # 包含计算基尼系数的函数
library(ggplot2)

set.seed(123)  # 设置随机种子保证结果可重复

# 生成三个不同分布的收入数据
income_equal <- rep(50000, 1000)       # 完全平等分布
income_normal <- rnorm(1000, 50000, 10000)  # 正态分布
income_unequal <- c(rnorm(800, 30000, 5000), rnorm(200, 100000, 20000))  # 高度不平等分布

# 创建数据框
income_data <- data.frame(
  ID = 1:1000,
  Equal = income_equal,
  Normal = income_normal,
  Unequal = income_unequal
)

# 查看前几行数据
head(income_data)

# 计算三种收入分布的基尼系数
gini_equal <- Gini(income_data$Equal)
gini_normal <- Gini(income_data$Normal)
gini_unequal <- Gini(income_data$Unequal)

# 输出结果
cat("完全平等分布的基尼系数:", round(gini_equal, 3), "\n")
cat("正态分布的基尼系数:", round(gini_normal, 3), "\n")
cat("高度不平等分布的基尼系数:", round(gini_unequal, 3), "\n")

# 绘制三种分布的洛伦兹曲线
par(mfrow = c(1, 3))  # 设置1行3列的图形布局

plot(Lc(income_data$Equal), main = "完全平等分布", col = "blue")
plot(Lc(income_data$Normal), main = "正态分布", col = "green")
plot(Lc(income_data$Unequal), main = "高度不平等分布", col = "red")

par(mfrow = c(1, 1))  # 恢复默认图形布局

# 将数据转换为长格式以便绘图
library(tidyr)
income_long <- pivot_longer(income_data, cols = -ID, 
                            names_to = "Distribution", 
                            values_to = "Income")

# 绘制直方图
ggplot(income_long, aes(x = Income, fill = Distribution)) +
  geom_histogram(bins = 30, alpha = 0.6, position = "identity") +
  facet_wrap(~Distribution, scales = "free") +
  labs(title = "不同收入分布的直方图比较",
       x = "收入", y = "频数") +
  theme_minimal()

输出:

完全平等分布的基尼系数: 0
正态分布的基尼系数: 0.111 
高度不平等分布的基尼系数: 0.308

从输出可以更直观地看到,所画出的洛伦兹曲线(横轴是由小到大的数据组数量,纵轴是其所占有的收入)越接近对角线,说明数据的分配越平等,即越接近线性,从而可以在不受具体数值的影响下看到数据的分布特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值