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) 

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
has has the following properties
(2) ![Rendered by QuickLaTeX.com \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*}](http://www.sitmo.com/wp-content/ql-cache/quicklatex.com-4964687bd24dcc9952d9c65e0316896c_l3.png)
Properties of the Yield
With a Gaussian spot, the yield
can be shown to be Gaussian too. The yield is defined as
-the average compounded rate during the time interval up to
-
(3) 

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) ![Rendered by QuickLaTeX.com \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*}](http://www.sitmo.com/wp-content/ql-cache/quicklatex.com-e35591c5d7cb6fa9b92bff8d32aea275_l3.png)
the Cov is solved using this relation
(5) ![Rendered by QuickLaTeX.com \begin{equation*} \text{Cov}[\int r_t dt , \int r_u du] = \int \int \text{Cov}[r_t,r_u] dt du \end{equation*}](http://www.sitmo.com/wp-content/ql-cache/quicklatex.com-a4046588af8f8fa66968e2a075670faa_l3.png)
The Yield as a Gaussian
Let
be the yield at a
points in time.
To simplify notation, let
and
.
From the result we know that these yields will have a
dimensional Gaussian distribution.
(6) 
Conditional Distribution of a Gaussian
The
-dimensional Gaussian probability density functions is given by:
(7) ![Rendered by QuickLaTeX.com \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*}](http://www.sitmo.com/wp-content/ql-cache/quicklatex.com-b78f40a8a8db355e806679c494ed15ca_l3.png)
with the distribution parameters
the mean vector,
the covariance matrix, and
the determinant of
.
Let
and
be partitioned into a set of free variable
, and a set of conditioning variables
with known fixed values.
(8) ![Rendered by QuickLaTeX.com \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*}](http://www.sitmo.com/wp-content/ql-cache/quicklatex.com-48fc69b7a0f25aac6a1ff7734f996744_l3.png)
The conditional density function
of the multivariate Gaussian density is given as

which can also be written as
(9) 
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
will be a set zero yields values obtained from zero coupon bonds, and the free variable(s)
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
, 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 (
).

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) 
Assuming that a set of yields are multivariate Gaussian, i.e.
(11) 
will result in a analytical, Gaussian solution
(12) 

2 Comments
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
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!