R中参数生存分析绘图疑问:黑色虚线含义与原始曲线添加
问题解答:flexsurv绘图的黑色虚线含义与添加原始生存曲线
一、黑色虚线的含义
flexsurv包的plot()函数默认会绘制参数模型的95%置信区间上下限,你看到的大量黑色虚线就是指数、伽马、Gompertz这些模型对应的生存概率置信区间。如果同时绘制多个模型的拟合结果,每个模型的置信区间都会显示,自然会出现一堆虚线。
要是觉得虚线太杂乱,可以在绘图时加ci=FALSE参数关闭置信区间显示;如果只想保留单个模型的置信区间,只对该模型设置ci=TRUE即可。
二、添加原始数据的生存曲线(Kaplan-Meier曲线)
要对比模型拟合效果,需要先通过survival包计算Kaplan-Meier曲线,再叠加到flexsurv的拟合图上,具体代码示例如下:
- 加载所需包
library(flexsurv) library(survival)
- 拟合参数模型(假设你的数据框为
dat,time是TTP时间,status是结局变量:1=进展,0=截尾)
# 指数模型 exp_fit <- flexsurvreg(Surv(time, status) ~ 1, data = dat, dist = "exp") # 伽马模型 gamma_fit <- flexsurvreg(Surv(time, status) ~ 1, data = dat, dist = "gamma") # Gompertz模型 gom_fit <- flexsurvreg(Surv(time, status) ~ 1, data = dat, dist = "gompertz")
- 计算Kaplan-Meier曲线
km_fit <- survfit(Surv(time, status) ~ 1, data = dat)
- 叠加绘图
# 先绘制指数模型,关闭置信区间减少虚线 plot(exp_fit, ci = FALSE, col = "red", main = "TTP生存模型拟合对比", xlab = "时间", ylab = "生存概率") # 叠加伽马模型 lines(gamma_fit, ci = FALSE, col = "blue") # 叠加Gompertz模型 lines(gom_fit, ci = FALSE, col = "green") # 叠加Kaplan-Meier曲线(原始数据生存曲线),用粗黑实线突出 lines(km_fit, col = "black", lwd = 2) # 添加图例区分各曲线 legend("topright", legend = c("指数模型", "伽马模型", "Gompertz模型", "原始数据KM曲线"), col = c("red", "blue", "green", "black"), lty = 1, lwd = c(1,1,1,2))
内容的提问来源于stack exchange,提问作者James Moore
相关产品推荐
相关产品推荐

