使用scitable包,两步生成逆概率删失权重(IPCW)

逆概率删失加权(Inverse Probability of Censoring Weighting, 简称 IPCW)是一种在统计学和流行病学中广泛使用的分析方法,IPCW 的核心思想是通过为样本赋予不同的权重来纠正由于数据删失或干预偏离带来的选择偏倚。具体而言,该方法会为那些具有与删失个体相似预后特征的"未删失个体"赋予额外的权重(即计算其被观测到概率的倒数)。通过这种加权,分析结果能够更准确地反映如果未发生删失或干预偏离时的真实情况,从而在满足关键假设的前提下获得无偏的估计量。

逆概率加权(IPW)和逆概率删失加权(IPCW)虽然名字相似,底层逻辑也一致,但它们解决的是两个完全不同的问题。简单来说,IPW 处理的是"谁接受了治疗",而 IPCW 处理的是"谁的数据被观测到了"。

想象你要调查"某种药物对血压的影响":

IPW 解决的问题:吃药的人和没吃药的人,本来年龄、体重、病情严重程度就不同。IPW 通过加权,让吃药组和没吃药组在基线特征上变得"可比",就像随机分组一样。

IPCW 解决的问题:在随访过程中,有些吃药的人因为副作用退出了研究,有些没吃药的人因为搬家失联了。如果只看剩下的人,结果会有偏差。IPCW 通过加权,让"坚持下来的人"能够代表"那些退出或失联的人",从而还原完整的随访轨迹。

因此在一些特定环境下,比如真实环境中不断有人退出研究,IPCW更加适合。使用使用scitable包,两步生成逆概率删失权重(IPCW),下面我来演示一下

第一步:导入数据

r 复制代码
setwd("E:/公众号文章2026年/逆概率删失加权")
dt<-read.csv("dt.csv",sep=',',header=TRUE)

我来解释一下数据timetoexposure,就是到暴露需要的时间,exposure就是咱们的研究变量,就是是否使用白蛋白,event是咱们的结局变量,timetoevent就是咱们的随访时间,cov1就是咱们的协变量。

第二步,生成权重

一句话代码,data放入数据,time_to_x就是暴露需要的时间,y就是结局变量,x是咱们的研究变量,time是随访时间,ced_window是咱们的宽限期窗口,要设置一个宽限期窗口,cov是协变量,

r 复制代码
library(scitable)

data <- sci_CCW(
  data = dt,
  id = 'id',
  y = 'event',
  time_to_x = 'timetoexposure',
  x = 'exposure',
  time = 'timetoevent',
  ced_window = 100,
  cov =c("cov1"),
  username = username, token = token
)

如上图所示红箭头的weight_cox就是咱们的逆概率删失权重了。

相关推荐
隔窗听雨眠1 小时前
AI原生数据库浪潮:国产数据库的架构重构与路径之争
数据库
数据库小学妹2 小时前
数据库选型实战:从数据类型到TCO成本,五维决策框架+九款产品横评
数据库·信创·国产数据库·数据库选型·oracle迁移
神龙天舞20013 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
丙氨酸長鏈4 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
独行侠影a5 小时前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行
数据库·redis·分布式
传说故事5 小时前
数据库中一些常用英文单词含义
数据库·oracle
夏贰四5 小时前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
林焱RPA6 小时前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库
名字还没想好☜6 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine