主要内容

估计时变状态空间模型

这个例子展示了如何创建和估计包含时变参数的状态空间模型。

假设一个AR(2)和一个MA(1)模型包含一个潜在过程。有50个周期,MA(1)过程在最后25个周期中退出模型。前25个周期的状态方程是

数组$ $ \开始{}{1}& # xA;{间{1,t}} = 0.7{间{1,t - 1}} - 0.2{间{1,t - 2}} + {u_ {1, t}} \ \ & # xA;{间{2,t}} = {u_ {2, t}} + 0.6 {u_ {2, t - 1}}, & # xA; \{数组}$ $

对于后25个周期,状态方程是

$ ${间{1,t}} = 0.7{间{1,t - 1}} - 0.2{间{1,t - 2}} + {u_ {1, t}} $ $

在哪里u_ {1, t} $美元而且$ u_ {2, t} $为均值为0,标准差为1的高斯分布。

生成50个观察值的随机序列美元间的{1,t} $而且美元间的{2,t} $,假设级数分别从1.5和1开始。

T = 50;ARMdl = arima(基于“增大化现实”技术的{0.7, -0.2},“不变”0,“方差”1);amdl = arima(“马”, 0.6,“不变”0,“方差”1);X0 = [1.5 1;1.5 - 1];rng (1);x =[模拟(ARMdl,T,“Y0”x0 (: 1)),...模拟(MAMdl T / 2,“Y0”x0(: 2));南(T / 2, 1)];

模拟MA(1)数据的最后25个值缺失。

进一步假设潜在过程是用

$ $ {y_t} = 2 \离开({{间{1,t}} +{间{2,t}}} \右)+ {\ varepsilon _t} $ $

对于前25个时段,和

$${y_t} = 2{x_{1,t}} + {\varepsilon _t}$$

最后25个周期。\ varepsilon_t美元为均值为0,标准差为1的高斯分布。

使用随机潜伏状态过程生成观测(x)和观测方程。

Y = 2*sum(x',“omitnan”) + randn (T, 1);

潜伏过程和观测方程共同构成了一个状态空间模型。假设系数为未知参数,状态空间模型为

数组$ $ \开始{}{1}& # xA;左\[{\开始数组{}{* {20}{c}} & # xA;{{间{1,t}}} \ \ & # xA;{{间{2,t}}} \ \ & # xA;{{间{3 t}}} \ \ & # xA;{{间{4 t}}} & # xA;结束\{数组}}\右]左= \[{\开始数组{}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}& # 38;0 & # 38;0 \ \ & # xA; 1 & # 38; 0 & # 38; 0 & # 38; 0 \ \ & # xA; 0 & # 38; 0 & # 38; 0 &{{\θ_1}}\ \ & # xA; 0 & # 38; 0 & # 38; 0 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} \ \ & # xA;{{间{3 t - 1}}} \ \ & # xA;{{间{4,t - 1}}} & # xA;结束\{数组}}\右]+左\ [数组{\开始{}{* {20}{c}} & # xA; 1 & # 38; 0 \ \ & # xA; 0 & # 38; 0 \ \ & # xA; 0 & # 38; 1 \ \ & # xA; 0 & # 38; 1 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA; {{u_ {1, t}}} \ \ & # xA; {{u_ {2, t}}} & # xA;结束\{数组}}\右]\ \ & # xA; {y_t} = a({间{1,t}} +{间{3 t}}) + {\ varepsilon _t} & # xA;结束\{数组}{\ \ rm;} t = 1,…,25 $ $

数组$ $ \开始{}{1}& # xA;左\[{\开始数组{}{* {20}{c}} & # xA;{{间{1,t}}} \ \ & # xA;{{间{2,t}}} & # xA;结束\{数组}}\右]左= \[{\开始数组{}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}& # 38;0 & # 38;0 \ \ & # xA; 1 & # 38; 0 & # 38; 0 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} \ \ & # xA;{{间{3 t - 1}}} \ \ & # xA;{{间{4,t - 1}}} & # xA;结束\{数组}}\右]+ \离开[{\开始{数组}{* {20}{c}} & # xA; 1 \ \ & # xA; 0 & # xA;结束\{数组}}\右]{u_ {1, t}} \ \ & # xA; b {y_t} ={间{1,t}} +{\ varepsilon _t} & # xA;结束\{数组}{\ \ rm;} t = 26日$ $

数组$ $ \开始{}{1}& # xA;左\[{\开始数组{}{* {20}{c}} & # xA;{{间{1,t}}} \ \ & # xA;{{间{2,t}}} & # xA;结束\{数组}}\右]左= \[{\开始数组{}{* {20}{c}} & # xA;{{\φ_1}}和{{\φ_2}}\ \ & # xA; 1 & # 38; 0 & # xA;结束\{数组}}\右]\离开[{\开始{数组}{* {20}{c}} & # xA;{{间{1,t - 1}}} \ \ & # xA;{{间{2,t - 1}}} & # xA;结束\{数组}}\右]+ \离开[{\开始{数组}{* {20}{c}} & # xA; 1 \ \ & # xA; 0 & # xA;结束\{数组}}\右]{u_ {1, t}} \ \ & # xA; b {y_t} ={间{1,t}} + {\ varepsilon _t} & # xA;结束\{数组}{\ \ rm;} t = 27日…,50 $ $

写一个函数来指定参数的输入方式参数个数映射到状态空间模型矩阵、初始状态值和状态类型。

版权所有The MathWorks, Inc.函数[A,B,C,D,Mean0,Cov0,StateType] = AR2MAParamMap(params,T)时变状态空间模型参数映射函数这个函数将向量参数映射到状态空间矩阵(A, B,% C,和D),初始状态值和初始状态方差(Mean0%和Cov0),以及状态类型(StateType)。从周期1到周期T/2%状态模型为AR(2)和MA(1)模型,观测模型为两种状态的和。从周期T/2 + 1到T,状态模型为只是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 = ones(4,1); Cov0 = 10*eye(4); StateType = [0 0 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;结束

将此代码保存在一个名为AR2MAParamMap并将其放入MATLAB®路径中。

通过传递函数来创建状态空间模型AR2MAParamMap的函数句柄舰导弹

Mdl = ssm(@(params)AR2MAParamMap(params,T));

舰导弹隐式定义状态空间模型。通常,您不能验证隐式定义的状态空间模型。

传递观察到的响应(y)估计估计参数。为未知参数指定正的初始值。

Params0 = 0.1*ones(5,1);EstMdl =估计(Mdl,y,params0)
方法:最大似然(fminunc)样本量:50对数似然:-114.957赤池信息准则:239.913贝叶斯信息准则:249.473 | Coeff Std Err t Stat Prob --------------------------------------------------- c(1) | 0.47870 0.26634 1.79733 0.07229 c(2) | 0.00809 0.27179 0.02975 0.97626 c(3) | 0.55735 0.80958 0.68844 0.49118 c(4) | 1.62679 0.41622 3.90848 0.00009 c(5) | 1.90021 0.49563 3.83391 0.00013 | |最终状态Std Dev t Stat Prob x(1) | -0.81229 0.46815 -1.73511 0.08272 x(2) | -0.31449 0.45918 -0.68490 0.49341 EstMdl =状态空间模型类型:ssm状态向量长度:时变观测向量长度:1状态扰动向量长度:时变观测创新向量长度:1模型支持的样本量:50状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…周期1、2、3、…的状态方程25: x1 (t) = (0.48) x1 (t - 1) + (8.09 e 03) x2 (t - 1) + u1 (t) x2 (t) = x1 (t - 1) x3 (t) = (0.56) x4 (t - 1) + u2 (t) x4 (t) = u2 (t)状态方程周期26:x1 (t) = (0.48) x1 (t - 1) + (8.09 e 03) x2 (t - 1) + u1 (t) x2 (t) = x1 (t - 1)状态方程时间27日28日,29日,…, 50: x1(t) = (0.48)x1(t-1) + (8.09e-03)x2(t-1) + u1(t) x2(t) = x1(t-1)周期观测方程1,2,3,…, 25: y1(t) = (1.63)x1(t) + (1.63)x3(t) + e1(t)周期26,27,28,…, 50: y1(t) = (1.90)x1(t) + e1(t)初始状态分布:初始状态表示x1 x2 x3 x4 1 1 1 1初始状态协方差矩阵x1 x2 x3 x4 x1 10 0 0 0 0 x2 0 10 0 0 0 10 0 x4 0 0 0 0 10状态类型x1 x2 x3 x4平稳平稳平稳平稳平稳

估计的参数在其真实值的1个标准误差内,但标准误差相当高。状态空间模型的似然曲面可能包含局部极大值。因此,最好尝试几个初始参数值,或者考虑使用完善

另请参阅

||||

相关的例子

更多关于