👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:最新专题 | 计量专题 | 关于连享会
🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 18903405450(微信)
课程特色 · 2024机器学习与因果推断:
懂原理、会应用。本次课程邀请了两位老师合作讲授,目的在于最大限度地实现理论与应用的有机结合。为期四天的课程,分成两个部分:第一部分讲解常用的机器学习算法和适用条件,以及文本分析和大语言模型;第二部分通过精讲 4-6 篇发表于 Top 期刊的论文,帮助大家理解各类机器学习算法的应用场景,以及它们与传统因果推断方法的巧妙结合。 以 Top 期刊论文为范例。目前多数人的困惑是不清楚如何将传统因果推断方法与机器学习结合起来。事实上,即便是 MIT 和 Harvard 的大牛们也都在「摸着石头过河」。为此,通过论文精讲和复现来学习这部分内容或许是目前最有效的方式了。张宏亮老师此前在浙江大学按照这一模式教授了「因果推断和机器学习」课程,效果甚佳:学生们能够逐渐建立起研究设计的理念,并在构造识别策略时适当地嵌入机器学习方法。
作者:陈少廷 (中山大学)邮箱:chensht39@mail2.sysu.edu.cn
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 引言
2. 合成控制法原理
3. synth2 命令介绍
4. 加州控烟案例
4.1 案例背景
4.2 复现结果
4.3 安慰剂检验
5. synth2 命令优点
6. 参考资料
7. 相关推文
1. 引言
经济学家经常要评估某政策或事件的效应。最简单的方法是对比政策实施前后结果的变化 (outcome of interest)。但此结果可能还受其原有变化趋势的影响,或其他同时发生的混淆性事件 (confounder) 的作用。
为避免这种情况带来的误差,经济学家常使用鲁宾的反事实框架 (Rubin's counterfactual framework),即假想该地区未受政策干预会怎样,并与事实上受到干预的实际数据进行对比。为此,Abadie 和 Gardeazabal (2003) 提出了合成控制法 (Synthetic Control Method)。
本文主要介绍合成控制法的基本原理和实现命令 synth2
。
2. 合成控制法原理
合成控制法 (Synthetic Control Methods) 是由 Abadie 和 Gardeazabal (2003) 提出的一种政策效果评估方法,其基本思想是:将未实施某项政策的地区加权后合成为一个控制组,该控制组优于主观选定的控制组,可有效克服处理组和控制组之间存在的差异问题。
然后根据控制组的数据特征构建“反事实”,明确处理组和控制组在政策实施之前的相似程度,避免因对比地区差异过大而引起的误差。合成控制法能够克服在选取控制对象时出现的样本选择偏误以及政策内生性问题。关于合成控制法更多详细介绍,请参考连享会推文「合成控制法 (Synthetic Control Method) 及 Stata 实现」。
3. synth2 命令介绍
命令安装:
ssc install synth, replace
ssc install synth2, replace
命令语法:
synth2 depvar indepvars, trunit(#) trperiod(#) [options]
其中,depvar
是因变量;indepvars
是预测变量;trunit(#)
指定处理单元,且只能指定一个单元;trperiod(#)
指定干预开始的时期,必须是一个整数,且只能指定一个时间段。[options]
包括:
ctrlunit(numlist)
:指定潜在的控制单元,默认为数据集中的除处理单元以外的所有单元;preperiod(numlist)
:指定干预之前的时期,默认为从时间变量中可用的最早时间点到干预发生的时间点;postperiod(numlist)
:指定干预之后的时期,默认为从干预发生的时间点到时间变量中可用的最近的时间点;xperiod(numlist)
:指定将预测变量进行平均的期间,默认为干预开始之前的所有时期;mspeperiod(numlist)
:指定最小化均方预测误差的时期,默认为干预开始之前的所有时期;customV(numlist)
:提供自定义的 V 型权重,它决定了在预处理期间变量对结果的预测能力,默认为等权重;nested
:表示使用嵌套的数值方法寻找最优的合成控制 (推荐使用此选项),这比默认方法更费时间,但可能更精确;allopt
:在使用选项nested
时,如果再加上选项allopt
,则比单独使用nested
更费时间,但精确度可能更高;margin(real)
:违反容忍度,默认为 5%;maxiter(#)
:最大迭代次数,默认为 1000 次;sigf(#)
:精确度,默认为 7 位有效数字;bound(#)
:变量边界,默认为 10;placebo([{unit|unit(numlist)} period(numlist) cutoff(#_c)])
:指定要执行的安慰剂检验的类型,若不设定则默认不执行安慰剂检验;loo
:每次排除一个非零权重的控制单元的稳健性检验,迭代地重新估计模型,在每次迭代中省略一个单元,这种灵敏度检验可以评估每一个控制单元对结果的影响程度;frame(framename)
:创建 Stata 所需格式的数据文件,framename
为数据文件名,该数据文件包括反事实预测、干预效果、安慰剂检验和稳健性检验 (如果有) 的估计结果;nofigure
:不显示结果,若不设置则默认显示评估结果、安慰剂检验和稳健性检验的所有数据。
对于 placebo([{unit|unit(numlist)} period(numlist) cutoff(#_c)])
,参数定义如下:
{unit|unit(numlist)}
:指定使用预测变量中的假干预控制单元的安慰剂检验。unit
使用所有的除处理单元以外的所有单元,而unit(numlist)
使用指定的单元。这两个选项迭代地将干预重新分配给没有实际发生干预的控制单元,并计算干预效果的 值,一次只能输入一个选项。period(numlist)
:指定假干预时间进行安慰剂检验。这个选项将干预时间重新分配到干预前的时间段,而实际上没有干预。cutoff(#_c)
:指定临界值#_c
,若预处理假干预单元的 MSPE 比处理单元 MSPE 大#_c
倍,那么该假干预单元会被舍弃。其中#_c
必须是大于等于 1 的实数。此选项仅适用于unit
或unit(numlist)
已被指定。若不设定则默认不会舍弃单元
4. 加州控烟案例
4.1 案例背景
1988 年 11 月美国加州通过了当代美国最大规模的控烟法 (anti-tobacco legislation),并于 1989 年 1 月开始生效。该法将加州的香烟消费税 (cigarette excise tax) 提高了每包 25 美分,将所得收入专项用于控烟的教育与媒体宣传,并引发了一系列关于室内清洁空气的地方立法 (local clean indoor-air ordinances),比如在餐馆、封闭工作场所等禁烟。
Abadie 等 (2010) 根据美国 1970-2000 年的州际面板数据,采用合成控制法研究美国加州 1988 年第 99 号控烟法 (Proposition 99) 的政策效果。
4.2 复现结果
运用 synth2
命令重现推文「合成控制法 (Synthetic Control Method) 及 Stata实现」基于 synth
命令的结果。
. lxhuse smoking.dta, clear
. xtset state year
. synth2 cigsale lnincome age15to24 retprice beer cigsale(1975) ///
> cigsale(1980) cigsale(1988), trunit(3) trperiod(1989) ///
> xperiod(1980(1)1988) nested allopt
Covariate balance in the pretreatment periods:
--------------------------------------------------------------------------------
Covariate | V.weight Treated Synthetic Control Average Control
| Value Bias Value Bias
---------------+----------------------------------------------------------------
lnincome | 0.0001 10.0766 9.8606 -2.14% 9.8292 -2.45%
age15to24 | 0.0224 0.1735 0.1737 0.11% 0.1725 -0.59%
retprice | 0.0393 89.4222 89.5058 0.09% 87.2661 -2.41%
beer | 0.0906 24.2800 24.3016 0.09% 23.6553 -2.57%
cigsale(1975) | 0.4103 127.1000 127.1917 0.07% 136.9316 7.74%
cigsale(1980) | 0.4295 120.2000 120.3195 0.10% 138.0895 14.88%
cigsale(1988) | 0.0078 90.1000 91.4618 1.51% 113.8237 26.33%
--------------------------------------------------------------------------------
Optimal Unit Weights:
--------------------------
Unit | U.weight
-------------+------------
Utah | 0.3430
Nevada | 0.2410
Montana | 0.2170
Colorado | 0.1380
Connecticut | 0.0600
NewMexico | 0.0020
--------------------------
Prediction results in the posttreatment period:
-----------------------------------------------------------
Time | Actual Outcome Synthetic Outcome Treatment Effect
------+----------------------------------------------------
1989 | 82.4000 89.9295 -7.5295
1990 | 77.8000 87.4782 -9.6782
1991 | 68.7000 81.9647 -13.2647
1992 | 67.5000 81.5054 -14.0054
1993 | 63.4000 81.1015 -17.7015
1994 | 58.6000 80.6602 -22.0602
1995 | 56.4000 78.4686 -22.0686
1996 | 54.5000 77.4843 -22.9843
1997 | 53.8000 77.7789 -23.9789
1998 | 52.3000 74.3828 -22.0828
1999 | 47.2000 73.5300 -26.3300
2000 | 41.6000 67.2704 -25.6704
------+----------------------------------------------------
Mean | 60.3500 79.2962 -18.9462
-----------------------------------------------------------
可以看出,加州控烟法对于人均香烟消费量有很大的负效应,而且此效应随着时间推移而变大,且结果显著,在 1989-2000 年期间,加州的人均年香烟消费逐年减少。
4.3 安慰剂检验
. synth2 cigsale lnincome age15to24 retprice beer cigsale(1988) ///
> cigsale(1980) cigsale(1975), trunit(3) trperiod(1989) ///
> xperiod(1980(1)1988) nested placebo(unit cut(2)) sigf(6)
In-space placebo test results using fake treatment units:
-------------------------------------------------------------------------------
Unit | Pre MSPE Post MSPE Post/Pre MSPE Pre MSPE of Fake Unit/
| Pre MSPE of Treated Unit
---------------+---------------------------------------------------------------
California | 3.1467 391.6195 124.4523 1.0000
Alabama | 5.1122 6.8512 1.3402 1.6246
Arkansas | 4.5460 26.9649 5.9316 1.4447
...
WestVirginia | 8.6441 226.6917 26.2251 2.7470
Wisconsin | 2.7290 83.8542 30.7275 0.8672
Wyoming | 83.6674 76.4727 0.9140 26.5886
-------------------------------------------------------------------------------
----------------------------------------------------------------
Time | Treatment Effect p-value of Treatment Effect
| Two-sided Right-sided Left-sided
------+---------------------------------------------------------
1989 | -7.3838 0.0556 1.0000 0.0556
1990 | -9.4810 0.1111 0.9444 0.1111
1991 | -13.4270 0.1111 0.9444 0.1111
1992 | -13.9915 0.1111 0.9444 0.1111
1993 | -17.6858 0.0556 1.0000 0.0556
1994 | -22.0141 0.0556 1.0000 0.0556
1995 | -21.9226 0.0556 1.0000 0.0556
1996 | -22.8053 0.0556 1.0000 0.0556
1997 | -23.6909 0.0556 1.0000 0.0556
1998 | -21.8662 0.0556 1.0000 0.0556
1999 | -26.1870 0.0556 1.0000 0.0556
2000 | -25.6074 0.0556 1.0000 0.0556
----------------------------------------------------------------
在上图中,绿线表示加州的处理效应 (即加州与合成加州的人均香烟消费之差),而灰线表示其他 39 个控制州的安慰剂效应 (即这些州与其相应合成州的人均香烟消费之差)。显然,与其他州的安慰剂效应相比,加州的 (负) 处理效应显得特别大。假如加州的控烟法并无任何效应,则在这 39 个州中,碰巧看到加州的处理效应最大的概率仅为 1/39 = 0.0256,小于常用的显著性水平 0.05,故初步可知绿线处理效应的确是加州控烟的效果。
5. synth2 命令优点
综上所述,synth2
相比于 synth
:
直接进行安慰剂检验,可选三种检验方式,并且计算出 P-value 来比较安慰剂检验的效果; 直接进行稳健性检验和灵敏度检验,并输出结果; 便捷的可视化呈现估计结果、安慰剂检验和稳健性检验结果。
6. 参考资料
Abadie A, Gardeazabal J. The economic costs of conflict: A case study of the Basque Country[J]. American economic review, 2003, 93(1): 113-132. -PDF- Abadie A, Diamond A, Hainmueller J. Synthetic control methods for comparative case studies: Estimating the effect of California’s tobacco control program[J]. Journal of the American statistical Association, 2010, 105(490): 493-505. -PDF- McClelland R, Gault S. The synthetic control method as a tool to understand state policy[J]. Washington, DC: The Urban Institute, 2017. -PDF- Generalized Synthetic Control Method -Link-
7. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 合成控制, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:合成控制法 Stata:合成控制法的预测区间-scpi 合成控制法简介 Stata:纠偏合成控制法介绍-allsynth Synth_Runner命令:合成控制法高效实现 Stata:合成控制法程序分享 Stata:合成控制法-synth-命令无法加载-plugin-的解决办法 合成控制法 (Synthetic Control Method) 及 Stata实现
🍓 课程推荐:2024 机器学习与因果推断专题
主讲老师:司继春 (上海对外经贸大学) ;张宏亮(浙江大学)
课程时间:2024 年 11 月 9-10 日 ;16-17日
课程咨询:王老师 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 站」,「面板数据」,「公开课」 等关键词细化搜索。