J'ai fait des recherches sur le package de souris et je n'ai pas encore découvert de moyen d'utiliser les multiples imputations pour créer un modèle Cox, puis valider ce modèle avec la fonction du package rmsvalidate()
. Voici un exemple de code de ce que j'ai jusqu'à présent, en utilisant l'ensemble de données 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.
Maintenant, si je travaillais avec un seul modèle CPH, je ferais ceci:
validate(mod_1,B=20)
Le problème que j'ai est de savoir comment prendre les 5 modèles CPH (1 pour chaque imputation) et être capable de créer un modèle groupé que je pourrai ensuite utiliser avec rms
. Je sais que le mice
paquet a des fonctions de mise en commun intégrées mais je ne pense pas qu'elles fonctionnent avec l' cph
objet dans rms
. La clé ici est de pouvoir continuer à utiliser rms
après la mise en commun. J'ai cherché à utiliser la aregImpute()
fonction de Harrell mais j'ai du mal à suivre les exemples et la documentation; mice
semble plus simple à utiliser.