paul-buerkner / brms

brms R package for Bayesian generalized multivariate non-linear multilevel models using Stan
https://paul-buerkner.github.io/brms/
GNU General Public License v2.0
1.27k stars 183 forks source link

Feature: Cure models #1452

Open yananlong opened 1 year ago

yananlong commented 1 year ago

Mixture cure models are used in survival analysis when not all subjects are expected to experience the event(s) under investigation. As reviewed in Amico and Van Keilegom (2018), there exist two broad classes of cure models: mixture cure models and promotion time/latent activation cure models. For the former, we assume that the overall (population) survival function is a mixture of event (uncured) and cured subjects: $ S(t|x,z) = [1-p(z)] + p(z) S_u(t|x), $ where the event survival function ($ S_u $) can be parametric (e.g. Weibull) or non-parametric (Cox PH).

An example of mixture cure models can be found here. I was only able to do log-normal and Weibull since log-logistic lccdf is not available in the stan math library, even though is more commonly used because the posterior has a closed form.

spinkney commented 1 year ago

Is there any reason you can't just write the log_logistic_lccdf function yourself? It is easily written in Stan as

  real log_logistic_lccdf(real x, real alpha, real beta) {
    if (alpha <= 0) {
      reject("alpha must be > 0!");
    }
    if (beta <= 0) {
      reject("beta must be > 0!");
    }
    if (x < 0) {
      reject("x >= 0!");
    }

    return -log1p(pow(x / alpha, beta));
  }