分享

如何利用R语言进行生存分析? | 30 天学会R DAY 27

 妙趣横生统计学 2019-12-08

第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的内容就介绍到这里!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多