R - Phân tích sinh tồn
Phân tích sự sống còn liên quan đến việc dự đoán thời gian khi một sự kiện cụ thể sẽ xảy ra. Nó còn được gọi là phân tích thời gian thất bại hoặc phân tích thời gian chết. Ví dụ dự đoán số ngày một người mắc bệnh ung thư sẽ sống sót hoặc dự đoán thời gian khi một hệ thống máy móc sắp hỏng hóc.
Gói R có tên survivalđược sử dụng để thực hiện phân tích tỷ lệ sống sót. Gói này chứa hàmSurv()lấy dữ liệu đầu vào làm công thức R và tạo đối tượng tồn tại trong số các biến được chọn để phân tích. Sau đó, chúng tôi sử dụng hàmsurvfit() để tạo ra một cốt truyện cho phân tích.
Cài đặt gói
install.packages("survival")
Cú pháp
Cú pháp cơ bản để tạo phân tích tỷ lệ sống sót trong R là:
Surv(time,event)
survfit(formula)
Sau đây là mô tả về các tham số được sử dụng:
time là thời gian theo dõi cho đến khi sự kiện xảy ra.
event cho biết trạng thái xuất hiện của sự kiện dự kiến.
formula là mối quan hệ giữa các biến dự báo.
Thí dụ
Chúng tôi sẽ xem xét tập dữ liệu có tên "pbc" có trong các gói tồn tại được cài đặt ở trên. Nó mô tả các điểm dữ liệu sống sót về những người bị ảnh hưởng bởi bệnh xơ gan mật nguyên phát (PBC) của gan. Trong số nhiều cột có trong tập dữ liệu, chúng tôi chủ yếu quan tâm đến các trường "thời gian" và "trạng thái". Thời gian thể hiện số ngày từ khi bệnh nhân đăng ký đến trước khi diễn ra sự kiện giữa bệnh nhân được ghép gan hoặc bệnh nhân tử vong.
# Load the library.
library("survival")
# Print first few rows.
print(head(pbc))
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả và biểu đồ sau:
id time status trt age sex ascites hepato spiders edema bili chol
1 1 400 2 1 58.76523 f 1 1 1 1.0 14.5 261
2 2 4500 0 1 56.44627 f 0 1 1 0.0 1.1 302
3 3 1012 2 1 70.07255 m 0 0 0 0.5 1.4 176
4 4 1925 2 1 54.74059 f 0 1 1 0.5 1.8 244
5 5 1504 1 2 38.10541 f 0 1 1 0.0 3.4 279
6 6 2503 2 2 66.25873 f 0 1 0 0.0 0.8 248
albumin copper alk.phos ast trig platelet protime stage
1 2.60 156 1718.0 137.95 172 190 12.2 4
2 4.14 54 7394.8 113.52 88 221 10.6 3
3 3.48 210 516.0 96.10 55 151 12.0 4
4 2.54 64 6121.8 60.63 92 183 10.3 4
5 3.53 143 671.0 113.15 72 136 10.9 3
6 3.98 50 944.0 93.00 63 NA 11.0 3
Từ dữ liệu trên, chúng tôi đang xem xét thời gian và trạng thái để phân tích.
Áp dụng hàm Surv () và survfit ()
Bây giờ chúng tôi tiến hành áp dụng Surv() chức năng của tập dữ liệu trên và tạo một biểu đồ sẽ hiển thị xu hướng.
# 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()
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả và biểu đồ sau:
Call: survfit(formula = Surv(pbc$time, pbc$status == 2) ~ 1)
n events median 0.95LCL 0.95UCL
418 161 3395 3090 3853
Xu hướng trong biểu đồ trên giúp chúng ta dự đoán xác suất sống sót vào cuối một số ngày nhất định.