2013-10-22 25 views
2

我正尝试使用生存包中的Survsurvfit函数来运行生存分析。我的大部分数据都被截断,我不确定是否将它输入到Surv函数中。我的反应变量是从桥梁被分类为不足时开始到崩溃结束时的时间(以年为单位)。我可以追溯从2012年到2012年的每座桥梁的不足状况,但没有更多。审查发生是因为许多桥梁从倒塌到1992年被归类为不足之处,因此我不知道它们何时变得不足,因此我不知道它们的真实“寿命”(从缺陷分类崩溃)。例如说,一个 桥塌了于1995年,被列为1995年,1994年,1993年为不足,1992年,是可能的,它是第一个列为1992年为不足,这是 也有可能是已经分类自1984年以来一直不足。因此,我认为我的审查被认为是截断的。如何使用左截断数据的R中的“生存”包和Surv函数?

一些示例数据:

Year0 = c(1992, 1992, 1999, 1992, 1993, 2007, 2005, 1992) # The years when each bridge  was first observed as being deficient. 
Year1 = c(1993, 1994, 2002, 1996, 2004, 2012, 2011, 2000) # The years in which each bridge collapsed 
Defyears = Year1 - Year0 + 1 # The number of years for wich I can observe each bridge being deficient 
time1 = Year0 - 1992 # Since I want the time scale to be from 0 to 21 instead of 1992 - 2012, I subtract 1992 from each time observation. 
        # This now becomes the beginning point for the lifetime of each bridge. 
time2 = Defyears + time1 # This is the ending point of the lifetime of each bridge. 
n = length(time2) 

注意,四出于八个桥的是左截断,桥1,2,4和8。我 可以不完全观察时,被第一分类为缺陷。对于桥梁 3,5,6和7,我知道它们的确切寿命,因为它们在1992年之后变得不足,因此这些观察结果没有被审查。

我再适合以下型号:

bridges = survfit(Surv(time = time1, time2 = time2, event = rep(1,n)) ~ 1) # I do "event = rep(1,n)" because each bridge collapsed. 

我只是不知道,这个模型是正确的。首先,在文档中, 表示“时间”用于右删失数据或间隔删失数据的开始时间。另一方面,我不明白这个模型如何解释未被审查的观察结果。任何人都可以告诉我,如果这是正确的,如果没有,我需要改变以及为什么。 任何帮助,不胜感激。非常感谢!

+0

这里需要的是没有崩溃的桥梁上的数据。 –

回答

2

看看这些做出更好的意义:

> clps <- c(0,0,1,0,1,1,1,0) #censor flag 
> surv.obj <- Surv(rep(0, length(clps)), Year1-Year0+1, clps) 
> surv.obj #Is this what you want? 
[1] (0, 2+] (0, 3+] (0, 4 ] (0, 5+] (0,12 ] (0, 6 ] (0, 7 ] (0, 9+] 
> survRzt <- survfit(surv.obj~1) 
> plot(survRzt) 

enter image description here

我的理解是,你要分析被列为缺水的最终失败之间的时间。对于一个“左截断”数据(请参阅我的回复中的更多信息),说第一座桥,即使它只花了2年的时间,实际上它可能会停留超过2年(2+)能够在1992年之前支持日期。为了使这反映在surv对象中,而不是将1标志放在它上面,我放了一个0

对于其他数据点,例如第3个桥。持续时间的长度是4年,我们知道它正好是4年。它应该得到1的审查标志。

+0

我以前曾尝试过类似的内容,但这不是正确的审查方式吗?我担心使用审查标志,就像你所描述的那样,它意味着事件并没有发生,审查标志== 0的桥梁。但事实并非如此,数据集中的所有桥梁都已崩溃。你怎么看? – mrphippen

+1

这将是一个更适合交叉验证而不是stackoverflow的问题。但我不认为它真的被截断。如果生命周期小于未观察到事件的阈值,则左截断意味着。在你的情况下,生命周期是被标记为停用和崩溃之间的时间量。左截断不适用于它。是的,我认为,与直觉相反,这些是右删失的观察。 –

+0

请注意,我们提供'time1'和'time2',它被视为间隔删失的数据集。状态指示符通常意味着'0 =活着,1 =死亡',意味着'0 =右截尾,1 =现在在时刻'。 –

相关问题