一文通过倾向得分匹配法解决变量选择
大家好,我是阿琛。在平常的研究中,我们常常会遇到这样的问题,经过某种特殊的处理后,比如服药等等,是否对患者的疾病进展或某一结局产生效果。此时,我们就需要设立对照组来进行比较,其目地是控制非处理因素的干扰,进一步突显处理因素的的效应。尽管我们可以通过回归分析观察处理信息的作用,但是由于一些潜在的混杂因素干扰,往往会使结果产生一定的差异。PSM,Propensity Score Matching,即我们常常听到的倾向得分匹配法。
下面,我们一起来看一下如何构建竞争风险模型以及通过Nomogram图进行可视化展示。
1.R包安装与数据准备
1.1 R包的安装
#install.packages( “MatchIt”) library(MatchIt) library(foreign)
我们主要使用MatchIt包来进行倾向性评分匹配。
1.2 数据准备
data( lalonde) lalonde[1:3,]
在此,我们使用MatchIt包的内置数据集lalonde来进行演示。数据集lalonde是“国家支持的工作演示”(NSW)中治疗组数据的子样本,也是“收入动态人口调查”(PSID)中的比较样本。Lalonde(1986)以及Dehejia和Wahba(1999)之前对此数据进行了广泛的分析。
###查看变量信息 str(lalonde)
查看一下lalonde数据集,可以看到其中包含了614个观测对象,9个不同的变量,包括处理信息(treat),年龄(age),受教育程度(educ),种族(race)等等,以及结局变量(ref78)。
table(lalonde $treat)
通过table函数,可以看到其中对照组共429例患者,处理组有185例患者。
2.计算倾向评分
接下来,我们需要计算两组患者进行匹配,匹配的协变量包括年龄,受教育程度,种族等等。
f=matchit(treat ~ age + educ + race + married + nodegree + re74 + re75, data=lalonde,method= “nearest”)
在matchit函数中,通过formula参数设置好变量信息,其中treat为处理信息,age,educ等为进行匹配的协变量。设置好公式后,其中method参数除了默认的nearest(最邻近匹配法)外,还可以选择optimal,full,genetic,exact等算法。
summary(f) plot(f, type= “jitter”, interactive = FALSE)
随后,我们将匹配结果进行可视化展示。除了匹配到的185个处理组和未处理组外,其他未被匹配的患者则被展示在Unmatched Control Units里面。
matchdata=match.data(f) matchdata
3.输出结果
matchdata$id < -1:nrow(matchdata) write.table( matchdata, file= “matchdata.txt”, sep= “t”, row.names= T,col.names= NA,quote= F)
可以看到,经过匹配以后,数据集中一共包含了370个患者的信息。最后,我们将匹配得到的数据集进行输出保存进行后续的分析。
4.SPSS软件进行PSM分析
接下来,我们来看一下如何使用SPSS软件来进行PSM分析。这里通过SPSS version 26来进行演示。注意,SPSS安装需要同意安装Python Essentials插件,否则会无法进行计算。
4.1 读取数据集
首先,将数据集读取进SPSS软件中;注意一点,数据集中所有信息必须是英文或者数字,不能存在中文。
4.2 点击“数据”,选择“倾向得分匹配”
接着,将处理信息输入“组指示符”中,并在选项中输入随机种子,保证结果的可重复性;选择抽样不放回,以及勾选“抽取匹配项时随机排列个案顺序”;
同时,在将协变量输入到预测变量中,注意不要把结局变量输入进去;将病人id输入到个案ID中;点击“确定”,进行计算。
4.3 输出结果
可以看到,经过计算以后,原始数据集后面多了三列信息,其中ps为每个患者的倾向得分,elicase为是否匹配到患者,psid为匹配到的对象id。
随后,点击“数据”-“选择个案”;
其中,设定将满足elicase=1条件的患者进行挑选,并输出一个新的数据集,命名为matchdata。
这样,整个匹配筛选过程就基本完成了,接着就可以进行后续的回归分析,观察处理信息对结局变量是否产生影响。当然,PSM分析有时候会产生一定的选择偏倚。
回复“阿琛41”即可获得本次的数据和相关代码~~~
系列传送门
十分钟轻松学会R数据清洗技巧,生信小白必须跨越的第一关
排版 丨四金兄
值班 | 弘 毅
主编丨小雪球
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!