楼主: 共享心跳
6238 1

[编程问题求助] 平行趋势检验代码 [推广有奖]

  • 0关注
  • 5粉丝

讲师

13%

还不是VIP/贵宾

-

威望
0
论坛币
1771 个
通用积分
358.8021
学术水平
20 点
热心指数
21 点
信用等级
20 点
经验
4164 点
帖子
211
精华
0
在线时间
117 小时
注册时间
2022-3-10
最后登录
2023-11-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

借用普林斯顿大学构造出来的DID数据来介绍一下平行趋势检验的基本思路。数据中,A、B、C、D、E、F和G是非常相似的7个地区,E、F和G三地在1994年实行了一项新政策,而A、B、C和D则没有实行。如果想要评估这项政策的实施效果,那么使用DID是再合适不过了。不过,想要使用DID就要满足平行趋势假设,因为只有当处理组和控制组在政策前足够相似才能够保证DID估计出的是政策的因果效应。

第一种方法就是绘制处理组和控制组的时间趋势图。从图中可以看出,在政策时点之前,处理组和控制组还是具有那么一丢丢的相似性,y都保持着相似的增长趋势,当然这种趋势也只能说有一点相似不能说相同,可能是构造出来的数据的效果不是特别好。总之,这种方法仅凭肉眼观察较为粗糙,想要得到更为准确、科学的结论还是应该使用事件研究法。

egen mean_y=mean(y), by(year treat)graph twoway (connect mean_y year if treat==1,sort) (connect mean_y year if treat==0,sort lpattern(dash)), ///xline(1994,lpattern(dash) lcolor(gray)) ///ytitle("y") xtitle("年度") ///ylabel(,labsize(*0.75)) xlabel(,labsize(*0.75)) ///legend(label(1 "处理组") label( 2 "控制组")) ///图例xlabel(1990 (1) 1999)  graphregion(color(white)) //白底

第二种方法就是事件研究法,我们首先生成年份虚拟变量与处理组虚拟变量的交互项,将这些交互项作为解释变量进行回归。交互项的系数反映的就是特定年份处理组和控制组之间的差异,我们特别希望看到的就是政策时点前的虚拟变量与处理组虚拟变量的交互项的系数不显著。不过,在这里要特别注意是我们需要选择一期作为参照组,否则会有完全共线性问题(一般都是drop掉-1期)。

gen policy = year - 1994tab policyreplace policy = -3 if policy < -3replace policy = 3 if policy > 3//首先生成年份虚拟变量与实验组虚拟变量的交互项forvalues i = 3(-1)1{  gen pre_`i' = (policy == -`i' & treat == 1) }gen current = (policy == 0 & treat == 1)forvalues j = 1(1)3{  gen  post_`j' = (policy == `j' & treat == 1)}drop pre_1 //将政策前第一期作为基准组,很重要!!!xtreg y  pre_* current  post_* i.year, fe r //将这些交互项作为解释变量进行回归

接下来就是进一步通过直观图形方式,对政策在不同年份之间的动态经济效应进行呈现。从图中可以看出,交互项的系数在政策前并不显著异于0(95%的置信区间包含了0值),这说明政策时点前处理组和控制组之间不存在显著差异,即满足平行趋势的假设;而政策后第一年的系数显著为负,但很快又回到0附近,说明政策在推行后第一年产生了一个显著的负效应,但随后又很快消失了。

coefplot, baselevels ///keep(pre_* current post_*) ///vertical ///转置图形yline(0,lcolor(edkblue*0.8)) ///加入y=0这条虚线 xline(3, lwidth(vthin) lpattern(dash) lcolor(teal)) ///ylabel(,labsize(*0.75)) xlabel(,labsize(*0.75)) ///ytitle("政策动态效应", size(small)) ///加入Y轴标题,大小smallxtitle("政策时点", size(small)) ///加入X轴标题,大小small addplot(line @b @at) ///增加点之间的连线ciopts(lpattern(dash) recast(rcap) msize(medium)) ///CI为虚线上下封口msymbol(circle_hollow) ///plot空心格式scheme(s1mono)

注:由于以政策时点前的第1期作为基准组,因此图中没有-1期的数据


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:forvalues forvalue vertical Pattern CURRENT

沙发
midge123 发表于 2022-6-16 14:24:37 |只看作者 |坛友微信交流群
生成年份虚拟变量与处理组虚拟变量的交互项,请问这个怎么生成啊,有点看糊涂了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 13:25