It seems that survival models are used mostly to describe (not predict) the change in survival probability over time for all cases or each class (e.g. men vs. women).

What I'm interested in, however, is the expected time-to-event for individual cases. In other words, I want to know how long one unique user is likely to survive instead of a group of people such as men in their 30s.

Is this achievable with survival analysis? If so, could you name any Python packages having such function?

  • $\begingroup$ I'm wondering the same thing.. So far I have found one paper that came up with a model (multi-task logistic regression) that predicts individual survival curves (learning patient-specific cancer survival distributions as a sequences of dependent regressors). Is there any more progress already? $\endgroup$ – Lise Aug 28 '17 at 14:42
  • $\begingroup$ I think your question is confused. All statistics is about groups not individuals. However given enough data you can make the group as specific as you like by adding more dependent variables. Almost all regression models (including survival models) support continuous (age) and discrete (eg sex) dependent variables $\endgroup$ – seanv507 Aug 28 '17 at 15:06

There isn't anything unique about survival analysis that prevents individual prediction. Just like other regression techniques, you can make individual predictions. In fact, survival analysis often gives you something better: the full distribution of the duration! Let me explain.

Linear regression gives you an estimate for $E[Y_i|x_i]$, which is a summary statistic for the distribution of the random variable $Y_i | x_i$. If you did have the distribution of $Y_i | x_i$, you could compute the expected value, but also other quantities like the median, or some other business-influenced summary statistic. But alas, linear regression only gives you the expected value.

Survival regression, on the other hand, focuses on estimating the survival function (what you call survival probability over time). The predicted survival function is an estimate for $P(Y_i > t | x_i)$, which has the same information as the distribution of $Y_i | x_i$. Hence we can choose the summary statistic, like $E[Y_i | x_i]$, or the median, or some percentile, etc.

You mention,

expected time-to-event for individual

so it sounds like you want the expected value. Either you have to compute this from the survival function, but often the software does this for you. In Python, two packages that can do this are lifelines and scikit-survival.

  • $\begingroup$ very neat explanation. $\endgroup$ – Pankaj Joshi Mar 26 '20 at 15:05

As far as I know, individual prediction is a whole other type of analysis. You can't just simply predict for an individual, as you have to take into account all the different predictive determinants/characteristics of that individual case. So you'll have to construct a risk model for individualized prediction (which you'll have to not only derive from a cohort, but also preferably validate to see how well it predicts). So this is not survival analysis and also takes quite a lot of time to learn (I say this from experience unfortunately).

Disclaimer: I'm relatively new to individual prediction and just starting to learn, but my department does a lot of individualized prediction. So if there is someone who is more knowledgeable in this subject, feel free to correct me if my assumptions are wrong.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.