查看原文
其他

内生性问题和倾向得分匹配, 献给准自然试验的厚礼

欢迎投稿(荐稿)计量经济圈,计量相关都行

箱:econometrics666@sina.cn

编辑: @计量经济圈(ID: econometrics666); 来源: 统计学和量化研究 公众号; 感谢授权。

1.PSM-DID, DID, RDD, Stata程序百科全书式的宝典

2.PSM倾向匹配Stata操作详细步骤和代码,干货十足

3.倾向匹配分析深度(Propsensity matching analysis)

说起内生性问题,通常大家都会有一个直观的印象:误差项(e)和解释变量抑或被解释变量有着纠缠不清的关系,Cov(Xi,e)≠0,Covermark(Y,e)≠0。在以往的文章中,对内生性问题也做过简单的介绍。那么,内生性问题到底是怎么出现的呢?有几类?

Part I 内生性问题浅谈


  1. 问题来源:测量与学科分歧

    其实呢,内生性与观测性数据(observational data)的出现有很大关系,也就是“测量(measurement)”的问题,如何得到关于总体/样本的更为精确的测量数据。这是一个很久远的故事了。故事中有两个主角:第一个是很久以前的社会科学,主要是经济学吧。在数十年前还没有实现数理化,当时的学术研究呢,主要是基于一些理论性的推导或者理论模型的构建,实现形式模型的演进。而伴随着二战后的社科发展,经济学从宏观到微观,开始有了各种各样的数据,从宏观到微观,开始有了对模型加以检验的数据。这个需求也促使了社会科学的研究与应用统计的结合与进一步发展。这种结合事实上推动了两个学科的大发展,从理论和实践上都有丰硕的成果。(当然,此处应有参考文献,围笑.jpg)社会科学中对测量的讨论也是非常多的,最具代表性的,当属Otis Duncan的 Notes on Social Measurement。推荐阅读。里面介绍了关于“异质性”的若干讨论。

    另一个主角呢,不得不说,是自然科学的。限定一下主语,是自然科学中的医学统计学、生物统计学和流行病学等几种用统计方法较多的学科。由于不同学科的人对其他非本学科的研究通常会怀持有怀疑态度,学科交流也相对较少,尤其是跨文理科的那种交流。这种隔阂的形成自有其道理,毕竟不同学科有自己的方法论根基。

    回到主题。事实上,医学统计和流行病学方法与社会科学方法论相似度可以说高达百分之九十以上(纯属主观臆测,没有事实根据,请轻拍)。我们的应用研究无外乎就是用了一些统计学的皮毛来处理实际的问题。我们都需要遵守研究的伦理,都需要从一些基本的问题出发,收集数据,然后利用一些统计的原理,比如回归模型、统计分布、假设检验等等,最后再回到问题。

    2.随机对照试验与反事实推断

    讲一下区别吧。这个区别就来源于数据的获得,是否是通过实验获得。数据获得有一个“金标准”,随机对照试验(Randomized Comparative Test,即RCT)。这个方法来自于统计学家Fisher,他在20世纪30年代通过随机试验创立了此方法。

    事实上,基于自然科学的研究得到的数据多是实验法得到的,实验方法有很多种,通常会设计精致的研究,有参照组和实验组,有明确的前测和后测。通过对时间的把握,来记录实验效果,这个实验也是可以多次重复多次检验。这个过程也保证了研究中对于参照组的控制,对时间效应的控制,对研究者效应的控制,以及对自身变化的内生因素及其它突发事件等外生因素的控制。因为这几个部分通常是最主要的研究偏误(bias)的来源,控制好了才能表明这个研究是相对精确的、严谨的。社会科学呢,采用更多的是观测性数据,也就是通常所说的“横截面数据”。一般都是选取某个时间节点,然后横向切割一下,通过对若干大样本的观察和记录指标,完成对样本的刻画。所以,这种数据通常都是“静态”的,不能进行“实验”的。也就意味着,这样会有更多的方法论问题出现。这些年,随着社会科学研究的发展,出现了诸多的追踪数据(panel data),在一定程度上已经可以解决,或者规避某种方法论问题了。但要达到实验研究的精度,确实是不可能的。而且,即便是追踪调查,也不可能做到非常及时的观测和记录,仍然受制于特别多的现实因素。

    例如,对某种药物效果的医学研究,通常会设置实验组和若干参照组,通过“干预Treat”研究对象,看这种药物是否有效。然后进一步,再测量不同剂量(dosage)的反应。由于它研究的若干案例就是总体,所以可以不用考虑再另外去“推断总体”的问题了。但随着研究的拓展,流行病学研究中,也开始涉足某些大样本的问题。比如,针对某种地方病的研究,我们在某个地区,设计一个抽样框,抽取了10000个样本,这个过程就涉及到了“推断”,也就面临了更多的方法论的问题。

    这些问题也就是社会科学研究常常见到的问题:观测数据的反事实推断。在这里,我图省事,引用一段论文:“微观数据有两个基本特征:异质性以及缺少与实际相反的状况。由于存在未被观测到的异质性, 即使在所有可以被观测到的方面都相同的人们仍然会做出不同的决策、获得不同的收入、选择不同的投资组合。缺少与实际相反的状况引发了数据缺失问题, 如果某人实际选择了一种状况, 我们就不可能观测到他(她)做出其他选择时的结果。如果我们观测到某大学毕业生的当前收入水平, 我们就不可能同时观测到假使他(她)高中毕业就参加工作的当前收入水平。”(Li & Heckman, 2004)这段表述非常清晰地表明了反事实推断是怎么回事,以及横截面数据为什么做不好反事实推断。同样,我们可以举出很多例子来:是否参与了某个培训项目、通过某个职业资格考试,对于同一个就业队列的个体收入的影响;是否接受过高等教育,对于个体收入的影响等等。更加具体的介绍不做赘述。

    3.内生性问题来源的汇总

    为了排版方便,我就直接用某些字母代替符号。

     * (1) 选择性偏误 E[Y|D,u] != 0;D为Dummy
     * (2) 遗漏变量偏误(omitted-variable bias)
     * 假设 y = a + x1*b1 + x2*b2 + e1
     * Corr(x1,x2) != 0
     * 若估计中遗漏了 x2, 则估计模型为:
     * y = a + x1*b1 + e2 (e2=e1+x2*b2)
     * 显然,Corr(x1,e2) != 0
     * (3) 测量误差(measurement error)
     * 对于模型 y = x0*b + e
     * 假设 x = x0 + me (x 是 x0 的样本观测值)
     * 即 x0 = x - me
     * 模型的正确形式应为:
     * y = a + x0*b + e
     * = a + (x - me)*b + e
     * = a + x*b + (e - me*b)
     * = a + x*b + e2
     * 显然,
     * Corr(x,e2) != 0
     * (4)联立性偏误

    其实呢,直接需要进行倾向得分匹配来克服的内生性问题,是选择性偏误。两个路径,统计学路径和计量经济学路径。殊途同归:都是为了解决掉那个小小的“error term”。


    最后再啰嗦一句,也算是我个人的信条吧,就是“大道至简”。如果可以不做那种又复杂又啰嗦的模型,简单有效就是最好的。真正的好数据、好研究、好实验,可以让人一眼看到问题解决问题。而越是难以测量的数据,质量不可靠的数据,才需要各种“strong emphasis”,才需要各种复杂精致但又十分脆弱的模型。


  2. 参考文献:
    李雪松、詹姆斯·赫克曼,2004,《选择偏差、比较优势与教育的异质性回报∶基于中国微观数据的实证研究》,《经济研究》,第(04)期。
    郭申阳,弗雷泽,2012,《倾向值分析:统计方法与应用》,郭志刚,巫锡炜等译,重庆:重庆大学出版社。


Part II 倾向得分匹配方法


1.数据来源


来源:网络资源,其实也比较容易找,比如人大经济论坛。但为了避免相关的版权争议,我重新写了一个do文件,处理的方法和变量也有改变。


举例:接受培训对于工资的影响

分析思路:(1)验证选择性的存在;(2)倾向值打分;(3)匹配估计量

两种方法:pscore;psmatch2

所选用数据:国家支持工作示范项目(National Supported Work,NSW)


2.原理


需要估计的内容:处理效应,Treatment Effect

评估某项目或政策实施后的效应,如政策推出的各种项目,此类研究被称之为项目效应评估,也被称之为处理效应,项目参与者的全体构成控制组或对照组,而未参加项目者则构成控制组或对照组。即y1i-y0i。

选择性偏误:
由于个体通常会根据其参加项目的预期收益E(y1i-y0i)而自我选择是否参加项目,导致对平均处理效应的估计带来困难。

两大假定:
可忽略性:给定xi,则(y0i,y1i)独立于Di
均值可忽略性:在给定xi的情况下, y0i和y1i都均值独立于Di

匹配估计量的基本思路:
找到属于控制组的某个体j使得其与属于处理组的个体i的可测变量取值尽可能相似,即xi ≈xj。
基于可忽略性假设,则个体i与个体j进入处理组的概率相近,具有可比性,故可将yj作为y0i的估计量。


目标:

在一般的实证研究中,由于存在很多其他变量混淆自变量和因变量之间的关系,研究者很难直接探索二者之间的净效果( net effects)。这些混淆变量的影响通常被称为选择性误差( selectionbias) , 而通过倾向值匹配的方式来控制和消除选择性误差


3.实操

变量:

变量

定义

treat

接受培训(处理组)表示1,没有接受培训(控制组)表示0

age

年龄

educ

受教育年数

black

虚拟变量,black=1

hsip

虚拟变量,hsip=1

marr

婚姻状况虚拟变量,已婚,marr=1

re74

1974年实际工资

re75

1975年实际工资

re78

1978年实际工资

u74

当在1974年失业,u74=1

agesq

age*age

educsq

educ*educ

re74sq

re74*re74

re75sq

re75*re75

u74blcak

u74*blcak


(1)检验选择性的存在

**--基本命令--**

cd: work_file_path...

use nswpsid.dta,clear

browse

rename _all,lower
*我手头的数据变量名全部为大写,便于观察,我统一修改为小写

reg re78 treat age educ black hisp marr re74 re75 agesq educsq nodegree re74sq re75sq u74black u74hisp

reg re78 treat

下图中,treat效果并不显著。大量的自变量的存在也导致了一定的共线性问题,也就是说,其他变量稀释了treat变量解释的方差。



下图显示,treat显著,说明是存在选择性问题的。


(2)倾向值打分

**--基本命令--**

global breps 1000
*设定重复抽样全局宏1000次

global vars age agesq educ educsq black hisp marr re74 re75 re74sq u74 u75 u74hisp nodegree  
*设定一个全局宏vars,代表后面的变量

pscore treat $vars, pscore(myscore) comsup blockid(myblock) numblo(10) level(0.005) logit

*设置block,设置显著性水平0.005,采用logit估计。一般而言,logit和probit都是比较常用的估计方法。
*这个模型也叫作选择模型。
*我们应该先检验打分的平衡性。


选择模型



描述~~


满足了平衡性要求。


(3)匹配估计量

注意:由于采用了自助法抽样,而且是1000次,所以计算起来会费时费力,在此仅做演示。

(电脑配置:台式机,六代i7处理器,16G内存,1T硬盘+256G SSD。部分模型计算时间超过五分钟)


方法一:近邻匹配(nearest neighbor matching)

含义:最邻近匹配法是最常用的一种匹配方法,它把控制组中找到的与处理组个体倾向得分差异最小的个体,作为自己的比较对象 。
优点:按处理个体找控制个体,所有处理个体都会配对成功,处理组的信息得以充分使用。
缺点:由于不舍弃任何一个处理组,很可能有些配对组的倾向得分差距很大,也将其配对,导致配对质量不高,而处理效应ATT的结果中也会包含这一差距,使得ATT精确度下降。 

*--基本命令--**
set seed 12345
*(产生随机数种子)
attnd re78 treat $vars,comsup boot reps($breps) dots logit

可以看到,这个估计结果并不好。但经过重复抽样之后,可以看到估计结果有了明显的改善。



方法二:半径匹配(radius matching)

半径匹配法是事先设定半径,找到所有设定半径范围内的单位圆中的控制样本,半径取值为正。随着半径的降低,匹配的要求越来越严。

**--基本命令--**

set seed 12345
attr re78 treat $vars, comsup boot reps($breps) dots logit radius(0.001)

在重复抽样后,标准误和t值估计的更为稳健。



方法三:分层匹配(stratification matching)

分层匹配法是根据估计的倾向得分将全部样本分块,使得每块的平均倾向得分在处理组和控制组中相等。
优点:Cochrane ,Chambers(1965)指出五个区就可以消除95%的与协变量相关的偏差。这个方法考虑到了样本的分层问题或聚类问题。就是假定:每一层内的个体样本具有相关性,而各层之间的样本不具有相关性。
缺点:如果在每个区内找不到对照个体,那么这类个体的信息,会丢弃不用。总体配对的数量减少。

**--基本命令--**

set seed 12345
atts re78 treat $vars, pscore(mypscore) blockid(myblock) comsup boot reps($breps) dots

可以看到,在抽样评估之前,并没有估计出准确的t值的解析解。自助法抽样之后,得到了数值。



方法四:核匹配法(kernel matching)
核匹配是一种非参数方法,通过构造一个虚拟对象来匹配处理组,构造的原则是对现有的控制变量做权重平均,权重的取值与处理组、控制组PS值差距呈反向相关关系。

**--基本命令--**

set seed 12345
attk  re78 treat $vars,comsup boot reps($breps) dots logit

核估计同样如此。



方法五:马氏距离


由于在倾向得分匹配第一阶段估计倾向得分时存在不确定性,Abadie and Imbens的相关研究又重新回到更简单的马氏距离,进行有放回且允许并列的k近邻匹配,针对非精确匹配一般存在偏差,提出了偏差校正的方法,通过回归的方法估计偏差,然后得到偏差校正匹配估计量。

**--基本命令--**

nnmatch re78 treat $vars, m(4) tc(att) population  bias(bias) robust(4)



以下内容下次再进行介绍~~


(4)模型总结和汇总

根据一般论文中汇报的结构,进行制表和制图(ps在控制组和干预组的支持图)。


(5)倾向得分估计的另一种思路:psmatch2



Part II 倾向得分匹配方法




在接续之前,我还是要简单回顾一下上篇文章的内容。


第一部分:数据来源


用的是国家支持工作示范项目(National Supported Work,NSW)数据,这个数据在计量经济学中的地位,应该不亚于auto.dta(汽车数据)的地位。所以在绝大多数涉及到PSM或者“处理效应模型”的教材中,都会使用这个数据。


在示例中,使用的是一个子数据集nswpsid.dta,这个数据子集是由Dehejia和Wahba俩人构建出来的(1999),原始数据是Lalonde在1986年使用的。


本文数据及分析有两个来源:


第一个来源在Cameron&Trived《微观计量经济学:方法与应用》(中译本,上海财经大学出版社,2010)pp794-800。


第二个来源在陈强的《高级计量经济学及stata应用(第二版)》(高等教育出版社,2014)pp546-555。


第一个来源主要是介绍pscore,第二个来源介绍psmatch2,两个方法其实没有什么本质的差别。



第二部分:PSM的原理


步骤:(1)验证选择性的存在;(2)倾向值打分;(3)匹配估计量


第三部分:PSM的实际操作


几种方法:

紧邻匹配、卡尺匹配、分层匹配、核匹配、马氏距离等等。其实远不止这五种,不过要说常用,这几种属于比较常用的方法。


(4)模型总结和汇总

根据一般论文中汇报的结构,进行制表和制图(ps在控制组和干预组的支持图)。


制表这个太基础了,大家可以自行查阅相关的论文,如何汇报匹配估计量及其检验结果。当然,不能忘记敏感性分析。


一般而言,我们会选用box-plot或者kdensity-plot,在下面,分别展示一下。

**--基本命令--**

*箱图
gr box myscore, over(treat) scheme(s1mono) saving(ps_box.gph,replace)

*核密度图
kdensity myscore if treat==0, normal xtitle("Control") scheme(s1mono) saving(ps_2006_1.gph,replace)
kdensity myscore if treat==1, normal xtitle("Treated") scheme(s1mono) saving(ps_2006_2.gph,replace)
gr combine ps_2006_1.gph ps_2006_2.gph, xcommon ycommon saving(ps_2006.gph,replace)

在这个样例中,箱线图做出来的效果其实很差。为什么呢?因为treat==1的组别样本量太少。



但是,在核密度图中,这个效果表现的就非常好。因为核估计是非参数估计的,所受到的约束会更小。


下图为参照组:


下图为干预组:



倾向得分估计的另一种思路:psmatch2


其实呢,psmatch2和pscore除了句法结构稍有不同之外,估计的结果等是完全相同的。


我大致列一下命令,感兴趣的朋友可以自行尝试。

**--基本命令--**

use nswpsid,clear

rename _all,lower

global breps 1000
global vars age agesq educ educsq black hisp marr re74 re75 re74sq u74 u75 u74hisp nodegree  

psmatch2  treat $vars ,out(re78)


*近邻匹配
psmatch2  treat $vars,out(re78) neighbor(2) ate
*半径匹配
psmatch2  treat $vars,out(re78)  ate radius caliper(0.01)
*核匹配
psmatch2  treat $vars,out(re78)  ate kernel

*对自变量进行平衡性检验
pstest $vars, both graph

*共同支持区间
psgraph

近邻匹配~~


跳过几个步骤,直接到pstest


最后得到图形如下:



共同支持区间:

比较差。还是样本量的原因。

Part III 补充和反思


形而上者谓之道,形而下者谓之器。或者也可以将形而下称之为“术”。


做计量研究,其实最初步的研究就是“技术层面”的问题,我们可以知其然(术)不知其所以然(道),根据课本的例子就可以去照猫画虎生造一些模型。这个方法用于初学和训练当然无可指摘,但长久下来,这个学习方法肯定是不行的。(在这里就不涉及论文写作中的“问题意识”了,单纯讨论方法论)


那什么是“道”这个层面的问题呢?当然,往上一步就是方法论。计量研究的方法论是个“求真”的过程,在通俗的语境来解释,就是一个“精确估计”样本统计量并尽可能准确地推断总体的过程。这和经验哲学以及科学哲学有着很多契合,就是所谓的“工具理性”。具体到研究中,精确地估计(准确--是不可能达到的目标)就需要克服各种实实在在的困难,这些困难会干扰结果。


那么,“这些困难”也就回到了“误差项”这个范畴中,也就是各种内生性和异质性的问题了。所以,计量研究方法论最核心的问题就是怎样解决内生性问题。


兜了这么大圈子,说说倾向值匹配的优点吧:毫无疑问,相比于常规的OLS,在OLS对选择性或者干预性时间的估计出现偏误时候,PSM可以(在一定程度上)克服选择性问题。通过设定选择模型,实现控制组和干预组的状态的“拉平”和配对。进一步,实现了可忽略假设以及反事实推断中“若甲是乙,在同等干预条件下会如何”的设定。最后就是匹配估计量。


看上去很完美。


但结局很残酷。


越复杂的模型越脆弱,假设越强,设定条件越多。所以PSM是有很强的局限性的。


考虑到我的表述不太精确,引用陈强《高级计量经济学及stata应用》pp.545的一段话:


(1)PSM通常要求比较大的样本容量以达到高质量的匹配。

(2)PSM要求除立足于控制组的倾向得分有较大的共同取值范围;否则会丢失较多的观测值,导致剩下的样本不具有代表性;

(3)PSM只控制了可侧变量的影响,如果仍然存在依不可测变量选择(selection on observable),仍然会带来隐形偏差。


另外呢,Gary King和 Richard Nielsen在2015年的工作论文“Why Propensity Scores Should Not Be Used for Matching”中也讲了一些为什么这个方法会存在问题。题目有点儿骇人听闻,其实主要是讲,有些PSM的研究忽视了样本间的不平衡性,用PSM生造出来的研究肯定会有这个问题。我把二人的摘要贴出来,看一下为啥会这样~~


Researchers use propensity score matching (PSM) as a data preprocessing step to selectively prune units prior to applying a model to estimate a causal effect. The goal of PSM is to reduce imbalance(目的就是为了减少不平衡性) in the chosen pre-treatment covariates between the treated and control groups, thereby reducing the degree of model dependence and potential for bias(削减模型依赖性及偏误). We show here that PSM often accomplishes the opposite of what is intended — increasing imbalance, inefficiency, model dependence, and bias. Theweakness of PSM is that it attempts to approximate a completely randomized experiment, rather than, as with other matching methods, a more powerful fully blocked randomized experiment. PSM, unlike other matching methods, is thus blind to the often large portion of imbalance that could have been eliminated by approximating full blocking. Moreover, in data balanced enough to approximate complete randomization, either to begin with or after pruning some observations, PSM approximates random matching which turns out to increase imbalance. For other matching methods, the point where additional pruning increases imbalance occurs much later in the pruning process, when full blocking is approximated and there is no reason to prune, and so the danger is considerably less. We show that these problems with PSM occur even in data designed for PSM, with as few as two covariates, and in many real applications. Although these results suggest that researchers replace PSM with one of the other available methods when performing matching, propensity scores have many other productive uses.(最后并不是完全地否定)


计量经济圈是中国计量第一大社区,我们致力于推动中国计量理论和实证技能的提升,圈子以海内外高校研究生和教师为主。计量经济圈六多精神:计量资料多,社会科学数据多,科研牛人多,名校人物多,热情互助多,前沿趋势多。如果你热爱计量并希望长见识,那欢迎你加入到咱们这个大家庭戳这里,要不然你只能去其他那些Open access圈子了。注意:进去之后一定要看小鹅社群“群公告”,不然接收不了群息,也不知道怎么进入咱们的微信群和计量论坛。



帮点击一下下面的小广告,谢谢支持!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存