Cholesky Decomposition Technology
 Application Examples

Application Example: Multivariate Brownian Motion Generation.

This application note is a copy of the Cholesky Excel® C/C++ Add-In on-line help guide

This note illustrates different applications of Cholesky decomposition in order to generate multivariate distributions. 

It is important to note
Singular Value Decomposition (SVD) and Rank reduction via spectral decomposition can prove better choices when dealing with highly correlated assets. 

Also, and this has important consequences in many aspects of Financial Risk Management as well as advanced portfolio management, Covariance / Correlation computation can be skipped
altogether by computing unitized returns.  

This said Cholesky factorisation remains an important milestone in multivariate analysis. Indeed, each methodology has its own limitations in terms of:

  • quality of results (accuracy).

  • memory usage.

  • computational efficiency, 

Proof of Concept- Validation

P is a symmetric positive definite matrix.
C is the Cholesky decomposition of P.
CT is the Transpose of C.

 

If C is a lower triangular matrix, then P can be decomposed accordingly.
If C wa s upper triangular this would obviously be:
As one can see, the Cholesky decomposition is simply the square root of the matrix P! You can thus always validate your input by simply multiplying the results by its transpose.
This approach is well documented and works fine as long as the matrix is positive Definite.

If

1. A Simple Brownian Motion Application:

Let’s say we want to model a Brownian motion across asset classes: interest rates, foreign
exchange rates commodities and equities. In this specific application note, we will consider the simplest movement possible. We indeed assume returns are not serially correlated  (i.e. the
re is no autocorrelation) which is somewhat acceptable when dealing with short timeframes. We also presume the movement can  be described in terms of their first two moments.

 

Variable   Description
Mu(IR)   

:

a scalar or vector of mean expected returns on interest rates.
Mu(Co)  : a scalar or vector of mean expected returns on commodities prices.
Mu(Fx)  : a scalar or vector of mean expected returns on foreign exchange rates.
Mu(Eq) : a scalar or vector of mean expected returns on equity / index prices.
C   : a Cholesky decomposition of the variance-covariance matrix across all assets.
dZ(..)  : a scalar or vector of Normalized random variate.
dt :  a small time-step.  

         

 

 


In a multidimensional model incorporating mean expected returns, Mu(…) becomes a vector of expected returns (computed via time-series, estimated via forecasts, etc).

C then becomes a larger lower triangular matrix containing sub-matrices of each asset class.

As mentioned the Cholesky decomposition of the Variance-Covariance matrix, is merely the square root of the input matrix. If we fall back to the single dimensional case, C would collapse to the usual standard deviation or volatility of the asset.

 

Zero-Mean Assumption Simplification:

When dealing with short horizons, a zero-mean is often assumed. Although this assumption does not hold very well beyond the typical one-month horizon it has become standard to the risk management industry when computing absolute VaR.

In the mean-zero framework the model simplifies further:
 
 

In this instance, the Brownian motion is simply the exponential of the normalized random
draw multiplied by the coefficient of the Cholesky decomposition matrix.

 with

This return can then be used directly to compute densities or multiplied by the previous level
 in order to obtain a simulated price.

Although simple interest rate schemes might use the aforementioned approach on Zero coupon bond prices directly, sounder approaches might use risk-neutral Forward rates or even better actual Forward measures.

Note: A further scheme is to incorporate sparse control to generate correlation within and across asset classes.

 

2. The Mean Reverting process and long term Forecasting:

The first example of this application note assumed returns on asset prices were not serially correlated. This assumption holds quite well when the simulation horizon is  short. i.e. usually under three months. However for  longer horizons, especially in credit modelling, autocorrelation can actually play an important role.  

Advanced applications must incorporate autocorrelation in the Brownian motion generation. This is especially important when dealing with long-term simulations where volatility cannot be considered stationary. If the time series includes positive or negative autocorrelation, the distribution’s volatility cannot be computed by simply applying the square root of time (which assumes volatility is stationary throughout time). If the time series presents trending (positive correlation), the true volatility will be under-estimated. If the data presents mean reversion, which is especially true for interest rate curves, then the volatility will be over-estimated.

Let’s take a simple mean reverting log-normal process as usually applied to interest rates.

 

               d[Log( R )] = A ( b – Log( R ) ) dt  +  V*C* dZ    

A is the diagonal matrix of mean reversion speeds.  
b is the vector of long term mean reverting levels
R is the vector short-term interest rates for each vertex of the term structure.  
V is the diagonal Matrix of Variance (vol^2).
C is the Cholesky Decomposition of the variance-covariance matrix.  
Z is a vector of independent normal random variables.

 

        Calculation of A and b

The values of A and b are usually calculated by simple regression. 

In the standard framework, the elements of A are obtained by estimating the ratio between the instantaneous volatility of the vertex  divided by the long term volatility level (times two, since the log-normal framework assumes b is the log of the long term rate of a given vertex minus one half the long term variance of this vertex.

In practice, this can be seen as the slope between the long and short term volatilities of interest rates, where b stands as the intercept of the long-term rates minus one half of their long term variance).
Other more complex implementations will use Conjugate or Bi-Conjugate Gradients to compute speeds and levels while other might observe these directly form market data implied volatility.

Thus, for each Rate on each pre-selected vertex of our curve, the new rate at time t+1 will be simulated accordingly:


R(t+1)=  

 

3. Generating Default Events from Obligor Correlations:

the third application has been moved to the Time-To-Default Add-In

 

 

Copyright © 1996,1997, 1999-2012 RiskServers SA. All Rights Reserved
Terms of Use | About

Financial Instruments carry many risks... & rewards for those who understand them!

Top of Page