decomp_cov function

Decompose covariance matrix

Decompose covariance matrix

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

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

Arguments

  • v: An N×NN \times N covariance matrix.
  • method: The method used to decompose v. Valid options are "chol", "eigen", or "svd".

Returns

Returns an N×NN \times N matrix.

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.

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)

Author(s)

Joshua French

  • Maintainer: Joshua French
  • License: GPL (>= 2)
  • Last published: 2020-04-10

Useful links