超类:
创建状态空间模型
创建一个状态空间模型(Mdl
=舰导弹(一个
,B
,C
)Mdl
)使用状态转换矩阵一个
,状态扰动加载矩阵B
,和测量灵敏度矩阵C
.
使用状态转换矩阵创建状态空间模型Mdl
=舰导弹(一个
,B
,C
,D
)一个
,状态扰动加载矩阵B
,测量灵敏度矩阵C
,观察-创新矩阵D
.
使用前面语法中的任何输入参数和您指定的一个或多个附加选项Mdl
=舰导弹(___,名称,值
)名称,值
对参数。
的名字
也可以是属性名和价值
对应的值。的名字
必须出现在单引号内(”
).您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家
.
使用参数到矩阵映射函数创建状态空间模型(Mdl
=舰导弹(ParamMap
)ParamMap
)你写的。该函数将参数向量映射到矩阵一个
,B
,C
.可选地,ParamMap
可以将参数映射到D
,Mean0
,或Cov0
.为了指定状态类型,函数可以返回StateType
.为了适应观测方程中的回归分量,ParamMap
还可以返回泄气的观测数据。
转换扩散状态空间模型对象(Mdl
=舰导弹(DSSMMdl
)DSSMMdl
)到状态空间模型对象(Mdl
).舰导弹
设置所有弥漫状态的初始方差SSMMdl。Cov0
来1 e07
.
一个
- - - - - -状态转换系数矩阵用于显式状态空间模型创建的状态转换系数矩阵,指定为矩阵的矩阵或单元格向量。
状态转换系数矩阵,一个t,表示状态xt,都有望从过渡时期t- 1到t,对所有人t= 1,…,T.也就是周期下的期望状态转换方程t是E(xt|xt1) =一个txt1.
对于时不变状态空间模型,请指定一个
作为一个米——- - - - - -米矩阵,米是每个周期的状态数。
对于时变状态空间模型,请指定一个
作为一个T-dimensional单元格数组,其中{t}
包含一个米t——- - - - - -米t- 1状态转换系数矩阵。如果状态数随周期变化t- 1到t,然后米t≠米t- 1.
南
任何系数矩阵中的值都表示状态空间模型中唯一的未知参数。一个
贡献:
sum (isnan ((:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数一个
在每个时期。
numParamsA
时变状态空间模型的未知参数,其中numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数一个
.
你不能指定一个
而且ParamMap
同时进行。
数据类型:双
|细胞
B
- - - - - -状态-扰动-负载系数矩阵用于显式状态空间模型创建的状态扰动加载系数矩阵,指定为矩阵的矩阵或单元格向量。
状态扰动,ut,为均值为0,标准差为1的独立高斯随机变量。状态扰动载荷系数矩阵,Bt,表示从周期到状态转换方程中的附加误差结构t- 1到t,对所有人t= 1,…,T.也就是周期的状态转换方程t是xt=一个txt1+Btut.
对于时不变状态空间模型,请指定B
作为一个米——- - - - - -k矩阵,米状态数和k是每周期的状态扰动数。B * B”
是所有周期的状态扰动协方差矩阵。
对于时变状态空间模型,请指定B
作为一个T-dimensional单元格数组,其中B {t}
包含一个米t——- - - - - -kt状态-扰动-负载系数矩阵。如果状态或状态扰动的数量在一段时间内发生变化t,则矩阵之间的维数B {t - 1}
而且B {t}
有所不同。{t} * B {t}’
状态扰动是周期的协方差矩阵吗t
.
南
任何系数矩阵中的值都表示状态空间模型中唯一的未知参数。B
贡献:
总和(isnan (B (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数B
在每个时期。
numParamsB
时变状态空间模型的未知参数,其中numParamsB = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),B,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数B
.
你不能指定B
而且ParamMap
同时进行。
数据类型:双
|细胞
C
- - - - - -测量灵敏度系数矩阵用于显式状态空间模型创建的测量灵敏度系数矩阵,指定为矩阵的矩阵或单元格向量。
测量灵敏度系数矩阵,Ct,指定状态期望在周期内如何线性组合t为了形成观察结果,yt,对所有人t= 1,…,T.即周期的期望观测方程t是E(yt|xt) =Ctxt.
对于时不变状态空间模型,请指定C
作为一个n——- - - - - -米矩阵,n观察的次数和米是每个周期的状态数。
对于时变状态空间模型,请指定C
作为一个T-dimensional单元格数组,其中C {t}
包含一个nt——- - - - - -米t测量灵敏度系数矩阵。如果状态数或观测值随周期变化t,则矩阵之间的维数C {t - 1}
而且C {t}
有所不同。
南
任何系数矩阵中的值都表示状态空间模型中唯一的未知参数。C
贡献:
sum (isnan (C (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数C
在每个时期。
numParamsC
时变状态空间模型的未知参数,其中numParamsC = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),C,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数C
.
你不能指定C
而且ParamMap
同时进行。
数据类型:双
|细胞
D
- - - - - -观察-创新系数矩阵[]
(默认)|矩阵|矩阵的细胞向量用于显式状态空间模型创建的观察-创新系数矩阵,指定为矩阵的矩阵或单元格向量。
观察的创新,εt,为均值为0,标准差为1的独立高斯随机变量。观察-创新系数矩阵,Dt,表示周期观测方程中的加性误差结构t,对所有人t= 1,…,T.也就是周期的观测方程t是yt=Ctxt+Dtεt.
对于时不变状态空间模型,请指定D
作为一个n——- - - - - -h矩阵,n观察的次数和h为每周期的观测创新数。D * D '
是所有时期的观察-创新协方差矩阵。
对于时变状态空间模型,请指定D
作为一个T-dimensional单元格数组,其中D {t}
包含一个nt——- - - - - -ht矩阵。如果观测次数或观测创新在某一时期发生变化t,则矩阵之间的维数D {t - 1}
而且D {t}
有所不同。D {t} * D {t}’
观察-创新是周期的协方差矩阵吗t
.
南
任何系数矩阵中的值都表示状态空间模型中唯一的未知参数。D
贡献:
sum (isnan (D (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数D
在每个时期。
numParamsD
时变状态空间模型的未知参数,其中numParamsD = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),D,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数D
.
默认情况下,D
是一个空矩阵,表示状态空间模型中没有观测创新。
你不能指定D
而且ParamMap
同时进行。
数据类型:双
|细胞
ParamMap
- - - - - -参数-矩阵映射函数[]
)(默认)|函数处理用于隐式状态空间模型创建的参数到矩阵映射函数,作为函数句柄指定。
ParamMap
必须是至少接受一个输入参数并返回至少三个输出参数的函数。必要的输入参数是一个未知参数的向量,必要的输出参数对应于系数矩阵一个
,B
,C
,分别。如果你的参数到映射函数只需要输入参数向量参数,那么通过输入以下命令隐式创建一个状态空间模型:
Mdl = ssm(@ParamMap)
一般来说,你可以写一个中间函数,例如,ParamFun
,使用这种语法:
function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] =…ParamFun (params otherInputArgs…)
在这种情况下,通过输入来创建状态空间模型
Mdl = ssm(@(params)ParamMap(params,…otherInputArgs…))
然而:
遵循输出参数的顺序。
参数个数
是一个向量,每个元素对应一个未知参数。
ParamFun
必须返回一个
,B
,C
,分别对应状态转移矩阵、状态扰动加载矩阵和测量敏感系数矩阵。
如果指定的输入参数多于形参向量(参数个数
),例如观察到的响应和预测器,然后使用语法模式隐式地创建状态空间模型
Mdl = ssm(@(参数)ParamFun(参数,y,z))
为可选输出参数D
,Mean0
,Cov0
,StateType
,DeflateY
:
可选输出参数对应于观察-创新系数矩阵D
和名称-值对参数Mean0
,Cov0
,StateType
.
若要跳过指定可选输出参数,请将参数设置为[]
在函数体中。例如,跳过指定D
,然后设置D = [];
在函数中。
DeflateY
是压缩观测数据,它容纳了观测方程中的回归分量。例如,在这个函数中,它有一个线性回归分量,Y
观察到的响应向量和Z
是预测器数据的向量。
function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ParamFun(params,Y,Z)…DeflateY = Y - params(9) - params(10)*Z;...结束
的默认值Mean0
,Cov0
,StateType
,请参阅算法.
最好的做法是:
将数据加载到MATLAB中®在指定模型之前的工作区。
创建参数到矩阵映射函数作为其自己的文件。
如果你指定ParamMap
,则不能指定任何名称-值对参数或任何其他输入参数。
数据类型:function_handle
DSSMMdl
- - - - - -扩散状态空间模型dssm
模型对象将扩散状态空间模型转换为状态空间模型,指定为dssm
模型对象。
舰导弹
设置所有弥漫状态的初始方差DSSMMdl。Cov0
从正
来1 e7
.任何有方差的扩散状态正
保留他们的价值观。
要应用标准卡尔曼滤波器而不是弥漫卡尔曼滤波器进行滤波、平滑和参数估计,请将弥漫状态空间模型转换为状态空间模型。
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
Mean0
- - - - - -初态均值初始状态意味着显式的状态空间模型创建,指定为由逗号分隔的对组成“Mean0”
一个长度等于初始状态数的数值向量。默认值请参见算法.
如果你指定ParamMap
,那么你就不能指定Mean0
.相反,在参数到矩阵映射函数中指定初始状态平均值。
数据类型:双
Cov0
- - - - - -初始态协方差矩阵用于显式状态空间模型创建的初始状态协方差矩阵,指定为由逗号分隔的对组成“Cov0”
一个方阵的维数等于初始状态的个数。默认值请参见算法.
如果你指定ParamMap
,那么你就不能指定Cov0
.相反,在参数到矩阵映射函数中指定初始状态协方差。
数据类型:双
StateType
- - - - - -初始状态分布指示器用于显式状态空间模型创建的初始状态分布指示符,指定为逗号分隔的对,由“StateType”
一个长度等于初始状态数的数值向量。这个表总结了初始状态分布的可用类型。
价值 | 初始态分布类型 |
---|---|
0 |
静止的(例如,ARMA模型) |
1 |
常数1(即状态为1,概率为1) |
2 |
扩散或非平稳(例如,随机游走模型,季节性线性时间序列)或静态 |
例如,假设状态方程有两个状态变量:第一个状态变量是AR(1)过程,第二个状态变量是随机游走。通过设置指定初始分布类型“StateType”,[0;2]
.
如果你指定ParamMap
,那么你就不能指定Mean0
.相反,在参数到矩阵映射函数中指定初始状态分布指示器。
默认值请参见算法.
数据类型:双
一个
- - - - - -状态转换系数矩阵[]
)用于显式创建的状态空间模型的状态转换系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]
).对于隐式创建的状态空间模型,在估计之前,一个
是[]
只读。
状态转换系数矩阵,一个t,表示状态xt,都有望从过渡时期t- 1到t,对所有人t= 1,…,T.也就是周期下的期望状态转换方程t是E(xt|xt1) =一个txt1.
对于时不变状态空间模型,一个
是一个米——- - - - - -米矩阵,米是每个周期的状态数。
对于时变状态空间模型,一个
是一个T-dimensional单元格数组,其中{t}
包含一个米t——- - - - - -米t- 1状态转换系数矩阵。如果状态数随周期变化t- 1到t,然后米t≠米t- 1.
南
任何系数矩阵中的值都表示状态空间模型中的未知参数。一个
贡献:
sum (isnan ((:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数一个
在每个时期。
numParamsA
时变状态空间模型的未知参数,其中numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数一个
.
数据类型:双
|细胞
B
- - - - - -状态-扰动-负载系数矩阵[]
)用于显式创建的状态空间模型的状态扰动加载系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]
).对于隐式创建的状态空间模型,在估计之前,B
是[]
只读。
状态扰动,ut,为均值为0,标准差为1的独立高斯随机变量。状态扰动载荷系数矩阵,Bt,表示从周期到状态转换方程中的附加误差结构t- 1到t,对所有人t= 1,…,T.也就是周期的状态转换方程t是xt=一个txt1+Btut.
对于时不变状态空间模型,B
是一个米——- - - - - -k矩阵,米状态数和k是每周期的状态扰动数。B * B”
是所有周期的状态扰动协方差矩阵。
对于时变状态空间模型,B
是一个T-dimensional单元格数组,其中B {t}
包含一个米t——- - - - - -kt状态-扰动-负载系数矩阵。如果状态或状态扰动的数量在一段时间内发生变化t,则矩阵之间的维数B {t - 1}
而且B {t}
有所不同。{t} * B {t}’
状态扰动是周期的协方差矩阵吗t
.
南
任何系数矩阵中的值都表示状态空间模型中的未知参数。B
贡献:
总和(isnan (B (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数B
在每个时期。
numParamsB
时变状态空间模型的未知参数,其中numParamsB = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),B,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数B
.
数据类型:双
|细胞
C
- - - - - -测量灵敏度系数矩阵[]
)显式创建的状态空间模型的测量灵敏度系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]
).对于隐式创建的状态空间模型,在估计之前,C
是[]
只读。
测量灵敏度系数矩阵,Ct,指定状态期望如何在周期内线性组合t为了形成观察结果,yt,对所有人t= 1,…,T.即周期的期望观测方程t是E(yt|xt) =Ctxt.
对于时不变状态空间模型,C
是一个n——- - - - - -米矩阵,n观察的次数和米是每个周期的状态数。
对于时变状态空间模型,C
是一个T-dimensional单元格数组,其中C {t}
包含一个nt——- - - - - -米t测量灵敏度系数矩阵。如果状态数或观测值随周期变化t,则矩阵之间的维数C {t - 1}
而且C {t}
有所不同。
南
任何系数矩阵中的值都表示状态空间模型中的未知参数。C
贡献:
sum (isnan (C (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数C
在每个时期。
numParamsC
时变状态空间模型的未知参数,其中numParamsC = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),C,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数C
.
数据类型:双
|细胞
D
- - - - - -观察-创新系数矩阵[]
)用于显式创建的状态空间模型的观察-创新系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]
).对于隐式创建的状态空间模型,在估计之前,D
是[]
只读。
观察的创新,εt,为均值为0,标准差为1的独立高斯随机变量。观察-创新系数矩阵,Dt,表示周期观测方程中的加性误差结构t,对所有人t= 1,…,T.也就是周期的观测方程t是yt=Ctxt+Dtεt.
对于时不变状态空间模型,D
是一个n——- - - - - -h矩阵,n观察的次数和h为每周期的观测创新数。D * D '
是所有周期的观察-创新协方差矩阵。
对于时变状态空间模型,D
是一个T-dimensional单元格数组,其中D {t}
包含一个nt——- - - - - -ht矩阵。如果观测次数或观测创新在某一时期发生变化t,则矩阵之间的维数D {t - 1}
而且D {t}
有所不同。D {t} * D {t}’
状态扰动是周期的协方差矩阵吗t
.
南
任何系数矩阵中的值都表示状态空间模型中的未知参数。D
贡献:
sum (isnan (D (:)))
时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数D
在每个时期。
numParamsD
时变状态空间模型的未知参数,其中numParamsD = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),D,'UniformOutput',0)))))
.换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数D
.
数据类型:双
|细胞
Mean0
- - - - - -初态均值[]
)初始状态均值,指定为数值向量或空数组([]
).Mean0
长度等于初始状态的数目(大小(1)
或大小(1){1},
).
Mean0
为周期0时状态高斯分布的均值。
对于隐式创建的状态空间模型,在估计之前,Mean0
是[]
只读。然而,估计
指定Mean0
在评估之后。
数据类型:双
Cov0
- - - - - -初始态协方差矩阵[]
)初始状态协方差矩阵,指定为方阵或空数组([]
).Cov0
的维数等于初始状态的数目(大小(1)
或大小(1){1},
).
Cov0
为周期0时状态高斯分布的协方差。
对于隐式创建的状态空间模型,在估计之前,Cov0
是[]
只读。然而,估计
指定Cov0
在评估之后。
数据类型:双
StateType
- - - - - -初始态分布类型[]
)初始状态分布指示符,指定为数值矢量或空数组([]
).StateType
长度等于初始状态数。
对于隐式创建的状态空间模型或参数未知的模型,StateType
是[]
只读。
这个表总结了初始状态分布的可用类型。
价值 | 初始态分布类型 |
---|---|
0 |
静止(如ARMA模型) |
1 |
常数1(即状态为1,概率为1) |
2 |
非平稳(例如,随机游走模型,季节性线性时间序列)或静态 |
例如,假设状态方程有两个状态变量:第一个状态变量是AR(1)过程,第二个状态变量是随机游走。然后,StateType
是[0;2]
.
对于非平稳态,舰导弹
集Cov0
来1 e7
默认情况下。随后,该软件实现了卡尔曼滤波器进行滤波、平滑和参数估计。该规范对扩散状态的初始状态值施加了相对较弱的知识,并在所有状态之间使用初始状态协方差项。
数据类型:双
ParamMap
- - - - - -参数-矩阵映射函数[]
)参数到矩阵映射函数,指定为函数句柄或空数组([]
).ParamMap
完全指定状态空间模型的结构。也就是说,ParamMap
定义了一个
,B
,C
,D
,以及,可选地,Mean0
,Cov0
,StateType
.对于显式创建的状态空间模型,ParamMap
是[]
只读。
数据类型:function_handle
价值。要了解值类如何影响复制操作,请参见复制对象.
创建一个包含两个独立的自回归状态的标准状态空间模型,观测值是这两个状态的确定性和。象征性地说,方程组是
指定状态转换矩阵。
A = [NaN 0;0 NaN);
指定状态扰动加载矩阵。
B = [NaN 0;0 NaN);
指定测量灵敏度矩阵。
C = [1 1];
使用定义状态空间模型舰导弹
.
Mdl = ssm(A,B,C)
Mdl =状态空间模型类型:ssm状态向量长度:2观测向量长度:1状态扰动向量长度:2观测创新向量长度:0模型支持的样本量:无限估计未知参数:4状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…未知参数:c1, c2,…状态方程:x1(t) = (c1)x1(t-1) + (c3)u1(t) x2(t) = (c2)x2(t-1) + (c4)u2(t)观测方程:y1(t) = x1(t) + x2(t)初态分布:未指定初态均值。初始状态协方差矩阵未指定。未指定状态类型。
Mdl
是一个舰导弹
包含未知参数的模型。详细总结Mdl
打印到命令窗口。
验证状态方程和观测方程的正确性是很好的实践。如果方程不正确,那么手动展开状态空间方程可能会有所帮助。
创建一个包含两个独立的自回归状态的状态空间模型,观测值是两个状态加高斯误差的和。从象征意义上来说,方程式是
定义状态转换矩阵。
A = [NaN 0;0 NaN);
定义状态扰动加载矩阵。
B = [NaN 0;0 NaN);
定义测量灵敏度矩阵。
C = [1 1];
定义观察-创新矩阵。
D = NaN;
使用。创建状态空间模型舰导弹
.
Mdl = ssm(A,B,C,D)
Mdl =状态空间模型类型:ssm状态向量长度:2观测向量长度:1状态扰动向量长度:2观测创新向量长度:1模型支持的样本量:无限估计未知参数:5状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…未知参数:c1, c2,…状态方程:x1(t) = (c1)x1(t-1) + (c3)u1(t) x2(t) = (c2)x2(t-1) + (c4)u2(t)观测方程:y1(t) = x1(t) + x2(t) + (c5)e1(t)初态分布:未指定初态均值。初始状态协方差矩阵未指定。未指定状态类型。
Mdl
是一个舰导弹
包含未知参数的模型。详细总结Mdl
打印到命令窗口。
验证状态方程和观测方程的正确性是很好的实践。如果方程不正确,那么手动展开状态空间方程可能会有所帮助。
传递数据和Mdl
来估计
估计参数。
创建一个状态空间模型,其中状态方程是一个AR(2)模型。状态扰动为均值为零的高斯随机变量,标准差为0.3。观测方程是当前状态与之前状态之间的差值加上均值为零的高斯观测创新,标准差为0.1。从象征意义上讲,状态空间模型是
有三种状态: 为AR(2)过程, 代表 , 为AR(2)模型常数。
定义状态转换矩阵。
A = [0.6 0.2 0.5;1 0 0;0 0 1];
定义状态扰动加载矩阵。
B = [0.3;0;0);
定义测量灵敏度矩阵。
C = [1 -1 0];
定义观察-创新矩阵。
D = 0.1;
使用舰导弹
创建状态空间模型。设置初始状态平均值(Mean0
)和协方差矩阵(Cov0
).确定初始状态分布的类型(StateType
),并注意以下事项:
是一个平稳的AR(2)过程。
也是一个平稳的AR(2)过程。
对所有周期都是常数1。
Mean0 = [0;0;1);AR(2)的均值varAR2 = 0.3 * (1 - 0.2) / ((1 + 0.2) * ((1 - 0.2) ^ 2 - 0.6 ^ 2));AR(2)的方差%Cov1AR2 = 0.6 * 0.3 / ((1 + 0.2) * ((1 - 0.2) ^ 2) - 0.6 ^ 2);AR(2)的协方差Cov0 = 0 (3);Cov0(1:2,1:2) = varAR2*眼(2)+ Cov1AR2*翻转(眼(2));StateType = [0;0;1);Mdl = ssm(A,B,C,D,“Mean0”Mean0,“Cov0”Cov0,“StateType”StateType)
Mdl =状态空间模型类型:ssm状态向量长度:3观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…状态方程:x1(t) = (0.60)x1(t-1) + (0.20)x2(t-1) + (0.50)x3(t-1) + (0.30)u1(t) x2(t) = x1(t-1) x3(t) = x3(t-1)观测方程:y1(t) = x1(t) - x2(t) + (0.10)e1(t)初始状态分布:初始状态表示x1 x2 x3 0 0 1初始状态协方差矩阵x1 x2 x3 x1 0.71 0.44 0 x2 0.44 0.71 0 x3 0 0 0状态类型x1 x2 x3平稳平稳常数
Mdl
是一个舰导弹
模型。
的属性Mdl
使用点表示法。例如,显示初始状态协方差矩阵。
Mdl。Cov0
ans =3×30.7143 0.4412 0 0.4412 0.7143 0 0 0 0 0
使用参数映射函数创建一个时不变状态空间模型,其中状态模型为AR(1)模型。状态的观察带有偏差,但没有随机误差。设置初始状态的均值和方差,并指定状态是平稳的。
写一个函数来指定参数的输入方式参数个数
映射到状态空间模型矩阵、初始状态值和状态类型。从象征意义上讲,模型是
版权所有The MathWorks, Inc.函数[A,B,C,D,Mean0,Cov0,StateType] = timeInvariantParamMap(params)时不变状态空间模型参数映射函数示例。这函数将向量参数映射到状态空间矩阵(A、B、C和% D),初始状态值和初始状态方差(Mean0和% Cov0),以及状态类型(StateType)。状态模型为AR(1)%无观察误差。Varu1 = exp(params(2));正方差约束A = params(1);B =√(varu1);C = params(3);D = [];均值= 0.5;Cov0 = 100;StateType = 0;结束
将此代码保存为一个名为timeInvariantParamMap.m
到MATLAB®路径上的文件夹。
通过传递函数来创建状态空间模型timeInvariantParamMap
的函数句柄舰导弹
.
Mdl = ssm(@timeInvariantParamMap);
舰导弹
隐式地创建状态空间模型。通常,您不能验证隐式定义的状态空间模型。
如果您估计、过滤或平滑一个包含至少一个扩散状态的扩散状态空间模型,那么该软件将使用扩散卡尔曼滤波器。若要使用标准卡尔曼滤波器,请将扩散状态空间模型转换为标准状态空间模型。舰导弹
属性具有较大的初始状态方差(1 e7
)用于扩散态。一个标准的状态空间模型处理的结果近似于扩散卡尔曼滤波器的结果。然而,估计
使用所有数据来拟合模型,并且过滤器
而且光滑的
分别返回所有时期的过滤和平滑估计。
显式地创建一个一维扩散状态空间模型。指定第一个状态方程为 ,观测模型为 .
A = 1;B = 1;C = 1;D = 1;MdlDSSM = dssm(A,B,C,D)
MdlDSSM =状态空间模型类型:dssm状态向量长度:1观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…状态方程:x1(t) = x1(t-1) + u1(t)观测方程:y1(t) = x1(t) + e1(t)初始状态分布:初始状态表示x1 0初始状态协方差矩阵x1 x1无穷状态类型x1扩散
MdlDSSM
是一个dssm
模型对象。由于模型不包含任何未知参数,dssm
推导出初始状态分布及其参数。特别地,初始状态方差是正
因为非平稳状态默认是扩散分布。
将MdlDSSM转换为标准的状态空间模型。
Mdl = ssm(MdlDSSM)
Mdl =状态空间模型类型:ssm状态向量长度:1观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…状态方程:x1(t) = x1(t-1) + u1(t)观测方程:y1(t) = x1(t) + e1(t)初始状态分布:初始状态表示x1 0初始状态协方差矩阵x1 x1 1e+07状态类型x1扩散
Mdl
是一个舰导弹
模型对象。的结构Mdl
而且MdlDSSM
是相等的,除了初始状态的方差Mdl
是1 e7
.
要查看两个模型之间的差异,请从类似的状态空间模型中模拟10个周期的数据Mdl
,除了已知初始状态均值为5,方差为2。
Mdl0 = ssm(A,B,C,D,“Mean0”5,“Cov0”,2,“StateType”2);T = 10;rng (1);%用于再现性y =模拟(Mdl0,T);
获取经过过滤和平滑的状态Mdl
而且MdlDSSM
利用模拟数据。
fY = filter(Mdl,y);fDY = filter(MdlDSSM,y);sY = smooth(Mdl,y);sDY = smooth(MdlDSSM,y);
绘制经过过滤和平滑的状态。
图;阴谋(1:T y“o”1: T,财政年度,“- d”1: T,锦纶长丝,“- *”);传奇(模拟数据的,“过滤状态—Mdl”,“过滤状态—MdlDSSM”);
图;阴谋(1:T y“o”1: T, sY,“- d”1: T, sDY“- *”);传奇(模拟数据的,“平滑状态—Mdl”,“平滑状态—MdlDSSM”);
除了明显的瞬态行为外,标准状态空间模型和扩散状态空间模型之间的滤波和平滑状态几乎等效。出现这种细微差别是因为过滤器
而且光滑的
当他们实现弥漫卡尔曼滤波器时,将弥漫状态空间模型中的所有弥漫状态估计设置为0。一旦平滑状态的协方差矩阵达到满秩,过滤器
而且光滑的
切换到使用标准卡尔曼滤波器。在这种情况下,切换时间发生在第一个周期之后。
一个静态在整个样本中值不变,即, 对所有t= 1,…,T.
指定ParamMap
在更一般或更复杂的环境中,例如:
初始状态值是参数。
在时变模型中,您希望对多个时间段使用相同的参数。
您希望施加参数约束。
的默认值Mean0
而且Cov0
:
如果显式指定状态空间模型(即提供系数矩阵)一个
,B
,C
,可选D
),那么:
对于平稳状态,软件使用平稳分布生成初值。如果你提供系数矩阵中的所有值(也就是说,你的模型没有未知参数),那么舰导弹
生成初始值。否则,软件在估计过程中生成初始值。
对于常数为1的状态,舰导弹
集Mean0
到1和Cov0
来0
.
对于弥漫状态,软件设置Mean0
到0和Cov0
来1 e7
默认情况下。
如果隐式地创建状态空间模型(即为系数-矩阵-映射函数提供参数向量)ParamMap
),然后软件在估算时生成任何初始值。
对于整个样本中不等于1的静态状态,软件不能为简并初始状态分布赋值。因此,将静态状态设置为2
使用名称-值对参数StateType
.随后,该软件将静态状态视为非平稳状态,并将静态状态分配为扩散初始分布。
最好的做法是设置StateType
对于每个状态。默认情况下,由软件生成StateType
,但这种行为可能并不准确。例如,软件无法区分恒定状态和静态状态。
软件无法推断StateType
从数据中因为理论上数据来自观测方程。状态方程的实现是不可观察的。
舰导弹
模型不存储观察到的响应或预测数据。在必要时使用适当的输入或名值对参数提供数据。
假设你想要创建一个状态空间模型,使用这个签名的参数到矩阵映射函数:
[A,B,C,D,Mean0,Cov0,StateType,DeflateY] = paramMap(params,Y,Z)
Mdl = ssm(@(参数)paramMap(参数,Y,Z))
Y
预测数据Z
不是匿名函数中的输入参数。如果Y
而且Z
在创建之前存在于MATLAB工作区中Mdl
,然后软件建立与它们的链接。否则,如果你通过了Mdl
来估计
,该软件抛出一个错误。由匿名函数建立的数据链接覆盖的所有其他相应的输入参数值估计
.这种区别在进行滚动窗口分析时尤其重要。详细信息请参见时间序列模型的滚动窗口分析.
[1]德宾J.和S. J.库普曼。状态空间方法的时间序列分析.牛津:牛津大学出版社,2012年。
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。