[Rd] Small suggestion for termplot

Terry Therneau therneau at mayo.edu
Mon Feb 18 15:25:36 CET 2013


Brian,
   I used termplot(..., plot=FALSE) recently in R-devel: works like a charm.  Thanks much 
for the update.

   Our in-house "gamterms" function, which this obviates, would also return the "constant" 
attribute from the underlying predict(..., type="terms") call.  I have occasionally found 
this useful, and so it would be a worthwhile addition to termplot.  Currently
       fit <- coxph(Surv(time, status) ~ pspline(age) + sex + ns(wt.loss), data=lung)
       zed <- termplot(fit, se=TRUE, plot=FALSE)

returns a list with components zed$age, zed$sex, zed$wt.loss.  The constant could be added 
as another element of the list or as an attribute, I don't have an opinion either way so 
have not suggested a patch.  You may have a reason for preferring one or the other.  
Clearly this is not critical for version 3.0 release.

   I sent this to you since you impliemented the plot=FALSE change, cc to the list in case 
someone else is appropriate.

   For those on the list, the recent change has three nice features:
      a. Use of predict(.., type='terms') is a nuisance because the result is in data set 
order rather than x order, a lines() call becomes a scribble.  This has reduced each term 
to the set of unique x values, in order, just what you need for a plot.
      b. In the coxph example above I use plot(zed$age$x, exp(zed$age$y), log='y') to get 
a better y-axis label.  For all the developers, this is a nice way to deflect requests for 
yet-another-plotting-option addition to termplot.
     c. Easy to overlay results from two separate fits.

Terry T.



More information about the R-devel mailing list