Generating Correlated Hull–White Short-Rate Paths
Summary
The document explains how to simulate two correlated Hull–White short-rate processes, such as rates for two currencies, using QuantLib. Its suggested construction combines separate Hull–White processes in a stochastic process array and supplies a correlation matrix to specify their dependence.
The combined process can then be passed to a multidimensional path generator, which produces paired paths for the two rates. The example gives a correlation value as an illustration, not as an empirically estimated parameter. It does not discuss calibration, time-varying correlation, model validation, or the limitations of the Hull–White assumptions, so users still need to choose and justify model parameters for their application.
Key ideas
- Model each short rate with its own Hull–White process.
- Combine the processes in a stochastic process array and specify their correlation matrix.
- Use a multidimensional Gaussian path generator to obtain paired rate paths.
- The example illustrates implementation but does not address calibration or model validation.
Tags
Full text
# Monte-Carlo simulation Hull-White process
# Monte-Carlo simulation Hull-White process
I have one question about Monte-Carlo simulation Hull-White process, maybe you can give me some advice.
I constructed a Hull-White process using Python and QuantLib. Now I want to construct a Hull-White process for two correlated short rates. For example, I want model rates in two correlated currency.
I use `ql.HullWhiteProcess` and `ql.GaussianPathGenerator` for constructing one Hull-White process and path generator. But I can't understand how get two correlated paths.
## Answer by Luigi Ballabio (score 2, accepted)
https://quant.stackexchange.com/a/37904
You can try combining the two processes and a correlation matrix into a single process:
```
p1 = ql.HullWhiteProcess(rf, 0.01, 0.20)
p2 = ql.HullWhiteProcess(rf, 0.005, 0.15)
rho = [[1.0, 0.5],
[0.5, 1.0]]
P = ql.StochasticProcessArray([p1, p2], rho)
```
at which point you can use the combined process `P` with the `GaussianMultiPathGenerator` class. Each sample will return a pair of paths for the two processes.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.