R语言中coxph模型survfit绘图仅单条线的原因及解决方法
关于coxph模型survfit输出仅一条曲线的问题解答
为什么只显示一条线?
当你用survfit(coxph(Surv(time, status)~sex, data=lung))时,默认生成的是基准风险对应的生存曲线——也就是把所有协变量(这里是sex)设为参考水平(lung数据中sex=1是参考组,对应男性)时的生存曲线,所以只会输出一条线。
是否应该显示两条线?
这不是survfit(coxph(...))的默认行为。Cox比例风险模型的核心是估计协变量对风险比的影响,默认的生存曲线输出是基准线,而非按分组拆分的曲线。
如何得到两条线?
要生成不同性别对应的生存曲线,需要手动指定协变量的取值,通过newdata参数传递给survfit():
library(survival) library(ggfortify) # 先拟合Cox模型 cox_model <- coxph(Surv(time, status) ~ sex, data = lung) # 构造包含两种性别取值的新数据集 new_data <- data.frame(sex = c(1, 2)) # 基于新数据集生成分组生存曲线 coxfit <- survfit(cox_model, newdata = new_data) # 绘图 autoplot(coxfit)
这样就能得到对应两种性别的两条生存曲线了。
内容的提问来源于stack exchange,提问作者Ka Lee
相关产品推荐
相关产品推荐

