网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

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

箱:econometrics666@sina.cn

编辑:计量经济圈;上半部分作者,周支瑞,复旦大学附属肿瘤医院放射治疗在读博士;下半部分作者:计量经济圈 Inno.静;转载请注明出处。

试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个体进行配对分析。但是,如果协变量并不是某一个变量,而是一组变量时,这种简单的匹配方式也就不再适用,而是采用倾向得分匹配方式进行匹配。倾向性匹配得分(PSM)分析,主流统计学软件SAS、Stata、SPSS(22.0以上版本)、R语言均可实现。但SAS难度较高,不推荐;SPSS虽然操作简便,但是仅能实现1:1匹配,如无特殊需求可以尝试。笔者重点推荐使用Stata或者R语言完成PSM分析。下面笔者将以实例演示的形式讲解Stata软件在倾向性匹配得分中的应用。

1.安装psmatch2统计包。

命令如下:

.ssc install psmatch2

需要在联网状态下键入上述命令,然后软件自动搜索对应的程序包进行安装,成功安装后会有以下提示:

checking psmatch2 consistency and verifying not already installed...

installing into .\ado\plus\...

installation complete.(出现此提示表示安装完成)

为了验证是否成功安装以及查看psmatch2命令的帮助菜单,可在命令窗口键入

.help psmatch2

如果能顺利弹出帮助文件,表示安装成功,可正常使用。

2.数据准备

数据如下图所示,共有10个变量,614个观测,试验组185例,对照组429例。treat变量即为分组变量,“1”=试验组,“0”=对照组。age, educ, black, hispan, married, nodegree, re74, re75为协变量, re78为结局变量。事实上,倾向性匹配得分分析是要建立一个以分组变量(treat)为因变量,各个协变量(age, educ, black, hispan, married, nodegree, re74, re75)为自变量的回归方程。而结局变量(re78)在PSM过程中几乎不参与建模。

图1. 数据整理

3.数据分析及命令解读

命令窗口键入如下命令:

.gen tmp = runiform()

.sort tmp (以上两步对所有观测值进行随机排序)

.psmatch2 treat age educ black hispan married nodegree re74 re75, out(re78) logit neighbor(1) common caliper(.05) ties

.pstest, both

.psgraph

命令解读:

以下是帮助菜单中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 因变量 协变量,[选择项]。重点解读命令语句中选择项的含义。本例中选择“nearest neighbor matching within caliper”匹配方法。out(re78)指明结局变量。logit指定使用logit模型进行拟合,默认的是probit模型。neighbor(1)指定按照1:1进行匹配,如果要按照1:3进行匹配,则设定为neighbor(3),本例中因对照组样本量有限,仅适合1:1进行匹配。common强制排除试验组中倾向值大于对照组最大倾向值或低于对照组最小倾向值。caliper(.05)试验组与匹配对照所允许的最大距离为0.05。ties强制当试验组观测有不止一个最优匹配时同时记录。

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

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

4.结果解读

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

图2. 回归结果

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

图3. 匹配情况概览

4.3结果解读的重点应该是对stata新生成的中间变量的解读。打开数据编辑窗口,会发现软件自动生成了几个新变量:其中_pscore是每个观测值对应的倾向值;_id是自动生成的每一个观测对象唯一的ID(事实上这列变量即是对_pscore排序);_treated表示某个对象是否试验组;_n1表示的是他被匹配到的对照对象的_id(如果是1:3匹配,还会生成_n2, _n3);_pdif表示一组匹配了的观察对象他们概率值的差。为了观察方便可以按照id变量进行排序,排序后结果如下图所示:

图4. 匹配后的数据

匹配后数据整理进行统计分析即可。

4.4均衡性检验结果

图5. 均衡性检验结果

由均衡性检验结果可知,(1)各变量匹配后在试验组和对照组间是均衡的。(2)只有educ这个变量匹配前后试验组较对照组p值无变化,匹配前该变量试验组和对照组就无差别,匹配后不太可能出现差异,因此在建模的时候也可以考虑把educ这个变量排除,事实证明排除这个变量后匹配结果更为理想,读者可自行尝试。需要再次强调的是,此处理论上说只能对连续变量做均衡性检验,对分类变量的均衡性检验应该重新整理数据后运用χ2检验或者秩和检验等方法。

4.5匹配结果的图示化

5.Stata命令汇总

.ssc install psmatch2 #安装程序包

.use "F:\lalonde.dta" #调用F盘存储数据

.gen tmp = runiform()

.sort tmp #对所有观测随机排序

.psmatch2 treat age educ black hispan married nodegree re74 re75, out(re78) logit neighbor(1) common caliper(.05) ties #PSM分析

.pstest, both #均衡性检验

.psgraph #图示匹配结果

最后留下两个问题给大家思考:

问题1:倾向性匹配得分分析这么牛,是不是可以替代设计良好的随机对照试验?

问题2:PSM既然可以很好的均衡基线特征,统计分析时继续运用多元回归是否还有必要?

题目

凡事有利必有弊!PSM肯定不是完美无缺的(废话,如果PSM完美无缺,那还要随机对照试验干什么?)。大家觉得PSM这种方法有何缺陷呢?当然,也可以顺便谈谈PSM的优点。

计量经济圈资深圈友:Inno·静,贡献倾向得分匹配分析代码

第一种:
教程: 倾向匹配分析深度(Propsensity matching analysis)

安装系统包:ssc install psmatch2

统计缺失值:misstable sum smoke2_new qa1age employ2014 cfps2010edu_best qe1_best urban qq301 qg307siops feduc meduc

建模:probit smoke2_new qa1age employ2014 cfps2010edu_best qe1_best urban qq301 qg307siops feduc meduc

计算得分:predict pscore, p

匹配:psmatch2 smoke2_new, pscore(pscore) noreplacement
attnd med_per fasmoke3_why $xlist, pscore(myscore) comsup boot reps($breps) dots

第二种:
psmatch2 smoke2_new qa1age employ2014 cfps2010edu_best qe1_best urban qq301 feduc meduc, out(income) logit neighbor(1) common caliper(.05) ties

pstest, both

psgraph

简单说就是:psmatch2 因变量 协变量,[选择项]。重点解读命令语句中选择项的含义。本例中选择“nearest neighbor matching within caliper”匹配方法。out(re78)指明结局变量。logit指定使用logit模型进行拟合,默认的是probit模型。neighbor(1)指定按照1:1进行匹配,如果要按照1:3进行匹配,则设定为neighbor(3),本例中因对照组样本量有限,仅适合1:1进行匹配。

common强制排除试验组中倾向值大于对照组最大倾向值或低于对照组最小倾向值。caliper(.05)试验组与匹配对照所允许的最大距离为0.05。ties强制当试验组观测有不止一个最优匹配时同时记录。

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

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

第三种:
global ylist logmed_per5

global treat fasmoke1_why

global xlist falcohol3_why fasmokenum2_why smoke_longth logindinc

global xlist falcohol3_why logindinc

pscore $treat $xlist, pscore(mypscore) blockid(myblock) detail,if household_hsy==1

psgraph, treated($treat)pscore(mypscore)

gen logitpscore = log(mypscore/(1-mypscore))

sum logitpscore

qui psmatch2 $treat, outcome($ylist) pscore(mypscore) caliper(.01138) neighbor(1)

pstest $xlist, treated($treat) both graph, if household_hsy==1

drop mypscore myblock

写在后面:各位圈友,咱们的计量经济圈社群里面资料和计量咨询都很多,希望大家能够积极加入咱们这个大家庭戳这里)。之后我们会逐步邀请社群里的圈友再直接建立微信群与圈圈对话,进去之后一定要看“群公告”,不然接收不了群息。


帮点一下下面的小广告,表示感谢!!!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
Shams:詹姆斯接近做出决定,他想加盟一支有争冠实力的队伍

Shams:詹姆斯接近做出决定,他想加盟一支有争冠实力的队伍

懂球帝
2026-07-14 07:29:09
发现中国有一个奇怪社会现象:父母不在人世间了, 什么舅舅姑姑表兄弟, 还有一些八竿子打不着的亲属, 基本上就形同陌路,不再相互往来

发现中国有一个奇怪社会现象:父母不在人世间了, 什么舅舅姑姑表兄弟, 还有一些八竿子打不着的亲属, 基本上就形同陌路,不再相互往来

背包旅行
2026-07-13 15:12:59
肖鹰紧追网友补刀成绝杀,人民大学终结了一个天才少女的神话

肖鹰紧追网友补刀成绝杀,人民大学终结了一个天才少女的神话

读鬼笔记
2026-07-13 21:49:45
“天才少女”蒋方舟彻底塌房!深扒她的成长成名史罪魁祸首原来是她妈妈

“天才少女”蒋方舟彻底塌房!深扒她的成长成名史罪魁祸首原来是她妈妈

浪花妈妈
2026-07-14 02:01:47
杭州警方通报持刀伤人案件:1人死亡,嫌犯已被刑拘

杭州警方通报持刀伤人案件:1人死亡,嫌犯已被刑拘

界面新闻
2026-07-13 18:55:04
队报:勒泰西耶不再执法2026世界杯

队报:勒泰西耶不再执法2026世界杯

懂球帝
2026-07-13 23:08:07
《功夫女足》票房井喷,让多少资方的眼红,周星驰又赌对了

《功夫女足》票房井喷,让多少资方的眼红,周星驰又赌对了

星宿影视鸭
2026-07-13 11:36:32
超250万人签网络请愿书,要求将阿根廷逐出世界杯

超250万人签网络请愿书,要求将阿根廷逐出世界杯

观察者网
2026-07-13 22:17:20
江西创一代在广东遭遇天价彩礼88.8W,最后结尾升华了

江西创一代在广东遭遇天价彩礼88.8W,最后结尾升华了

杭城村叔
2026-07-13 13:42:47
知乎高赞!这个时代最大的红利是你可以选择不玩了,一个月1500就可以吃饱

知乎高赞!这个时代最大的红利是你可以选择不玩了,一个月1500就可以吃饱

六子吃凉粉
2026-07-13 15:12:13
“多做一会,多赚点钱”,大火中被困的多是计件工

“多做一会,多赚点钱”,大火中被困的多是计件工

南风窗
2026-07-13 13:28:10
赵露思澳门演唱会生图,穿短裤露屁股蛋子,齐刘海造型撞脸Lisa

赵露思澳门演唱会生图,穿短裤露屁股蛋子,齐刘海造型撞脸Lisa

胡一舸南游y
2026-07-13 18:18:44
美参议员格雷厄姆,死因披露!特朗普称,事发当晚他与刚刚从乌克兰回国的格雷厄姆通了电话,对方“显得有些疲惫”

美参议员格雷厄姆,死因披露!特朗普称,事发当晚他与刚刚从乌克兰回国的格雷厄姆通了电话,对方“显得有些疲惫”

都市快报橙柿互动
2026-07-13 08:01:18
如出一辙!周星驰《功夫女足》上映不到一天,多年积怨全爆发

如出一辙!周星驰《功夫女足》上映不到一天,多年积怨全爆发

不似少年游
2026-07-12 11:27:26
有爱!阿根廷队官宣:将向广西灾区捐赠物资,回归中国球迷的支持

有爱!阿根廷队官宣:将向广西灾区捐赠物资,回归中国球迷的支持

风过乡
2026-07-14 05:47:02
深挖赛力斯预亏15亿背后:四年扣非利润15亿、华为拿走1113亿!

深挖赛力斯预亏15亿背后:四年扣非利润15亿、华为拿走1113亿!

车智inveh
2026-07-14 00:26:17
谈谈一生都被打假的蒋方舟

谈谈一生都被打假的蒋方舟

红色少女主播
2026-07-10 02:54:11
NSF 拟出台新政,几乎全面禁止与中国科学家合作

NSF 拟出台新政,几乎全面禁止与中国科学家合作

生物学霸
2026-07-13 18:02:23
混血台妹!细枝硕果,不科学啊!

混血台妹!细枝硕果,不科学啊!

云端小院
2026-07-04 07:38:42
谁想当皇帝,人民绝不答应!

谁想当皇帝,人民绝不答应!

浪子说
2026-07-13 07:06:35
2026-07-14 07:55:00
计量经济圈
计量经济圈
经济、金融等相关问题
338文章数 155关注度
往期回顾 全部

头条要闻

官方通报女干部占车位被质疑"护彭贬闵" 当地再回应

头条要闻

官方通报女干部占车位被质疑"护彭贬闵" 当地再回应

体育要闻

世界杯月赚1.7亿,51岁的他仍是顶流

娱乐要闻

具俊晔“深情人设”崩塌,遗产瓜开撕

财经要闻

SK海力士暴跌15%原因找到了?

科技要闻

OpenAI与Anthropic互掐,最强AI也怕你不用

汽车要闻

小米澎程N90 Max工信部信息曝光 全尺寸旗舰 露营版首秀

态度原创

教育
艺术
时尚
旅游
亲子

教育要闻

欢迎报考华南理工研究生!33场直播+现场咨询为你解惑

艺术要闻

毛泽东36幅书法对联,文采非凡、气象万千!

papi酱,吓坏内娱

旅游要闻

从“九里十三坊”到“横塘物语” 东莞700岁古村盛装归来

亲子要闻

闺女马上升小学,媳妇送她一堆试卷,高兴的她都哭了

无障碍浏览 进入关怀版