Utiliser l'imputation multiple pour les risques proportionnels de Cox, puis valider avec le package rms?


8

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 micepaquet a des fonctions de mise en commun intégrées mais je ne pense pas qu'elles fonctionnent avec l' cphobjet dans rms. La clé ici est de pouvoir continuer à utiliser rmsaprè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; micesemble plus simple à utiliser.


Soit dit en passant: modérateurs, si vous pensez que ce Q appartient à Stack Overflow, n'hésitez pas à le migrer.
JJM

Salut @JJM. Je suis dans une situation similaire où j'ai besoin de regrouper mes modèles cox à partir des différents ensembles de données imputées, puis de valider. Afin de générer le modèle unique, comment les risques cumulatifs de base devraient-ils être combinés? Les journaux des aléas (coefficients) peuvent être regroupés facilement car ils ont une normalité asymptotique. Cependant, pour calculer les probabilités de survie, vous avez également besoin d'une estimation du danger de base (cumulatif). Pour autant que je sache, cela n'a pas de normalité asymptotique, donc je ne sais pas comment regrouper plusieurs modèles de coxphes en un seul modèle. Merci beaucoup si vous voyez cela.
AP30 le

Réponses:


12

La fit.mult.imputefonction dans le Hmiscpackage tirera des imputations créées à partir de la micemême manière qu'à partir de aregImpute. cphfonctionnera avec fit.mult.impute. La question la plus difficile est de savoir comment effectuer la validation par le rééchantillonnage lorsque vous effectuez également une imputation multiple. Je pense que personne n'a vraiment résolu cela. Je prends généralement la solution la plus simple et j'utilise l'imputation unique pour valider le modèle, en utilisant la Hmisc transcanfonction, mais en utilisant l'imputation multiple pour ajuster le modèle final et obtenir des erreurs standard.


1
Merci pour votre réponse utile, Dr Harrell. Je voudrais simplement résumer ma compréhension de ce que vous avez dit. Veuillez me corriger si je le lis mal fit.mult.impute():: Utilisez-le pour regrouper les cph()modèles (5 d'entre eux, sur la base de 5 imputations de mice) et obtenir des ratios de risque groupés et des erreurs standard. transcan(): Utilisez cette option pour créer une imputation unique et la valider. Il semble que cela donne une assez bonne validation. Est-ce que tout cela est correct? J'apprécie vraiment votre aide, Dr Harrell.
JJM

1
C'est correct. La validation par imputation unique est un substitut temporaire à l'ajustement par imputation multiple.
Frank Harrell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.