excel学习库

excel表格_excel函数公式大全_execl从入门到精通

倾向性评分加权-IPTW(逆概率加权)-处理两组基线不平衡的好方法

目 录

1. 倾向性评分(PS)

2. 逆处理概率加权(IPTW)

3. R语言IPTW的基线表(Table-1)

3-1. 确定混杂因素

3-2. 建模并计算PS

3-3. PS逆概率加权

3-4. 建立IPTW基线表

3-5. 标准化平均差可视化

3-6. 输出加权和为加权基线表

一、倾向性评分简介

1. 混杂因素

不同于临床随机对照试验,观察性研究由于存在很多混杂因素,有时会使研究结果出现很大偏差。
例如:我想研究某院改良根治术后T1-2N1乳腺癌患者接受和不接受放射治疗(RT)对局部复发的影响。在这个非随机化的观察性研究中,治疗组 (RT) 和对照组 (No-RT) 之间在基线资料方面会因为非随机化而存在不均衡(如,年龄、免疫组化(ER、PR、Her2、Ki67)、脉管癌栓、组织学分级等)。
我们希望在分析RT对结局的影响时,这些混杂因素对分析结果的影响尽可能小,即,希望治疗组 (RT) 和对照组 (No-RT) 患者有尽可能一致的基线特征 (P>0.05)。这时候倾向性评分 (Propensity Score, PS) 可能会非常有用。

2. 倾向性评分本质上是一个概率

我们的研究目的是RT (两个水平,1=RT和0=No-RT) 对复发的影响,则混杂因素是除了RT外的其他因素 (x1+x2+x3...) ,而评分就是在混杂因素存在的条件下,患者被纳入RT组的概率(倾向性)

显然,因各种混杂因素作用,每个人的倾向性评分(概率)是不同的

3. 倾向性评分匹配(PSM)

为了平衡这个概率于是就有了PSM,把PS相同或相近的RT患者和No-RT患者拎出来配成一对,这样就降低了混杂因素的影响。

然而,PSM会使样本总量减少且某些重要样本因为找不到配对而被抛弃。

那有没有不减少样本量又能完成降低混杂因素影响的方法

二、逆概率处理加权

逆概率处理加权(Inverse Probability of Treatment Weighting, IPTW) 或逆处理概率加权(Inverse Probability of Weighting, IPW)

1. 逆概率加权

所谓逆概率加权就是将评分的倒数作为权重

2. 权重公式

  • 当Z=1,表示治疗组(RT=1)

  • 当Z=0,表示对照组(No-RT=0)

即,IPTW权重公式:
  • 治疗组(RT)权重 :W=1/PS

  • 对照组 (No-RT) 权重:W=1/1-PS

三、R语言基于IPTW的Table 1

1. 载入R包和数据

library(tableone)#制作基线表
library(survey)#提取加权结果
library(reshape2)#画SMD
rm(list = ls())#清理环境
#载入数据,本数据status==0为死亡(652人)
aa <- read.csv('R15.csv',header = T,row.names = NULL,stringsAsFactors = F)
#因子变量转换
for (i in names(aa)[c(1,3,5:11)]){aa[,i] <- as.factor(aa[,i])}

2. 设定混杂因素

本例数据,status为结局事件,0为死亡,time=随访事件,rt (放疗)为研究对象,其他因素均为混杂因素

vars=c( "age", "er", "pr", "her2", "surg", "che", "g", "t") 

3. 未加权的Table 1

#CreateTableOne()函数构建基线表,rt作为分类项
tab_Unmatched <- CreateTableOne(vars = vars,
strata = "rt",
data = aa,
test =T)
#展示标准化平均差,SMD
print(tab_Unmatched,showAllLevels=TRUE,smd = TRUE)
#查看有无SMD>10%
addmargins(table(ExtractSmd(tab_Unmatched) > 0.1))

备注:可以发现手术(surg)、化疗(che)、T分期(t)这3个混杂因素在rt两组中非常不平衡,卡方检验p<0.001,SMD>10%。(标准化平均差大于10%,这通常被认为是变量不平衡

4. 基于IPTW的Table 1

4-1. 建模并计算PS

psModel=glm(rt~age+er+pr+her2+surg+che+g+t,
family=binomial(link="logit"),
data=aa)
#PS
aa$ps=predict(psModel,type="response")

我们已经说过PS的本质是个概率,是在存在混杂因素的条件下,患者被纳入治疗组(y=1)的概率

所以,PS模型本质上是个多因素逻辑回归模型,y为研究对象,x为混杂因素。

因此,我们用predict()就能计算出PS

4-2. 逆处理概率加权

#1-逆概率,计算治疗组和对照组的逆概率
#根据1/PS和1/1-PS

aa$wt1=1/aa$ps
aa$wt0=1/(1-aa$ps)

#2-根据公式计算所有患者的权重
#假如患者为治疗组(Yes)用公式1加权,否则用公式2加权

aa$w <- ifelse(aa$rt=="Yes",aa$wt1,aa$wt0)

4-3. ITPW后的数据做Table 1

#1-提取IPTW后的数据
dataIPTW=svydesign(ids=~1,data=aa,weights= ~w)
#2-再次构建Table-1
tab_IPTW=svyCreateTableOne(vars=vars, strata="rt",data=dataIPTW,test=T)
#标准化差结果
print(tab_IPTW,showAllLevels=TRUE,smd=TRUE)
#查看是否有SMD>10%的混杂因素
addmargins(table(ExtractSmd(tab_IPTW) > 0.1))

所有混杂因素均被校正,SMD<10%, p>0.05

5. 标准化平均差SMD可视化

#提取作图数据
dataPlot <- data.frame(variable=rownames(ExtractSmd(tab_Unmatched)),
Unmatched=as.numeric(ExtractSmd(tab_Unmatched)),
IPTW=as.numeric(ExtractSmd(tab_IPTW))
)
#指定将要出现在图中的变量
dataPlotMelt<-melt(data= dataPlot,
id.vars=c("variable"),
variable.name= "Method",
value.name= "SMD")

#
varNames <-as.character(dataPlot$variable)[order(dataPlot$Unmatched)]
#
dataPlotMelt$variable<- factor(dataPlotMelt$variable,
levels = varNames)
#画图
ggplot(data = dataPlotMelt,
mapping = aes(x = variable, y = SMD,
group = Method,
color = Method,
shape = Method )) +
#geom_line() +
geom_point(size=4) +
geom_hline(yintercept = 0.1,
color = "red",
lty=2,
size = 0.1) +
coord_flip() +
theme_bw(base_size = 18)

6. 两个Table 1合并输出

#1.提取两个结果
table1<- cbind(print(tab_Unmatched,printToggle =F,showAllLevels=T,),
print(tab_IPTW,printToggle =F,showAllLevels=T,)
)
# 插入一行分组
table1<- rbind(Group=rep(c("Level","RT","No-RT","P","test"),2),table1)
#更改列名
colnames(table1) <- c("Level","Unmatched",NA,NA,NA,"Level","IPTW",NA,NA,NA)
#打印或导出Excel
print(table1, quote = FALSE)
write.csv(table1, file = "table1.csv")

小 结

1. 倾向评分是将多个混杂因素综合为一个评分(概率),通过平衡治疗组和对照组的PS而有效地均衡混杂因素的分布,从而达到控制混杂偏倚;

2. PS法本身不能控制混杂,而是通过匹配、分层、加权等方式进行均衡混杂;

3. IPTW加权:患者多个混杂因素计算为1个PS值,将PS和1-PS取倒数作为患者权重,使PS或1-PS小的患者权重变大,进而使多个混杂因素在治疗组和对照组达到均衡而样本量不变。

4. 倾向性评分思路:

计算PS+利用PS校正混杂+验证+应用新数据分析
4-1. PS使用方法主要有:

参考链接:https://mp.weixin.qq.com/s/qPHd4xjd2zK1_IMptPWU-w

4-2. 应用:基于生存资料,校正KM曲线、校正Cox回归p值和HR值

5. 计算PS的方法,最常用是logistics回归模型,还有probit模型、SVM、分类回归树、boosting算法、神经网络模型等。

end


往期推荐



点下'在看',SCI早发表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接