I am attempting to model recurrent event data in Stata. My data is dataset of patient records and I am modelling a patients first delivery of a mobility aid and the subsequent deliveries of new mobility devices as their previous device will have broken/failed or the patient no longer has it. This means the time resets when a person is given a new mobility device. Patients can have a minimum of 2 rows of data, up to a maximum of 50 depending on how many replacements to mobility aids they have had.

I have explored different methods of conducting survival analysis, with the main two being a Cox PH model and Accelerated Failure Time model. For the Cox model the PH assumption is violated no matter what I do, I have tried creating smaller discrete time intervals, stratification and interactions between covariates. Therefore, I believe this suggests using a different method.

Instead I have been following the advice in https://jdemeritt.weebly.com/uploads/2/2/7/7/22771764/parametric.pdf and in the book Cleves et al (2010) An introduction to Survival Analysis in Stata for the AFT model. From this I believe an AFT with a Weibull distribution to be the most appropriate for my data.

So, my questions are, is an AFT with a Weibull distribution suitable for recurrent events data such as mine? Many of the examples I have read have a more simple data structure.

Someone has recommended to me that a discrete-time event model might be more appropriate, however, upon reading about them I'm not sure whether this is the case due my time data being in days rather than years/months. Is this correct?

Also, a final question, all my covariates are categorical and I tested for association between them using Pearsons Chi2 and Cramers V. Some of my covariates have moderate associations, how would I address this in either a Cox PH model or a AFT model?

Here is the results of the AFT Weibull regression in Stata for reference/context. AFT model with Weibull distribution

Many thanks in advance for any advice/help!

  • 1
    $\begingroup$ A Weibull AFT model also assumes proportional-hazards (PH)--it's the only distribution family that is both AFT and PH--so if the PH assumption doesn't hold in Cox analyses a Weibull model probably isn't the best choice of an AFT family. $\endgroup$
    – EdM
    Commented Nov 25, 2021 at 15:25
  • 2
    $\begingroup$ Discrete models work in days; they just may not be the most computationally efficient approaches because of the large number of records per subject. Discrete time state transition models are very much easier to interpret than recurrent event analysis especially if you have other events getting in the way, e.g., a terminating event such as death. A lot of information about these models may be found at hbiostat.org/proj/covid19. One of the outputs of discrete time Markov processes is the mean time in a given state. $\endgroup$ Commented Nov 25, 2021 at 16:15

1 Answer 1


First, as Frank Harrell noted in a comment, the main drawback with discrete-time models for this type of data is computational efficiency. What you call the units (days, weeks, months, years...) isn't really important. Yes, you are likely to have a large number of discrete times for evaluation, but I don't think that will pose a problem for data of your scale if you want to go in that direction.

Second, as I noted in a comment, if your model fails to meet the proportional hazards (PH) assumption then a Weibull model also won't work well, because a Weibull model also assumes PH. If you are using an accelerated failure time (AFT) model because of a failure of PH in a Cox model, you need to use a different distribution family and check the fit of the model.

Third, I wonder if some of your problems are arising from the following treatment of your data:

the time resets when a person is given a new mobility device.*

That implicitly assumes that the time course and covariate associations following both the initial delivery and new deliveries are the same for any of the reasons for delivery that you cite. Does that really make sense, based on your understanding of the subject matter? Would a patient-specific frailty term, representing individual tendencies to need more deliveries, help? Might this situation be better handled with a multi-state model, perhaps taking into account the reason for each new delivery?

See this paper for alternate approaches to modeling recurrent events.

*It's not completely clear to me that this is actually how the software is handling your data, as I'm not familiar with Stata syntax. The references to tstart and tstop in your display suggest that this is being modeled as a counting process over time from the initial delivery rather than resetting time to 0 at each delivery. In any event, think carefully about the assumptions underlying the model you chose.


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.