clear all
mat b = J(500,1,0)
mat se = J(500,1,0)
mat p = J(500,1,0)
global 公司层面控制变量 "Z1 Z2"
global 管理层层面控制变量 "Z3 Z4"
forvalues i=1/500{
qui{
use"C:\回归原始数据-检查后.dta",clear
duplicates drop CITYCODE, force
sample 81, count
keep CITYCODE
merge m:m CITYCODE using "C:\回归原始数据-检查后.dta"
gen treat1 = (_merge == 3)
gen newdid = treat1 * time
encode Ind, gen(Industry)
rename(Industry)(Ind)
drop IndustryCode
logit Y newdid $公司层面控制变量 $管理层层面控制变量 i.year i.Ind, vce(cluster CITYCODE)
}
mat b[`i',1] = _b[newdid]
mat se[`i',1] = _se[newdid]
mat p[`i', 1] = 2 * normal(-abs(_b[newdid] / _se[newdid]))
dis `i'
}
svmat b, names(coef)
svmat se, names(se)
svmat p, names(pvalue)
keep coef1 se1 pvalue1
rename *1 *
drop if pvalue == .
label var pvalue p值
label var coef 估计系数
label var se 标准误
save "C:\实证结果\安慰剂检验结果.dta",replace
count if pvalue <= 0.05
twoway ///
(scatter pvalue coef, mcolor(black) msize(vsmall)), ///
xline(5.7036, lwidth(medium) lpattern(dash)) ///
xlabel(-2(1)2)ylabel(0(0.1)1,format(%4.1f)) legend(off) ///
yline(0.05, lwidth(medium) lpattern(dash)) ///
xtitle(`"{fontface "宋体":估计系数}"') ///
ytitle(`"{fontface "宋体":P-Value}"') ///
scheme(s1mono)
graph save "C:\实证结果\安慰剂检验结果.gph",replace
graph export "C:\实证结果\安慰剂检验结果.png",replace width(2000)
原代码中较关键的也是比较容易出错的部分为:
- mat b[`i',1] = _b[newdid]
- mat se[`i',1] = _se[newdid]
- scalar df_r=e(N)-e(df_m)-1
- mat p[`i',1] = 2*ttail(e(df_r), abs(_b[newdid]/_se[newdid]))
- mat b[`i',1] = _b[newdid]
- mat se[`i',1] = _se[newdid]
- mat p[`i', 1] = 2 * normal(-abs(_b[newdid] / _se[newdid]))


雷达卡




京公网安备 11010802022788号







