Learn R Programming

CovTools (version 0.5.4)

BCovTest1.mxPBF: 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 : \Sigma_n = \Sigma_0$$ where \(\Sigma_n\) is the covariance of data model and \(\Sigma_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 }~\tau_{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, \tau_{ij}^2 I_n )$$ and the prior is set, under \(H_1\), as $$ a_{ij}|\tau_{ij}^2 \sim N(0, \tau_{ij}^2/(\gamma*||X_j||^2))$$ $$\tau_{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_maximum_2018CovTools

Examples

Run this code
# 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
opar <- par(no.readonly=TRUE)
par(mfrow=c(1,2), pty="s")
image(exp(out1$log.BF.mat)[,pdim:1], main="default")
image(exp(out2$log.BF.mat)[,pdim:1], main="a0=b0=5.0")
par(opar)
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab