View source: R/approximate_algorithm.R
approx_horseshoe | R Documentation |
The approximate MCMC algorithm for the horseshoe prior
approx_horseshoe(
y,
X,
burn = 1000,
iter = 5000,
auto.threshold = TRUE,
tau = 1,
s = 0.8,
sigma2 = 1,
alpha = 0.05,
...
)
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 to set whether to use the the adaptive threshold selection method. |
tau |
Initial value of the global shrinkage parameter |
s |
|
sigma2 |
Initial value of error variance |
alpha |
|
... |
There are additional arguments threshold, a, b, w, t,
p0, and p1.
threshold is used when auto.threshold=FALSE is selected and threshold is
set directly. The default value is |
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 selected by
the adaptive method proposed in this package. For more information,
browseVignettes("Mhorseshoe").
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 |
|
Johndrow, J., Orenstein, P., & Bhattacharya, A. (2020). Scalable Approximate MCMC Algorithms for the Horseshoe Prior. In Journal of Machine Learning Research, 21, 1-61.
# 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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.