An Internally Consistent Interpolation Method for Yield Curves

Here we present a new yield curve interpolation method, one that’s based on conditioning a stochastic model on a set of market yields. The concept is closely related to a Brownian bridge where you generate scenario according to an SDE, but with the extra condition that the start and end of the scenario’s must have certain values. In this article we use Gaussian process regression to generalization the Brownian bridge and allows for more complicated conditions. As an example we condition the Vasicek spot interest rate model on a set of yield constraints, and give analytical solution.


Note: You can now download an Excel worksheet containing the model
SitmoVasicekInterpolation.xls


The resulting model output can be used for various purposes:

  • Monte Carlo scenario generation
  • Yield curve interpolation
  • Estimating optimal hedges, and the associated risk for non tradable products

In general this technique gives an analytical solution of the conditional scenario pdf.
Scenario generation can be accomplished by sampling from that distribution. A different
application is to calculate the average yield as a function of maturity (the average of
the scenario’s), which can be viewed as a interpolation method. Yet another applications is to use the relationships between yield to estimate hedges based on the relationship between interpolated yields and the available yields from quoted products.

The Vasicek SDE

We use the following notation for the Vasicek SDE rate model

(1)   \begin{equation*} dr_t = k(\Theta - r_t)+ \sigma dW_t \end{equation*}

The spot rate distribution of the Vasicek model. The green line mu is the long term mean, blue line is the average forward rate, the three red lines are random scenario's, the blue area is the 95% confidence interval.

Properties of the rate

the rate r_t has has the following properties

(2)   \begin{align*} E[r_t | r_0] &= e^{-kt}[r_0 + \Theta (e^{kt} -1)] \\ \text{Var}[r_t] &= \sigma^2 \left( \frac{1 - e^{-2kt}}{2k} \right) \nonumber \\ \text{Cov}[r_t,r_u] &= \frac{\sigma^2}{2k} e^{-k(t+u)} \left(e^{2k\min(t,u)} -1 \right) \nonumber \end{align*}

Properties of the Yield

With a Gaussian spot, the yield Y_t can be shown to be Gaussian too. The yield is defined as
-the average compounded rate during the time interval up to t-

(3)   \begin{equation*} Y_t =\frac{1}{t} \int_0^t r_u du \end{equation*}

The yield of the Vasicek spot rate model. It looks similar to the spot rate except that it's less volatile due to the averaging.

The yield It has these properties

(4)   \begin{align*} E[Y_t] &= \frac{r_0 - \Theta}{kt} \left(e^{-kt} -1\right) + \Theta  \\ \text{Var}[Y_t] &= \frac{\sigma^2}{2k^3 t^2} \left( 2kt -3 +4e^{-kt} -e^{-2kt} \right) \nonumber \\ \text{Cov}[Y_t,Y_u] &= \frac{\sigma^2}{2k^3 t u }\left ( 2kt -2 + 2e^{-kt} +2e^{-ku} -e^{k(t+u)}-e^{-k(t+u)} \right) \text{ for }t<u \nonumber \end{align*}

the Cov is solved using this relation

(5)   \begin{equation*} \text{Cov}[\int r_t dt , \int r_u du] = \int \int \text{Cov}[r_t,r_u] dt du  \end{equation*}

The Yield as a Gaussian

Let \mathbf{Y}= \{Y_{t_1}, Y_{t_2}, \ldots Y_{t_d} \} be the yield at a d points in time.
To simplify notation, let \mathbf{\mu}=E[\mathbf{Y}] and \mathbf{\Sigma}=\text{Cov}[\mathbf{Y},\mathbf{Y}].
From the result we know that these yields will have a d dimensional Gaussian distribution.

(6)   \begin{equation*} \mathbf{Y} \sim \mathcal{N} \left( \mathbf{\mu},\mathbf{\Sigma} \right) \end{equation*}

Conditional Distribution of a Gaussian

The d-dimensional Gaussian probability density functions is given by:

(7)   \begin{equation*} \mathcal{N}(\mathbf{Y}, \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \frac{\exp\left[ \textstyle-\frac{1}{2}(\mathbf{Y}-\boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1} (\mathbf{Y}-\boldsymbol{\mu}) \right]} {\sqrt{(2\pi)^d|\boldsymbol{\Sigma}|}} \end{equation*}

with the distribution parameters \boldsymbol{\mu} the mean vector, \boldsymbol{\Sigma} the covariance matrix, and |\boldsymbol{\Sigma}| the determinant of \boldsymbol{\Sigma}.

Let \mathbf{Y},\boldsymbol{\mu} and \boldsymbol{\Sigma} be partitioned into a set of free variable
\mathbf{f}, and a set of conditioning variables \mathbf{z} with known fixed values.

(8)   \begin{equation*} \mathbf{Y}= \left[ \begin{array}{c}   \mathbf{z} \\   \mathbf{f} \end{array} \right] \sim \mathcal{N} \left( \left[ \begin{array}{c}   \boldsymbol{\mu_z} \\   \boldsymbol{\mu_f} \end{array} \right] , \left[ \begin{array}{cc}   \boldsymbol{\Sigma_{zz}} & \boldsymbol{\Sigma_{zf}} \\   \boldsymbol{\Sigma_{fz}} & \boldsymbol{\Sigma_{ff}} \end{array} \right] \right) \end{equation*}

The conditional density function \boldsymbol{f} |  \boldsymbol{z} of the multivariate Gaussian density is given as

    \begin{equation*}  \mathbf{f} |  \mathbf{z} \sim  \mathcal{N}( \mathbf{\mu_f} + \boldsymbol{\Sigma_{fz}} (\boldsymbol{\Sigma_{zz}})^{-1} (\mathbf{z} - \mathbf{\mu_z}), \boldsymbol{\Sigma_{ff}} -\boldsymbol{\Sigma_{fz}} (\boldsymbol{\Sigma_{zz}})^{-1} \boldsymbol{\Sigma_{zf}}) \end{equation*}

which can also be written as

(9)   \begin{align*}  \mathbf{f} |  \mathbf{z} &\sim \mathcal{N}(c_1  \mathbf{z} + c_2  ,c_3) \\ \text{with} \quad c_1 &= \boldsymbol{\Sigma_{fz}}  (\boldsymbol{\Sigma_{zz}})^{-1}  \notag \\ c_2 &= \boldsymbol{\mu_f} - \boldsymbol{\Sigma_{fz}}  (\boldsymbol{\Sigma_{zz}})^{-1} \boldsymbol{\mu_z}\notag \\ c_3 &=  \boldsymbol{\Sigma_{ff}} -\boldsymbol{\Sigma_{fz}} (\boldsymbol{\Sigma_{zz}})^{-1} \boldsymbol{\Sigma_{zf}} \notag \end{align*}

Conditioning the Yield Distribution on a Set of Values

We will now apply the conditioning equation (9) to the Gaussian yield solution
of the vasicek model (4).
The conditioning values \mathbf{z} will be a set zero yields values obtained from zero coupon bonds, and the free variable(s) \mathbf{f} as parameterized functions that define the distribution of the yield curve in general -which we’ll use for interpolation, MC sampling etc.-.

A couple of interesting thing to note already based on equation (9) are:

  • Looking at c_1, the mean of the free variables depends linear on the conditioned values.
  • The variance of the free variables does not depend on the values of conditioning varaibles (c_3).

The mean yield and 95% probability intervals of the conditioned Vasicek model. The red dots are the market yield.

Adding Variance to Future Yields

The conditioned yield is not a very realistic model. It assumes an uncertain evolution of
a stochastic spot rate, yet at the same time assumes that we know the yields for a set of future periods exactly. We can however very easily make the yields stochastic using the law
of total probability (Bayes rules).

(10)   \begin{equation*} P(f) = \int_M P(f|z=M)P(M) dM \end{equation*}

Assuming that a set of yields are multivariate Gaussian, i.e.

(11)   \begin{equation*} \mathbf{M} \sim \mathcal{N} \left( \mathbf{\mu_M},\mathbf{\Sigma_M} \right) \end{equation*}

will result in a analytical, Gaussian solution

(12)   \begin{equation*} P( f | z = M ) \sim \mathcal{N} \left( \mathbf{ c_1\mu_M + c_2},c_1 \mathbf{\Sigma_M} c_1^T +c_3 \right) \end{equation*}

Final Result

The final result, the Vasicek yield distribution, with adjusted (displaced) yield distributions slipped in to make it marked adjusted.

This entry was posted in Client Projects, Equations, Technical. Bookmark the permalink. Trackbacks are closed, but you can post a comment.

2 Comments

  1. Antonio
    Posted January 18, 2012 at 6:25 pm | Permalink

    Hi. Great work. Looks really cool and promissing. I’m looking into building a model to create a future curve based on a future set of fixed expectations (futire rates) using Vasicek and which I’ll apply to my swap model – this looks like something I might be able to use. Would you have an excel implementation of the above?? I’m not a math guy and implementing such things prove to be hard most of the time. If you don’t thanks anyway. I will keep trying.
    best resgards

  2. Thijs van den Berg
    Posted January 18, 2012 at 8:09 pm | Permalink

    Hi Antonio,

    Interesting. That’s good to hear. I’ve indeed got an Excel file for you (see below)!

    It’s limited to 4 tenors (I used it to construct the plots here). Having this reference implementation should hopefully get you going and act as a basic of constructing the sheet you need? Feel free to ask questions if you run into things.

    I can also help you structurally and build the tool you need, but that would then be in a consultant role.

    Here’s the sheet:
    SitmoVasicekInterpolation.xls

    Enjoy!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">