This is a C++ speed-up and extended version of the R-pakcage psbcGroup. It implements the Bayesian Lasso Cox model (Lee et al., 2011) and the Bayesian Lasso Cox with mandatory variables (Zucknick et al., 2015). Bayesian Lasso Cox models with other shrinkage and group priors (Lee et al., 2015) are to be implemented later on.
Install the latest released version from CRAN
install.packages("psbcSpeedUp")
Install the latest development version from GitHub
#install.packages("remotes")
remotes::install_github("ocbe-uio/psbcSpeedUp")
Data set exampleData
consists of six components:
survival times t
,
event status di
,
covariates x
,
number of genomics variables p
,
number of clinical variables q
and
true effects of covariates beta_true
.
See ?exampleData
for more information of the data.
To run a Bayesian Lasso Cox model for variable selection of the first psbcSpeedUp()
with p = p
and q = q
.
If the arguments p
and q
are unspecified, the Bayesian Lasso Cox model does variable selection for all covariates, i.e., by default p = ncol(survObj$x)
and q = 0
.
# Load the example dataset
data("exampleData", package = "psbcSpeedUp")
p <- exampleData$p
q <- exampleData$q
survObj <- exampleData[1:3]
# Set hyperparameters (see help file for specifying more hyperparameters)
mypriorPara <- list('eta0'=0.02, 'kappa0'=1, 'c0'=2, 'r'=10/9, 'delta'=1e-05,
'lambdaSq'=1, 'sigmaSq'= runif(1, 0.1, 10), 'beta.prop.var'=1, 'beta.clin.var'=1)
# run Bayesian Lasso Cox
library("psbcSpeedUp")
set.seed(123)
fitBayesCox <- psbcSpeedUp(survObj, p=p, q=q, hyperpar=mypriorPara,
nIter=1000, burnin=500, outFilePath="/tmp")
Running MCMC iterations ...
[##################################################] 100%
DONE, exiting!
The function psbcSpeedUp::plot()
can show the posterior mean and 95% credible intervals of regression coefficients.
plot(fitBayesCox)
The function psbcSpeedUp::plotBrier()
can show the time-dependent Brier scores based on posterior mean of coefficients or Bayesian model averaging.
plotBrier(fitBayesCox, times = 80)
Null.model Bayesian.Cox
IBS 0.2089742 0.109274
The function psbcSpeedUp::predict()
can estimate the survival probabilities and cumulative hazards.
predict(fitBayesCox, type = c("cumhazard", "survival"))
## observation times cumhazard survival
## 1: 1 0.264 1.08e-05 1.00e+00
## 2: 2 0.264 4.50e-05 1.00e+00
## 3: 3 0.264 5.33e-05 1.00e+00
## 4: 4 0.264 1.84e-05 1.00e+00
## 5: 5 0.264 7.22e-05 1.00e+00
## ---
## 39996: 196 107.641 2.66e+00 6.97e-02
## 39997: 197 107.641 5.47e-01 5.79e-01
## 39998: 198 107.641 5.15e+01 4.41e-23
## 39999: 199 107.641 4.13e+02 5.72e-180
## 40000: 200 107.641 2.24e-01 7.99e-01
Kyu Ha Lee, Sounak Chakraborty, Jianguo Sun (2011). Bayesian variable selection in semiparametric proportional hazards model for high dimensional survival data. The International Journal of Biostatistics, 7:1. DOI: 10.2202/1557-4679.1301.
Kyu Ha Lee, Sounak Chakraborty, Jianguo Sun (2015). Survival prediction and variable selection with simultaneous shrinkage and grouping priors. Statistical Analysis and Data Mining, 8:114-127. DOI:10.1002/sam.11266.
Manuela Zucknick, Maral Saadati, Axel Benner (2015). Nonidentical twins: Comparison of frequentist and Bayesian lasso for Cox models. Biometrical Journal, 57:959-981. DOI:10.1002/bimj.201400160.