【问题标题】:implementing a non-linear relationship within a cox proportional hazards model using the survival package in R使用 R 中的生存包在 cox 比例风险模型中实现非线性关系
【发布时间】:2016-06-02 16:22:51
【问题描述】:

我正在根据树木普查数据对树木死亡率进行建模。人们每隔一段时间就会出去,记录树木是生是死。我正在使用coxph 函数运行 cox 比例风险模型来分析树木死亡的概率作为几个预测变量的函数。代码如下:

 model <- coxph(S ~ x1 + x2 + x3, data = data)

但是,我的预测指标之一,即树的大小,实际上预计与死亡率概率呈非线性关系。具体来说,树木在很小的时候会死很多,当它们达到“幼年”阶段并且是中等大小时,死亡概率会下降,然后随着树木变老和变大,死亡概率会回升。这在死亡率概率和树大小之间创建了一个“倒 J 形”模式。它看起来像这样:

如何将这种非线性关系纳入 coxph 框架?如果这不可能,我还能如何使用 JAGS 模型或其他方法分析 R 环境中的死亡率概率?

【问题讨论】:

  • 也许尝试转换树大小变量?也许尝试 log(treesize) 或类似的东西来尝试使关系更接近线性。
  • @cgage 如果 J 可以通过转换为线性来近似,我会选择它(即,如果它是一个直接的指数关系)。不幸的是,我认为在这种情况下无法应用如此简单的修复方法。
  • @ZheyuanLi 样条曲线不一定适合这种形式。我认为这不会完成这项工作。

标签: r survival-analysis


【解决方案1】:

试试:

library(mgcv)
fit <- gam(S ~ s(x1, bs = 'cr', k = 10) + s(x2, bs= 'cr', k = 10) +
           s(x3, bs = 'cr', k = 10), family = cox.ph(), data = data)

您可以拟合 加性 Cox 比例风险模型,其中所有项都是非线性样条曲线。有关详细示例,请参阅 ?cox.ph

如果您之前没有使用过mgcv,您可能还需要查看?gam?s。模型拟合后,summary.gam()gam.check()predict.gam() 是你的朋友。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多