kaplan meier analisis untuk penyakit paru-paru
DESCRIPTION
Analisis uji hidup menggunkan program RTRANSCRIPT
LAPORAN PRAKTIKUM
KOMPUTASI STATISTIKA
MODUL: VIII
ANALISIS SURVIVAL UNTUK PENDERITA PENYAKIT PARU-PARU
Nama Praktikan NomorMahasiswa
TanggalKumpul
Tanda tangan
Praktikan Laboran
RiswanDwiramadhan
11611038 29-Des-14
Nama Penilai Tanggal Koreksi NilaiTanda tangan
Asisten Dosen
Ayu Septiani
MuhammadMuhajir, S.Si, M.Sc.
JURUSAN STATISTIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS ISLAM INDONESIA
YOGYAKARTA
2014
Kelas
A
BAB I
PENDAHULUAN
1. Pengertian Analisis Survival
Analisis survival adalah teknik statistik yang digunakan untuk menganalisis
data yang bertujuan untuk mengetahui hasil dari variabel yang mempengaruhi
suatu awal kejadian sampai akhir kejadian, misal waktu yang dicatat dalam hari,
minggu, bulan, atau tahun. Untuk kejadian awal misalkan awal pasien terjangkit
penyakit dan untuk kejadian akhir misalkan kematian pasien dan kesembuhan
pasien (Kleinbaum & Klein, 2011: 4). Menurut Jakperik dan Ozoje (2012) dalam
analisis survival, ada istilah failure (meskipun peristiwa sebenarnya mungkin saja
sukses) yaitu suatu kejadian dimana tercatatnya kejadian yang diinginkan. Dalam
menentukan waktu survival, ada tiga faktor yang dibutuhkan yaitu:
a. Waktu awal pencatatan (start point)
Waktu awal pencatatan adalah waktu awal dimana dilakukannya pencatatan
untuk menganalisis suatu kejadian.
b. Waktu akhir pencatatan (end point)
Waktu akhir pencatatan adalah waktu pencatatan berkahir. Waktu ini berguna
untuk mengetahui status tersensor atau tidak tersensor seorang pasien untuk
bisa melakukan analisis.
c. Dan skala pengukuran sebagai batas dari waktu kejadian dari awal sampai
akhir kejadian, skala diukur dalam hari, minggu, atau tahun.
Gambar 1.1 berikut menggambarkan pencatatan sebuah kejadian dari awal
pencatatan sampai akhir waktu pencatatan. Skala waktu diatas berdasarkan
minggu dan setiap individu memiliki failure yang berbeda-beda pada pencatatan.
(Sumber: David G. Kleinbaum and Mitchel Klein, Survival Analysis, 2011)
Gambar 1.1 Contoh waktu survival
2. Censoring Data (Data Tersensor)
Data tersensor adalah data tercatat saat adanya informasi tentang waktu survival
individual, tetapi tidak tahu persis waktu survival yang sebenarnya (Kleinbaum &
Klein, 2011: 5-6). Menurut Catala, Orcau, Millet, Olalla, Mondragon, dan Cayla
(2011) ada 3 alasan terjadinya data tersensor:
a. Seseorang tidak mengalami suatu peristiwa dari awal pencatatan sampai akhir
pencatatan.
b. Sesorang hilang tanpa ada alasan ketika pencatatan sampai akhir pencatatan.
c. Seseorang tercatat keluar dari penelitian karena kematian atau beberapa alasan
lain seperti reaksi obat yang merugikan objek.
Tersensor kanan apabila yang diteliti keluar dari penelitian atau penelitian berhenti
sebelum kejadian yang diinginkan terjadi atau sampai akhir penelitian (dalam hal
ini kesembuhan pasien). Dikatakan tersensor kiri apabila suatu kejadian terjadi
(dalam hal ini pasien telah terjangkit penyakit) diantara penelitian sampai akhir
penelitian (Kleinbaum & Klein, 2011: 7-8).
3. Kaplan–Meier
Kaplan-Meier adalah komputasi untuk menghitung peluang survival. Metode
Kaplan-Meier didasarkan pada waktu kelangsungan hidup individu dan
mengasumsikan bahwa data sensor adalah independen berdasarkan waktu
kelangsungan hidup (yaitu, alasan observasi yang disensor tidak berhubungan
dengan penyebab failure time) (Stevenson, 2009: 6). Berikut ini adalah rumus
dari Kaplan–Meier:= ∏ ( )...(1)= − ...(2)
Dimana:
S(t) = cumulative peluang survival
Pj = peluang survival hingga waktu ke j
t = waktu survival
rj = resiko pada waktu ke j, ditunjukkan dengan rumus = nj - wj
dj = jumlah amatan yang mengalami failure pada waktu ke j
nj = jumlah amatan yang survive hingga waktu ke j
wj = jumlah amatan yang tersensor pada waktu ke j, dan j+1
Contoh dari Plot Kaplan-Meier digambarkan pada Gambar berikut:
Gambar 1.2 Plot Kaplan-Meier
Gambar diatas menjelaskan bahwa peluang survive akan semakin kecil ketika
dilakukan dalam waktu yang lama, dalam artian jika semakin lama pasien melakukan
pengobatan maka semakin kecil peluang pasien untuk sembuh. (Sumber: David G.
Kleinbaum and Mitchel Klein, Survival Analysis, 2011)
BAB II
DESKRIPSI KERJA
1. Permasalahan
a. Lakukan analisis survival menggunakan data paru-paru pada program R,
kemudian hitunglah:
1. Peluang tahan hidup penderita penyakit paru-paru dengan menggunakan
satu metode pengobatan.
2. Peluang tahan hidup penderita penyakit paru-paru berdasarkan jenis
kelamin.
3. Pengaruh variabel penelitan terhadap tahan hidup pasien penyakit paru-
paru.
2. Penyelesainan
a. Buka pogram R dengan versi apa saja.
b. Aktifkkan library survival dengan skrip berikut:
> library(survival)
c. Bangkitkan data penderita penyakit paru-paru dengan menggunakan skrip
berikut:
> lung
d. Lakukan penyensoran data waktu tahan hidup dan status penderita penyakit
jantung dengan menggunakan skrip berikut:
> survival<-Surv(lung$time,lung$status)> survival
e. Lakukan pengujian tahan hidup penderita penyakit paru-paru menggunakan
satu metode pengobatan dan berdasarkan jenis kelamin dengan mengunakan
skrip berikut:
#tahan hidup berdasarkan satu metode pengobatan> k.meier_riswan <- survfit(Surv(time,status) ~ 1, data = lung)> k.meier_riswan
#tahan hidup berdasarkan jenis kelamin
> k.meier_riswan2 <- survfit(Surv(time,status) ~ sex, data =lung)
> k.meier_riswan2
f. Hitung interval konfidensi/selang tahan hidup penderita penyakit paru-paru
menggunakan skrip berikut:
#Interval konfiden menggunkan satu engobatan> summary(k.meier_riswan)#interval konfiden berdasarkan jenis kelamin
> summary(k.meier_riswan2)
g. Lakukan plot data selang tahan hidup dengan skrip berikut:
#plot untuk satu metode pengobatan> ggsurv(k.meier_riswan)
#plot berdasarkan jenis kelamin> pl2 <- ggsurv(k.meier_riswan2))> pl2 <- pl2 + guides(linetype = F) ++ scale_colour_discrete(name='Sex',breaks=c(1,2),
+ labels=c('Male', 'Female')))
Fungsi plot tersebut bisa digunakan setelah membuat/mendefinisikan fungsi
plot seperti skrip berikut, fungsi ini digunakan untuk membuat tampilan plot
agar lebih menarik tidak hitam putih seperti output tampilan default program R:
> ggsurv <- function(s, CI = 'def', plot.cens = T, surv.col ='gg.def',+ cens.col = 'red', lty.est = 1, lty.ci = 2,+ cens.shape = 3, back.white = F, xlab ='Time',+ ylab = 'Survival', main = ''){++ library(ggplot2)+ strata <- ifelse(is.null(s$strata) ==T, 1, length(s$strata))+ stopifnot(length(surv.col) == 1 | length(surv.col) == strata)+ stopifnot(length(lty.est) == 1 | length(lty.est) == strata)++ ggsurv.s <- function(s, CI = 'def', plot.cens = T, surv.col= 'gg.def',+ cens.col = 'red', lty.est = 1, lty.ci= 2,+ cens.shape = 3, back.white = F, xlab ='Time',+ ylab = 'Survival', main = ''){++ dat <- data.frame(time = c(0, s$time),+ surv = c(1, s$surv),+ up = c(1, s$upper),+ low = c(1, s$lower),
+ cens = c(0, s$n.censor))+ dat.cens <- subset(dat, cens != 0)++ col <- ifelse(surv.col == 'gg.def', 'black', surv.col)++ pl <- ggplot(dat, aes(x = time, y = surv)) ++ xlab(xlab) + ylab(ylab) + ggtitle(main) ++ geom_step(col = col, lty = lty.est)++ pl <- if(CI == T | CI == 'def') {+ pl + geom_step(aes(y = up), color = col, lty = lty.ci)++ geom_step(aes(y = low), color = col, lty = lty.ci)+ } else (pl)++ pl <- if(plot.cens == T & length(dat.cens) > 0){+ pl + geom_point(data = dat.cens, aes(y = surv), shape =cens.shape,+ col = cens.col)+ } else if (plot.cens == T & length(dat.cens) == 0){+ stop ('There are no censored observations')+ } else(pl)++ pl <- if(back.white == T) {pl + theme_bw()+ } else (pl)+ pl+ }++ ggsurv.m <- function(s, CI = 'def', plot.cens = T, surv.col= 'gg.def',+ cens.col = 'red', lty.est = 1, lty.ci= 2,+ cens.shape = 3, back.white = F, xlab ='Time',+ ylab = 'Survival', main = '') {+ n <- s$strata++ groups <- factor(unlist(strsplit(names+ (s$strata), '='))[seq(2,2*strata, by = 2)])+ gr.name <- unlist(strsplit(names(s$strata), '='))[1]+ gr.df <- vector('list', strata)+ ind <- vector('list', strata)+ n.ind <- c(0,n); n.ind <- cumsum(n.ind)+ for(i in 1:strata) ind[[i]] <- (n.ind[i]+1):n.ind[i+1]++ for(i in 1:strata){+ gr.df[[i]] <- data.frame(+ time = c(0, s$time[ ind[[i]] ]),+ surv = c(1, s$surv[ ind[[i]] ]),+ up = c(1, s$upper[ ind[[i]] ]),+ low = c(1, s$lower[ ind[[i]] ]),+ cens = c(0, s$n.censor[ ind[[i]] ]),
+ group = rep(groups[i], n[i] + 1))+ }++ dat <- do.call(rbind, gr.df)+ dat.cens <- subset(dat, cens != 0)++ pl <- ggplot(dat, aes(x = time, y = surv, group = group))++ xlab(xlab) + ylab(ylab) + ggtitle(main) ++ geom_step(aes(col = group, lty = group))++ col <- if(length(surv.col == 1)){+ scale_colour_manual(name = gr.name, values = rep(surv.col,strata))+ } else{+ scale_colour_manual(name = gr.name, values = surv.col)+ }++ pl <- if(surv.col[1] != 'gg.def'){+ pl + col+ } else {pl + scale_colour_discrete(name = gr.name)}++ line <- if(length(lty.est) == 1){+ scale_linetype_manual(name = gr.name, values =rep(lty.est, strata))+ } else {scale_linetype_manual(name = gr.name, values =lty.est)}++ pl <- pl + line++ pl <- if(CI == T) {+ if(length(surv.col) > 1 && length(lty.est) > 1){+ stop('Either surv.col or lty.est should be of length1 in order+ to plot 95% CI with multiple strata')+ }else if((length(surv.col) > 1 | surv.col =='gg.def')[1]){+ pl + geom_step(aes(y = up, color = group), lty =lty.ci) ++ geom_step(aes(y = low, color = group), lty = lty.ci)+ } else{pl + geom_step(aes(y = up, lty = group), col =surv.col) ++ geom_step(aes(y = low,lty = group), col =surv.col)}+ } else {pl}+++ pl <- if(plot.cens == T & length(dat.cens) > 0){+ pl + geom_point(data = dat.cens, aes(y = surv), shape =cens.shape,+ col = cens.col)+ } else if (plot.cens == T & length(dat.cens) == 0){+ stop ('There are no censored observations')+ } else(pl)
++ pl <- if(back.white == T) {pl + theme_bw()+ } else (pl)+ pl+ }+ pl <- if(strata == 1) {ggsurv.s(s, CI , plot.cens, surv.col,+ cens.col, lty.est, lty.ci,+ cens.shape, back.white, xlab,+ ylab, main)+ } else {ggsurv.m(s, CI, plot.cens, surv.col ,+ cens.col, lty.est, lty.ci,+ cens.shape, back.white, xlab,+ ylab, main)}+ pl+ }
h. Lakukan uji Log rank untuk melihat perbedaan tahan hidup berdasarkan jenis
kelamin dengan mengunakan skrip berikut:
> log.rank<-survdiff(Surv(time,status)~sex,data=lung)
> log.rank
i. Menghitung nilai estimasi dari fungsi hazard menggunakan metode Nelson-
Aalen, dengan skrip berikut:
> m<-summary(k.meier_riswan)
> est.NA<-cumsum(m$n.event/m$n.risk)
> est.NA
> plot(est.NA,type="s")
j. Menghitung seberapa jauh pengaruh variabel-variabel penelitian terhadapa
tahan hidup penderita penyakit paru-paru dengan mengunakan skrip berikut:
> reg.exp.riswan<-survreg(Surv(time,status)~inst+time+age+sex++ ph.ecog+ph.karno+pat.karno+meal.cal+wt.loss,+ data=lung,dist="exponential")> reg.exp.riswan> summarry(reg.exp.riswan)
>reg.weibul.riswan<-survreg(Surv(time,status)~inst+time+age+sex++ ph.ecog+ph.karno+pat.karno+meal.cal+wt.loss,+ data=lung,dist="weibul")> reg.weibul.riswan
> summary(reg.weibul.riswan)
BAB III
PEMBAHASAN
Dari hasil pembangkitan data penyakit paru-paru (lung), jumlah pasien yang
diamati adalah sebanyak 228 pasien. Dengan variabel penelitan sebagai berikut:
Tabel 3.1 Variabel penelitain
Berikut adalah hasil pembangkitan data pasien penderita penyakit paru-paru
menggunakan library surival:
Gambar 3.1 Data pasien penyakit paru-paru
Variabel Keterangan
inst Institution codetime Survival time in daysstatus censoring status 1=censored, 2=deadage Age in yearssex Male=1 Female=2ph.ecog ECOG performance score (0=good 5=dead)ph.karn Karnofsky performance score (bad=0-good=100) rated by physicianpat.karno Karnofsky performance score as rated by patientmeal.cal Calories consumed at mealswt.loss Weight loss in last six months
Secara umum, sulit untuk menentukan fungsi survival atau fungsi hazard dari
sekelompok populasi secara pasti. Walaupun demikian, fungsi survival atau fungsi
hazard tetap dapat didekati dengan metode estimasi tertentu. Metode Kaplan-Meier
dapat digunakan untuk mencari estimator dari fungsi survival suatu populasi.
Sedangkan untuk menemukan estimastor fungsi hazard kumuatif dapat digunakan
metode Nelson-Aalen.
1. Peluang tahan hidup dengan satu metode pengobataan
Sebelum mencari nilai estimator dari fungsi survival penderita penyakit paru-
paru, hal yang pertama dilakukan adalah melakukan sensoring waktu tahan hidup
penderita penyakit paru-paru terhadap status pasien:
Gambar 3.2 Sensoring waktu tahan hidup
Dari gambar 3.2 dapat dilihat sensoring waktu tahan hidup penderita penyakit paru-
paru terhadap status pasien yang ditandai dengan tanda plus (+), data tersensor
tesebut merupakan data pasien dengan satus 1 yang artinya penderita masih dalam
keadaan perawatan atau masih dinyatakan hidup. Untuk lebih jelanya dapat dilihat
pada output berikut:
Gambar 3.3 Sensoring waktu tahan hidup
Dalam kasus ini diasumsikan pasien diberikan treatment (perlakuan) yang sama
dalam metode pegobatan. Dimana metode pengobatan merupakan terapi
penyembuhan pasien, untuk hasil analisisnya sebagai berikut:
Gambar 3.4 Analsis Kaplen meier
Dari gambar 3.4 diperoleh fungsi tahan hidup penderita penyakit paru-paru dengan
waktu tahan hidup = 5 hari memiliki peluang tahan hidup (sembuh) sebesar
0.9956, standar error 0.00438, batas bawah 0.9871 dan batas atas 1.000 dengan lebar
interval (interval konfiden) 0.0129. Begitu juga untuk nilai t yang semakin bersar,
berikut adalah grafik tahan hidup pasien penderita penyakit paru-paru:
Gambar 3.5 Grafik tahan hidup
Berdasarkan gambar 3.5 grafik tersebut diperoleh dari hasil pengurutan data dari
data terkecil (waktu pengobatan paling pendek) ke data terbesar (waktu pengobatan
paling lama) dengan tanda plus (+) merupakan data tersensor dapat kesimpulan
bahwa semakin lama waktu pengobatan maka probabilitas fungsi tahan hidup atau
peluang pasien penderita penyakit paru-paru dinyatakan sembuh S(t) semakin kecil.
Fungsi tahan hidup masa atau lama waktu pengobatan bergerak menurun, demikian
juga nilai dari lebar interval dari batas atas dan batas bawah fungsi tahan hidup dari
data bergerak terus menurun.
2. Peluang tahan hidup berdasarkan jenis kelamin
Berikut adalah hasil estimasi peluang tahan hidup pasien berdasarkan jenis kelamin
menggunakan metode kaplen-meier:
Gambar 3.6 Peluang tahan hidup
Berdasarkan gambar 3.7 di bawah jelas bahwa ( ) < ( ) untuk hampir
semua nilai . Walaupun demikian, secara statistika belum dapat disimpulkan bahwa
perempuan lebih lama tahan hidupnya dibandingkan dengan laki-laki.
Gambar 3.7 Grafik tahan hidup
Untuk menyimpulakan persoalan tersebut perludilakukan uji statistika, dengan
hipotesis pengujian sebagai berikut:0: Fungsi Survival antara kedua kelompok sama, ( ) = ( )1: Fungsi Survival antara kedua kelompok berbeda, ( ) ≠ ( )
Berdasarkan hipotesis tersebut dilakukan uji Log rank, untuk mengestimasi ada atau
tidaknya perbedaan dari fungsi tahan hidup antara laki-laki dan perempuan:
Gambar 3.8 Log Rank
Dari gambar 3.8 tersebut diperoleh nilai = 0.00131. Karena = 0.00131 < =0.05, maka tolak 0. Artinya estimasi fungsi tahan hidup dari kelompok laki-laki
dan kelompok perempuan berbeda. Jadi secara umum dapat disimpulkan bahwa
kemampuan (survive) kelompok laki-laki berbeda dengan perempuan.
3. Pengaruh variabel penelitan terhadap tahan hidup pasien penyakit paru-paru
Untuk mengetahui seberapa jauh pengaruh dari masing-masing variabel
penelitian terhadap tahan hidup pasien penderita penyakit paru-paru, perlu
dilakukan analisis dengan menggunakan model regresi. Analisisnya sebagai berikut:
Gambar 3.8 Regresi eksponensial
Dengan menggunakan distribusi eksponensial diperoleh nilai estimasi
parameter
sebesar0.01516, 0.00381,−0.01264, 0.30837,−0.24370,−0.00169, 0.00189,−0.00003, dan0.00453 berturut-turut untuk variable inst, time, age, sex, ph.ecog, ph.karno,
pat.karno, meal.cal, wt.loss. Sedangkan untuk intercept diperoleh nilai 510.721,variabel yang memberikan pengaruh yang positif pada α = 0.05 adalah inst, time,
sex, pat.karno, dan wt.loss, sedangkan variabel age, ph.ecog, ph.karno dan meal.cal
tidak mempengaruhi lamanya tahan hidup pasien penderita penyakit paru-paru.
Sedangkan dengan menggunakan distribusi weibull diperoleh nilai estimasi
parameternya sebesar0.003980, 0.003400,−0.003500, 0.107000,−0.053600, 0.002380,0.000924,−0.0000125, 0.002480 berturut-turut untuk variable inst, time, age, sex,
ph.ecog, ph.karno, pat.karno, meal.cal, wt.loss. Sedangkan untuk intercept diperoleh
nilai 4.430000. Tidak jauh berbeda dengan model yang menggunakan distribusi
eksponensial, pada model ini juga diperoleh kesimpulan bahwa variabel yang
memberikan pengaruh yang positif signifikan pada taraf = 5% adalah variabel
inst, time, sex, ph.karno, pat.karno, dan wt.loss, sedangkan variabel age, ph.ecog,
dan meal.cal tidak mempengaruhi lamanya tahan hidup pasien penderita penyakit
paru-paru
Gambar 3.9 Regresi weibul
BAB IV
PENUTUP
A. Kesimpulan
1. Berdasarkan hasil plot Kaplan-Meier terlihat bahwa nilai peluang survivalnya
semakin lama semakin kecil.
2. Dengan Uji Log-Rank secara umum dapat disimpulkan bahwa kemampuan
(survive) kelompok laki-laki berbeda dengan perempuan.
3. Dengan menggunakan metode regresi weibul memberikan hasil yang tidak jauh
berbeda dengan model yang menggunakan distribusi eksponensial, pada model
ini diperoleh kesimpulan bahwa variabel yang memberikan pengaruh yang
positif signifikan pada taraf = 5% adalah variabel inst, time, sex, ph.karno,
pat.karno, dan wt.loss, sedangkan variabel age, ph.ecog, dan meal.cal tidak
mempengaruhi lamanya tahan hidup pasien penderita penyakit paru-paru
DAFTAR PUSTAKA
Muhajir, Muhammad, dan Prof. Akhmad Fauzy. 2014. Modul Petunjuk Praktikum
Komputasi Statistik. Yogyakarta.
Fauzy, Akhmad dan Mustika Sari, Rita. 2013. Interval Konfidensi Bagi Kuantil Dari
Data Berdistribusi Eksponensial Satu Parameter Tersensor Tipe-II (Studi
Kasus data masa tahanan anggota DPR yang tersangkut korupsi). Prosiding
Seminar Nasional Statistika 2013. Statistika dalam Menajemen
Kebencanaan, UII. Hal: 196-201. ISBN: 978-979-19543-8-9.
Fauzy, Akhmad., Supandi, Epha Diana., Ibrahim, N. A., Daud, Isa., Bakar, M.
Rizam Abu. 2007. Confidence Bands For Air Pollutant (Carbon Monoxide)
Under Double Type-II Censoring With Bootstrap Percentile. Proceedings of
the International Conference on Research and Education in Mathematics.
Hal: 209-214. ISBN: 978-983-3455-88-1.