¿Usa imputación múltiple para riesgos proporcionales de Cox y luego valida con el paquete rms?

8

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.

JJM
fuente
Por cierto: moderadores, si crees que esta Q pertenece a Stack Overflow, no dudes en migrarla.
JJM
Hola @JJM Estoy en una situación similar en la que necesito agrupar mis modelos Cox de los diferentes conjuntos de datos imputados y luego validarlos. Para generar el modelo agrupado, ¿cómo se deben combinar los riesgos acumulativos de referencia? Los registros de las razones de riesgo (coeficientes) se pueden agrupar fácilmente ya que tienen una normalidad asintótica. Sin embargo, para calcular las probabilidades de supervivencia, también necesita una estimación del riesgo de referencia (acumulativo). Esto no tiene normalidad asintótica, por lo que yo sé, por lo que no estoy seguro de cómo agrupar múltiples modelos coxph en un solo modelo. Muchas gracias si ves esto.
AP30

Respuestas:

12

La fit.mult.imputefunción en el Hmiscpaquete dibujará imputaciones creadas de la micemisma manera que lo hará aregImpute. cphtrabajará con fit.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 la Hmisc transcanfunción, pero usando la imputación múltiple para ajustar el modelo final y obtener errores estándar.

Frank Harrell
fuente
1
Gracias por su útil respuesta, Dr. Harrell. Me gustaría resumir mi comprensión de lo que dijiste. Corríjame si lo estoy leyendo mal fit.mult.impute():: use esto para agrupar los cph()modelos (5 de ellos, en base a 5 imputaciones de mice) 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.
JJM
1
Eso es correcto. La validación de imputación única es un sustituto temporal para el ajuste de imputación múltiple.
Frank Harrell