使用左截断数据的 R 生存分析

机器算法验证 r 生存 cox模型 截断
2022-03-13 01:20:57

我正在使用survival包在 R 中进行生存分析。我想我正在处理左截断的数据,但我不完全确定如何处理它。

我有一组在 1990 年至 2012 年间被诊断出的患者。所有患者都有明确的诊断时间(入院时间)。然而,感兴趣的结果(特定的疾病恶化)仅在 2000 年及以后才被记录。对于 2000 年之前确诊的患者,因此不知道结果是否在此之前发生 - 只有在之后。

我的第一个想法是,我需要将分析限制在 2000 年以后的时间段内,仅包括在该时间点之后诊断出的患者。在做了一些阅读之后,似乎没有必要排除 2000 年之前诊断的患者。这似乎是左截断,可以在coxphusing中处理Surv(time1, time2, event),其中 time1 是左截断时间(从诊断到开始记录的时间)结果)和时间 2 是事件发生的时间(从诊断时间开始)。

以下是我的数据集中的两个患者示例:

患者 #1:1999 年诊断。2001 年观察结果。左截断时间:1 年(至 2000 年)。事件发生时间:2 年。

患者#2:2001 年诊断。2005 年观察结果。左截断时间:0 年。事件发生时间:4 年。

对于这些患者,我认为他们在生存对象中的生存时间(以年为单位)将(分别):

Surv(time1 = c(1,0), time2 = c(2,4), event = c(1,1))

这是左截断数据的示例吗?如果是这样,这是处理它的正确方法吗?

2个回答

我假设从诊断开始的时间是您的潜在时间变量。为简单起见,我还假设该事件只能发生一次。

您可以将您的数据视为左删失。然而,这与左截断不同。

对于左截断数据,我们仅将患者纳入研究,条件是他们在纳入时没有经历过该事件。在您的情况下,这相当于丢弃在 2000 年之前发生过该事件的患者。因此,我们正在建模以生存为条件的生存,直到纳入。

这与左审查不同。当我们只知道事件时间的上限时,就会发生左删失。如果我理解正确的话,这正是你自己建议的。在这种情况下,我们包括所有个体,无论他们的生存时间如何,但对于某些个体,我们只知道他们生存时间的上限。

PK Andersen 等人的基于计数过程的统计模型第三章。提供了对上述内容的一个很好的解释以及这两种情况的一些示例。

您可能会遇到不朽的时间偏差,这意味着 2000 年之前被诊断出的队列实际上是不朽的,直到 2000 年之后才会出现结果。根据 Rothman 和 Greenland 的说法,正确的方法确实是从分析中排除(截断)2000 年前的观察,否则队列估计之间的风险偏向于危险没有差异的零假设。

survival命令Surv似乎不遵循您使用的语法。创建一个新变量,其中值 0 对应于(研究)时间的开始(例如年 = 2000?),1 对应于 1 个时间单位,等等?

您需要阅读以下内容:Rothman, KJ 和 Greenland, S. (1998)。现代流行病学,队列研究一章——不朽的人时间。Lippincott-Raven,第 2 版。