Menggunakan beberapa imputasi untuk bahaya proporsional Cox, lalu validasi dengan paket rms?

8

Saya telah meneliti paket tikus , dan saya belum menemukan cara untuk menggunakan beberapa imputasi untuk membuat model Cox, kemudian memvalidasi model itu dengan fungsi paket rmsvalidate() . Berikut adalah beberapa contoh kode dari apa yang saya miliki sejauh ini, menggunakan kumpulan data veteran:

library(rms)
library(survival)
library(mice)

remove(veteran)
data(veteran)
veteran$trt=factor(veteran$trt,levels=c(1,2))
veteran$prior=factor(veteran$prior,levels=c(0,10))

#Set random data to NA 
veteran[sample(137,4),1]=NA
veteran[sample(137,4),2]=NA
veteran[sample(137,4),7]=NA

impvet=mice(veteran)
survmod=with(veteran,Surv(time,status))

#make a CPH for each imputation
for(i in seq(5)){
    assign(paste("mod_",i,sep=""),cph(survmod~trt+celltype+karno+age+prior,
        data=complete(impvet,i),x=T,y=T))
}

#Now there is a CPH model for mod_1, mod_2, mod_3, mod_4, and mod_5.

Sekarang, jika saya hanya bekerja dengan satu model CPH, saya akan melakukan ini:

validate(mod_1,B=20)

Masalah yang saya alami adalah bagaimana mengambil 5 model CPH (1 untuk setiap imputasi), dan dapat membuat model gabungan yang kemudian dapat saya gunakan rms. Saya tahu bahwa micepaket tersebut memiliki beberapa fungsi penyatuan bawaan tetapi saya tidak percaya mereka bekerja dengan cphobjek tersebut rms. Kuncinya di sini adalah masih bisa digunakan rmssetelah pooling. Saya melihat ke dalam menggunakan aregImpute()fungsi Harrell tapi saya mengalami kesulitan mengikuti contoh dan dokumentasi; micetampaknya lebih mudah digunakan.

JJM
sumber
Ngomong-ngomong: moderator, jika Anda pikir Q ini milik Stack Overflow maka jangan ragu untuk memigrasikannya.
JJM
Hai @JJM. Saya berada dalam situasi yang sama di mana saya perlu mengumpulkan model cox saya dari kumpulan data yang berbeda dan kemudian memvalidasi. Untuk menghasilkan model yang terkumpul, bagaimana seharusnya bahaya kumulatif dasar digabungkan? Log rasio bahaya (koefisien) dapat dikumpulkan dengan mudah karena mereka memiliki normalitas asimptotik. Namun, untuk menghitung probabilitas kelangsungan hidup Anda juga memerlukan perkiraan bahaya baseline (kumulatif). Sejauh ini saya tidak memiliki normalitas asimptotik, jadi saya tidak yakin bagaimana menggabungkan beberapa model coxph menjadi satu model. Terima kasih banyak jika Anda melihat ini.
AP30

Jawaban:

12

The fit.mult.imputefungsi dalam Hmiscpaket akan menarik imputations dibuat dari miceseperti itu akan dari aregImpute. cphakan bekerja dengan fit.mult.impute. Pertanyaan yang lebih sulit adalah bagaimana melakukan validasi melalui resampling ketika juga melakukan beberapa imputasi. Saya tidak berpikir ada orang yang benar-benar menyelesaikannya. Saya biasanya mengambil jalan keluar yang mudah dan menggunakan imputasi tunggal untuk memvalidasi model, menggunakan Hmisc transcanfungsi, tetapi menggunakan beberapa imputasi agar sesuai dengan model akhir dan untuk mendapatkan kesalahan standar.

Frank Harrell
sumber
1
Terima kasih atas balasan Anda yang bermanfaat, Dr. Harrell. Saya hanya ingin merangkum pemahaman saya tentang apa yang Anda katakan. Harap perbaiki saya jika saya salah membaca fit.mult.impute():: Gunakan ini untuk menyatukan cph()model (5 dari mereka, berdasarkan 5 imputasi dari mice) dan dapatkan rasio bahaya yang dikumpulkan dan kesalahan standar. transcan(): Gunakan ini untuk membuat satu imputasi dan memvalidasinya. Sepertinya ini memberikan validasi yang cukup baik. Apakah semua itu benar? Saya sangat menghargai bantuan Anda, Dr. Harrell.
JJM
1
Itu benar. Validasi imputasi tunggal adalah stand-in sementara untuk fit imputasi multipel.
Frank Harrell