实用基本功!三种画生存曲线的方法一次拿走~

学术   科学   2024-03-22 12:27   浙江  
今天将会介绍三种画生存曲线的方法,本文专注于画图。关于生存分析的内容可以查看:生存分析(Survival analysis)实战演练! 内附全部R代码!

安装并载入需要的R包们:

install.packages("survival")
install.packages("survminer")
install.packages("ggfortify")

library(survival)
library(survminer)
library(ggfortify)
使用{survival}中的数据lung,提取三个变量简化数据:

# 数据
mydata <- lung[, c(2, 3, 5)]

summary(mydata)

拟合模型:

km_fit <- survfit(Surv(time, status) ~ sex, data = mydata)
第一个,使用基础R画生存曲线:

plot(km_fit)

非常简单!图就搞定了~

再对图片进行修饰:

plot(km_fit,
     lty = 5, # 线的类型
     col = c("darkred", "forestgreen"), # 两条线分别的颜色
     lwd = 2, # 线的宽度
     xlab = "Time (months)",
     ylab = "Survival Probability",
     main = "Survival Curves")

如果想要更加精美的生存曲线,可以看看R包{survminer}{ggfortify}。下面会一一介绍!

第二种,可以使用{survminer}包中的ggsurvplot():

ggsurvplot(km_fit,
           data = mydata,
           risk.table = TRUE)

也可以这样修饰图片:

ggsurvplot(km_fit,
           data = mydata,
           fun = "pct",
           linetype = "strata", # 按strata组别,使用不同线条类型
           palette = c("firebrick", "steelblue"),
           conf.int = TRUE,
           pval = TRUE,
           risk.table = TRUE,
           risk.table.col = "strata", # 按strata组别,表格使用不同颜色
           ggtheme = theme_bw())

这个函数以前有详细的实战教程:如何作出与《新英格兰医学杂志》论文中类似的生存曲线?

第三个,使用{ggfortify}中的函数autoplot()

autoplot(km_fit)

想要对图片进行修饰,可以:

autoplot(km_fit,
         surv.linetype = "strata", # 线条类型按组别分
         surv.size = 1,
         conf.int =
TRUE,
         conf.int.fill = "grey",
         censor.shape = "*", # 改变表示censor的形状
         censor.size = 5, # 大小
         ncol = 2,
         xlab = "Time (months)",
         ylab = "Survival Probability") +
  theme_bw()


好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人

参考资料

[1]. https://cran.r-project.org/web/packages/ggfortify/vignettes/plot_surv.html
[2]. https://github.com/kassambara/survminer
[3]. https://cran.r-project.org/web/packages/survival/index.html

公众号的线上课程
1. 《R语言和统计新手课程》
2. 《回归:从入门到进阶》

统计咨询
《服务介绍和经典合作案例》

公众号核心成员的成果发表
《SCI医学1区影响因子9分论文》

公众号核心成员担任SCI杂志Associate Editor!
《JAD杂志Associate editor》
《Frontiers in Neuroscience, Frontiers in Neurology and Frontiers in Psychiatry杂志的神经退行性病变板块》

▌本文由R语言和统计首发
▌课程相关咨询可添加R师妹微信: kefu_rstats
▌编辑:June
▌邮箱:contact@rstats.cn
▌网站:www.rstats.cn
我们致力于让R语言和统计变得简单!




R语言和统计
我们定期更新与R有关的内容,比如R编程基础,作图,实用R包的解读,统计学基础知识,前沿的统计方法,机器学习等等。
 最新文章