R: Rebuild and Decompose the (Inverse) Covariance Matrix

rebuild.cov {corpcor} | R Documentation

## Rebuild and Decompose the (Inverse) Covariance Matrix

### Description

`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.

### Usage

    rebuild.cov(r, v)
    rebuild.invcov(pr, pv)
    decompose.cov(m)
    decompose.invcov(m)

### Arguments

`r` | correlation matrix
`v` | variance vector
`pr` | partial correlation matrix
`pv` | partial variance vector
`m` | a covariance or a concentration matrix

### Details

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.

### Value

`rebuild.cov` and `rebuild.invcov` return a matrix.

`decompose.cov` and `decompose.invcov` return a list containing a matrix and a vector.

### Author(s)

Korbinian Strimmer (http://strimmerlab.org).

### See Also

`cor`, `cov`, `pcor.shrink`

### Examples

    # 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)

[Package corpcor version 1.6.9 Index]