2015-11-10 3 views
0

J'essaie de tracer un modèle spline cubique restreint en utilisant le package rms. Cependant, je ne trouve aucun moyen d'ajuster mon modèle de risque cox proportionnel, je peux seulement obtenir l'ajustement non ajusté. Voici mon code:Comment ajuster le modèle de spline cubique spline restreint à l'aide du package rms?

library(survival) 
library(rms) 

dd <- datadist(Cox9) 
options(datadist="dd") 

fit <- cph(Surv(follcox,evento) ~ rcs(G_VINO,3)) 
plot(Predict(fit_vino), lty=1, lwd=3, ylim=c(-0.5,1.0),xlim = c(0,50), col="white") 

Avec ce codage je reçois le modèle spline non ajusté. Je me demandais comment puis-je ajouter les variables de confusion pour ajuster le modèle. J'ai essayé:

fit_vino_adj <- cph(Surv(follcox,evento) ~rcs(G_VINO+edad0+actfis+energia)) 
plot(Predict(fit_vino_adj), lty=2, lwd=2) 

Mais cela me donne le modèle de splines de chaque variable séparément, quelqu'un a une idée comment puis-je ajuster mon modèle?

Répondre

0

Puisque vous n'avez pas réussi à inclure les données dans Cox9 ou à montrer comment on pourrait construire une base de données similaire ou afficher une sortie, on ne peut que deviner ce qui s'est passé et répondre en général. Il semble que vous regroupiez les variables dans la fonction rcs. Il est peu probable que cela réussisse, ou si cela réussit, il est probable que les résultats seront incorrects. Au lieu de cela, vous devez construire cet ajustement et ensuite tracer uniquement l'ajustement de la courbe qui vous intéresse en nommant la variable de focus dans le Predict -call.

fit_vino_adj <- cph(Surv(follcox,evento) ~ rcs(G_VINO, 3)+edad0+actfis+energia) 
plot(Predict(fit_vino_adj, name="G_VINO"), lty=2, lwd=2) 

Ou peut-être (en supposant ce sont toutes les mesures continues) rendent le très légèrement modifié appel traçante après:

fit_vino_adj2 <- cph(Surv(follcox,evento) ~ rcs(G_VINO, 3)+rcs(edad0, 3) + 
              rcs(actfis, 3) + rcs(energia, 3)) 
plot(Predict(fit_vino_adj), lty=2, lwd=2) # to see form of all variable fits. 

Si vous voulez avoir deux ou plusieurs rcs splines dans les modèles, alors vous avez besoin pour envelopper rcs autour des autres variables séparément. Je ne pensais pas que la fonction rcs n'était pas comme la fonction ^, qui a une méthode d'expansion de formule. (Bien que votre affirmation que vous ayez obtenu une sortie séparée de ce second modèle me demande si j'ai complètement suivi ce paquet.) Si vous vouliez une surface complexe pour ce que j'appelle des "splines croisées", alors vous utiliseriez l'opérateur * entre deux appels rcs. Le croisement avec une variable factorielle construira des ajustements rcs-spline individuels pour chaque niveau du facteur.