R語言生存分析
生存分析涉及預測當特定事件將要發生的時間。它也被稱為故障時間分析,或死亡時間的分析。例如,預測天的人患有癌症將生存的數量和預測時間時機械係統是要失敗。
在 R 中包名為 survival 是用來進行生存分析。這個軟件包包含了 Surv()函數,這需要輸入數據為一個R公式,被選中的變量分析中創建了一個生存的對象。然後我們使用 survfit()函數來創建一個情節進行分析。
安裝軟件包
install.packages("survival")
語法
對於R中創造生存分析的基本語法是:Surv(time,event) survfit(formula)
以下是所使用的參數的說明:
- time 是跟進時間,直到事件發生。
- event 表明出現預期的事件的狀態。
- formula 是預測變量之間的關係。
示例
我們會考慮 “pbc” 出現在上麵已安裝了生存包中的數據集。它介紹有關患有肝原發性膽汁性肝硬化(PBC)的人的生存數據點中間出現在數據集中的許多列,我們主要關心的字段 "time" 和 "status". 時間代表患者的登記和更早的患者接受了肝移植患者的或死亡之間的事件之間的天數。
# Load the library. library("survival") # Print first few rows. print(head(pbc))
當我們上麵的代碼執行,它會產生以下結果及圖表:
id time status trt age sex ascites hepato spiders edema bili chol albumin copper alk.phos ast 1 1 400 2 1 58.76523 f 1 1 1 1.0 14.5 261 2.60 156 1718.0 137.95 2 2 4500 0 1 56.44627 f 0 1 1 0.0 1.1 302 4.14 54 7394.8 113.52 3 3 1012 2 1 70.07255 m 0 0 0 0.5 1.4 176 3.48 210 516.0 96.10 4 4 1925 2 1 54.74059 f 0 1 1 0.5 1.8 244 2.54 64 6121.8 60.63 5 5 1504 1 2 38.10541 f 0 1 1 0.0 3.4 279 3.53 143 671.0 113.15 6 6 2503 2 2 66.25873 f 0 1 0 0.0 0.8 248 3.98 50 944.0 93.00 trig platelet protime stage 1 172 190 12.2 4 2 88 221 10.6 3 3 55 151 12.0 4 4 92 183 10.3 4 5 72 136 10.9 3 6 63 NA 11.0 3
從上麵的數據我們正在考慮的時間和狀態我們的分析。
應用 Surv() 和 survfit() 函數
現在,我們應用 Surv() 函數適用於設置上述數據,並創建一個情節用於顯示的趨勢。
# Load the library. library("survival") # Create the survival object. survfit(Surv(pbc$time,pbc$status==2)~1) # Give the chart file a name. png(file = "survival.png") # Plot the graph. plot(survfit(Surv(pbc$time,pbc$status==2)~1)) # Save the file. dev.off()
當我們上麵的代碼執行,它會產生以下結果及圖表:
Call: survfit(formula = Surv(pbc$time, pbc$status == 2) ~ 1) n events median 0.95LCL 0.95UCL 418 161 3395 3090 3853
在上麵的圖中的趨勢,可以幫助我們預測在若乾天結束的生存概率。