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 mice
Paket einige integrierte Pooling-Funktionen hat, aber ich glaube nicht, dass sie mit dem cph
Objekt in funktionieren rms
. Der Schlüssel hier ist, dass er rms
nach 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. mice
scheint einfacher zu bedienen.