还剩4页未读,继续阅读
文本内容:
双重差分安慰剂检验代码安慰剂检验DIDDID进行政策分析的重要假设是满足平行趋势在实证分析中,除了要检验平行趋势,一般情况还需要进行安慰剂检验本文主要介绍如何随机抽取样本作为处理组来进行安慰剂检验以下是全部代码,在进行分析前手头需要有placebo.dta这一数据集,id这一数据集是仅包括个体识别码和时间的数据,从placebo.dta中截取本文未能提供原始数据(样本量太大)下面对代码进行逐一解读use id,clear〃/调用id数据sample1〃/随机选1%个样本后续用于作为处理组keep id〃/仅保留id这T弋码save temp,replace〃/保存为temp文件,用于后续合并使用use placeboclearz/〃调用本文主要的使用数据merge m:l idusing temp〃/与前文随机生成的1%的样本数据集合并cap droptreat〃/如果数据集有treat这一变量,则删除gen treat=_merge==3〃/将前面随机生成的1%样本设置为处理组drop_merge〃/删除多余变量save placebo_did,replace/〃这一步好像有点多余reghdfe aqiind c.treat#c.post htmptItmpt$absorb$clusterz〃/进行回归,注意这里定义了两个global,前文没有呈现parmestjormat estimatemin95max95%
8.2f p%
8.3f savingCtempl.dta,replace〃/将回归结果系数保存到tempi数据集中use templ.dta,clearkeep if parm==c.treat#c.post〃/仅保留关心的系数save simulations.dta,replace〃/将结果保存到simulation数据集中下面部分是对上一个模块的循环,设置循环200次循环主要体现在下面的sample这一命令其余就是不断生成估计的系数,然后使用append命令将结果合并在一起forvalues i=ll200{use id,clearsample1〃随机选1%个样本keep idsavetemp,replaceuse placebo,clearmerge m:l idusing tempcapdrop treagentreat=_merge==3drop_mergesave placebo_did replacezreghdfeaqiindc.treat#c.post htmptItmpt,$absorb$clusterparmestjormat estimatemin95max95%
8.2fp%
8.3f savingCtempl.dta,replaceuse templ.dta*,clearkeep ifparm==c.treat#c.postappend usingsimulations.dtasave simulations.dta,replace这一部分是对处理得到的数据进行绘图使用的命令为dpplot,其余均为绘图的常规操作,此处不再赘述use simulations.dta\cleardpplot estimatexline0,lcblack*
0.5xline-
14.414Jcred*
0.5Ipdash////xlabel-15515xtitleTreatment Effect,size*
0.8ytitleDensity size*
0.8znote captiongraphexport安慰齐ij检验.png,replace最后放上一张图:点亮在看,截图并发送关键词安慰剂至后台获取本文代码一一su.
04.020-
15.00-
10.00-
5.
000.
005.
0010.
0015.00A8060。