Learn R Programming

broadcast (version 0.1.7)

linear_algebra_stats: Simple Linear Algebra Functions for Statistics

Description

'broadcast' provides some simple Linear Algebra Functions for Statistics:
cinv();
sd_lc().


Usage

cinv(x)

sd_lc(X, vc, bad_rp = NaN)

Value

For cinv():

A matrix.


For sd_lc():

A vector of standard deviations.


Arguments

x

a real symmetric positive-definite square matrix.

X

a numeric (or logical) matrix of multipliers/constants

vc

the variance-covariance matrix for the (correlated) random variables.

bad_rp

if vc is not a Positive (semi-) Definite matrix, give here the value to replace bad standard deviations with.

Details

cinv()
cinv() computes the Choleski inverse of a real symmetric positive-definite square matrix.

sd_lc()
Given the linear combination X %*% b, where:

  • X is a matrix of multipliers/constants;

  • b is a vector of (correlated) random variables;

  • vc is the symmetric variance-covariance matrix for b;

sd_lc(X, vc) computes the standard deviations for the linear combination X %*% b, without making needless copies.
sd_lc(X, vc) will use much less memory than a base 'R' approach.
sd_lc(X, vc) will usually be faster than a base 'R' approach (depending on the Linear Algebra Library used for base 'R').


References

John A. Rice (2007), Mathematical Statistics and Data Analysis (6th Edition)

See Also

Examples

Run this code


vc <- datasets::ability.cov$cov
X <- matrix(rnorm(100), 100, ncol(vc))

solve(vc)
cinv(vc) # faster than `solve()`, but only works on positive definite matrices
all(round(solve(vc), 6) == round(cinv(vc), 6)) # they're the same

sd_lc(X, vc)

Run the code above in your browser using DataLab