全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1419 1
2021-01-23
请问有可以帮忙写这个文章的PSM+DID过程命令的朋友吗?附件有原文
毕业论文,求大神指点!感谢!!!



参考 Rosenbaum and Rubin( 1983) 提出的倾向得分匹配法( PSM) ,本文选取社保基金进入上市公司这一事件,将被社保基金持股的上市公司作为实验组,通过最邻近匹配为其寻找对照组,对照组来自于那些在 2006 - 2015 年间从未被社保基金持股的上市公司。对于实验组和对照组,本文都要求至少有连续三年的数据,包括社保基金进入前一年( t - 1 年) 、社保基金进入当年( t 年) 以及社保基金进入后一年( t + 1 年) ,在这样的约束条件下,本文将 2007 - 2014 年每年实验组和对照组的样本混合,用前一年( t - 1 年) 的公司规模( Size) 、净资产收益率( ROE) 、董事长与总经理是否两职合一(Duality) 、审计意见 Opinion) 、非社保基金机构持股比例( IO) 作为匹配因子,同时控制行业和省份,逐年进行Logit 回归,并根据估计出的模型,计算出每一家上市公司被社保基金持股的概率,即倾向得分。对于每一家社保基金进入的上市公司,我们都选取与其被社保持股概率最接近,且倾向得分之差小于 0. 001 的一家公司作为对照组样本。最终,本文共得到了 411 组配对样本。









为了缓解社保基金持股与盈余质量之间可能存在的内生性问题,本文选取了社保基金进入前一年( t - 1 年) 与社保基金进入后一年( t + 1 年) 的样本,采用了双重差分( DID)估计方法,识别社保基金持股与财务重述之间的因果关系。本文建立的双重差分模型如模型( 2) 所示: Pr( Restatei,t + 1 ) = β0 + β1 × Treat + β2 × After + β3 × Treat × After + Controli,t + δt + 糹 + εi,t                                                  ( 2)

在模型( 2) 中,虚拟变量 Treat 用来区分实验组和对照组,对实验组样本 Treat 变量取值为 1,对照组样本中 Treat 变量则取值为 0。After 为时点变量,社保基金进入后一年( t + 1 年) After 变量取值为 1,社保基金进入前一年( t - 1 年) After 变量取值为 0。 Treat 变量与 After 变量交乘项的系数 β3 即为本文所关注的双重差分估计量,代表了社保基金持股对财务重述的处理效应。







二维码

扫码加我 拉你入群

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

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

全部回复
2021-1-23 15:53:31
gen time1 = (year >= 2009) & !missing(year)   
gen treated1= (SSF1>0)&!missing(SSF1)  
gen did1 = time1*treated1   

reg absinvest did time treated $xlist //这就是一个OLS回归,也可以用diff命令

gen time2 = (year >= 2010) & !missing(year)   
gen treated2= (SSF1>0)&!missing(SSF1)
gen did2 = time2*treated2  

gen time3 = (year >= 2011) & !missing(year)   
gen treated3= (SSF1>0)&!missing(SSF1)  
gen did3 = time3*treated3   

gen time4 = (year >= 2012) & !missing(year)  
gen treated4= (SSF1>0)&!missing(SSF1)
gen did4 = time4*treated4  



cap keep if year==2011
set seed 0001  
gen tmp = runiform()  
sort tmp  
psmatch2 SSF1 $xlist, out(absinvest)logit ate neighbor(1) common caliper(.05) ties
pstest $xlist, both graph  //检验协变量在处理组与控制组之间是否平衡
gen common=_support
drop if common == 0   
drop if  _weight ==.
save 2011.dta,replace


cap keep if year==2012
set seed 0001  
gen tmp = runiform()  
sort tmp  
psmatch2 SSF1 $xlist, out(absinvest)logit ate neighbor(1) common caliper(.05) ties
pstest $xlist, both graph  //检验协变量在处理组与控制组之间是否平衡
gen common=_support
drop if common == 0   
drop if  _weight ==.
save 2012.dta,replace




这样一年一年匹配,是否可以达到以上效果?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群