Cholesky-variate Distributions

Cholesky-variate distributions are distributions whose variate forms are CholeskyVariate. This means each draw is a factorization of a positive-definite matrix of type LinearAlgebra.Cholesky (the object produced by the function LinearAlgebra.cholesky applied to a dense positive-definite matrix.)


LKJCholesky(d::Int, η::Real, uplo='L')

The LKJCholesky distribution of size $d$ with shape parameter $\eta$ is a distribution over LinearAlgebra.Cholesky factorisations of $d\times d$ real correlation matrices (positive-definite matrices with ones on the diagonal).

Variates or samples of the distribution are LinearAlgebra.Cholesky objects, as might be returned by F = LinearAlgebra.cholesky(R), so that Matrix(F) ≈ R is a variate or sample of LKJ.

Sampling LKJCholesky is faster than sampling LKJ, and often having the correlation matrix in factorized form makes subsequent computations cheaper as well.


LinearAlgebra.Cholesky stores either the upper or lower Cholesky factor, related by F.U == F.L'. Both can be accessed with F.U and F.L, but if the factor not stored is requested, then a copy is made. The uplo parameter specifies whether the upper ('U') or lower ('L') Cholesky factor is stored when randomly generating samples. Set uplo to 'U' if the upper factor is desired to avoid allocating a copy when calling F.U.

See LKJ for more details.

External links

  • Lewandowski D, Kurowicka D, Joe H. Generating random correlation matrices based on vines and extended onion method, Journal of Multivariate Analysis (2009), 100(9): 1989-2001 doi: 10.1016/j.jmva.2009.04.008