接着“很实用! 一张图就把基准回归, 稳健性检验, 异质性分析, 安慰剂检验以及进一步拓展结果全囊括了”,这篇文章里作者做了DID中的SUTVA检验。
以下情况可能对“开放专利图书馆能够促进创新”的观点提出挑战:图书馆的开放可能导致发明者在地理上的迁移,但对创新并未产生净效应。如果发明者因为图书馆的开放而迁移到专利图书馆所在地,那么所观察到的变化可能只是专利活动在地理分布上的调整,而非创新活动的实际增加。在这种情况下,处理分配(treatment assignment)违反了稳定单元处理值假设(SUTVA),因为专利图书馆的开放可能会削弱对照图书馆地区的创新能力。
为了探究这一可能性,重新进行了分析,假设那些最可能迁移至专利图书馆区域的发明者,来自地理位置上最接近的对照区域。基于这一假设,对基准分析进行了复现,这次排除了专利图书馆,转而为每个被排除的专利图书馆最近的联邦存储图书馆分配了一个虚假的处理指示变量(就是造一个fake treatment)。在图6的第8行展示了这些分析结果。结果显示,相关系数略微为负,且在统计学上不显著,同时与基准系数的量级也不匹配,这表明与较远的对照图书馆相比,较近的对照图书馆并没有显示出明显的趋势差异。
提及SUTVA的post,参看1.CIC模型是对DID估计的推广, 还能知道在不同分布处的处理效应情况,2.近年来最全面和接地气的“因果推断统计学综述”, 真后悔接触这篇还是晚了点! 3.务必了解的综述: 机器学习控制因果识别中的混淆变量大有可为!4.应用计量经济学现状: 因果推断与政策评估最全综述,5.诚实双重差分法DID, 面板事件研究法和Bacon分解的经典应用文!6.在双重差分模型中使用倾向得分估计政策变化效应操作及注意事项! 附100篇相关文章! 7.最新: 时间序列因果推断, 问题, 方法和模型最全综述
*群友可前往社群下载完整数据和代码.
**计量经济圈已调试,可以直接运行出结果。 * Test of SUTVA use "D:/下载/129581-V1/Kit/data/main_work", clear cap drop strata_id mean drop if patent_lib==1 bys pat_ID: egen cf=min(pat_FDL_dist) replace patent_lib=(pat_FDL_dist==cf) replace treated = patent_lib egen strata_id = group(pat_ID stateid) bysort strata_id: egen mean = mean(treated) drop if mean==0 | mean==1 keep if yearsopen10>=-5 & yearsopen10<=5 gen post = yearsopen10>=0 xi i.post*patent_lib, noomit xtset identifier yearsopen10 cem pat_ID(#0) stateid(#0), treatment(treated) drop if cem_matched==0 eststo r2: xtreg pat_pop_distance _IposXpaten_1 post patent_lib i.yearID2 [aweight=cem_weights], fe cluster(pat_ID) sum pat_pop_distance estadd scalar mean_scalar = r(mean)
**计量经济圈已调试,可以直接运行出结果。 * Figure 2: Expansion in time
use "D:/下载/129581-V1/Kit/data/patent_lib", replace
keep city_library openingyear
gen one = 1
sort openingyear city_library
gen two = sum(one)
replace city_library = proper(city_library)
keep if openingyear>=1974 & openingyear<1998
twoway (scatter two openingyear if openingyear>=1975 & openingyear<=1980, msize(0.9) mlabel(city_library) color(gs4) msymbol(O) mlabsize(1.6))(scatter two openingyear if openingyear>1980 & openingyear<=1985, msize(0.9) mlabel(city_library) color(gs7) msymbol(D) mlabsize(1.6))(scatter two openingyear if openingyear>1985 & openingyear<=1990, msize(0.9) mlabel(city_library) color(gs10) msymbol(T) mlabsize(1.6))(scatter two openingyear if openingyear>1990 & openingyear!=., mlabel(city_library) msize(0.9) color(gs13) msymbol(S) mlabsize(1.6)), ysize(8) xscale(range(1975 2000)) xlabel(1975(5)2000) ytitle("Number of patent libraries in U.S.", size(3)) xtitle("Opening year", size(3)) legend(off)
graph export "D:/下载/129581-V1/Kit/results/Fig2.pdf", replace
画地图,其实Stata也不在话下,关键是作者的可视化做得真好。
**计量经济圈已调试,可以直接运行出结果,当然中间需要下载一些命令,比如gtools。 * Figure 1: Expansion in space use "D:/下载/129581-V1/Kit/data/patent_lib", replace drop if openingyear==. ren city_library lib_city drop if openingyear>1997 gen old = openingyear<1975 drop if lng<-130 gen gradation=. replace gradation=1 if openingyear>=1975 & openingyear<=1980 replace gradation=2 if openingyear>1980 & openingyear<=1985 replace gradation=3 if openingyear>1985 & openingyear<=1990 replace gradation=4 if openingyear>1990 & openingyear!=. label define liblabel 0 "1870-1974" 1 "1975-1980"2 "1981-1985" 3 "1986-1990" 4 "after 1990" label values gradation liblabel save "D:/下载/129581-V1/Kit/data/oldPTDL", replace cd "D:/下载/129581-V1/Kit/data/" shp2dta using cb_2016_us_state_500k.shp, database("Newmap") coordinates("Newcoord") genid(id) replace use Newmap.dta, clear drop if NAME=="Alaska" drop if NAME==" United States Virgin Islands" drop if NAME=="Puerto Rico" drop if NAME=="Hawaii" drop if NAME=="Guam" drop if id==33 drop if id==55 drop if id==56 spmap using Newcoord, id(id) point(data("oldPTDL.dta") select(drop if old==0) x(lng) y(lat ) sh (o) si(huge) fc(black) legenda(on) legtitle("Opened in") leglabel(1870-1974)) legend(size( normal) pos(5) region(fcolor(white)) symxsize(*0.5)) graph export "D:/下载/129581-V1/Kit/results/Fig1a.pdf", replace spmap using Newcoord, id(id) point(data("oldPTDL.dta") select(drop if old==1) by(gradation) x(lng) y(lat ) sh (O D T S) si(large large large large) fc(gs4 gs7 gs10 gs13) legenda(on) legtitle("Opened in") ) legend(size( normal) pos(5) region(fcolor(white)) symxsize(*0.5)) graph export "D:/下载/129581-V1/Kit/results/Fig1b.pdf", replace
**计量经济圈已调试,可以直接运行出结果,当然中间需要下载一些命令,比如gtools。
* Figure B-5 use "D:/下载/129581-V1/Kit/data/main_work", clear keep pat_ID city_patent_library duplicates drop save "D:/下载/129581-V1/Kit/data/pat_ID_lib_city", replace use "D:/下载/129581-V1/Kit/data/main_work", clear gen b = . gen se = . gen number = . egen yearID = group(yearsopen10) gen post = yearsopen10>=0 xi i.post*patent_lib, noomit xtset identifier yearsopen10 cem pat_ID(#0) stateid(#0) $matched, treatment(treated) drop if cem_matched==0 eststo r0: reg pat_pop_distance _IposXpaten_1 post patent_lib i.yearID2 [aweight=cem_weights], cluster(pat_ID) levelsof(pat_ID), local(pat) local i = 1 foreach x in `pat' { eststo r0: xtreg pat_pop_distance _IposXpaten_1 post patent_lib i.yearID2 [aweight=cem_weights] if pat_ID!=`x', fe cluster(pat_ID) replace b = _b[_IposXpaten_1] in `i' replace se = _se[_IposXpaten_1] in `i' replace number = `x' in `i' local i = `i'+1 } sort b keep b se number ren number pat_ID drop if pat_ID==. joinby pat_ID using "data\pat_ID_lib_city" replace city_patent_library = proper(city_patent_library) gen upper = b+1.68*se gen lower = b-1.68*se set scheme lean1, perm drop pat_ID sort b gen pat_ID=_n labmask pat_ID, values(city_patent_library) // take over value label twoway (scatter b pat_ID ,color(edkblue)) (rcap upper lower pat_ID,color(edkblue) ), yline(0) yscale(range(0 6)) ylabel(0(1)6) ytitle(Coefficient) legend(off) xtitle("") xlabel(1(1)45, valuelabel angle(90)) ytitle(Coefficient dropping one library) graph export "D:/下载/129581-V1/Kit/results/FigB5.pdf", replace erase "data\pat_ID_lib_city.dta"
*完整版数据和代码可以直接前往社群下载。 关于多期DID或交叠DID: 1.DID相关前沿问题“政策交错执行+堆叠DID+事件研究”, 附完整slides,2.交错(渐进)DID中, 用TWFE估计处理效应的问题, 及Bacon分解识别估计偏误,3.典范! 这篇AER在一图表里用了所有DID最新进展方法, 审稿人直接服了!4.最新Sun和Abraham(2020)和TWFE估计多期或交错DID并绘图展示结果!详细解读code!5.多期DID或渐进DID或交叠DID, 最新Stata执行命令整理如下供大家学习,6.多期DID前沿方法大讨论, e.g., 进入-退出型DID, 异质性和动态性处理效应DID, 基期选择问题等,7.交叠DID中平行趋势检验, 事件研究图绘制, 安慰剂检验的保姆级程序指南!8.欣慰! 营养午餐计划终于登上TOP5! 交叠DID+异质性稳健DID!9.用事件研究法开展政策评估的过程, 手把手教学文章!10.从双重差分法到事件研究法, 双重差分滥用与需要注意的问题,11.系统梳理DID最新进展: 从多期DID的潜在问题到当前主流解决方法和代码! 12.标准DID中的平行趋势检验,动态效应, 安慰剂检验, 预期效应教程,13.DID从经典到前沿方法的保姆级教程, 释放最完整数据和代码!
7年,计量经济圈近2000篇不重类计量文章,
可直接在公众号菜单栏搜索任何计量相关问题,
Econometrics Circle