一、合成控制法推断的经典框架
合成控制法是因果推断领域过去十几年最重要的进展(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的传统估计与推断过程中,估计量为
其中,表示处理组的反事实结果。传统的SC估计过程将处理效应当做固定参数,参见Abadie(2021)。而Cattaneo, Feng and Titiunik (2021)和Cattaneo, Feng, Palomba and Titiunik (2022)则将和看作是随机变量,因此,处理效应自然也是随机变量。随机变量来源于用处理前时期数据来进行样本外预测,当然还要基于估计的权重。
需要注意的是,他们的预测区间并不是我们常规理解的置信区间(给定非随机参数的一个参数区间),而是描述一个随机变量可能的实现值的概率区间。
处理效应的不确定性主要来源于两个方面:第一,处理前时期数据估计出的权重的不确定性;第二,处理后时期不可观测的随机误差。
三、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中可以看到,与控制组相比,处理效应处在非常极端的位置,好像可以得到结论处理效应是显著的。但是,从图中也可以看出,有些控制组的效应也处于极端位置,而且处理前的拟合并不是很好,这有可能导致了处理后的巨大误差,所以才使得处理效应看起来显著。在实践中,研究者通常会删除处理前拟合误差较大的控制组。但是,问题又出现了,多大的误差才叫大?上述经典的推断框架的问题还不仅仅如此,上述过程要求处理的配置是完全随机的,但是这对于政策干预来说几乎是不可能的(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 的处理后时期合成控制组结果带有我们“最熟悉”的95%区间,但是预测的区间,即预测得到的合成控制组95%的概率可能实现的结果。从图中够可以看出,99法案实施后,95%的概率可能出现的合成控制组结果并没有包含真实的加利福利亚洲结果,因此,从统计上来看,处理效应有95%的可能性是真实存在的。