这个例子展示了如何隐式创建扩散状态空间模型,该模型在观测方程中包含一个回归组件。状态模型包含ARMA(1,1)状态和随机游走。
编写一个函数,指定参数如何在参数个数
映射到状态空间模型矩阵、初始状态值和状态类型。通过缩小函数中的观察值来指定回归组件。象征性地说,这个模型是:
版权所有2015 The MathWorks, Inc.函数[A, B, C, D, Mean0 Cov0, StateType, DeflateY] = diffuseRegressionParamMap (params, y, z)带有回归分量参数映射的扩散状态空间模型%函数的例子。这个函数将向量参数映射到状态空间%矩阵(A, B, C, D),并表示状态的类型(StateType)。%状态模型包含一个ARMA(1,1)模型和一个随机游走。varu1 = exp (params (3));正方差约束vare1 = exp (params (5));A = [params(1) params(2);0 0];B = [sqrt(varu1) 0;1 0];C = [varu1 0];D =√vare1);Mean0 = [];%让软件推断Mean0Cov0=[];%让软件推断Cov0stattype = [0 0 2];DeflateY = y - params(6)*z;结束
将此代码保存为一个名为diffuseRegressionParamMap.m
到您的MATLAB®路径中的一个文件夹。
通过传递创建扩散状态空间模型diffuseRegressionParamMap
的函数句柄dssm
.
Mdl = dssm (@ (params) diffuseRegressionParamMap (params, y, z));
dssm
隐式创建扩散状态空间模型。通常,您不能验证隐式定义的状态空间模型。
在创建模型之前,确保变量y
和z
存在于你的工作空间中。