BCovTest1.mxPBF {CovTools} R Documentation

## One-Sample Covariance Test using Maximum Pairwise Bayes Factor

### Description

It performs Bayesian version of 1-sample test for Covariance where the null hypothesis is

H_0 : Σ_n = Σ_0

where Σ_n is the covariance of data model and Σ_0 is a hypothesized covariance. Denote X_i be the i-th column of data matrix. Under the maximum pairwise Bayes Factor framework, we have following hypothesis,

H_0: a_{ij}=0~\mathrm{ and }~τ_{ij}=1 \quad \mathrm{versus. } \quad H_1: \mathrm{ not }~ H_0.

The model is

X_i | X_j \sim N_n( a_{ij}X_j, τ_{ij}^2 I_n )

and the prior is set, under H_1, as

a_{ij}|τ_{ij}^2 \sim N(0, τ_{ij}^2/(γ*||X_j||^2))

τ_{ij}^2 \sim IG(a0, b0).

### Usage

BCovTest1.mxPBF(data, Sigma0 = diag(ncol(data)), a0 = 2, b0 = 2, gamma = 1)


### Arguments

 data an (n\times p) data matrix where each row is an observation. Sigma0 a (p\times p) given covariance matrix. a0 shape parameter for inverse-gamma prior. b0 scale parameter for inverse-gamma prior. gamma non-negative number. See the equation above.

### Value

a named list containing:

log.BF.mat

a (p\times p) matrix of pairwise log Bayes factors.

### References

Lee K, Lin L, Dunson D (2018). “Maximum Pairwise Bayes Factors for Covariance Structure Testing.” arXiv preprint. https://arxiv.org/abs/1809.03105.

### Examples

## Not run:
## generate data from multivariate normal with trivial covariance.
pdim = 10
data = matrix(rnorm(100*pdim), nrow=100)

## run mxPBF-based test
out1 = BCovTest1.mxPBF(data)
out2 = BCovTest1.mxPBF(data, a0=5.0, b0=5.0) # change some params

## visualize two Bayes Factor matrices
image(exp(out1$log.BF.mat)[,pdim:1], main="default") image(exp(out2$log.BF.mat)[,pdim:1], main="a0=b0=5.0")