# LinearGaussian2F

Create two-factor additive Gaussian interest-rate model

## Description

The two-factor additive Gaussian interest rate-model is specified using the zero curve, a, b, sigma, eta, and rho parameters.

Specifically, the LinearGaussian2F model is defined using the following equations:

`$r\left(t\right)=x\left(t\right)+y\left(t\right)+\varphi \left(t\right)$`

`$dx\left(t\right)=-a\left(t\right)x\left(t\right)dt+\sigma \left(t\right)d{W}_{1}\left(t\right),x\left(0\right)=0$`

`$dy\left(t\right)=-b\left(t\right)y\left(t\right)dt+\eta \left(t\right)d{W}_{2}\left(t\right),y\left(0\right)=0$`

where $d{W}_{1}\left(t\right)d{W}_{2}\left(t\right)=\rho dt$ is a two-dimensional Brownian motion with correlation ρ, and ϕ is a function chosen to match the initial zero curve.

## Creation

### Syntax

``G2PP = LinearGaussian2F(ZeroCurve,a,b,sigma,eta,rho)``

### Description

example

````G2PP = LinearGaussian2F(ZeroCurve,a,b,sigma,eta,rho)` creates a `LinearGaussian2F` (`G2PP`) object using the required arguments to set the Properties. NoteAlternatively, you can use the `LinearGaussian2F` model object to create a two-factor additive Gaussian interest-rate model. For more information, see Get Started with Workflows Using Object-Based Framework for Pricing Financial Instruments. ```

## Properties

expand all

Zero curve, specified as an output from `IRDataCurve` or a `RateSpec` that is obtained from `intenvset`. This is the zero curve used to evolve the path of future interest rates.

Data Types: `object` | `struct`

Mean reversion for the first factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean reversion value.

Data Types: `double`

Mean reversion for the second factor, specified either as a scalar or as a function handle which takes time as input and returns a scalar mean reversion value.

Data Types: `double`

Volatility for the first factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean volatility.

Data Types: `double`

Volatility for the second factor, specified either as a scalar or function handle which takes time as input and returns a scalar mean volatility.

Data Types: `double`

Scalar correlation of the factors, specified as a numeric value.

Data Types: `double`

## Object Functions

 `simTermStructs` Simulate term structures for two-factor additive Gaussian interest-rate model

## Examples

collapse all

Create a two-factor additive Gaussian interest-rate model using an `IRdataCurve`.

```Settle = datetime(2007,12,15); CurveTimes = [1:5 7 10 20]'; ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]'; CurveDates = daysadd(Settle,360*CurveTimes,1); irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates); a = .07; b = .5; sigma = .01; eta = .006; rho = -.7; G2PP = LinearGaussian2F(irdc,a,b,sigma,eta,rho)```
```G2PP = LinearGaussian2F with properties: ZeroCurve: [1x1 IRDataCurve] a: @(t,V)ina b: @(t,V)inb sigma: @(t,V)insigma eta: @(t,V)ineta rho: -0.7000 ```

Use the `simTermStructs` method to simulate term structures based on the `LinearGaussian2F` model.

` SimPaths = simTermStructs(G2PP, 10,'nTrials',100);`

Create a two-factor additive Gaussian interest-rate model using a `RateSpec`.

```Settle = datetime(2007,12,15); CurveTimes = [1:5 7 10 20]'; ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]'; CurveDates = daysadd(Settle,360*CurveTimes,1); RateSpec = intenvset('Rates',ZeroRates,'EndDates',CurveDates,'StartDate',Settle); a = .07; b = .5; sigma = .01; eta = .006; rho = -.7; G2PP = LinearGaussian2F(RateSpec,a,b,sigma,eta,rho)```
```G2PP = LinearGaussian2F with properties: ZeroCurve: [1x1 IRDataCurve] a: @(t,V)ina b: @(t,V)inb sigma: @(t,V)insigma eta: @(t,V)ineta rho: -0.7000 ```

Use the `simTermStructs` method to simulate term structures based on the `LinearGaussian2F` model.

` SimPaths = simTermStructs(G2PP, 10,'nTrials',100);`

expand all

## References

[1] Brigo, D. and F. Mercurio. Interest Rate Models - Theory and Practice. Springer Finance, 2006.

## Version History

Introduced in R2013a