本项目分析中国私人企业家政治地位获得的性别差异,基于2016年中国私人企业调查(CPES)数据。该项目遵循prodigenr文件夹结构,用于可重复性研究。
- 测量私人企业家在人大、政协任职中的性别差距
- 分析政治忠诚、个人能力和家庭背景等机制的性别化效应
- 检验"女性贬值"与"女性例外"两种理论逻辑
- 女性企业家在政治参与中存在显著劣势
- 政治忠诚和个人能力对女性的边际收益更高(支持"女性例外"逻辑)
- 家庭背景对女性的补偿性优势更为明显
当前问题: Logit模型设定过于简化,未充分考虑数据结构的复杂性
具体修改建议:
# 采用多层次混合效应模型
library(lme4)
# 考虑省份和行业的随机效应
model <- glmer(political_attainment ~ female * mechanisms + controls +
(1|province) + (1|industry),
family = binomial, data = cpes_data)
# 或使用条件Logit模型
library(survival)
model <- clogit(political_attainment ~ female * mechanisms + controls +
strata(province_industry), data = cpes_data)当前状态: ✅ 已测试但未实施
具体实施方案:
a) 工具变量策略:(未来实施建议)
# 利用地区传统文化作为工具变量
iv_model <- ivreg(political_attainment ~ female * mechanisms + controls |
historical_female_status + mechanisms + controls)b) 倾向得分匹配:(未来实施建议)
library(MatchIt)
match_data <- matchit(female ~ age + education + firm_size + industry,
data = cpes_data, method = "nearest")b) 倾向得分匹配:
library(MatchIt)
# 匹配具有相似特征的男女企业家
match_data <- matchit(female ~ age + education + firm_size + industry,
data = cpes_data, method = "nearest")c) 回归不连续设计(如果存在政策阈值):
# 如果存在年龄、资产等阈值
library(rdrobust)
rd_result <- rdrobust(political_attainment, age_cutoff, c = threshold)具体实施方案:
a) 安慰剂检验:
# 使用随机分配的"假"性别变量
placebo_test <- replicate(1000, {
data_temp <- cpes_data
data_temp$female_fake <- sample(data_temp$female)
coef(glm(political_attainment ~ female_fake * mechanisms,
family = binomial, data = data_temp))["female_fake:mechanisms"]
})b) 样本敏感性分析:
# 排除特定省份/行业
sensitivity_results <- map(provinces, ~{
data_subset <- filter(cpes_data, province != .x)
glm(political_attainment ~ female * mechanisms,
family = binomial, data = data_subset)
})c) 测量误差检验:
# 对关键变量进行噪声添加测试
measurement_error_test <- map(seq(0.1, 0.3, 0.05), ~{
data_temp <- cpes_data
data_temp$mechanism_noise <- data_temp$mechanism + rnorm(nrow(data_temp), 0, .x)
glm(political_attainment ~ female * mechanism_noise,
family = binomial, data = data_temp)
})具体改进:
a) 多重假设检验修正:
library(p.adjust)
# 对所有交互项进行FDR修正
p_values_adjusted <- p.adjust(interaction_p_values, method = "fdr")b) Bootstrap置信区间:
library(boot)
boot_results <- boot(data = cpes_data,
statistic = interaction_effect_function,
R = 1000)
boot.ci(boot_results, type = "perc")Gender_Political/
├── data/ # 处理后的数据文件
├── data-raw/ # 原始数据文件(CPES2016.dta, 历史数据等)
├── doc/ # 研究报告、论文草稿和相关文档
├── R/ # R分析脚本
│ ├── clean_data.R # 数据清理和变量生成
│ ├── build_model.R # 统计建模
│ ├── classify_social_class.R # 社会阶层分类
│ └── funs/ # 工具函数
├── plots/ # 图表输出
├── results/ # 分析结果和模型输出
├── CLAUDE.md # Claude Code项目说明
├── DESCRIPTION # R包依赖管理
└── README.md # 项目说明文档
- 原始数据 (
data-raw/CPES2016.dta) → 数据清理 (R/clean_data.R) → 清理数据 (data/) - 清理数据 → 统计建模 (
R/build_model.R) → 模型结果 - 结果 → 可视化和报告
female: 核心解释变量(性别指示器)npc,cppcc,npc_cppcc: 结果变量(政治地位)- 控制变量包括教育、年龄、收入、党员身份等
- 使用
fixest::feglm()进行固定效应Logistic回归 - 控制类别、行业和省份固定效应
- 采用
setFixest_fml()自定义公式定义
如果依赖已通过usethis::use_package("packagename")在DESCRIPTION文件中管理,
打开Gender_Political.Rproj文件并在控制台运行以下命令即可安装依赖:
# install.packages("remotes")
remotes::install_deps()- 数据处理: tidyverse, haven, labelled, janitor
- 统计建模: fixest (固定效应logistic回归)
- 数据可视化: ggplot2
- 描述统计: skimr, psych, gtsummary
- 路径管理: here
- 数据插补: simputation
- 从
R/clean_data.R开始数据预处理 - 运行
R/build_model.R进行统计建模 - 使用
R/目录中的其他脚本进行特定分析
关于该文件夹和文件工作流程的更多信息,请查看prodigenr在线文档。