Random covariance matrix

Share:

Description

Builds a positive definite matrix from an undirected graph G that can be used as a covariance matrix for a Gaussian graphical model with graph G. The inverse of the resulting matrix contains zeroes at the missing edges of the given undirected graph G.

Usage

1
2
qpG2Sigma(g, rho=0, matrix.completion=c("HTF", "IPF"), tol=0.001,
          verbose=FALSE, R.code.only=FALSE)

Arguments

g

undirected graph specified either as a graphNEL object or as an adjacency matrix.

rho

real number between -1/(n.var-1) and 1 corresponding to the mean marginal correlation

matrix.completion

algorithm to employ in the matrix completion operations employed to construct a positive definite matrix with the zero pattern specified in g

tol

tolerance under which the matrix completion algorithm stops.

verbose

show progress on the calculations.

R.code.only

logical; if FALSE then the faster C implementation is used in the internal call to the HTF, or IPF, algorithm (default); if TRUE then only R code is executed.

Details

The random covariance matrix is built by first generating a random matrix with the function qpRndWishart from a Wishart distribution whose expected value is a matrix with unit diagonal and constant off-diagonal entries equal to rho.

Value

A random positive definite matrix that can be used as a covariance matrix for a Gaussian graphical model with graph G.

Author(s)

A. Roverato

References

Tur, I., Roverato, A. and Castelo, R. Mapping eQTL networks with mixed graphical Markov models. Genetics, 198(4):1377-1393, 2014.

See Also

qpRndGraph qpGetCliques qpIPF qpRndWishart rmvnorm

Examples

1
2
3
4
5
6
7
8
set.seed(123)
G <- qpRndGraph(p=5, d=2)

Sigma <- qpG2Sigma(G, rho=0.5)

round(solve(Sigma), digits=2)

as(G, "matrix")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.