The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
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[@]metanet.ch.
The R package ‘survivalSL’ contains a variety of functions to construct a super learner in the presence of censored times-to-event and to evaluate its prognostic capacities. Several learners are proposed: proportional hazard (PH) regressions, penalized PH semi-parametric models, accelerated failure times (AFT) models, neural networks, random survival forests, etc.). We proposed also a variety of loss functions for the estimation of the weights (concordance index, Brier score, area under the time-dependent ROC curve, negative binomial log-likelihood, etc.). S3 methods are included to evaluate the predictive capacities, as well as predicting survival curves from new observations.
# Simulate a training and validation samples
<- 500 # sample size for validation
n.valid <- 200 # sample size for training
n.learn <- n.valid + n.learn # overall sample size
n
<- 50 # maximum follow-up time
max.time
<- 0; sd.x <- 1 # normal distribution of the quantitative predictors
mean.x <- .5 # proportion of the binary predictors
proba.x
<- 2; b <- .05 # Weibull baseline distribution of the PH model
a <- c(log(1.8), log(1.8), log(1.3), 0, 0, 0) # regression coefficients
beta
# simulation of the training and validation samples
<- rnorm(n, mean.x, sd.x)
x1 <- rbinom(n, 1, proba.x)
x2 <- rbinom(n, 1, proba.x)
x3 <- rnorm(n, mean.x, sd.x)
x4 <- rbinom(n, 1, proba.x)
x5 <- rbinom(n, 1, proba.x)
x6 <- cbind(x1, x2, x3, x4, x5, x6) # matrix of the potential predictors
x
<- 1/b*((-exp(-1*(x %*% beta))*(log(1-runif(n, 0, 1))))**(1/a)) # time to event
times <- runif(n, min=0, max=max.time)
censoring
<- ifelse(times <= censoring, 1, 0) # event status
status <- ifelse(times <= censoring, times, censoring) # follow-up times
obs.times
<- cbind(obs.times, status, as.data.frame(x))
data
<- list(data[1:n.valid,], data[(n.valid+1):n,])
data.simul
# model estimation with default parameters and three learners
<- survivalSL(
slres methods=c("LIB_COXen", "LIB_AFTgamma", "LIB_PHexponential"),
metric="ci", data=data.simul[[1]], times="obs.times",
failures="status", cov.quanti=c("x1","x4"),
cov.quali=c("x2","x3","x5","x6"), progress = FALSE)
#> Warning in min(group %in% colnames(data)): no non-missing arguments to min;
#> returning Inf
# prognostic capacities from training sample
summary(slres, digits=3)
#> ci auc bs ibs ribs bll ibll ribll
#> 1 0.671 0.723 0.197 0.094 0.092 0.581 0.303 0.306
# prognostic capacities from validation sample
summary(slres, newdata=data.simul[[2]], digits=3)
#> ci auc bs ibs ribs bll ibll ribll
#> 1 0.677 0.75 0.187 0.092 0.09 0.557 0.297 0.299
To install the latest release from CRAN:
install.packages("survivalSL")
To install the development version from GitHub:
::install_github("foucher-y/survivalSL") remotes
You can report any issues at this link.
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.