R语言3组患者倾向性评分匹配(PSM)

倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛。在观察研究中,由于种种原因,数据偏差(bias)和混杂变量(confounding variable)较多,倾向评分匹配的方法正是为了减少这些偏差和混杂变量的影响,以便对实验组和对照组进行更合理的比较。
为什么需要做倾向评分匹配?
我们知道RCT的证据力度高,是因为对患者进行了严格的筛选。我们的回顾性研究都是过去的数据,很难像RCT一样进行严格的筛选出两组患者基线相近的基础资料,但我们可以通过倾向评分匹配把回归性的数据进行筛选,把基线资料相近的患者进行匹配,得到近似RCT的效果。
应用场景
 1.基线资料不平
 2.开展病例对照研究病阳性例数较少,如罕见病研究
 3.将众多混杂因素变为一个变量:倾向值
以下为一个实例,没进行匹配前两组患者基线资料相差很大,进行倾向评分匹配后,基线资料近似一致了
R语言3组患者倾向性评分匹配(PSM)_第1张图片
既往我们已经介绍了使用R和SPSS进行倾向评分匹配,后台有不少粉丝问怎么进行3组患者数据的倾向评分匹配,今天我们来演示一下。
目前尚未有能制作3组评分匹配的专门R包,本文进行3组倾向评分匹配的方法来源于以下2篇论文(见参考文献),R的操作来源于第二篇论文。
在第二篇论文中,作者给出了实现机理及给出了主要的R代码,但作者的代码有点乱,亢余代码较多,而且只有部分主要代码,我依据作者的思路和匹配方法补齐了方法部分代码和修正了部分错误,下面通过我们的早产数据来一步步实现,想了解原理请下载作者论文。
继续使用我们的早产数据,我们先导入数据

bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)

R语言3组患者倾向性评分匹配(PSM)_第2张图片
这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值。
我们先把分类变量转成因子

bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)

假设我们研究的是有不同种族(race)对生出低体重儿(low)的影响。需要对3个种族进行基线资料倾向评分匹配

本文为转载文章,原文地址如下:
https://mp.weixin.qq.com/s/qnTJfjZnX4ZrmVsRAKiWqw

你可能感兴趣的:(R语言,r语言,人工智能,开发语言)