打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
合成控制法 (Synthetic Control Method)及R应用(上)
香烟控制法在美国有着悠久的历史,至少可以追溯到1893年,当时的华盛顿成为第一个禁止香烟销售的州。在在接下来的30年里,其他15个州也相继出台了类似的禁烟措施(Dinan和Heckelman 2005)。这些早期的反烟草法主要是出于道德考虑, 健康问题是次要的(Tate 1999)。近100年来,后来,在这些早期的法律被废除很久之后,对吸烟的健康风险的认识有了一个新的广泛传播,美国各州和联邦政府纷纷出台反烟草法以及最终的海外市场。1988年,加州选民发起的99号提案,第一个现代化的大规模控烟项目,这也就是著名的99香烟法案。

本文基于R为大家讲解如何进行合成控制法相关操作及应用。

1
背景介绍

99法案将加州的卷烟消费税每包提高25美分,这部分指定税收将用于健康和反吸烟教育预算,资助反吸烟媒体,并推动了当地的室内空气清洁条例遍及全州((Siegel 2002)。在最初的实现中, 99号提案每年学校、社区、县、州一级开展反烟草项目产生超过1亿美元的收入 。每年几乎有2000万美元可用于烟草有关的研究。正如Glantz和Balbach(2000)所说,他说:“这些项目使任何其他州或地区相形见绌 ,联邦政府也曾经对烟草采取过措施。” 99号提案引发了一波当地清洁空气条例的浪潮,在加州。在99号提案之前,加州没有城镇要求餐厅100%禁烟。从1989年到 2000年通过了大约140部这样的法律(Siegel 2002)。到1993年,当地颁布法令禁止在工作场所吸烟,保护了加州近三分之二的工人(Glantz) 和Balbach 2000)。1994年,加利福尼亚州通过了附加法案 禁止在封闭工作场所吸烟的立法。到1996年,超过90%的加州工人获得了医疗保险,通过无烟工作场所政策(西格尔2002)。不吸烟的权利倡导者们看到了一波又一波地方法令通过。

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)的效果。

2
语法格式
合成控制法命令为:synth,安装方法为
install.packages('synth')

导入该安装包为

library(Synth)

3
命令描述

在Abadie and Gardeazabal(2003)和Abadie, Diamond, Hainmueller(2010, 2011, 2014)的比较案例研究中实现因果推理的综合控制方法。synth通过比较受干预影响的单位的总体结果演变与合成对照组的相同总体结果演变来估计干预的效果。

synth通过搜索控制单元的加权组合来构建这个综合控制组,选择这些控制单元来根据预测结果的特征来近似受干预影响的单元。合成控制组结果的演变是对在没有干预的情况下对受影响单位观察到的反事实的估计。

synth还可用于进行各种安慰剂和置换试验,从而产生信息推断,而不考虑可用比较单位的数量和可用时间周期的数量。详见Abadie和Gardeazabal(2003)、Abadie、Diamond和Hainmueller(2011,2011,2014)。

synth要求用户提供四个矩阵作为它的主要参数。这些矩阵被命名为X0 X1 Z1 Z0。X1和X0分别包含处理单元和控制单元的预测值。Z1和Z0分别为治疗单元和对照组干预前时间的结果变量。预干预期是指干预前的一段时间,在此期间均方根预测误差(MSPE)应达到最小。MSPE是指在Z1和Z0中规定的所有干预前期间,处理单元和综合控制单元的结果之间的平方偏差。

从(面板)数据集创建矩阵X1、X0、Z1和Z0可能很繁琐。因此,Synth库提供了一个名为dataprep的预备函数,它允许用户轻松创建Synth所需的所有输入。通过首先调用dataprep,用户创建了一个名为data.prep.obj的对象,它包含运行synth所需的所有基本数据元素。

因此,实现综合控制方法的通常命令序列是首先调用dataprep来准备要加载到synth中的数据。然后调用synth构建合成控制组。最后,利用函数合成对结果进行了总结。包括如下函数:synth.tab, path.plot, or gaps.plot.

dataprep的文档中提供了这个序列的示例。强烈推荐这种方法。或者,用户可以提供自己的预处理数据矩阵,并通过X0、X1、Z1和Z0参数将它们加载到synth中。

synth的输出是一个列表对象,其中包含预测变量(solution.V)的权重和控制单元(solution.W)的权重,它们定义了对合成控制单元的贡献。



5
案例

1、导入数据并查看数据

2、从为synth()提供输入的面板数据创建矩阵

3、运行synth命令以确定为被处理对象创建可能的最佳合成控制单元的权重。

代码为
synth.out <- synth(dataprep.out)

4、获取单元与合成单元预测值

代码为

synth.tables <- synth.tab(      dataprep.res = dataprep.out,      synth.res = synth.out)print(synth.tables)

结果为:

5、绘图

使用path.plot()和gap .plot()命令,可以获得经过处理的和综合控制单元的结果轨迹的总结图

代码为

path.plot(dataprep.res = dataprep.out,synth.res = synth.out)
gaps.plot(dataprep.res = dataprep.out,synth.res = synth.out)

结果为:

6
其他

下一讲将以加州案例为大家讲解如何使用R软件进行合成控制法分析

7
References

Abadie, A., Diamond, A., Hainmueller, J. (2014). Comparative Politics and the Synthetic Control Method. American Journal of Political Science Forthcoming 2014.

Synthetic : An R Package for Synthetic Control Methods in Comparative Case Studies. Journal of Statistical Software 42 (13) 1–17.

Abadie, A., Diamond, A., Hainmueller, J. (2011). Synth: An R Package for Synthetic Control Methods in Comparative Case Studies. Journal of Statistical Software 42 (13) 1–17.

Abadie A, Diamond A, Hainmueller J (2010). Synthetic Control Methods for Comparative Case Studies: Estimating the Effect of California's Tobacco Control Program. Journal of the American Statistical Association 105 (490) 493–505.

Abadie, A. and Gardeazabal, J. (2003) Economic Costs of Conflict: A Case Study of the Basque Country American Economic Review 93 (1) 113–132.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
合成控制法SCM新进展, 直接通过代码演示, 附数据和code!
Stata:纠偏合成控制法介绍-allsynth
合成控制法 (Synthetic Control Method) 及 Stata实现
【方法研究】比较政治与合成控制丨国政学人 第292期
拼接屏做方案需要了解哪些?
使用 CausalPy 进行因果推理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服