Cara memperkirakan fungsi bahaya garis dasar dalam Model Cox dengan R

13

Saya perlu memperkirakan fungsi dasar bahaya dalam model Cox tergantung waktuλ0(t)

λ(t)=λ0(t)exp(Z(t)β)

Ketika saya mengikuti kursus Survival, saya ingat bahwa turunan langsung dari fungsi bahaya kumulatif ( ) tidak akan menjadi penaksir yang baik karena Breslow estimator memberikan fungsi langkah.λ0(t)dt=dΛ0(t)

Jadi, apakah ada fungsi dalam R yang bisa saya gunakan secara langsung? Atau referensi tentang topik ini?

Saya tidak yakin apakah perlu membuka pertanyaan lain, jadi saya hanya menambahkan beberapa latar belakang mengapa fungsi bahaya garis dasar penting bagi saya. Rumus di bawah ini memperkirakan probabilitas bahwa waktu bertahan hidup untuk satu subjek lebih besar daripada yang lain ,. Di bawah pengaturan model Cox, fungsi bahaya garis dasar diperlukan. λ0(t)

P(T1>T2)=0S1(t)dS2(t)=0S1(t)S2(t)λ2(t)dt

elong
sumber
2
Apakah ini membantu? stats.stackexchange.com/questions/36015/...
ocram
Tentang perkiraan Breslow: stats.stackexchange.com/questions/20747/…
Stéphane Laurent
Formula (4) dari makalah ini memberikan estimasi. jstor.org/stable/2530904
elong

Jawaban:

20

Model Cox secara eksplisit dirancang untuk dapat memperkirakan rasio bahaya tanpa harus memperkirakan fungsi bahaya awal. Ini adalah kekuatan dan kelemahan. Kekuatannya adalah Anda tidak dapat membuat kesalahan dalam fungsi yang tidak Anda perkirakan. Ini adalah kekuatan nyata dan merupakan alasan mengapa orang menyebutnya "semi-parametrik" dan sebagian besar bertanggung jawab atas popularitasnya. Namun, ini juga merupakan kelemahan nyata, karena begitu Anda ingin mengetahui sesuatu selain rasio bahaya, Anda akan sering memerlukan fungsi bahaya awal dan yang mengalahkan tujuan utama model Cox.

Jadi saya cenderung menggunakan model Cox hanya ketika saya tertarik pada rasio bahaya dan tidak ada yang lain. Jika saya ingin mengetahui hal-hal lain, saya biasanya beralih ke model lain seperti yang dibahas di sini: http://www.stata.com/bookstore/flexible-parametric-survival-analysis-stata/

Maarten Buis
sumber
2
+1 Ini adalah cara lain untuk memodelkan secara parametrik data bahaya garis dasar.princeton.edu/wws509/notes/c7s4.html
boscovich
3

Fungsi bahaya garis dasar dapat diperkirakan dalam R menggunakan fungsi "basehaz". File "help" menyatakan bahwa itu adalah fungsi "prediksi survival" yang jelas tidak. Jika seseorang memeriksa kode, itu jelas fungsi bahaya kumulatif dari suatu survfitobjek. Untuk kekonyolan lebih lanjut, pengaturan default adalah centered=TRUEa) bukan fungsi bahaya dasar (seperti namanya), dan b) mempekerjakan prediksi-at-the-means yang secara liar didiskreditkan sebagai valid dalam arti praktis.

Dan ke poin Anda sebelumnya: ya fungsi ini memanfaatkan fungsi langkah. Anda dapat mengubah output itu ke fungsi bahaya menggunakan smoothing. Bagian terburuk dari semuanya, berapa interval ketidakpastian untuk prediksi itu? Anda bisa mendapatkan medali Fields jika Anda bisa mendapatkannya. Saya bahkan tidak berpikir kita tahu apakah bootstrap berfungsi atau tidak.

Sebagai contoh:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

masukkan deskripsi gambar di sini

AdamO
sumber