Cox 比例风险模型是否处理时变协变量的过去值?

机器算法验证 r 生存 cox模型 时变协变量
2022-04-21 06:42:13

我目前正在从事一个生存分析项目,并且正在为R 中包coxph功能的内部工作而苦苦挣扎。survival

该项目调查了数字度量对员工任期长度的影响。该度量是针对每个日历周计算的。为此,我正在使用coxph. 更准确地说,时变协变量的版本:

out <- coxph(formula = Surv(tstart, tstop, turnover) ~ score, data = mydata)

本质上,生存分析应该检查最近的分数历史,而不仅仅是本周的值。但是,我不确定这是否已经是标准程序的一部分,coxph或者我是否需要自己调整分数值(例如,通过过去 X 周的滚动总数)。不幸的是,消息来源似乎不同意这一点。

这个问题的答案中,似乎自动包含了时变协变量的过去值。

换句话说,在时间 t 的危险取决于事件在时间 t 发生的概率,假设它到目前为止还没有发生 (T≥t) 并且给定过去 (H(t_))。这个过去包括到时间 t 的信息。

相比之下,这个小插曲的作者则相反:

该模型尝试根据事件时间之前每个主题的协变量值,为每个主题分配一个风险评分,以最好地预测每个绘图的结果。

对于 R 中 Cox 比例风险模型这一方面的一些澄清,我将不胜感激,因为它决定了我需要如何准备数据和解释输出。

2个回答

您的问题似乎与特定的 R function 无关coxph,而是一般的生存模型。小插图在谈到“事件时间之前每个受试者的协变量值”时,指的是危险函数该函数实际上只考虑协变量的当前值,并确定在第 t 天“活着”的个人天遭受事件的风险 时仍然“活着”的个体数量,您需要协变量的完整历史——这就是过去值的来源。可以通过计算每个个体的个体数量来迭代地构建模型h(t)tt+1
tt并测试它们是否能再存活一天,但使用累积风险函数会使一切变得更容易处理。H(t)

举个例子,考虑事件“被车撞了”,并协变量“今天的交通量”。一天的高流量意味着当天被击中的风险很高;此外,只有少数人可能存活下来(很高)。但是,鉴于您在那天幸存下来,第二天的瞬时风险不受过去的影响。如果您特别想对暴露后持续存在的某些损坏进行建模,则需要将其明确添加为协变量。h(t)H(t)h(t+1)


认为我应该添加一个免责声明,我不熟悉在该特定 R 函数中使用时间相关协变量,因此欢迎任何有经验的人纠正我。

@juod 的答案达到了关键点:Cox 回归中的计算是基于“恰好在”每个事件之前的协变量的瞬时值。通过以下方式考虑先前的历史:在某个事件时间仍然处于危险之中的每个人都存活到那时,因此这些人在所有早期事件时间的协变量值(可能随时间变化)已经被纳入回归中。

但是,正如您链接到的交叉验证页面中的答案所述,您可以以任何有意义的方式构造时间相关协变量的瞬时值。这个问题是专门针对累积协变量提出的,随着时间的推移积分,因此它在每个事件时间对个人的价值取决于(以这种特定方式)该个人的所有先前价值。如果像这样处理协变量值的某种方式对您的应用程序有意义,那么就这样做。

仔细考虑您希望如何进行。考虑到个人先前的协变量值,个人已经存活到特定事件时间这一简单事实是否足以纳入历史?或者您是否需要在一段时间内加起来或平均或以其他方式评估先前的值,以找到 Cox 回归中协变量和结果之间的最佳瞬时关系?该决定必须基于您对基本主题的理解。