I am reading through this paper to try and code the model myself. The specifics of the paper don't matter, however in the authors matlab code I noticed they use a Cholesky decomposition instead of computing the determinant of a covariance matrix directly.

Specifically, the author has

$$\log\det(\Sigma) = 2 \sum_i \log [ diag(L)_i ]$$

where $L$ is the lower triangular matrix produced by a Cholesky decomposition of the covariance $\Sigma$.

I tested this out myself using various covariance matrices and found the relation above always works to within 14 decimal places (it's probably just a machine precision issue). I believe the author uses a cholesky decomposition because it is slightly faster to compute than computing the determinant directly (at least when I timed it on my machine).

My question is, why does this relation hold true? I couldn't find any references in the paper / code, or any material online.

  • $\begingroup$ What does "computing the determinant directly" mean in this context? If you are using a library, the routine to compute determinants might well be using something like Gaussian elimination or Cholesky decomposition, or whatever, and not summing over all permutations or expanding by minors. $\endgroup$ – kimchi lover Mar 22 at 15:41
  • $\begingroup$ $\Sigma=LL^T$ so you take det, use eigenvalues, then log and it follows immediately. $\endgroup$ – Michal Adamaszek Mar 22 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.