专栏名称: 解螺旋
解螺旋——医生科研最好的帮手。无论你是科研零基础,抑或初窥门径,你都可以在解螺旋获得极大的提升,从而面对基金、论文、实验游刃有余。解螺旋课堂是所有热爱科研技能学习的医生聚集地,解螺旋会员是医生科研全方位的贴心助手,加入我们,体验改变。
目录
相关文章推荐
医学界  ·  抗过敏开地塞米松,竟可能致敏? ·  3 天前  
肿瘤资讯  ·  【4108】ADC药物变迁40年:从“魔法子 ... ·  4 天前  
Clinic門诊新视野  ·  VIVA 2024丨JD ... ·  1 周前  
51好读  ›  专栏  ›  解螺旋

明明是病例回顾,偏要装作RCT

解螺旋  · 公众号  · 医学  · 2017-06-19 17:57

正文


科研经验 | 文献 | 实验 | 工具 | SCI写作 | 国自然

作者:麦子

转载请注明:解螺旋·临床医生科研成长平台


临床硕士生小瑜进了一个小老师的组。小老师手上还木有什么大经费,只好对小瑜说,要不你就做个病例回顾吧,把咱医院X年至Y年收治且有随访记录的COPD病历分析一下,分析长效β受体激动剂(LABA)是否能降低死亡率。不过呢,死亡率的影响因素还是很多的,注意下吼~

 

小瑜回去以后一筹莫展。是啊,影响因素很多很多、很多很多的。而且是回顾性研究嘛,那些因素又不可控,就算最后,用和不用LABA的随访期间内死亡率有组间差异,我怎么能肯定它就是LABA造成的呢。要是强行附会关系,肯定是争不过审稿人的,看来只能发发低分杂志了。

 

小瑜依据查文献所知,列了30多个相关因素。他知道,考虑的因素越全面,建立的模型就越细致,就越有可能唬住审稿人。但好不容易收集了591个病例之后,做了初步分析,发现竟然有10个变量P<0.05,也就是说除了LABA外,还有近1/3的因素会对死亡率产生干扰。

 

“难道我要假装不知道,就当那10个变量从来没考虑过,从来没分析过?这样倒是可以得到一个干净的、基线一致的数据。”小瑜摇摇手中那杯冰咖啡,自言自语似的说着。但他心中也明白,那样研究质量就更差了。他看到毕业的路上有一层密不透光的浓雾升腾起来。

 

坐在对面的基友小亮静静听他倾诉完,同情地望了他一眼,说,为什么不用倾向评分匹配法(Propensity Score Matching, PSM)。这样可以把回顾性研究强行拔到RCT水平。

 

嗯??

 

仿佛有了一道光。小亮打开电脑,打开R向他演示起来。

 

用PSM提取高质量样本


## 准备工作

library(MatchIt)

setwd('D:\\PSM')

PSM

# 载入MatchIt包,设置工作路径为D盘下的PSM文件夹,读取数据表PSM.csv。

 

## 计算倾向评分并匹配

PSM.m

data = PSM, method = 'nearest', distance = 'logit', caliper = 0.2 ')


# 不要被一长串吓到。调用matchit函数,“~”前面的LABA是分组,应当是一个二分变量,一般用0表示对照组,1表示治疗组;“~”后面是各个需要分析匹配的协变量,用“+”号把它们连起来。

 

# data指定那些变量所属的数据表,method选用评分匹配的方法,一般就用默认的nearest。distance则是选择计算距离或倾向值的方法,默认用logistic回归法(logit)。caliper是卡钳值,一般设为0.2,也可自行调整。

 

summary(PSM.m)

# 刚才的处理结果我们存到一个叫PSM.m的对象里去了,现在就用summary函数调出它的基本情况来看看。运行后会得到一组挺复杂的表,但主要看最后一段:



可见,我们原来对照组有292个样本,干预组有299个样本,经过计算后,各组匹配了189个样本,于是原来591个样本的大集,只留下了378个高质量样本。这时再看P值,就没有P<0.05的干扰了。


匹配前和匹配后,部分预览

 


## 提取样本

PSM.data

# 用match.data函数,从刚才的结果中提取出由那378个高质量样本组成的新表。

 

接下来就可以拿去跟死亡随访数据一起做K-M分析等等爱干嘛干嘛去啦~

 

简单理解PSM


回顾性研究的一大特点就是,事情已经发生了,混杂因素已经控制不了了。所以理论上讲,一切具有此类特征的数据,都可以用PSM处理。而且,像研究某物是否致癌这类课题,做RCT是有违伦理的,只能观察,所以也需要用PSM排除一些混杂因素的干扰。

 

排除干扰我们也有其他方法,但PSM法的一点好处是,它可以同时分析更多的干扰因素,而其他方法通常不超过10个。

 

PSM大体上是采用logistic回归法计算倾向评分(Propensity Score)之后,根据评分从对照组各样本中找到跟干预组背景相似的,匹配起来,就好像相亲要相门当互对的,配不到就单身出局。这样两组的背景就趋近均衡,具有更好的可比性。不过匹配也有其他1:n的比例。

 

其中一个关键的设置是“卡钳值”,这名字很形象,就像卡在干预组每个样本的评分上的钳子。如果一个样本的评分是0.283,匹配方法是nearest,那就在对照组中找一个评分也是0.283±0.2的样本跟它匹配,如果有多个,当然是找最近的那个。

 

可见卡得越小,匹配越精确,但可能留下供分析的样本也少,反之则匹配比较凑合,留下的样本量较大。这个值可以自己跟据具体情况调整。

 

小瑜听完终于舒了一口气,连日来的阴霾消散了。小亮微微一笑,合上了电脑。



投稿邮箱: [email protected]

合作微信:helixlife6