Parametric Models
Creating Brownian Motion (BM) Models
The Brownian Motion (BM) model (bm
) derives directly from the linear
drift (sdeld
) model:
Specify Brownian Motion Model
Create a univariate Brownian motion (bm
) object to represent the model using bm
.
obj = bm(0, 0.3) % (A = Mu, Sigma)
obj = Class BM: Brownian Motion ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 0 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Mu: 0 Sigma: 0.3
bm
objects display the parameter A
as the more familiar Mu
.
The bm
object also provides an overloaded Euler simulation method that improves run-time performance in certain common situations. This specialized method is invoked automatically only if all the following conditions are met:
The expected drift, or trend, rate
Mu
is a column vector.The volatility rate,
Sigma
, is a matrix.No end-of-period adjustments and/or processes are made.
If specified, the random noise process
Z
is a three-dimensional array.If
Z
is unspecified, the assumed Gaussian correlation structure is a double matrix.
Creating Constant Elasticity of Variance (CEV) Models
The Constant Elasticity of Variance (CEV) model (cev
) also derives directly from the
linear drift (sdeld
) model:
The cev
object constrains
A to an NVars
-by-1
vector of zeros. D is a diagonal matrix whose elements are the
corresponding element of the state vector X, raised to an
exponent α(t).
Specify Univariate Constant Elasticity of Variance Model
Create a univariate cev
object to represent the model using cev
. The cev
model derives from the sdeld
(SDE with drift rate expressed in linear form) class and takes the form:
obj = cev(0.25, 0.5, 0.3) % (B = Return, Alpha, Sigma)
obj = Class CEV: Constant Elasticity of Variance ------------------------------------------ Dimensions: State = 1, Brownian = 1 ------------------------------------------ StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.25 Alpha: 0.5 Sigma: 0.3
cev
and gbm
objects display the parameter B
as the more familiar Return
.
Creating Geometric Brownian Motion (GBM) Models
The Geometric Brownian Motion (GBM) model (gbm
) derives directly from the CEV (cev
) model:
Compared to the cev
object, a gbm
object constrains all elements of the alpha
exponent vector to one such that D is now a diagonal matrix with
the state vector X along the main diagonal.
The gbm
object also provides two simulation
methods that can be used by separable models:
An overloaded Euler simulation method that improves run-time performance in certain common situations. This specialized method is invoked automatically only if all the following conditions are true:
The expected rate of return (
Return
) is a diagonal matrix.The volatility rate (
Sigma
) is a matrix.No end-of-period adjustments/processes are made.
If specified, the random noise process
Z
is a three-dimensional array.If
Z
is unspecified, the assumed Gaussian correlation structure is a double matrix.
An approximate analytic solution (
simBySolution
) obtained by applying a Euler approach to the transformed (using Ito's formula) logarithmic process. In general, this is not the exact solution to this GBM model, as the probability distributions of the simulated and true state vectors are identical only for piecewise constant parameters. If the model parameters are piecewise constant over each observation period, the state vector Xt is lognormally distributed and the simulated process is exact for the observation times at which Xt is sampled.
Specify Univariate Geometric Brownian Motion Model
Create a univariate gbm
object to represent the model using gbm
. The gbm
model allows the simulation of vector-valued GBM processes of the form:
obj = gbm(0.25, 0.3) % (B = Return, Sigma)
obj = Class GBM: Generalized Geometric Brownian Motion ------------------------------------------------ Dimensions: State = 1, Brownian = 1 ------------------------------------------------ StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.25 Sigma: 0.3
Creating Stochastic Differential Equations from Mean-Reverting Drift (SDEMRD) Models
The sdemrd
object derives directly from
the sdeddo
object. It provides an
interface in which the drift-rate function is expressed in mean-reverting drift
form:
sdemrd
objects provide a parametric
alternative to the linear drift form by reparameterizing the general linear drift
such that:
Specify SDE from a Mean-Reverting Drift Model
Create an sdemrd
object using sdemrd
with a square root exponent to represent the model:
obj = sdemrd(0.2, 0.1, 0.5, 0.05) % (Speed, Level, Alpha, Sigma)
obj = Class SDEMRD: SDE with Mean-Reverting Drift ------------------------------------------- Dimensions: State = 1, Brownian = 1 ------------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Alpha: 0.5 Sigma: 0.05 Level: 0.1 Speed: 0.2
sdemrd
objects display the familiar Speed
and Level
parameters instead of A
and B
.
Creating Cox-Ingersoll-Ross (CIR) Square Root Diffusion Models
The Cox-Ingersoll-Ross (CIR) short-rate object, cir
, derives directly from the SDE
with mean-reverting drift (sdemrd
) class:
where D is a diagonal matrix whose elements are the square root of the corresponding element of the state vector.
Specify Cox-Ingersoll-Ross Square Root Diffusion Model
Create a cir
object using cir
to represent the same model as in Specify SDE from a Mean-Reverting Drift Model.
obj = cir(0.2, 0.1, 0.05) % (Speed, Level, Sigma)
obj = Class CIR: Cox-Ingersoll-Ross ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Sigma: 0.05 Level: 0.1 Speed: 0.2
Although the sdemrd
and cir
objects are of different classes, they represent the same mathematical model. They differ in that you create the cir
object by specifying only three input arguments. This distinction is reinforced by the fact that the Alpha
parameter does not display – it is defined to be 1/2
.
Creating Hull-White/Vasicek (HWV) Gaussian Diffusion Models
The Hull-White/Vasicek (HWV) short-rate object, hwv
, derives directly from SDE with
mean-reverting drift (sdemrd
) class:
Specify Hull-White/Vasicek Gaussian Diffusion Model
Using the same parameters as in Specify Cox-Ingersoll-Ross Square Root Diffusion Model, create an hwv
object using hwv
to represent the model:
obj = hwv(0.2, 0.1, 0.05) % (Speed, Level, Sigma)
obj = Class HWV: Hull-White/Vasicek ---------------------------------------- Dimensions: State = 1, Brownian = 1 ---------------------------------------- StartTime: 0 StartState: 1 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Sigma: 0.05 Level: 0.1 Speed: 0.2
cir
and hwv
share the same interface and display methods. The only distinction is that cir
and hwv
model objects constrain Alpha
exponents to 1/2
and 0
, respectively. Furthermore, the hwv
object also provides an additional method that simulates approximate analytic solutions (simBySolution
) of separable models.
The simBySolution
method simulates the state vector using an approximation of the closed-form solution of diagonal drift HWV
models. Each element of the state vector is expressed as the sum of NBrowns
correlated Gaussian random draws added to a deterministic time-variable drift.
When evaluating expressions, all model parameters are assumed piecewise constant over each simulation period. In general, this is not the exact solution to this hwv
model, because the probability distributions of the simulated and true state vectors are identical only for piecewise constant parameters. If , , and are piecewise constant over each observation period, the state vector is normally distributed, and the simulated process is exact for the observation times at which is sampled.
Hull-White vs. Vasicek Models
Many references differentiate between Vasicek models and Hull-White models.
Where such distinctions are made, Vasicek parameters are constrained to be
constants, while Hull-White parameters vary deterministically with time. Think
of Vasicek models in this context as constant-coefficient Hull-White models and
equivalently, Hull-White models as time-varying Vasicek models. However, from an
architectural perspective, the distinction between static and dynamic parameters
is trivial. Since both models share the same general parametric specification as
previously described, a single hwv
object encompasses the
models.
Creating Heston Stochastic Volatility Models
The Heston (heston
) object derives directly from
SDE from the Drift and Diffusion (sdeddo
) class. Each Heston model is a
bivariate composite model, consisting of two coupled univariate models:
(1) |
(2) |
heston
are typically used to price equity options.Specify Heston Stochastic Volatility Model
Create a heston
object using heston
to represent the model:
obj = heston (0.1, 0.2, 0.1, 0.05)
obj = Class HESTON: Heston Bivariate Stochastic Volatility ---------------------------------------------------- Dimensions: State = 2, Brownian = 2 ---------------------------------------------------- StartTime: 0 StartState: 1 (2x1 double array) Correlation: 2x2 diagonal double array Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Return: 0.1 Speed: 0.2 Level: 0.1 Volatility: 0.05
See Also
sde
| bm
| gbm
| merton
| bates
| drift
| diffusion
| sdeddo
| sdeld
| cev
| cir
| heston
| hwv
| sdemrd
| rvm
| roughbergomi
| roughheston
| ts2func
| simulate
| simByEuler
| simByQuadExp
| simBySolution
| simBySolution
| interpolate