Rebuild and Decompose the (Inverse) Covariance Matrix
rebuild.cov
takes a correlation matrix and a vector with variances
and reconstructs the corresponding covariance matrix.
Conversely, decompose.cov
decomposes
a covariance matrix into correlations and variances.
decompose.invcov
decomposes a concentration matrix (=inverse covariance
matrix) into partial correlations and partial variances.
rebuild.invcov
takes a partial correlation matrix and a vector
with partial variances and reconstructs the corresponding concentration matrix.
rebuild.cov(r, v) rebuild.invcov(pr, pv) decompose.cov(m) decompose.invcov(m)
r |
correlation matrix |
v |
variance vector |
pr |
partial correlation matrix |
pv |
partial variance vector |
m |
a covariance or a concentration matrix |
The diagonal elements of the concentration matrix (=inverse covariance matrix) are the precisions, and the off-diagonal elements are the concentrations. Thus, the partial variances correspond to the inverse precisions, and the partial correlations to the negative standardized concentrations.
rebuild.cov
and rebuild.invcov
return a matrix.
decompose.cov
and decompose.invcov
return a list containing
a matrix and a vector.
Korbinian Strimmer (https://strimmerlab.github.io).
# load corpcor library library("corpcor") # a correlation matrix and some variances r = matrix(c(1, 1/2, 1/2, 1), nrow = 2, ncol=2) r v = c(2, 3) # construct the associated covariance matrix c = rebuild.cov(r, v) c # decompose into correlations and variances decompose.cov(c) # the corresponding concentration matrix conc = pseudoinverse(c) conc # decompose into partial correlation matrix and partial variances tmp = decompose.invcov(conc) tmp # note: because this is an example with two variables, # the partial and standard correlations are identical! # reconstruct the concentration matrix from partial correlations and # partial variances rebuild.invcov(tmp$pr, tmp$pv)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.