Skip to content
All library documents

Calibrating the Vasicek Model to Historical Rates and Bond Quotes

Article Quant Q&A · Author: Milan

Summary

The document discusses calibrating a Vasicek short-rate model under both the real-world probability measure and the risk-neutral measure. The questioner estimates mean reversion, the long-run rate, and volatility from historical daily short-rate data using simple regression, then asks whether the resulting mean-reversion estimate is plausible and how to fit the risk-neutral parameters to zero-coupon bond prices. The core modeling concern is how mean reversion and stochastic volatility jointly shape simulated rate paths.

The response considers the reported mean-reversion estimate unusually large and suggests fitting model parameters to quoted market data, including Treasury yields and caplet volatilities. It describes allowing mean reversion to vary with maturity and choosing a long-run yield estimate, then matching model yields to observed quotes. This is an informal exchange rather than a full calibration recipe: it gives no detailed estimation procedure, statistical diagnostics, or robust comparison of parameterizations, and the suggested parameter range is specific to the respondent’s setup rather than a general benchmark.

Key ideas

  • Historical rate data can be used to estimate real-world Vasicek parameters through regression.
  • Mean reversion controls how quickly rates are pulled toward the model’s long-run level, while volatility governs random shocks.
  • Risk-neutral parameters should be calibrated to market instruments such as bond yields and caplet volatilities.
  • A maturity-dependent mean-reversion specification may help fit observed market quotes, but the response does not establish a universal calibration method.

Tags

Full text
# Vasicek model calibration


# Vasicek model calibration












I am trying to calibrate Vasicek model, i.e. to determine the parameters $\kappa, \mu, \bar{\mu}$ and $\sigma$ where the process dynamics are given through $$ dr_t=\kappa\left( \mu - r_t\right) dt+\sigma d W^{\mathbb{P}}(t), $$ $$ dr_t=\kappa\left( \bar{\mu}- r_t\right) dt+\sigma d W^{\mathbb{Q}}(t), $$

where $W^{\mathbb{P}}$ is a Wiener process under the objective, real-world probability measure $\mathbb{P}$, and $W^{\mathbb{Q}}$ is a Wiener process under the risk-neutral measure $\mathbb{Q}$ (measure equivalent to $\mathbb{P}$).

Using historic proxies for short rates (daily rates starting from 01/01/2012), I first tried to work out the real-world calibration, i.e. to determine parameters $\kappa, \mu$ and $\sigma$, for which I used a pretty straight forward ordinary simple regression approach and I ended up with the following values: $$ \kappa = 3.1527, \\ \mu= 0.003, \\ \sigma= 0.0034.$$

The image shows actual historic data vs. two simulations of my calibrated Vasicek model.

My question is: do these parameters seem reasonable? I'm mostly concerned with how large $\kappa$ is relative to other parameters. Intuitively, it makes me think that it makes my short rate process more volatile and not in a stochastic way, but the deterministic drift is so large compared to the process mean, that it makes it jump a lot (sorry for my obviously very noob language here). And then, looking at it analytically - volatility of a Vasicek process is known and it is equal to $\text{Std}\left( r_t \right)=\sqrt{\frac{\sigma^2}{2 \kappa} \left[1-e^{-2 \kappa t} \right]}$, and so since my $\kappa$ is so large, my (stochastic) volatility is not that big so it is the huge deterministic drift that's making my process so crazy (or am I completely missing the point here?). Also, if what I am saying is right - how come that then our two simulations in many cases display the situation when $r(t)$ is for example larger than $\mu$ but in the next step it is not pushed down towards $\mu$ with 'big' deterministic drift?

All in all, I would really appreciate any insights on this - are these parameters just too crazy and should be discarded. If yes - which other calibration method would you suggest.

Also, once I get pass the real-world calibration - what approaches to the risk-neutral one would you suggest as well. I was thinking to simply find $\bar{\mu}$ as $$ \text{argmin}\sum_{T \in \{3,5,7,10,15\}} \left| P(T)-\bar{P}(T) \right|^2,$$ where $P(T)$ is today's observed market price of a $T$-maturity zero coupon bond, and $\bar{P}(T)$ is the model's implied today's price of a $T$-maturity zero (function of $\bar{\mu}$) coupon bond. Do you maybe think I should include more dates and not just today?

Anyways, apologies for my all over the place question. I am just puzzled with so many question about this thing, and will really appreciate any help, insight, point of view, suggestions on this. Thanks in advance.

## Answer by Kiann (score 1)

https://quant.stackexchange.com/a/41843

I have been working on, to generate vasicek model parameters as well. For what it's worth, your k seems large.

However, what I do, is to fit my Vasicek parameters to real-quoted data. So, I have the USD treasury yields for 1y, 2y, 3y, 4y, 5y. I have the caplet volatilities for the same structure. In our set-up, I set k (mean-reversion) to be time-dependent; and arbitrarily set an estimated long-term average yield.

I am able to extract a set of mean-reversion where the yields are very close. The mean-reversion ranges from 0.15 to 0.41 at the 5yr point.

Perhaps you can try to fit to quoted market-data?

Hope this helps

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.