第27天 利用R语言进行生存分析 我们基于之前的R语言,应该掌握了基本的R语言统计分析方法,现在我们结合R语言的数据导入、整理、统计描述,差异性检验,R绘图,回归建模,共同向大家展示,如何来开展统计分析撰写论文。这一次,我们以生存数据为例,开展生存分析,进行R语言数据分析总结。 1. 案例 我们一个真实世界临床研究,通过队列随访获得胰腺癌患者的生存结局,探讨术中放化疗等因素对胰腺癌生存的影响。结局变量包括时间(time)和结局(censor),结局中删失意味着生存。影响因素包括年龄、trt(术中放化疗)、sex(性别)、bui(占位处)、ch(胰胆管浸润程度)、P(有无腹膜转移)、stage(TNM分类)。 2.准备工作,导入R语言导入生存分析包,导入数据 library(survival) library(broom) pancer<-read.csv("pancer.csv") 3.进行数据的整理 Pancer数据库总的来说结构相对简单,无序进行复杂的操作。这里主要要进行的是,对部分变量进行因子化的操作。 fvars<- c("sex","trt","bui,"ch","p","stage") pancer[fvars] <- lapply(pancer[fvars], factor) 4. 接种开展K-M分析,进行logRank分析 # 进行K-M分析 fit <- survfit(Surv(time, censors) ~ trt,data = pancer) # 进行K-M分析 print(fit) # 可以查看生存时间中位数 summary(fit) # 利用summary()函数还可以细致查看生存时间表 # 绘制生存曲线图 plot(fit, main="Kaplan-Meier curves of two groups",xlab="time", ylab="survival function") 当然有人会问,这个生存曲线图真难看,有没有漂亮一点。有!我们接下来还有一讲,再来探讨 #进行 logRank检验 > survdiff(Surv(time, censor)~ trt, data = pancer, rho = 0) 5.进行COX回归分析 COX回归其实也不难,它基本格式是 mycox<-coxph(Surv(time,censor)~age+sex+bui+ch+p+stage+trt,data=pancer) 采用的是survival包的coxph函数,纳入time和censor作为因变量,自变量则包括了数据库的所有其他变量。具体coxph函数设置,可以通过help语句来进行查找。这里不再陈列。 我们可以通过summary()函数查看更多细节 summary(mycox) 这个结果又长又臭,现在我们通过函数来提取关键结果 coef(summary(mycox)) 也可以提取HR和95%置信区间 exp(coef(mycox)) exp(confint(mycox)) 6. broom函数的应用 上一讲介绍过broom可以帮助我们在建立回归模型后,快速整齐地的整理数据 tidy(mycox,exponentiate = TRUE) glance(mycox) > pancer<-augment(mycox,pancer) > str(pancer) 总体上而言,利用R语言开展回归,也不难,而且它比其他方法更加灵活,当然我觉得它最大的优点可以绘制非常美观的生存曲线图!关于生存曲线图,且听我后面再进行介绍。 DAY27的内容就介绍到这里! |
|