My question in short is as follows: can I take main principal component of historical covariance matrix and use it as historical volatilities when fitting a binomial tree?

Here's more detailed description: let's suppose I want to build Hull-White or BDT tree. They both need current rates curve $r(t)$ and volatility curve $\sigma(t)$.

Let's also suppose I have a history of interest rates in columns

r(1)   r(2)   r(3)   r(4)     <---- index means they are of different terms

 6%     7%     8%    8.5%     <----- example numbers
 4%     6.5%   9%    10%
 ...    ...    ...   ...
 7%     11%    13%   14%

What can I do to estimate volatility? Easiest way is to calculate standard deviation of differenced values in each column (hope it is evident what I mean).

Another approach is to obtain whole covariance matrix $\Omega$, which items are $\Omega_{i,j} = \sigma_i \sigma_j \rho_{i,j}$. In this case our standard deviations from previous approach will lie on main diagonal of that matrix.

What we now can do is apply PCA so that to have covariance matrix decomposed into main components. This means I decompose how matrix $\Omega$ multiples by some vector $x$ in the following way: $\Omega x = \left(\lambda_1 u_1 u_1^T + ... + \lambda_N u_N u_N^T\right) x$. And if I take first principal componenent $u_1$ which corresponds to largest $\lambda$, I have some vector with volatilies along the the time, which gives most effect: $\Omega x \approx \lambda_1 u_1 u_1^T x$.

So, I want to understand if I could use that $u_1$ instead of vector of simple standard deviations, in a hope that such choice will help me better capture term structure behavior?


2 Answers 2


The first principle component of interest rates will not help you capture the term structure better at all. It will basically remove all term structure affects you are going to see.

When we decompose the returns on interest rates you are going to get 3 PC's which explain 99.9% of the variance.

PC1 - Level of the interest rates (~90% of variance) PC2 - Slope of the interest rates (~8% of variance) PC3 - Curvature of the interest rates (~2% of variance)

Forecasting volatility for options pricing is difficult and I don't think PCA is going to be your one stop shop for a good estimate.


A way to go would be to linearly build indepedant interest rates to eliminate correlation effects. How do you do that ? You linearly build orthogonal interest rates from your starting ones. This is totaly equivalent to diagonalising correlation matrix, which is the principle of PCA.

Using information criteria you can then choose to remove lowest components, but using only the first one without checking others would be a mistake. Reducing dimension with PCA.

Concerning binomial trees, from what I remember binomial trees and multivariate datasets does not go well. For m dimensions, each step will multiply branches by $2^{m}$, and you should have N step where N is big. Even if there is recombination you will end up with $N^{m}$ values (plus all intermediate values). Operations needed grow more than exponentialy with the dimension, you will rapidly meet a power computing barrier. I remember a teacher saying that binomial tree are not suited for m>2.

(And that is just for building the tree, I assume you want to work with it after building it... it can add a lot more complexity).

  • $\begingroup$ You see, I want to build 1D flat tree, the question is only how would it be better to choose volatility structure to calibrate the model. The choice I see now is use either straightforward historical volatilities without any account for correlations, or calculate covariance matrix and take first PCA component from it. In both cases I have 1xN vector with volatilities, which I (technically) can use as a starting point of building a tree $\endgroup$
    – Rustam
    Jun 20, 2013 at 16:39
  • $\begingroup$ 1D tree with 1xN volatility vector, are you sure about that ? $\endgroup$ Jun 21, 2013 at 10:30
  • $\begingroup$ I've found an old question that already answer the problem: quant.stackexchange.com/questions/236/… $\endgroup$ Jun 21, 2013 at 10:31
  • 2
    $\begingroup$ The first eigenvalue is not a good estimation of volatility of the portfolio, it just give the volatility of the best approximation of the portfolio with 1 dimension. $\endgroup$ Jun 21, 2013 at 10:35
  • $\begingroup$ 1) 1D tree is a kind of nonsense, sorry for that. I meant, well, usual tree in two dimensions - asset and time. Now, such tree is built using two 1xN vectors - interest rate curve and volatility. Example code here link $\endgroup$
    – Rustam
    Jun 21, 2013 at 10:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.