分享

倾向得分匹配(PSM)操作过程与反思

 张春强2022 2018-07-27


想了解实证会计与Stata应用训练营02期收官之作吗?请点击图片看详情!

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.实操

变量:

(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)

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

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

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

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

方法四:核匹配法(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 倾向得分匹配方法—续上文

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

(1)数据来源

用的是国家支持工作示范项目(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,两个方法其实没有什么本质的差别。

(2)PSM的原理

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

(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的组别样本量太少。

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

下图为参照组:

下图为干预组:

(5)倾向得分估计的另一种思路: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


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.(最后并不是完全地否定)

本文来源:微信公众号计量经济圈

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多