合成控制法的新推断框架与stata应用

一、合成控制法推断的经典框架

合成控制法是因果推断领域过去十几年最重要的进展(Athey and Imbens,2017)。的确,这个方法不仅仅在学界广泛使用,在企业的案例分析中也越来越受到重视。

众所周知,合成控制法是Abadie, A., and Gardeazabal, J. (2003)提出,Abadie, A., Diamond, A., and Hainmueller, J. (2010)提供了synth的软件包,并在Abadie, A., Diamond, A., and Hainmueller, J. (2015)完善了合成控制法的推断框架后逐渐形成我们现在看到的经典合成控制法估计与推断框架(详情可以参见我的《应用计量经济学讲稿》或者合成控制法大集合)。

合成控制法经典的推断框架本质上是一种安慰剂检验:对所有个体(处理组和控制组)随机配置处理,得到每个安慰剂的合成控制估计量,然后,看看实际处理效应与安慰剂效应是否显著不同。正式的推断过程请参见《应用计量经济学讲稿》或者合成控制法讲习班

近些年来,合成控制法也极大的扩展了上述经典框架(参见Abadie,2021对合成控制法进展的综述),这些进展要么扩展了合成控制法的因果框架,要么提出新的反事实估计方法,要么提出新的推断方法,例如,合成控制组与处理组的balance统计量、多处理个体交叠采用、广义合成控制法、连续处理变量的合成控制法、预测不确定性的量化等等,这些内容和dofiles参见合成控制法讲习班

二、反事实估计量的不确定性

虽然,Abadie, A., Diamond, A., and Hainmueller, J. (2015)提出了安慰剂类型的经典推断框架,但始终逃不开用眼睛看的主观判断所带来的偏误。当然,还有一些其他方法,参见Matias D. Cattaneo, Yingjie Feng, Filippo Palomba and Rocio Titiunik(2022)。除此之外,还有Cattaneo, Feng and Titiunik (2021)Cattaneo, Feng, Palomba and Titiunik (2022)提出的合成控制结果的不确定性量化方法。他们将潜在结果变量作为随机变量,用有限样本概率集中法来获得处理后时期处理组imputation反事实结果的预测区间。

作者们提出的条件预测区间为合成控制法(SC)的统计推断提供了另一种可选的框架。他们的方法基于Chernozhukov, Wüthrich, and Zhu(2021)的共形推断(comformal inference),以及概率统计学中的非渐近集中文献。因此,该方法得到的预测区间非常保守,但是却提供了概率。

在SC的传统估计与推断过程中,估计量为

\tau_t=Y_{it}(1)-Y_{it}(0)

其中,Y_{it}(0)表示处理组的反事实结果。传统的SC估计过程将处理效应\tau_t当做固定参数,参见Abadie(2021)。而Cattaneo, Feng and Titiunik (2021)Cattaneo, Feng, Palomba and Titiunik (2022)则将Y_{it}(1)Y_{it}(0)看作是随机变量,因此,处理效应\tau_t自然也是随机变量。随机变量来源于用处理前时期数据来进行样本外预测,当然还要基于估计的权重。

需要注意的是,他们的预测区间并不是我们常规理解的置信区间(给定非随机参数的一个参数区间),而是描述一个随机变量可能的实现值的概率区间。

处理效应的不确定性主要来源于两个方面:第一,处理前时期数据估计出的权重的不确定性;第二,处理后时期不可观测的随机误差。

三、99法案的效应

下面,我们以经典的99法案为例,来看看这种新的SC推断。Abadie, A., Diamond, A., and Hainmueller, J. (2010)Abadie, A., Diamond, A., and Hainmueller, J. (2015)提出的经典SC推断框架就是重排个体,然后假定控制组接受处理,即一种安慰剂检验的思想。我们检验实际上没有接受处理的控制组的估计效应,然后将真实处理组的估计量与假设的安慰剂估计进行比较,如果真实估计量与大多数安慰剂估计不同,我们就可以说处理效应是显著的,如图1所示。图1的代码如下:

************************************************************************
* 《应用计量经济学讲稿》“第十一讲 合成控制法及其最新进展”
* “合成控制法的不确定性量化”
* @许文立,2022-07-06,xuweny87@hotmail.com

************************************************************************
* 一、单处理个体的合成控制法:控烟法案的效应
************************************************************************

* 加载数据
use /Users/xuwenli/OneDrive/DSGE建模及软件编程/教学大纲与讲稿/应用计量经济学讲稿/应用计量经济学讲稿与code/SC/smoking.dta, clear

* 声明面板数据类型
xtset state year

* 预测变量的balance
synth cigsale beer(1984(1)1988) lnincome retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975), trunit(3) trperiod(1989)

* 安慰剂推断
allsynth cigsale beer(1984(1)1988) lnincome retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975),trunit(3) trperiod(1989) gapfig(classic placebos lineback) pval keep(smokingresults) rep
图1 SC经典推断

从图1中可以看到,与控制组相比,处理效应处在非常极端的位置,好像可以得到结论处理效应是显著的。但是,从图中也可以看出,有些控制组的效应也处于极端位置,而且处理前的拟合并不是很好,这有可能导致了处理后的巨大误差,所以才使得处理效应看起来显著。在实践中,研究者通常会删除处理前拟合误差较大的控制组。但是,问题又出现了,多大的误差才叫大?上述经典的推断框架的问题还不仅仅如此,上述过程要求处理的配置是完全随机的,但是这对于政策干预来说几乎是不可能的(Abadie,2021)。所以上述预测不确定的推断框架就提供了另一个有益的方向。(注:我们最近在做这个方向的理论计量文章,以后有机会给大家介绍这种一般化的推断框架)

下面,我们来看看预测不确定性的量化方法:

// 创建一个新的变量:处理变量

generate D = (state==3 & year>=1989)

//连接stata和python,检验python,并退出python,返回stata操作
*(1)打开python环境
*(2)查看python执行程序的安装路径
/*
import sys
print(sys.version)
print(sys.executable)
*/
*(3)在stata中设置python程序路径
set python_exec /opt/anaconda3/bin/python

/* 以下三行代码需要在stata命令窗口分别输入来测试python连接
python

print("Hello Stata, I am Python")

end
*/

*****************************************************************************************
** prepare data - one feature, cointegrated data
*****************************************************************************************
scdata cigsale, dfname("smoking_scdata") id(state) outcome(cigsale) time(year) ///
            treatment(D) cointegrated constant

*****************************************************************************************
** SC - point estimation with simplex
*****************************************************************************************
scest, dfname("smoking_scdata") name(simplex) 
scest, dfname("smoking_scdata") p(1) q(1) direc("==") lb(0)

*****************************************************************************************
** SC - plot results
*****************************************************************************************
scplot, scest gphoptions("ytitle(Cigsale) xtitle(Year)")
图2 预测区间

图2 的处理后时期合成控制组结果带有我们“最熟悉”的95%区间,但是预测的区间,即预测得到的合成控制组95%的概率可能实现的结果。从图中够可以看出,99法案实施后,95%的概率可能出现的合成控制组结果并没有包含真实的加利福利亚洲结果,因此,从统计上来看,处理效应有95%的可能性是真实存在的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容