Email: imeldasianturi85@gmail.com
RPubs: https://rpubs.com/imelda123
Berbagai hal kecil yang mungkin muncul dan berguna untuk diketahui:
Salah satu asumsi proporsional suatu bahaya dalam regresi Cox adalah bahwa bahaya dikatakan proporsional pada setiap titik waktu selama tindak lanjut. Bagaimana kita dapat memeriksa apakah data kita memenuhi asumsi ini?
Gunakan fungsi cox.zphdari package survival. Maka akan menghasilkan dua hal utama, yaitu:
Uji hipotesis apakah pengaruh setiap kovariat berbeda menurut waktu, dan uji global semua kovariat sekaligus.
Plot residu Schoenfeld
library(survival)
mv_fit <- coxph(Surv(time, status) ~ sex + age, data = lung)
cz <- cox.zph(mv_fit)
print(cz)## chisq df p
## sex 2.608 1 0.11
## age 0.209 1 0.65
## GLOBAL 2.771 2 0.25
Terkadang kita ingin memvisualisasikan perkiraan survival (kelangsungan hidup) menurut variabel kontinu. Fungsi sm.survival dari package sm memungkinkan kita melakukan ini untuk sejumlah distribusi data survival. Kuantil default adalah p = 0,5 untuk median survival (nilai tengah kelangsungan hidup).
library(sm)
sm.options(
list(
xlab = "Umur (Tahun)",
ylab = "Waktu sampe Kematian (Tahun)")
)
sm.survival(
x = lung$age,
y = lung$time,
status = lung$status,
h = sd (lung$age) / nrow (lung)^(-1/4)
)Tanda X dalam plot menandakan peristiwa
Tanda O dalam plot menandakan sensoring
Garis lurus dalam plot menandakan perkiraan rata-rata survival (kelangsungan hidup) menurut usia
Opsi h adalah parameter penghalusan. Ini harus terkait dengan standar deviasi kovariat kontinu, \(x\). Disarankan untuk memulai dengan \(\frac{sd(x)}{n^{-1/4}}\) lalu kurangi dengan \(\frac{1}{2}\), \(\frac{1}{4}\), dll untuk mendapatkan jumlah penghalusan yang bagus. Plot sebelumnya terlalu halus jadi mari kita kurangi \(\frac{1}{4}\)
sm.survival(
x = lung$age,
y = lung$time,
status = lung$status,
h = (1/4) * sd(lung$age) / nrow(lung)^(-1/4)
)Terkadang menarik untuk menghasilkan perkiraan survival (kelangsungan hidup) di antara sekelompok pasien yang telah survive (bertahan) selama beberapa waktu. \[S(y|x) = \frac{S(x + y)}{S(x)}\]
Referensi : Zabor, E., Gonen, M., Chapman, P., & Panageas, K. (2013). Dynamic prognostication using conditional survival estimates. Cancer, 119(20), 3589-3592.
Perkiraan mudah dibuat dengan matematika dasar yang kita kuasai.
Sebagai alternatif, saya menggunakan package sederhana dan dalam proses pengembangan yang bernama condsurv untuk menghasilkan perkiraan dan plot yang terkait dengan survival (kelangsungan hidup) bersyarat. Kita bisa menggunakan fungsi conditionl_surv_est untuk mendapatkan perkiraan dan 95% interval kepercayaan. Mari kondisikan survival (kelangsungan hidup) sampai 6 bulan.
library(condsurv)
library(DT)
library(tidyverse)
library(kableExtra)
fit1 <- survfit(Surv(time, status) ~ 1, data = lung)
prob_times <- seq(365.25, 182.625 * 5, 182.625)
purrr::map_df(
prob_times,
~ conditional_surv_est(
basekm = fit1,
t1 = 182.625,
t2 = .x)
) %>%
mutate(months = round(prob_times / 30.4)) %>%
select(months, everything()) %>%
datatable()Ingatlah bahwa perkiraan survival (kelangsungan hidup) 1 tahun awal kita adalah 0,41. Kita bisa melihat bahwa untuk pasien yang sudah bertahan hidup 6 bulan, angka ini meningkat menjadi 0,58.
Kita juga dapat memvisualisasikan data survival (kelangsungan hidup) bersyarat berdasarkan lama waktu mereka survive (bertahan) yang berbeda. Fungsi condsurv::condKMggplot dapat membantu kita.
cond_times <- seq(0, 182.625 * 4, 182.625)
gg_conditional_surv(
basekm = fit1,
at = cond_times,
main = "Survival Bersyarat dari Data Lung",
xlab = "Hari"
) +
labs(color = "Kondisi Waktu")Plot yang dihasilkan memiliki satu kurva survival (kelangsungan hidup) untuk setiap waktu yang kita kondisikan. Dalam hal ini, baris pertama adalah kurva survival (kelangsungan hidup) secara keseluruhan karena dikondisikan pada waktu 0.