library(dplyr) #data manipulation
library(ggplot2) #data visualization
library(DT) #beautify the data table
library(plotly) #make a pie chart
library(Metrics) #find error value
library(yardstick)
library(data.table)
library(paletti)
library(GGally)
library(plotly)
library(rsample) # Initial Split
library(partykit)
library(rpart) # Decision Tree
library(rpart.plot) # Decision Tree
library(caret) # Confussion Matrix
library(randomForest) # random forest
library(devtools)
#devtools::install_github('skinner927/reprtree')
#library(reprtree)
library(e1071) # naive bayes
library(nnet) # multinomial logistic regression
library(gridExtra)
library(grid)
library(knitr)
library(kableExtra)
library(cowplot)
library(formattable)
#COLORS
library(ggthemes)
library(paletti)
# WARNA
mycolorfill = c(
light_blue="#2f4b7c",
smooth_blue ="#4B87CB",
light_purple ="#665191",
dark_pink="#a05195",
light_pink="#d45087",
light_red="#f95d6a",
dark_orange="#ff6347",
semi_orange="#e79658",
orange="#dda15a",
cream="#b59378",
dark_cream="#A57F5F",
choc="#85664B",
dark_choc="#6b5340",
light_orange="#ff7c43"
)
#viz_palette(mycolorfill)
mycolor_fill <- get_scale_fill(get_pal(mycolorfill))
mycolor_color <- get_scale_color(get_pal(mycolorfill))
mycolor_hex <- get_hex(mycolorfill)Analisis Survival merupakan suatu analisis yang sesuai dengan pendekatan statistik yang digunakan untuk menyelidiki waktu yang digunakan dalam sautu kejadian yang terjadi. Analisis Survival juga disebut sebagai data waktu suatu kejadian yang terdiri dari waktu mulai dan waktu akhir yang berbeda.
Studi tentang kanker untuk para pasien analisis survival
~ Sosiologi untuk “peristiwa sejarah analisis”
~ Didalam teknik digunakan untuk menghitung “analisis waktu gagal”
Di studi kanker, tipe pertanyaan penelitian berbentuk seperti:
Apa yang menjadi dampak dari karakteristik klinikal dalam peluang hidup pasien?
Berapa besarnya probabilitas seseorang untuk bertahan hidup selama 3 tahun?
Apakah ada suatu perbedaan di dalam peluang hidup kelompok pasien?
Waktu untuk infeksi HIV untuk perkembangan dari AIDS
~ Waktu dari serangan jantung
~ Waktu penyalahgunaan zat
~ Waktu memulai aktivitas seksual
~ Waktu kerusakan dari suatu mesin
Analisis Reabilitas
~ Analisis Durasi
~ Analisis kejadian masa lalu
~ Analisis waktu suatu kejadian
~ Model Survival
Plot Kaplan-Meier untuk memvisualisasikan kurva survival
~ Uji Log-rank untuk membanding
kan kurva survival dari dua atau tiga kelompok
~ Regresi proporsional Cox Hazard untuk menggambarkan efek dari suatu variabel peluang hidup. Model Cox akan dibahas di pembelajaran selanjutnya.
Bagaimana untuk meregenerasi dan intervasi kurva survival, dan
~ Bagaimana utuk menghitung dan memastikan perbedaan uji survival diantara dua atau tiga kelompok dari suatu pasien.
Lalu kita akan melanjutkan dengan menggambarkan analisis multivariat dengan menggunakan model hazard proporsi Cox.
Untuk subjek \(i\):
Waktu kejadian \(T_i\)
Waktu sensor \(C_i\)
~ 0 jika sensor (i.e. $T_i, C_i)
lungWaktu: waktu survival dalam hari \((Y_i)\)
lung ada di package survival didalam R. Data subjek berhubungan dengan kanker paru-paru yang sudah di advans dari Grup Perawatan Kanker Pusat Utara. Bebrapa variabel akan kita gunakan untuk mendemonstrasi dalam metode hari ini, termasuk:Waktu: Waktu survival dalam hari
Kerugian dari tindak lanjut
Secara spesifik, ini merupakan contoh dari sensor yang benar.
Sensor kiri dan interval dari sensor juga sangat memungkinkan, dan metode yang ada digunakan untuk menganaisis tipe dari data ini, tapi pelatihan ini akan menjadi terbatas untuk sensor kanan.
Di contoh ini, bagaimana kita bisa menghitung proporsi dari siapa yang bebas dari kejadian tersebut dalam 10 tahun?
Subjek 6 dan 7 yang bebas dari kejadian tersebut dalam 10 tahun. SUbjek 2, 9 dan 10 yang ada sebelum kejadian 10 tahun tersebut. SUnjek 1, 3, 4, 5 dan 8 yang tersensor didalam sevelum 10 tahun, jadi kita tidak tahu bagaimana mereka ada di dalam kejadian atau tidak selama 10 tahun - bagaimana kita akan berkoorporasi dari subjek ini didalam estimasi kita?
Subjek yang disensor masih menunjukkan informasi, jadi harus dimasukkan kedalam analisisnya. Distribusi dari waktu tindak lanjutannya tidak tepat, dan dapat membuat perbedaan diantara pasien sensor dan yang dengan kejadian. Waktu tindak lanjut selalu positif.
Data akan sering datang dengan permulaan dan pengakhiran data dibandinglan dengan perhitungan sebelum waktu survival. Langkah pertama adalah untuk memastikan bahwa ini akan terformat menjadi tanggal di R.
Ayo membuat contoh kecil dengan variabel sx_date untuk tanggal operasi dan last_fup_date untuk tindak lanjutan tanggal yang terakhir.
library(tibble)
date_ex <- tibble(
sx_date = c("2007-06-22", "2004-02-13", "2010-10-27"),
last_fup_date = c("2017-04-15", "2018-07-04", "2016-10-31")
)
date_ex## # A tibble: 3 x 2
## sx_date last_fup_date
## <chr> <chr>
## 1 2007-06-22 2017-04-15
## 2 2004-02-13 2018-07-04
## 3 2010-10-27 2016-10-31
Kita melihat karakter variabel tersebut, dimana akan sering menjadi kasusnya, tapi kita membutuhkan mereka untuk memformat tanggalnya. Jalan lain untuk memformat tanggal menggunakan R adalah:
date_ex %>%
mutate(
sx_date = as.Date(sx_date, format = "%Y-%m-%d"),
last_fup_date = as.Date(last_fup_date, format = "%Y-%m-%d")
)## # A tibble: 3 x 2
## sx_date last_fup_date
## <date> <date>
## 1 2007-06-22 2017-04-15
## 2 2004-02-13 2018-07-04
## 3 2010-10-27 2016-10-31
Ketahuilah bahwa tidak seperti opsi R, perpisahannya tidak harus spesifik, dan lembar pertolonmgan untuk ?dmy akan menunjukkan semua format opsi.
Sekarang tanggalnya sudah terformat, kita harus menghitung perbedaan diantara pengawalan dan akhiran waktu di beberapa unit, biasanya bulanan atau tahunan. Didalam R, gunakan difftime untuk menghitung jumlah dari hari diantara dua tanggal dan mengkonversikannya menjadi nilai numerik menggunakan as.numeric. Lalu konversikannya menjadi tahunan dengan dibagi menjadi 365,25, rata-rata jumlah dari hari dalam 1 tahun.
date_ex %>%
mutate(
os_yrs =
as.numeric(
difftime(last_fup_date,
sx_date,
units = "days")) / 365.25
)## # A tibble: 3 x 3
## sx_date last_fup_date os_yrs
## <chr> <chr> <dbl>
## 1 2007-06-22 2017-04-15 9.82
## 2 2004-02-13 2018-07-04 14.4
## 3 2010-10-27 2016-10-31 6.01
Menggunakan package lubridate, operasi %--% didesain untuk interval waktu, dimana akan dikonversikan menjadi nomor untuk elaps kedua menggunakan as.duration dan akhirnya konversikan menjadi tahunan dengan dibagikan dengan dyears(1), dimana akan memberikan kita nomor kedua dari tahunnya.
Kita perlu untuk memanggil package lubridate didalam library agar dapat mengakses operator spesialnya (mirop dengan situasi dengan pipa)
Untuk komponen dari data survival, saya menyadari bahwa indikator peristiwanya:
Bagaimanapun juga, didalam R, fungsi Surv juga akan menerima BENAR/SALAH (BENAR = Peristiwa) atau 1/2 (2=Peristiwa).
lung, kita memiliki:Probabilitas yang menjadi subjek akan survive diatas waktu spesifik manapun
\[S(t) = Pr(T>t) = 1-F(t)\]
S(t): fungsi survival F(t) = Pr(T ≤ t): fungsi distribusi kumulatif.
Fifalam teori fungsi survival yang halus, di latihan kita mengobservasi peristiwa didalam kurun waktu diskrit.
Bisa menjadi estimasi nomor dari pasien yang hidup tanpa kerugian satupun di waktu tersebut, dibagi dengan nomor pasien yang hidup dengan memprioritaskan waktunya.
Estimasi Kaplan-Meier dari probabilita survival merupakan produk dari kondisi probabilitas ini, sampai dengan waktu tersebut.
Di waktu ke 0, probabilitas survivalnya adalah 1, \(i.e. S(t_0)=1\)
Fungsi Surv dari package survival membuat objek survival untuk digunakan menjadi respon didalam model formulanya. Ini akan menjadi satu pemasukan dari masing-masing subjek yang merupakan waktu survival, dimana jika kita mengikutinya dari 1 + jika subjeknya tersensor. Ayo kita lihat di 10 observasi pertama:
##
## Attaching package: 'survival'
## The following object is masked from 'package:caret':
##
## cluster
## [1] 306 455 1010+ 210 883 1022+ 310 361 218 166
Fungsi surfit membuat kurva survival yang didasari dengan suatu formula. Ayo meregenerasi kurva survivalnya untuk seluruh kelompoknya, dengan ditetapkan ke objek f1, dan melihat nama-nama dari objek tersebut:
## [1] "n" "time" "n.risk" "n.event" "n.censor" "surv"
## [7] "std.err" "cumhaz" "std.chaz" "type" "logse" "conf.int"
## [13] "conf.type" "lower" "upper" "call"
survfit akan digunakan untuk membuat kurva survival, termasuk:time, yang berisikan titik awal dan akhir dari setiap interval waktunya
surv, yang berisikan probabilitas korespon untuk setiap time
Sekarang kita membuat plot Kaplan-Meier dengan objek survfit yang didasari dari R.
plot(survfit(Surv(time, status) ~ 1, data = lung),
xlab = "Days",
ylab = "Overall survival probability")Secara alternatif, fungsi ggsurvplot dari package survminer dibuat di ggplot2, dan dapat digunakan untuk membuat plot Kaplan-Meier. Cek lagi cheatsheet di package survminer
## Loading required package: ggpubr
##
## Attaching package: 'ggpubr'
## The following object is masked from 'package:cowplot':
##
## get_legend
ggsurvplot(
fit = survfit(Surv(time, status) ~ 1, data = lung),
xlab = "Days",
ylab = "Overall survival probability")Plot ini menggunakan penunjuk dari ggsurvplot didalam langkah fungsi (garis solid) yang berasosiasi dengan band kepercayaan (area teduh)
~ Tanda tebal dari sensor pasien ditunjukkan secara default, sedikit kabur dalam contoh ini, dan dapat ditekan dengan mengunakan opsi sensor = SALAH.
Satu kuantitas yang sering dari analisis survival adalah probabilitas dari bertahan hidup diatas nomor x yg ada dari suatu tahun.
Sebagai contoh, untuk mengestimasi perobabilitas bertahan hidup untuk 1 tahun, gunakan summary dengan argumen times (ketahukah bahwa variabel time di data lung ada di harian, jadi kita perlu untuk menggunakan times = 365.25)
## Call: survfit(formula = Surv(time, status) ~ 1, data = lung)
##
## time n.risk n.event survival std.err lower 95% CI upper 95% CI
## 365 65 121 0.409 0.0358 0.345 0.486
Kita menemukan bahwa dalam probabilitas dari bertahan hdup dalam 1 tahun dalam studi ini sebesar 41%.
Asosiasi rendah dan atas diikat dengan 95% interval kepercayaan yang juga di tampilkan.
1 tahun probabilitas survival di poin axis-y mengkoresponkan 1 tahun di axis-x dari kurva survivalnya.
Apa yang terjadi jika kamu menggunakan estimasi “naif”?
121 dari 228 pasien meninggal dalam 1 tahun, sehingga:
\[(1 - \frac {100}{228}) × 100 = 47\]
Anda mendapatkan estimasi yang tidak benar dalam probabilitas survival selama 1 tahun jika anda melewati fakta bahwa 42 pasien telah tersensor sebelum 1 tahun.
Panggil kembali estimasi yang benar dari probabilitas survival 1 tahun sebesar 41%.
Bayangkan jika dua studi, masing-masing dengan 228 subjek. Ada 165 kematian di masing" studi. Tidak ada sensor di satu gatis oranye, 63 pasien tersensor di garis biru.
Abaikan sensor yang memimpin ke estimasi over dari probabilitas survival, karena subjek yang tersensor hanya berkonstrinusi informasi untuk bagian dalam tindak lanjutan, lalu akan jatuh ke set resiku, ditarik kebawah ke probabilitas survival kumulatif
Nilai lainnya yang sering dicari di pendekatan analisis survival adalah rata-rata waktu surival, dimana kita mencarinya menggunakan median. Waktu survival tidak diinginkan menjadi distribusi yang normal, jadi nilai mean tidak menggambarkan ringkasan datanya.
Kita dapat mendapatkan ini dari objek surfit kita
## Call: survfit(formula = Surv(time, status) ~ 1, data = lung)
##
## n events median 0.95LCL 0.95UCL
## 228 165 310 285 363
Kita melihat bahwa median dari waktu survival adalah 310 hari. Batas atas dan bawah dari 95% interval kepercayaan juga ditampikan.
Nilai median survival adalah waktu korespon ke probabilitas survival sebesar 0.5:
Apa yang terjadi jika kamu menggunakan estimasi yang “naif”? Rangkum waktu median survivalnya diantara 165 pasien yang meninggal
## median_surv
## 1 226
Anda dapat mendapatkan estimasi yang tidak benar dengan median survival di 226 hari disaat anda menghiraukan sebuah fakta bahwa menyensorkan pasien merupakan kontribusi waktu tindak lanjut.
Ingat kembali tentang estimasi yang benar dari waktu 310 hari survival median.
Menghiraukan sensor membuat artifikal kurva survival kebawah karena mengulang kembali waktu yang mensensorkan pasien tidak berkontribusi apa-apa.
Kurva survival untuk data lung ditunjukan dengan perbandingan warna biru.
Kita dapat melakukan uji signifikansi antar kelompok menggunakan uji log-rank.
Tes log-rank sama dengan membobotkan pengamatan selama seluruh waktu tindak lanjut dan merupakan cara paling umum untuk membandingkan waktu bertahan hidup antar kelompok.
Ada versi yang lebih membebani tindak lanjut awal atau akhir yang bisa lebih sesuai tergantung pada pertanyaan penelitian (lihat ?Survdiff untuk opsi tes yang berbeda).
Kita mendapatkan nilai p-value dari log-rank menggunakan fungsi survdiff. Sebagai contoh, kita dapat menguji apakah ada perbedaan waktu bertahan hidup menurut jenis kelamin didalam data lung.
## Call:
## survdiff(formula = Surv(time, status) ~ sex, data = lung)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## sex=1 138 112 91.6 4.55 10.3
## sex=2 90 53 73.4 5.68 10.3
##
## Chisq= 10.3 on 1 degrees of freedom, p= 0.001
Ini agak merepotkan untuk mengekstrak nilai p dari hasil survdiff. Ini adlaah garis kode untuk melakukannya
## [1] 0.001311165
## [1] 0.001
Kita mungkin ingin untuk menghitung efek ukuran untuk satu variabel, atau memasukkan lebih dari satu variabel kedalam model regresi untuk mengakunkan efek dari beberapa variabel.
Model regresi Cox adalah model semi parametrik yang dapt digunakan untuk menyesuaikan regresi multivariabel dan regresi tidak variabel yang memiliki hasil survival.
\[h(t|X_i) = h_o(t)exp(β_1X_{i1} + ... + B_pX_{ip})\]
h(t):hazard, atau tingkat sesaat disuatu peristiwa sedang terjadi \(h_0 (t)\): menggaris bawahi garis utama hazard
~ Proporsional hazard
Ingat: model parameter regresi untuk survival keluar juga luang, tapi mereka tidak di catat di pelatihan ini
Kita dapat memuatkan model data survival menggunakan fungsi coxph, yang mengambil objek Surv di sebelah kiri dan memiliki standar syntaks untuk formula regresi di R di sisi sebelah kanan.
## Call:
## coxph(formula = Surv(time, status) ~ sex, data = lung)
##
## coef exp(coef) se(coef) z p
## sex -0.5310 0.5880 0.1672 -3.176 0.00149
##
## Likelihood ratio test=10.63 on 1 df, p=0.001111
## n= 228, number of events= 165
Kita dapat melihat versi tidy dari data yg keluar menggunakan fungsi tidy dari package broom
library(kableExtra)
broom::tidy(
coxph(Surv(time, status) ~ sex, data = lung),
exp = TRUE
) %>%
kable()| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| sex | 0.5880028 | 0.1671786 | -3.176385 | 0.0014912 |
Atau mengunakan tbl_regression dari package gtsummary
Kuantitas dari suatu ketertarikan model regresi Cox adalah rasio hazard (HR). HR mewakili rasio hazard diantara dua kelompok di titik waktu apapun.
HR diartikan sebagai kejadian sesaat dari suatu kejadian yang menarik bagi mereka yang masih beresiko untuk suatu kejadian tersebut, meskipun secara umum ditafsirkan seperti itu.
Jika anda memioliki regreso parameter \(β\) (dari estimasi kolom di coxph kita) lalu \(HR = exp(β)\).
HR < 1 mengidikasi pengurangan hazard kematian sedangkan HR > 1 mengidikasi peningkatan hazard kematian.
Jadi HR = 0,59 menyimpulkan bahwa sekitar 0,6 kali lebih banyak wanita yang sekarat sampai meninggal dibanding laki-laki pada waktu apapun.
WEEK 2
Analisis Landmarj dan Kovariat Waktu Dependen
Di bagian pertama, kita melindungi dengan menggunakan uji log-rank dan regresi Cox untuk menemukan hasil asosiasinya diantara kovariasi dari ketertarikannya dan hasil survival. Tapi analisis ini hanya bergantung kepada kovariasi yang dihitung dari garis utamanya, itu dia, sebelum mengikuti kembali waktu dari kejadian dimulai atau terjadi. Apa yang terjadi jika anda tertarik kedalam kovariasi yang dihitung setelah waktu tindak lanjutannya dimulai?
Contoh: Bagaimanapun juga, besarnya survival dihitung sejak pengobatan dimulai, dan ketertarikan kedalam asosiasi diantara respon lengkap untuk pengobatan dan survival.
Anderson et al(JCO, 1983) menjelaskan kenapa metode tradisional seperti uji log-rank atau regresi Cox dibias dengan tujuan dari responder di skenario ini dan ditujukan ke pendekatan landmark.
Hipotesis nol di pendekatan landmark merupakan survival dari landmark yang tidak bergantung kepada status respon dari landmark tersebut.
Referensi: Anderson, J., Cain, K., & Gelber, R. (1983). Analysis of survival by tumor response. Journal of Clinical Oncology : Official Journal of the American Society of Clinical Oncology, 1(11), 710-9.
Kegagalan Transplantasi
~ Penyakit Graft yang Melawan Pengidapnya
~ Reseksi kedua
~ Terapi Adjuvan
~ Pemenuhan Peristiwa Buruk
Data dari 137 pasien transplantasi sumsung tulang belakang (dari package SemiCompRisk). Variabel ketertarikanya termasuk:
T1 waktu (dalam hari) kematian atau terakhir dilakukannya tindak lanjut.
delta1 indikator kematian, 1-Meninggal, 0-Hidup
TA waktu (dalam hari) untuk penyakit graft akut yang melawan pengidap
deltaA indikator penyakit graft akut yang melawan pengidap, 1- Pengembangan penyakit graft akut yang melawan pengidap, 0- tidak ada pengembangan penyakit graft akut yang melawan pengidap
Mari kita memanggil lagi datanya untuk digunakan sebagai contoh:
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:formattable':
##
## area
## The following object is masked from 'package:plotly':
##
## select
## The following object is masked from 'package:dplyr':
##
## select
## Loading required package: Formula
Pilih waktu yang pasti setelah garis utama yang ada adi waktu landmark anda, Perhatikan: ini harus terselesaikan yang didasari dengan informasi klinik, inspeksi data diutamakan
Subset populasi dari keterangan tersebut setidaknya sampai waktu landmark. Perhatikan: selalu melaporlan nomor diluar kejadian atau mensensor waktu landmark diutamakan.
Hitung kejadian tindak lanjut dari waktu landmark dan cantumkan uji tradisional log-rank atau regresi Cox
Didalam data BMT ketertarikan ada didalam asosiasi diantara penyakit graft akut yang melawan pengidap (aGVHD) dan survival. Tapi aGVHD di asisi setelah transplantasi dilakukan, dimana di garis utama kita, atau pemulaian tindak lanjut, waktu.
Langkah 1 Pemilihan waktu landmark
Biasanya aGVHD terjadi dalam 90 hari pertama setelah transplantasi, jadi kita menggunakan penanda 90 hari.
Ketertarikan adalah pada hubungan antara penyakit graft akut yang melawan pengidap (aGVHD) dan survival. Tapi aGVHD dinilai setelah transplantasi, yang merupakan waktu dasar kami, atau dimulainya tindak lanjut.
Langkah 2 Subset popilasi ntuk mereka yang mengikuti setidaknya sampai waktu landmark
Ini mengurasngi besarnya sampel kita dari 137 ke 122.
Semua 15 pasien yang dikeluarkan sebelum 90 hari landmark
Keterkatikan adalah asosiasi diantara penyakit graft akut melawan pengidapnya (aGVHD) dan survival.
Tapi aGVHD dinilai setelah terlakukannya transplantasi, yang merupakan garis utama kita atau permulaian tindak lanjut.
Langkah 3 Hitung waktu tindak lanjut dari landmark dan tetapkan metode tradisional.
lm_dat <-
lm_dat %>%
mutate(lm_T1 = T1 - 90)
lm_fit <- survfit(Surv(lm_T1, delta1) ~ deltaA, data = lm_dat)require(survminer)
ggsurvplot(
fit = lm_fit,
data = lm_dat,
xlab = "Days from 90-day landmark",
risk.table = T,
risk.table.y.text = T,
pval = TRUE
)## Warning: Vectorized input to `element_text()` is not officially supported.
## Results may be unexpected or may change in future versions of ggplot2.
Dalam tujuan untuk menetapkan regresi Cox yang menggunakan data BMT, anda dapat menggunakan opsi subset didalam coxph untuk pengeluaran pasien tersebut yang tidak mengikuti waktu landmark.
Nilai kovariat berubah seiring waktu
~ Tidak ada waktu landmark yang jelas
~ Penggunaan landmark akan menyebabkan banyak pengecualian terjadi
Analisi dari waktu dependen covariat di dalam R memerlukan pengaturan dari dataset yang spesial. Lihat jika detail dari kertas ini dari penulis package survival https://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf
Tidak ada ID yang tersedia didalam data BMT, dimana diperlukan untuk membuat dataset yang spesial, jadi buatlah satu yng dinamakan my_id.
Gunakan fungsi tmerge dengan opsi fungsi event dan tdc untuk membuat dataset yang spesial.
tmerge membuat dataset yang panjang dengan banyak interval waktu dari kovariat yang berbeda nilainya untuk masing-masing pasien
event membuat kejadian baru dengan indikator terbaru yang dibuat interval waktu
tdc membuat indikator kovariat independen waktu yang akan digunakan dengan waktu interval yang terbaru
Untuk melihat bagaimana ini dilakukan, mari melihat kearah data untuk 5 orang pasien pertama.
Sekarang kita dapat menganalisis kovariat waktu dependen ini seperti yang biasa dilakukan regresi Cox dengan coxph dan perubahan yang kita gunakan dari Surv untuk memasukkan argumen ke kedua time dan time2
Kita menemukan bahwa penyakit graft akut yang melawan pengidapnya tidak signifikan berasosiasi dengan kematian yang mengunakan analisis landmark atau kovariat waktu dependen.
Sering sekali satu akan mau untuk menggunakan analisis landmark untuk memvisualisasikan covariat tungal, dan regresi Cox dengan kovariat waktu dependen untuk pemodelan univariabel dan multivariabel.