RPubs : https://rpubs.com/sofia3484
Github : https://github.com/sofia3484
Prodi : Statistika Bisnis
Alamat : ARA Center, Matana University Tower. Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Dasar-dasar analisis kelangsungan hidup termasuk fungsi kelangsungan hidup Kaplan-Meier dan regresi Cox
Analisis penanda waktu atau landmark dan kovariat tergantung waktu
Insiden kumulatif dan regresi untuk analisis persaingan risiko
Berbagai hal kecil yang mungkin muncul dan berguna untuk diketahui:
Menilai asumsi bahaya proporsional
Membuat plot survival yang mulus berdasarkan kelangsungan hidup \(x\) tahun menurut kovariat berkelanjutan
Kelangsungan hidup bersyarat
Salah satu asumsi dari model regresi Cox proportional hazards atau bahaya proporsional Cox adalah bahwa setiap hazards atau bahaya adalah proporsional pada setiap titik waktu selama tindak lanjut. Bagaimana kami dapat memeriksa apakah data kami memenuhi asumsi ini?
Gunakan fungsi cox.zph dari paket survival. Ini menghasilkan dua hal utama:
Uji hipotesis untuk mengetahui apakah pengaruh setiap kovariat berbeda menurut waktu, dan uji global sekaligus untuk kovariat.
Ini dilakukan oleh mengetes efek interaksi antara kovariat dan log (waktu atau time)
Nilai p yang signifikan menunjukkan bahwa asumsi bahaya atau hazard proporsional telah dilanggar
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 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 median kelangsungan hidup.
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)
)X mewakili peristiwa
Huruf o mewakili penyensoran
Garis tersebut adalah perkiraan rata-rata usia kelangsungan hidup
Opsi h adalah parameter penghalusan atau smooting parameter. Ini harus terkait dengan standar deviasi kovariat kontinu, x. Disarankan untuk memulai dengan {n ^(− 1/4)} lalu kurangi dengan {2}, {4}, dll untuk mendapatkan jumlah penghalusan atau smoothing yang baik. Plot sebelumnya terlalu halus jadi mari kita kurangi dengan 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)}\]
\(y\): jumlah tahun kelangsungan hidup tambahan yang diinginkan
\(x\): jumlah tahun pasien yang telah bertahan hidup
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 matematika dasar anda sendiri.
Sebagai alternatif, saya memiliki paket sederhana yang sedang dalam tahap 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 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 kami adalah 0.41. Kami melihat bahwa untuk pasien yang sudah bertahan hidup 6 bulan, angknya meningkat menjadi 0.58.
Kami juga dapat memvisualisasikan data kelangsungan hidup bersyarat berdasarkan lama waktu bertahan yang berbeda. Fungsi condsurv::condKMggplot 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.