这是我在世界经济上找的一篇论文代码(stata小白),我大概知道他是在进行平行趋势检验和psm倾向性得分匹配,但里面的内容我看不懂,求路过的能帮帮孩子吗,帮助孩子度过迷茫期,万分感谢!!
*---正文图2
use "E:\数据与程序\正文图2&附录附表5.dta",replace
global event b4 b3 b2 a0 a1 a2 a3
*正文图2 Panel A
reghdfe lnGreA $event $Controls,absorb(year ID) cluster(ID)
est store s1
{
*
preserve
forvalues i=2/4{
gen b_`i' = _b[b`i']
gen se_b_`i' = _se[b`i']
gen b_`i'LB = b_`i' - t * se_b_`i'
gen b_`i'UB = b_`i' + t * se_b_`i'
}
*
forvalues i=0/3 {
gen a_`i' = _b[a`i']
gen se_a_`i' = _se[a`i']
gen a_`i'LB = a_`i' - t * se_a_`i'
gen a_`i'UB = a_`i' + t * se_a_`i'
}
*
gen b=.
gen LB=.
gen UB=.
*
forvalues i=2/4 {
replace b = b_`i' if b`i' == 1
}
*
replace b=0 if b1 == 1
forvalues i=0/3 {
replace b = a_`i' if a`i' == 1
}
*
replace LB=0 if b1 == 1
forvalues i=2/4 {
replace LB = b_`i'LB if b`i' == 1
}
*
forvalues i=0/3 {
replace LB = a_`i'LB if a`i' == 1
}
*
replace UB=0 if b1 == 1
forvalues i=2/4 {
replace UB = b_`i'UB if b`i' == 1
}
*
forvalues i=0/3 {
replace UB = a_`i'UB if a`i' == 1
}
*
gen distance = .
replace distance = -4 if b4 == 1
replace distance = -3 if b3 == 1
replace distance = -2 if b2 == 1
replace distance = -1 if b1 == 1
replace distance = 0 if a0 == 1
replace distance = 1 if a1 == 1
replace distance = 2 if a2 == 1
replace distance = 3 if a3 == 1
*
keep distance b LB UB
duplicates drop distance,force
sort distance
*
twoway ///
connected b distance,lwidth(*0.5) || ///
(rcap LB UB distance,lcolor(navy) lp(dash) lwidth(*0.5)), ///
xline(-1,lcolor(black) lwidth(*0.5)) ///
yline(0,lcolor(black) lwidth(*0.5)) ///
xscale(range (-4 3)) xlabel(-4 (1) 3,angle(0)) ///
yscale(range (-0.15 0.3)) ylabel(-0.15 (0.15) 0.3,angle(0)) ///
xlabel(-4 "-4" -3 "-3" -2 "-2" -1 "-1" 0 "0" 1 "1" 2 "2" 3 "3") ///
legend(cols(2) pos(6) order(1 2) lab(1 "回归系数") lab(2 "置信区间(90%)")) ///
graphr(c(white)) subtitle(Panel A. 绿色专利申请数量) ///
scheme(s2mono)
restore
}
*正文图2Panel B
reghdfe GreA $event $Controls,absorb(year ID) cluster(ID)
est store s2
{
*
preserve
gen t = invttail(e(df_r),0.05)
forvalues i=2/4{
gen b_`i' = _b[b`i']
gen se_b_`i' = _se[b`i']
gen b_`i'LB = b_`i' - t * se_b_`i'
gen b_`i'UB = b_`i' + t * se_b_`i'
}
*
forvalues i=0/3 {
gen a_`i' = _b[a`i']
gen se_a_`i' = _se[a`i']
gen a_`i'LB = a_`i' - t * se_a_`i'
gen a_`i'UB = a_`i' + t * se_a_`i'
}
*
gen b=.
gen LB=.
gen UB=.
*
forvalues i=2/4 {
replace b = b_`i' if b`i' == 1
}
*
replace b=0 if b1 == 1
forvalues i=0/3 {
replace b = a_`i' if a`i' == 1
}
*
replace LB=0 if b1 == 1
forvalues i=2/4 {
replace LB = b_`i'LB if b`i' == 1
}
*
forvalues i=0/3 {
replace LB = a_`i'LB if a`i' == 1
}
*
replace UB=0 if b1 == 1
forvalues i=2/4 {
replace UB = b_`i'UB if b`i' == 1
}
*
forvalues i=0/3 {
replace UB = a_`i'UB if a`i' == 1
}
*
gen distance = .
replace distance = -4 if b4 == 1
replace distance = -3 if b3 == 1
replace distance = -2 if b2 == 1
replace distance = -1 if b1 == 1
replace distance = 0 if a0 == 1
replace distance = 1 if a1 == 1
replace distance = 2 if a2 == 1
replace distance = 3 if a3 == 1
*
keep distance b LB UB
duplicates drop distance,force
sort distance
*
twoway ///
connected b distance,lwidth(*0.5) || ///
(rcap LB UB distance,lcolor(navy) lp(dash) lwidth(*0.5)), ///
xline(-1,lcolor(black) lwidth(*0.5)) ///
yline(0,lcolor(black) lwidth(*0.5)) ///
xscale(range (-4 3)) xlabel(-4 (1) 3,angle(0)) ///
yscale(range (-0.04 0.08)) ylabel(-0.04 (0.04) 0.08,angle(0)) ///
xlabel(-4 "-4" -3 "-3" -2 "-2" -1 "-1" 0 "0" 1 "1" 2 "2" 3 "3") ///
legend(cols(2) pos(6) order(1 2) lab(1 "回归系数") lab(2 "置信区间(90%)")) ///
graphr(c(white)) subtitle(Panel B. 绿色专利申请占比) ///
scheme(s2mono)
restore
}
*PSM
global x Size Lev Growth Wage Roa SubRate Top1 Age Dual Soe
psmatch2 treat $x,logit neighbor(1) common ties
pstest $x,both
*正文图2 Panel C
reghdfe lnGreA $event $Controls [pw = _weight],absorb(year ID) cluster(ID)
est store s1
{
*
preserve
forvalues i=2/4{
gen b_`i' = _b[b`i']
gen se_b_`i' = _se[b`i']
gen b_`i'LB = b_`i' - t * se_b_`i'
gen b_`i'UB = b_`i' + t * se_b_`i'
}
*
forvalues i=0/3 {
gen a_`i' = _b[a`i']
gen se_a_`i' = _se[a`i']
gen a_`i'LB = a_`i' - t * se_a_`i'
gen a_`i'UB = a_`i' + t * se_a_`i'
}
*
gen b=.
gen LB=.
gen UB=.
*
forvalues i=2/4 {
replace b = b_`i' if b`i' == 1
}
*
replace b=0 if b1 == 1
forvalues i=0/3 {
replace b = a_`i' if a`i' == 1
}
*
replace LB=0 if b1 == 1
forvalues i=2/4 {
replace LB = b_`i'LB if b`i' == 1
}
*
forvalues i=0/3 {
replace LB = a_`i'LB if a`i' == 1
}
*
replace UB=0 if b1 == 1
forvalues i=2/4 {
replace UB = b_`i'UB if b`i' == 1
}
*
forvalues i=0/3 {
replace UB = a_`i'UB if a`i' == 1
}
*
gen distance = .
replace distance = -4 if b4 == 1
replace distance = -3 if b3 == 1
replace distance = -2 if b2 == 1
replace distance = -1 if b1 == 1
replace distance = 0 if a0 == 1
replace distance = 1 if a1 == 1
replace distance = 2 if a2 == 1
replace distance = 3 if a3 == 1
*
keep distance b LB UB
duplicates drop distance,force
sort distance
*
twoway ///
connected b distance,lwidth(*0.5) || ///
(rcap LB UB distance,lcolor(navy) lp(dash) lwidth(*0.5)), ///
xline(-1,lcolor(black) lwidth(*0.5)) ///
yline(0,lcolor(black) lwidth(*0.5)) ///
xscale(range (-4 3)) xlabel(-4 (1) 3,angle(0)) ///
yscale(range (-0.15 0.3)) ylabel(-0.15 (0.15) 0.3,angle(0)) ///
xlabel(-4 "-4" -3 "-3" -2 "-2" -1 "-1" 0 "0" 1 "1" 2 "2" 3 "3") ///
legend(cols(2) pos(6) order(1 2) lab(1 "回归系数") lab(2 "置信区间(90%)")) ///
graphr(c(white)) subtitle(Panel C. 绿色专利申请数量(配对后)) ///
scheme(s2mono)
restore
}
*正文图2 Panel D
reghdfe GreA $event $Controls [pw = _weight],absorb(year ID) cluster(ID)
est store s2
{
*
preserve
gen t = invttail(e(df_r),0.05)
forvalues i=2/4{
gen b_`i' = _b[b`i']
gen se_b_`i' = _se[b`i']
gen b_`i'LB = b_`i' - t * se_b_`i'
gen b_`i'UB = b_`i' + t * se_b_`i'
}
*
forvalues i=0/3 {
gen a_`i' = _b[a`i']
gen se_a_`i' = _se[a`i']
gen a_`i'LB = a_`i' - t * se_a_`i'
gen a_`i'UB = a_`i' + t * se_a_`i'
}
*
gen b=.
gen LB=.
gen UB=.
*
forvalues i=2/4 {
replace b = b_`i' if b`i' == 1
}
*
replace b=0 if b1 == 1
forvalues i=0/3 {
replace b = a_`i' if a`i' == 1
}
*
replace LB=0 if b1 == 1
forvalues i=2/4 {
replace LB = b_`i'LB if b`i' == 1
}
*
forvalues i=0/3 {
replace LB = a_`i'LB if a`i' == 1
}
*
replace UB=0 if b1 == 1
forvalues i=2/4 {
replace UB = b_`i'UB if b`i' == 1
}
*
forvalues i=0/3 {
replace UB = a_`i'UB if a`i' == 1
}
*
gen distance = .
replace distance = -4 if b4 == 1
replace distance = -3 if b3 == 1
replace distance = -2 if b2 == 1
replace distance = -1 if b1 == 1
replace distance = 0 if a0 == 1
replace distance = 1 if a1 == 1
replace distance = 2 if a2 == 1
replace distance = 3 if a3 == 1
*
keep distance b LB UB
duplicates drop distance,force
sort distance
*
twoway ///
connected b distance,lwidth(*0.5) || ///
(rcap LB UB distance,lcolor(navy) lp(dash) lwidth(*0.5)), ///
xline(-1,lcolor(black) lwidth(*0.5)) ///
yline(0,lcolor(black) lwidth(*0.5)) ///
xscale(range (-4 3)) xlabel(-4 (1) 3,angle(0)) ///
yscale(range (-0.04 0.08)) ylabel(-0.04 (0.04) 0.08,angle(0)) ///
xlabel(-4 "-4" -3 "-3" -2 "-2" -1 "-1" 0 "0" 1 "1" 2 "2" 3 "3") ///
legend(cols(2) pos(6) order(1 2) lab(1 "回归系数") lab(2 "置信区间(90%)")) ///
graphr(c(white)) subtitle(Panel D. 绿色专利申请占比(配对后)) ///
scheme(s2mono)
restore
}


雷达卡


京公网安备 11010802022788号







