倾向得分匹配:psmatch2 还是 teffects psmatch
倾向得分匹配(Propensity Score Matching,简记 PSM)常用于估计微观数据的处理效应(treatment effects),特别适用于样本容量较大,而且协变量(控制变量)较多的情形。
在 Stata 命令中,psmatch2 是较早出现的PSM非官方命令。时至今日,仍不时有学生来咨询我在使用 psmatch2 过程中所遇到的种种问题,可见其依然流行。然而,虽然 psmatch2 提供了丰富的具体匹配方法,但它最大的缺陷则在于其标准误(standard errors)并不正确。基于标准误对于统计推断的重要性,这是 psmatch2 的致命弱点。
事实上,psmatch2 在汇报 PSM 估计结果时,已经委婉暗示了此局限性。比如,在下图 psmatch2 估计结果底部的 Note 中,已经声明“所提供的标准误并未考虑到倾向得分是估计的”(S.E. does not take into account that the propensity score is estimated)。这意味着,在计算此标准误中,有个不现实的假定,即假设所估计的倾向得分就是真正的倾向得分;这自然会导致偏差。
那么,能否用自助法(bootstrap)来得到正确的标准误呢?很遗憾,也不行,Abadie and Imbens (2008, Econometrica) 已经证明了这一点。这是因为,bootstrap standard errors 的成立有一个前提条件,即统计量必须是样本数据的连续函数;而对于倾向得分匹配,这一前提并不成立。不难想象这样一种的情形,即虽然协变量只有微小的变动,却导致匹配到另一位个体,使得匹配结果发生不连续的剧烈变动。
PSM的正确标准误直到2012年才由 Abadie and Imbens (2012, working paper) 给出,并最终于2016年发表于Econometrica。Abadie与 Imbens 所提出的 PSM 标准误,充分考虑到了第一阶段估计倾向得分的误差,故为一致估计。
说起这两位作者,均是当今的计量大牛。其中,MIT 经济系教授 Alberto Abadie正是如今炙手可热的“合成控制法”(Synthetic Control Method)之创始人。而 Stanford 经济系教授 Guido Imbens 在因果推断方面建树颇丰;比如,在使用局部线性回归(local linear regression)进行断点回归时,常用于确定带宽的IK法,即来自于Imbens and Kalyanaraman (2010)。当然,Imbens 还有一位或许名气更大的妻子 Susan Athey(曾为微软首席经济学家),在此按下不表。
自 Stata 13 以来,推出了关于处理效应的官方命令 teffects,其中的一个主要子命令即为 teffects psmatch。此官方命令虽然提供的匹配方法不如 psmatch2 丰富,但最大的优点是给出了由 Abadie 与 Imbens 所提出的正确标准误,称为“AI稳健标准误”(AI Robust Standard Errors)。猛一看,还以为是“人工智能稳健标准误”……
命令 teffects psmatch 的基本格式很简单:
teffects psmatch (y) (t x1 x2 x3), atet nn(#) caliper(#)
其中,y 为结果变量(outcome variable),t 为处理变量(treatment variable),而 x1,x2 与 x3为协变量(covariates)。默认使用 Logit 估计倾向得分。
选择项“atet”表示估计“参与者平均处理效应”(Average Treatment Effect on the Treated),默认估计所有个体的“平均处理效应”(Average Treatment Effect)。
选择项“nn(#)”表示进行“一对#”的最近邻匹配(nearest neighbor matching),默认为“nn(1)”,即一对一匹配。
选择项“caliper(#)”表示在某个卡尺范围内进行匹配;比如“caliper(0.1)”,表示仅考虑在倾向得分的差异不超过0.1的个体之间进行匹配。
下面以 Stata 自带的数据集 cattaneo2.dta 为例。该数据集可用于研究“怀孕期母亲是否抽烟”(mbsmoke)对于“新生儿体重”(bweight)的影响。此例子中的协变量为“母亲是否结婚”(mmarried),母亲年龄(mage)及其平方,“是否第一胎”(fbaby),以及“母亲的教育年限”(medu)。
. webuse cattaneo2
先看一下相关变量的统计特征。
. sum bweight mbsmoke mmarried c.mage##c.mage fbaby medu
其中,上述命令中的“c.mage##c.mage”包括了“mage”及其平方“c.mage#c.mage”。
进一步,考察吸烟组(处理组)与不吸烟组(控制组)的新生儿体重差异特征。
. bysort mbsmoke: sum bweight
从上表可知,不吸烟组(nonsmoker)的新生儿平均体重为3412.912克,而吸烟组(smoker)的新生儿平均体重仅为3137.66千克。这两组新生儿体重的平均差异是否显著呢?为此,下面进行一对一的倾向得分匹配。
. teffects psmatch (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu)
上表所提供的标准误即为“AI Robust Std. Err.”。由上表可知,吸烟组与非吸烟组的新生儿平均体重的差异在1%水平上显著(p 值为0.000)。
teffects psmatch 默认进行一对一的倾向得分匹配。一对一匹配的优点是偏差(bias)较小,但方差(variance)可能较大。为此,加上选择项“nn(4)”,进行一对四的倾向得分匹配。
结果表明,此处理效应依然在1%水平上显著。
更多关于命令 teffects psmatch 的介绍,参见help teffects psmatch,以及相应的Stata手册(Stata manual)。
参考文献
陈强,《高级计量经济学及Stata应用》,第2版,高等教育出版社,2014年。
陈强,《计量经济学及Stata应用》,高等教育出版社,2015年。(配套教学视频,可在网易云课堂学习)
高级计量经济学与Stata现场班
(北京,2019年4月27日-5月2日六天,详情点击底部 阅读原文)