Main Content

drift

漂移率模型分量

说明

drift 对象指定连续时间随机微分方程 (SDE) 的漂移率分量。

漂移率设定支持模拟 NVars 个状态变量(由 NBrowns 个布朗运动风险源驱动)在 NPeriods 个连续观测周期内的样本路径,以便逼近连续时间随机过程。

漂移率设定可以是采用以下一般形式的任何 NVars×1 向量值函数 F:

F(t,Xt)=A(t)+B(t)Xt

其中:

  • A 是一个 NVars×1 向量值函数,可使用 (t, Xt) 接口访问。

  • B 是一个 NVars×NVars 矩阵值函数,可使用 (t, Xt) 接口访问。

并且漂移率设定与采用以下形式的向量值 SDE 相关联:

dXt=F(t,Xt)dt+G(t,Xt)dWt

其中:

  • Xt 是过程变量的 NVars×1 状态向量。

  • dWtNBrowns×1 布朗运动向量。

  • A 和 B 是模型参数。

漂移率的设定很灵活,可为静态/线性漂移模型提供直接的参数支持。它还可以扩展,能通过接口为动态/非线性模型提供非直接支持。这使得您可以指定几乎任何漂移率设定。

创建对象

描述

示例

DriftRate = drift(A,B) 创建一个默认的 DriftRate 模型分量。

使用以下类型之一指定所需的输入参数 AB

  • MATLAB® 数组。指定数组表示静态(非时变)参数设定。此数组完全捕获与参数形式明显相关的所有实现细节。

  • MATLAB 函数。指定函数可为几乎任何静态、动态、线性或非线性模型提供间接支持。此参数通过接口支持,因为所有实现细节都隐藏并被函数完全封装。

注意

您可以根据需要指定数组和函数输入参数的组合。

此外,如果函数接受标量时间 t 作为其唯一输入参量,则将参数识别为时间的确定性函数。否则,系统将假定参数为时间 t 和状态 X(t) 的函数,并使用两个输入参量调用。

您创建的 drift 对象封装了复合漂移率设定并返回下面显示的参数:

  • Rate - 漂移率函数 F。Rate 是漂移率计算引擎。它接受当前时间 t 和 NVars×1 状态向量 Xt 作为输入,并返回一个 NVars×1 漂移率向量。

  • A - A 输入参量的访问函数。

  • B - B 输入参量的访问函数。

输入参量

全部展开

A 表示参数 A,指定为数组或时间的确定性函数。

如果您指定 A 为数组,它必须是 NVars×1 的截距列向量。

作为时间的确定性函数,当以实数值标量时间 t 作为唯一输入调用 A 时,A 必须生成一个 NVars×1 列向量。如果您指定 A 为时间和状态的函数,则在使用下面两个输入调用时,它必须生成 NVars×1 的截距列向量:

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

数据类型: double | function_handle

B 表示参数 B,指定为数组或时间的确定性函数。

如果您指定 B 为数组,它必须是 NVars×NVars 的状态向量系数二维矩阵。

作为时间的确定性函数,当以实数值标量时间 t 作为唯一输入调用 B 时,B 必须生成一个 NVars×NVars 矩阵。如果您指定 B 为时间和状态的函数,则在使用下面两个输入调用时,它必须生成 NVars×NVars 的状态向量系数矩阵:

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

数据类型: double | function_handle

属性

全部展开

此 属性 为只读。

复合漂移率函数,指定为 F(t,Xt)。存储在 Rate 中的函数完全封装了 AB 的组合效果,其中 AB 为:

  • A:F(t,Xt) 的截断项 A(t,Xt)

  • B:F(t,Xt) 的一阶项 B(t,Xt)

数据类型: struct | double

示例

全部折叠

创建漂移率函数 F

F = drift(0, 0.1)   % Drift rate function F(t,X)
F = 
   Class DRIFT: Drift Rate Specification  
   -------------------------------------  
      Rate: drift rate function F(t,X(t)) 
         A: 0
         B: 0.1

drift 对象看起来像一个 MATLAB® 结构体,并包含补充信息(即,对象的类和简要描述)。但是,与 SDE 表示相反,没有出现模型维度摘要,因为 drift 类创建了一个模型分量而不是模型。F 没有包含足够的信息来表征问题的维度。

详细信息

全部展开

算法

当您将输入参量 AB 指定为 MATLAB 数组时,它们将与线性漂移参量式相关联。相比之下,当您将 AB 指定为函数时,您可以自定义几乎任何漂移率设定。

在没有输入的情况下访问输出漂移率参数 AB 只会返回原始输入设定。因此,当您不带输入调用漂移率参数时,它们的行为就像简单的属性,您可以测试指定的原始输入的数据类型(是双精度值还是函数,即是静态的还是动态的)。这对于验证和设计方法非常有用。

当您使用输入调用漂移率参数时,它们的行为类似于函数,给人以动态行为的印象。参数 AB 接受观测时间 t 和状态向量 Xt,并返回适当维度的数组。具体来说,参数 AB 会计算相应的漂移率分量。即使您最初将输入指定为数组,drift 也会将其视为时间和状态的静态函数,这样可以确保所有参数都可由同一接口访问。

参考

[1] Aït-Sahalia, Yacine. “Testing Continuous-Time Models of the Spot Interest Rate.” Review of Financial Studies, vol. 9, no. 2, Apr. 1996, pp. 385–426.

[2] Aït-Sahalia, Yacine. “Transition Densities for Interest Rate and Other Nonlinear Diffusions.” The Journal of Finance, vol. 54, no. 4, Aug. 1999, pp. 1361–95.

[3] Glasserman, Paul. Monte Carlo Methods in Financial Engineering. Springer, 2004.

[4] Hull, John. Options, Futures and Other Derivatives. 7th ed, Prentice Hall, 2009.

[5] Johnson, Norman Lloyd, et al. Continuous Univariate Distributions. 2nd ed, Wiley, 1994.

[6] Shreve, Steven E. Stochastic Calculus for Finance. Springer, 2004.

版本历史记录

在 R2008a 中推出