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

Frank E Harrell Jr f.harrell at Vanderbilt.Edu
Thu May 20 00:55:32 CEST 2010

```On 05/19/2010 04:36 PM, Marc Carpentier wrote:
> 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

I think the documentation tells you how to do this.  But you failed to
look at the output from example(nomogram).  In one of the examples two
continuous predictors have two axes each, with male and female in close
proximity.  Or maybe I'm just missing your point.

Frank

>
>
>
> ----- 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
>>
>> Marc Carpentier
>>
>
>

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

```