[R] Re : Nomogram with multiple interactions (package rms)

Marc Carpentier marc.carpentier at ymail.com
Wed May 19 23:36:33 CEST 2010

I'm sorry. I don't understand the "omit" solution, and maybe I mislead you with my explanation.

With the data from the "f" exemple of nomogram() :
Let's declare :
f2 <- cph(Surv(d.time,death) ~ sex*(age+blood.pressure))
I guess the best (and maybe the only) way to represent it with a nomogram is to plot two nomograms (I couldn't find better).
Is there a way to have :

Nomogram1 : "male" :
- points 1-100 ---------------
- age ("men") ---------------
- blood.pressure ("men") ---------------
- linear predictor ---------------

And nomogram2 : "female" :
- points 1-100 ---------------
- age ("female") ---------------
- blood.pressure ("female") ---------------
- linear predictor ---------------

As I said I tried and failed (nomogram() still wants me to define
interact=list(...)) with :
plot(nomorgam(f2, adj.to=list(sex="male")) #and "female" for the other one

Marc

----- Message d'origine ----
De : Frank E Harrell Jr <f.harrell at vanderbilt.edu>
À : Marc Carpentier <marc.carpentier at ymail.com>; r-help-request Mailing List <r-help at r-project.org>
Envoyé le : Mer 19 mai 2010, 22h 28min 51s
Objet : Re: [R] Nomogram with multiple interactions (package rms)

On 05/19/2010 03:17 PM, Marc Carpentier wrote:
> Dear list, I'm facing the following problem : A cox model with my sex
> variable interacting with several continuous variables :
> cph(S~sex*(x1+x2+x3)) And I'd like to make a nomogram. I know it's a
> bit tricky and one mights argue that nomogram is not a good a
> choice... I could use the parameter
> interact=list(sex=("male","female"),x1=c(a,b,c))... but with rcs or
> pol transformations of x1, x2 and x3, the choice of the
> categorization (a,b,c,...) is arbitrary and the nomogram not so
> useful... Considering that sex is the problem, I thought I could draw
> two nomograms, one for each sex... based on one model. These would be
> great. Do you think it's possible ?

Yes, you can specify constant predictors not to draw with the omit=
argument.  But try first to draw everything.  Shouldn't you just get 2
axes each for x1 x2 x3?

>
> Taking the exemple of the help of nomogram() (package "rms") : f<-
> psm(Surv(d.time,death) ~ sex*age, dist=if(.R.)'lognormal' else
> 'gaussian')

Drop the if(.R.) which was just corrected in the documentation.  Use
dist='lognormal'

Frank

>
> Let's add the previously defined blood.pressure effect with an
> interaction with sex too (with cph) : f2<- cph(Surv(d.time,death) ~
> sex*(age+blood.pressure))
>
> I thought of the parameter adt.to : plot(nomorgam(f2,
> adj.to=list(sex="male")) #and "female" for the other one
>
> But nomogram() still wants me to define interact=list(...) Thanks for
> any advice you might have (with adj.to or any alternative...)
>
> Marc Carpentier
>

--
Frank E Harrell Jr   Professor and Chairman        School of Medicine
Department of Biostatistics   Vanderbilt University