curesurv {curesurv} | R Documentation |
Fits the non-mixture cure model proposed by Boussari et al. (2020), or mixture cure model such as proposed by De Angelis et al. (1999) with the possibility to correct the background mortality as proposed by Phillips et al. (2002) in the net survival framework.
This model allows for direct estimation of time-to-null-excess-hazard which can be interpreted as time-to-cure.
The parametrization offers various link functions for the covariates effects on the time-to-null-excess-hazard:
τ(zk) = g(τ0 + zk τk).
If link_tau=linear
, then g is the identity function. If link_tau=loglinear
then g is the exponential function.
In this model, the cure proportion is expressed as:
π(z;θ) = exp(−g(τ0 + zk τk) \text{Beta}((\alpha_{0} + Z_{k} \alpha_{k}), \beta)).
The user can choose the survival function modeling the uncured patients net survival among Weibull (default) and exponentiated Weibull. The parametrization for weibull distribution is Su(t) = exp(−λtγ)exp(δZ). The related hazard function is expressed as: λu(t) = γλtγ− 1 exp(δz) The net survival and the excess hazard functions can be respectively expressed as SE(t) = π(z;β) + (1 − π(z;β)) * Su(t). and λE(t)=[((1−π(z;β))fu(t))/(π(z;β) + (1 − π(z;β))Su(t))], with π(z;β) = [1/((1 + exp(−[β0 + Zβ])))].
Usually, in the net survival framework the expected hazard is directly obtained from life tables. However some patients in cancer registries can have some factors impacting their expected mortality rates (such as comorbidities, deprivation) that are not always accounted #' for in the available life tables, and there is a need to account for this problem. The correction proposed by Phillips et al (2002) assumes that λexp(t,z)=αλpop(t,zk) with λexp(t,z) the patient expected hazard and λpop(t,zk) the population hazard obtained from life table.
curesurv(
formula,
data,
pophaz = NULL,
cumpophaz = NULL,
pophaz.alpha = FALSE,
model = "nmixture",
dist = "weib",
link_tau = "linear",
ncoor_des = NULL,
init = NULL,
maxit_opt = 10000,
gradient = FALSE,
hessian_varcov = TRUE,
optim_func = "optim",
optimizer = "optim",
method_opt = "L-BFGS-B",
trace = 0,
nvalues = 10,
iter_eps = 1e-08,
optim_fixed = NULL,
clustertype = NULL,
nproc = 1,
subset,
na.action,
sign_delta,
...
)
formula |
a formula object of the |
data |
a data frame in which to interpret the variables named in the formula |
pophaz |
corresponds to the name of the column in the data representing
the values of the population instantaneous mortality rates. If the
|
cumpophaz |
corresponds to the name of the column in the data
representing the values of the instantaneous population cumulative mortality
rates. If not specified, the model cannot be compared with model with
|
pophaz.alpha |
to be specified if user want an excess hazard model with correction of mortality rates by a scale parameter |
model |
To fit a mixture model, specify |
dist |
For mixture model, it corresponds to the function used to fit
the uncured patients survival. By default, |
link_tau |
must be specified only for |
ncoor_des |
if null, the initial parameters are defaults. If else, the initials parameters are obtained via coordinates descent algorithms |
init |
a list containing the vector of initial values |
maxit_opt |
option for maximum of iteration in optimization function |
gradient |
True if optimization process requires gradient to be provided |
hessian_varcov |
TRUE if user wants variance covariance matrix using hessian function |
optim_func |
specify which function to be used for optimization purposes. |
optimizer |
only use this argument when |
method_opt |
optimization method used in |
trace |
Non-negative integer corresponding to the |
nvalues |
number of set of initial values when using multiple initials values |
iter_eps |
this parameter only works when |
optim_fixed |
to specify with parameter to not estimated in the estimation process |
clustertype |
related to cluster type in |
nproc |
number of processors for parallel computing as in |
subset |
an expression indicating which subset of the data should be used in the modeling. All observations are included by default |
na.action |
as in the coxph function, a missing-data filter function. |
sign_delta |
only used for mixture cure rate models to specify if the effects or minus the effects of covariates acting on uncured survival to be considered. Default will be sign_delta = "1". The alternative is sign_delta = "-1". |
... |
additional parameters such |
An object of class curesurv
.
This object is a list containing the following components:
iter_coords |
number of iterations performed to obtain initial values of the parameters in tneh model only |
coefficients |
estimates found for the model |
estimates |
estimates in the appropriate scale for the model |
loglik |
corresponds to the log-likelihood computed; if only the pophaz is provided, the log-likelihood doesn't correspond to the total log-likelihood. The part of the cumulative population hazard is a constant and is dropped for the computation as presented in Esteve et al. (1990); The total log-likekihood is calculed if the user specifies a column name equal expected cumulative mortality (cumpophaz) |
iteractions |
the number iterations attained to estimate the parameters of the related model |
evaluations |
the number of times the log-likelihood function was evaluated until to reach the convergence |
convergence |
an integer code as in optim when |
message |
a character string returned by the optimizer |
varcov |
the variance covariance matrix of the parameters estimated |
varcov_star |
the variance covariance matrix of the coefficients of the model of interest |
std_err |
the standard errors of the estimated parameters |
std_err_star |
the standard errors of the coefficients of the model of interest |
AIC |
the Akaike information criteria from the model of interest |
n.events |
the number of events in the dataset. Events are considered |
n.obs |
the number of observations in the dataset. |
model |
if fitted model is a mixture model, it returns "mixture". If fitted model is Time-To-Null Excess Hazard model, it returns "nmixture". |
Terms |
the representation of the terms in the model |
pophaz.alpha |
logical value to indicate if fitted cure model requires correction of mortality rates by a scale parameter |
pophaz |
corresponds to the the population instantaneous mortality rates. |
cumpophaz |
corresponds to the population cumulative mortality rates. |
frailtyhp |
a booleen to be specified if a frailty correction is needed for the population hazard. |
dist |
For mixture model, it corresponds to the function used to fit the uncured patients survival. By default, ("weib") is used. Another option is the exponentiated Weibull function ("eweib"). For non-mixture models, this argument corresponds to the name of the model. By default, ("tneh") is used to fit the time to null excess hazard model proposed by Boussari et al. |
xmax |
maximum follow-up time to evaluate the TTC |
z_tau |
Covariates acting on parameter tau in non mixture cure model tneh |
link_tau |
returned only for model ="tneh"; returned by default is "linear" or "loglinear" for linear or loglinear link function of covariates acting on tau parameter. |
z_alpha |
Covariates acting on parameter alpha in non mixture cure model tneh |
z_c |
Covariates acting on cure fraction in mixture cure model |
z_ucured |
covariates acting on survival of uncured in mixture cure model |
z_pcured |
Covariates acting on cure fraction in mixture cure model |
z_ucured |
covariates acting on survival of uncured in mixture cure model |
data |
the dataset used to run the model |
call |
the function call based on model |
formula |
the formula as a formula object |
Note that all these models can be fitted in the overall survival setting.
time
is OBLIGATORY in years
Juste Goungounga, Judith Breaud, Olayide Boussari, Valerie Jooste
Boussari O, Bordes L, Romain G, Colonna M, Bossard N, Remontet L, Jooste V. Modeling excess hazard with time-to-cure as a parameter. Biometrics. 2021 Dec;77(4):1289-1302. doi: 10.1111/biom.13361. Epub 2020 Sep 12. PMID: 32869288. (pubmed)
Boussari O, Romain G, Remontet L, Bossard N, Mounier M, Bouvier AM, Binquet C, Colonna M, Jooste V. A new approach to estimate time-to-cure from cancer registries data. Cancer Epidemiol. 2018 Apr;53:72-80. doi: 10.1016/j.canep.2018.01.013. Epub 2018 Feb 4. PMID: 29414635. (pubmed)
Phillips N, Coldman A, McBride ML. Estimating cancer prevalence using mixture models for cancer survival. Stat Med. 2002 May 15;21(9):1257-70. doi: 10.1002/sim.1101. PMID: 12111877. (pubmed)
De Angelis R, Capocaccia R, Hakulinen T, Soderman B, Verdecchia A. Mixture models for cancer survival analysis: application to population-based data with covariates. Stat Med. 1999 Feb 28;18(4):441-54. doi: 10.1002/(sici)1097-0258(19990228)18:4<441::aid-sim23>3.0.co;2-m. PMID: 10070685. (pubmed)
Botta L, Caffo O, Dreassi E, Pizzoli S, Quaglio F, Rugge M, Valsecchi MG. A new cure model that corrects for increased risk of non-cancer death: analysis of reliability and robustness, and application to real-life data. BMC Med Res Methodol. 2023 Mar 25;23(1):70. doi: 10.1186/s12874-023-01876-x. PMID: N/A. (pubmed)
predict.curesurv()
, print.curesurv()
, browseVignettes("curesurv")
library("curesurv")
library("survival")
# Net survival setting
# Mixture cure model with Weibull function for the uncured patients survival:
# no covariate
theta_init2 <- rep(0, 3)
theta_lower2 <- c(-Inf,-Inf,-Inf)
theta_upper2 <- c(Inf, Inf, Inf)
fit_m0_ml <- curesurv(Surv(time_obs, event) ~ 1 | 1,
pophaz = "ehazard",
cumpophaz = "cumehazard",
model = "mixture", dist = "weib",
data = testiscancer,
init = list(theta_init = theta_init2,
theta_lower = theta_lower2,
theta_upper = theta_upper2),
method_opt = "L-BFGS-B")
fit_m0_ml
# Mixture cure model with Weibull function for the uncured patients survival:
#standardized age as covariate
fit_m2_ml <- curesurv(Surv(time_obs, event) ~ age_cr | age_cr,
pophaz = "ehazard",
cumpophaz = "cumehazard",
model = "mixture", dist = "weib",
data = testiscancer,
method_opt = "L-BFGS-B")
fit_m2_ml
## Non mixture cure model
### TNEH Null model
#### loglinear effect of covariates on time-to-null excess hazard
theta_init2 <- rep(0, 3)
theta_lower2 <- c(-Inf,-Inf,-Inf)
theta_upper2 <- c(Inf, Inf, Inf)
fit_m0_mult_tneh <- curesurv(Surv(time_obs, event) ~ 1,
pophaz = "ehazard",
cumpophaz = "cumehazard",
model = "nmixture",
dist = "tneh", link_tau = "loglinear",
data = testiscancer,
init = list(theta_init = theta_init2,
theta_lower = theta_lower2,
theta_upper = theta_upper2),
method_opt = "L-BFGS-B")
fit_m0_mult_tneh
#### Additive parametrization
theta_init2 <- c(1, 6, 6)
theta_lower2 <- c(0,1,0)
theta_upper2 <- c(Inf, Inf, Inf)
fit_m0_ad_tneh <- curesurv(Surv(time_obs, event) ~ 1,
pophaz = "ehazard",
cumpophaz = "cumehazard",
model = "nmixture",
dist = "tneh", link_tau = "linear",
data = testiscancer,
init = list(theta_init = theta_init2,
theta_lower = theta_lower2,
theta_upper = theta_upper2),
method_opt = "L-BFGS-B")
fit_m0_ad_tneh
#### Additive parametrization, with covariates
fit_m1_ad_tneh <- curesurv(Surv(time_obs, event) ~ z_alpha(age_cr) +
z_tau(age_cr),
pophaz = "ehazard",
cumpophaz = "cumehazard",
model = "nmixture",
dist = "tneh", link_tau = "linear",
data = testiscancer,
method_opt = "L-BFGS-B")
fit_m1_ad_tneh