主要内容

隐式创建包含回归组件的扩散状态空间模型

这个例子展示了如何隐式创建扩散状态空间模型,该模型在观测方程中包含一个回归组件。状态模型包含ARMA(1,1)状态和随机游走。

编写一个函数,指定参数如何在参数个数映射到状态空间模型矩阵、初始状态值和状态类型。通过缩小函数中的观察值来指定回归组件。象征性地说,这个模型是:

数组$ $ \开始{}{1}& # xA;左\[{\开始数组{}{* {20}{c}} & # xA;{{间{1,t}}} \ \ & # xA;{{间{2,t}}} \ \ & # xA;间{3 t} & # xA;结束\{数组}}\右]左= \[{\开始数组{}{* {20}{c}} & # xA;{{\φ_1}}和{{\θ_1}}& # 38;0 \ \ & # xA; 0 & # 38; 0 & # 38; 0 \ \ & # xA; 0 & # 38; 0 & # 38; 1 & # xA;结束\{数组}}\右]左\[{\开始数组{}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} \ \ & # xA;间{3 t -1}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{\sigma _1}}& 0\\
1 & 0\\
0 & \sigma_3
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{u_{1,t}}\\
{u_{3,t}}
\end{array}} \right]\\
{y_t} - \beta {z_t} = a_1{x_{1,t}} + a_2x_{3,t} + {\sigma_2}{\varepsilon _t}.
\end{array}$$

版权所有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隐式创建扩散状态空间模型。通常,您不能验证隐式定义的状态空间模型。

在创建模型之前,确保变量yz存在于你的工作空间中。

另请参阅

相关话题