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 mice
paquete tiene algunas funciones de agrupación incorporadas, pero no creo que funcionen con el cph
objeto rms
. La clave aquí es poder seguir utilizando rms
despué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; mice
Parece más simple de usar.