I am looking for some input regarding the interpretation of a survival analysis with the survfit()-function.

A bit about my data: I am interested in analyzing in R whether people with a specific level of a blood parameter have a higher risk for developing a specific disease. I have a closed cohort in that sense that a certain amount of people got included and are then followed-up until a certain date. The inclusion dates stretch over three years and therefore the baseline date differs. Therefore, I decided to take age as the timeline for survival. Furthermore, I had death as competing risk to the disease of interest.

The analysis: I used surfit() to analyze the survival with age at event as the time value and either censored, death or disease as event. Because of this competing risk, I used type = "mstate"in the Surv() part of the function.

survfit(formula = Surv(time = survival_years, event = event_indicator, type = "mstate") ~ cat, id = id)

The results: enter image description here Framed in orange are the cases and in green the deaths. I know wonder, why rmean is so small in cases and deaths and does not represent a mean age of event. Should I change something in my analysis or do I need to interpret this values differently? I also plotted a histogram of the age until event (called survival_years here):

enter image description here

There is no survival age below 40. So, how can the values from the survfit() function be so small?

A few weeks ago, I posted another question on how to conduct the survival analysis here. Based on the answers there I decided for this kind of survival analysis. Survival analysis vs Cumulative incidence vc Incidence rate for cohort with varying baseline dates


1 Answer 1


Two points.

First, if you are going to use age since birth as the time scale, you need to account for the inherent left truncation. If someone enters the study at age 70, then that individual provides no information about individuals who couldn't enter the study before age 70. The information about event times is thus left truncated. You can handle that with the counting-process data format also used for time-varying covariate values: Surv(startTime, stopTime, event), where startTime is age at study entry and stopTime is age at the event. In practice, you might need to specify some minimal startTime. See Sections 3.4 and 4.6 of Klein and Moeschberger.

Second, the restricted-mean survival times for your multi-state model represent durations within those states: "restricted mean time in state" according to your printout (emphasis added). So the values for state 1 and state 2 aren't on your age time scale, but on an age-difference scale.

  • $\begingroup$ Thank you very much for the answer. I now wrote the function with startTimeand stopTime. I still have troubles with the interpretation of the restricted-mean survival time. The rmean for diseases is now between 0.4 and 0.6 years while the average for the difference between age at inclusion and age at event for this group is 6 years. $\endgroup$
    – Canicash
    Dec 29, 2023 at 9:19
  • 1
    $\begingroup$ @Canicash first, you can't readily compare means of uncensored observations against model predictions, as the model takes censoring into account. Second, if I understand your model correctly, the restricted mean survival in state1 might represent an estimate for the time between the "disease" event and death, not between age at inclusion and the "disease" event. Restricted mean survival in state2 might represent an estimate of time between death and 86.46 years; the model doesn't know that state2 is a final absorbing state. See ncbi.nlm.nih.gov/pmc/articles/PMC6133743 . $\endgroup$
    – EdM
    Dec 29, 2023 at 16:09
  • 1
    $\begingroup$ @Canicash I find plots of probability of state versus time are more generally useful in this situation than restricted mean survival. Your situation is similar to that in Section 2.2 of the R survival competing-risks vignette; see the plot at the end of that section for an example. I don't often do multi-state models, so refer to that vignette for guidance and the correct interpretation of model coefficients and other results. $\endgroup$
    – EdM
    Dec 29, 2023 at 16:16

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.