Tutorials › Competing Risks and Multi-State Models › Fitting Mixture Cure Models with flexsurvcure

Software and Applied Examples · Tutorial 682 of 699

Fitting Mixture Cure Models with flexsurvcure

Fit and interpret a mixture cure model with flexsurvcure, including separate incidence and latency covariates and covariate-specific survival predictions.

Intermediate 12 min read

What You'll Learn

  • Define the cure fraction and the susceptible group in a mixture cure model.
  • Specify incidence covariates and latency covariates in a flexsurvcure model.
  • Interpret a logistic incidence model and a Weibull latency model.
  • Calculate a covariate-specific cure fraction from a fitted incidence linear predictor.
  • Combine the cure fraction and susceptible survival to obtain marginal survival predictions.
  • Check whether follow-up and model assumptions support a cure-model interpretation.

Why Fit a Mixture Cure Model?

In some settings, a substantial proportion of people may never experience the event of interest. A conventional survival model describes how event times vary across the population, but does not represent a distinct group with no event during the process being studied. A mixture cure model makes that distinction: it models both the probability of belonging to a “cured” or event-free group and the event-time distribution among those susceptible to the event.

The word “cure” is a model label, not necessarily a clinical conclusion. It may be more defensible to describe the first group as long-term event-free, especially when follow-up cannot establish that an individual will never experience the event. The model is useful only when the data and scientific context make this mixture interpretation plausible.

Definition: Let \(p(x)\) be the probability that an individual with covariates \(x\) belongs to the cure group. Let \(S_u(t\mid z)\) be the event-free survival function among susceptible individuals, with latency covariates \(z\). The population survival function is $$ S(t\mid x,z)=p(x)+\{1-p(x)\}S_u(t\mid z). $$ The cure fraction is \(p(x)\). The corresponding population event probability by time \(t\) is \(1-S(t\mid x,z)=\{1-p(x)\}\{1-S_u(t\mid z)\}\).

Model Components and Assumptions

The incidence component models membership in the cure group; the latency component models event time conditional on susceptibility. These components answer different questions. A covariate may be associated with the chance of being in the cure group, the event-time distribution among susceptible individuals, or both. The model does not require those effects to be the same.

For a logistic incidence model, \(p(x)=\operatorname{expit}(x^\mathsf{T}\beta)=1/\{1+\exp(-x^\mathsf{T}\beta)\}\). Thus an incidence coefficient is a change in the log odds of belonging to the cure group, conditional on the other incidence covariates. It is not a hazard ratio. A latency model uses parameters of a survival distribution for susceptible individuals; their coefficient interpretation depends on the distribution and parameterization.

In a Weibull latency model with shape \(k>0\) and scale \(\lambda(z)>0\), the susceptible survival function is \(S_u(t\mid z)=\exp[-\{t/\lambda(z)\}^{k}]\). One common regression specification uses \(\log\{\lambda(z)\}=z^\mathsf{T}\gamma\). A larger scale means a longer event-time distribution, all else equal. The Weibull shape controls how the susceptible hazard changes over time.

The usual right-censored likelihood assumes that censoring is independent of event time, conditional on the modeled covariates. It also assumes that the chosen latency distribution is adequate for susceptible individuals and that the incidence model is appropriately specified. Most importantly, the data need enough follow-up to distinguish a persistent event-free fraction from a susceptible group whose events simply occur late. A tail of the observed survival curve that has not levelled off is not, by itself, evidence of a cure fraction.

Fitting With flexsurvcure

The R package flexsurvcure fits parametric mixture and non-mixture cure models. In the call below, the formula specifies incidence covariates, while anc specifies a covariate model for the Weibull scale parameter in the latency distribution. The example deliberately lets treatment appear in both components, while age appears only in the incidence component.

Assume a hypothetical data frame d has one record per person, follow-up time time in months, and event indicator status coded 1 for the event and 0 for right censoring. Let age10 be age in decades above age 50, so that its value is 0 at age 50 and 1 at age 60.

R call: fit <- flexsurvcure(Surv(time, status) ~ treatment + age10, data = d, dist = "weibull", mixture = TRUE, link = "logistic", anc = list(scale = ~ treatment))

Here the logistic link models cure probability, and the Weibull distribution models latency among susceptible individuals. The scale model allows treatment to affect the susceptible event-time distribution; the shape is left common across covariate groups. Inspect the fitted coefficient table and convergence information before interpreting estimates. For survival predictions at specified times and covariate patterns, use the fitted model’s survival summary with those times and a newdata data frame, for example summary(fit, newdata = nd, t = c(12, 24), type = "survival"). Predictions should be checked against the data range: a numerical output at a distant time does not mean that the tail is empirically well supported.

Worked Example: Specifying Separate Incidence and Latency Effects

Suppose a hypothetical study follows 240 patients, with 132 observed events and 108 right-censored follow-up times. Treatment is coded 0 or 1. The scientific question is whether treatment relates both to the probability of long-term event freedom and to event timing among susceptible patients. The proposed incidence model includes treatment and age; the latency scale model includes treatment only.

The R call is the one shown above. The incidence formula treatment + age10 specifies which covariates enter the logistic cure model. The anc argument specifies that treatment also enters the Weibull scale model. This is a modeling decision, not something justified merely because a variable is available. The hypothetical study must have adequate follow-up and a plausible long-term event-free fraction; independent censoring conditional on modeled covariates must also be reasonable.

Imagine the fitted incidence estimates are \(\hat\beta_0=-1.099\), \(\hat\beta_{\text{treatment}}=0.693\), and \(\hat\beta_{\text{age10}}=-0.200\). For a 50-year-old untreated patient, \(\hat\eta=-1.099\), giving $$ \hat p=\frac{1}{1+\exp(1.099)}=0.250. $$ For a 60-year-old treated patient, \(\hat\eta=-1.099+0.693-0.200=-0.606\), and $$ \hat p=\frac{1}{1+\exp(0.606)}=0.353. $$ These are estimated cure-group proportions under the fitted model, not observed proportions and not individual certainties. The positive treatment coefficient corresponds to higher modeled cure odds at a fixed age; the age coefficient corresponds to lower cure odds per 10-year increase at fixed treatment.

Suppose the fitted latency scale for the treated group is 16 months and the common Weibull shape is 1.3. Those estimates describe susceptible patients only. They do not mean the population median event time is 16 months: scale and median are different quantities, and the population survival curve also includes the cure fraction.

From Fitted Components to Survival Predictions

A prediction for the whole population must combine both components. First estimate the cure fraction for a specified incidence covariate pattern. Then evaluate the susceptible survival distribution at the desired time and latency covariates. Finally, use the mixture formula. Omitting either step gives a different estimand.

Worked Example: Calculating Survival at 12 Months

Continue with the hypothetical fitted values for a 60-year-old treated patient: cure fraction \(\hat p=0.353\), Weibull scale \(\hat\lambda=16\) months, and shape \(\hat k=1.3\). The susceptible survival probability at 12 months is $$ \hat S_u(12)=\exp\left[-\left(\frac{12}{16}\right)^{1.3}\right]. $$

The ratio is \(12/16=0.750\), and \(0.750^{1.3}\approx0.688\), so \(\hat S_u(12)=\exp(-0.688)\approx0.503\). Combining this with the cure fraction gives $$ \hat S(12)=0.353+(1-0.353)(0.503) =0.353+(0.647)(0.503) \approx0.678. $$

The model therefore predicts that about 67.8% of patients with this covariate pattern remain event-free at 12 months. The estimated event probability by 12 months is \(1-0.678=0.322\), or about 32.2%. These are model-based population predictions, not probabilities conditional on being susceptible. Among susceptible patients alone, the estimated 12-month event probability is \(1-0.503=0.497\).

Worked Example: Understanding the Long-Term Plateau

Use the same hypothetical fit and covariate pattern. At 30 months, the susceptible survival estimate is $$ \hat S_u(30)=\exp\left[-\left(\frac{30}{16}\right)^{1.3}\right] \approx \exp(-2.26)\approx0.104. $$ Thus the population survival estimate is $$ \hat S(30)=0.353+(0.647)(0.104)\approx0.420. $$

As \(t\) increases without bound, the Weibull susceptible survival tends to zero, so the model’s population survival tends to the cure fraction: \(\lim_{t\to\infty}\hat S(t)=\hat p=0.353\). The 30-month prediction is still above that plateau because some susceptible patients are predicted to remain event-free at 30 months. This limiting interpretation depends on the model assumption that the cure group never experiences the event and on the latency survival tending to zero.

Likelihood Justification and Practical Checks

The mixture form follows directly from conditioning on latent group membership. A susceptible individual contributes an event-time density \(f_u(t)\) if the event is observed. A cured individual cannot contribute an event. For a right-censored observation at time \(t\), either the person belongs to the cure group or is susceptible and has survived to \(t\). Therefore, for event indicator \(\delta\), the likelihood contribution is $$ \{(1-p)f_u(t)\}^{\delta}\{p+(1-p)S_u(t)\}^{1-\delta}. $$

This expression shows why censored observations do not reveal cure status: either latent group could produce an event-free observation through the censoring time. It also shows why events inform the susceptible distribution and cannot be assigned to the cure group under the model. Long follow-up and sufficient events are important because the model must estimate both incidence and latency from overlapping evidence.

Check that the event indicator has the intended coding, that times use consistent units, and that covariate patterns are represented well enough to estimate both components. Examine fitted survival curves against nonparametric summaries over the observed follow-up range, and inspect whether the fitted tail implies a plateau unsupported by the data. Look for unstable estimates, very large standard errors, or estimates sensitive to the latency distribution. These may indicate weak separation of cure and latency, sparse covariate patterns, or a poorly fitting parametric tail. A clean optimizer convergence message does not establish that the cure assumption or distribution is correct.

Mixture cure models differ from ordinary parametric survival models because they allow nonzero limiting survival. They differ from a model that treats every long-term survivor as censored because cure status is latent and estimated jointly with susceptible event times. They also differ from cause-specific competing-risk analyses: a cure model concerns a single event process with a modeled event-free fraction, not the allocation of first events among competing causes. Do not use this model to replace a competing-risk estimand when other event types preclude the event of interest.

The principal limitation is tail identification. If follow-up is short, a low event rate late in follow-up may reflect a small susceptible hazard rather than a genuine cure fraction. Results also depend on the chosen parametric latency distribution, the incidence link, and the covariate specifications. Report uncertainty for cure fractions and survival predictions, and avoid extrapolating far beyond observed follow-up without strong substantive justification.

Common Mistakes

  • Calling every censored person cured. Censoring means event status is unknown after the last observed time. The likelihood allows either latent group to generate a censored observation.
  • Interpreting an incidence coefficient as a hazard ratio. With a logistic link it describes cure-group log odds, not the event hazard among susceptible patients.
  • Reporting susceptible survival as population survival. The population prediction is \(p+(1-p)S_u(t)\), not \(S_u(t)\) alone.
  • Assuming a fitted plateau proves cure. The plateau is an implication of the model. Limited follow-up cannot, on its own, distinguish cure from very late events.
Key takeaway: A mixture cure fit has two distinct jobs: estimate the cure fraction from the incidence model and estimate event timing among susceptible individuals from the latency model. Population survival predictions must combine both components and be interpreted with the follow-up and tail assumptions in view.

Check Your Understanding

Answer each question, then compare with the solutions.

  1. If \(\hat p=0.20\) and \(\hat S_u(10)=0.50\), what is the estimated population survival at time 10?
  2. In a logistic incidence model, what does a positive treatment coefficient mean when the modeled outcome is membership in the cure group?
  3. Why does a right-censored observation not establish that the person belongs to the cure group?
  4. A fitted mixture model predicts \(S_u(t)\to0\). What does the population survival approach as time tends to infinity?

Solutions. (1) \(\hat S(10)=0.20+(0.80)(0.50)=0.60\), so estimated population survival is 60%. (2) At fixed values of the other incidence covariates, treatment is associated with higher odds of belonging to the modeled cure group; this is not a hazard-ratio interpretation. (3) Either a cured individual or a susceptible individual who has not yet experienced the event can be censored at that time. (4) It approaches the cure fraction, because \(p+(1-p)S_u(t)\to p\) when \(S_u(t)\to0\).

Clinical Biostats