使用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就是咱们的逆概率删失权重了。

相关推荐
数据狐(Datafox)12 分钟前
京东商品列表API接口解析(附 JSON 样例)
数据库·爬虫·json
troy12811 小时前
向量数据库选型指南:Milvus / Qdrant / Chroma / pgvector
数据库·milvus
彧azz12 小时前
Redis 全面指南:从核心概念到高可用架构实战
数据库·redis·架构
DBA小马哥12 小时前
MongoDB 数据同步怎么做?oplog、Change Streams、同步工具 4 种方案一次讲清(附踩坑清单)
数据库·mongodb
香菜TTT14 小时前
Redis的哨兵机制
java·数据库·redis
风哥2号15 小时前
数据库教程FGMT13‑Oracle性能优化之数据仓库与分区表
数据库·oracle·性能优化
玉宇夕落15 小时前
Docker + Milvus,数据库永久存放记忆,让对话历史永不丢失
数据库·docker·llm
Zenova EdgeOS16 小时前
工业网关数据持久化:从同步到 WAL 的工程实战
网络·数据库·oracle
企查查数据服务16 小时前
全军禁入下客商准入风控,关联图谱与穿透核查
大数据·开发语言·数据库·php