Main Content

diffusion

扩散率模型分量

说明

diffusion 对象指定连续时间随机微分方程 (SDE) 的扩散率分量。

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

扩散率设定可以是采用以下一般形式的任何 NVars×NBrowns 矩阵值函数 G:

G(t,Xt)=D(t,Xtα(t))V(t)(1)
,其中:

  • D 是一个 NVars×NVars 对角矩阵值函数。

  • D 的每个对角元素是状态向量对应元素的 Alpha 指数次幂,该指数是一个 NVars×1 向量值函数。

  • V 是一个 NVars×NBrowns 矩阵值波动率函数 Sigma

  • AlphaSigma 也可以使用 (t, Xt) 接口访问。

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

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

,其中:

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

  • dWtNBrowns×1 布朗运动向量。

  • D 是 NVars×NVars 对角矩阵,其中沿着主对角线的每个元素是状态向量对应元素的 α 指数次幂。

  • V 是一个 NVars×NBrowns 矩阵值波动率函数 Sigma

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

创建对象

描述

示例

DiffusionRate = diffusion(Alpha,Sigma) 创建默认的 DiffusionRate 模型分量。

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

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

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

注意

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

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

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

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

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

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

输入参量

全部展开

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

如果您指定 Alpha 为数组,则它表示指数的 NVars×1 列向量。

作为时间的确定性函数,当以实数值标量时间 t 作为唯一输入调用 Alpha 时,Alpha 必须生成一个 NVars×1 矩阵。

如果您指定它为时间和状态的函数,则在使用下面两个输入调用它时,Alpha 必须返回指数的 NVars×1 列向量。

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

数据类型: double | function_handle

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

如果您指定 Sigma 为数组,它必须是 NVars×NBrowns 的瞬时波动率二维矩阵。在本例中,Sigma 的每行都对应于一个特定的状态变量。每列对应于一个特定的布朗不确定性源,并将状态变量的敞口量级与不确定性源相关联。

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

  • 实值标量观测时间 t。

  • NVars×1 状态向量 Xt

数据类型: double | function_handle

注意

虽然 diffusion 对这些波动率参数的符号未施加任何限制,但每个参数都指定为一个正值。

属性

全部展开

此 属性 为只读。

复合扩散率函数,指定为 G(t,Xt))。存储在 Rate 中的函数完全封装了 AlphaSigma 的组合效果,其中:

  • Alpha 是状态向量指数,决定了 G(t,Xt) 的 D(t,Xt) 的格式。

  • Sigma 是 G(t,Xt) 的波动率 V(t,Xt)。

数据类型: struct | double

示例

全部折叠

创建一个扩散率函数 G

G = diffusion(1, 0.3)  % Diffusion rate function G(t,X)
G = 
   Class DIFFUSION: Diffusion Rate Specification 
   --------------------------------------------- 
       Rate: diffusion rate function G(t,X(t))  
      Alpha: 1
      Sigma: 0.3

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

详细信息

全部展开

算法

当您将输入参量 AlphaSigma 指定为 MATLAB 数组时,它们将与特定的参量式相关联。相比之下,当您将 AlphaSigma 指定为函数时,您可以自定义几乎任何扩散率设定。

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

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

参考

[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 中推出