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