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 mice
paket tersebut memiliki beberapa fungsi penyatuan bawaan tetapi saya tidak percaya mereka bekerja dengan cph
objek tersebut rms
. Kuncinya di sini adalah masih bisa digunakan rms
setelah pooling. Saya melihat ke dalam menggunakan aregImpute()
fungsi Harrell tapi saya mengalami kesulitan mengikuti contoh dan dokumentasi; mice
tampaknya lebih mudah digunakan.