Learn R Programming

LassoHiDFastGibbs (version 0.1.4)

penalized_pcg_lambda2_sigma2: Penalized PCG sampler: lambda2 collapsed over sigma2

Description

Partially-collapsed Gibbs (PCG) sampler for a Gaussian linear model with a shrinkage prior/penalty on regression coefficients. This variant samples \(\lambda^2\) using a collapsed step over \(\sigma^2\) (see implementation).

Usage

penalized_pcg_lambda2_sigma2(
  vy,
  mX,
  penalty_type = c("lasso", "horseshoe"),
  a,
  b,
  u,
  v,
  nsamples,
  lambda_init = 1,
  sigma2_init = 1,
  verbose = max(1L, floor(as.integer(nsamples)/10))
)

Value

A list with components:

mBeta

Matrix of beta draws (nsamples x p).

vsigma2

Vector of sigma^2 draws (length nsamples).

vlambda2

Vector of lambda^2 draws (length nsamples).

Arguments

vy

Numeric response vector of length n.

mX

Numeric design matrix of dimension n x p.

penalty_type

Character string: "lasso" or "horseshoe".

a, b

Hyperparameters for the inverse-gamma prior on \(\sigma^2\).

u, v

Hyperparameters for the prior on \(\lambda^2\).

nsamples

Number of MCMC iterations.

lambda_init

Initial value for \(\lambda\).

sigma2_init

Initial value for \(\sigma^2\).

verbose

Print progress every verbose iterations (0 = silent).

Examples

Run this code
set.seed(1)
n <- 40; p <- 6
X <- matrix(rnorm(n * p), n, p)
beta <- c(1.2, 2, -1, 0.5, 0.75, 2.5)
y <- X %*% beta + rnorm(n)
out <- penalized_pcg_lambda2_sigma2(
  vy = y, mX = X, penalty_type = "lasso",
  a = 1, b = 1, u = 1, v = 1,
  nsamples = 200, lambda_init = 1, sigma2_init = 1,
  verbose = 0
)
str(out)

Run the code above in your browser using DataLab