He estado investigando el paquete de ratones , y aún no he descubierto una forma de usar las imputaciones múltiples para hacer un modelo de Cox, luego validar ese modelo con la función del paquete rmsvalidate() . Aquí hay un código de muestra de lo que tengo hasta ahora, usando el conjunto de datos 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.
Ahora, si solo estuviera trabajando con un modelo de CPH, haría esto:
validate(mod_1,B=20)
El problema que tengo es cómo tomar los 5 modelos de CPH (1 para cada imputación) y poder crear un modelo agrupado con el que luego pueda usar rms. Sé que el micepaquete tiene algunas funciones de agrupación incorporadas, pero no creo que funcionen con el cphobjeto rms. La clave aquí es poder seguir utilizando rmsdespués de la agrupación. Estudié el uso de la aregImpute()función de Harrell, pero tengo problemas para seguir los ejemplos y la documentación; miceParece más simple de usar.

Respuestas:
La
fit.mult.imputefunción en elHmiscpaquete dibujará imputaciones creadas de lamicemisma manera que lo haráaregImpute.cphtrabajará confit.mult.impute. La pregunta más difícil es cómo hacer la validación mediante remuestreo cuando también se realiza una imputación múltiple. No creo que nadie haya resuelto eso realmente. Por lo general, tomo el camino más fácil y uso la imputación única para validar el modelo, usando laHmisc transcanfunción, pero usando la imputación múltiple para ajustar el modelo final y obtener errores estándar.fuente
fit.mult.impute():: use esto para agrupar loscph()modelos (5 de ellos, en base a 5 imputaciones demice) y obtener razones de riesgo agrupadas y errores estándar.transcan(): Use esto para crear una sola imputación y validarla. Parece que esto da una validación suficientemente buena. ¿Es todo eso correcto? Realmente aprecio su ayuda, Dr. Harrell.