主要内容

使用卡尔曼滤波器估计和预测的迪堡,李型号

在2008年的金融危机之后,额外的偿付能力法规已经实施许多金融机构,将在市场估值更加重视,占负债。许多公司,尤其是保险公司和养老基金,写年金合同及招致长期负债呼吁复杂的方法,以模型和预测收益率曲线。

此外,由于长期负债的价值在低利率环境下大幅增加,因此应该准确地对极低收益率的概率进行建模。在这种情况下,利用卡尔曼滤波(Kalman Filter),由于它能够合并时变系数,并推断出推动已观测产量演变的未观测因素,通常适合于估计产量曲线模型参数和随后对产量进行模拟和预测。这是保险和养老金分析的核心。

下面的示例演示了通过拟合流行的Diebold-Li模型,使用状态空间模型(SSM)和卡尔曼滤波器则只产生模型[2]从政府债券数据得出的月度收益率曲线时间序列。该示例强调了Econometrics Toolbox™中可用的SSM功能的估计、模拟、平滑和预测能力,并将其估计性能与更传统的计量技术进行了比较。

该示例首先介绍Diebold-Li模型,然后概述计量经济学工具箱的SSM功能支持的参数状态空间表示,然后说明如何在状态空间表示中表述Diebold-Li模型。一旦在状态空间表示中进行了表述,该示例将再现在中发布的样金宝app本内估计结果[2],并将获得的结果与如概述的两步方法的结果进行比较[1]

该示例最后简单说明了SSM功能的最小均方误差(MMSE)预测和蒙特卡罗模拟能力。

dibold - li模型,收益率曲线模型

迪堡 - 李模型是纳尔逊 - 西格尔模型的变种[3],通过重新参数化原始公式得到。为观察日期 T 以及到期日 τ ,DieBold-Li模型表征产量 Y T ( τ ) 作为四个参数的函数:

Y T ( τ ) = L T + s T ( 1. - E - λ τ λ τ ) + C T ( 1. - E - λ τ λ τ - E - λ τ )

在这 L T 是长期因素还是等级, s T 是短期因素还是, 和 C T 是中期因素,还是曲率 λ 确定最大化曲率的成熟度,并控制模型的指数衰减率。

计量经济学工具箱的状态空间模型(SSM)

这个SSM.Econometrics工具箱的函数允许用户在状态空间表示中指定给定的问题。一旦指定了SSM的参数形式,附加的相关函数允许用户通过最大似然估计模型参数,分别通过向后递归和向前递归获得平滑和滤波状态,获得未观测(潜在)状态和观测数据的最佳预测,并通过蒙特卡罗模拟潜态路径样本和观测数据。

对于州矢量 x T 观测向量 Y T ,计量经济学工具箱SSM的参数形式表示为以下线性状态空间表示:

x T = A. T x T - 1. + B T U T

Y T = C T x T + D T ε. T

在哪里 U T ε. T 是不相关的,单位方差白噪声矢量过程。在上述SSM表示中,第一个等式称为状态方程式而第二个是观测方程.模型参数 A. T , B T , C T D T 被称为状态转换,状态扰动加载,测量灵敏度, 和观察创新矩阵分别。

尽管计量经济学工具箱中的SSM函数将适应时变(动态)参数 A. T , B T , C T D T 其值和维度随时间而变化,在Diebold-Li模型中,这些参数是时不变的(静态的)。

Diebold-Li模型的状态空间公式

上面介绍的Diebold-Li模型的公式是,水平、斜率和曲率因子遵循一阶向量自回归过程,或VAR(1),因此该模型立即形成一个状态空间系统。使用Diebold、Rudebusch和Arouba符号[2],状态转移方程,支配状态向量(水平、斜率和曲率因子)的动力学,为

( L T - μ L s T - μ s C T - μ C ) = ( A. 1. 1. A. 1. 2. A. 1. 3. A. 2. 1. A. 2. 2. A. 2. 3. A. 3. 1. A. 3. 2. A. 3. 3. ) ( L T - 1. - μ L s T - 1. - μ s C T - 1. - μ C ) + ( η T ( L ) η T ( s ) η T ( C ) )

相应的观察(测量)方程被写为

( Y T ( τ 1. ) Y T ( τ 2. ) Y T ( τ N ) ) = ( 1. 1. - E - λ τ 1. λ τ 1. 1. - E - λ τ 1. λ τ 1. - E - λ τ 1. 1. 1. - E - λ τ 2. λ τ 2. 1. - E - λ τ 2. λ τ 2. - E - λ τ 2. 1. 1. - E - λ τ N λ τ N 1. - E - λ τ N λ τ N - E - λ τ N ) ( L T s T C T ) + ( E T ( τ 1. ) E T ( τ 2. ) E T ( τ N ) )

在向量 - 矩阵符号中,DieBold-Li模型被重写为以下状态空间系统,用于平均调整因子的3D载体 F T 和观察到的收益率 Y T :

( F T - μ ) = A. ( F T - 1. - μ ) + η T

Y T = Λ F T + E T

正交高斯白噪声处理 η T E T 被限定为使得

( η T E T ) W N ( ( 0 0 ) , ( Q 0 0 H ) )

此外,Diebold-Li模型可以使状态方程因子扰动 η T 是相关的,因此相应的协方差矩阵 Q 非对角线。相比之下,然而,该模型强加给协方差矩阵对角性 H 观测方程的扰动 E T 在不同期限观察产量,使得偏差是不相关的。

将潜在状态定义为平均调整因子

x T = F T - μ

和截距调整,或缩小,收益率

Y T = Y T - Λ μ

并替代到上面的方程,并且模具李李状态空间系统可以被重写为

x T = A. x T - 1. + η T

Y T = Y T - Λ μ = Λ x T + E T

现在将Diebold-Li状态空间系统与计量经济学工具箱SSM功能支持的公式进行比较,金宝app

x T = A. x T - 1. + B U T

Y T = C x T + D ε. T

从上面的状态空间系统中,我们可以立即看到状态转移矩阵 A. 两种配方中都是相同的,这是Diebold-Li矩阵 Λ 是简单的状态测量灵敏度矩阵吗 C 在SSM公式中。

扰动之间的关系,因此,参数化 B D SSM公式的矩阵更微妙。要查看此关系,请注意

η T = B U T

E T = D ε. T

由于每个模型中的扰动必须相同,所以协方差 η T 在Diebold-Li配方中必须等于缩放的白噪声SSM过程的协方差 B U T .同样,协方差 E T 必须和过程相等吗 D ε. T .此外,自 U T ε. T SSM公式中的干扰定义为不相关的单位方差白噪声向量过程,其协方差矩阵为单位矩阵。

因此,在应用中线性变换属性高斯随机向量,迪堡锂制剂的协方差相关的SSM制剂使得所述参数

Q = B B

H = D D

为了使Diebold-Li模型符合计量经济学工具箱的估计,用户必须首先用SSM.函数。此外,可以使用明确或隐式定义的未知参数创建SSM模型。

要明确创建SSM模型,所有必需的矩阵 A. , B , C , 和 D 必须提供。在显式方法中,未知参数显示为值,以指示未知值的存在和位置;每一个条目对应于要估计的唯一参数。

虽然通过直接指定参数创建模型明确 A. , B , C , 和 D 有时比隐式指定模型更方便,但显式方法的效用受到限制,因为每个估计参数影响系数矩阵的单个元素,且与之唯一相关。

要隐式创建模型,用户必须指定一个参数映射函数,该函数将输入参数向量映射到模型参数 A. , B , C , 和 D .在隐式方法中,映射函数单独定义了模型,对于估计复杂模型和施加各种参数约束特别方便。

此外,SSM框架不存储状态变量的非零偏移或与观察方程中的回归分量相关联的任何参数。相反,通过缩小观察来估计回归分量 Y T .类似地,SSM的其他相关功能,如筛选,光滑的,预报, 和模拟假设观察观察已经手动缩小或预处理,以考虑观察方程中的任何偏移或回归分量。

由于DieBold-Li模型包括用于三个因素中的每一个的非零偏移(均值),因此表示简单但常见的回归分量,因此该示例使用映射函数。此外,映射函数还对协方差矩阵施加了对称性约束 Q = B B 和协方差矩阵的对角线约束 H = D D ,这两者都特别适合于隐式方法。此外,映射函数还允许我们估计 λ 衰减率参数也是如此。

注意,该状态空间制剂,以及相应的方法包括回归成分,不是唯一的。例如,所述因子偏移也可以通过增加状态向量的维数包括在内。

在本例中所采用的方法中,在SSM表示的状态方程中包含因子偏移量,在观测方程中引入了一个回归分量。为了考虑到这种调整,本例使用了一个参数映射函数来缩小模型估计期间观测到的收益率。这种方法的优点是,未观测因子的状态向量的维数保持为3,因此直接对应于三维产量也仅仅Diebold、Rudebusch和Arouba的因子模型[2].缺点是,由于估计是在收缩的收益率上进行的,其他SSM函数也必须通过收缩和随后的膨胀收益率来解释这种调整。

收益率曲线数据

收益数据由29年每月的时间序列组成不光滑Fama-Bliss美国国债零息债券收益率[1][2]中,出于3成熟度,6,9,12,15,18,21,24,30,36,48,60,72,84,96,108,和120个月。该收益率以百分比表示,并在每个月底记录,开始1972年1月和总共的17个各期限的348条每月曲线截至2000年12月。整个未平滑法玛-布利斯产量曲线数据集,一个子集,其中在使用[1][2],可以找到https://www.sas.upenn.edu/~fdiebold/papers/paper49/FBFITTED.txt

以下分析使用整个DieBold-Li数据集来重现已发布的估算结果[2],并对两步法和SSM法进行了比较。

作为一种替代方法,数据集也可以被划分为样本内用于估计每个模型的时期,以及样本外保留用于评估预测性能的时间段。从概念上讲,这种预测精度分析可以采用与Diebold和Li的表4-6中公布的方法类似的方式进行[1].然而,这样做将花费太多的时间来完成,因此不适合一个实时的MATLAB示例。

负载Data_DieboldLiMatururities = Matururities(:);%确保一个列向量收益率=数据(1:,:);用于估计的样本内收益率

Diebold-Li模型的两步估计

在他们原来的论文中[1], Diebold和Li使用两步方法估计其收益率曲线模型的参数:

  • λ 保持固定,估计电平,斜率和曲率为每个月产量曲线参数。重复该过程对于所有观察到的产率的曲线,并提供了一个3-d的时间序列的不可观测的电平,斜率和曲率因子估计。

  • 拟合一阶自回归模型的时间序列的因素在第一步。

通过固定 λ 在第一步中,将非线性最小二乘估计替换为相对简单的普通最小二乘(OLS)估计。在Nelson-Siegel框架内,通常设置 λ = 0.0609,这意味着在30个月内最大化曲率(中期因子)的负载最大化的值。

此外,由于收益率曲线是作为因素的函数参数化的,预测收益率曲线相当于预测潜在因素,并评价dibold - li模型作为因素预测的函数。

第一步将3个因素(水平,斜率和曲率)等于OLS获得的回归系数,并通过重复每个观察到的产曲线的OLS拟合来累积3-D时间序列的估计因子。下面进行OLS步骤,并且存储线性模型配合的回归系数和残差供以后使用。

lambda0 = 0.0609;X = [ones(size(到期))(1-exp(-lambda0*到期))./(lambda0*到期))......((1-EXP(-lambda0 *期限))./(lambda0 *期限)-exp(-lambda0 *期限))];的β=零(大小(产率,1),3);残差=零(大小(产率,1),numel(到期日));i=1:size(收益率,1)EstMdlOLS=fitlm(X,收益率(i,:)',“拦截”、假);β(我:)= EstMdlOLS.Coefficients.Estimate ';残差(我:)= EstMdlOLS.Residuals.Raw ';结束

既然,三维时间系列已经计算过,第二步将时间序列适合一阶自回归(AR)模型。此时,AR适合有两种选择:

  • 将每个因子分别拟合到单变量AR(1)模型,如中所示[1]

  • 同时将所有3个因素拟合到VAR(1)模型,如[2]

虽然计量验收学器工具箱支持单变量和多变量AR估计,但在后续的情况下,金宝appvar(1)模型安装在三维时间系列因素。为了与SSM配方的一致性,其适用于平均调整因子,VAR(1)模型包括附加常数,以占每个因素的平均值。

EstMdlVAR = estimate(var (3,1), beta);

DieBold-Li模型的SSM估计

如上所述,Diebold-Li模型采用隐式方法估计,其中指定了参数映射函数。这个映射函数将参数向量映射到SSM模型参数,压缩观测值以解释每个因素的平均值,并对协方差矩阵施加约束。

下面的代码行通过传递参数映射函数创建SSM模型example_dieboldli.SSM.函数,并指示将使用输入参数向量调用映射函数参数个数.映射函数的附加输入参数静态地指定收益率和成熟度信息,并用于以适合于随后在估计中使用的方式初始化函数。有关更多细节,请参见helper函数example_dieboldli.

Mdl =舰导弹(@ (params) Example_DieboldLi(参数、产量、到期日));

通过Kalman滤波器的SSM模型的最大似然估计(MLE)对初始参数值令人惊叹的敏感性。在此示例中,我们使用两步方法的结果初始化估计。

具体而言,传递给SSM的初始值估计功能被编码到列向量中。在此示例中,矩阵 A. 将SSM模型的估计值设为VAR(1)模型的3 × 3 AR系数矩阵,按列方向堆叠到列向量的前9个元素中。

从上面的讨论,矩阵 B SSM模型是一个3 × 3矩阵约束,如 Q = B B ,以及估计的估计 B 较低的choolesky因子是 Q .因此,要确保 Q 是对称的,正定的,并允许非零的非对角协方差,6个元素与 Q 必须在初始参数列向量中分配。然而,在遵循的措施中,我们将初始参数向量的元素与VAR(1)模型的估计创新差异的平方根初始化。

换句话说,当初始化参数向量时,我们假设协方差矩阵 Q 是对角的,但仍然为协方差矩阵的较低Cholesky因子的以下对角元素保留空间,以便 Q = B B .同样,初始参数向量的排列方式是 B 沿着主对角线和下面以柱的方式堆叠。

由于协方差矩阵 H 在Diebold-Li公式中,矩阵是对角的 D 的SSM模型也被约束为对角线,这样 H = D D .因此,与之相关的初始参数向量的元素 D 设置为VAR(1)模型残差样本协方差矩阵对角线元素的平方根,输入收益率数据的每个到期日(本例中有17个到期日)有一个这样的元素,再次以列方式叠加。

请注意 C SSM模型的矩阵不是直接估计的,而是估计衰减率参数的全参数函数 λ ,并通过映射函数内部计算。而且,这是 λ 参数初始化为传统值0.0609,并存储在初始参数列向量的最后一个元素中。

最后,将与因子均值相关的初始参数向量的元素简单设置为原始两步法第一步中OLS得到的回归系数的样本平均值。

A0 = EstMdlVAR.AR {1};%获取var(1)矩阵(存储为小区数组)A0 = A0(:);%按列堆叠Q0 = EstMdlVAR.Covariance;%得到VAR(1)估计的新息协方差矩阵B0 = [sqrt (Q0 (1,1));0;0;√Q0 (2, 2);0;√Q0(3、3)];H0 = x(残差);VAR(1)残差的%样本协方差矩阵D0 =√诊断接头(H0));%对角化D矩阵mu0 =意味着(beta)”;param0 = [A0;B0;D0;mu0;lambda0];

现在,初始值已经计算出来,设置一些优化参数,并通过调用函数SSM估计使用了卡尔曼滤波器的模型估计.在这个例子中,协方差矩阵 H = D D 是对角,所以我们选择调用多元系列的单变量处理,以提高估计的运行时性能。

选择= optimoptions ('fminunc','maxfunevals',25000,“算法”,“拟牛顿”,......“TolFun”1 e-8“通行费”1 e-8'maxiter', 1000,“显示”,'离开');(EstMdlSSM, params) =估计(param0 Mdl,收益率,“显示”,'离开',......“选项”,选项,“单变量”,真正的);λ= params(结束);%获得估计的衰减率亩=参数(最终3:端-1)';%获取估计因子的装置

参数估计结果的比较

现在将从SSM获得的结果与两步方法的结果进行比较。除了提供两种方法的结果的感觉之外,比较还提出了使用两步方法的使用方式如何提供估计SSM所需的初始参数值。

首先比较估计的状态转移矩阵 A. 将SSM模型中的AR(1)系数矩阵转换为VAR模型得到的AR(1)系数矩阵。

dispvars = {“SSM状态转换矩阵(A):”;......"--------------------------------";......Estmdlssm.a};cellfun (@disp dispvars)
舰导弹(状态转换矩阵 ): -------------------------------- 0.9944 0.0286 -0.0221 -0.0290 0.9391 0.0396 0.0253 0.0229 0.8415
dispvars = {“两步状态转移矩阵(A)”;......"--------------------------------";......EstMdlVAR.AR {1}};cellfun (@disp dispvars)
两步(状态转换矩阵 ): -------------------------------- 0.9901 0.0250 -0.0023 -0.0281 0.9426 0.0287 0.0518 0.0125 0.7881

请注意,结果如何达成一致。特别地,注意到大的正对角线元件,表示每个因素的持久自动态,而同时小型偏差元素,指示跨因子动态弱。

现在检查状态干扰加载矩阵 B 并比较了相应的创新点协方差矩阵 Q = B B 从SSM到VAR(1)模型的创新协方差。

dispvars = {“SSM状态扰动加载矩阵(B)”;......"-----------------------------------------";......Estmdlssm.b};cellfun (@disp dispvars)
SSM状态扰动载荷矩阵(B):------------------------------------------------0.3076 0-0.0453 0.6170 0 0.1421 0.0255 0.8824
dispvars = {SSM状态干扰协方差矩阵(Q = BB);......"--------------------------------------------------";......EstMdlSSM。B* EstMdlSSM.B'}; cellfun(@disp,dispvars)
SSM状态扰动协方差矩阵(Q = BB ''):-------------------------------------------- 0.0946 -0.0139 0.0437 -0.0139 0.3827 0.0093 0.0437 0.0093 0.7995
dispvars = {“两步状态干扰协方差矩阵(Q):”;......“----------------------------------------------“;......Estmdlvar.covariance};cellfun (@disp dispvars)
两步状态扰动协方差矩阵(Q):-------------------------------------------------------------0.1149-0.0266-0.0719-0.0266-0.3943 0.0140-0.0719 0.0140 1.2152

请注意,估计的协方差矩阵在相对较近的协议中,并且估计的方差随着我们从级别到沿主对角线曲率的斜率而增加。

最后,比较获得的从SSM对于与两个步骤的方法的因子的装置。

dispvars = {“SSM因子意味着:”;......"-----------------";......μ};cellfun (@disp dispvars)
舰导弹因素意味着 : ----------------- 8.0246 -1.4423 -0.4188
dispvars = {“两步因素的意思是:“;......“--------------------;......mu0 '};cellfun (@disp dispvars)
两步因素意味着 : ---------------------- 8.3454 -1.5724 0.2030

在这种情况下,估计的装置在水平和斜率因子的相对较近的协议中,尽管曲率在两种方法之间不同。

推断因子的比较

未观察到的因素,或潜伏状态,其对应于迪堡锂模型的电平,斜率和曲率的因素,是主要感兴趣的在预测未来产量曲线的演变。现在,我们从检查每种方法推断出的状态。

在两步方法中,潜在状态(因素)是OLS步骤中估计的回归系数。

在SSM方法中光滑的函数实现卡尔曼平滑,使得对于t = 1,2,...,T的平滑状态被定义为

E [ x T | Y T , , Y 1. ]

但是,在调用光滑的函数,回想一下上面的讨论,SSM框架必须考虑在估计期间对观测到的收益率所做的补偿调整。具体来说,在估计过程中,参数映射函数会压缩原始观测值,因此可以使用偏移量调整的收益 Y T = Y T - Λ μ 而不是原始产量。

此外,由于调整仅仅已知为映射函数,因此估计的SSM模型没有明确了解对原始产量的任何调整。因此,其他相关的SSM功能,如筛选,光滑的,预报, 和模拟必须适用于与观察方程中包含的预测器相关联的任何偏移或回归组件。

因此,在我们调用光滑的函数来推断估计的状态,我们必须首先通过减去与估计偏移相关的截距来缩小原始收益, C μ = Λ μ ,以补偿估计期间发生的偏移调整。然而,我们推断出的状态将与紧缩的收益率相对应,而实际上我们感兴趣的是实际状态本身(水平、斜率和曲率因素),而不是它们的抵消调整对应物。因此,在平滑之后,必须通过加入估计的平均值来重新调整通缩状态, μ ,到因素。

这是一个重要而微妙的过程,即先将观察数据压缩,然后再将政府膨胀以解除通缩。

拦截= EstMdlSSM.C * mu';deflatedYields = bsxfun (@minus,收益率,拦截”);deflatedStates =平滑(EstMdlSSM deflatedYields);estimatedStates = bsxfun (@plus deflatedStates,μ);

现在我们已经推断了状态,我们可以比较从SSM和两步方法得到的个体水平、斜率和曲率因子。

首先检查水平,或长期因素。

图绘图(日期,[beta(:,1)估计状态(:,1)]标题(的水平(长期因素))ylabel('百分')DateTick.x传奇({'两步','状态空间模型'},“位置”,“最佳”)

图中包含一个坐标轴。与标题等级(长期因子)的轴包含型线的2个对象。这些对象表示两步状态空间模型。“width=

现在,检查坡度,或短期因素。

figure plot(date, [beta(:,2)) estimatedStates(:,2)) title(的斜率(短期因素))ylabel('百分')DateTick.x传奇({'两步','状态空间模型'},“位置”,“最佳”)

图中包含一个坐标轴。具有标题斜率(短期因子)的轴包含2个类型的线。这些对象表示两步状态空间模型。“width=

现在检查曲率或中期因素,

图表(日期,[beta(:,3)估计日期(:,3)]标题('曲率(中期因素)')ylabel('百分')DateTick.x传奇({'两步','状态空间模型'},“位置”,“最佳”)

图中包含一个坐标轴。标题为曲率(中期因子)的轴包含2个线型对象。这些对象表示两步状态空间模型。“width=

以及估计的衰减率参数 λ 与曲率相关联。

dispvars = {“SSM衰减率(Lambda):”;......“---------------------”;......拉姆达};cellfun (@disp dispvars)
SSM衰减率(λ):---------------------------0.0778

注意,估计的衰减率参数比两步方法使用的值(0.0609)稍大一些。

回想一下, λ 确定曲率上的载荷最大时的成熟度。在两步方法中 λ 固定在0.0609时,反映了一定的任意决定,以最大限度地提高曲率载荷在2.5岁(30个月)。相比之下,SSM估计在仅少于2年(23.1个月)的最大曲率负荷,可以通过绘制与每个值相关的曲率负载来看待 λ .在这两种情况下,其作为成熟度函数的峰状行为揭示了为什么曲率被解释为一个中期因素。

τ= 0(1/12):马克斯(期限);%成熟度(个月)衰变= [lambda0 lambda];加载= 0 (numel(tau), 2);i = 1:numel(tau)加载(i,:) =((1-expay * tau(i)))./(腐朽* tau(i)) -  exp(--decay * tau(i)));结束图情节(TAU,加载)标题(“曲率的负荷(中期因素)”)Xlabel('成熟(月份)')ylabel(“弯曲加载”)({传奇“\lambda=0.0609由两步固定”, ('\拉姆达='num2str(lambda)'估计SSM'}),“位置”,“最佳”)

图中包含一个坐标轴。曲率标题负载的轴(中期因子)包含2个类型的2个物体。这些对象表示通过两步固定的\ Lambda = 0.0609,\ Lambda = 0.07764由SSM估计。“width=

从上面的图表中,我们可以看到,尽管两种方法之间存在差异,但从每种方法得出的因素通常是相当接近的。同时估计所有模型参数的一步SSM/卡尔曼滤波方法是首选方法。

作为最终的样本内性能比较,我们现在以类似于表2的方式对两种方法的观测方程残差的均值和标准差进行比较[2].结果以基点(BPS)表示。

在创建下表时,请注意状态测量灵敏度矩阵 C SSM公式中的也是因子载荷矩阵 Λ 在发现[2]

Residualsssm =产量 - 估计斯特斯* Estmdlssm.c';Residuals2Step =产量 -  Beta * x';Residualmeanssm = 100 *平均值(残留物)';ResidualStDSSM = 100 * STD(Residualsssm)';Residualmean2Step = 100 *平均值(Residuals2Step)';ResidualStd2Step = 100 * STD(Residuals2Step)';dispvars = {" -------------------------------------------------";......“状态空间模型两步”;......" ------------------- ------------------";......“标准”;......“成熟度均值偏差均值偏差”;......“(月份)(BPS)(BPS)(BPS)(BPS)”;......“-------- -------- -------- --------------”;......[maturity residualmeananssm residualStdSSM residualMean2Step residualStd2Step]};cellfun (@disp dispvars)
------------------------------------------------- 两步的状态空间模型 ' ------------------- ------------------ 标准标准成熟度平均偏差平均偏差(个月)(bps) (bps) (bps)(个基点 ) -------- -------- --------- ------- --------- 3.0000 -12.6440 22.3639 -7.3922 14.1709 6.0000 -1.3392 5.0715 2.1914 7.2895 9.0000 0.4922 8.10842.7173 11.4923 12.0000 1.3059 9.8672 2.5472 11.1200 15.0000 3.7130 8.7073 4.2189 9.0558 18.0000 3.5893 7.2946 3.5515 7.6721 21.0000 3.2308 6.5112 2.7968 7.2221 24.0000 -1.3996 6.3890 -2.1168 7.0764 30.0000 -2.6479 6.0614 -3.6923 7.0129 36.0000 -3.2411 6.5915 -4.4095 7.2674 48.0000 -1.8508 9.7019 -2.9761 10.6242 60.0000 -3.2857 8.0349 -4.2314 9.029672.0000 1.9737 9.1370 1.2238 10.3745 84.0000 0.6935 10.3689 0.1196 9.8012 96.0000 3.4873 9.0440 3.0626 9.1220 108.0000 4.1940 13.6422 3.8936 11.7942 120.0000 -1.3074 16.4545 -1.5043 13.3544

对上表的检查显示,尽管在所有期限上SMM并不总是比两步法更好,但它在大多数6到60个月的中期期限上提供了明显更好的适合。

预测与蒙特卡罗模拟

作为最后的说明,我们现在强调SSM功能的最小均方误差(MMSE)预测和蒙特卡罗模拟能力。

回想一下,由于dibold - li模型只依赖于估计的因素,因此收益率曲线是通过预测因素来预测的。然而,如上所述,在预测或模拟产量时,我们必须补偿在SSM估计期间所做的偏移调整,因此必须使用估算所基于的通缩产量。

使用流量的收益率,我们现在称之为预报函数计算MMSE预测的通缩收益率1,2,…未来12个月。然后通过添加估计的偏移量来计算实际的预测产量 C μ 对通货紧缩的对手。

请注意,收益率曲线预测将用一行表示预测地平线上的每个未来时期(本例中为12),用一列表示每个收益率曲线上的每个期限(本例中为17)。

地平线= 12;%预测期(月)[预测Deflatedyields,MSE] =预测(Estmdlssm,Horizo​​ n,缩小岩);预测yields = bsxfun(@ plus,fecensteddeflatedyields,拦截');

既然确定的MMSE预测已经使用预报函数,我们现在演示如何使用模拟函数。

然而,在执行Monte Carlo仿真之前,我们必须首先初始化拟合SSM模型的初始状态(因子)的平均载体和协方差矩阵,以确保仿真以最近的信息开头。为此,以下代码段拨打电话光滑的获取通过后退递归获得的平滑状态的功能。

由于下面的步骤将拟合的均值和协方差初始化为历史数据集末尾可用的均值和协方差,从光滑的函数,使用来自整个数据集的信息,相当于从筛选函数,仅使用上次观察之前的信息。

[~, ~,结果]=光滑(EstMdlSSM deflatedYields);也可以使用% FILTEREstMdlSSM.Mean0=结果(结束)。平滑状态;初始化平均值.SmoothedStatesCov cov0 =结果(结束);EstMdlSSM。Cov0 = (cov0 + cov0')/2;%初始化协方差

现在状态的初始均值和协方差已经设定,通过蒙特卡罗模拟计算样本外预测。

在下面的代码段中,每个样本路径代表了模拟收益率曲线在12个月预测期内的未来发展。这个模拟重复了10万次。

与前面计算的预测类似,模拟的收益率曲线矩阵有一行代表预测期(本例中为12)中的每个未来时期,一列代表每个期限(本例中为17)。然而,与MMSE预测矩阵不同的是,模拟产量曲线矩阵有第三个维度来存储100,000个模拟路径。

再次,请注意,实际模拟了平减后的收益率,然后进行后处理以考虑因子抵消。

rng ('默认') nPaths = 100000;simulateddeflatedyield = simulate(EstMdlSSM, horizon, nPaths);simulatedyield = bsxfun(@plus, simulateddeflatedyield, intercept');

现在已经模拟了产量,计算10万次试验的样本均值和标准偏差。这些统计数据是MMSE预测和标准误差的样本模拟值。为了便于计算样本均值和标准偏差,对模拟产量矩阵进行了重新排序,使其现在有100,000行、12列和17页。

simulatedyield = permute(simulatedyield,[3 1 2]);%重排序为方便起见预测=零(Horizo​​ n,Numel(Matururities));standarderrors = zeros(地平线,numel(matururites));i = 1:numel(maturity) forecasts(:,i) = mean(simulatedyield (:,:,i));standardErrors (:, i) =性病(simulatedYields(:,:我));结束

现在在视觉上比较MMSE预测和从中获得的相应标准错误预报函数以及从模拟函数。结果几乎是相同的。

图表(到期日,[预测(地平线,:)'预测(地平线,:)'))标题(12个月前预测:蒙特卡洛与MMSE)Xlabel('成熟(月份)')ylabel('百分')({传奇“蒙特卡罗”,“最小均方误差”},“位置”,“最佳”)

图中包含一个轴。标题为“提前12个月预测:蒙特卡罗vs.MMSE”的轴包含2个line类型的对象。这些对象表示蒙特卡罗最小均方误差。“width=

图(到期,[标准错误(地平线,:)' sqrt(mse(地平线,:))'])标题('12  - 前方预测标准错误:Monte Carlo vs. mmse')Xlabel('成熟(月份)')ylabel('百分')({传奇“蒙特卡罗”,“最小均方误差”},“位置”,“最佳”)

图中包含一个坐标轴。标题为“12个月前预测标准误差:蒙特卡罗与MMSE”的坐标轴包含2个线型对象。这些对象代表蒙特卡罗,最小均方误差。“width=

当然,蒙特卡罗模拟的额外好处是,它允许对收益率的分布进行更详细的分析,超越平均值和标准误差,并反过来提供了该分布如何影响依赖于它的其他变量的分布的额外见解。例如,在保险行业,对收益率曲线的模拟通常用于评估与年金和养老金合同有关的利润和损失的分配。

以下代码段显示了模拟的12个月产量在未来1个月、6个月和12个月的分布,与表4-6所示的预测实验在本质上相似[1]

Index12 = find(到期日== 12);12个月收益率的%页指数仓= 0:0.2:12;图副区(3,1,1)的直方图(simulatedYields(:,1,index12),频段“归一化”,“pdf”) 标题(“12个月收益率的概率密度函数”)Xlabel(“产率1个月到未来(%)”subplot(3,1,2) histogram(simulatedyield (:,6,index12), bins,“归一化”,“pdf”)Xlabel(“未来6个月收益率(%)”)ylabel(“概率”)子图(3,1,3)直方图(模拟yields(:,12,index12),垃圾箱,“归一化”,“pdf”)Xlabel('将未来的12个月(%)')

图包含3个轴。轴1具有12个月产量的标题概率密度函数包含类型直方图的对象。轴2包含类型直方图的对象。轴3包含类型直方图的对象。“width=

概括

线性状态空间模型是具有两个方程离散时间,随机模型,描述未观察到的潜状态的转换的状态方程,和观测方程式,该状态链接到所观察到的数据,并介绍了如何观察者间接测量在每个周期潜过程。

这个例子阐明了流行产量也仅仅状态空间表示中的Diebold-Li术语结构模型,从一系列产量曲线中迈出了潜在的国家,以确定推动利率演变的潜在因素。DieBold-Li模型是一种动态模型,具有三种因素,这是一种新颖的洞察力,这是对等级,坡度和曲率的因素的解释。

上面示出的实施例说明了迪堡锂模型为适合于经由所述计量经济学工具箱的SSM功能建模形式的映射,然后进一步示出了参数估计,平滑,预测和蒙特卡罗仿真能力。

参考

[1]戴伯尔德、F.X和C.李。”预测政府债券收益率的期限结构.“计量经济学杂志. 第130卷,2006年第2期,第337-364页。

[2]迪堡,F. X., G. D. Rudebusch和B. Aruoba(2006),”宏观经济与收益率曲线:一种动态潜在因素方法.“中国经济学学报。第131卷,2006年,309-338页。

[3]尼尔森,R. C.,和A. F.西格尔。“产率曲线的简约的建模”。商业杂志》上。第60卷第4期,1987年,第473-489页。