Learn R Programming

CovTools (version 0.5.0)

PreEst.banded1: Bayesian Estimation of a Banded Precision Matrix (Banerjee 2014)

Description

PreEst.banded1 returns a Bayes estimator of the banded precision matrix using G-Wishart prior. Stein<U+2019>s loss or squared error loss function is used depending on the <U+201C>loss<U+201D> argument in the function. The bandwidth is set at the mode of marginal posterior for the bandwidth parameter.

Usage

PreEst.banded1(X, upperK = floor(ncol(X)/2), delta = 10,
  logpi = function(k) {     -k^4 }, loss = c("Stein", "Squared"))

Arguments

X

an \((n\times p)\) data matrix where each row is an observation.

upperK

upper bound of bandwidth \(k\).

delta

hyperparameter for G-Wishart prior. Default value is 10. It has to be larger than 2.

logpi

log of prior distribution for bandwidth \(k\). Default is a function proportional to \(-k^4\).

loss

type of loss; either "Stein" or "Squared".

Value

a named list containing:

C

a \((p\times p)\) MAP estimate for precision matrix.

References

banerjee_posterior_2014CovTools

Examples

Run this code
# NOT RUN {
## generate data from multivariate normal with Identity precision.
data = mvtnorm::rmvnorm(100, sigma=diag(10))

## compare different K
out1 <- PreEst.banded1(data, upperK=1)
out2 <- PreEst.banded1(data, upperK=3)
out3 <- PreEst.banded1(data, upperK=5)

## visualize
par(mfrow=c(2,2), pty="s")
image(pracma::flipud(diag(10)),main="Original Precision")
image(pracma::flipud(out1$C), main="banded1::upperK=1")
image(pracma::flipud(out2$C), main="banded1::upperK=3")
image(pracma::flipud(out3$C), main="banded1::upperK=5")

# }

Run the code above in your browser using DataLab