October 23rd, 2002, 5:37 am
Pls refer to the VBA code for Cholesky decomposition:Function nCholesky(Correlation) 'Creating the Cholesky Decomposition Factors Dim mRs As Single mRs = nCountRC(Correlation, True) 'Correlation.Rows.Count Dim aCholesky() As Double 'Cholesky Decomposition Matrix ReDim aCholesky(1 To mRs, 1 To mRs) As Double For i = 1 To mRs aCholesky(i, 1) = Correlation(i, 1) Next i For i = 2 To mRs For j = 2 To i If i = j Then aCholesky2 = 0 For k = 1 To j - 1 aCholesky2 = aCholesky2 + aCholesky(i, k) ^ 2 Next k aCholesky(i, j) = Sqr(1 - aCholesky2) Else aCholeskyA = 0 For k = 1 To j - 1 aCholeskyA = aCholeskyA + aCholesky(i, k) * aCholesky(j, k) Next k aCholesky(i, j) = (Correlation(i, j) - aCholeskyA) / aCholesky(j, k) End If Next j Next i nCholesky = aCholeskyEnd FunctionHowever, I think u need to validate if the correlation matrix is positive definite before passing that in. Im havent figure out how to validate it yet. Is anyone can help me out with that???RgdsRocco