I am quite new to Survival Analysis and has only practiced with python package scikit-survival by its user guide.

I was actually confused by the output of cox ph regression as well as the ensemble machine learning models like random forest/Gradient Boosting etc. for survival analysis ad hoc. Since my mere knowledge on general ML models tells me that they mainly output probability of the classification, or real values of the regression, the form of which in survival analysis seems strange to me.

In my understanding, the output of models in survival analysis is the score of risk, which could be used to consist a ranking of the surviving time. If the true order of death, for any pair of two samples, is in accord with the ranking output by the model, then we would say the prediction is correct in this case.

However, is it possible for Cox-PH Model and other ensemble models to output the probability of an individual's death in the future, say 1 month or so?

Great thanks for any help, advice is warmly welcomed.

  • $\begingroup$ Minor terminology correction: It's not the probability of the classification; it's the probability of an event. $\endgroup$ Commented Feb 11, 2022 at 13:39

2 Answers 2


Yes, sure they can do that. For many statistical survival, the log-hazard of an event at time t as $\log h(t) = \log \lambda(t) + \text{linear terms}$, where $\lambda(t)$ (the "baseline hazard function" that applies when the linear terms add up to 0) is some function of time that is otherwise the same for all subjects. You can also have this different for different levels of categorical variables, which would be a stratified survival model.

The fit for the linear terms does - as you say - only give a relative ranking of subjects, but in combination with $\lambda (t)$, you also get absolute predictions.

When you fit a Cox model, it internally has a step-function that approximates $\lambda(t)$, while in parametric regression models such as exponential or Weibull survival models $\lambda(t)$ has a particular parametric form (e.g. for an exponential distribution it's just $\lambda(t) = \lambda_0$).

You get from $\lambda(t)$ to the survival function $S(t) := P(\text{survive until after time } t)$ as $$S(t) = \exp(-\int_0^t h(u) du)$$ see e.g. here.

For other machine learning models, it depends a bit on exactly what you did. E.g. one approach is to estimate a simple survival model in each node of a tree based model such as just a step function (as done e.g. in survival forest where something like a Kaplan Meier curve is estimated in each node), when you can basically average all the predicted curves to get a survival at time t prediction. With neural networks some people often output the parameters for some parametric survival model instead, which again let's you get a prediction of the survival function.


Survival analysis is a huge field, so it is difficult to describe it in just one sentence. But, I think, this scikit-link explains it quite well. In a nutshell: Survival analysis is indeed like regression but with the difference that for some covariates you only have a lower bound of the response instead of the real value (the data is censored).

And yes, the Cox-PH model and others provide you with information about e.g. the random variable survival time $S(t)$, which is the probability that the individual survives beyond time $t$.


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.