Survival MOdel

~ Ujian Tengah Semester ~


Kontak : \(\downarrow\)
Email
Instagram https://www.instagram.com/boring.garr/
RPubs https://rpubs.com/garr/

library

library(tidyverse)  # data wrangling and visualization
library(sjPlot)     # for plotting results of log.regr.
library(effects)    # for probability output and plots
library(survival)   # for core survival analysis routines
library(survminer)  # for drawing survival curves
library(knitr) 

Pengenalan Analisis survival

Contoh cara kerja Analisis Survival

Untuk lebih memahami mengenai bagaimana analisis survival bekerja, sebagai contoh pada 15 April 1912 sebuah kapal bernama RMS Titanic melakukan pelayaran perdana dari Southampton menuju New York City, namun Kapal tersebut menabrak sebuah gunung es di Samudra Atlantik Utara. Kecelakaan tersebut memakan banyak korban jiwa, ada yang mati secara langsung namun ada yang orang yang selamat ditengah lautah dingin sambil mengenakan jaket, memakai pelampung, berpegangan pada pecahan kapal, dll. Pada tahun tersebut tentu penyelamatan helikopter belum ada, selain itu mungkin tidak ada satu kapal pun yang melewati perairan es tersebut.

Apakah waktu habya memperpanjang waktu hidup mereka, atau justru hanya memperpanjang penderitan mereka. Berapakan kemungkinan mereka dapat bertahan hidup hingga kapal penyelamat tiba, apakah wanita bertahan lebih lama dibandingkan laki-laki seperti di film buatan James Cameron di tahun 1997, apakah orang-orang kaya lebih banyak yang selamat dibandingkan dengan orang biasa.

Kecelakaan Titanic

Kecelakaan Titanic

Demikian cara kerja dari memahami Analisis Survival. Tentu saja disini tentu akan mempelajari tentang:

  • Konsep dalam anasisis survival yaitu: kurva survival, sensoring, dan uji log-rank.
  • Menghitung secara manual, lalu menghitung dan interpretasi kurva survival.
  • Menguji perbedaan tingkat kelangsungan hidup antar 2 kelompok.

tentu, jika memahami regresi linear dan regresi logistic akan membantu memahami Analisis Survival

Mengapa perlu mempelajari Analisis Survival

library(tidyverse)

d <- tibble(
  time   = c(1,1,1,2,2,3,4,5,7,10), 
  status = c(1,1,1,1,0,1,0,0,1,0)
)

d %>% kable()
time status
1 1
1 1
1 1
2 1
2 0
3 1
4 0
5 0
7 1
10 0

data diatas merupakan simulasi contoh kecil dari korban titanic yang selamat, dimana ada 10 orang dan 10 hari dilautan. lalu dianalisis dengan metode statistik, regresi linear dan logistik.

Disini anggaplah tertarik mengetahui berapa banyak dan berapa lama orang dapat bertahan, dan berapa banyak yang meninggal pada hari tertentu.

ada 2 variabel utama yang difokuskan, 1. time(waktu) dalam harian, dan 2. Status atau status kematian seseorang, dimana 1 berarti kematian, dan 0 berarti tidak mati.

maka dari status ini kita seharusnya sudah dapat mengetahui berapa yang selamat atau tidak. (SEHARUSNYA).

ggplot(d, aes(time, fill = factor(status)))+
  geom_bar(position = position_dodge())+
  theme_bw()

Namun pada kenyataannya tidak seperti itu. ada dua masalah yang terjadi dari plot grafik diatas.

  1. kemungkinan yang pertama status = 0 bukan berarti orang tersebut tidak mati/selamat, namun bisa berarti adanya faktor lainnya. Bisa saja dia menghilang karena terbawa ombak dan tidak diketahui statusnya. bisa saja dia sudah selamat, sudah meninggal, atau masih mengapung dilautan. Selain itu kemungkinan kedua adalah dia mungkin selamat selama 10 hari tapi bisa saja dia baru meninggal pada hari ke-11. dari 2 skenario itu orang tersebut tidak dapat dihitung sebagai orang yang selamat ataupun tidak selamat. maka kita masuk ke masalah kedua.

  2. disini tidak ada data untuk setiap 10 hari tersebut, hanya data untuk 7 hari. selain itu jika seorang bertahan selama 5 hari maka probabilitasa atau peluangnya tidaklah 100%, dikarenakan adanya faktor seperti kelaparan yang terus terakumulasi, sehingga probabiltas bertahan hidupnya akan terus menurun dari waktu ke waktu, yang hal tersebut tidap dapat diperhitungkan dengan hanya membandingkan orang yang selamat dan yang tidak.

Maka untuk menganalisis data ini dengan tepat:

  1. jika melihat pada variabel waktu, dan melihat status bertahan hidup 0 dan 1, maka asumsi menggunakan metode regresi linear adalah kesalahan
m <- lm(time ~ status, d %>% mutate(status = factor(status)))

library(effects)
plot(allEffects(m))

Disini dapat terlihat adanya kesalahan dimana waktu rata-rata kematian sebanyak 2,5 hari dimana ada3 orang yang meninggal pada haru pertama, namun pada hari berikut-berikutnya, semakin sedikit orang yang meninggal. maka waktu bertahan hidup ini tidak benar linear, sehinggal model linear disini adalah kesalahan. lalu apakah ini

  1. disini dikarenakan terdapat angka 0 dan 1 pada status, maka selanjutnya coba digunakan regresi logistik, dikarenakan adanya kurva probabilitas dan tidaklah linear yang akan menangkap adanya trend dari waktu ke waktu.

maka

m <- glm(status ~ time, d, family = binomial)

library(sjPlot)
plot_model(m, type = "pred", ci.lvl = NA)
## $time

selanjutnya setelah dilakukan regresi logistik sudah lebih tepat dibandingkan regresi linear, akan tetapi pada pengamatan ke-5 berstatus 0 pada hari ke-2, yang berarti orang tersebut bertahan hidup selama 2 hari dan hilang setelahnya. jika pada regresi logistik, orang yang hilang ini akan dianggap sebagai orang yang selamat, dimana hal ini merupakan bias atau kesalahan. maka dapat dikatakan regresi logistik melebih-lebihkan peluang hidup seseorang.

dari 2 metode diatas, maka analisis peluang hidup tidak dapat dianalisis dengan metode klasik, dan membutuhkan metode analisis survival.

Analisis Survival

Analisis survival time diperlukan untuk penelitian apapun yang menyelidiki waktu untuk hasil tertentu yang diminati.

Contoh: penelitian kanker dan pembuatan mobil. Dimana hasil dari kejadian tersebut dapat berupa kematian, kegagalan, dll. namun tidak semua kejadian berakibat fatal, kadang-kadang sebuah kejadian dapat terjadi sebaliknya seperti keberhasilan. Maka dapat dikatakan analisis survival time sudah menjadi istilah umum dikarenakan bukan hanya tentang kelangsungan hidup atau survival.

Kejadian-kejadian tersebut tentu tidak dapat diamati selalu atau terus menenus. tentu pengamatan pasti ada rentang waktu tertentu.

jadi Survival Time(waktu bertahan hidup) ada titik awal dan titik akhirnya, dari contoh kesalahan pada data Titanic diatas kita tidak mengetahui manakah orang yang memang meninggal atau hanya menghilang.

maka sebutan untuk ini disebut sensoring, seperti layaknya dalam media sosial atau tv, dimana ada hal yang tidak pantas atau tidak seharusnya maka akan disensor. begitupula untuk data dari orang yang tidak dapat digolongkan sebagai hidup ataupun mati

Sensoring

kebutuhan dari sensor ini muncul dari fakta bahwa waktu bertahan hidup seseorang tidak dapat diketahui

Right Censoring

Right censoring atau sensor kanan dilakukan ketika pada peristiwa tersebut, orang itu menghilang, mengalami kejadian lain, atau bertahan hidup hingga akhir pengamatan.

dinamakan sensor kanan, dikarenakan mereka disensor pada akhir pengamatan, dengan linear waktu dari kiri ke kanan.

Left Censoring

Left censoting atau sensor kiri dilakukan ketika data seseorang sudah dimulai dari sebelum kita memulai pengamatan.

Interval Censoring

Interval Censoring atau sensor interval adalah ketika waktu pasti hilangnya data tersebut tidak diketahui, hanya diketahui lama waktunya.

penyensoran yang paling umum terjadi adalah sensor kanan, sedangkan sensor kiri dan sensor interval jarang terjadi dikarenakan penyensoran ini terjadi akibat dari penelitian atau pengamatan yang buruk.