Calibrating the Hull–White Model to the Market Zero Curve
Summary
The document explains how the one-factor Hull–White short-rate model is fitted to an observed bond term structure. Its time-dependent drift is chosen so that model-implied zero-coupon bond prices match market prices at the calibration date. The stated consistency condition equates a model expectation of the discount factor with the observed market bond price; substituting the integrated short-rate process yields the drift formula.
For market inputs, the answer recommends bootstrapping a zero curve from suitable bonds or swaps, interpolating it, and deriving discount factors and forward rates. The interpolation must support the derivatives required by the chosen formulation. It also describes shifting the short rate by the market instantaneous forward rate to form a state variable whose dynamics avoid differentiating that forward rate again during simulation or finite-difference valuation. The explanation gives the derivation’s starting condition and implementation implications, but not the intermediate algebra or a worked market calibration.
Key ideas
- The Hull–White drift is selected to make model bond prices agree with observed market prices.
- The calibration condition matches expected model discount factors to market zero-coupon bond prices.
- Market curves can be bootstrapped from bonds or swaps and interpolated to obtain discount factors and forward rates.
- Interpolation choices must provide the derivatives required by the model formulation.
- Using the shifted short rate as the state variable can simplify numerical valuation.
Tags
Full text
# Details of calibration of Hull-White model
# Details of calibration of Hull-White model
Consider the one-factor Hull-White model
$$ \mathrm{d}r(t) = (\theta(t)-\kappa r(t))\mathrm{d}t + \sigma\mathrm{d}W(t) $$
When one calibrates the model to market data one chooses
$$ \theta(t) = \frac{\partial f^M}{\partial T}(0,t) + \kappa f^M(0,t) + \frac{\sigma^2}{2\kappa}\left(1-\mathrm{e}^{-2\kappa t}\right) $$
where $f^M(0,T) = -\frac{\partial}{\partial T}\log(P^M(0,T))$ with the observed bond term structure $P^M(0,T)$ at the time of calibration.
I have several questions regarding this calibration:
- How do I come up with this formula for $\theta(t)$? I always read that this aligns the model with the market's zero curve. How can you derive that this formula in fact establishes the desired consistency?
- How do I come up with $P^M(0,T)$ and $f^M(0,T)$? Am I right that the following approach is taken? First the zero curve $y^M(t)$ is bootstrapped using coupon bearing instruments. The bootstrapped curve is just given at a finite number of points given by the maturities of the considered instruments. We interpolate these points (e.g. via spline interpolation) to obtain the function $y^M(t)$ on a continuous domain. Now we obtain $P^M(0,T)$ by setting $P^M(0,T) = \exp(-y^M(T)T)$. In a final step we compute the derivative $f^M(0,T):=-\frac{\partial}{\partial T}\log (P^M(0,T)) = -\frac{\partial}{\partial T}\left(y^M(T)T\right) = -\left(\frac{\partial}{\partial T}y^M(T)\right)T - y^M(T)$
## Answer by Antoine Conze (score 2, accepted)
https://quant.stackexchange.com/a/39018
Regarding your first question: the equation for $\theta(t)$ is obtained from the consistency condition $$ \forall T, \;\; E\left[e^{-\int_0^T r(t) dt} \right] = P^M(0,T) $$ after a somewhat involved calculation using the integrated version of the SDE for $r$ $$ r(t)=e^{-\kappa t}r(0) + \int_0^t e^{-\kappa (t-u)} \theta(u) du + \int_0^t e^{-\kappa (t-u)} \sigma dW(u) $$
Regarding your second question yes you bootstrap the zero curve on the choosen instruments, bonds or swaps depending on the market you are modeling. You may choose splines, or any other type of interpolation as long as the required derivatives can be computed.
As a sidenote if you define $x(t) = r(t) - f^M(0,t)$ then the SDE for $x$ is $$ dx(t) = \left(-\kappa x(t) + \frac{\sigma^2}{2 \kappa}(1- e^{-2 \kappa t})\right) dt + \sigma dW(t) $$ Thus when doing MC simulation or finite differences schemes you can use $x(t)$ as the state variable, and then simply add $f^M(0,t)$ to obtain $r(t)$, so that in fact you do need to compute $\frac{\partial f^M(0,t)}{\partial t}$, which means that zero curve interpolation methods that are not twice differentiable but only once differentiable (such as linear on yield or linear on log discounts) will produce $P^M(0,T)$ and $f^M(0,t)$ that can still be used with the model.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.