Run a gibbs sampler for a Bayesian group lasso model with spike and slab prior. This function is designed for an univariate response model and when the design matrix has a group structur. Run a gibbs sampler for a Bayesian group lasso model with spike and slab prior. This function is designed for an univariate response model and when the design matrix has a group structure.
Y: A numerical vector representing the univariate response variable.
X: A matrix respresenting the design matrix of the linear regression model.
niter: Number of iteration for the Gibbs sampler.
burnin: Number of burnin iteration
group_size: Integer vector representing the size of the groups of the design matrix X
a: First shape parameter of the conjugate beta prior for pi_0. Default is 1.
b: Second shape parameter of the conjugate beta prior for pi_0. Default is 1.
num_update: Number of update regarding the scaling of the shrinkage parameter lambda which is calibrated by a Monte Carlo EM algorithm
niter.update: Number of itertion regarding the scaling of the shrinkage parameter lambda which is calibrated by a Monte Carlo EM algorithm
verbose: Logical. If "TRUE" iterations are displayed.
alpha: Shape parameter of the Inverse Gamma prior on the variance of the noise for the linear regression model.
gamma: Scale parameter of the Inverse Gamma prior on the variance of the noise for the linear regression model.
pi_prior: Logical. If "TRUE" a beta prior is used for pi
pi: Initial value for pi_0 which will be updated if pi_prior="TRUE""
update_tau: Logical. If "TRUE" then a Monte Carlo EM algorithm is used to update lambda
option.weight.group: If "TRUE" then the group size is used for shrinkage penalty purpose.
option.update: Two options are proposed for updating lambda. A "Local" update or a "Global" update
lambda2_update: Value of the square of lambda when update_tau="FALSE"
Returns
BGLSS returns a list that contains the following components:
pos_mean: The posterior mean estimate of the regression coefficients
pos_median: The posterior mean estimate of the regression coefficients
coef: A matrix with the regression coefficients sampled at each iteration
References
B. Liquet, K. Mengersen, A. Pettitt and M. Sutton. (2016). Bayesian Variable Selection Regression Of Multivariate Responses For Group Data. Submitted in Bayesian Analysis.
Xu, X. and Ghosh, M. (2015). Bayesian Variable Selection and Estimation for Group Lasso. Bayesian Analysis, 10(4): 909–936.
Author(s)
Benoit Liquet, Matthew Sutton and Xiaofan Xu.
See Also
BSGSSS
Examples
## Simulation of datasets X and Y with group variablesset.seed(1)data1 = gen_data_uni(nsample =120,cor.var=0.5, ntrain =80)data1 = normalize(data1)true_model <- data1$true_model
X <- data1$X
Y<- data1$Y
train_idx <- data1$train_idx
gsize <- data1$gsize
## We recommend to set niter=50000, burnin=10000## num_update = 100 and niter.update = 100 ## to reach convergencemodel <- BGLSS(Y[,1],X,niter=500,burnin=100,group_size=gsize,num_update =20,niter.update =20)model$pos_median!=0true_model