曾分享过利用survminer包的ggsurvplot函数绘制生存曲线,其实这个包还有一个函数surv_cutpoint可以帮助大家直接计算生存资料的连续变量的截断值,其实准确说法应该是:当结局变量为time to event 时,自变量为数值型连续变量,进行单因素分析时自变量最佳截断值的确定。
优点:这个函数联合后续的相关函数可以帮助大家一站式的完成变量截断确定——新矩阵生成——绘制新生存曲线 的完整流程;可以一次分析多个变量的最佳截断值。
缺点:无法放入其他自变量,无法计算多因素情况下的最佳截断值;只能计算1个截断值时的分界点
推荐指数:★★★★(四星)
library(survival)
library(survminer)
library(tidyverse)
data(myeloma)
str(myeloma)

以下寻找几个基因的最佳截断值
res.cut <- surv_cutpoint(myeloma, #数据集
time = "time",#生存时间
event = "event",#生存状态
variables = c("TP53", "WHSC1", "CRIM1"))#需要计算的数据列名
summary(res.cut)#查看数据最佳截断点及统计量

下文以最常见的TP53为例
plot(res.cut, "TP53",palette = "npg")

res.cat <- surv_categorize(res.cut)#根据分界点重新构建矩阵
head(res.cat)

fit <- survfit(Surv(time, event) ~TP53, data = res.cat)构建生存方程
#以下绘制生存曲线并显示P值
ggsurvplot(fit,
data = res.cat,
risk.table = TRUE,
pval = T)

网友评论