2013-10-22 55 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 =現在在時刻'。 –

相關問題