Stata:多期DID动态处理效应稳健估计-DIDm估计量—did_multiplegt(附4篇论文应用)

学术   2024-12-16 17:27   陕西  

Stata:多期多个体倍分模型DIDm估计量——did_multiplegt

did_multiplegt使用具有多组和多期的组(如县或州)水平的面板数据,估计处理对结果的影响。截面可以是不平衡的,并不是所有的小组都必须在每个时期进行观察。意思可以是非平衡面板数据。

当处理效应存在异质性时,即使满足平行趋势假设,处理效应的估计结果也会存在偏误,因此可以根据de Chaisemartin 和 D’Haultfoeuille(2020、2022)提出的多期多个体倍分模型和对应的估计量(DIDM)进行估计。

下面我们介绍一下DIDm估计量,即 did_multiplegt命令

命令下载安装

ssc install did_multiplegt, replace
help did_multiplegt
findit did_multiplegt

语法格式:

 did_multiplegt Y G T D [if] [in] [, robust_dynamic dynamic(#) placebo(#) firstdiff_placebo controls(varlist)
        trends_nonparam(varlist) trends_lin(varlist) count_switchers_contr always_trends_nonparam always_trends_lin
        recat_treatment(varlist) threshold_stable_treatment(#) weight(varlist) switchers(string) if_first_diff(string)
        count_switchers_tot drop_larger_lower discount(#) breps(#) cluster(varname) seed(#) graphoptions(string)
        save_results(path)]

主要选项含义:

  • Y是结果变量。

  • G是群变量。

  • T是时间周期变量。

  • 该命令假设时间变量是均匀间隔的(例如:面板是在每年的水平上,并且所有组都没有遗漏年份)。如果不是这样(例如:面板是按年计算的,但所有组都缺少连续三年),则仍然可以使用该命令,尽管需要进行一些调整

  • D是处理变量。

  • robust_dynamic:如果未指定该选项,则计算de Chaisemartin和D'Haultfoeuille (2020a)中的估计量。如果指定,则计算de Chaisemartin和D'Haultfoeuille (2020b)中的估计量。

  • Dynamic(#)给出要估计的动态处理效果的个数。该选项只能在指定了robust_dynamic选项时使用。

  • placebo(#) 给出要估计的安慰剂估计的数量。

  • Controls (varlist)给出了要包含在评估中的所有控制变量的名称。

  • breps(#)给出了用于估计标准误差计算的自举次数。如果未指定该选项,则默认值为50。

  • cluster (varname)计算估计聚类到varname级别的标准误。

  • seed(#)设置种子值

  • 存储的结果可以通过键入ereturn list来查看。

案例应用

首先,在这里我们生成一个具有多时点处理的测试数据集:

clear

local units = 30
local start = 1
local end  = 60

local time = `end' - `start' + 1
local obsv = `units' * `time'
set obs `obsv'

egen id    = seq(), b(`time'
)  
egen t     = seq(), f(`start') t(`end')  

sort  id t
xtset id t


set seed 20211222

gen Y       = 0  // outcome variable 
gen D       = 0  // intervention variable
gen cohort      = .   // treatment cohort
gen effect      = .  // treatment effect size
gen first_treat = .  // when the treatment happens for each cohort
gen rel_time = .     // time - first_treat

levelsof id, local(lvls)
foreach x of local lvls {
 local chrt = runiformint(0,5) 
 replace cohort = `chrt' if id==`x'
}


levelsof cohort , local(lvls) 
foreach x of local lvls {
 
 local eff = runiformint(2,10)
  replace effect = `eff' if cohort==`x'
   
 local timing = runiformint(`start',`end' + 20) // 
 replace first_treat = `timing' if cohort==`x'
 replace first_treat = . if first_treat > `end'
  replace D = 1 if cohort==`x'
 & t>= `timing
}

replace rel_time = t - first_treat
replace Y = id + t + cond(D==1, effect * rel_time, 0) + rnormal()

生成图形:


让我们尝试基本命令:did_multiplegt

让我们尝试一个事件研究选项,其中包含 10 个处理前(在模型中称为安慰剂)和 10 个处理后:

did_multiplegt Y id t D, robust_dynamic dynamic(10) placebo(10) breps(20) cluster(id)

我们得到这个结果:

尽管在上面的输出中警告我们不应该比较事件研究估计值,但我们仍然可以使用 event_plot后面() 命令绘制这些估计值,如下所示:

event_plot命令可以如下安装

ssc install event_plot, replace

event_plot e(estimates)#e(variances), default_look ///
 graph_opt(xtitle("Periods since the event") ytitle("Average causal effect") ///
 title("did_multiplegt") xlabel(-10(1)10)) stub_lag(Effect_#) stub_lead(Placebo_#) together

我们得到这个图:


案例2

下面我们使用面板数据wagepan来估计参加工会对于工资的影响。使用 did_multiplegt 命令估计状态转换 (switchers) 的平均处理效应。

 ssc install bcuse
    bcuse wagepan
    did_multiplegt lwage nr year union, placebo(1) breps(100) cluster(nr)
    did_multiplegt lwage nr year union, robust_dynamic dynamic(1) placebo(1) breps(100) cluster(nr)


结果为:

.  did_multiplegt lwage nr year union, placebo(1) breps(100) cluster(nr)

DID estimators of the instantaneous treatment effect, of dynamic treatment effects if the dynamic option is used, and of
placebo tests of the parallel trends assumption if the placebo option is used. The estimators are robust to
heterogeneous effects, and to dynamic effects if the robust_dynamic option is used.

             |  Estimate         SE      LB CI      UB CI          N  Switchers 
-------------+------------------------------------------------------------------
    Effect_0 |  .0261226   .0225804  -.0181349   .0703801       3815        508 
   Placebo_1 |  .0993211   .0273153   .0457831   .1528591       2842        247 




结果表明加入工会可以提高工资2.61%。

论文1:《数量经济技术经济研究》2024年第1期最新-DIDm估计量+异质性估计检验等前沿论文

来源:《数量经济技术经济研究》2024年第1期,防范“脱实向虚”的另一面:契税税率下调与企业房产投机


1、简介

本文以《契税暂行条例》和《契税法》授权地方政府的税率自由裁量调整作为准自然实验,研究契税税率下调对企业房产投机行为的影响。

构建多期双重差分(Differences-in-Differences,DID) 模型进行实证检验。

2、基准回归

基准回归使用命令为

  • reghdfe

结果输出

  • esttab

3、稳健性检验

3.1、平行趋势检验

平行趋势检验使用最新命令eventdd

3.2、安慰剂检验

本文通过随机试验的方法进行安慰剂检验,以进一步印证契税税率下调与企业房产投机行为的负向因果关系。

进行随机抽样1000次,得到结果为:

1000次抽样结果得到的虚假政策估计系数均大于真实政策估计系数(-0.005),并且近似地以0为中心呈正态分布,这在极大概率上排除了“下调契税税率抑制企业房产投机”是偶然事件的可能。


3.3、稳健估计量--DIDm模型估计

文章附录部分还构建了多期多个体双重差分模型(DIDM),用于研究多组样本在多个时点上的事件处理效果(Chaisemartin和D’Haultfoeuille,2020),使用命令为:

  • did_multiplegt

参考资料为:

3.4、CD分解+TSDID稳健性检验

文章进行稳健性检验,除了进行泊松回归分析,还进行了多期DID异质性稳健估计量估计。参考Chaisemartin和D’Haultfoeuille(2020)做法,除了进行负权重诊断,还利用两阶段双重差分方法(TSDID)进行估计。负权重诊断命令为:

  • twowayfeweights

文章应用为:

论文2:推荐1篇2023年第7期《数量经济技术经济研究》上最新DID前沿、合成DID、DIDm+csdid估计量等主题文章


《数量经济技术经济研究》23年第7期上的TOP1 “学术明星”方法如何学习(附方法汇总)


推荐文章:市场激励型环境规制与能源消费结构转型——来自中国碳排放权交易试点的经验证据

背景简介:

为识别碳排放权交易试点对能源消费结构转型的作用效果,将碳排放权交易试点的设立和碳排放权交易市场的启动看作准自然实验。

以除深圳市外的其他6个试点地区作为处理组,24 个 非试点地区(除西藏及港澳台地区外)作为控制组。

选用单时点双重差分模型实证检验试点前后各地区能源消费结构转型进程的变化差异。


DID模型估计

在基准模型设定中,分别考察未加入控制变量、加入省份层面系列控制变量 ,结果均表明碳排放权交易试点显著加速能源消费结构双重替代进程,促进地区能源 消费结构转型。

平行趋势检验

使用事件研究分析方法进行平行趋势检验。

最新的 DID 理论文献表明,处理前趋势检验并不能作为平行趋势假设行之有效的经验证 据(Roth 等,2022),传统的处理前趋势检验在统计意义上是低功效的,且可能造成估计和推断的偏差、扭曲。为此,Rambachan 和 Roth(2023)提出了一种在违反平行趋势假设时的检验方法,其思想 是对处理后点估计量的置信区间进行推断和敏感性分析。


异质性处理效应检验

当处理效应存在异质性时,即使满足平行趋势假设,处理效应的估计结果也会存在偏误,因此本文基于 de Chaisemartin 和 D’Haultfoeuille(2020、2022)提出的多期多个体倍分模型和对应的估计量(DIDM)进行估计。

双重差分法严格依赖“平行趋势”假设,但“平行趋势” 又难以检验,因此本文使用合成双重差分进行后续检验。

其他稳健性检验

本文还进行了其他稳健性检验。包括,

  • 第一,安慰剂检验。重复随机抽样 1000 次,以基准回归模型加以估算。
  • 第二,更换变量定义方式。
  • 第三,改变研究样本和研究方法。运用多时点 DID 进行回归估计,并使用 de Chaisemartin 和 D’Haultfoeuille(2022)提出的动 态效应估计量、Callaway 和 Sant’Anna(2021)提出的重新加权估计(CSDID)以及合成双重差分模型 进行检验。
  • 其他

合成双重差分专题资源

合成双重差分由Arkhangelsky 等(2021) 提出,References如下:

  • Dmitry Arkhangelsky, Susan Athey, David A. Hirshberg, Guido W. Imbens, and Stefan Wager. Synthetic Difference in Differences, 2019.

合成双重差分优点:

Stata合成双重差分专题讲座--PPT截图

  • 相比于传统的合成控制和双重差分方法具有独特优势

  • 相比与传统的合成控制方法,合成双重差分通过引入时间的权重,剔除政策出台前后时间因素导致的差异,降低了估计偏误,也提升了估计的准确性。

  • 而相比于传统的双重差分方法,合成双重差分方法一方面使与处理组更相似的对照组具有更高的权重,另一方面也使与政策处理期更相似的政策处理之前的时间段具备更高的权重,从而使估计结果更具稳健性。

合成双重差分的实施流程具体如下:

  • 第一,确定个体的权重。

  • 第二,确定时间的权重。

  • 第三,计算政策的处理效应。

  • 总结如下

Stata合成双重差分专题PPT截图


基于个体权重和时间权重,利用加权的双向固定效应模型进行估计,得到政策的平均处理效应。


论文3:《数量经济技术经济研究》上8月18日最新渐进DID模型异质处理效应DDIDm估计量方法论文

文章题目:制度创新、营商环境与城市创业活力来自中国自由贸易试验区的证据

简介:

本文利用2009-2019年287个城市的面板数据和企业工商注册信息数据,将自贸区对城市创业活力的影响进行研究。

模型

本文将自贸区的设立作为政策研究上面的一种自然实验。由于自贸区的发展是一个先行试点、总结经验和逐步推广的过程,即设立时间不同,因此采用渐进DID模型来考察设立自贸区对城市创业活力的影响

基准回归

对模型(1)分别添加城市、年份双向固定效应和相关控制变量进行分析

模型(2)在添加“邻近地区”变量后,分别添加城市、年份双向固定效应和相关控制变量进行分析

平行趋势检验

基于事件研究法进行平行趋势检验

异质处理效应估计

参考刘冲等(2022),Goodman-Bacon (2021)等关于负权重的讨论,本文参考De Chaisematin和D"Haultfoeile 2020) 的外理方法,计算了瞬时处理效应(即DIDM估计量)。

其他稳健性检验

  • 考虑城市的时间趋势特征
  • 考虑省内随时间变化的影响因素
  • 排除其他政策因素的影响
  • 替换被解释变量

其他分析


论文4:碳达峰目标如何引领城市低碳转型——来自准自然实验的证据

psm

  • psmatch2

  • pstest

描述性统计

  • tabstat

基准回归

  • xtreg 

平行趋势

  • xtreg

  • coefplot

计算组别 - 时期平均处理效应De Chaisemartin 和 d'Haultfoeuille (2020)  

did_multiplegt


数量经济学
见证计量经济学发展,更懂计量更懂你!
 最新文章