Emails \(\hspace{0.6cm}:\) 1. hodawya125@gmail.com
\(\hspace{1.9cm}\) 2. juenzy.hodawya@matanauniversity.ac.id
Instagram \(\hspace{0.03cm}:\) https://www.instagram.com/j.hodawya/
Linked In \(\hspace{0.2cm}:\) https://www.linkedin.com/in/juenzy-hodawya-a310ab1a3/
RPubs \(\hspace{0.67cm}:\) https://rpubs.com/JHodawya
Kaggle \(\hspace{0.6cm}:\) https://www.kaggle.com/juenzyhodawya
GitHub \(\hspace{0.52cm}:\) https://github.com/JuenzyHodawya
Beberapa hal kecil yang mungkin dapat terjadi dan berguna untuk diketahui:
Salah satu asumsi dari model regresi hazard proporsional Cox adalah bahwa hazard proporsional pada setiap titik waktu selama masa follow-up. Bagaimana kita dapat memeriksa apakah data kita memenuhi asumsi ini?
Gunakan fungsi cox.zph dari package 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
Terkadang Anda ingin memvisualisasikan perkiraan survival menurut variabel kontinu. Fungsi sm.survival dari package sm memungkinkan Anda melakukan ini untuk sebuah kuantil distribusi data survival. Kuantil default adalah p = 0.5 untuk median survival.
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 dengan 1/2, 1/4, dll untuk mendapatkan jumlah penghalusan yang baik. Plot sebelumnya terlalu halus jadi mari kita kurangi 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 kelangsungan hidup di antara sekelompok pasien yang telah 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 Anda sendiri.
Sebagai alternatif, saya memiliki package sederhana dalam pengembangan yang disebut condsurv untuk menghasilkan perkiraan dan plot yang terkait dengan kelangsungan hidup bersyarat. Kita dapat menggunakan fungsi conditional_surv_est untuk mendapatkan taksiran dan 95% interval keyakinan. Mari kita kondisikan kelangsungan hidup sampai 6 bulan.
library(condsurv)
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()) %>%
kable()| months | cs_est | cs_lci | cs_uci |
|---|---|---|---|
| 12 | 0.58 | 0.49 | 0.66 |
| 18 | 0.36 | 0.27 | 0.45 |
| 24 | 0.16 | 0.10 | 0.25 |
| 30 | 0.07 | 0.02 | 0.15 |
Ingatlah bahwa perkiraan kelangsungan hidup 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 kelangsungan hidup bersyarat berdasarkan lama waktu bertahan yang berbeda. Fungsi condsurv::condKMggplot bisa membantu dengan ini.
cond_times <- seq(0, 182.625 * 4, 182.625)
gg_conditional_surv(
basekm = fit1,
at = cond_times,
main = "Conditional survival in lung data",
xlab = "Days"
) +
labs(color = "Conditional time")Plot yang dihasilkan memiliki satu kurva kelangsungan hidup untuk setiap waktu yang kita kondisikan. Dalam hal ini, baris pertama adalah kurva survival secara keseluruhan karena dikondisikan pada waktu 0.