这个例子展示了如何创建一个扩散状态空间模型,其中一个状态变量在一段时间后退出模型。
假设一个潜在过程包括一个AR(2)和一个MA(1)模型。有50个周期,MA(1)过程在最后25个周期中退出模型。因此,前25个周期的状态方程为
在过去的25个周期中,是这样的
在哪里和为均值为0,标准差为1的高斯分布。
对潜在过程进行测量
对于前25个时段,和
在过去25个时期,其中为均值为0,标准差为1的高斯分布。
潜伏过程和观测方程共同构成了一个状态空间模型。如果系数为未知参数,则状态空间模型为
在前25个时段,
对于第26期,和
在过去的24个时期。
写一个函数来指定参数的输入方式参数个数
映射到状态空间模型矩阵、初始状态值和状态类型。
版权所有The MathWorks, Inc.函数[A,B,C,D,Mean0,Cov0,StateType] = diffuseAR2MAParamMap(params,T)时变扩散状态空间模型参数%映射函数%这个函数将向量参数映射到状态空间矩阵(A, B,% C和D)和状态类型(StateType)。从周期1到周期T/2%状态模型为AR(2)和MA(1)模型,观测模型为两种状态的和。从周期T/2 + 1到T,状态模型为只是AR(2)模型。AR(2)模型是弥漫的。A1 = {[params(1) params(2) 0 0;1 0 0 0;0 0 0参数(3);0 0 0 0]};B1 = {[10 0;0 0;0 1;0 1]};C1 = {params(4)*[1 0 1 0]};Mean0 = []; Cov0 = []; StateType = [2 2 0 0]; A2 = {[params(1) params(2) 0 0; 1 0 0 0]}; B2 = {[1; 0]}; A3 = {[params(1) params(2); 1 0]}; B3 = {[1; 0]}; C3 = {params(5)*[1 0]}; A = [repmat(A1,T/2,1);A2;repmat(A3,(T-2)/2,1)]; B = [repmat(B1,T/2,1);B2;repmat(B3,(T-2)/2,1)]; C = [repmat(C1,T/2,1);repmat(C3,T/2,1)]; D = 1;结束
将此代码保存为一个名为diffuseAR2MAParamMap
在MATLAB®路径上。
通过传递函数创建弥漫状态空间模型diffuseAR2MAParamMap
的函数句柄dssm
。这个例子使用了50个观察结果。
T = 50;Mdl = dssm(@(params)diffuseAR2MAParamMap(params,T));
dssm
隐式地创建扩散状态空间模型。通常,您无法验证隐式创建的扩散状态空间模型。
dssm
包含未知参数。您可以模拟数据,然后使用估计
。