[R] coxph diagnostics plot for shape of hazard function?

Terry Therneau therneau at mayo.edu
Tue Nov 11 15:14:28 CET 2008

> Similarly, when I do plot(zph), B(t) is fairly non-constant.

> This isn't inherently a problem for me. I don't need a hard single number
> to characterize the shape of the excess risk. However, I'd like to be
> able to say
> something qualitative about the shape of the excess risk for the predictor.
> E.g., is it linear, monotonically increasing, monotonially decreasing, etc.
> Is it safe to use the coxph diagnostic plot for this purpose?

  Basically - yes you can.  There are a few caveats:
    1. As a computational shortcut cox.zph assumes that var(X) is approximately 
constant over time, where X is the matrix of covariates.  (Improving this has 
been on my to do list for some time). I have found this to be almost always 
true, but if you have a data set where e.g. everyone in treatment 1 is crossed 
over at 6 months, then you can get odd results for that covariate.  I've run 
across 2-3 such data sets in 10+ years.

    2. The spline curve on the plot is "for the eye".  You can certainly use 
other smoothings, fit a line, etc.  Often you can find a simpler fit.
    	zpfit <- cox.zph(mycoxfit, transform='identity')
    	plot(zpfit$x, zpfit$y[,1], xlab='Time')  #look at variable 1
    	lines(lowess(zpfit$x, zpfit$y[,1]), col=2)
    	abline( lm(zpfit$y[,1] ~zpfit$x), col=3)
    	plot(zpfit$x, zpfit$y[,1], log='x') #same as transform=log 
Sometimes the regression spline fit, the default for cox.zph, puts an extra 
"hook" on the end of the curve, somewhat like polynomials will.  
    	Terry T.

More information about the R-help mailing list