Email         : elvrianae@gmail.com
Instagram     : elvriana_e
RPubs        : https://rpubs.com/elvriana_e
GitHub       : https://github.com/elvrianae
Berbagai hal kecil yang mungkin muncul dan berguna untuk diketahui:
Salah satu asumsi dari model regresi bahaya proporsional Cox adalah bahwa bahaya proporsional pada setiap titik waktu selama tindak lanjut. Bagaimana kita dapat memeriksa apakah data kita memenuhi asumsi ini?
Gunakan fungsi cox.zph dari paket survival. Ini menghasilkan dua hal utama:
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
plot(cz)Terkadang kita ingin memvisualisasikan perkiraan survival menurut variabel kontinu. Fungsi sm.survival dari paket sm memungkinkan kita melakukan ini untuk sejumlah distribusi data survival. Kuantil default adalah p = 0,5 untuk survival median.
library(sm)
sm.options(
list(
xlab = "Age (years)",
ylab = "Time to death (years)")
)
sm.survival(
x = lung$age,
y = lung$time,
status = lung$status,
h = sd(lung$age) / nrow(lung)^(-1/4)
)Opsi h adalah parameter penghalusan. Ini harus terkait dengan deviasi standar kovariat kontinu, \(x\). Disarankan untuk memulai dengan \(\frac{sd(x)}{n^{-1/4}}\) lalu kurangi \(\frac {1}{2}\), \(\frac {1}{4}\), dan seterusnya 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)
)Kadang-kadang menarik untuk menghasilkan perkiraan survival di antara sekelompok pasien yang telah bertahan selama beberapa waktu. \[S(y|x) = \frac{S(x + y)}{S(x)}\]
Referensinya adalah: Zabor, E., Gonen, M., Chapman, P., & Panageas, K. (2013). Dynamic prognostication using conditional survival estimates. Cancer, 119(20), 3589-3592.
Perkiraan mudah dibuat dengan dasar matematika kita sendiri.
Sebagai alternatif, saya memiliki paket sederhana dalam pengembangan yang disebut condsurv untuk menghasilkan perkiraan dan plot yang terkait dengan survival bersyarat. Kita bisa menggunakan fungsi conditional_surv_est untuk mendapatkan perkiraan dan 95% interval kepercayaan. Mari kondisi survival sampai 6 bulan
remotes::install_github("zabore/condsurv")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 \(1\) tahun awal kita adalah 0,41. Kita melihat bahwa untuk pasien yang sudah bertahan hidup 6 bulan, angka ini meningkat menjadi 0,58.
Kita juga dapat memvisualisasikan data survival bersyarat berdasarkan lama waktu bertahan yang berbeda. Fungsi condsurv::condKMggplot dapat membantu.
cond_times <- seq(0, 182.625 * 4, 182.625)
gg_conditional_surv(
basekm = fit1,
at = cond_times,
main = "Survival Bersyarat Pada Data Lung",
xlab = "Hari"
) +
labs(color = "Waktu Bersyarat")Plot yang dihasilkan memiliki satu kurva survival untuk setiap waktu yang kita kondisikan. Dalam hal ini, baris pertama adalah kurva survival secara keseluruhan karena dikondisikan pada waktu 0.
library(knitr)
knit_exit()