Esta pregunta es con respecto a la utilización de un conjunto de datos de prueba para la validación de un imputado en el modelo de Cox mediante R. Con un no-imputado en el conjunto de datos que yo usaría val.surv()
de rms
, pero no estoy seguro de cómo/si lo puedo usar con mi multiplicar imputado conjunto de datos.
Explicación más detallada:
He creado una predicción de la Cox PH modelo de 5 años, RFS, y también se utiliza la mice
paquete de multiplicar imputar algunos datos que faltan en el conjunto de datos de entrenamiento. Luego usé fit.mult.impute()
en el Dr. Frank Harrell excelente Hmisc
paquete para obtener el conjunto del modelo. Tengo un conjunto de datos que me gustaría probar el modelo, pero no estoy seguro de cómo es la mejor manera de validar el modelo agrupado.
Varios de imputación es un procedimiento común que muchos investigadores utilizan, por lo que debe haber una manera de que los usuarios de R son la validación de sus modelos con datos imputados. Me gustaría saber qué funciones/opciones están disponibles para mí para poner a prueba este modelo agrupado con mi validación del conjunto de datos? Aquí está el código de ejemplo para trabajar con:
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~celltype+karno,
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.
pooled_mod=fit.mult.impute(survmod~celltype+karno,cph,impvet,data=veteran,surv=T)
#Here is a test data set.
remove(veteran)
test_dat=data.frame(trt=replicate(500,NA), celltype=replicate(500,NA), time=replicate(500,NA), status=replicate(500,NA), karno=replicate(500,NA), diagtime=replicate(500,NA), age=replicate(500,NA), prior=replicate(500,NA))
for(i in seq(8)){
test_dat[,i]=sample(veteran[,i],500,replace=T)
}
#Now there is a pooled model, "pooled_mod", and a test data set, "test_dat".
Estoy mirando adelante a oír acerca de la R métodos que pueden ayudar en esta situación.