Email: theodoraputrina@gmail.com
RPubs: https://rpubs.com/Theodora
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
Terkadang Anda ingin memvisualisasikan perkiraan kelangsungan hidup menurut variabel kontinu. Fungsi sm.survival dari paket sm memungkinkan Anda melakukan ini untuk sejumlah distribusi data survival. Kuantil default adalah p = 0,5 untuk kelangsungan hidup 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 \(1/2\), \(1/4\), dst untuk mendapatkan jumlah smoothing yang bagus. 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 paket sederhana dalam pengembangan yang disebut condsurv untuk menghasilkan perkiraan dan plot yang terkait dengan kelangsungan hidup bersyarat. Kita bisa menggunakan fungsi conditional_surv_est untuk mendapatkan perkiraan dan 95% interval kepercayaan. Mari kondisi 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 kami adalah 0,41. Kami 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::condOMggplot dapat membantu dalam hal 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 kami kondisikan. Dalam hal ini, baris pertama adalah kurva kelangsungan hidup secara keseluruhan karena dikondisikan pada waktu 0.