楼主: pmt10122260
135761 189

[面板数据求助] 实例演示Stata软件实现倾向性匹配得分(PSM)分析   [推广有奖]

  • 2关注
  • 45粉丝

硕士生

73%

还不是VIP/贵宾

-

威望
0
论坛币
1455 个
通用积分
213.2877
学术水平
48 点
热心指数
43 点
信用等级
29 点
经验
8146 点
帖子
57
精华
1
在线时间
202 小时
注册时间
2016-4-26
最后登录
2021-11-9

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本菜鸡最近在做PSM+DID的实验项目,之前没有这方面基础,看到一篇教程感觉比较实用,特意分享给大家,有需要可以共同学习:原文网址:http://kysj.amegroups.com/articles/4278
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过程中几乎不参与建模。



3.数据分析及命令解读
命令窗口键入如下命令:
.set seed = 10101
.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匹配结果的图示化


图6. 匹配结果



5.Stata命令汇总

.ssc install psmatch2 #安装程序包
.use "F:\lalonde.dta" #调用F盘存储数据
.set seed 10101
.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 #图示匹配结果



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:stata软件 Stata tata PSM 倾向性 倾向得分匹配 PSM stata实例

回帖推荐

Lu-C 发表于20楼  查看完整内容

匹配前后的核密度图 twoway(kdensity _ps if _treat==1,legend(label(1 "Treat")))(kdensity _ps if _treat==0, legend(label(2 "Control"))),xtitle(Pscore) title("Before Matching") twoway(kdensity _ps if _treat==1,legend(label(1 "Treat")))(kdensity _ps if (_weight!=1&_weight!=.), legend(label(2 "Control"))),xtitle(Pscore) title("After Matching")
已有 21 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
rainkira + 2 + 2 精彩帖子
472496481 + 1 + 1 + 1 精彩帖子
姜HX + 1 + 1 + 1 精彩帖子
crystal8832 + 10 精彩帖子
Vivian_zy + 1 + 1 + 1 精彩帖子
三重虫 + 4 + 4 精彩帖子
ruanhaoya + 1 + 1 + 1 精彩帖子
玄火小王 + 2 + 2 + 2 + 2 精彩帖子
iRolly + 66 精彩帖子
zhanghui0931 + 2 精彩帖子

总评分: 经验 + 446  论坛币 + 73  学术水平 + 33  热心指数 + 28  信用等级 + 14   查看全部评分

本帖被以下文库推荐

天道酬勤
沙发
auirzxp 学生认证  发表于 2017-2-12 18:09:44 |只看作者 |坛友微信交流群
感谢分享

使用道具

藤椅
nkunku 发表于 2017-2-13 07:41:19 |只看作者 |坛友微信交流群
感谢分享

使用道具

板凳
alwaysneil 发表于 2017-2-14 11:36:27 |只看作者 |坛友微信交流群
很详细的教程,感谢。本人纯菜鸟,有一点问题想请教一下
匹配前后处理组样本与控制组样本倾向得分值的核密度函数图psmatch2有办法做吗?
还有就是psmatch2是不是只能匹配数据,不能做后续ATT的分析呢,还需要atts.ado这些吗?
非常感谢楼主的教程!

使用道具

报纸
offandon 发表于 2017-3-12 15:48:01 |只看作者 |坛友微信交流群
谢谢分享。不错。

使用道具

地板
succe—0805 发表于 2017-9-30 23:01:13 |只看作者 |坛友微信交流群
感谢楼主

使用道具

7
caichaoying211 发表于 2017-10-6 15:11:40 |只看作者 |坛友微信交流群
特别感谢分享!!!!!!!

使用道具

8
会旋转的小火柴 学生认证  发表于 2017-10-23 11:03:48 |只看作者 |坛友微信交流群
谢谢楼主分享,很有用!

使用道具

9
13554147369 学生认证  发表于 2017-10-23 15:21:30 |只看作者 |坛友微信交流群
可否提供下对应的数据文件?

使用道具

10
么伽的春天 发表于 2017-10-27 23:18:58 |只看作者 |坛友微信交流群
感谢楼主!特别有用

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 01:48