[R] Schoenfeld residuals

Terry Therneau therneau at mayo.edu
Mon Apr 6 17:13:45 CEST 2009


Laura Bonnett was kind enough to send me a copy of the data that caused the 
plotting error, since it was an error I had not seen before.

1. The latest version of survival gives a nicer error message:
 
> fit <- coxph(Surv(rem.Remtime, rem.Rcens) ~ all.sex, nearma)
> cfit <- cox.zph(fit)
> plot(cfit)
Error in plot.cox.zph(cfit) : 
   Spline fit is singular, try a smaller degrees of freedom

2. What's the problem?
  There are 1085 events in the data set (rem.Rcens==1), and of these 502 are 
tied events on exactly day 365.  The plot.cox.zph function tries to fit a 
smoothing spline to the data to help the eye; the fit gives weight 1 to each 
death and having this high a proportion of ties creates problems for the 
underlying regression.
  
3. 
> plot(cfit, df=2)
  Warning messages:
1: In approx(xx, xtime, seq(min(xx), max(xx), length = 17)[2 * (1:8)]) :
  collapsing to unique 'x' values
2: In approx(xtime, xx, temp) : collapsing to unique 'x' values

  These warning messages are ignorable.  I'll work on making them go away.
  	
  	
4. A shot in the dark -- is perchance the variable rem.Rcens=1 a marker of a 
censored observation, and the events are 0?  (A whole lot of events at 1 year is 
suspicious, but half censored at one year is believable.) Then the proper coxph 
code is

> fit2 <-  coxph(Surv(rem.Remtime, rem.Rcens==0) ~ all.sex, nearma)

	Terry Therneau




More information about the R-help mailing list