文档库 最新最全的文档下载
当前位置:文档库 › 倾向得分匹配法(PSM)举例及stata实现

倾向得分匹配法(PSM)举例及stata实现

倾向得分匹配法(PSM)举例及stata实现
倾向得分匹配法(PSM)举例及stata实现

倾向得分匹配法(PSM )举例及stata 实现

——读书笔记

【例】培训对工资的效应1

政策背景:国家支持工作示范项目(National Supported Work,NSW )

研究目的:检验接受该项目(培训)与不接受该项目(培训)对工资的影响。 基本思想:分析接受培训组(处理组,treatment group )接受培训行为与不接受培训行为在工资表现上的差异。但是,现实可以观测到的是处理组接受培训的事实,而处理组没有接受培训会怎样是不可能观测到的,这种状态也成为反事实(counterfactual )。匹配法就是为了解决这种不可观测事实的方法。在倾向得分匹配方法(Propensity Score Matching )中,根据处理指示变量将样本分为两个组,一是处理组,在本例中就是在NSW 实施后接受培训的组;二是对照组(comparison group ),在本例中就是在NSW 实施后不接受培训的组。倾向得分匹配方法的基本思想是,在处理组和对照组样本通过一定的方式匹配后,在其他条件完全相同的情况下,通过接受培训的组(处理组)与不接受培训的组(对照组)在工资表现上的差异来判断接受培训的行为与工资之间的因果关系。

变量定义:

变量 定义

TREAT * 处理指示变量,1表示接受培训(处理组),0表示没有接受培训(对照组)

AGE 年龄(年)

EDUC 受教育年数(年)

BLACK 种族虚拟变量,黑人时,1BLACK =

HSIP 民族虚拟变量,西班牙人时,=1HSIP

MARR

婚姻状况虚拟变量,已婚,1MARR = 74RE 1974年实际工资(1982年美元)

75RE 1975年实际工资

78RE 1978年实际工资

74U 当在1974年失业,741U =

75U

当在1975年失业,751U = NODEGREE 当12EDUC <时,1NODEGREE =,否则为0 AGESQ

AGE AGE × 1 本例选自Cameron&Trivedi 《微观计量经济学:方法与应用》(中译本,上海财经大学出版社,2010)pp794-800 所有数据及程序均来自于本书的配套网站(https://www.wendangku.net/doc/8e7048176.html,/mmabook/mmaprograms.html )。本文是末学向两位善知识Cameron 和Trivedi 的教材恭敬学习后整理的读书笔记,没有任何创意,只是简化整理一番而已,整理中难免错谬之处,敬请指正,不胜感激。末学联系方式houhh1125@https://www.wendangku.net/doc/8e7048176.html,

EDUCSQ EDUC EDUC ×

74RE SQ

7474RE RE × 75RE SQ

7575RE RE × 74U BLACK 74U BLACK ×

74U HSIP 74U HSIP × *说明:1974、1975年NSW 计划还没有实施,1978年NSW 计划已经实施,如果1974、1975年的样本在NSW 计划实施后接受了培训计划,那么1TREAT =,否则0TREAT =,1978年的样本亦然。

按处理组分类统计

【stata command 】

. bysort TREAT: sum AGE EDUC NODEGREE BLACK HISP MARR U74 U75 RE74 RE75 RE78 TREAT

变量 均值

处理组 对照组 AGE 25.81622 34.8506 EDUC 10.34595 12.11687 NODEGREE .7081081 .3052209 BLACK .8432432 .2506024 HISP .0594595 .0325301 MARR .1891892 .8662651 U74 .7081081 .0863454 U75 .6 .1 RE74 2095.574 19428.75 RE75 1532.056 19063.34 RE78 6349.145 21553.92 TREAT 1 0 培训对工资的效应影响有很多种估计方法,作者列举了五种方法,分别是: TREATMENT-CONTROL COMPARISON (处理-对照比较法)

CONTROL FUNCTION ESTIMATOR (控制函数估计量)

DIFFERENCE-IN-DIFFERENCES (差异中差分法或倍差法)

BEFORE-AFTER COMPARISON (前后比较法)

propensity scores with matching (倾向得分匹配法)

其中倾向得分匹配法的stata实现过程如下:

总的讲来分为两大部分:一是为倾向打分,二是运用得分进行样本匹配并比较。

由于stata11没有倾向得分匹配法相关的命令,所以要通过网络下载相关的

命令,相关的内容见附录。

一、倾向打分

第一步:设定宏变量breps表示重复抽样200次

. global breps200

第二步,设定宏变量XDW02,表示变量AGE AGESQ EDUC EDUCSQ MARR NODEGREE BLACK HISP RE74 RE75 RE74SQ U74 U75 U74HISP . global XDW02AGE AGESQ EDUC EDUCSQ MARR NODEGREE BLACK HISP RE74 RE75 RE74SQ U74 U75 U74HISP

第三步,通过logit模型进行倾向打分

. pscore TREAT $XDW02, pscore(myscore) comsup blockid(myblock) numblo(5) level(0.005) logit

【注释】$表示引用宏变量。

【注意】一定要把处理指示变量放在最前面

【options相关说明】

pscore(newvar) is required and asks users to specify the variable name for the estimated propensity score, which is added to the dataset.

blockid(newvar) allows users to specify the variable name for the block number

of the estimated propensity score, which is added to the dataset.

logit uses a logit model to estimate the propensity score instead of the default probit model

comsup restricts the analysis of the balancing property to all treated plus those controls in the region of common support. A dummy variable named comsup is added to the dataset to identify the observations in the common support.

level(real) allows to set the significance level of the tests of the balancing property. The default is 0.01.

numblo(real) allows to set the number of blocks of equal score range to be used at the beginning of the test of the balancing hypothesis. The default is set to 5

blocks.

相关的结果参见stata窗口,总之这一步估计出了三个东西,一是

myscore(Estimated propensity score);二是myblock(Number of block);三是

comsup(Dummy for obs. in common support)

第四步,作者在do文件中说道:For completeness do same with common

support option NOT selected,相关命令如下:

. drop myscore myblock

. pscore TREAT $XDW02, pscore(myscore) blockid(myblock) numblo(5)

level(0.005) logit

至此,倾向打分结束。接下来是根据倾向得分运用各种方法估计ATT值。

二、运用得分进行样本匹配并比较

方法一:Nearest neighbor matching (random version) 最邻近方法

首先,产生随机数种子

. set seed 10101

然后

. attnd RE78 TREAT $XDW02, comsup boot reps($breps) dots logit

【说明】注意变量排列次序,RE78正是我们所关心的变量,放在最前面;

其次是处理指示变量,最后是其他变量。关于选项内容,使用help attnd命令可

以详细学习。

通过stata结果窗口可看到有三张表格:

第一张表格

处理组样本数对照组样本数ATT* 标准差** T统计量

1285.782

3895.044 0.330 185 60

*ATT(ATET)表示已处理的平均处理效应(average treatment effect on the treated)

** Analytical standard errors

第三张表格

处理组样本数对照组样本数ATT标准差*** T统计量

1285.782

1283.764 1.002 185 60

***Bootstrapped standard errors

第一张表与第三张表的差别在于标准差的估计,第一张表使用的是解析标准

差,第三张表使用自助法得到标准差。当然t统计量也随之发生变化。

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

. set seed 10101

. attr RE78 TREAT $XDW02, comsup boot reps($breps) dots logit radius(0.001) 【说明】选项radius( ),括号内填写半径值,例如0.1,0.5,0.00001等,本

例的半径值为0.001。同样也需要注意变量排列次序问题,RE78正是我们所关心

的变量,放在最前面;其次是处理指示变量,最后是其他变量。另外,关于选项

内容,使用help attr命令可以详细学习。

通过stata结果窗口可看到有三张表格,表格结构与最邻近方法类似。

方法三:Stratification Matching(分成匹配法)

. set seed 10101

. atts RE78 TREAT, pscore(myscore) blockid(myblock) comsup boot

reps($breps) dots

方法四:Kernel Matching(核匹配方法)

. set seed 10101

. attk RE78 TREAT $XDW02, comsup boot reps($breps) dots logit

附录:pscore, attk, attnd, attnw, attr, atts 相关命令下载

第一步:查询

在stata命令窗口中点击

. findit pscore

第二步:点击链接

SJ-5-3 st0026_2 . . . . . . . . . . . . . . Software update for pscore suite

. . . . . . . . . . . . . . . . . . . . . . S. O. Becker and A. Ichino

(help attk, attnd, attnw, attr, atts, and pscore if installed)

Q3/05 SJ 5(3):470

bug fix for pscore

第三步:点击下载链接

------------------------------------------------------------------------------

package st0026_2 from https://www.wendangku.net/doc/8e7048176.html,/software/sj5-3

------------------------------------------------------------------------------

TITLE

SJ5-3 st0026_2. Estimation of average treatment effects

DESCRIPTION/AUTHOR(S)

Estimation of average treatment effects

by Sascha O. Becker, University of Munich

Andrea Ichino, EUI

Support: so.b@https://www.wendangku.net/doc/8e7048176.html,, andrea.ichino@iue.it

After installation, type help attk, attnd, attnw,

attr, atts, and pscore

INSTALLATION FILES (click here to install) st0026_2/attk.ado

st0026_2/attk.hlp

st0026_2/attnd.ado

st0026_2/attnd.hlp

st0026_2/attnw.ado

st0026_2/attnw.hlp

st0026_2/attr.ado

st0026_2/attr.hlp

st0026_2/atts.ado

st0026_2/atts.hlp

st0026_2/pscore.hlp

st0026_2/pscore.ado

倾向得分匹配法介绍

倾向得分匹配法介绍 本研究主要考察政府对企业研究开发补贴的影响,由于传统的模型例如采用 普通最小二乘法(OLS)估计的多元线性模型难以有效地解决可能存在的样本选 择性偏差和遗漏关键变量所造成的内生性这两个关键性问题。因此,本研究主要 采用倾向得分匹配法(propensity score matching,PSM)对政府对企业研究开 发的补贴与企业发展水平的实证关系进行稳健性的因果推断。 一、模型构建 1、政府补贴的二值分类指标 倾向得分匹配法方法的理论框架是基于“反事实推断模型”,即假定任何因 果分析的研究对象都存在可以观测到的和未被观测到的两种结果。以本研究为例, 根据建模的需要,首先将样本企业分为两种类型,比较样本企业在“受到补贴” 与“没有受到补贴”这两种状态下是否存在系统性差异。一类是获得政府在研究 开发方面给予补贴的企业,即处理组(T,treatment group);另一类是没有获 得政府补贴的企业,即为控制组(C,control group),由此建立二元虚拟变量 D s={0,1}。当D s=1时,表示该企业S获得了政府补贴;当D s=0时,表示该企 业S为参照组,没有获得政府补贴。 2、倾向得分匹配估计(PSM) 根据倾向得分匹配法方法的估计思路,假设lnincome表示企业发展水平的 结果变量,lnincome1表示获得政府补贴的企业发展水平,lnincome0表示未获得 政府补贴的企业发展水平。根据Rubin反事实估计的设定要求,本研究将获得政 府补贴对企业发展水平影响的参照组平均处理效应(ATT)、控制组平均处理效应 (ATU)和平均处理效应(ATE)分别定义为公式(1)-(3)。 ATT=E[(lnincome1- lnincome0) | X, subside=1] (1) ATU= E[(lnincome1- lnincome0) | X, subside=0] (2) ATE=E[(lnincome1- lnincome0) | X] (3)

倾向得分匹配-知乎

倾向得分匹配(Propensity Score Matching) 的通俗解析及在Stata里的运用 徐惟能· 2 年前 倾向得分匹配法是一种研究方法,它在研究某项治疗、政策、或者其他事件的影响因素上很常见。对于经济、金融学领域来说,比如需要研究某个劳动者接受某种高等教育对其收入的影响,或者比如研究某个企业运用了某项管理层激励措施以后对企业业绩的影响。如果我们简单地将是否执行了某项事件作为虚拟变量,而对总体进行回归的话,参数估计就会产生偏误,因为在这样的情况下,我们只观察到了某一个对象他因为发生了某一事件后产生的表现,并且拿这种表现去和另一些没有发生这件事情的其他对象去做比较。这样的比较显然是不科学的,因为比较的基础并不同。 通俗地说,我们真正要做的是考虑,如果拿小明来说,小明读了研究生和小明没有读研究生,他的收入会差多少?可是小明已经读了研究生,我怎么才能估计出他要是不读研究生,他的收入会是多少呢? 于是,我们引入“倾向得分匹配”这样一种研究方法。英文叫Propensity Score Matching。这种方法能让我们从一大堆没有读研究生的人群中(也就是我们的总体样本的一个子集),对每个人读研究生的概率进行估计,然后选出和小明具有非常相似的去读研究生的概率,可是没有去读的同学小刚——作为小明的对照,然后再来看他们的区别。当样本中的每个研究生”小明“都找到了匹配的非研究生”小刚“,我们便能对这两组样本进行比较研究了。 1. 所以第一步,我们要对总体样本执行probit或者logit模型,然后估计出每一个观测对象读研究生的概率是多少。以probit模型为例,在stata中,执行以下命令: probit [dependent var] [independent var] 其中,[dependent var]是一个0或1的二进制变量,1代表该对象读了研究生,否则是0。 2. 对每一个观测值,我们根据估计出来的probit模型,算出他读研究生的概率是多少。Stata中,执行如下命令: predictpscore, p 其中,pscore是定义的记录每个观测对象概率的变量名称。

倾向得分匹配法(PSM)举例及stata实现

倾向得分匹配法(PSM )举例及stata 实现 ——读书笔记 【例】培训对工资的效应1 政策背景:国家支持工作示范项目(National Supported Work,NSW ) 研究目的:检验接受该项目(培训)与不接受该项目(培训)对工资的影响。 基本思想:分析接受培训组(处理组,treatment group )接受培训行为与不接受培训行为在工资表现上的差异。但是,现实可以观测到的是处理组接受培训的事实,而处理组没有接受培训会怎样是不可能观测到的,这种状态也成为反事实(counterfactual )。匹配法就是为了解决这种不可观测事实的方法。在倾向得分匹配方法(Propensity Score Matching )中,根据处理指示变量将样本分为两个组,一是处理组,在本例中就是在NSW 实施后接受培训的组;二是对照组(comparison group ),在本例中就是在NSW 实施后不接受培训的组。倾向得分匹配方法的基本思想是,在处理组和对照组样本通过一定的方式匹配后,在其他条件完全相同的情况下,通过接受培训的组(处理组)与不接受培训的组(对照组)在工资表现上的差异来判断接受培训的行为与工资之间的因果关系。 变量定义: 变量 定义 TREAT * 处理指示变量,1表示接受培训(处理组),0表示没有接受培训(对照组) AGE 年龄(年) EDUC 受教育年数(年) BLACK 种族虚拟变量,黑人时,1BLACK = HSIP 民族虚拟变量,西班牙人时,=1HSIP MARR 婚姻状况虚拟变量,已婚,1MARR = 74RE 1974年实际工资(1982年美元) 75RE 1975年实际工资 78RE 1978年实际工资 74U 当在1974年失业,741U = 75U 当在1975年失业,751U = NODEGREE 当12EDUC <时,1NODEGREE =,否则为0 AGESQ AGE AGE × 1 本例选自Cameron&Trivedi 《微观计量经济学:方法与应用》(中译本,上海财经大学出版社,2010)pp794-800 所有数据及程序均来自于本书的配套网站(https://www.wendangku.net/doc/8e7048176.html,/mmabook/mmaprograms.html )。本文是末学向两位善知识Cameron 和Trivedi 的教材恭敬学习后整理的读书笔记,没有任何创意,只是简化整理一番而已,整理中难免错谬之处,敬请指正,不胜感激。末学联系方式houhh1125@https://www.wendangku.net/doc/8e7048176.html,

相关文档
相关文档 最新文档