2007~2014年工企碳排放面板数据(根据与税调数据匹配结果估算,分省份电网排放因子)

今天给大家分享一份 2007~2014 年工企碳排放面板数据(根据与税调数据匹配结果估算,分省份电网排放因子)。该数据通过将工业企业(工企)与全国税收调查数据(税调)进行企业名称匹配,获取其能源消费信息后,采用排放因子法估算碳排放量。与 RStata 数据中心此前发布的「全国统一电力因子(7.5 吨CO₂/万千瓦时)」版本不同,本版将电力碳排放因子替换为各企业所在省份的电网平均二氧化碳排放因子后重新计算(煤炭、石油、天然气系数不变)。

之前统一电力因子(7.5 吨CO₂/万千瓦时)的版本在这里:

2007~2014 年工企碳排放面板数据(根据与税调数据匹配结果估算):https://rstata.duanshu.com/#/brief/course/a754d9565c994fb3b325146d9dd66d47

该碳排放测算方法来自吴超鹏等(2025)发表于《中国工业经济》的论文《高管股权激励与企业碳排放:绿色发展背景下的企业激励机制研究》。论文原文中对碳排放测算方法的描述(第144页脚注②)如下:

本文的碳排放量指标参考现有文献(Lee et al., 2022; 周泽将等, 2022)的做法,根据全国税收调查数据中的企业用电量、煤炭、石油和天然气的消费量数据,利用排放系数法计算得到。

排放系数

论文中使用的煤炭、石油、天然气碳排放系数与论文一致;电力排放因子改为按企业所在省份的电网平均值取值(本版相对原版的唯一方法学改动):

能源品种 碳排放系数 消费量单位
电力 按企业所在省份电网平均二氧化碳排放因子(吨CO₂/万千瓦时)① 万千瓦时
煤炭 1.89 吨CO2/吨 吨
石油 3.02 吨CO2/吨 吨
天然气 21.68 吨CO2/万标立方米 万标立方米

① 电力排放因子取自生态环境部《2023 年电力二氧化碳排放因子》表3(省级),原始单位为 kgCO₂/kWh,换算为吨CO₂/万千瓦时 = kgCO₂/kWh × 10(例如北京 0.5554 → 5.554)。覆盖 30 个省级行政区(不含西藏、香港、澳门、台湾);未匹配到地理位置或表3未覆盖的观测回退全国均值 7.5。

分省份电网排放因子说明(与全国统一因子版本的差异)

本数据集是 RStata 数据中心在原始「全国统一电力因子 7.5」版本基础上,将电力因子替换为各企业所在省份电网平均排放因子重新计算的版本。各企业所在省份的判定依据如下:

  • 工业企业(工企):地理位置/工企地理位置面板/YYYY.dta 的”经纬度判定省份”(省代码),按 (gqid, 年份) 关联。

工企地理位置信息在这里:

1998~2014 年工业企业数据库地理位置数据(含经纬度、所处省市区县、南北方属性、东西部属性及相关距离):https://rstata.duanshu.com/#/brief/course/1c0d065e272c46b49cc528a445c2d3d9

重算后各数据集的覆盖情况与碳排放总量变化(对比全国统一 7.5 版本)如下:

数据集 观测值 使用省级因子 回退 7.5 碳排放总量变化
工业企业(工企)2007–2014 1,070,500 99.94% 0.06% (653) −19.51%(2.0566e11 → 1.6552e11 吨)

工企数据样本中电力占比较高,采用分省份电网因子后加权平均电力因子明显低于 7.5,因此总量下降约 19.5%。

数据处理流程

整个测算流程分为以下几个步骤:

  1. 读取税调企业能源消费数据(2007~2020 年各税调企业电力、煤炭、燃油、天然气消费量面板数据)
  2. 按 (gqid, 年份) 关联工企地理位置获取省份,并以省级电网排放因子计算电力碳排放(其余能源按固定系数)
  3. 对税调企业层面的碳排放进行缩尾处理(1% 和 99% 分位数),总碳排放下限取 0
  4. 将工企与税调数据匹配结果(去重后)与碳排放数据合并
  5. 按企业法人代码(gqid)-年份汇总碳排放
  6. 计算对数和反双曲正弦变换变量,生成最终面板数据

需要注意的是,工企数据的样本期间为 2007~2014 年(受工企数据库本身的年份范围限制),但底层使用的税调能源消费数据覆盖了 2007~2020 年。

数据概览

该数据为工业企业层面的碳排放面板数据(2007~2014 年),包含以下变量:

  • gqid:工业企业法人代码
  • 年份:观测年份
  • carbon_emission_ton:碳排放量(吨 CO2)
  • ln_carbon_emission:碳排放量加 1 取自然对数
  • asinh_carbon_emission:碳排放量的反双曲正弦变换
  • carbon_emission_ton_winsor:缩尾处理后的碳排放量(吨 CO2)
  • ln_carbon_emission_winsor:缩尾后碳排放量加 1 取自然对数
  • asinh_carbon_emission_winsor:缩尾后碳排放量的反双曲正弦变换
  • coal_co2:煤炭碳排放量(吨 CO2)
  • oil_co2:石油碳排放量(吨 CO2)
  • gas_co2:天然气碳排放量(吨 CO2)
  • electricity_co2:电力碳排放量(吨 CO2)
  • 各能源消费量(电力:万千瓦时;煤炭、石油:吨;天然气:万标立方米)
  • n_matched_firms:匹配到的税调企业数量

数据预览如下:

图表展示

下图展示了 2007~2014 年工业企业平均碳排放量的时间趋势:

下图展示了工业企业碳排放量的年度箱线图:

下图展示了工业企业碳排放量的分布直方图:

处理代码

下面展示使用 R 语言计算工企碳排放(分省份电网排放因子)的核心代码:

# 加载包
library(haven)
library(dplyr)
library(readxl)
library(labelled)

# 1. 读取省级电力排放因子(生态环境部 2023 年表3),kgCO2/kWh → 吨CO2/万千瓦时
prov_factor <- read_xlsx("表3_省级电力平均二氧化碳排放因子.xlsx") %>%
mutate(电力因子 = `电力排放因子(kgCO2/kWh)` * 10)

# 2. 读取数据
energy_data <- read_dta("2007~2020年各税调企业电力、煤炭、燃油、天然气消费量面板数据.dta")
match_data <- read_dta("2007~2014年工企与税调数据匹配结果_去重.dta")

# 3. 工企:按 (gqid, 年份) 关联工企地理位置面板的省代码(示例取某年,实际需逐年合并)
geo <- read_dta("地理位置/工企地理位置面板/2007.dta") %>%
select(gqid, 年份, 省代码)
energy_data <- energy_data %>%
left_join(geo, by = c("gqid", "年份")) %>%
left_join(prov_factor, by = "省代码")

# 4. 计算各能源碳排放:电力改用省级因子,缺失回退 7.5;总量下限取 0
carbon_emission <- energy_data %>%
mutate(
电力因子_实际 = if_else(is.na(电力因子), 7.5, 电力因子),
electricity_co2 = `电力消费量_万千瓦时` * 电力因子_实际,
coal_co2 = `煤炭消费量_吨` * 1.89,
oil_co2 = `油消费量_吨` * 3.02,
gas_co2 = `天然气_万标立方米` * 21.68,
total_co2_ton = pmax(coal_co2 + oil_co2 + gas_co2 + electricity_co2, 0)
)

# 5. 缩尾处理(1%和99%分位数)
carbon_emission <- carbon_emission %>%
mutate(total_co2_ton_winsor = case_when(
total_co2_ton < quantile(total_co2_ton, 0.01, na.rm = TRUE) ~ quantile(total_co2_ton, 0.01, na.rm = TRUE),
total_co2_ton > quantile(total_co2_ton, 0.99, na.rm = TRUE) ~ quantile(total_co2_ton, 0.99, na.rm = TRUE),
TRUE ~ total_co2_ton
))

# 6. 将匹配结果与碳排放数据合并,按企业-年份汇总
firm_carbon <- match_data %>%
left_join(carbon_emission, by = "sdid") %>%
filter(!is.na(total_co2_ton))

firm_carbon_summary <- firm_carbon %>%
group_by(gqid, 年份) %>%
summarise(
carbon_emission_ton = sum(total_co2_ton, na.rm = TRUE),
carbon_emission_ton_winsor = sum(total_co2_ton_winsor, na.rm = TRUE),
.groups = "drop"
)

# 7. 计算对数和反双曲正弦变换
firm_carbon_final <- firm_carbon_summary %>%
mutate(
ln_carbon_emission = log(carbon_emission_ton + 1),
ln_carbon_emission_winsor = log(carbon_emission_ton_winsor + 1),
asinh_carbon_emission = asinh(carbon_emission_ton),
asinh_carbon_emission_winsor = asinh(carbon_emission_ton_winsor)
)

# 保存结果
write_dta(firm_carbon_final, "2007~2014年工企碳排放面板数据(分省份电网排放因子).dta")

附件中也提供了该数据的处理代码供参考:

数据引用格式

由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:

RStata 数据中心: 2007~2014年工企碳排放面板数据(根据与税调数据匹配结果估算,分省份电网排放因子). 2026. https://tidyfriday.cn/rsdb2/

英文文献可以使用下面的格式引用:

RStata Data Center: Panel Data on Carbon Emissions of Industrial Enterprises (Estimated from Matching with Tax-Survey Data, by Province Grid Emission Factors), 2007–2014. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

2007~2014 年工企与税调数据匹配结果:https://rstata.duanshu.com/#/course/5dfa648726c4469481e2840a6273c9d2

中国各省市碳排放量是如何计算的?R 语言栅格数据转面板数据:https://rstata.duanshu.com/#/course/75de598dcfcc4ad0b9ff28bff27f6b83

使用 R 语言整理中国省份碳排放面板数据:https://rstata.duanshu.com/#/course/3c2e9404d17243a9b9e5ce51046675cd

点击这里跳转到 RStata 短书平台获取附件:2007~2014年工企碳排放面板数据(根据与税调数据匹配结果估算,分省份电网排放因子)

评论