商道融绿ESG评级DID面板数据(2009-2022年)

随着ESG信息越来越受到重视,一些第三方评级机构开始推出ESG评级产品,目前在Wind数据库能够查到华证、富时罗素、商道融绿、社会价值投资联盟以及Wind自有的ESG评级数据等。其中,商道融绿是中国最早发布ESG评级数据的机构,也是国内首家签署联合国责任投资原则(UNPRI)的服务机构,其发布《中国责任投资年度报告》、《A股上市公司ESG评级分析报告》等受到资本市场广泛关注,具有较高权威性。

2015年,商道融绿开始对沪深300成分股进行ESG评价并发布ESG评价指数,此后,随着上市公司关于ESG信息披露的增加,越来越多的公司被纳入商道融绿ESG评级体系中,2020年已覆盖1043家上市公司,这些ESG评级数据为构建多时点双重差分法中的处理组与对照组提供了便利。

数据名称:ESG-构建多期DID

数据年份:2009-2022年

数据样本:45899条

整理说明:以商道融绿ESG评级数据为基准,若商道融绿当年发布了企业的评级数据,则为处理组,ESG赋值为1,否则为0

数据来源:商道融绿ESG、上市公司年报

构建方法:

Excel形式

Stata数据形式

参考文献:

胡洁,于宪荣,韩一鸣.ESG评级能否促进企业绿色转型?——基于多时点双重差分法的验证[J/OL].数量经济技术经济研究:1-22[2023-06-28].

【下载→

方式一(推荐):主页 *个人* 简介

经管数据集-CSDN博客

方式二:数据下载方式汇总-CSDN博客

<think>好的,我现在需要帮助用户找到实现多时点DID(双重差分法)的代码,特别是使用面板数据的情况。用户提到他们参考了连玉君老师和谢申祥老师的资料,之前尝试过PSM-DID但遇到困难,现在希望得到具体的代码实现,可能用Stata或Python。 首先,我需要确认多时点DID的基本概念和常用方法。多时点DID指的是处理组在不同时间点接受处理的情况,与传统的两期DID不同,这里处理时间可能在不同个体间不同。常见的模型包括双向固定效应模型(Two-way FE)、异质性处理效应的估计方法如Callaway & Sant'Anna(2021)的估计量,或者Sun & Abraham(2021)的方法。这些方法在Stata中通常有现成的命令,比如`csdid`、`eventstudyinteract`等,而在Python中可能需要自己编写代码或调用相关库如`linearmodels`。 接下来,我需要考虑用户提到的面板数据结构。面板数据是二维的,包含个体和时间两个维度。处理多时点DID时,需要确保数据格式正确,生成处理时间和处理状态变量。例如,每个个体有处理开始的时点,处理后的时期生成虚拟变量。 然后,回顾用户提供的引用内容。引用[1]解释了面板数据的结构,这对数据准备很重要。引用[2]提到用户尝试了PSM-DID,但遇到了处理问题,现在需要多时点DID的代码。用户可能已经了解PSM-DID的一些挑战,转而寻求更直接的多时点DID实现。 在Stata方面,`reghdfe`包可以用于双向固定效应,而`csdid`和`did_multiplegt`等命令可以实现更复杂的多时点分析。需要提供示例代码,包括数据准备(如生成处理变量、时间虚拟变量)、模型设定以及结果解释。同时,要提醒用户注意平行趋势假设的检验,可能需要事件研究法或绘图来验证。 对于Python部分,可能没有现成的DID库,但可以使用`linearmodels`中的PanelOLS来实现双向固定效应。此外,用户可能需要手动生成事件时间虚拟变量,并处理异质性处理效应。例如,对于每个处理前的时期和处理后的时期,创建虚拟变量并交互处理组指标,然后进行回归分析。需要提供代码示例,并指出可能的注意事项,如聚类标准误、动态效应检验等。 用户还可能关心如何处理控制变量、如何可视化结果、如何检验平行趋势等。因此,在相关问题中需要涵盖这些方面,如平行趋势检验方法、控制变量选择、结果解释等。 最后,需要确保回答结构清晰,分Stata和Python两部分,提供代码示例,并引用相关文献或资料作为支持。同时,生成的相关问题要引导用户进一步探索可能遇到的挑战和深入学习的主题。</think>### 多时点双重差分法(DID)实现代码 #### 1. **Stata实现** 在Stata中,多时点DID的实现通常采用双向固定效应模型(Two-way FE)或`did_multiplegt`命令。以下是基于双向固定效应的示例代码: ```stata * 生成处理变量(假设处理时间为个体首次接受干预的份) egen first_treat_year = min(cond(treated == 1, year, .)), by(id) gen post = (year >= first_treat_year) if !missing(first_treat_year) replace post = 0 if missing(first_treat_year) * 双向固定效应回归 reghdfe y treated##post, absorb(id year) cluster(id) ``` 此处`y`为被解释变量,`treated`表示是否属于处理组,`post`表示是否处于处理期。`absorb(id year)`控制了个体和时间固定效应,`cluster(id)`调整标准误[^1]。 #### 2. **Python实现** Python中可使用`linearmodels`库的`PanelOLS`实现类似功能: ```python import pandas as pd from linearmodels import PanelOLS # 生成处理变量(示例) df['post'] = (df['year'] >= df.groupby('id')['first_treat_year'].transform('min')).astype(int) df['treated_post'] = df['treated'] * df['post'] # 面板数据模型 model = PanelOLS.from_formula( 'y ~ treated_post + EntityEffects + TimeEffects', data=df.set_index(['id', 'year']) ) result = model.fit(cov_type='clustered', cluster_entity=True) print(result.summary) ``` #### 3. **注意事项** - **平行趋势检验**:需验证处理组和对照组在处理前的趋势是否一致,可通过事件研究法绘制动态效应图。 - **异质性处理效应**:若处理效应随时间变化,可改用`eventstudyinteract`(Stata)或分时段回归(Python)[^2]。 - **控制变量**:在模型中添加控制变量以缓解遗漏变量问题。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值