Skip to contents

Two cure formulations

The package implements two cure formulations on the Exponentiated Danish kernel:

  • Mixture cure splits the population into a susceptible fraction pi(Z) modelled by logistic regression on the incidence covariates, and a cured fraction 1 - pi(Z).
  • Promotion-time cure derives the cure fraction from a latent Poisson process of clonogenic cells with intensity theta(Z) = exp(Z' gamma); the cure fraction is exp(-theta(Z)).

Both are fitted via fit_bd_cure().

Quick example

Both fits below use simulated data with a known cure structure.

library(BetaDanish)
set.seed(2026)
n <- 250
z <- stats::rbinom(n, 1, 0.5)
pi_susc <- stats::plogis(0.3 + 0.7 * z)
cured   <- stats::rbinom(n, 1, 1 - pi_susc) == 1
T_true  <- ifelse(cured, Inf,
                  rbetadanish(n, a = 1, b = 2, c = 1.5, k = 0.4))
C   <- stats::rexp(n, 0.04)
time   <- pmin(T_true, C)
status <- ifelse(T_true <= C, 1, 0)
dat <- data.frame(time = time, status = status, z = z)
cat("Sample size:", n, " Censoring rate:", round(mean(status == 0), 2), "\n")
#> Sample size: 250  Censoring rate: 0.45

Mixture cure model

fit_mix <- fit_bd_cure(
  formula_aft  = survival::Surv(time, status) ~ 1,
  formula_cure = ~ z,
  data         = dat,
  type         = "mixture",
  n_starts     = 3
)
summary(fit_mix)
#> 
#> Call:
#> fit_bd_cure(formula_aft = survival::Surv(time, status) ~ 1, formula_cure = ~z, 
#>     data = dat, type = "mixture", n_starts = 3)
#> 
#> Beta-Danish Cure Model (mixture)
#> 
#> Shape parameters (natural scale, delta-method SE):
#>   Estimate Std. Error Lower 95% Upper 95%
#> b   3.5315     1.8187    1.2871    9.6900
#> c   1.5395     0.3035    1.0461    2.2657
#> 
#> Regression coefficients (log-scale link):
#>                   Estimate Std. Error z value Pr(>|z|)  
#> delta_(Intercept) -1.39644    0.74803 -1.8668  0.06193 .
#> gamma_(Intercept)  0.22464    0.19392  1.1584  0.24669  
#> gamma_z            0.56245    0.29211  1.9254  0.05417 .
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> ---
#> Log-Likelihood: -416.2507

Promotion-time cure model

fit_prom <- fit_bd_cure(
  formula_aft  = survival::Surv(time, status) ~ 1,
  formula_cure = ~ z,
  data         = dat,
  type         = "promotion",
  n_starts     = 3
)
summary(fit_prom)
#> 
#> Call:
#> fit_bd_cure(formula_aft = survival::Surv(time, status) ~ 1, formula_cure = ~z, 
#>     data = dat, type = "promotion", n_starts = 3)
#> 
#> Beta-Danish Cure Model (promotion)
#> 
#> Shape parameters (natural scale, delta-method SE):
#>   Estimate Std. Error Lower 95% Upper 95%
#> b   4.7740     3.4545    1.1560   19.7155
#> c   1.4817     0.2345    1.0865    2.0207
#> 
#> Regression coefficients (log-scale link):
#>                   Estimate Std. Error z value Pr(>|z|)  
#> delta_(Intercept) -2.03331    0.85846 -2.3685  0.01786 *
#> gamma_(Intercept) -0.19425    0.12813 -1.5160  0.12952  
#> gamma_z            0.33526    0.17058  1.9654  0.04937 *
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> ---
#> Log-Likelihood: -416.1921

See also

  • ?fit_bd_cure for full documentation
  • ?bd_bootstrap_ci for bootstrap confidence intervals
  • ?plot.bd_cure for Cox-Snell residual plots