1
$\begingroup$

I have a couple of questions regarding the best unbiased approaches regarding analyzing time-to-event/age-of-onset for left-truncated with right-censoring data. To my understanding, when one is interested in examining the association (in the context of Cox PH regression) between an exposure and a time-to-event outcome, the nature of exposure determines how to formulate the outcome. As an example, suppose I have a cohort of individuals from general population who enrolled in a study between a time span (here, between 2000 to 2004) and they were followed up untill 2020. This dataset is left-truncated. For instance, subject 5, has a diagnosis before the enrollment. The overall study for 5 hypothetical participants looks like this: enter image description here

Now I am facing a couple of questions (especially how to treat individuals like subject #5) with some possible solutions (thanks to @EdM answers on a couple of posts) that I'm unsure about:

  1. If I am interested in examining the association between a genetic variant and age-of-onset (AOO) for a particular outcome, since the exposure of interest in this case (genetic variant) exists at birth, I would use date of diagnosis as time-scale. In this scenario, is it ok to include individual #5, and fit the model?
# DOB: date of birth
# DOE: date of event

coxph(Surv(DOB, DOE, event, type="counting") ~ genetic_variant)

If I were to adjust for a biomarker measured at baseline (date of enrollment), should I exclude individual #5?

  1. But if for instance, one is interested in following up individuals after a certain diagnosis to death, individuals can be aligned to age-of-diagnosis as time=0, as shown in Figure 1 of Lamarca, et al. or in 5.7 of Applied Survival Analysis Using R. In this case, we define W, so that if someone is diagnosed before enrollment (W > 0: time before enrollment) and if diagnosed after enrollment (W = 0). Let, Y be the time from diagnosis to death, then we fit this model:

    coxph(Surv(W, Y+W, status, type="counting") ~ exposure)

Appreciate your insights in advance!

$\endgroup$

1 Answer 1

2
$\begingroup$

Both scenarios are related to left truncation: individuals in a study who provide no information about events that occur prior to some elapsed time since time = 0 as defined for the study.

For scenario 1, with date of birth as time = 0, you need to account for the inherent left truncation due to enrollment after birth. An individual who enrolls at a certain age provides no information about individuals who never reached that age: that's left truncation at that age. In the counting-process formulation, the first time value represents a left truncation time. Instead of DOB you should use age at enrollment for the first time value. In practice that can cause problems if there are just a few individuals who enroll at early ages. Sometimes you need to model survival conditional upon having already reached some age.

You also need to consider whether you should be using a competing-risks model with death as the competing risk, as the event seems to be non-fatal given the fact that individual #5 managed to enroll after the event.

How to handle individual #5 depends on whether the covariate can vary over time and whether there can be multiple events per individual.

First, assume that there is at most 1 event possible per individual. If the covariate value is constant in time, then it seems that you could include the value measured on individual #5 at enrollment as the value present at the event time. If there is at most 1 event per individual, however, then individual #5 should not be included at times after the event time: that individual is no longer at risk for an event, and the analysis should only include those who are at risk.

If the covariate value can vary over time, then you need to extend your model to allow for that. For example, set up multiple data rows per individual, one row per time interval with a fixed set of covariate values for that individual. See the R time dependence vignette. An alternative is to build a joint model of covariate values and events over time.

If there can be multiple events per individual, then you need a more complex model and you need to decide how to define time = 0 for events after the first.

Scenario 2 is for post-diagnosis survival (time = 0 is date of diagnosis) when someone enrolls after diagnosis. An individual who enrolls at time W after diagnosis provides no information about those who might have had an event prior to W time after diagnosis, and needs to be included as having a left-truncated start time. The event or right-censoring time, however, still needs to be Y for all individuals, if Y is "the time from diagnosis to death." You have to be very careful to be consistent in how you define and apply time = 0 in survival analysis.

In response to comments

What matters for left truncation is the time at which the individual begins to provide information. The left-truncation time is the time (since the reference that you defined for time = 0) at which the individual begins to contribute information about the event time. Individual #5 does provide information at the corresponding event time, so in a time-since-birth analysis you might use age at that event in your model, even though formal enrollment didn't happen until later. If there is at most 1 event per individual then data from that individual should not be included at later ages for survival analysis, as the individual is no longer at risk for the event.

In your particular situation you don't have BMI data, which you want to include as a covariate, at the event time for individual #5. You either have to remove that individual or find a realistic way to use multiple imputation to handle the missing data.

More generally for your specific study, you don't have continuous BMI measurements, only measurements at specified times. You might need to use a joint model of the covariate over time together with the time to event. The CRAN Survival Task View has links to several implementations, including the JM package authored by a contributor to this site.

You should consult a local statistical expert before you proceed. Some extra time in such consultation now can save you enormous headaches when you try to publish your results in complicated situations like this with observational data. In the situation you describe, I'm particularly worried about the possibility of selection bias in terms of which individuals choose to enroll in your study, given that some enroll already having had the event while others haven't yet had it.

$\endgroup$
7
  • $\begingroup$ Thanks for the detailed answer! Now I understand the problem with scenario 1 (enrollment instead of DOB). However, a covariate such as BMI is time-dependent and values are measured only at baseline. I assume individual 5 in this case (adjusting for BMI) is problematic. However, maybe the bigger issue is the lack of BMI measurements over time. For scenario 2, Y is the time from diagnosis to death (both W and Y in the end are age), but I'm not sure if I understood your point: You have to be very careful to be consistent in how you define and apply time = 0 in survival analysis. Thanks! $\endgroup$
    – Ivea
    Commented Jun 7 at 16:14
  • $\begingroup$ I assume by age at enrollment, you mean some formulation similar to scenario 2 (?), with W=0 for subject 5 (with a non-fatal diagnosis). because age-of-diagnosis for all subjects (even before enrollment) is known (maybe not a classical left-truncation). Am I correct? $\endgroup$
    – Ivea
    Commented Jun 7 at 16:24
  • $\begingroup$ @Ivea for the second comment: no, that's not correct. Represent all times in the Surv() object relative to your choice of the time = 0 time origin. If that is date of birth, as in Scenario 1, then the left truncation time for each individual should be the age since birth at which you have the first information. The age-of-diagnosis is not known for the entire population, just for the sample that you happen to have enrolled. Each member of your sample provides no information about members of the population that might have had earlier event times. $\endgroup$
    – EdM
    Commented Jun 7 at 16:47
  • 1
    $\begingroup$ @Ivea for the first comment: you need to decide whether you are modeling survival since birth, survival since diagnosis, or survival since study enrollment. Any of those can be appropriate, depending on the goals of your study. Once you have made that decision, however, that is time = 0 for your study and all time values in the Surv() object need to be relative to that time origin. For survival post diagnosis, if someone is diagnosed at age 55 , is enrolled at 57 and has the event at 60, subtract 55 from the other values and specify Surv(2,5,event=1) $\endgroup$
    – EdM
    Commented Jun 7 at 16:58
  • 1
    $\begingroup$ @Ivea see the addition I made to the answer in response to your comments. It's OK if you have information prior to date of enrollment. The issue is the time at which an individual begins to provide information about the time to event after your reference for time = 0. If date of birth is time = 0, then individual #5 provides information specifically at but not before the age at the event. That's tempered a bit, however, by my fears about selection bias in your enrolled participants. $\endgroup$
    – EdM
    Commented Jun 7 at 17:45

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.