This function constructs a diagnostic plot of the adequacy of the Weibull distribution for survival data with respect to one categorical covariate. If the Weibull distribution fits the data well, then the lines produced should be linear and parallel.
WeibullDiag(formula, data = parent.frame(), labels = names(m$strata))
Produces a plot of log Time vs. log Estimated Cumulative Hazard for each level of the predictor
(similarly to what can be obtained using plot.survfit
and the fun = "cloglog"
option),
as well as a data set containing that information.
A formula containing a Surv
object, should only contain one categorical
predictor, or a set of indicators describing only one predictor.
Data set.
A vector containing labels for the plotted lines.
Sarah R. Haile, Epidemiology, Biostatistics and Prevention Institute (EBPI), University of Zurich, sarah.haile@uzh.ch
As discussed in Klein and Moeschberger (2003), one method for checking the adequacy of the Weibull model with a categorical covariate is to produce stratified Kaplan-Meier estimates (KM), which can be transformed to estimate the log cumulative hazard for each stratum. Then in a plot of \(\log(t)\) versus \(\log(-\log(KM))\), the lines should be linear and parallel. This can be seen as the log cumulative hazard for the Weibull distribution is
$$\log H(t) = \log \lambda + \alpha \log t.$$
Klein, J. and Moeschberger, M. (2003). Survival analysis: techniques for censored and truncated data. 2nd edition, Springer.
Requires survival. A similar plot can be produced using plot.survfit
and the option fun = "cloglog"
.
data(larynx)
WeibullDiag(Surv(time, death) ~ stage, data = larynx)
Run the code above in your browser using DataLab