1. 项目背景与数据价值
2000-2023年上市公司碳排放数据是环境经济学和公司金融领域的重要研究素材。这套数据之所以珍贵,在于它首次实现了对中国A股市场全部上市主体连续24年的碳排放强度追踪。与常见的行业层面排放数据不同,上市公司数据能精确到单一企业实体,使研究者能够建立"企业行为-碳排放-财务表现"的微观分析框架。
原始数据采集自三个权威渠道:企业社会责任报告中的定量披露、重点排污单位环境信息公开平台的企业自行监测数据、以及各省级生态环境厅的强制监测记录。我们通过统一的企业社会信用代码进行跨库匹配,确保每个数据点都能准确对应到上市公司主体。对于部分缺失年份,采用行业均值插补法进行合理填补,并在数据集中用特定标识标注。
2. 数据文件结构与字段说明
2.1 主数据集构成
数据集采用Stata 15格式存储(兼容后续版本),包含以下核心文件:
emission_main.dta:年度碳排放量面板数据financial_control.dta:配套财务控制变量industry_classification.dta:行业分类对照表merge_script.do:数据合并自动化脚本
2.2 关键变量释义
主数据集包含38个变量,核心字段包括:
变量名 类型 标签说明 company_id str10 上市公司统一信用代码 year int 报告年度(2000-2023) co2_total float 碳排放总量(吨) co2_intensity float 碳排放强度(吨/万元营收) scope1 float 直接排放量(燃烧+工艺) scope2 float 间接排放量(外购能源) disclosure byte 是否主动披露(1=是)3. Stata分析代码解析
3.1 数据预处理
* 缺失值处理 foreach var of varlist co2_* { replace `var' = industry_mean if missing(`var') & year>=2015 gen miss_`var' = missing(`var') } * 异常值修正 winsor2 co2_*, cuts(1 99) replace3.2 基础分析模型
固定效应模型代码示例:
xtset company_id year xtreg roa co2_intensity size lev growth i.year, fe robust est store m1 reghdfe roa co2_intensity, absorb(company_id year) vce(cluster company_id)3.3 动态效应分析
时间滞后模型构建:
* 生成滞后项 sort company_id year by company_id: gen l1_co2 = co2_intensity[_n-1] by company_id: gen l2_co2 = co2_intensity[_n-2] * 动态面板GMM xtabond2 roa l.roa l1_co2 l2_co2 size lev, gmm(l.roa) iv(size lev) twostep4. 典型分析场景实现
4.1 碳泄露检验
* 平行趋势检验 eventstudy co2_intensity, time(year) relative_to(2016) /// covariates(size lev) unit(company_id) cluster(company_id) * 三重差分模型 gen post = year>=2016 gen treated = industry_code==26 did_imputation co2_intensity treated post year company_id, /// horizons(0/5) pretrends(5)4.2 调节效应分析
* 生成交互项 gen co2_policy = co2_intensity * policy_dummy * 分层回归 xtreg roa c.co2_intensity##c.policy_dummy size lev, fe margins, dydx(co2_intensity) at(policy_dummy=(0 1))5. 可视化呈现技巧
5.1 行业排放趋势图
* 雷达图绘制 radar co2_intensity if year==2023, over(industry) /// title("2023年行业碳排放强度对比") legend(position(6)) * 动态气泡图 bubble co2_intensity size profit if inrange(year,2010,2023), /// by(year) size(abs(profit)) color(co2_intensity)5.2 回归结果输出
* 三线表制作 esttab m1 m2 using result.rtf, replace /// b(3) t(3) r2 ar2 star(* 0.1 ** 0.05 *** 0.01) /// title("碳排放财务效应回归结果")6. 常见问题解决方案
6.1 样本选择偏差
* Heckman两阶段修正 heckman roa co2_intensity size, /// select(disclosure = policy_dummy size lev) mills(mills_term)6.2 多重共线性诊断
* VIF检验 reg roa co2_intensity size lev growth estat vif * 岭回归替代 ridge roa co2_intensity size lev growth, lambda(0.5)6.3 非平衡面板处理
* 逆概率加权 teffects ipw (roa) (co2_high co2_intensity size lev), /// omodel(probit) vce(robust)7. 数据更新与扩展建议
建议研究者通过以下渠道获取增量数据:
- 企业年报补充:手工收集CSR报告中的最新排放数据
- 卫星数据融合:使用NASA的ODIAC数据集进行交叉验证
- 供应链延伸:通过企查查API获取子公司排放数据
更新脚本示例:
* 自动追加新数据 append using new_data.dta, force bysort company_id year: gen dup = _N drop if dup>1这套数据特别适合研究以下议题:
- 碳交易试点政策的企业响应
- 双碳目标下的资本开支变化
- ESG评级与排放行为的真实关联
- 气候信息披露的制度演进
实际操作中要注意排放数据的报告时滞问题——多数企业实际排放年份与披露年份存在1-2年延迟。建议在分析政策效应时,将关键事件年份向前调整1年作为稳健性检验。