[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
etc.
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