# NOT RUN {
# -------------- Generate Data --------------
n = 50; p = 12;
truth.beta = c(1.3, 1.3, 1.3, 1.3);
truth.sigma = 1
data = Generate_data(truth.beta, p, n, truth.sigma = 1, rho = 0.6,"block",4)
y = data$y; X = data$X; beta = data$beta
# --------------- set parameters -----------------
lambda0 = 7; lambda1 = 0.15; lambda = c(lambda0, lambda1)
a = 1; b = p #beta prior for theta
#--------------- BB-SSL -------------
# this is for demonstration of usage only
# in practice, you may want to use more iterations!
BB.SSL.result = BB_SSL(y, X, method = 3, lambda = c(lambda0, lambda1), NSample = 100, a, b,
maxiter = 500, length.out = 50, burn.in = FALSE, discard = TRUE, alpha=1,
initial.beta = rep(0,p))
# Alternatively, you can use SSLASSO_2 solution to get an initial value of beta's
result = SSLASSO_2(X, y, penalty = "adaptive", variance = "fixed", sigma = truth.sigma,
lambda1 = lambda1, lambda0 = seq(lambda1, lambda0, length.out = 50),
a = a, b = b,
max.iter = 500, initial.beta = rep(0,p))
fixed.WBB.result = BB_SSL(y, X, method = 1, lambda = c(lambda0, lambda1), NSample = 100,
a, b, maxiter = 500, length.out = 50, burn.in = FALSE,
discard = TRUE, initial.beta = result$beta[,50])
random.WBB.result = BB_SSL(y, X, method = 2, lambda = c(lambda0, lambda1), NSample = 100,
a, b, maxiter = 500, length.out = 50, burn.in = FALSE,
discard = TRUE, initial.beta = result$beta[,50])
BB.SSL.result = BB_SSL(y, X, method = 3, lambda = c(lambda0, lambda1), NSample = 100, a,
b, maxiter = 500, length.out = 50, burn.in = FALSE, discard = TRUE,
alpha=1, initial.beta = result$beta[,50])
# }
Run the code above in your browser using DataLab