You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:遗忘COX回归后绘制限制性立方样条(RCS)图的方法

复现COX回归限制性立方样条(RCS)HR图的实操方案

核心工具包判断

从你提供的图样式(带HR置信区间、横轴为连续变量、纵轴以HR=1为参考线)来看,最可能使用的是rms包(Frank Harrell开发的专注于回归模型可视化的工具包),这也是绘制COX-RCS图最常用的工具。

步骤1:安装加载依赖包

install.packages(c("rms", "survival", "ggplot2"))
library(rms)
library(survival)
library(ggplot2)

步骤2:拟合COX-RCS模型

假设你的数据集为dat,生存结局变量为Surv(time, status)(time是生存时间,status为事件状态:1=发生事件,0=截尾),目标连续变量为x:

# 生成样条节点(通常用分位数设置,也可手动指定)
knots <- quantile(dat$x, c(0.05, 0.25, 0.5, 0.75, 0.95))

# 拟合带RCS的COX模型,必须加x=TRUE, y=TRUE才能支持后续绘图
cox_rcs_model <- cph(Surv(time, status) ~ rcs(x, knots = knots), 
                     data = dat, 
                     x = TRUE, 
                     y = TRUE)

步骤3:绘制RCS-HR图

方式1:用rms自带函数快速绘制

# 生成预测序列并绘图,默认显示HR及95%置信区间
plot(Predict(cox_rcs_model, x = seq(min(dat$x), max(dat$x), length.out = 100)),
     ylab = "Hazard Ratio (HR)",
     xlab = "你的连续变量名称",
     conf.int = TRUE,
     lty = c(1, 2, 2), # 实线为HR曲线,虚线为置信区间
     col = "black")

方式2:用ggplot2自定义样式(更灵活匹配原图)

如果需要调整颜色、填充、刻度等细节,先提取预测数据再绘图:

# 提取带置信区间的预测数据
pred_data <- as.data.frame(Predict(cox_rcs_model, 
                                   x = seq(min(dat$x), max(dat$x), length.out = 100),
                                   conf.int = 0.95))

# 绘图
ggplot(pred_data, aes(x = x, y = yhat)) +
  geom_line(color = "black", size = 1) +
  geom_ribbon(aes(ymin = lower, ymax = upper), alpha = 0.2, fill = "gray") +
  geom_hline(yintercept = 1, linetype = "dashed", color = "red") + # HR=1参考线
  labs(x = "你的连续变量名称", y = "Hazard Ratio (HR)") +
  theme_bw()

细节匹配提示

  • 若原图节点位置特殊,可手动替换knots参数的分位数为具体数值(比如knots = c(5, 15, 25, 35, 45))
  • 调整横轴范围可在seq()中指定区间,或在绘图函数中加xlim(c(min_val, max_val))
  • 置信区间样式可通过geom_ribbon的fill/alpha参数或plot()的col.conf参数修改

内容的提问来源于stack exchange,提问作者Tom Hsiung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:17:36