BGLSS: Bayesian Group Lasso with Spike and Slab prior

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/BGLSS.R

Description

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.

Usage

1
2
3
4
5
BGLSS(Y, X, niter = 10000, burnin = 5000, group_size, a = 1,
b = 1, num_update = 100, niter.update = 100, verbose = FALSE,
alpha = 0.1, gamma = 0.1, pi_prior = TRUE, pi = 0.5,
update_tau = TRUE, option.weight.group = FALSE,
option.update = "global", lambda2_update = NULL)

Arguments

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"

Value

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

Author(s)

Benoit Liquet, Matthew Sutton and Xiaofan Xu.

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<e2><80><93>936.

See Also

BSGSSS

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
## Simulation of datasets X and Y with group variables
set.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 convergence

model <- BGLSS(Y[,1],X,niter=500,burnin=100,group_size=gsize,
num_update = 20,niter.update = 20)
model$pos_median!=0
true_model

MBSGS documentation built on May 2, 2019, 4:18 a.m.

Related to BGLSS in MBSGS...