I understand that the Kaplan-Meier (KM) estimate is defined as $$\hat{S}(t) = \prod_{t_i\leq t}\left[1-\frac{d_i}{n_i}\right]$$

where $d_i$ is the number of observations that have experienced the event and $n_i$ is the total number of observations.

As an example of where the KM is not meaningful:

In the channing dataset, we want to see how survival rates differ between gender. It is left-truncated because not everyone enters the study cohort at the same time, and in this particular dataset, some people can die before others enter the cohort.

library(KMsurv) #for survival dataset
library(survminer) #for plot


adj_fit <- survfit(Surv(ageentry, age, death) ~ gender, data = channing)
survminer::ggsurvplot(adj_fit, data = channing, risk.table = T)

enter image description here

I say it's not meaningful because the KM estimate drops to 0 even though the majority of the males in this study clearly survive beyond 781 months

#looking at the first 3 people to enter the study
#you can verify for yourself that the KM estimate does indeed drop to 0 by the third person

channing %>%
  arrange(age) %>%
  filter(gender == 1) %>%

 obs death ageentry age time gender
1 451     1      751 777   26      1
2 455     1      759 781   22      1
3 391     0      817 843   26      1


This is an extreme dataset where it just so happened that everyone died before the first person who was censored, so the survival probability depleted to 0. I know there is a conditional KM estimator, but I understand it's estimating a different quantity. I want to know in what cases can I use the KM estimator for LTRC data and still be able to say a meaningful interpretation.


One more meaningful estimate is the conditional KM estimator function, defined as $$\hat{S}(t)_a = \prod_{t_i\leq t}\left[1-\frac{d_i}{n_i}\right], t \geq a$$

which essentially defines the risk set differently by choosing when you want to start "recording" the risk set.

#let cond_age = 68 yrs

adj_fit <- survfit(Surv(ageentry, age, death, type = "counting") ~ gender, data = channing %>% filter(age > ageentry, age >= cond_age*12))


enter image description here

Here, the survival estimator perhaps captures more accurately what we expected of the survival rates of the larger cohort once we conditioned on people surviving until a certain age (e.g. 68 yrs). Mathematically, under the hood, I think the risk set was big enough such that $\hat{S_t}$ did not deplete to 0 so quickly.

  • $\begingroup$ Please edit your question to say more about what you are trying to model. A more typical survival model would examine the time between study entry and event time, a time difference that seems to be the time value in your data, with the survival outcome then writtenSurv(time, event). The Surv(time1,time2,event) outcome format can be used for interval-censored data, but then you need to specify type="interval" and use an event code that specifies the type of censoring. Perhaps there is something obvious that I am missing early on a Sunday morning. $\endgroup$
    – EdM
    Jan 24, 2021 at 15:33
  • $\begingroup$ I know that in the documentation, it says that specifying time1 and time2 is for interval censoring. For left-truncated, right censored data, however, I have also seen that Surv(time1, time2, event) is an acceptable way to model this data. (see stats.stackexchange.com/questions/106271/…) $\endgroup$
    – latlio
    Jan 24, 2021 at 15:57
  • $\begingroup$ What do you make of this link (biostat.umn.edu/~weip/course/7450/example/ex4.3b.r), it says to "use type='counting' to indicate that Age1 is for left truncation" where Age1 is just ageentry renamed. This biostats course taught at UMN seems to use the Surv object for truncation as well. Also I know that the channing dataset is right-censored, left-truncated (Klein 2003), so would using interval censoring be appropriate here? $\endgroup$
    – latlio
    Jan 24, 2021 at 16:20
  • $\begingroup$ From page 124 in Klein's textbook, Survival Analysis Techniques for Censored and Truncated Data, in section 4.6, "Estimators of the Survival Function for Left-Truncated and Right-Censored Data", he explains why the survival probability drops to 0 in the channing dataset so quickly and notes that the Kaplan-Meier estimator "has little meaning [in this particular dataset] since the majority of the males in the study clearly survive beyond 781 months" $\endgroup$
    – latlio
    Jan 24, 2021 at 16:22
  • $\begingroup$ Also, see (math.usu.edu/jrstevens/biostat/projects2013/…) where they estimate the survival function for the left-truncated, right censored psych dataset using Surv(age, age+time) which is equivalent to Surv(ageentry, age) in the channing dataset (note: age = ageentry + time) $\endgroup$
    – latlio
    Jan 24, 2021 at 16:29

1 Answer 1


A problem with product-limit survival estimates on left-truncated data is that the entire product-limit calculation can start with a very small sample. Yet the variance in a product-limit estimate depends on the number of events and number at risk at the individual event times. The high uncertainty in the product-limit estimates at those early times with few at risk necessarily propagates through to later event times, as you start from the earliest event times and move out to later ones.

So even if you don't have an extreme case like this, there will be a very large error in the product-limit estimate in a scenario where there are few cases having the earliest observation times. When you say:

I want to know in what cases can I use the KM estimator for LTRC data and still be able to say a meaningful interpretation.

recognize that "meaningful interpretation" involves both the point estimate and its associated error, and in this scenario the associated error will tend to be large.

The conditional product-limit estimate that you show in the question is one way of dealing with that problem. Klein and Moeschberger describe another approach in Practical Note 2 on page 126, published by Lai and Ying in 1991: ignore deaths at times when the risk set is small. They say that "this estimator is asymptotically equivalent to the usual product limit estimator," and thus might provide an unconditional product-limit estimate that is more reliable.

That said, you have to think carefully about which population is being modeled with left censoring. Left censoring sometimes is central to the analysis. Therneau and Grambsch on page 75 describe a situation in which survival time needed to be estimated from date of original diagnosis of Parkinson's Disease, but data were only available on patients who had presented to Mayo Clinic after that time. Each patient's entry time was properly left censored, at the time after diagnosis when the patient came to Mayo, "since the patient was not at risk for an observable death" prior to that time. The population and time of interest was clearly time to death after diagnosis, for a population diagnosed with Parkinson's Disease.

With the channing data, however, the population of interest is not so clear. For example, I have lost many male friends and relatives who died at ages less than the youngest male age-at-entry of 61 years in the channing data. If you are trying to model age at death, you have completely truncated and have no information on all those who die before they are old enough to enter a retirement home. So just what is the population whose times-at-death you are modeling in those data?

  • $\begingroup$ Ahh ok I see, I think that clarifies things for me. So if the population whose times-at-death I wanted to model was say the retirement home population. Then in that case my research question would not even consider those people who never made it to a retirement home, and thus my dataset is no longer left-truncated since we're conditioning on the people making it into a retirement home in the first place. Is that the right way to think about it? $\endgroup$
    – latlio
    Jan 24, 2021 at 19:50
  • 1
    $\begingroup$ @latlio thanks for providing the opportunity for me to review left truncation. I find it least confusing to specify censoring and truncation with respect to specific variables rather than the whole dataset. A distinction is whether your population of interest is (1) those old enough to have entered a retirement home (that's my interpretation of the channing left-truncation analysis), or (2) just those that have actually entered a retirement home. Consider the Mayo Clinic example: do you want to model (1) all those with Parkinson's, or just (2) those who later came to Mayo? $\endgroup$
    – EdM
    Jan 24, 2021 at 20:12

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.