当前位置: 首页 > news >正文

R语言使用nonrandom包进行倾向评分匹配

倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛。在观察研究中,由于种种原因,数据偏差(bias)和混杂变量(confounding variable)较多,倾向评分匹配的方法正是为了减少这些偏差和混杂变量的影响,以便对实验组和对照组进行更合理的比较。
为什么需要做倾向评分匹配?
我们知道RCT的证据力度高,是因为对患者进行了严格的筛选。我们的回顾性研究都是过去的数据,很难像RCT一样进行严格的筛选出两组患者基线相近的基础资料,但我们可以通过倾向评分匹配把回归性的数据进行筛选,把基线资料相近的患者进行匹配,得到近似RCT的效果。
应用场景
 1.基线资料不平
 2.开展病例对照研究病阳性例数较少,如罕见病研究
 3.将众多混杂因素变为一个变量:倾向值
以下为一个实例,没进行匹配前两组患者基线资料相差很大,进行倾向评分匹配后,基线资料近似一致了
在这里插入图片描述
既往咱们已经介绍了Matching包进行倾向评分匹配,今天咱们来介绍nonrandom包进行倾向评分匹配,这个包需要在github上安装,咱们先把这个包安装上去

library(devtools) # Load devtools
install_github("cran/nonrandom")

安装好后R导入R包自带得stu1数据

library(nonrandom)
data(stu1)

在这里插入图片描述
我介绍几个关键变量,pst是咱们得结局变量,therapie是等会咱们要进行匹配得变量,是两种治疗方法:1:乳房切除术;2:保乳 ,其他都是一些协变量

咱们可以先看下没调整前协变量对模型得影响

rel.eff <- relative.effect(data    = stu1,formula = pst~therapie+tgr+age)
summary(rel.eff)

在这里插入图片描述
刚才已经说了,我们是要对therapie两种治疗方法:1:乳房切除术;2:保乳进行匹配,好查看预后,先进行倾向评分

ps <- pscore(data    = stu1,formula = therapie~tgr+age)

对根据PS数据分层

strata <- ps.makestrata(object = ps)

对分层数据进行倾向评分匹配,ratio = 1是1:1匹配,caliper
表示卡钳

match <- ps.match(object  = ps,ratio   = 1,caliper = 0.5,givenTmatchingC = FALSE)

匹配好后可以从match中提取匹配好后得数据

data.matched<-match[["data.matched"]]

在这里插入图片描述
对匹配后得数据进行可视化

bal.plot1 <- dist.plot(object = strata,sel     = c("tmass"))

在这里插入图片描述

bal.plot2 <- dist.plot(object    = match,sel       = c("alter"),plot.type = 2,compare   = TRUE)
bal.plot2

在这里插入图片描述
可以看出匹配前和匹配后差别很明显,还可以比较标准化差异

bal.table <- ps.balance(object  = match,sel     = c("tgr","age"),method  = "stand.diff",alpha   =  20)
bal.table

在这里插入图片描述
还可以比较匹配前后对效应值得影响

ps.est <- ps.estimate(object = strata,resp   = "pst",regr   = pst~therapie+tgr+age)
ps.est

在这里插入图片描述

相关文章:

  • 网站建设重点步骤市场调研报告1500字
  • 2345网站登录文案发布平台
  • 做投票网站有没有免费的crm系统软件
  • 网站建设的流程加强服务保障满足群众急需i
  • 做网站服务商双滦区seo整站排名
  • 自己做网站用花钱么百度推广免费
  • Golang中的map使用
  • Vue 2 项目中内嵌 md 文件
  • OpenCV计算机视觉实战(13)——轮廓检测详解
  • C++ - vector 的相关练习
  • AMS流媒体服务器-新版(h265-flv)
  • Spring--IOC容器的启动流程图解版
  • 大数据在UI前端的应用深化研究:用户行为模式的挖掘与分析
  • Axure版AntDesign 元件库-免费版
  • 使用Adobe Acrobat DC创建PDF表单域的完整指南
  • Linux网络协议栈的基石:深入剖析inet_hashtables.c的高效设计
  • 供应链管理:主要生产计划类型及其相关信息
  • 如果你在为理解RDA、PCA 和 PCoA而烦恼,不妨来看看丨TomatoSCI分析日记
  • MES与ERP深度融合:数据报表、可视化大屏及系统集成技术详解
  • 深入解析与修复 Linux 中的种种依赖项错误:Dependencies packages error solution
  • 分享一些实用的PHP函数(对比js/ts实现)
  • MySQL-主从复制分库分表
  • 超实用AI工具分享——ViiTor AI视频配音功能教程(附图文)
  • Java 大视界 -- 基于 Java 的大数据可视化在智慧城市能源消耗动态监测与优化决策中的应用(324)
  • 利用 YOLOv5-7.0 和 ByteTrack 实现多目标跟踪 — Python Demo 详解
  • 降低90%推理成本:腾讯混元+云函数动态扩缩容策略详解