I'm dealing with survival data which comes from hospital records. All the patients were diagnosed with cancer. During their stay at the hospital, patients are enrolled in treatment protocols (to receive chemotherapy drugs/regimens). A patient may stop his protocol early for several reasons: progression (the size of the tumors increased or a new tumor appeared), complications or death. It is quite common that patients withdraw from their treatment protocols because clinicians observed a significant progression of their cancer and start a different treatment protocol days/weeks after. The figure below illustrates the survival data for a few patients. enter image description here

Using this data, I want to predict Progression-Free Survival (PFS), which is defined as the time from study entry (the date of the 1st treatment protocol) to the event of interest: progression or death.

How shall I deal with such data?

Since I'm quite new to survival analysis, I was going to use the coxph function in R but first, I want to be sure I understand what's going on and have the right method.

Here are my thoughts so far:

  1. The entry time is different for each individual (the data does not come from a Randomized Clinical Trial and, as a result, there is no obvious reference time). This is a case of delayed entry (left truncation). This answer explains what is the right syntax for the coxph function (and how the dataset should be converted to a count process first by using the survSplit function from the survival package).

  2. About censoring: some individuals (such as individual p4) have not progressed or died during the observation period. This is a case of right censoring. Intuitively, I would have said that we only have right censoring. However, this paper which deals with prediction of PFS in a similar setting suggests that, when individuals have progressed (or died), the data is interval-censored (the event of interest is assumed to occur between the last visit without progression and the first visit showing disease progression). Shall I follow the suggestion of the authors and use methods for interval-censored data?

  3. Many individuals (such as individuals p1 or p4) have multiple events of "progression". How shall I account for these multiple events? Following this answer, I would have a cluster (or frailty) term to account for repeated events per individuals and I could also have a strata(cancer_type) term to allow for different baseline functions per cancer types (there are two different cancer types in the figure above). In this article, the authors suggest different methods to deal with recurrent events (extensions of the classical cox PH model such as the "Andersen Gill model" or the "Prentice, William and Petersen model"). Is this the right way to go?

  • $\begingroup$ Since you seem to be interested in predicting survival time, I suggest a discrete survival model is easier $\endgroup$
    – seanv507
    Jan 3, 2021 at 20:31

1 Answer 1


Item 1. Although the participants might enter the study on different calendar dates, if your interest is in survival from the date of the 1st treatment protocol to an event or events of interest then you simply set time = 0 for each individual to the date of the 1st treatment protocol and express all subsequent times as differences from that date. That's not "delayed entry"; different calendar dates of entry happen in randomized clinical trials, too. The censoring/truncation terminology can be very confusing. A truly "truncated" case would typically be someone or a set of values that you can't see at all in the study data.

Item 2. Progression without death typically is detected at clinical follow-up visits. In that case you don't really know when progression occurred between the prior disease-free visit and the visit at which progression was found. As you only have upper and lower bounds for the progression-free survival (PFS), the PFS values technically are interval-censored and would best be treated as such. In practice, however, PFS data are often just treated as having progression at the time of the visit at which it was found. You will have to judge whether that will make a substantial difference for the purposes of your study. Note that the time to clinical detection of progression doesn't really represent what's going on in the body anyway; the tumor has been there throughout. The PFS just represents the time that it got to a size or ended up in a place where it could finally be detected.

Item 3. For this you should enlist a statistician skilled in analysis of such data. If your time reference is the date of the 1st treatment protocol, then you have a recurrent-event situation with time-dependent covariates (treatments). Also, note that a survival model uses the instantaneous values of covariates to model the event hazard. So you will have to devise such covariates to take into account any prior treatments received but not ongoing. You also might need to define different event types. Time-dependent covariates, recurrent events, and different event types mean you have to break up the data for each patient into separate (Start, Stop, Event) pieces for each treatment and event, with a categorical Event value instead of a simple 0/1.

For this last item, I see the issue less as how technically to do the analysis (which is pretty well covered for example in the survival vignette) and more just what type of clinically useful information can be obtained with such heterogeneous treatment patterns. That's particularly true if you are trying to combine information from different types of cancer, probably with different standard treatments. Getting clinically useful information out of the data will probably require close collaboration between an experienced statistician and the clinicians involved in the project.

  • $\begingroup$ Thank you for the answer! It's even better than I expected :-) There is one thing I do not understand. You said: "(start, stop, event) pieces for each treatment and event, with a categorical event value instead of a simple 0/1". In my case, the event of interest (PFS) is "progression or death". Therefore, the way I see it, there is a single event (which may be repeated for some individuals), with time-varying covariates (such as treatment). What am I missing? What did you mean by "categorical event"? $\endgroup$
    – Pouteri
    Jan 4, 2021 at 11:01
  • $\begingroup$ @Pouteri if you want to treat all progression events the same, regardless of how many there have already been, and you want to treat death the same as simple progression, then you can continue with the binary event/censored distinction. That might not, however, make the most sense from a clinical perspective. If you want to distinguish progression events in some way, or distinguish simple progression from death, you need to define different event types. The survival vignette explains how to do that. $\endgroup$
    – EdM
    Jan 4, 2021 at 14:18
  • $\begingroup$ That's clear! Thanks :-) Last question: If the event of interest is death, how to deal with the "gaps" between the different treatments? As I understand it, the (tstart, tstop, event) intervals must be contiguous. However, as shown in the figure of my post, the observation intervals are not contiguous. $\endgroup$
    – Pouteri
    Jan 6, 2021 at 16:32
  • $\begingroup$ @Pouteri presumably you still have information about those patients during the gaps. If there really is no therapy provided during those gaps, then you could just have therapy=="None" as a therapy category to cover those times. But this entire situation with multiple therapies, gaps between therapy times, etc needs some careful collaboration between clinicians and a statistician highly experienced with such data. Your should try to make sure that communication is clear and open among everyone with respect to what is desired and what is possible to get as interpretable results. $\endgroup$
    – EdM
    Jan 6, 2021 at 17:46

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.