Ich habe das Mäusepaket untersucht und noch keine Möglichkeit gefunden, die mehreren Imputationen zu verwenden, um ein Cox-Modell zu erstellen und dieses Modell dann mit der Funktion des Effektivpakets zu validieren validate(). Hier ist ein Beispielcode von dem, was ich bisher habe, unter Verwendung des Datensatzes 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.
Wenn ich nur mit einem CPH-Modell arbeiten würde, würde ich Folgendes tun:
validate(mod_1,B=20)
Das Problem, das ich habe, ist, wie ich die 5 CPH-Modelle (1 für jede Imputation) nehme und in der Lage bin, ein gepooltes Modell zu erstellen, mit dem ich dann arbeiten kann rms. Ich weiß, dass das micePaket einige integrierte Pooling-Funktionen hat, aber ich glaube nicht, dass sie mit dem cphObjekt in funktionieren rms. Der Schlüssel hier ist, dass er rmsnach dem Pooling noch verwendet werden kann . Ich habe versucht, Harrells aregImpute()Funktion zu verwenden, aber ich habe Probleme, den Beispielen und der Dokumentation zu folgen. micescheint einfacher zu bedienen.