繁体   English   中英

风险比 Plot 来自 mgcv::gam cox.ph model

[英]Hazard Ratio Plot from mgcv::gam cox.ph model

我正在浏览不同的包,这些包可以在 COX PH 模型的上下文中拟合非线性预测变量。

但是,我一直在寻找生成图来表示连续预测变量与生存分析中事件的风险(风险比)之间的非线性关系。 虽然我能够轻松地使用rms package,但我希望使用mgcv

这是一个在survival中使用colon数据库的玩具示例。

library(rms)
library(survival)
library(mgcv)

dd <- datadist(colon)
options(datadist="dd")

#Using rms
rms.spline <- cph(Surv(time, status) ~ rcs(age,3), data=colon)
ggplot(rms::Predict(cph.spline, age=seq(40,80, by=1), fun=exp)) 

这是 output,这正是我的想法: 在此处输入图像描述

然后使用 mgcv package:

gam.model <-gam(time ~ s(age), data=colon, family="cox.ph", weights=status)
plot(gam.model)

和 output:

在此处输入图像描述

很明显,这次 plot 不代表风险比的预测变量,我很难弄清楚 a) 这个 plot 中的 y 轴实际上代表什么(我想是对数风险?),和 b ) 如何将 plot 改为针对 HR 的预测变量。

我相信你是正确的,它正在绘制风险比的对数。 这是使用基数 R 在原始坐标中将其变为 plot 的方法。对 ggplot 的修改将很简单。 通常,您可以在预测调用中使用 type="response",但这不适用于 gam 中的 Cox PH 系列。

age = seq(40, 80, 1)
y = predict(gam.model, newdata = data.frame(age=age), se.fit=TRUE)
plot(age, exp(y$fit), ylim=c(.8, 1.3))
lines(age, exp(y$fit + 1.96 * y$se.fit))
lines(age, exp(y$fit - 1.96 * y$se.fit))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM