* 表格 2 Panel A 代码 use data_si_chong, clear reg mean1996 new if distance <= 30, cluster(county) reg elevation new if distance <= 30, cluster(county) reg slope new if distance <= 30, cluster(county)
use data_cencus2000.dta, clear reg minorp new if distance <= 30, cluster(county)
use data_si_chong, clear gen x_chengdu = 104.071208 gen y_chengdu = 30.665205 gen x_chongqing = 106.557078 gen y_chongqing = 29.569389 geodist ycenter xcenter y_chengdu x_chengdu, gen(dist_chengdu) geodist ycenter xcenter y_chongq x_chongq, gen(dist_chongqing) reg dist_chengdu new if distance <= 30, cluster(county) reg dist_chongqing new if distance <= 30, cluster(county)
图 3:边界线附近的初始发展水平
图 3 的 Stata 代码为:
use data_si_chong, clear
gen dist_g = distance replace dist_g =-distance if new ==0
keep if distance <=100 gen group =-100 forvalues i =1/20{ replace group =-100+(`i'*10) if dist_g >= -100 + (`i' * 10) & dist_g <- 90 + (`i'*10) }
egen distance_mean = mean(dist_g), by(group) egen mean1996_mean = mean(mean1996), by(group) egen elevation_mean = mean(elevation), by(group) egen slope_mean = mean(slope), by(group)
reg mean1996 new dist_g predict mean1996_p predict se1,stdp gen mean1996_low = mean1996_p -1.96* se1 gen mean1996_high = mean1996_p +1.96* se1 by group, sort: egen float count = count(mean1996_p)
twoway /// scatter mean1996_mean distance_mean if/// distance <=100, mcolor(black)||/// line mean1996_p mean1996_low mean1996_high dist_g /// if dist_g <0& dist_g >=-100,/// pstyle(p p3 p3) lcolor(black) lpattern(solid)||/// line mean1996_p mean1996_low mean1996_high dist_g /// if dist_g >0& dist_g <=100, pstyle(p p3 p3)/// lcolor(black) lpattern(solid)/// ytitle(Light intensity of 1996)/// xtitle(Distance to cutoff)/// legend(off) xline(0,lpattern(dash))/// text(1.750"Chongqing",size(medlarge))/// text(1.7-50"Sichuan",size(medlarge)) gr export fig3.png, replace width(1200)
reg ln_diff_2013_1996 new xcenter ycenter if distance <= 30, cluster(county) reg ln_diff_2013_1996 new xcenter ycenter if distance <= 50, cluster(county)
gen x2 = xcenter^2 gen y2 = ycenter^2 gen xy = xcenter*ycenter reg ln_diff_2013_1996 new xcenter ycenter x2 y2 xy if distance <= 30, cluster(county) reg ln_diff_2013_1996 new xcenter ycenter x2 y2 xy if distance <= 50, cluster(county)
gen x3 = xcenter^3 gen y3 = ycenter^3 gen x2y = x2*ycenter gen xy2 = xcenter*y2 reg ln_diff_2013_1996 new x3 y3 x2y xy2 x2 y2 xy xcenter ycenter, cluster(county)
gen x4 = xcenter^4 gen x3y = xcenter^3*ycenter gen x2y2 = xcenter^2*ycenter^2 gen xy3 = xcenter*ycenter^3 gen y4 = ycenter^4 reg ln_diff_2013_1996 new x4 x3y x2y2 xy3 y4 x3 y3 x2y xy2 x2 y2 xy xcenter ycenter, cluster(county)
图 5
图 5 的 Stata 代码为:
use data_si_chong,clear
gen dist_g = distance replace dist_g = -distance if new == 0
gen group = -100 if distance <= 100 forvalues i = 1(1)20{ replace group = -100 + (`i'*10) if dist_g >= -100 + (`i'*10) & dist_g < -90 + (`i'*10) }
gen growthrate = ln(mean2013 + 0.01) - ln(mean1996 + 0.01) egen growthrate_mean = mean(growthrate), by(group) egen distance_mean = mean(dist_g), by(group)
quireg growthrate new dist_g if distance <= 100 predict growthrate_p predictse, stdp gen growthrate_low = growthrate_p - 1.96 * se gen growthrate_high = growthrate_p + 1.96 * se by group, sort: egen float count = count(growthrate_p)
评论