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")
::install_github("ocbe-uio/psbcSpeedUp") remotes
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
\(p\) genomics variables and inclusion
of \(q\) mandatory variables, one can
specify arguments of the main function 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")
<- exampleData$p
p <- exampleData$q
q <- exampleData[1:3]
survObj
# Set hyperparameters (see help file for specifying more hyperparameters)
<- list('eta0'=0.02, 'kappa0'=1, 'c0'=2, 'r'=10/9, 'delta'=1e-05,
mypriorPara '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)
<- psbcSpeedUp(survObj, p=p, q=q, hyperpar=mypriorPara,
fitBayesCox 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.