approx_horseshoe {Mhorseshoe} | R Documentation |
Run approximate MCMC algorithm for horseshoe prior
Description
The approximate MCMC algorithm for the horseshoe prior
Usage
approx_horseshoe(
y,
X,
burn = 1000,
iter = 5000,
auto.threshold = TRUE,
threshold = 0,
tau = 1,
s = 0.8,
sigma2 = 1,
w = 1,
alpha = 0.05,
a = 0.2,
b = 10,
t = 10,
adapt_p0 = 0,
adapt_p1 = -4.6 * 10^(-4)
)
Arguments
y |
Response vector, |
X |
Design matrix, |
burn |
Number of burn-in samples. The default is 1000. |
iter |
Number of samples to be drawn from the posterior. The default is 5000. |
auto.threshold |
Argument for setting whether to use an algorithm that automatically updates the threshold using adaptive probability. |
threshold |
Threshold to be used in the approximate MCMC algorithm.
This argument is ignored when auto.threshold=TRUE. If you select
auto.threshold = FALSE and threshold = 0 (This is the default value for the
threshold argument), the threshold is set to
|
tau |
Initial value of the global shrinkage parameter |
s |
|
sigma2 |
Initial value of error variance |
w |
A hyperparameter of gamma prior for |
alpha |
|
a |
A tuning parameter of the rejection sampler, where the default
value is |
b |
A tuning parameter of the rejection sampler, where the default
value is |
t |
Threshold update cycle for adaptive probability algorithm when auto.threshold is set to TRUE. The default is 10. |
adapt_p0 |
A tuning parameter |
adapt_p1 |
A tuning parameter |
Details
This function implements the approximate algorithm introduced in Section
2.2 of Johndrow et al. (2020) and the method proposed in this package, which
improves computation speed when p >> N. The approximate algorithm introduces
a threshold and uses only a portion of the total p
columns for matrix
multiplication, reducing the computational cost compared to the existing
MCMC algorithms for the horseshoe prior. The "auto.threshold" argument
determines whether the threshold used in the algorithm will be updated by
the adaptive method proposed in this package.
Value
BetaHat |
Posterior mean of |
LeftCI |
Lower bound of |
RightCI |
Upper bound of |
Sigma2Hat |
Posterior mean of |
TauHat |
Posterior mean of |
LambdaHat |
Posterior mean of |
ActiveMean |
Average number of elements in the active set per iteration in this algorithm. |
BetaSamples |
Posterior samples of |
LambdaSamples |
Posterior samples of local shrinkage parameters. |
TauSamples |
Posterior samples of global shrinkage parameter. |
Sigma2Samples |
Posterior samples of |
ActiveSet |
|
References
Johndrow, J., Orenstein, P., & Bhattacharya, A. (2020). Scalable Approximate MCMC Algorithms for the Horseshoe Prior. In Journal of Machine Learning Research, 21, 1-61.
Examples
# Making simulation data.
set.seed(123)
N <- 200
p <- 100
true_beta <- c(rep(1, 10), rep(0, 90))
X <- matrix(1, nrow = N, ncol = p) # Design matrix X.
for (i in 1:p) {
X[, i] <- stats::rnorm(N, mean = 0, sd = 1)
}
y <- vector(mode = "numeric", length = N) # Response variable y.
e <- rnorm(N, mean = 0, sd = 2) # error term e.
for (i in 1:10) {
y <- y + true_beta[i] * X[, i]
}
y <- y + e
# Run with auto.threshold set to TRUE
result1 <- approx_horseshoe(y, X, burn = 0, iter = 100,
auto.threshold = TRUE)
# Run with fixed custom threshold
result2 <- approx_horseshoe(y, X, burn = 0, iter = 100,
auto.threshold = FALSE, threshold = 1/(5 * p))
# posterior mean
betahat <- result1$BetaHat
# Lower bound of the 95% credible interval
leftCI <- result1$LeftCI
# Upper bound of the 95% credible interval
RightCI <- result1$RightCI