平行趋势检验-多期DID(非原创)

文章转载至Stata绘图(二) | 多期DID的平行趋势检验 - Stata专版 - 经管之家(原人大经济论坛) (pinggu.org)

多期DID的平行趋势检验有两种等价的展示方法,一是回归法,二是绘图法,前者相对容易,而后者的操作过程稍复杂。不少人借鉴了Beck et al.(2010)的做法,但该文实际用的模型是渐进DID,即最终所有个体均实施了政策,因此相关命令需要经过一定修改才能用于一般的多期DID。本文的前半部分将会简单介绍多期DID,后半部分将会参考Beck et al.(2010)对图片的设定提供一个绘图过程。


两期DID:Yit=常数+Dt+Gi+ Dt* Gi+ eit

——Stata命令:reg y D G D_G 其他控制变量

注:D_G是D与G的交互项

多期DID:Yit=常数+Xit+时间虚拟变量+ ui+ eit

——Stata命令:xtreg y x i.time 其他控制变量,fe

其中,Yit是被解释变量;Dt表示政策后虚拟变量(取1表示政策之后,取0则表示政策之前);Gi表示处理变量(取1表示处理组,取0则表示控制组);Xit表示“个体i为处理组”且“时间t在政策之后”则取值为1,其他情况取值为0,有一种等价说法是——Xit表示个体i在t时间是否实施了政策。

请注意:不要把Xit理解成是交互项,因为在多期DID中,控制组样本的Dt无法给出合适的定义。简单来说,控制组样本根本不存在“政策年度”一说,更谈不上样本是发生在政策“之前”还是“之后”了。

Dt表示政策实施前后的虚拟变量,在两期DID中,因为只存在两期数据,因此其等价于时间虚拟变量。两期DID的Dt到了多期DID中,就转化为时间虚拟变量;Gi表示处理变量,由于多期DID中的个体效应ui包含了Gi的信息(Gi是ui的子集),因此同时在模型中放入Gi与ui将导致严重的多重共线性问题,应该只放入信息含量更多的ui。多期DID中的Xit来自两期DID中的Dt* Gi,尽管本文一再强调不应该把Xit理解成Dt与Gi的乘积,但是不少初学者依然会习惯性认为Xit等价于两个变量的乘积。

综上,两期DID推导至多期DID的变化过程是:Dt→时间虚拟变量,Gi→ui,Dt*Gi→Xit。多期DID没有对政策时点是否一致性提出要求,因此多期DID还适用于政策时点不一致情形。

生成Xit的Stata过程对初学者来说可能稍有难度,有的人习惯在Excel中整理数据,有的人喜欢用merge命令把数据全部匹配到一起。由于不同人有不同的习惯,下面介绍如何在Excel和Stata中应该怎么制作出这个变量。

第一种做法:使用Excel来制作Xit是非常直观的。

第一步,你需要为数据添加一列policy_year,对于控制组样本应该设定为空白值,X就是最终要生成的变量。例子中一共有16个样本。



第二步,从16个样本中,筛选出policy_year为空白值的样本,然后对这些样本的X全部赋值为0。满足条件的一共有8个


第三步,从16个样本中,筛选出policy_year有取值的样本(一共8个样本),新变量dyear是用year减去policy_year。


第四步,从16个样本中,筛选出dyear≥0的样本(一共5个样本),然后对这些样本的X赋值为1。



第五步,取消筛选功能后,你可以在X中发现仍有空白值(3个),用0填充他们,最后再把dyear删除,X就生成完毕了。



第二种做法:使用Stata来生成x,过程相对简单,如果不想一步步操作Excel可以考虑这种做法。

第一步,数据导入Stata。

第二步,输入命令:

gen x=0

replace x=1 if year>= policy_year

*平行趋势检验还需要生成处理变量treat(处理组取1,控制组取0)。

*这个变量在Excel中非常容易生成,因此方法一不详细介绍生成过程。

gen treat=0replace treat=1 if policy_year!=.

多期DID的Stata命令

xtreg y x i.time 其他控制变量,fe r

提示:推荐使用聚类稳健标准误进行回归,也就是加上“r”,但是这么做或许会降低系数的显著性。为什么会这样呢?这个问题与t检验的自由度有关,本帖不展开讨论这个技术细节。如果你在多期DID的回归使用了聚类稳健标准误,那么在平行趋势检验中,你应该继续使用聚类稳健标准误,从而做到前后一致。请不要低估考虑“是否使用聚类稳健标准误”的意义,它不但影响系数的显著性,还可能影响绘图策略。

平行趋势检验的Stata命令——回归法

*变量说明:y表示被解释变量,id表示样本个体;year表示样本年份;policy_year表示政策发生年份;

*treat取1表示处理组,取0表示控制组。

set more off

xtset id year

gen distance = year - policy_year

*了解数据情况。

tab distance, missing 

*请确认distance变量是否存在以下两类问题:

*1.样本稀疏的问题,即样本个数在某些年份非常少。

2.distance的取值范围太宽,检验太多期的平行趋势可能是没有必要的。

*你可以采用“缩尾处理策略”以应对上面两种问题:

*replace distance = -4 if distance < -4

*replace distance = 5 if distance  > 5

*生成一系列的变量:

*d_j的数学含义是:若样本是”处理组“且为”政策实施前的第j期“则取值为1,其他情况取值为0。

*dj的数学含义是:若样本是”处理组“且为”政策实施后的第j期“则取值为1,其他情况取值为0。

*current的数学含义是:若样本是”处理组“且为”政策实施当期“则取值为1,其他情况取值为0。

*例如,某个个体的政策实施于2013年,那么该个体在2012年的变量D_1取值为1,其余均为0。

尽管上面给出的数学定义是十分清晰的,但为了照顾初学者,下面给出一个直观的数据描述。以d_1为例,若样本是”处理组“且为”政策实施前的第1期“(distance=-1)则取值为1(橘色区域所示),其余情况取值为0。


*第一步,生成变量d_j、dj、current。

*(1)生成d_j,假设你在“tab distance, missing”中发现,distance最小值是-4,那么生成过程如下:

forvalues i=1/4 {

gen d_`i'  = 0

replace d_`i'  = 1 if treat== 1 & distance== -`i'}

*(2)生成dj,假设你在“tab distance, missing”中发现,distance最大值是5,那么生成过程如下:

forvalues i=1/5 {

gen d`i'  = 0

replace d`i'  = 1 if treat== 1 & distance== `i'}

*(3)生成current。

gen current  = 0

replace current = 1 if treat== 1 & distance== 0

*回归法进行平行趋势检验:

xtreg y d_4 d_3 d_2 d_1 d1 d2 d3 d4 d5 i.year 控制变量, fe r

*判别方法:若d_4 d_3 d_2 d_1均不显著,则表明平行趋势假设成立。

你可能已经注意到了,current不被包含在回归模型中,尽管我们生成了它。原因是d_j、dj、current无法同时被放进模型,否则会产生严格多重共线性问题,Stata会自动在“d_4 d_3 d_2 d_1 current d1 d2 d3 d4 d5”中随机drop掉一个变量(哪个被drop掉与顺序有关)。为了进行平行趋势检验,我们应该在d_j与current中选择一个变量并手动去掉。如果你发现检验结果不理想,可以尝试调整drop对象。被drop掉的那个变量,我们称之为基期。 若d_j的回归系数是不显著的,说明d_j的系数与基期没有显著差异,从而支持了平行趋势假设。本文的例子是以current为基期,如果你希望改变基期的位置,我在49楼写了一个以d_1为基期的代码示例。

尽管有些人还认为,可以在dj中选择一个变量去掉,但严格意义上这是不合适的。若所有d_j系数均不显著倒也无妨,同样可以说明平行趋势假定成立,但如果所有d_j的系数均显著为正(或负),那么我们无从判断d_j中任意两个回归系数是否有显著差异。另外,偶尔也会见到一些不规范的做法,比如在不采取“缩尾处理策略”情况下(前文对此策略已经用例子介绍了),只对current附近几期进行平行趋势检验,这种情况下,如果你得到了一些显著的d_j,你可能会误以为平行趋势检验没有通过。总之,基期的选择对平行趋势检验的结果是有影响的,请不要忽略这个问题。基于上述观点,tvdiff这个专门用来进行平行趋势检验的命令,由于不允许指定基期,因此价值可能有限。

平行趋势检验的Stata命令——绘图法

平行趋势检验的绘图法需要你先完成回归法的所有步骤,也就是在执行下面这条命令之后,才可以进行绘图法。下面这个回归的结果,已经可以用来判断检验是否通过了。若检验没有通过,绘图法也就没必要做了。

xtreg y d_4 d_3 d_2 d_1 d1 d2 d3 d4 d5 i.year 控制变量, fe r

如果你认为以下内容有一定操作难度,那么你可以考虑放弃用绘图法来展示平行趋势检验的结果。正如前文所述,绘图法与回归法是等价的,绘图法对论文的意义只是“锦上添花”。

方法1:采用coefplot绘制简易图形

ssc install coefplot

coefplot,keep(d_4 d_3 d_2 d_1 d1 d2 d3 d4 d5)levels(90)vertical lcolor(black)mcolor(black)msymbol(circle_hollow)ytitle(回归系数,size(small))ylabel(,labsize(small)angle(horizontal)nogrid)yline(0,lwidth(vthin)lpattern(solid)lcolor(black))xtitle(政策实施相对时间,size(small))xlabel(,labsize(small))graphregion(fcolor(white)lcolor(white)ifcolor(white)ilcolor(white))ciopts(recast(rcap))xline(10.5,lwidth(vthin)lpattern(solid)lcolor(black))

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • 简单介绍一下实证论文中双重差分法(DID)的平行趋势检验(Parallel Trend Test)在Stata中如...
    KEMOSABE阅读 19,579评论 5 6
  • 识别策略 清朝末期,清政府与西方列强签订了一系列不平等条约,开放沿江沿海等城市作为通商口岸即是不平等条约的主要内容...
    一颗小柚子lyc阅读 4,452评论 0 1
  • 这次推文的内容主要是介绍选择偏差及其导致的内生性问题,以及缓解这种内生性问题的倾向得分匹配法(Propensity...
    KEMOSABE阅读 6,685评论 7 13
  • > 天鹰(中南财大——博士研究生) E-mail: yanbinglh@163.com 模型系列-DID入门(附S...
    天鹰_2019阅读 11,913评论 2 12
  • > 天鹰(中南财大——博士研究生) E-mail: yanbinglh@163.com 双重差分模型的平行趋势假定...
    天鹰_2019阅读 7,035评论 0 4