decomp_cov: Decompose covariance matrix

View source: R/decomp_cov.R

decomp_covR Documentation

Decompose covariance matrix

Description

decomp_cov decomposes a covariance matrix v. If A = decomp_cov(v), then tcrossprod(A, A) == v.

Usage

decomp_cov(v, method = "eigen")

decomp.cov(v, method = "eigen")

Arguments

v

An N \times N covariance matrix.

method

The method used to decompose v. Valid options are "chol", "eigen", or "svd".

Details

The "chol" method is the fastest but least stable method. The "eigen" method is slower, but more stable. The "svd" method is the slowest method, but should be the most stable.

Value

Returns an N \times N matrix.

Author(s)

Joshua French

Examples

# generate data
n = 100
coords = matrix(runif(n*2), nrow = n, ncol = 2)
d = as.matrix(dist(coords))
# create covariance matrix
v = 3 * exp(-d/2) + 0.1 * diag(n)

# decompose v using the three methods
d1 = decomp_cov(v, "chol")
d2 = decomp_cov(v, "eigen")
d3 = decomp_cov(v, "svd")

# verify accuracy of decompositions
all.equal(v, tcrossprod(d1))
all.equal(v, tcrossprod(d2), check.attributes = FALSE)
all.equal(v, tcrossprod(d3), check.attributes = FALSE)

jfrench/bayesutils documentation built on April 10, 2023, 6:28 p.m.