[R] plotting spline term when frailty term is included

Therneau, Terry M., Ph.D. therneau at mayo.edu
Wed Mar 2 16:55:31 CET 2016

On 03/02/2016 05:00 AM, r-help-request at r-project.org wrote:
> I'd very much appreciate your help in resolving a problem that I'm having with plotting a spline term.
> I have a Cox PH model including a smoothing spline and a frailty term as follows:
>     fit<-coxph(Surv(start,end,exit) ~ x + pspline(z) + frailty(a))
> When I run a model without a frailty term, I use the following in order to plot the splines:
>     termplot(fit, term = 2, se = TRUE, ylab = "Log Hazard", rug=TRUE, xlab = "z_name")
> However, when the frailty term is included, it gives this error:
>     Error in pred[, first] : subscript out of bounds
> What am I doing wrong here? Or is it the case that termplot does not work when splines and frailty are included?

There are 3 parts to the answer.
  1. The first is a warning: wrt to mixed effects Cox models, I shifted my energy to coxme 
over 10 years ago.  The "penalized add on to coxph" approach of the frailty function was 
an ok first pass, but is just too limited for any but the simplest models.  I'm unlikely 
fix issues, since there are others much higher on my priority list.

  2. As Dave W. pointed out, the key issue is that predict(type='terms') does not work 
with for a model with two penalized terms, when one is frailty and the other pspline. 
Termplot depends on predict.

  3. Again, as Dave W pointed out, the whole issue of what the "correct" answer would be 
gets much more complicated when one adds random effects to the mix; some things have not 
done because it is not clear where to go.  (Survival curves for a mixed effects model only 
recently got added to my "todo" list, even though it has been on the wish list forever, 
because I finally have a notion of what a good approach would be.)

In your case I'd advise an end run: fit the model using ns() instead of pspline.  I like 
smoothing splines better than regression splines, but the fact is that for most data sets 
they result in nearly identical answers.

Terry T

More information about the R-help mailing list