R - การวิเคราะห์การอยู่รอด

การวิเคราะห์การอยู่รอดเกี่ยวข้องกับการคาดการณ์เวลาที่จะเกิดเหตุการณ์เฉพาะ เรียกอีกอย่างว่าการวิเคราะห์เวลาล้มเหลวหรือการวิเคราะห์เวลาสู่ความตาย ตัวอย่างเช่นการทำนายจำนวนวันที่ผู้ป่วยมะเร็งจะรอดชีวิตหรือทำนายเวลาที่ระบบกลไกจะล้มเหลว

ชื่อแพ็กเกจ R survivalใช้ในการวิเคราะห์การอยู่รอด แพคเกจนี้ประกอบด้วยฟังก์ชันSurv()ซึ่งใช้ข้อมูลอินพุตเป็นสูตร R และสร้างอ็อบเจ็กต์การอยู่รอดท่ามกลางตัวแปรที่เลือกสำหรับการวิเคราะห์ จากนั้นเราใช้ฟังก์ชันsurvfit() เพื่อสร้างพล็อตสำหรับการวิเคราะห์

ติดตั้ง Package

install.packages("survival")

ไวยากรณ์

ไวยากรณ์พื้นฐานสำหรับการสร้างการวิเคราะห์การอยู่รอดใน R คือ -

Surv(time,event)
survfit(formula)

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • time เป็นเวลาติดตามผลจนกว่าเหตุการณ์จะเกิดขึ้น

  • event แสดงสถานะของการเกิดเหตุการณ์ที่คาดไว้

  • formula คือความสัมพันธ์ระหว่างตัวแปรทำนาย

ตัวอย่าง

เราจะพิจารณาชุดข้อมูลที่ชื่อ "pbc" ที่มีอยู่ในแพ็คเกจการอยู่รอดที่ติดตั้งด้านบน อธิบายถึงจุดข้อมูลการรอดชีวิตเกี่ยวกับผู้ที่ได้รับผลกระทบจากโรคตับแข็งน้ำดีขั้นต้น (PBC) ของตับ ในบรรดาคอลัมน์ต่างๆที่มีอยู่ในชุดข้อมูลนั้นเราจะคำนึงถึงฟิลด์ "เวลา" และ "สถานะ" เป็นหลัก เวลาแสดงถึงจำนวนวันระหว่างการลงทะเบียนผู้ป่วยและก่อนหน้าของเหตุการณ์ระหว่างผู้ป่วยได้รับการปลูกถ่ายตับหรือผู้ป่วยเสียชีวิต

# Load the library.
library("survival")

# Print first few rows.
print(head(pbc))

เมื่อเรารันโค้ดด้านบนจะสร้างผลลัพธ์และแผนภูมิต่อไปนี้ -

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

จากข้อมูลข้างต้นเรากำลังพิจารณาเวลาและสถานะสำหรับการวิเคราะห์ของเรา

การใช้ฟังก์ชัน 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

แนวโน้มในกราฟด้านบนช่วยให้เราคาดการณ์ความน่าจะเป็นของการอยู่รอดเมื่อสิ้นสุดจำนวนวันที่กำหนด