一文读懂合成控制法 (Synthetic Control Method)操作及Stata应用
The following article is from 数量经济学 Author 数量经济学
ssc install synth
synth depvar predictorvars , trunit(#) trperiod(#) ///
[counit(numlist) xperiod(numlist) mspeperiod() ///
resultsperiod() nested allopt unitnames(varname) ///
figure keep(file) customV(numlist) optsettings ]
depvar 表示结果变量(outcome variable)
predictorvars为预测变量(predictors)( the list of predictor variables)( By default, all predictor variables are averaged over the entire pre-intervention period, which ranges from the earliest time period available in the panel time variable specified in tsset timevar to the period immediately prior to the intervention specified in trperiod. Missing values are ignored in the averages.)
trunit(#)用于指定处理地区(trunit表示 treated unit)。trunit(#) the unit number of the unit affected by the intervention as given in the panel id variable specified in tsset panelvar(表示需要前期进行面板数据设定); see tsset. Notice that only a single unit number can be specified. If the intervention of interest affected several units the user may chose to combine these units first and then treat them as a single unit affected by the intervention.(表示一次只能一个地区受到影响,若是有多个地区受到影响,需要前期把其合成)
trperiod(#)用于指定政策干预开始的时期(trperiod表示 treated period)(the time period when the intervention occurred)。
counit(numlist)用于指定潜在的控制地区(即donor pool,其中counit表示 control units),默认为数据集中的除处理地区以外的所有地区。
xperiod(numlist)用于指定将预测变量(predictors)进行平均的期间,默认为政策干预开始之前的所有时期(theentire pre-intervention period)。
mspeperiod()用于指定最小化均方预测误差(MSPE)的时期,默认为政策干预开始之前的所有时期。
figure表示将处理地区与合成控制的结果变量画时间趋势图,而选择项“resultsperiod()”用于指定此图的时间范围(默认为整个样本期间)。
nested表示使用嵌套的数值方法寻找最优的合成控制(推荐使用此选项),这比默认方法更费时间,但可能更精确。在使用选择项“nested”时,如果再加上选择项“allopt”(即“nested allopt”),则比单独使用“nested”还要费时间,但精确度可能更高。
keep(filename)将估计结果(比如,合成控制的权重、结果变量)存为另一Stata数据集(filename.dta),以便进行后续计算。
replace 表示将keep(filename) 中的data若是存在可以对其进行替换
keep(filename)中的数据主要包括如下内容:
_time: 一个变量,包含resultsperiod()中指定的所有时间段的相应时间段(来自tsset面板时间变量(timevar))。
_Y_treated: 对于resultsperiod()中指定的每个时间段,tr()中指定的处理单元的观察结果depvar。
_Y_synthetic: 估计合成控制单元的估计结果
_Co_Number: 包含在co()中指定的每个控制单元的单元号(来自tsset面板单元变量(panelvar))的变量。
_W_weight:包含co()中指定的每个控制单元的估计单位权重的变量。
更多选择项,详见help synth。
sysuse synth_smoking
2、面板数据设定
xtset state year
查看数据结果截图:
相关数据含义如下:
该研究的结果变量为cigsale(人均香烟消费量,包/年)
预测变量包括retprice(平均香烟零售价格)、lnincome(人均收入对数)、age15to24(15-24岁人口所占总人口比重,年轻人为吸烟主力)、beer(人均啤酒消费量,烟酒不分家)。这些预测变量均为1980-1988年的州平均值,另外还使用1975、1980与1988年的人均香烟消费量作为三个额外的预测变量。另外,面板变量为 state(州),而时间变量为 year(年)。
3、合成控制法操作
synth cigsale retprice lnincome age15to24 beer cigsale(1975) cigsale(1980) cigsale(1988), trunit(3)trperiod(1989) xperiod(1980(1)1988) figure nested keep(smoking_synth)
上述代码全部为:synth cigsale retprice lnincome age15to24 beer cigsale(1975) cigsale(1980) cigsale(1988), trunit(3)trperiod(1989) xperiod(1980(1)1988) figure nested keep(smoking_synth)
相关含义表示为:
其中,“cigsale(1975)cigsale(1980) cigsale(1988)”分别表示人均香烟消费在1975、1980与1988年的取值。
必选项“trunit(3)”表示第3个州(即加州)为处理地区;
必选项“trperiod(1989)”表示控烟法在1989年开始实施。
选择项“xperiod(1980(1)1988)”表示将预测变量在1980-1988年期间进行平均,其中“1980(1)1988”表示始于1980年,以1年为间隔,而止于1988年;其效果等价于“1980 1981 1982 1983 1984 1985 1986 1987 1988”,而前者的写法显然更为简洁。
选择项“keep(smoking_synth)”将估计结果存为Stata数据集smoking_synth.dta(放在Stata的当前工作路径)。估计结果如下。
上表显示,大多数州的权重为0,只有以下五个州的权重为正,即Colorado (0.161),Connecticut (0.068),Montana (0.201),Nevada (0.235)与Utah (0.335),此结果与Abadie et al. (2010)汇报的结果非常接近(细微差别或由于计算误差)。
上表显示了合成中的每个控件状态的权重,表中报告的权重表明:加州的吸烟趋势在提案通过之前最好是由这Colorado 、Connecticut、Montana、Nevada 与Utah表示。其他状态的w权值为零。
考察加州与合成加州的预测变量是否接近:
在表1中,比较了实际的加利福尼亚和合成的加利福尼亚的预测变量均十分接近,故合成加州可以很好地复制加州的经济特征。
然后比较二者的人均香烟消费量在1989年前后的表现:
上图显示了加州和合成加州在1970-2000年期间的人均烟草销售额。注意,合成加州的人均销售量非常好的拟合追踪了加州整个99号提案前的变化趋势。
高程度的拟合表明,在1989年控烟法之前,合成加州的人均香烟消费与真实加州几乎如影相随,表明合成加州可以很好地作为加州如未控烟的反事实替身。在控烟法实施之后,加州与合成加州的人均香烟消费量即开始分岔,而且此效应越来越大。
我们估计第99号提案对香烟消费的影响分水岭是在99通过这个时间点,该法案一通过两条线开始明显地分开。
而香烟消费在合成加州继续其温和下降趋势来看,真正的加州经历了大幅下滑。这两条线之间的差异表明第99号提案对人均香烟销量的有很大的负面影响。
上图表明99号提案对人均香烟销量有很大影响,这种效应随着时间的推移而增强。我们的结果表明,对于整个1989-2000年期间的卷烟每包的消费量平均减少了近20包,人均下降约25%。
4、加州与合成加州差异对比
use 计量经济学服务中心smoking_synth.dta, clear
gen effect= _Y_treated - _Y_synthetic
label variable _time "year"
label variable effect "gap in per-capita cigarette sales (in packs)"
line effect _time, xline(1988,lp(dot) lc(black)) yline(0,lp(dash) lc(black)) ///
text(-25 1988 "Passage of Proposition 99 {&rarr} ", placement(sw)) /// placement() et a. options for text()
xtitle(year) ytitle("gap in per-capita cigarette sales (in packs)") lc(black) xlabel(1970(5)2000) ///
title("政策效应:加州与合成加州人均香烟销售量差异") ///
subtitle("2017.10.01") ///
note("计量经济学服务中心2017.10")
为了评估我们的结果的稳健性,我们使用了其他其他预测变量,包括各州的失业率,收入不平等,贫困,福利转移,犯罪率,毒品相关的逮捕率,香烟税,人口密度,以及种族等变量,发现结果都是稳健的。
为了评估我们的估计的显著性,我们提出:我们的结果是否是随机偶然的。如果我们随机选择一个州而不是加州来进行研究? 我们多久可以得到这样一个显著的结果,为了回答这个问题,我们使用安慰剂测试。
类似于 Abadie和Gardeazabal (2003), Bertrand, Duflo和Mullainathan (2004),我们使用合成药物进行安慰剂研究的方法,具体应用到香烟控制法案研究。
“安慰剂”(placebo)一词来自医学上的随机实验,比如要检验某种新药的疗效。此时,可将参加实验的人群随机分为两组,其中一组为实验组,服用真药;而另一组为控制组,服用安慰剂(比如,无用的糖丸),并且不让参与者知道自己服用的究竟是真药还是安慰剂,以避免由于主观心理作用而影响实验效果,称为“安慰剂效应”(placebo effect)。
为此,Abadie et al. (2010)进行了一系列的安慰剂检验,依次将donor pool中的每个州作为假想的处理地区(假设也在1988年通过控烟法),而将加州作为控制地区对待,然后使用合成控制法估计其“控烟效应”,也称为“安慰剂效应”。通过这一系列的安慰剂检验,即可得到安慰剂效应的分布,并将加州的处理效应与之对比。
在上图中,黑线表示加州的处理效应(即加州与合成加州的人均香烟消费之差),而灰线表示其他19个控制州的安慰剂效应(即这些州与其相应合成州的人均香烟消费之差)。显然,与其他州的安慰剂效应相比,加州的(负)处理效应显得特别大。假如加州的控烟法并无任何效应,则在这20个州中,碰巧看到加州的处理效应最大的概率仅为1/20 = 0.05,而这正好是常用的显著性水平。
政策实施前均方预测误差的平方根
tempname resmat
forvalues i = 1/4 {
synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975) , trunit(`i') trperiod(1989) xperiod(1980(1)1988)
matrix `resmat' = nullmat(`resmat') \ e(RMSPE)
local names `"`names' `"`i'"'"'
}
mat colnames `resmat' = "RMSPE"
mat rownames `resmat' = `names'
matlist `resmat' , row("Treated Unit")
A PANEL DATA APPROACH FOR PROGRAM EVALUATION: MEASURING THE BENEFITS OF POLITICAL AND ECONOMIC INTEGRATION OF HONG KONG WITH MAINLAND CHINA,原文链接:http://onlinelibrary.wiley.com/wol1/doi/10.1002/jae.1230/suppinfo
重磅推荐 |回归合成控制法:以2008年中国经济刺激方案为例
合成控制法(Synthetic Control Method)(附PPT免费公开)
为了帮助小伙伴们快速掌握stata,我们特别推出2020学术提升计划!
第13届Stata寒假研讨班上海专场时间:2020年1月8日-1月11日(四天)
第14届Stata寒假研讨班北京专场时间:2020年1月15日-1月18日(四天)
本次参加现场班的学员将免费获赠精品课程《零基础学空间计量:空间计量及Geoda、stata应用》,目前累计590+订阅学习。
另外现场还将赠送初级班+高级班视频。
截至目前,计量经济学服务中心已经在西安、北京、上海、广州等地成功举办了12场stata高级班,并在深圳南方科技大学举办了一场stata编程研讨班。全国300余所高校的青年教师、硕士研究生、博士研究生、高年级本科生参加过我们组织的计量经济学系列研讨会。
由于种种原因,很多学员一直想学却没有学,2020,给自己一个勇敢的理由,一起来放大你的小目标。
计量经济学服务中心团队成员精耕细作,紧跟stata前沿,各种操作以及学习内容均不断升级!重软件操作、重实战是课程一直以来的优势与好评。控制人数的小班教学以确保每一位学员真正学到操作技能。
重要的事情说三遍,我们课程全部带电脑,并提供完整do文档以及数据、讲义、资料书等,手把手教学和操作学习!
学员福利:一次报名,2年内不限次数线下免费学(包括但不限于中心举办的其他研讨班和学术会议、论坛等),学完之后并有课程群等一对一答疑解惑。
ps:国内计量经济学理论方法学习很多均建立在Eviews软件上(stata书籍对理论方法等介绍的少),本次课程在横截面、时间序列、面板、门限等众多章节均穿插着简要介绍Eviews软件应用,帮助大家站在学习者的角度和路线全面构建起计量经济学框架和模型思路。
授课时间:
上海:2020年1月8日--1月11日(四天)
北京:2020年1月15日--1月18日(四天)
本次课程一共十六讲,初级+高级课程,由零基础学起,理论与软件操作并重,手把手教你学计量。课程涵盖数据管理+横截面+时间序列+面板数据+门限回归+倾向匹配得分+空间计量等专题,是一个完整的课程体系,具体内容如下:
Class 1. A Quick Tour of Stata
stata简介Why Stata?/what is stata
软件界面The Stata Interface/What Stata looks like
参考书籍推荐Textbooks
log工作日志和do文档What to do first?Set a working directory/Keeping track of things(Do-files and log-files )
命令以及帮助the command & Getting Help(包括help的使用以及ssc install 、findit等外部命令获取和使用)
Getting started with stata
基于stata的数据分析流程
Class 2. DATABASE MANIPULATION数据管理
导入导出 Import and Export
面板数据、时间数据、官方数据Time series data &Panel data & Example Datasets
变量以及数据Variable and data types/Indicator or data variables
数据管理Data management
排序Order, aorder, and move
变量标签Variable Labels and Notes
数据转换Converting strings to numerics and vice versa(encode decode destring tostring 等)
数据横向合并和纵向合并Append and merge
数据生成Generating new variables
描述分析Describing the data (summarize)
基础命令Basic commands(table tabulate)
tabstat命令
CSMAR及中经网数据库复杂的使用技巧
Class 3&4. 相关分析Correlation analysis & 回归分析Estimation
Class 5. 时间序列
平稳性检验
协整检验
格兰杰检验
课程总结以及论文讲解
Class 6&7. 静态面板模型/动态面板数据模型
面板数据描述性分析
面板数据平稳性检验
静态面板数据回归分析:随机效应模型和固定效应模型、Hausman检验等
动态面板数据模型
Class 8. 门限回归
包括横截面与面板模型的门限回归,主讲xthreg、xtthres、threshold等命令,并与Eviews软件对比,让大家对门限回归有一个全面的了解。
门限回归理论介绍
门限回归操作流程图
门限回归操作以及结果解释等
论文讲解以及课程总结
Class 9. 内生性问题专题I:倾向匹配得分
倾向匹配得分简介、为何使用 PSM ?、传统的配对方法、配对过程中的两个核心问题、匹配方法、优缺点、
倾向匹配得分建模流程图
PSM操作命令及其具体应用
论文讲解
课程总结
Class 10. 内生性问题专题II:合成控制法
Class 11. 结果输出Extracting results
Post summary statistics(summarize、tabstat)
Post correlation coefficients (pwcorr、correlate、logout )
Coefficients/equations
Basic syntax and usage
estout、esttab、estadd and other useful Stata commands
Standard errors, p-values, and summary statistics
Use with Word/Rtf/Excel/LaTeX
Other Advanced Examples(esttab、outreg2、logout等)
Class 12 . stata新工具——do文档编程与输入法结合
Class 13. 经济金融数据库(国泰安数据库、中经网、CGSS数据库)使用技巧
Class 14. 论文写作专题(从源头数据处理到分析)
Class 15. 横截面空间计量模型与面板空间模型(包括空间自相关检验、空间效应检验、SAR、SEM模型以及空间面板随机与固定效应检验等)
空间计量发展概述
空间回归模型动因
空间效应
空间权重矩阵
空间相关性度量
空间计量模型简介、流程图、识别检验、判别准则等
横截面空间计量模型及stata应用
面板空间计量模型及stata应用(面板固定效应与随机效应等检验)
Class 16. 空间计量经济学及Stata应用(包括基于stata16的空间数据汇总、空间设定、权重矩阵创建、estat moran、横截面以及空间计量模型等)
课程详情
会议时间及地点:
上海:2020年1月8日-11日(四天),地点:具体地点另行通知
北京:2020年1月15日-18日(四天),地点:具体地点另行通知
会议费用:普通价:4000元,学生价:3600元(凭学生证优惠价),差旅及住宿费用自理。
会议安排:上午9:00-12:00;下午2:00-5:00;答疑5:00-5:30
授课形式:老师讲授指导、学员操作练习、现场答疑解惑。
会议人数:中心非常重视与学员互动以及软件操作,为保证学习效果,限额50人。
课程资料:提供PPT、课程讲义以及完整的do文档等。
缴费成功后都享受如下优惠
1.同一单位3人以上报名,9折优惠;
2.同一单位5人以上报名,8折优惠(前2项优惠不能叠加)
3、根据报名缴费顺序安排现场座位。
1、掌握计量经济学及Stata操作,能够运用Stata完成复杂的数据处理工作,并熟练运用Stata完成写作;
2、了解常用模型的思路、原理和建模方法,从源头数据库等数据下载、搜集、整理、管理,到stata数据操作,培养数据分析能力;
3、通过中心精心准备的do文档讲义来完成学习,并实现do文档中现成命令的可复制性(只需要修改部分do文档命令的变量,就可以一键实现数据分析和数据管理的结果,具有复制性)(中心紧跟前沿,do文档实时更新,能够处理各种复杂数据分析)
学习对象
经济及社科类青年教师、博士生、硕士生、高年级本科生。(1 Stata爱好学习者。2 经济管理以及人文社科领域人员、各类市场调查公司、咨询公司、互联网公司和科研机构需要进行数据处理的人士。)
报名流程
1、电话咨询,给予反馈,确认报名信息。
2、交费(微信、支付宝或对公转账等),报名前请确认信息。
3、开课前一周发送培训教室路线图以及课程通知,电子版预习资料。
4、现场领取发票及邀请函(现在报名缴费可以根据需要提前邮寄发票以及会议通知等)。
支付方式:
对公转款(转款时务必在摘要中注明姓名学校和联系方式)
开户名:陕西经纶教育科技有限公司
开户行:招行西安科技路支行
银行卡号:129909261610116
相关单位:
主办方:计量经济学服务中心
协办方:数量经济学、陕西经纶教育科技有限公司、西安造梦信息技术有限公司
有需要现场刷公务卡的,可以提前预交定金300元,现场刷卡再全额退还或者补齐会务费。
1、请学员自带笔记本电脑,并自行在网络搜索下载15.0/16.0。
2、报名截止日期:2020年1月5日 17:00。
3、如您报名后有事不能参加,请及时告知!2019年10月30日17:00之后不再接受退费。
4、本次会议可提供增值税普通发票,如需开具(请联系微信:Xindream1992),并根据自己单位财务部门要求填写抬头和类目信息(一旦开具不能重开),发票类目为:会议服务费、信息服务费、培训费、会议费、咨询费等,报名时可以直接任选其一,其他类目无法开具。
5、会议邀请函通知及报名咨询等直接联系王老师。
在线咨询:
王老师
电话:18710973211
微信:Xindream1992
扫码添加微信