用于生存分析的 CPH、加速故障时间模型或神经网络的比较

机器算法验证 r 机器学习 生存 神经网络 cox模型
2022-03-25 17:46:07

我是生存分析的新手,我最近了解到,在给定特定目标的情况下,有不同的方法可以做到这一点。我对这些方法的实际实施和适当性感兴趣。

向我介绍了传统的Cox 比例风险加速故障时间模型神经网络(多层感知器)作为根据患者时间、状态和其他医疗数据获得患者生存的方法。据说这项研究将在五年内确定,目标是每年给出生存风险,以提供新的记录。

我发现了两个例子,其中选择了其他方法而不是 Cox PH:

  1. 我发现“如何从 Cox PH 模型中获得关于生存时间的预测”,并提到:

    如果您对获得特定时间点的生存概率估计特别感兴趣,我会为您指出参数生存模型(又名加速失效时间模型)这些是在 R 的生存包中实现的,将为您提供参数生存时间分布,您可以在其中简单地插入您感兴趣的时间并返回生存概率。

    我去了推荐的网站,在survival包里找到了一个——功能survreg

  2. 此评论中建议使用神经网络

    ... 生存分析神经网络方法的一个优点是它们不依赖于 Cox 分析的假设...

    另一个提出“以目标向量作为输出包含生存预测的 R 神经网络模型”问题的人给出了在神经网络和 Cox PH 中确定生存的详尽方法。

    获得生存的 R 代码是这样的:

    mymodel <- neuralnet(T1+T2+T3+T4+T5~covar1+covar2+covar3+..., data=mydata, hidden=1)
    compute(mymodel,data=mydata)
    
  3. 我去了 R 论坛,在“ predict.coxph 和 predict.survreg这个问题中找到了这个答案

    实际上,从predict()函数中coxph您无法直接获得“时间”预测,而只能获得线性和指数风险评分。这是因为,为了获得时间,必须计算基线风险,而且它并不简单,因为它隐含在 Cox 模型中。

我想知道这三个(或考虑到关于 Cox PH 的争论的两个)中的哪一个最适合获得感兴趣的时间段的生存百分比?我很困惑在生存分析中使用哪一个。

1个回答

这取决于你为什么要制作模型。构建生存模型的两个主要原因是(1)进行预测或(2)对协变量的效应大小进行建模。

如果您想在预测环境中使用它们,在给定一组协变量的情况下,您希望获得预期的生存时间,那么神经网络可能是最佳选择,因为它们是通用逼近器并且比通常的(半)参数做出的假设更少楷模。另一个不太流行但功能同样强大的选项是支持向量机

如果您正在建模以量化效果大小,那么神经网络将没有多大用处。Cox 比例风险和加速失效时间模型都可以用于此目标。Cox PH 模型是迄今为止临床环境中使用最广泛的模型,其中风险比给出了每个协变量/交互作用的效应大小的度量。然而,在工程环境中,加速故障时间 (AFT) 模型是首选武器。