You are on page 1of 4

Cholesky versus SVD

By, Peter Urbani The method still most widely in use is the generation of correlated random numbers by using the Cholesky decomposition of the Correlation matrix. Howe er, the Cholesky decomposition re!uires that the Correlation matrix be"
# # # # # $!uare %number of columns e!uals number of rows& $ymmetric %elements in upper diagonal matrix e!ual elements in lower diagonal matrix& The main diagonal consists of ones 'll elements are between #( and ( The matrix is positi e semi definite %matrix determinant is e!ual to or larger than )ero&

'ny iolation of the abo e fairly strict re!uirements can result in the matrix being non#in ertible and a Cholesky factorisation not being able to be found by the standard algorithm. Typical issues which might cause the matrix not to be positi e semi definite include multicolinearity which may arise when for instance two time series are almost identical which often occurs with fixed income time series or different classes of the same fund or if they are perfectly negati ely correlated. *n such cases the Cholesky factorisation will fail possibly leading to missing or incorrect alues being included in your simulation. +ortunately the $pectral method which utilises the $ingular ,alue -igen .ecomposition approach does not suffer from these defects. The matrix does not e en ha e to be s!uare. +or this reason this approach is rapidly gaining fa our o er the traditional Cholesky approach. /either the Cholesy or $pectral approach explicitly re!uire normality of returns although the correlation matrix embeds only the information contained in the first two moments and also imposes symmetry which may not be present in reality. Howe er the use of random standard normal de iates as the seed alues upon which to impose the correlation typically does make this assumption.

Cholesky Me ho! C= 1 0.23 -1.00 0.23 1 -0.26 -1.00 -0.26 1

U=

1.000 0 0 0.234 0.972 0 -0.988 -0.027 0.053 1.000 0 0 0.234 -0.998 0.972 -0.027 0 0.053

U’ =

R=

-0.5307 , 1.2330 , 0.3889

RC = MMULT [ R , U’ ] RC = -0.5307 , 1.074 , 0.5170

"#e$ %& l "'( Me ho! )*+e,-e$ o%s = 0.6725 -0.2265 0.7046 0.3007 0.9535 0.0195 -0.6762 0.1988 0.7094 2.1084 1.4520 0.9435 0.0374 0.8902 0.0014

)*+e,-& l/es = (*& +o,& l ".RT = )*+e,-& l/es

U = MMULT [ (*& +o,& l , )*+e,-e$ o%s ] U= R= 0.9765 -0.2137 0.0264 0.4366 0.8996 0.0007 -0.9818 0.1876 0.0265 -0.5307 , 1.2330 , 0.3889

RC = MMULT [ R , U’ ] RC = -0.7715 , 0.8778 , 0.7627