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

如何保存与加载coxph或cph模型,用于riskRegression的predictCox预测?

保存与加载coxph/cph模型用于predictCox函数

核心方法:用saveRDS和readRDS处理单个模型对象

R中保存单个模型对象最可靠的方式是saveRDS,它能完整保留模型的所有属性,完全满足predictCox的调用需求。

1. 保存coxph模型

基于你提供的拟合好的fit模型,执行以下代码保存:

# 保存coxph模型到本地文件
saveRDS(fit, file = "coxph_trained_model.rds")

2. 加载模型并验证可用性

在需要使用模型的环境(比如自定义函数中),先加载依赖包,再读取模型:

# 加载必要的包
library(survival)
library(riskRegression)
library(data.table)

# 读取保存的模型
loaded_fit <- readRDS("coxph_trained_model.rds")

# 用加载后的模型执行predictCox,验证功能正常
loaded_pred <- predictCox(loaded_fit, newdata=nd, times=3, se = TRUE, band = TRUE)

3. cph模型的保存与加载(rms包)

如果是用rms包拟合的cph模型,方法完全一致:

library(rms)
# 拟合cph模型(注意设置x=TRUE, y=TRUE,predictCox需要这些参数)
cph_fit <- cph(Surv(time,event)~X1 + X6, data=d, x=TRUE, y=TRUE)

# 保存模型
saveRDS(cph_fit, file = "cph_trained_model.rds")

# 加载并使用
loaded_cph <- readRDS("cph_trained_model.rds")
cph_pred <- predictCox(loaded_cph, newdata=nd, times=3)

关键注意事项

  • 拟合模型时必须设置x = TRUE, y = TRUE:这两个参数会保留模型的设计矩阵和响应变量,是predictCox正常运行的必要条件,你的代码中已经正确设置了这一点。
  • 加载模型前要先加载所有依赖包:如果缺失survival、riskRegression或rms(针对cph模型),模型对象可能无法被正确解析,导致后续调用失败。
  • 避免用save/load保存单个对象:save会保存整个环境中的多个对象,容易引发命名冲突,而saveRDS专门用于单个对象的序列化,更适合模型保存场景。

内容的提问来源于stack exchange,提问作者Flora Grappelli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:50:28