The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Parametric cure models are a type of parametric survival model model in which it is assumed that there are a proportion of subjects who will not experience the event. In a mixture cure model, these ‘cured’ and ‘uncured’ subjects are modeled separately, with the cured individuals subject to no excess risk and the uncured individuals subject to excess risk modeled using a parametric survival distribution. In a non-mixture model, a parametric survival distribution is scaled such that survival asymptotically approaches the cure fraction.
The following code fits a mixture cure model to the bc
dataset from flexsurv
using a Weibull distribution and a
logistic link function for the cure fraction:
library(flexsurvcure)
cure_model <- flexsurvcure(Surv(rectime, censrec)~group, data=bc, link="logistic", dist="weibullPH", mixture=T)
print(cure_model)
## Call:
## flexsurvcure(formula = Surv(rectime, censrec) ~ group, data = bc,
## dist = "weibullPH", link = "logistic", mixture = T)
##
## Estimates:
## data mean est L95% U95% se exp(est)
## theta NA 6.73e-01 5.84e-01 7.52e-01 NA NA
## shape NA 1.55e+00 1.38e+00 1.74e+00 9.07e-02 NA
## scale NA 1.61e-05 5.10e-06 5.11e-05 9.50e-06 NA
## groupMedium 3.34e-01 -1.23e+00 -1.74e+00 -7.09e-01 2.64e-01 2.93e-01
## groupPoor 3.32e-01 -3.48e+00 -5.56e+00 -1.40e+00 1.06e+00 3.08e-02
## L95% U95%
## theta NA NA
## shape NA NA
## scale NA NA
## groupMedium 1.75e-01 4.92e-01
## groupPoor 3.85e-03 2.47e-01
##
## N = 686, Events: 299, Censored: 387
## Total time at risk: 771400
## Log-likelihood = -2580.012, df = 5
## AIC = 5170.025
Model results can be displayed graphically using the
plot
S3 method:
Predicted survival probabilities can also be generated using the
summary
S3 method:
## time est lcl ucl group
## 1 0 1.00000000 1.00000000 1.0000000 Good
## 2 1000 0.83251996 0.78899137 0.8689163 Good
## 3 2000 0.71313032 0.64543914 0.7740272 Good
## 4 3000 0.67959584 0.59539163 0.7487667 Good
## 5 0 1.00000000 1.00000000 1.0000000 Medium
## 6 1000 0.68057306 0.62844495 0.7247046 Medium
## 7 2000 0.45286672 0.38363593 0.5287801 Medium
## 8 3000 0.38890796 0.30239122 0.4878845 Medium
## 9 0 1.00000000 1.00000000 1.0000000 Poor
## 10 1000 0.51803653 0.46475351 0.6308191 Poor
## 11 2000 0.17446456 0.12701669 0.4161586 Poor
## 12 3000 0.07796116 0.03824658 0.3797724 Poor
More complex models may be fitted by adding covariates to the parametric distribution used to model the uncured individuals. This is done by passing a list of formula, named according to the parameters affected, through the anc argument:
cure_model_complex <- flexsurvcure(Surv(rectime, censrec)~group, data=bc, link="logistic", dist="weibullPH", mixture=T, anc=list(scale=~group))
print(cure_model_complex)
## Call:
## flexsurvcure(formula = Surv(rectime, censrec) ~ group, data = bc,
## dist = "weibullPH", link = "logistic", mixture = T, anc = list(scale = ~group))
##
## Estimates:
## data mean est L95% U95% se
## theta NA 2.62e-02 1.91e-02 3.59e-02 NA
## shape NA 1.49e+00 1.35e+00 1.65e+00 7.69e-02
## scale NA 4.65e-06 1.48e-06 1.46e-05 2.72e-06
## groupMedium 3.34e-01 -1.78e+00 -1.79e+00 -1.77e+00 4.39e-03
## groupPoor 3.32e-01 2.07e+00 1.76e+00 2.39e+00 1.61e-01
## scale(groupMedium) 3.34e-01 8.29e-01 4.92e-01 1.17e+00 1.72e-01
## scale(groupPoor) 3.32e-01 2.11e+00 1.71e+00 2.51e+00 2.03e-01
## exp(est) L95% U95%
## theta NA NA NA
## shape NA NA NA
## scale NA NA NA
## groupMedium 1.69e-01 1.68e-01 1.71e-01
## groupPoor 7.96e+00 5.81e+00 1.09e+01
## scale(groupMedium) 2.29e+00 1.64e+00 3.21e+00
## scale(groupPoor) 8.22e+00 5.52e+00 1.22e+01
##
## N = 686, Events: 299, Censored: 387
## Total time at risk: 771400
## Log-likelihood = -2571.857, df = 7
## AIC = 5157.713
Non-mixture cure models can be fit by passing
mixture=FALSE
to flexsurvcure
:
library(flexsurvcure)
cure_model_nmix <- flexsurvcure(Surv(rectime, censrec)~group, data=bc, link="loglog", dist="weibullPH", mixture=F)
print(cure_model_nmix)
## Call:
## flexsurvcure(formula = Surv(rectime, censrec) ~ group, data = bc,
## dist = "weibullPH", link = "loglog", mixture = F)
##
## Estimates:
## data mean est L95% U95% se exp(est)
## theta NA 6.35e-01 7.31e-01 5.17e-01 NA NA
## shape NA 1.72e+00 1.53e+00 1.92e+00 1.01e-01 NA
## scale NA 3.07e-06 9.19e-07 1.03e-05 1.89e-06 NA
## groupMedium 3.34e-01 8.35e-01 4.99e-01 1.17e+00 1.71e-01 2.31e+00
## groupPoor 3.32e-01 1.63e+00 1.31e+00 1.95e+00 1.64e-01 5.09e+00
## L95% U95%
## theta NA NA
## shape NA NA
## scale NA NA
## groupMedium 1.65e+00 3.22e+00
## groupPoor 3.69e+00 7.02e+00
##
## N = 686, Events: 299, Censored: 387
## Total time at risk: 771400
## Log-likelihood = -2567.8, df = 5
## AIC = 5145.6
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.