如何使用rms包调整受限三次样条cox模型?

时间:2015-11-10 09:47:51

标签: r spline survival-analysis rms cox-regression

我正在尝试使用rms包绘制受限三次样条模型。但是,我没有找到任何方法来调整我的cox比例风险模型,我只能得到未经调整的拟合。 这是我的代码:

library(survival)
library(rms)

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

fit <- cph(Surv(follcox,evento) ~  rcs(G_VINO,3))
plot(Predict(fit_vino), lty=1, lwd=3, ylim=c(-0.5,1.0),xlim = c(0,50), col="white") 

通过这种编码,我得到了未经调整的样条模型。 我想知道如何添加混杂变量来调整模型。 我试过了:

fit_vino_adj <- cph(Surv(follcox,evento) ~rcs(G_VINO+edad0+actfis+energia))
plot(Predict(fit_vino_adj), lty=2, lwd=2)

但是这给了我每个变量的样条模型,任何人都知道如何调整我的模型?

1 个答案:

答案 0 :(得分:0)

由于您未能在Cox9中包含数据或显示如何构建类似的数据框或显示任何输出,我们只能猜测发生了什么并在一般情况下做出响应。您似乎正在rcs函数中捆绑变量。这不太可能成功,或者如果成功,那么结果可能不正确。相反,您应该构建此拟合,然后通过在Predict - 调用中命名焦点变量来仅绘制您感兴趣的曲线的调整拟合。

fit_vino_adj <- cph(Surv(follcox,evento) ~ rcs(G_VINO, 3)+edad0+actfis+energia)
plot(Predict(fit_vino_adj, name="G_VINO"), lty=2, lwd=2)

或许(假设这些都是连续测量)在以下​​情况之后进行略微修改的绘图调用:

fit_vino_adj2 <- cph(Surv(follcox,evento) ~ rcs(G_VINO, 3)+rcs(edad0, 3) + 
                                           rcs(actfis, 3) + rcs(energia, 3) )
plot(Predict(fit_vino_adj), lty=2, lwd=2)  # to see form of all variable fits.

如果您希望模型中有两个或更多rcs样条曲线,则需要将rcs分别包围其他变量。我不认为rcs函数不像^函数,它具有公式扩展方法。 (虽然你声称你从第二个模型中获得了单独的输出,但我想知道我是否完全跟上了这个包。)如果你想要一个复杂的表面用于我所说的“交叉样条”,那么你会使用{{ 1}}两个*次调用之间的运算符。使用因子变量进行交叉将为每个因子级别构建单独的rcs-spline拟合。