Estimating the Time-Varying Drift in a Hull–White One-Factor Model
Summary
The document poses a parameter-estimation problem for simulating bond-index prices with a one-factor Hull–White stochastic differential equation whose drift, mean-reversion, and volatility terms may vary over time. The author proposes estimating the mean-reversion component with a local linear trend state-space model and Kalman filtering, then forecasting volatility with a GARCH(1,1) model. The unresolved issue is how to estimate the time-varying drift term, which enters the process through an integral.
No solution, fitted parameters, simulation results, or evidence are supplied; this is a technical question rather than a worked method. It also leaves key modeling choices unspecified, including how the index observations map to the model state and how time-varying parameters are identified. The proposed component models are the author's approach, not a validated prescription, and the document does not establish whether they are suitable for bond-index dynamics or risk-neutral pricing.
Key ideas
- The question concerns estimating a time-varying drift in a one-factor Hull–White process.
- The author proposes a local linear trend model with Kalman filtering for the mean-reversion component.
- A GARCH(1,1) model is proposed to forecast conditional volatility.
- The document does not provide a drift-estimation method or demonstrate the proposed setup empirically.
Tags
Full text
# How can I estimate the time-varying θ term in the Hull-White one factor model?
# How can I estimate the time-varying θ term in the Hull-White one factor model?
I am trying to simulate the prices of bond indexes (e.g. Barclays Aggregate, IBOXX sovereign, IBOXX corporates) using Monte Carlo assuming that they follow the SDE given by the Hull-White model (one-factor model):
$ dS_t = (\theta_t - \alpha_t S_t)dt +\sigma_t dW_t $
where $\theta, \alpha$ and $\sigma$ are time-dependent.
First, I treat $\alpha_t$ as the mean of my process (~$\mu_t$). I am estimating and forecasting $\mu_t$ using the Local Linear Trend State Space model and the Kalman Filter.
$\begin{align} Y_t &= \mu_t + \epsilon_t & \epsilon_t &\sim NID(0,\sigma_{\epsilon}^{2})\\ \mu_{t+1} &= \mu_{t} + \beta_t + \xi_t & \xi_t &\sim NID(0,\sigma_{\xi}^{2})\\ \beta_{t+1}&= \beta_{t} + \zeta_t & \zeta_t &\sim NID(0, \sigma_{\zeta}^{2}) \\ \end{align}$
Afterwards, I apply GARCH(1,1) model in order to estimate the volatility ($\sigma_t$) one time-step forward, where:
$\sigma^2_t = \omega + \gamma \epsilon^2_{t-1} + \delta \sigma^2_{t-1} $
Then, comes my problem. Since $\theta$ is changing over time I cannot estimate it. If it was constant I could simply replace all the known elements and run a regression to find out its value. But now $\theta$ is inside an integral.
Is there a way for me to estimate $\theta_t$ and use it to simulate the process using Monte Carlo simulation?
I am using R to code it. Is there a package that I can use? Any code would be very appreciated.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.