Synth_Runner命令:合成控制法高效实现

文摘   教育   2024-09-15 22:03   中国  

👇 连享会 · 推文导航 | www.lianxh.cn

🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)

 课程特色 · 2024空间计量

👉  一、从“零基础”到“高水平”的课程设计

  • 兼顾基础知识、主流模型与前沿模型
  • 既考虑软件安装、程序编写以及空间权重矩阵设计等 基础知识 讲授,更强调时空面板地理加权回归模型、贝叶斯空间计量模型、矩阵指数模型、空间计量交互模型与空间面板似不相关回归模型等 前沿模型 的传授。

👉  二、“保姆级”的空间计量代码

  • 编写与校准所有模型的MATLAB代码,简化实操环节
  • 模型的估计与检验等 仅按照提供的Excel数据版式 搜集与整理原始数据,即可一次性出结果并作图

👉   三、“最多上新” 的内容体系

  • 新增 矩阵指数模型、短面板空间似不相关模型、空间计量交互模型、贝叶斯空间计量模型等
  • 新增 前沿应用案例,包括空间计量与索洛余值法、随机前沿分析与数据包络分析等的互嵌研究,阐释基于空间计量的产业空间结构优化评价方法。
  • 新增 Dagum空间基尼系数、核密度估计、空间马尔科夫链与空间收敛性等内容,阐释现实研究中对空间收敛性的应用“谬误”。

作者:何庆红(北京大学中国卫生经济研究中心)

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 背景介绍

  • 2. 合成控制法原理

  • 3. 合成控制高效实现:synth_runner

    • 3.1 命令安装

    • 3.2 语法格式

    • 3.3 加州控烟案例

  • 4. 参考资料



连享会合成控制法 专题推文

  • 合成控制法 (Synthetic Control Method) 及 Stata 实现
  • Stata: 合成控制法程序
  • Stata: 合成控制法 synth 命令无法加载 plugin 的解决办法 

合成控制方法(Synthetic Control Method)由 Abadie and Gardeazabal (2003) 提出。目前,该方法已被广泛使用。本文介绍合成控制法高效实现命令 synth_runner

1. 背景介绍

在连享会此前发布的 「合成控制法 (Synthetic Control Method) 及 Stata 实现」 文中,我们已经介绍了当实验组只有一个对象(A市)时,可以使用 Abadie and Gardeazabal (2003) 提出的“合成控制法”(Synthetic Control Method) 来构造反事实框架。

其基本思想是,虽然无法找到 A 市的最佳控制地区,但通常可对若干大城市进行适当的线性组合,以构造一个更为优秀的“合成控制地区”(synthetic control region),并将 “真实 A 市”“合成 A 市” 进行对比,故名 “合成控制法”

合成控制法的一大优势是,可以根据数据(data-driven)来选择线性组合的最优权重,避免了研究者主观选择控制组的随意性。

然而,当实验组中有多个试点对象在不同的时间受到政策冲击时,「合成控制法 (Synthetic Control Method) 及 Stata 实现」 文中介绍的 synth 命令将无法实现。此时,synth_runner 命令是解决该问题的不二选择。该命令的优点包括:

  • 其一,它可以直接进行安慰剂检验,并提供统计推断的P value来比较安慰剂检验的效果;
  • 其二,允许多个试点对象在不同的时间受到冲击;
  • 其三,提供拟合优度和估计结果的可视化呈现。

2. 合成控制法原理

原理介绍请看以下链接:

  • 合成控制法 (Synthetic Control Method) 及 Stata 实现
  • Stata: 合成控制法程序
  • 合成控制法简介及代码

3. 合成控制高效实现:synth_runner

3.1 命令安装

在 Stata 命令窗口中输入如下命令即可自动安装 synth_runner 命令:

ssc install synth_runner, replace

3.2 语法格式

synth_runner 的基本语法格式如下:

 synth_runner depvar predictorvars, {trunit(#) trperiod(#)|d(varname)}
[trends pre_limit_mult(real) training_propr(real) gen_vars
noenforce_const_pre_length ci max_lead(int)
n_pl_avgs(string) pred_prog(string) deterministicoutput
parallel pvals1s drop_units_prog(string)
xperiod_prog(string) mspeperiod_prog(string)
synthsettings]
  • 其中,depvar 为因变量(outcome variable)
  • predictorvars 为预测变量(predictors)。
  • 当试点对象只有一个时,必选项 trunit() 用于指定唯一的试点对象(trunit 表示 treated unit),必选项 trperiod() 用于指定试点时期(trperiod 表示 treated period)。
  • 当试点对象有多个时,选项 d(varname) 为 0-1 变量,当试点对象在试点时期之后取值为1,否则取值为 0。
  • 选项 trends 是指根据结果变量的时间顺序来匹配。具体而言,将研究对象的结果变量按照时间顺序排列,这样试点前一期的取值为1。
  • 选项pre limit mult作用是在进行安慰剂检验时,需要删除均方误差特别大的控制组对象,而这个选项提供了删除的倍数。
  • 选项training propr计算因变量的哪些时间作为预测变量。
  • 选项gen vars表示只有一个试点时间时,可以产生如下估计量:
    • 选项lead 表示试点后的动态时间,若为1,表示试点后第1期。
    • 选项depvar synth表示因变量的合成
    • 选项effect表示真实因变量与合成因变量之差。
    • 选项pre rmspe表示试点前预测变量的均方误差。
    • 选择项post rmspe表示试点后预测变量的均方误差。
    • 选项depvar scaled 表示标准化的因变量。
    • 选项depvar scaled synth(if the match was done on trends)表示标准化的合成因变量。
    • 选项effect scaled (if the match was done on trends)表示标准化的因变量与合成因变量之差。

3.3 加州控烟案例

链接:加州控烟案例

背景

1988 年 11 月美国加州通过了当代美国最大规模的控烟法(anti-tobacco legislation),并于1989年1月开始生效。该法将加州的香烟消费税(cigarette excise tax)提高了每包 25 美分,将所得收入专项用于控烟的教育与媒体宣传,并引发了一系列关于室内清洁空气的地方立法(local clean indoor-air ordinances),比如在餐馆、封闭工作场所等禁烟。Abadie et al. (2010) 根据美国 1970-2000 年的州际面板数据,采用合成控制法研究美国加州 1988 年 第 99 号控烟法(Proposition 99)的政策效果。

. sysuse smoking      (打开数据集)
. xtset state year (设为面板数据)
panel variable: state (strongly balanced)
time variable: year, 1970 to 2000
delta: 1 unit

3.3.1 例子1:只有一个实验对象和实验期

首先,运用 synth_runner 命令重现上一篇推文「合成控制法 (Synthetic Control Method) 及 Stata 实现」基于 synth 命令的结果

. synth_runner cigsale beer(1984(1)1988)   ///
        lnincome(1972(1)1988) retprice age15to24 ///
        cigsale(1988) cigsale(1980) cigsale(1975),  ///
        trunit(3) trperiod(1989) gen_vars

Estimating the treatment effects
Estimating the possible placebo effects (one set for each of the 1 treatment periods)
|                                    | Total: 38
.....................................| 26.00s elapsed. 

Conducting inference: 5 steps, and 38 placebo averages
Step 1... Finished
Step 2... Finished
Step 3... Finished
Step 4... Finished
Step 5... Finished

Post-treatment results: Effects, p-values, standardized p-values

             | estimates      pvals  pvals_std 
-------------+---------------------------------
          c1 | -7.887098   .1315789          0 
          c2 | -9.693599   .1842105          0 
          c3 |  -13.8027   .2105263          0 
          c4 |   -13.344   .1315789          0 
          c5 |  -17.0624   .1052632          0 
          c6 |  -20.8943   .0789474          0 
          c7 |  -19.8568   .1315789   .0263158 
          c8 |  -21.0405   .1578947          0 
          c9 |  -21.4914   .1052632   .0263158 
         c10 |  -19.1642   .1842105   .0263158 
         c11 |   -24.554   .1052632          0 
         c12 |  -24.2687   .1052632   .0263158 

  • 其中,cigsale(1975) cigsale(1980) cigsale(1988) 分别表示人均香烟消费在1975、1980与1988年的取值。
  • 必选项 trunit(3) 表示第 3 个州(即加州)为处理地区;
  • 必选项 trperiod(1989) 表示控烟法在 1989 年开始实施。

上表显示,加州控烟法对于人均香烟消费量有很大的负效应,而且此效应随着时间推移而变大,且统计上显著。具体来说,在 1989-2000 年(C1-C12)期间,加州的人均年香烟消费逐年减少。

其次,绘制图形查看合成效果,并绘制加州与合成加州人均香烟消费之差(即处理效应)。

. single_treatment_graphs, trlinediff(-1) effects_ylabels(-30(10)30)  ///
effects_ymax(35) effects_ymin(-35)
(13 real changes made)
(3 real changes made)

. effect_graphs, trlinediff(-1)

真实加州与合成加州
控烟的政策效应

最后,进行统计推断:

. pval_graphs
原始P值
标准化P值

上面两幅图显示,加州控烟法对于人均香烟消费量的负效应是显著的。

3.3.2 例子2:有多个实验对象和实验期

. capture drop D

. program my_pred, rclass
  1. args tyear
  2. return local predictors "beer(`=`tyear'-4'(1)`=`tyear'-1') lnincome(`=`tyear'-4'(1)`=`tyear'-1')" 
  3. return local predictors "beer(`=`tyear'-4'(1)`=`tyear'-1') lnincome(`=`tyear'-4'(1)`=`tyear'-1')" 
  4. end

. program my_drop_units
  1. args tunit
  2. if `tunit'==39 qui drop if inlist(state,21,38)
  3. if `tunit'
==3 qui drop if state==21
  4. end

. program my_xperiod, rclass
  1. args tyear
  2. return local xperiod "`=`tyear'-12'(1)`=`tyear'-1'"
  3. end

. program my_mspeperiod, rclass
  1. args tyear
  2. return local mspeperiod "`=`tyear'-12'(1)`=`tyear'-1'"
  3. end
* 除了加州,假定佐治亚州在1988年也实施了烟草法案
. generate byte D = (state==3 & year>=1989) | (state==7 & year>=1988)

. synth_runner cigsale retprice age15to24, d(D) pred_prog(my_pred)  ///
trends training_propr(`=13/18') drop_units_prog(my_drop_units)) xperi
> od_prog(my_xperiod) mspeperiod_prog(my_mspeperiod)
Estimating the treatment effects
Estimating the possible placebo effects (one set for each of the 2 treatment periods)
|                                   | Total: 37
....................................| 45.00s elapsed. 
|                                   | Total: 37
....................................| 44.00s elapsed. 

Conducting inference: 6 steps, and 1369 placebo averages
Step 1... Finished
Step 2... Finished
Step 3... Finished
Step 4... Finished
Step 5... Finished
Step 6... Finished

Post-treatment results: Effects, p-values, standardized p-values

             | estimates      pvals  pvals_std 
-------------+---------------------------------
          c1 |  -.027493   .3002191   .0021914 
          c2 | -.0485773   .1775018   .0043828 
          c3 | -.0921521   .0394449          0 
          c4 | -.1017043   .0409058          0 
          c5 | -.1270111   .0241052          0 
          c6 | -.1352273   .0219138          0 
          c7 |  -.141674   .0262966          0 
          c8 |  -.196867   .0051132          0 
          c9 | -.1754307   .0124178          0 
         c10 | -.1833944   .0197224          0 
         c11 | -.1910038   .0233747          0 
         c12 | -.1889059   .0219138          0 

上表显示,加州控烟法对于人均香烟消费量的负效应随着时间逐渐变大,且统计上显著。

其次,绘制图形查看合成效果,并绘制实验组与合成实验组人均香烟消费之差(即处理效应)。

真实实验组和合成对照组
法案控烟效果

最后,进行统计推断:

原始P值
标准化P值

上面两幅图显示,加州控烟法对于人均香烟消费量的负效应是显著的。

4. 参考资料

  • Abadie, A., Diamond, A., and J. Hainmueller. 2014. Comparative Politics and the Synthetic Control Method. American Journal of Political Science, [PDF]
  • Abadie, A., Diamond, A., and J. Hainmueller. 2010. Synthetic Control Methods for Comparative Case Studies: Estimating the Effect of California's Tobacco Control Program.  Journal of the American Statistical Association. [PDF]
  • Abadie, A. and Gardeazabal, J. 2003. Economic Costs of Conflict:  A Case Study of the Basque Country. American Economic Review. [Link]
  • Vanderbei, R.J. 1999. LOQO: An interior point code for quadratic programming.  Optimization Methods and Software 11: 451-484.
  • Cavallo, E., S. Galiani, I. Noy, and J. Pantano. 2013. Catastrophic natural disasters and economic growth.  Review of Economics and Statistics 95: 1549-1561.
  • 合成控制法简介及代码 , 点击底部 [阅读原文] 查看


🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

New! Stata 搜索神器:lianxh 和 songbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
  . ssc install lianxh
  . ssc install songbl
👉  使用:
  . lianxh DID 倍分法
  . songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
 最新文章