stata图形绘制(stata画函数图)
stata图形绘制(stata画函数图),本文通过数据整理汇集了stata图形绘制(stata画函数图)相关信息,下面一起看看。
多期DID平行趋势检验有两种等价展示方法,一种是回归法,一种是作图法,前者相对容易,后者略复杂。许多人从贝克艾尔的做法中学到了东西。(2010),但本文使用的模型是渐进式DID,即所有个体最终都执行了政策,因此需要修改相关顺序才能用于一般多期DID。本文前半部分将简单介绍多期DID,后半部分将参考Beck el al的做法提供一个绘制流程。(2010).
多期DID介绍,两期did: yit=常数Dt Gi Dt* Gi eit——Stata命令:reg y D G D_G其他控制变量注意:D_G是D和G之间的相互作用
多周期did: YIT=常数Xit时间虚拟变量UIEIT3354STATA命令:xtreg y x i.time其他控制变量,fe
其中Yit是被解释变量;Dt表示策略后的哑变量(1表示策略后,0表示策略前);Gi处理变量(1为处理组,0为对照组);Xit的意思是“个人I是治疗组”和“保单后时间t”取值1,其他情况取值0。有一个等价的说法是——Xit表示个体I在t时刻是否执行了政策,请注意:不要把Xit理解为交互项,因为对照组样本的Dt不能在多期DID中定义。简单来说,对照组样本中没有“保单年度”这一项,更不用说样本发生在保单“之前”还是“之后”了。
Dt表示策略实施前后的虚拟变量。很容易理解为两个did中的时间虚拟变量,在多个did中转换为时间虚拟变量。Gi代表处理变量,而多期DID中的个体效果ui包含了Gi的信息(Gi是ui的子集)。因此,在模型中同时放入Gi和ui会导致严重的多重共线性问题,应该只放入信息含量更多的ui。
多期DID中的Xit来源于两期DID中的Dt* Gi。虽然本文一再强调Xit不应该理解为Dt和Gi的乘积,但很多初学者还是习惯性地认为Xit等同于两个变量的乘积。
综上所述,两阶段DID推导到多阶段DID的变化过程是:Dt时间哑变量,Giui,Dt*GiXit。多期DID不要求策略时间点的一致性,因此采用多期DID的思想解决策略时间点不一致的DID。
生成Xit的Stata过程对于初学者来说可能会稍有难度。有些人习惯于在Excel中整理数据,而有些人喜欢使用合并命令将所有数据匹配在一起。下面介绍如何在Excel和Stata中制作这个变量。
第一种方法:用Excel制作Xit非常直观。
在第一步中,您需要向数据中添加一列policy_year。对于对照组样本,应该设置为空白值,X是最终生成的变量。示例中有16个样本。
第二步,从16个样本中选择policy_year为空的样本,然后将这些样本的x值全部赋为0。共有8个符合条件。
第三步,从16个样本中,选取policy_year值的样本(共8个样本),新变量dyear就是从year中减去policy_year。
第四步:从16个样本中,选择染料染色0的样本(共5个样本),然后将这些样本的x赋值为1。
第五步。取消过滤功能后,可以发现X中还有空白值(3),用0填充,最后删除dyear,X就生成了。
最终结果如下:
第二种方法:用Stata生成X,过程比较简单,如果不想一步一步操作Excel可以考虑这种方法。
第一步是将数据导入Stata。
步骤2,输入命令:
Gen=0替换x=1如果year=policy _ year *平行趋势测试还需要生成处理变量treat (1表示处理组,0表示对照组)。*该变量在Excel中非常容易生成,所以在方法1中不详细描述生成过程。gen treat=0 replace treat=1 if policy _ year!=.Stata命令xtreg y x i.time of multi-period DID其他控制变量,fe r提示:建议使用聚类稳健标准进行回归,即添加“r”,但这可能会降低系数的显著性。为什么会这样?这个问题和T检验的自由度有关。这篇文章不会讨论这个技术细节。如果在多期DID的回归中使用了聚类稳健标准差,那么在平行趋势检验中应该继续使用聚类稳健标准差,这样才能一致。请不要低估考虑“是否使用聚类稳健标准差”的意义。你的选择会直接影响画图策略。
平行趋势检验——回归方法的Stata命令*变量描述:Y代表被解释变量,id代表样本个体;年份表示样本年份;Policy_year表示策略发生的年份;*treat对处理组取1,对对照组取0。set offx tset id year gen distance=year-policy _ year *了解数据。Tab距离,缺失*请确认距离变量是否存在以下两种问题:*1。样本稀疏的问题,即某些年份样本数量很少。2.2.distance的值范围太宽。*可以采用“缩尾处理策略”来处理上述两个问题:*替换距离=-4如果距离-4 *替换距离=5如果距离5 *生成一系列变量:* d _ j的数学意义是:如果样本是“处理组”和“政策实施前的j期”,则值为1;否则,该值为0。* DJ的数学含义是:如果样本是“处理组”和“政策实施后的J期”,则取值为1,否则取值为0。* current的数学含义是:如果样本为“处理组”和“政策实施的当期”,则值为1;否则,该值为0。*例如,如果个人的政策是在2013年实施的,那么该个人在2012年的变量D_1取值为1,其余均为0。虽然上面给出的数学定义非常清晰,但是为了照顾初学者,下面给出一个直观的数据描述。以D1为例。如果样本是“处理组”且是政策实施前的第一期(距离=-1),则值为1(显示在橙色区域),其余为0。
*第一步,生成变量d_j,dj,current。*(1)生成D _ J .假设你在“tab distance,missing”中发现距离的最小值是-4,那么生成过程如下:for values I=1/4 { Gen D _ ` I '=0 replace D _ ` I '=1 iftreat==1 distance=-` I ' } *(2)生成dj。假设你在“tab distance,missing”中发现最大距离为5,那么生成过程如下:for values I=1/5 { gen d ` I '=0 replace d ` I '=1 if treat==1 distance=` I ' } *(3)生成电流。gen=0 replace current=1 If treat==1 distance==0 *用回归方法检验平行趋势:xtreg y d_4-d5 i.year控制变量,fe r //小提示:“d_4-d5”会被Stata识别为“D _ 4d _ 3d D _ 2d _ 1 D1 D2 D3 D4 D5”*判别方法:如果d_4 d_3 d_2 d_1不显著,则表明平行趋势假设有效。您可能已经注意到,虽然我们生成了current,但它并不包含在回归模型中。原因是d_j、dj和current不能同时放入模型,否则会出现严格的多重共线性问题。Stata会自动在“d_4 d_3 d_2 d_1当前d1 d2 d3 d4 d5”中随机丢弃一个变量(实际丢弃哪个与顺序有关)。为了测试平行趋势,我们应该在d_j和current之间选择一个变量,并手动删除它。如果发现测试结果不尽如人意,可以尝试调整掉落物。被删除变量称为基期。如果d_j的回归系数显著,说明d_j的系数与基期显著不同。本文的例子是基于电流的。
虽然还是有人认为可以在dj中选择一个变量来移除,但严格意义上来说是不合适的。如果d_j的所有系数都不显著也没关系,这也说明平行趋势假设成立。但如果d_j的所有系数都显著为正(或负),那么我们就无法判断d_j的任意两个回归系数是否显著不同。
平行趋势检验的Stata命令——绘制方法平行趋势检验的绘制方法需要你先完成回归方法的所有步骤,也就是说,你只有在执行了下面的命令之后才能绘制方法。下面的回归结果已经可以用来判断测试是否通过。如果测试失败,就不需要做画图法了。
XTY D _ 4-D5I。年度控制变量,fe r //基期是当前值。如果你觉得下面的内容很难操作,那么你可以考虑放弃画图的方式来展示平行趋势测试的结果。如前所述,作图法相当于回归法,作图法对论文的意义只是“锦上添花”。
方法:用coefplot绘制简单图形。
ssc install coefplotcoefplot,Keep(d _ 4d _ 3d _ 2d _ 1d 1d 2d 4d 5)levels(90)垂直l颜色(黑色)m颜色(黑色)m符号(circle _ hollow) y title(回归系数,大小(小))ylabel(,labsize(小)角度(水平)无网格)yline (0,lwidth (v细)l图案(实)l颜色(黑))x title(策略实施的相对时间,大小(小))xlabel(,字体出现在Labsize(小))图形区域(中如果你是Stata14,字体会默认为宋体,建议用Stata14画图。目前我还没有找到调整Stata15图片字体的方法。
本文利用贝克等人提供的数据。(2010)并参考上述命令,图片大致可以如下,但有些地方还需要进一步手动调整。
例如,调整X轴和Y轴的标签。
下面是简单调整后的示意图:
上图有个缺陷,就是不能在当前位置形成断点。优点是工艺简单方便。一个可行的替代方案是,可以将基期设置在期初(即d_4),即回归模型设置为,
Xty d _ 3d _ 2d _当前D1 D2 D3 D4 D5 I .年度控制变量,Fe R
2.命令直接绘图(推荐)
第一步:手动计算置信区间。
首先考虑置信区间是如何计算的。
为了计算90%的置信区间,需要计算t统计量。最准确的命令是:gen t=invttail (d2,0.05)。其中,参数d2是f统计量的第二个自由度,可以从上一篇文章的xtreg回归中得到。
gen t=invttail ( 48,0.05) //假设用聚类稳健标准差*生成b_j的系数和置信区间(假设有4个周期),ForValues I=1/4 { genb _ ` I '=_ b[d _ ` I ']Gense _ b _ ` I '=_ se[d _ ` I ']genb I ' ub=b _ ` I ' t * se _ b _ ` I ' } *生成bj的系数和置信区间(假设有5个周期)for values I=1
Gen=。genlb=。genub=。*值I=1/4的生成系数(策略前){如果距离==-`i ',则替换b=b _ `i ' if值I=1/5的生成系数(策略后){如果距离==`i ',则替换b=b ` I ' } *值I=1/4的生成系数(策略前)的置信区间下限{如果距离=-`i ',则替换b=b _ `i ' if值I=1/5的生成系数(策略后)的置信区间下限{替换b=b I'LB if distance==`i'}*值I=1/4的生成系数(策略前)的置信区间上限{replaceub=b _ ` I ' ub if distance=-` I ' } *值I=1/5的生成系数(策略后)的置信区间上限{ replace ub=b
画图不需要那么多变量和样本,关键数据留着就行。
保持距离b lb ub重复拖放距离,强制排序距离步骤4:绘制图片
以下是绘图命令。和coefplot一样,即使有了绘图设置,很多地方还是需要手动调整。如果你懂图形编辑器,强烈建议直接在编辑器中处理图片。
twoway (connected b distance,sort lcolor(black)mcolor(black)m symbol(circle _ hollow)cmissing(n))(rcap LB UB distance,lcolor(black)l pattern(dash)msize(medium)),ytitle(百分比变化)ytitle(,size(small)) yline(0,lwidth(v thin)l pattern(dash)lcolor(teal))y label(,labsize(small)angle(horizontal)no grid)xtitle(相对于分支解除管制的年份)xtitle(,size
好处是画面美观,基址生成断点,coefplot做不到。缺点是画图过程比较麻烦。
当政策点一致时,很多论文选择使用两相DID处理多相面板数据,这是一种不恰当的处理方法。原因是模型中的ui换成了Gi,内生问题可能还是很严重的。论文的一部分也控制了两个DID模型中的时间哑变量,但是前面提到Dt和时间哑变量有很强的联系,所以如果两者同时放入模型,很容易增加Dt的方差展开因子,然后Dt和Dt_Gi的系数可能会显著下降。目前实证论文中的DID模型已有滥用的迹象,应引起重视,避免盲目学习。如果你的政策执行时间是一致的,你也想使用多个did进行回归,那么你的实际操作过程会更简单,但本文并没有单独列出这个特例进行讨论。你可以按照这篇文章的思路来抄,就当是时间不一致,只需要在最后一张图中做个修改,让X轴直接写成某年,而不是“-1”和“-2”。最后,应该指出,两级DID只是多级DID的一个特例。这非常重要,怎么强调都不为过。但是,你可以将多期DID的思想直接应用于两期DID。如果你“扭转”它,你就会真正理解多期的DID。
参考
大坏银行?美国银行放松管制的赢家和输家。金融杂志,2010,65(5): 1637-1667。
这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。
更多stata图形绘制(stata画函数图)相关信息请关注本站,本文仅仅做为展示!