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 : \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 |
Sigma0 |
a |
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
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)
## End(Not run)