我正在尝试使用生存包中的Surv
和survfit
函数进行生存分析。我的大多数数据都被截断了,我不确定我是否将它输入到Surv
函数中。我的响应变量是时间(以年为单位),从桥梁被分类为缺陷时开始,到桥梁坍塌时结束。从2012年到1992年,我可以跟踪每座桥梁的缺陷状态,但没有进一步。审查的发生是因为许多桥梁从1992年倒塌时被归类为缺陷,因此我不知道它们何时变得不足,因此我不知道它们真正的“寿命”(年数)崩溃的分类不足)。比如说a
桥梁于1995年倒塌,并在1995年,1994年,1993年和1992年被列为缺陷。它有可能在1992年被列为缺陷,它是
也有可能它自1984年以来被归类为缺陷。因此我认为我的审查被认为是被截断的。
一些示例数据:
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)
我的理解是,您正在尝试分析被归类为缺陷与最终失败之间的持续时间。对于“左截断”(请参阅我的回复中的更多内容)数据,比如第一座桥,即使它只花了2年的时间,它实际上可能已经停留超过2年(2+
)因为你无法在1992年之前回复日期。为了使其反映在surv
对象中,而不是给它1
标记,我放了一个0
。
对于其他数据点,例如第3桥。持续时间为4年,我们知道它正好是4年。它应该得到1
的审查标志。