绝对一网打尽最新DID! 示例, 数据, 图标, 代码, 解读应有尽有, 关键理解和操作起来容易!

学术   2024-11-16 16:25   美国  
凡是搞计量经济的,都关注这个号了
邮箱:econometrics666@126.com
所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

今天,继续接着“有启发! 将DID双重差分的最新进展整合到模型设定偏差的统一框架中进行解读”,下面通过作者给出的对应实例和代码及解读进一步数据熟悉最新进展。


本部分基于三个实例对正文与附录提及的相关命令进行展示与梳理。第一个实例来源于Stevenson & Wolfers (2006),该文基于美国各州实施单边离婚法案的时间差异构建二元交错处理变量进行分析。研究发现,单边离婚法案实施对家庭暴力、女性自杀率和被配偶谋杀具有负面影响。第二个实例来源于Lu & Yu (2015),该文利用中国加入WTO 后进口关税下降这一冲击衡量贸易自由化,考察贸易自由化对行业内加成率分布的影响。考虑到2001 年进口关税越高的行业在中国加入WTO 后进口关税下降的幅度越大,该文基于2001 年行业层面进口关税与进口关税下降时间节点构建单时点非二元处理变量进行分析。研究发现,贸易自由化能够显著降低行业内加成率分布。第三个实例来源于Favara & Imbs (2015),该文先考察美国各州银行管制放松对信贷供给的影响,然后进一步考察银行管制放松对房价的影响。各州具有4 项措施遏制其他州的银行在本州设立分行,取消1 项措施那么该州银行管制放松指数为1,数值越大代表放松程度越高(取值范围为0-4)。每个州银行管制放松指数可以随时间发生变化,因此处理变量为多时点非二元处理变量。研究发现,银行管制放松增加了信贷供给、提升了房价。主要内容总结如表A1所示。

A.1 “负权重”问题识别诊断

目前,关于“负权重”问题识别诊断涉及的STATA 命令主要包括bacondecomp、twowayfeweights与eventstudyweights。

(1)bacondecomp

该命令的常用格式是:bacondecomp Y D, ddetail

其中,Y 代表结果变量;D 代表处理变量,比如一个州实施了单边离婚法案时为1,否则为0;ddetail 代表展示更加详细的分解结果,如果未添加该选项,仅展示Timing_groups(包括早处理组作为晚处理组的控制组与晚处理组作为早处理组的控制组)、Always_v_timing(始终接受处理组作为控制组)与Never_v_timing(从未接受处理组作为控制组)三种情况下的估计系数与权重。如果添加该选项,Timing_groups 会进一步明确划分。以Stevenson & Wolfers (2006)数据为例,使用bacondecomp 进行估计的命令与STATA 结果窗口显示如下

其中,asmrs 代表女性自杀率;post 代表一个州是否实施单边离婚法案。该命令一方面展示了回归估计结果,即实施单边离婚法案显著降低了女性自杀率,另一方面展示了四种DID 组合的分解结果,包括Early_v_Late(晚处理组作为早处理组的控制组)、Late_v_Early(早处理组作为晚处理组的控制组)、Always_v_timing(始终接受处理组作为控制组)与Never_v_timing(从未接受处理组作为控制组)。将四种组合加总整理后可得:

可以发现,Late_v_Early(早处理组作为晚处理组的控制组)与其他DID 组合以及回归估计结果均相反,是导致结果出现偏误的来源,表明该例子存在“负权重”问题。另外,值得注意的是,另一组“禁止的对比”,Always_v_timing(始终接受处理组作为控制组)的估计系数也为负。因此,该例子中始终接受处理组一定程度上可能也可以视作从未接受处理组,进而作为控制组进行估计。do 文档ATG 是否适合作为控制组.do 对此进行了深入分析,主要基于始终接受处理组与从未接受处理组结果变量的时间趋势折线图、线性时间趋势回归估计两种措施进行判断,发现该例子中的始终接受处理组可以作为控制组进行估计。如果使用者遇到类似情况,也可参考处理。

(2)twowayfeweights

该命令的常用格式是:twowayfeweights Y G T D, type(string) summary_measures

其中,Y 与D 与上述定义一致;G 代表组别变量,比如美国单边离婚法案发生在州层面,则组别变量为州;T 代表时间变量,比如年份等;type(string) 代表在哪种情况下进行估计,包括feTR(平行趋势假设下的固定效应回归)、feS(平行趋势假设与处理效应不随时间变化两个假设下的固定效应回归)、fdTR(平行趋势假设下的一阶差分回归)与fdS(平行趋势假设与处理效应不随时间变化两个假设下的一阶差分回归);summary_measures 代表展示补充结果,如果未添加该选项,仅展示“正负权重”ATT 的数量与对应权重。以Stevenson & Wolfers (2006) 数据为例,使用twowayfeweights 进行估计的命令与STATA 结果窗口显示如下:

同名变量与前文定义一致。上述结果共三点需要注意:(1)“负权重”(Negative weights)ATT 的数量与对应权重;(2)当TWFE 回归估计结果与ATT 实际结果相反时,不同组与不同时间ATT 标准差的最小值是1.4875,该数值较大意味着处理效应异质性较大才可能导致TWFE回归估计结果与ATT 实际结果相反,该数值较小则意味着即使处理效应异质性不大也可能导致TWFE 回归估计结果与ATT 实际结果相反;(3)当TWFE 回归估计结果与所有DID 组合的ATT实际结果相反时,不同组与不同时间ATT 标准差的最小值是3.2006,该数值含义与(2)种的数值含义类似。然而,目前并没有明确的阈值判断“负权重”ATT 的数量与对应权重是否够大、以及不同组与不同时间ATT 标准差的最小值是否够大,因此该建议仅作为判断“负权重”问题的参考。

(3)eventstudyweights

该命令的常用格式是:eventstudyinteract rel_time_list, cohort(varname) absorb(varlist) rel_time(variable) saveweights(filename)

其中,rel_time_list 代表相对时间的虚拟变量;cohort(varname) 代表初次接受处理的具体时间,样本期内从未接受处理的组定义为缺失值,absorb(varlist) 代表个体和时间固定效应;rel_time(variable) 代表相对时间变量;saveweights(filename) 代表保存计算出的权重情况。该命令主要用于检验动态模型,计算出权重情况后,如果需要查看某一期处理效应是否受其他期处理效应影响,则针对相关数据进行画图分析。

以Stevenson & Wolfers (2006) 数据为例,使用eventstudyweights 进行估计的命令与STATA结果窗口显示如下:

其中,pre、npost 代表每个相对时期的虚拟变量,以-1 期为基期;stfips 代表州;year 代表年份;_nfd 代表各州单边离婚法案实施的具体年份,rt 代表实际年份减去各州单边离婚法案实施的具体年份,weights 代表文件名。以事后第2 期为例,根据图A1可以看到事后第2 期估计系数的构成情况。可以发现,事后第2 期加总估计系数主要由不同组事后第2 期的估计系数构成,然而也受其他期估计系数的部分影响,如事后第4 期、事前第3 期等。如果其他期估计系数所占权重较大,那么说明该期估计系数受“负权重”问题的影响较大。如果期数很多,建议使用者选择政策发生后较近或者估计结果显著性更强的时期进行展示。

A.2 处理效应异质性的稳健估计量(二元交错处理变量)

关于二元交错处理变量(对应正文表2),主要涉及到csdid、eventstudyinteract、did_imputation与did_multiplegt_dyn 四个命令。

(1)csdid

该命令的常用格式是:csdid Y controls,ivar(G) time(T) gvar(varname) agg(aggtype) cluster(varname) notyet long2

其中,Y、G、T 与上述定义一致;controls 代表控制变量;gvar(varname) 代表初次接受处理的具体时间。样本期内从未接受处理的组定义为0,一直接受处理的组需从样本中剔除;⁵agg(aggtype)代表不同情况下的ATT 加总估计结果,包括simple(所有组所有时期)、group(每个组所有时期)、calendar(每个时期所有组)与event(每个相对时期所有组);cluster(varname) 代表聚类标准误,当使用面板数据时,标准误已聚类在面板层面。因此,使用该选项时实际是使用双向聚类,如果继续聚类在面板层面,STATA 会报错;notyet 代表使用样本期内从未接受处理的样本与尚未接受处理的样本作为控制组,如果未添加notyet 则代表只使用样本期内从未接受处理的样本作为控制组;long2 代表进行动态模型估计时,事前各期系数估计均以政策前1 期为基期,如果不添加long2,事前各期系数估计则以当期前1 期为基期。当进行静态模型估计时,agg(aggtype) 需设置为agg(simple)。当进行动态模型估计时,agg(aggtype) 需设置为agg(event)。需要注意的是,为了使做图时与传统意义上的TWFE 动态估计具有可比性,需添加选项long2。

以Stevenson & Wolfers (2006) 数据为例,使用csdid 进行静态模型估计的命令与STATA 结果窗口显示如下:

同名各变量定义与前文一致,变量gvar 代表各州单边离婚法案实施的具体年份,样本期内从未实施单边离婚法案的州定义为0,一直实施单边离婚法案的州从样本中剔除。当agg(aggtype)设置为agg(simple) 时为静态模型估计结果,当设置为agg(event) 时为动态模型估计结果,具体命令以及与传统意义上TWFE 的动态估计系数对比图(图A2)如下。⁷可以发现,在政策发生前,以及在政策发生后并且距离政策前1 期较近时期内,二者估计比较类似。然而,在政策发生后并且距离政策前1 期越来越远时,TWFE 估计大多在上方。可能的原因在于“禁止的对比”估计值为正,其产生的“负权重”问题随着时间推移愈发严重,进而导致了传统意义上TWFE 的动态估计系数上偏。

(2)eventstudyinteract

该命令的常用格式是:eventstudyinteract Y D, cohort(varname) control_cohort(varname) absorb(varlist) vce(clustervarname) covariates(varlist)

其中,Y、D 与上述定义一致;cohort(varname) 代表初次接受处理的具体时间,样本期内从未接受处理的组定义为缺失值,一直接受处理的组需从样本中剔除;control_cohort(varname) 代表控制组虚拟变量,通常将从未接受处理的组或最后接受处理的组设置为1,否则为0;absorb(varlist)代表个体和时间固定效应;vce(cluster varname) 代表聚类标准误;covariates(varlist) 代表控制变量。

当进行静态模型估计时,使用上述常用格式即可。当进行动态模型估计时,需将D 替换为一系列相对时间虚拟变量,即实际时间与接受处理时间相减的虚拟变量。并且将-1 期剔除作为基期。以Stevenson & Wolfers (2006) 数据为例,使用eventstudyinteract 进行静态模型估计的命令与STATA 结果窗口显示如下:

同名各变量定义与前文一致,变量_nfd 代表各州单边离婚法案实施的具体年份,样本期内从未实施单边离婚法案的州定义为缺失值,一直实施单边离婚法案的州从样本中剔除;变量never为虚拟变量,从未实施单边离婚法案的州为1,否则为0。当将处理变量post 替换为每个相对时期的虚拟变量时可得到动态模型估计,具体命令以及与传统意义上TWFE 的动态估计系数对比图(A3)如下。可以发现,与图A2类似,在政策发生后并且距离政策前1 期越来越远时,“负权重”问题使TWFE 估计上偏。

(3)did_imputation

该命令的常用格式是:did_imputation Y G T Ei,fe(FElist) cluster(varname) controls(varlist) pretrends(#) allhorizonsautosample minn(#) tol(real) maxit(integer)

其中,Y、G、T 与上述定义一致;Ei 代表初次接受处理的具体时间,样本期内从未接受处理的组定义为缺失值,一直接受处理的组需从样本中剔除;fe(FElist) 代表需要添加的固定效应;cluster(varname) 代表聚类标准误;controls (varlist) 代表控制变量;pretrends(#) 代表与政策发生# 期前的样本相比,政策发生前# 期内的处理组与控制组的结果变量差异(即事前趋势检验);allhorizons 代表展示政策发生后所有可估计的处理效应;autosample 代表不能应用插补法的观测值会自动从样本中剔除然后进行估计,不添加该选项时若存在不能应用插补法的观测值则会报错;minn(#) 代表受处理观测值的数量低于# 时,相关系数无法估计。默认值为30,为了估计出相关系数可以灵活调整。需要注意的是,受处理观测值的数量较少时,相关系数推断可能不可靠;tol(real) 与maxit(integer) 代表容忍度和迭代最大次数,当标准误计算无法收敛时可以尝试添加这两个选项。两个选项的默认值分别是10-̂6 和100。另外,这两个选项可以单独使用,也可以一起使用。

当进行静态模型估计时,基于did_imputation 上述常用格式即可,不需添加pretrends(#) 和allhorizons。当进行动态模型估计时,需添加pretrends(#) 和allhorizons。需要注意的是,该估计量的事前系数估计并非以政策前1 期为基期,而是以# 前的样本为基期。因此,当pretrends(#)中的# 变化时,政策发生前各期系数也会发生变化。并且基于该估计量进行动态模型估计时,政策前1 期的系数也能够估计。另外,如果使用者不需展示政策发生后所有可估计的处理效应,可将allhorizons 调整为horizons(numlist),numlist 可根据需要设置为政策某一期或者某几期。由于该估计量的事后系数是基于尚未接受处理的样本进行插补估计,numlist 的数值变化不会导致事后系数发生变化。

以Stevenson & Wolfers (2006) 数据为例,使用did_imputation 进行静态模型估计的命令与STATA 结果窗口显示如下:

同名各变量定义与前文一致。如果要进行动态模型估计,需要添加pretrends(#) 和allhorizons,具体命令以及与传统意义上TWFE 的动态估计系数对比图(图A4a)如下。可以发现,二者事后估计较为接近,但事前估计差别很大,did_imputation 产生的估计系数明显更大并且均显著为正。可能的原因在于该估计量事前估计的基期不是-1 期,而是取决于pretrends(#)。此时pretrends(#) 设置为pretrends(20),那么基期是-21 期及之前的所有时期。由于距离较远的相对时期通常观测值较少,进而可能影响估计结果。笔者将pretrends(20) 替换为pretrends(15),以-16期及之前的所有时期为基期进行估计,结果如图A4b 所示。可以发现,此时新估计结果(BJS2)与TWFE 的事前估计结果非常接近,以及不同pretrends(#) 的事后估计结果完全一致。这些结果说明:第一,pretrends(#) 需要进行合理设置,否则可能影响事前估计结果进而干扰对平行趋势检验的判断;第二,这一估计量事前与事后的估计结果互不影响,事前估计受pretrends(#) 的影响,事后估计不会受该选项的影响发生变化。

(4)did_multiplegt_dyn

该命令的常用格式是:did_multiplegt_dyn Y G T D,effects(#) placebo(#) controls(varlist) cluster(varname)

其中,Y、G、T、D 与上述定义一致;effects(#) 代表与政策发生前1 期相比,政策发生后# 期内处理组与控制组的结果变量差异(即处理效应);placebo(#) 代表与政策发生前1 期相比,政策发生前# 期内的处理组与控制组的结果变量差异(即事前趋势检验);controls(varlist) 代表添加控制变量;cluster(varname) 代表聚类标准误。

当进行静态模型估计时,平均处理效应估计值取决于effects(#) 的数值,与placebo(#) 的数值无关。当进行动态模型估计时,每一期的处理效应估计值与effects(#) 的数值、placebo(#) 的数值均无关,不受数值# 的影响。使用者可根据具体需求,选择合适的数值。需要注意的是,Effect_1代表与政策发生前1 期相比,政策发生当期(即传统意义上TWFE 动态估计时的第0 期)处理组与控制组的结果变量差异,以此类推;Placebo_1 代表与政策发生前1 期相比,政策发生前第2 期(即传统意义上TWFE 动态估计时的-2 期)处理组与控制组的结果变量差异,以此类推。为了使做图时与传统意义上的TWFE 动态估计具有可比性,笔者在do 文档中对相关定义进行了修改(如二元交错处理变量.do 的第765-784 行)。以Stevenson & Wolfers (2006) 数据为例,使用did_multiplegt_dyn 进行估计的命令与STATA 结果窗口显示如下:

其中,同名变量与前文定义一致;graph_off 代表不生成图片;⁸ Swithers 代表处理状态发生变化的州(处理组),即从未实施单边离婚法案转变为实施单边离婚法案的州。由于未设置effects(#),默认估计政策当期的处理效应(Effect_1),而且与ATT 一致(Av_tot_eff)。如果使用者想要估计政策发生后# 期内的ATT 可添加effects(#)。以估计政策发生后3 期内的ATT 为例,具体命令与STATA 结果窗口显示如下。可以看到,此时可估计出政策发生后3 期内的每一期系数,基于这3 期的处理效应可得到静态模型估计的ATT。

如果使用者想要得到所有相对时期的估计系数,可以基于样本内相对时期的具体情况设置effects(#) 与placebo(#)。比如,该实例中的实际年份与各州单边离婚法案实施年份可得到的相对时期为-21 至27,因此可添加选项effects(28) 与placebo(21) 。具体命令与STATA 结果窗口显示如下。其中,有以下三点需要注意:第一,并非政策前所有相对时期均可估计,本例中政策前最多只能估计Placebo_15。另外,不论effects(#) 与placebo(#) 的数值设置为多少,如果超过可以估计的上限,那么该命令会自动给出可以估计的最大期数。第二,如前文所述,Effect_1 代表传统意义上TWFE 动态估计时的第0 期,Placebo_1 代表传统意义上TWFE 动态估计时的-2 期,因此作图时需重新定义。第三,最下方提供了政策前估计系数的联合无效性检验(Test of jointnullity of the placebos),可以作为参考。

did_multiplegt_dyn 得到的动态估计系数与传统意义上TWFE 的动态估计系数的对比如图A5所示。Effect# 与Placebo# 已重新定义,与传统意义上的TWFE 动态估计一致,每期系数估计均以政策前1 期为基期。可以发现,与图A2、图A3类似,在政策发生后并且距离政策前1 期越来越远时,TWFE 估计在“负权重”影响下开始出现上偏。

*建议阅读全文查看,包括数据和代码。

*群友可前往社群下下载全文PDF。
关于多期DID或交叠DID: 1.DID相关前沿问题“政策交错执行+堆叠DID+事件研究”, 附完整slides,2.交错(渐进)DID中, 用TWFE估计处理效应的问题, 及Bacon分解识别估计偏误,3.典范! 这篇AER在一图表里用了所有DID最新进展方法, 审稿人直接服了!4.最新Sun和Abraham(2020)和TWFE估计多期或交错DID并绘图展示结果!详细解读code!5.多期DID或渐进DID或交叠DID, 最新Stata执行命令整理如下供大家学习,6.多期DID前沿方法大讨论, e.g., 进入-退出型DID, 异质性和动态性处理效应DID, 基期选择问题等,7.交叠DID中平行趋势检验, 事件研究图绘制, 安慰剂检验的保姆级程序指南!8.欣慰! 营养午餐计划终于登上TOP5! 交叠DID+异质性稳健DID!9.用事件研究法开展政策评估的过程, 手把手教学文章!10.从双重差分法到事件研究法, 双重差分滥用与需要注意的问题,11.系统梳理DID最新进展: 从多期DID的潜在问题到当前主流解决方法和代码! 12.标准DID中的平行趋势检验,动态效应, 安慰剂检验, 预期效应教程,13.DID从经典到前沿方法的保姆级教程, 释放最完整数据和代码!

关于因果推断书籍:1.一本最新因果推断书籍, 包括了机器学习因果推断方法, 学习主流和前沿方法,2.社会经济政策的评估计量经济学, 提供书籍和数据和程序文件,3.诺奖得主Angrist的因果推断课程文献读物单子再次更新了, 还提供了其他三门课程,4.全面且前沿的因果推断课程, 提供视频, 课件, 书籍和经典文献,5.从网页上直接复制代码的因果推断书籍出现了, 学会主流方法成效极快,6.推荐书籍"用R软件做应用因果分析", 有需要的学者可以自行下载!7.哪本因果推断书籍最好?我们给你整理好了这个书单!8.“不一样”的因果推断书籍, 很多观点让我们能恍然大悟, 涵盖了不少其他书里没有的因果推断方法!9.搞懂因果推断中内生性问题解决方法必读的书籍和文献已搜集好!10.一位“诗人”教授写了本因果推断书籍, 现在可以直接下载PDF参看!11.使用R软件学习计量经济学方法三本书籍推荐,12.机器学习与Econometrics的书籍推荐, 值得拥有的经典,13.史上最全的因果识别经典前沿书籍, 仅此一份,14.用R语言做Econometrics的书籍推荐, 值得拥有的经典,15.Stata学习的书籍和材料大放送, 以火力全开的势头,16.USA经管商博士最狂热崇拜的计量书籍震撼出炉,17.推荐使用Python语言做因果推断前沿方法的书籍,18.一些比较常见的因果推断书籍25本汇总, 很多可以直接下载PDF,19.推荐一本专攻处理效应分析的书籍, 包括主流政策评估计量方法

下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

7年,计量经济圈近2000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 官员方言  | 微观数据 | 内部数据
计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID
数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |
干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验
计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀通过感染优秀而互相成就彼此。


计量经济圈
凡是搞计量经济的,都关注这个号了。
 最新文章