现实中,大部分政策不是一蹴而就的,更多的情况是分地区逐渐执行,政策在不同时点执行。对于这种情况,就需要采用多时点did模型来研究政策效应!
1 多时点DID模型的形式
多时点did模型中,时间变量time不再是所有个体变量对应相同的时间,而是每个个体i均对应各自的时间!
2 多时点DID模型的应用
2.1 数据
外国投资者被称为“聪明的投资者”,但由于我国资本市场的开发程度较低,2014年之前外国投资者不能直接参与我国股市。2014年,我国推出了沪港通制度(一部分上市公司被选为沪港通标的),沪港通股票可以被外国投资者买卖;2016年又相继推出了深港通。资本市场开放政策是逐步执行的,因而需要采用多时点did模型来研究外资介入对企业的影响。
这里我们收集了2011年至2019年我国上市工业企业的财务数据,以及是否为沪港通标的、是否为深港通标的数据,采用多时点DID方法来研究外资介入对企业资产总计的影响。
2.2 录入数据
打开数据编辑窗口,将数据从Excel中复制到Stata,注意粘贴时选择“将第一行作为变量名”
2.3 数据整理
沪港通在2014年开通,但是有些上市企业在2015年、2016年..才逐渐成为沪港通标的;同理深港通在2016年开通,但有些上市企业在2017、2018年...才逐渐成为深港通标的。在其他年份逐渐成为沪港通、深港通标的的上市企业会造成干扰,所以需要将其删除!
删除干扰数据、生成处理效应变量:
g hgt=1 if 沪港通2014=="是" & 沪港通2015=="是" & 沪港通2016=="是" & 沪港通2017=="是" & 沪港通2018=="是" & 沪港通2019=="是"
replace hgt=0 if 沪港通2014=="否" & 沪港通2015=="否" & 沪港通2016=="否" & 沪港通2017=="否" & 沪港通2018=="否" & 沪港通2019=="否"
g sgt=1 if 深港通2016=="是" & 深港通2017=="是" & 深港通2018=="是" & 深港通2019=="是"
replace sgt=0 if 深港通2016=="否" & 深港通2017=="否" & 深港通2018=="否" & 深港通2019=="否"
g treated= hgt+ sgt
drop if treated==.
转换为面板数据布局:
reshape long 资产总计 资产负债率 流动比率 总资产周转率 roe 沪港通 深港通,i( 证券代码 ) j(year)
生成时间变量:
g code=substr( 证券代码,8,2)
g time2014=(year>=2014 & code=="SH")
g time2016=(year>=2016 & code=="SZ")
g time=time2014+time2016
生产时间和处理效应的交互项:
g did=time*treated
变量变换:
encode 证券代码,g(id)
g lnage=ln(year-成立年)
rename 资产总计 asset
g lnasset=ln(asset)
rename 资产负债率 debt
rename 流动比率 liquit
rename 总资产周转率 turnover
2.4 混合面板的did估计
估计did模型:
reg lnasset did time treated,r
在估计结果中,did变量的系数为0.6486062,对应的P值小于0.1,因而did变量显著。
2.5 面板固定效应的DID模型估计
面板数据设定及did估计:
xtset id year
xtreg lnasset did i.year,fe
在估计结果中,did变量的系数同样显著为正数。
2.6 平行趋势检验
2.6.1 回归方式的检验
和传统did相比,多时点did的政策执行期不止1期。本例中,政策分别在2014年和2016年执行,所以上证企业对应的年份应该减去2014,而深证上市企业对应的年份应该减去2016!
生成政策执行前后3期的检验变量:
g baseyear=2014 if code=="SH"
replace baseyear=2016 if code=="SZ"
g n = year-baseyear
g b3 = (n==-3 & treated==1)
g b2 = (n==-2 & treated==1)
g b1 = (n==-1 & treated==1)
g policyyear = (n==0 & treated==1)
g a1 = (n==1 & treated==1)
g a2 = (n==2 & treated==1)
g a3 = (n==3 & treated==1)
估计各期的效应:
xtreg lnasset time treated b3 b2 b1 policyyear a1 a2 a3 i.year, fe
est sto reg
在估计结果中,政策执行前3期,以及政策执行后3期检验变量的系数均显著,表明政策执行前处理效应企业和非处理效应企业的总资产已经存在差异,平行趋势假设不成立。
2.6.2 绘图方式的检验
绘制图形:
coefplot reg,keep(b3 b2 b1 policyyear a1 a2 a3) vertical recast(connect) yline(0)
在图形中,政策执行前3期,以及政策执行后3期散点图均大于0,表明政策执行前处理效应企业和非处理效应企业的总资产已经存在差异,平行趋势假设不成立。
2.7 另一种平行趋势检验思路
在上述平行趋势检验中,只用了政策执行前3期和后3期的数据。政策执行先于前3期或晚于后3期的样本被丢弃,造成样本损失。为了将所有样本用上,可以将政策执行先于前3期的数据归入前3期,将政策执行晚于后3期的数据归入后3期。采用这种理方法,在回归时需要将政策执行期或者政策执行前1期设为基准期,不能加入回归模型!
生成政策执行前后3期的检验变量:
g nn = year-baseyear
replace nn=-3 if nn<-3
replace nn=3 if nn>3
g bb3 = (nn==-3 & treated==1)
g bb2 = (nn==-2 & treated==1)
g bb1 = (nn==-1 & treated==1)
g policyyear2 = (nn==0 & treated==1)
g aa1 = (nn==1 & treated==1)
g aa2 = (nn==2 & treated==1)
g aa3 = (nn==3 & treated==1)
估计各期的效应:
xtreg lnasset time treated bb3 bb2 bb1 aa1 aa2 aa3 i.year, fe
est sto reg
将policyyear2设为基准期,不能放入回归模型中!
在回归结果中,政策执行后1期、后2期的检验变量不显著,因而平行趋势假设不成立。
绘制图形:
coefplot reg,keep(bb3 bb2 bb1 aa1 aa2 aa3) vertical recast(connect) yline(0)
可以发现图形中散点的走势与上述平行检验图形的走势基本一致。政策执行前3期,以及政策执行后3期散点图均小于0,说明他们都低于基准期(policyyear2),表明平行趋势假设不成立。