模型系列-PSM(stata实操)

PSM第一篇链接:模型系列-PSM原理介绍

第一篇主要介绍了为什么需要匹配?匹配的思路是什么?什么是倾向值?什么是倾向值匹配?这篇中将会介绍和PSM有关的stata操作。

以下原理复习取自 许老师的计量经济学讲义,推荐公号 宏观经济学会

PSM原理复习

首先来温习下“倾向值匹配”在说些什么?

使用匹配估计量的条件:假设个体根据可观测变量来选择是否可参与项目

以一个就业培训项目为例,在对项目进行效应评估时,我们除了能观测到人们是否参与了该项目Di和项目实施前后的收入Yi,还可以观测到参与者一些个体特征,比如年龄、受教育程度、肤色、性别等等协变量。

如果个体是否参与项目完全是由某些协变量X决定的,那么我们就可以使用匹配估计方法来估计处理效应。

匹配估计的思想简单易懂:实践中,个体i参与了培训(处理组),这人就不可能再穿越回去选择不参加培训。此时,我们就需要在没有参加培训的人中(控制组)找到某个或某些人j,如何找到这些人呢?

前面说,参与项目Di完全取决于可观测变量Xi,那么自然就是找那些与参与者i有相近X的未参与人j。我们选择到的Xj与Xi越接近,j参与培训的概率就越接近i。那么,我们就可以把j的收入Yj近似当作i在没有参与培训情形下的收入,然后将i的实际收入Yi减去近似收入Yj,得到培训的处理效应,即匹配估计量。

匹配估计
技术细节

一般来说,匹配估计量会存在偏出,因为Xi不可能和Xj完全相同。那么在非精确匹配的情形下:

  • 一对一匹配,偏差较大,方差较小
  • 一对多匹配,偏差较小,方差加大

经验法则:最好进行一堆四匹配,这样能使均方误差MSE最小。

实践

PSM的思想即,将多个X转换成一个指标,即通过某种函数f(X),把多维变量变成一维变量。这个一维变量就是倾向得分。然后,我们就可以根据这个倾向得分进行上述匹配。

PSM计算处理效应的步骤

  1. 选择协变量X。尽量将影响D和Y的相关变量都包括在协变量中。如果协变量选择不当或太少,就会引起效应估计偏误;
  2. 计算倾向得分,一般用logit回归;
  3. 进行倾向得分匹配。如果倾向得分估计较为精确,那么,X在匹配后的处理组和控制组之间均匀分布,这就是数据平衡。那么我们检验得分是否准确就需要计算X中每个分量的“标准化偏差”。经验法则:一般来说,标准化偏差不能超过10%,如果超过10%,就需要返回第2步重新计算,甚至第1步重新选择匹配协变量,或者改变匹配方法。
  4. 根据匹配后的样本计算处理效应

在第三部中,得分匹配效果不好,可能要改变匹配方法

  • k邻近匹配
  • 卡尺匹配或半径匹配
  • 卡尺内最近邻匹配
  • 核匹配
  • 局部线性回归匹配
  • 样条匹配

在实践中,并没有明确的规则来限定使用哪种匹配方法,但有一些经验法则可以来参考:

  • 如果控制个体不多,应选择又放回匹配
  • 如果控制组有较多个体,应选择核匹配

最常用的方法:尝试不同的匹配方法,然后比较它们的结果,结果相似说明很稳健。结果差异较大,就要深挖其中的原因。

但PSM也有局限性:

  • 大样本
  • 要求处理组和控制组有较大的共同取值范围
  • 只控制了可观测的变量,如果存在不可观测的协变量,就会引起“隐性偏差”

PSM实操stata命令

数据准备

*使用美国国家调查数据
webuse nlswork

*设置面板
xtset idcode year

*面板数据描述
xtdes

*生成平方项
gen age2 = age^2
gen ttl_exp2 = ttl_exp^2
gen tenure2 = tenure^2

*定义全局变量
global xlist "grade age age2 ttl_exp ttl_exp2 tenure tenure2 not_smsa south race"

*描述性统计
sum ln_wage $xlist

1

*定义种子
set seed 0001

*生成随机数
gen tmp = runiform()

*将数据库随机整理
sort tmp

倾向值匹配

*设置idcode大于2000的地方执行政策
gen treated = (idcode > 2000) &! missing(idcode)

首次使用需要安装外部命令*
ssc install psmatch2,replace

*使用二值选择模型 logit 回归估计倾向值,并基于近邻匹配(默认 K=1)实现一对一匹配;
*其它匹配方法,例如半径匹配、核匹配、样条匹配等,选项格式见psmatch2 命令的帮助文档
psmatch2 treated $xlist,out(ln_wage) logit ate neighbor(1) common caliper(.05) ties

Logit回归结果

模型拟合结果,此处无太多实际意义。

ATT估计值

ATT估计值

观测值是否在共同取值范围中

试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有22组未能匹配到合适对照。

*检验协变量在处理组与控制组之间是否平衡
pstest $xlist, both graph
gen common = _support


2

均衡性检验结果

3
4

pstest, both做匹配后均衡性检验,理论上说此处只能对连续变量做均衡性检验,对分类变量的均衡性检验应该重新整理数据后运用χ2检验或者秩和检验。但此处对于分类变量也有一定的参考价值。

*去掉不满足共同区域假定的观测值
drop if common == 0

*绘图显示倾向值的共同取值范围
psgraph

psgraph对匹配的结果进行图示。

5

匹配结果的图示化


关于PSM语法命令

以下是帮助菜单的中psmatch2语法格式:

psmatch2 depvar [indepvars] [if exp] [in range] [, outcome(varlist) pscore(varname) neighbor(integer) radius caliper(real) mahalanobis(varlist) ai(integer) population altvariance kernel llr kerneltype(type) bwidth(real) spline nknots(integer) common trim(real) noreplacement descending odds index logit ties quietly w(matrix) ate]

简单说就是:psmatch2 因变量 协变量,[选择项]。

以文中为例:
psmatch2 treated $xlist,out(ln_wage) logit ate neighbor(1) common caliper(.05) ties

重点解读命令语句中选择项的含义。本例中选择“nearest neighbor matching within caliper”匹配方法。

  • out(ln_wage)指明结局变量
  • logit指定使用logit模型进行拟合,默认的是probit模型
  • neighbor(1)指定按照1:1进行匹配,如果要按照1:3进行匹配,则设定为neighbor(3)
  • common强制排除试验组中倾向值大于对照组最大倾向值或低于对照组最小倾向值
  • caliper(.05)试验组与匹配对照所允许的最大距离为0.05
  • ties强制当试验组观测有不止一个最优匹配时同时记录
  • ate 求平均处理效应即求ATT估计值

参考资料:
1.PSM与政策评估(附Stata实现)阿虎定量笔记
2.应用计量经济学讲稿 许文立
3.实例演示Stata软件实现倾向性匹配得分(PSM)分析

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • 这篇文章是和小伙伴LF协作完成的 倾向值匹配(propensity score matching,PSM) 一、为...
    凡有言说阅读 11,297评论 0 10
  • 1.吃中药不能吃茶叶和绿豆。 2.反关脉 脉不在寸口,而现于寸口背侧,故称之反关脉。 一种生理特异的脉位。由于生理...
    春林戈革阅读 1,070评论 0 0
  • 清宣统三年三月二十九日(西元一九一一年四月二十七日),广州起义爆发。起义之军百二十人持枪械攻入广州督府衙门,两广总...
    临松薤谷丶阅读 691评论 0 2
  • 艳阳高照的日子里 很想你 你会在哪里乘凉 阴雨连天的日子里 很想你 你会在哪里避雨 白天很想你 你会在哪里 和谁嬉...
    Z周快阅读 143评论 0 0
  • 当年人们为什么喜欢买苹果手机,是因为有灵魂人物乔布斯吧。有很多原因因为乔布斯真的很有人格魅力。当苹果失去了乔布斯,...
    康淇Eliteforce阅读 1,125评论 0 0