如何用R计算男女meanbasepay均值差值以计算效应量
R计算两组均值差值与效应量操作教程(针对Glassdoor性别薪酬差距分析)
前置说明
你需要先确保已导入清洗后的数据集,假设数据集命名为glassdoor_df,包含两个核心字段:
- 性别列
gender,取值为male(男性)、female(女性) - 基本工资列
basepay,为数值型薪酬数据
第一步:计算男女基本工资均值差值
方法1:基础R实现(无需额外安装包,适合初学者)
# 分别提取男女对应的基本工资数据 male_pay <- glassdoor_df$basepay[glassdoor_df$gender == "male"] female_pay <- glassdoor_df$basepay[glassdoor_df$gender == "female"] # 计算两组均值,na.rm = TRUE表示跳过缺失值避免结果为NA mean_male <- mean(male_pay, na.rm = TRUE) mean_female <- mean(female_pay, na.rm = TRUE) # 计算均值差,结果为正则说明男性平均基本工资高于女性 pay_gap <- mean_male - mean_female # 输出结果 pay_gap
方法2:tidyverse实现(代码更简洁,适合后续拓展分析)
# 未安装包先执行:install.packages("tidyverse") library(tidyverse) # 分组统计均值 pay_mean_stat <- glassdoor_df %>% group_by(gender) %>% summarise(mean_basepay = mean(basepay, na.rm = TRUE)) # 计算差值 pay_gap <- pay_mean_stat$mean_basepay[pay_mean_stat$gender == "male"] - pay_mean_stat$mean_basepay[pay_mean_stat$gender == "female"] # 输出结果 pay_gap
第二步:计算效应量(科恩d值)
常用两组独立样本的效应量指标为科恩d值(Cohen's d),指标含义参考:
- 绝对值≈0.2:效应量小
- 绝对值≈0.5:效应量中等
- 绝对值≥0.8:效应量大
代码实现
# 未安装包先执行:install.packages("effsize") library(effsize) # 计算科恩d值 cohen_d_result <- cohen.d(male_pay, female_pay, na.rm = TRUE) # 输出结果 cohen_d_result
内容的提问来源于stack exchange,提问作者jhmton
相关产品推荐
相关产品推荐

