R語言超詳細(xì)逆概率加權(quán)(IPTW)后生存曲線做法

library(survminer) # 加載包,沒有的包就按安裝
library(survival) 
library(tableone)
library(survey)
library(MatchIt)
library(reportReg)
library(foreign)

testdata<-read.csv2("seerdev.csv",header = T,sep = ",")#讀取外部csv格式數(shù)據(jù)并將數(shù)據(jù)賦值給testdata

testdata$age<-as.numeric(testdata$age)#把a(bǔ)ge變?yōu)閿?shù)值型變量

testdata$sex<-factor(testdata$sex,labels=c("male","female"))#把sex變量因子化

str(testdata)#查看數(shù)據(jù)集結(jié)構(gòu)

#下面首先展示未調(diào)整的生存曲線

fit <- survfit(Surv(OS,status) ~ sex,  # 創(chuàng)建生存對象 
               data = testdata) # 數(shù)據(jù)集來源
fit # 查看擬合曲線信息

ggsurvplot(fit, # 創(chuàng)建的擬合對象
           data = testdata,  # 指定變量數(shù)據(jù)來源
           conf.int = FALSE, # 顯示置信區(qū)間
           pval = TRUE, # 添加P值
           surv.median.line = "hv",  # 添加中位生存時間線
           risk.table = TRUE, # 添加風(fēng)險表
           xlab = "Follow up time(d)", # 指定x軸標(biāo)簽
           legend = c(0.8,0.75), # 指定圖例位置
           legend.title = "", # 設(shè)置圖例標(biāo)題
           legend.labs = c("Male", "Female"), # 指定圖例分組標(biāo)簽
           break.x.by = 10)  # 設(shè)置x軸刻度間距





#后續(xù)進(jìn)行PSM及IPTW時以sex為分組變量,age和BMIteam為待調(diào)整變量計(jì)算PSM及進(jìn)行IPTW

attach(testdata)#加載數(shù)據(jù)集到環(huán)境中

vars<-c("age","BMIteam")#待調(diào)整變量組成向量并定義為vars

psModel<-glm(team~age+BMIteam,family=binomial(link="logit"),data=testdata) 

testdata$ps=predict(psModel,type="response")#計(jì)算傾向性評分并在數(shù)據(jù)集內(nèi)添加一列為PS的列,內(nèi)容為評分

head(testdata$ps)#展示前6個患者評分

testdata$IPTW<-ifelse(testdata$sex=="female",1/testdata$ps,1/(1-testdata$ps))

fit.IPTW<- survfit(Surv(OS,status) ~ sex, 
                         weights=testdata$IPTW,# 創(chuàng)建生存對象 
                         data = testdata) # 數(shù)據(jù)集來源
summary(fit.IPTW)

ggsurvplot(fit.IPTW, # 創(chuàng)建的擬合對象
           data = testdata,  # 指定變量數(shù)據(jù)來源
           conf.int = FALSE, # 顯示置信區(qū)間
           pval = TRUE, # 添加P值
           surv.median.line = "hv",  # 添加中位生存時間線
           risk.table = TRUE, # 添加風(fēng)險表
           xlab = "Follow up time(d)", # 指定x軸標(biāo)簽
           legend = c(0.8,0.75), # 指定圖例位置
           legend.title = "", # 設(shè)置圖例標(biāo)題
           legend.labs = c("Male", "Female"), # 指定圖例分組標(biāo)簽
           break.x.by = 10)  # 設(shè)置x軸刻度間距

#以下分別進(jìn)行單因素及多因素cox回歸分析

model=coxph(Surv(OS,status)~sex,data=testdata)
model.IPTW=coxph(Surv(OS,status)~sex,data=testdata,weights=testdata$IPTW)
單因素HR表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容