公共数据库SEER文章复现:生存时间资料的倾向性得分匹配,全流程搞定

倾向得分匹配法是通过对样本建模(logit模型)得到倾向性得分,通过倾向性得分为试验组在对照组中找到最接近的样本,从而进行研究的。

倾向得分匹配在真实世界临床研究用途越来越广泛,它是一种事后推动组间比较均衡化的方法。但是对样本量要求会高一点,如果样本太小,会导致处理组许多样本在控制组中找不到能匹配的样本,因此,对于样本量充足的研究,可以考虑一下PSM法来控制混杂偏倚。

2cd9409184279da0b86839b89c88247f.png

接下来通过一份是实操数据集为大家详细介绍PSM法控制混杂的全套分析流程,从基线表——PSM——PSM后的回归分析,通通一文搞定!

一、实操案例介绍

数据集来源于seer公共数据库的一份白血病数据,相关变量及对应编码如下。(如需获取实操数据,可在“医学论文与统计分析”公众号后台回复“seer白血病”)

6da3d2c9f36a92e5d3ef7b4dc6f590be.png

二、R语言实操

1.安装加载R包

本次实操,我们需要先对数据进行倾向性得分匹配,再对匹配后的数据开展生存分析,分析主要用到以下R包,其中“MatchIt”包用于倾向性得分匹配,“survival”和"survminer"是生存分析中的常用包,“autoReg”是一款功能清大的包,各种回归分析不在话下,建议诸位同学可以自行探索一下。(如需获得本次实操代码,可在“医学论文与统计分析”公众号后台回复“seer白血病”)

a9ff8e162c194a838c570cadc7361209.png

2.导入并整理数据

导入数据后,对数据的处理主要包括数据的重编码,数值型数据在R语言分析中会更加灵活;定量数据转分类以及变量类型转换。

8f2cce1d5b69fec0bf0f100ed353df14.png

3.基线差异性分析

这里用到了tableone,这个包可分组给出变量的均值(标准差)/频数(频率)以及组间比较的结果,比较遗憾的是并不显示统计量。

fe8bc99197874e107fa49f1581feb297.png

代码解读:“vars”设定要描述统计的变量,”strata”指定分组变量,”data”设定数据集,”factorVars”指定分类变量。

4.倾向性得分匹配

首先,根据研究需要选择需要匹配的变量,其中~之前的变量(如chemotherapy)是分组变量,也是我们要研究的关键变量,~之后的变量则是其他混杂变量。

8d57824be1c98b737349c198689cac1e.png

代码解读:matchit(formula, data = NULL, method = “nearest”,distance = “glm”, m.order = NULL, ratio = 1,caliper = NULL, replace = FALSE)中,“method”指匹配使用的方法,这里用到了“nearest"是最近邻匹配,也是此R包的默认选项,其他常用的匹配方法还有”exact“精确匹配,”full“完全匹配等。”distance“指用于计算倾向性评分的方法,默认值是“glm”也就是logistic回归法。”m.order"是匹配发生的顺序,这里选择“random”随机,这种情况下可能出现同样代码每次运行出现不同匹配结果的情况,默认为“largest”。“ratio"限制匹配比例,等于1为1:1匹配,数据差距悬殊时,也可以1:2或者1:3、1:4。"caliper”也就是卡钳值,默认为NULL,卡钳值越小,匹配越严格,匹配上的概率也有越小,但是卡钳值过大,同样不利于控制混杂,因此在实际操作中通常设为0.01-0.1,“replace”指对于允许匹配的方法,是否通过替换进行匹配,默认为F。

5.匹配后数据描述及均衡性比较

①SMD版

4da3336e966099389b4fd1d689e28c83.png

结果如下:

dc58ce837f78bd1c9a067b07d7d7f43f.png

②P值版

这里同样用到了tableone包,代码比较简洁,好操作。

27787975a89318ef56d6f6963fcf408c.png

结果如下:

6ed9948d4824b57757e34edd038c83d9.png

6.绘制KM曲线

7af19ca8e1ce0e3f33daa95dc63b5c8d.png

代码解读:conf.int为T,则显示置信区间,”pval “可以自定义在绘图上显示的文字,”risk.table“规定了风险表是否显示,T为显示,“legend.lab””legend.title"定义了图例的名字与分类名字,“linetype”定义线型大小,“xlim”“ylim”定义了x轴与y轴的区间范围,“break.x.by”定义x轴最小单位,“ggtheme”定义了绘图主题。

结果如下:

601643124e0a13986907ef7f2f30e67e.png

那么匹配后,当数据已经均衡可比了,我们应该怎么去分析呢?

倾向得分匹配后,出现了两种现象:第一,样本量减少了;第二,匹配带来了数据的聚集性,造成数据不独立。

这里针对“生存事件资料”,提出几种解决数据不独立、样本量减少的办法。生存事件资料倾向得分匹配后,可开展分层Cox回归、稳健Cox回归、Cox 脆弱模型(Frailty model)回归。

接下来,从普通cox回归到多种形式的cox回归都为大家介绍一下!

7.多因素cox分析

这里用到了survival包与autoReg包。survival包中的coxph函数比较好理解surv(生存时间,生存状态)~混杂因素,data=数据集)。autoReg包是一款功能强大的R包,可以一步到位实现批量单因素,多因素以及逐步回归法

34db77f64a5271b80c32fa330c845478.png

代码解读:autoReg函数可以自动根据设定的阈值控制变量进入多因素回归模型,如果不限制阈值,全部变量进入多因素回归,可将阈值设置为1,如threshold=1;加上“final= TRUE”表示增加逐步向后回归的结果。

8.匹配后cox回归分析——分层分析、脆弱模型、最佳稳健法

在Cox回归应用上,其实,最推荐的应该是稳健法Cox回归方法,下面汇总了各类方法的代码,大家可以都了解一下与普通cox回归代码略有不同。

c592aa7f5976b711acdcf89d0c650cdf.png

好的,以上就是我们本次代码复现的全部内容,包括基线表,KM曲线,PSM,匹配后的回归分析,足够一篇文章的主要统计内容,大家感兴趣的话,不妨试一试!

相关数据与代码已经放在“医学论文与统计分析”公众号后台,回复“seer白血病”即可获取。

三、风暴统计平台一站式分析

以上统计方法在“风暴统计”平台均可实现,包括:

  • 倾向性得分匹配

  • 匹配前后SMD分析图

  • 匹配前后概率密度分析图

  • 绘制KM曲线

  • 匹配前后差异性比较

  • 配后的多种形式回归分析

一应俱全!真正实现菜单式操作,有兴趣不妨点击下方链接查看详细操作流程,快来试试吧!

倾向性得分匹配后,生存时间资料要如何分析?

a240f3bb22f5a6a7ff398b4095ddf133.png

72a0ca512b2b6ab2b71dcd859167e69f.png

以上就是本篇文章的全部内容啦!感兴趣的话,不妨来试试吧!

本公众提供各种科研服务了!

一、课程培训

2022年以来,我们召集了一批富有经验的高校专业队伍,着手举行短期统计课程培训班,包括R语言、meta分析、临床预测模型、真实世界临床研究、问卷与量表分析、医学统计与SPSS、临床试验数据分析、重复测量资料分析、nhanes、孟德尔随机化等10余门课。如果您有需求,不妨点击查看:

发表文章后退款!2023年郑老师团队多门科研统计直播课程,欢迎报名

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值