I have been tasked with evaluating hospital length of stay (LOS) in two groups of patients using the Cox proportional hazards model. One group of patients received a medication, the other did not. Hospital discharge constitutes a failure, there is no censoring (all patients are eventually discharged).

The hazards for the two groups of patients were not proportional though, so Cox is no longer the correct approach. I am not sure how to decide on the appropriate model (accelerated failure-time (AFT) model or multiplicative/proportional hazards (PH) model) and the appropriate survival distribution (exponential, Weibull, etc.) to use for the model.

Any tips for how to find the appropriate model and distribution?


1 Answer 1


If proportional hazards (PH) doesn't hold, then neither a Weibull nor its special case of an exponential survival model will work directly, because each implicitly assumes PH (at least with the way that covariates are usually included in a Weibull model). See this page.

If there isn't an obvious choice of a distribution based on your understanding of the subject matter, then the usual solution is to try several approaches until you find one that adequately fits the data. You should, however, explain your evaluations of the various approaches to your readers, as use of the outcomes to choose the structure of a model violates the assumptions for things like p-values.

Chapter 18 of Frank Harrell's Regression Modeling Strategies covers parametric survival modeling, showing ways to evaluate the quality of the fit with different choices of distributions. The R flexsurv package provides for parametric modeling under a wide set of survival distributions, including user-defined distributions.

You might instead consider a Cox model with time-varying coefficients, as explained in the vignette on time dependence in the R survival package. That relaxes the PH assumption, allowing the hazard ratios to change as a defined function of time. An additive instead of multiplicative hazard model might also be helpful, as implemented for example by the aareg() function in that package.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.