主要内容

舰导弹类

超类:

创建状态空间模型

描述

舰导弹创建一个标准的,线性的,状态空间模型具有独立高斯态扰动和观测创新的天体。

您可以:

  • 指定一个定常时变模型。

  • 指定状态是否平稳,静态,或者是非平稳的。

  • 指定状态转换、状态扰动加载、测量灵敏度或观察创新矩阵:

    • 通过提供矩阵显式地

    • 通过隐式地提供一个将参数映射到矩阵的函数,即参数到矩阵的映射函数

一旦你指定了一个模型:

  • 如果包含未知参数,则将模型和数据传递给估计,用于估计参数。

  • 如果状态和观察矩阵不包含未知参数(例如,估计的舰导弹模型),然后你可以把它传递给:

    • 过滤器实现正向递归并获得过滤后的估计

    • 预测获得预测状态和观测值

    • 光滑的实现向后递归并获得平滑估计

    • 模拟从状态空间模型中模拟状态和观测

  • 舰导弹万博1manbetx支持外生预测因子的回归。若要包含收缩观测值的回归组件,请参见估计过滤器预测,光滑的

建设

Mdl=舰导弹(一个BC创建一个状态空间模型Mdl)使用状态转换矩阵一个,状态扰动加载矩阵B,和测量灵敏度矩阵C

Mdl=舰导弹(一个BCD使用状态转换矩阵创建状态空间模型一个,状态扰动加载矩阵B,测量灵敏度矩阵C,观察-创新矩阵D

Mdl=舰导弹(___名称,值使用前面语法中的任何输入参数和您指定的一个或多个附加选项名称,值对参数。

的名字也可以是属性名和价值对应的值。的名字必须出现在单引号内().您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

Mdl=舰导弹(ParamMap使用参数到矩阵映射函数创建状态空间模型(ParamMap)你写的。该函数将参数向量映射到矩阵一个B,C.可选地,ParamMap可以将参数映射到DMean0,或Cov0.为了指定状态类型,函数可以返回StateType.为了适应观测方程中的回归分量,ParamMap还可以返回泄气的观测数据。

Mdl=舰导弹(DSSMMdl转换扩散状态空间模型对象(DSSMMdl)到状态空间模型对象(Mdl).舰导弹设置所有弥漫状态的初始方差SSMMdl。Cov01 e07

输入参数

全部展开

用于显式状态空间模型创建的状态转换系数矩阵,指定为矩阵的矩阵或单元格向量。

状态转换系数矩阵,一个t,表示状态xt,都有望从过渡时期t- 1到t,对所有人t= 1,…,T.也就是周期下的期望状态转换方程tExt|xt1) =一个txt1

对于时不变状态空间模型,请指定一个作为一个——- - - - - -矩阵,是每个周期的状态数。

对于时变状态空间模型,请指定一个作为一个T-dimensional单元格数组,其中{t}包含一个t——- - - - - -t- 1状态转换系数矩阵。如果状态数随周期变化t- 1到t,然后tt- 1

任何系数矩阵中的值都表示状态空间模型中唯一的未知参数。一个贡献:

  • sum (isnan ((:)))时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数一个在每个时期。

  • numParamsA时变状态空间模型的未知参数,其中numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0))))).换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数一个

你不能指定一个而且ParamMap同时进行。

数据类型:|细胞

用于显式状态空间模型创建的状态扰动加载系数矩阵,指定为矩阵的矩阵或单元格向量。

状态扰动,ut,为均值为0,标准差为1的独立高斯随机变量。状态扰动载荷系数矩阵,Bt,表示从周期到状态转换方程中的附加误差结构t- 1到t,对所有人t= 1,…,T.也就是周期的状态转换方程txt一个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同时进行。

数据类型:|细胞

用于显式状态空间模型创建的测量灵敏度系数矩阵,指定为矩阵的矩阵或单元格向量。

测量灵敏度系数矩阵,Ct,指定状态期望在周期内如何线性组合t为了形成观察结果,yt,对所有人t= 1,…,T.即周期的期望观测方程tEyt|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同时进行。

数据类型:|细胞

用于显式状态空间模型创建的观察-创新系数矩阵,指定为矩阵的矩阵或单元格向量。

观察的创新,εt,为均值为0,标准差为1的独立高斯随机变量。观察-创新系数矩阵,Dt,表示周期观测方程中的加性误差结构t,对所有人t= 1,…,T.也就是周期的观测方程tytCtxt+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必须是至少接受一个输入参数并返回至少三个输出参数的函数。必要的输入参数是一个未知参数的向量,必要的输出参数对应于系数矩阵一个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))

  • 为可选输出参数DMean0Cov0StateType,DeflateY

    • 可选输出参数对应于观察-创新系数矩阵D和名称-值对参数Mean0Cov0,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;...结束

    • 的默认值Mean0Cov0,StateType,请参阅算法

  • 最好的做法是:

    • 将数据加载到MATLAB中®在指定模型之前的工作区。

    • 创建参数到矩阵映射函数作为其自己的文件。

如果你指定ParamMap,则不能指定任何名称-值对参数或任何其他输入参数。

数据类型:function_handle

将扩散状态空间模型转换为状态空间模型,指定为dssm模型对象。

舰导弹设置所有弥漫状态的初始方差DSSMMdl。Cov01 e7.任何有方差的扩散状态保留他们的价值观。

要应用标准卡尔曼滤波器而不是弥漫卡尔曼滤波器进行滤波、平滑和参数估计,请将弥漫状态空间模型转换为状态空间模型。

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

初始状态意味着显式的状态空间模型创建,指定为由逗号分隔的对组成“Mean0”一个长度等于初始状态数的数值向量。默认值请参见算法

如果你指定ParamMap,那么你就不能指定Mean0.相反,在参数到矩阵映射函数中指定初始状态平均值。

数据类型:

用于显式状态空间模型创建的初始状态协方差矩阵,指定为由逗号分隔的对组成“Cov0”一个方阵的维数等于初始状态的个数。默认值请参见算法

如果你指定ParamMap,那么你就不能指定Cov0.相反,在参数到矩阵映射函数中指定初始状态协方差。

数据类型:

用于显式状态空间模型创建的初始状态分布指示符,指定为逗号分隔的对,由“StateType”一个长度等于初始状态数的数值向量。这个表总结了初始状态分布的可用类型。

价值 初始态分布类型
0 静止的(例如,ARMA模型)
1 常数1(即状态为1,概率为1)
2 扩散或非平稳(例如,随机游走模型,季节性线性时间序列)或静态

例如,假设状态方程有两个状态变量:第一个状态变量是AR(1)过程,第二个状态变量是随机游走。通过设置指定初始分布类型“StateType”,[0;2]

如果你指定ParamMap,那么你就不能指定Mean0.相反,在参数到矩阵映射函数中指定初始状态分布指示器。

默认值请参见算法

数据类型:

属性

全部展开

用于显式创建的状态空间模型的状态转换系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]).对于隐式创建的状态空间模型,在估计之前,一个[]只读。

状态转换系数矩阵,一个t,表示状态xt,都有望从过渡时期t- 1到t,对所有人t= 1,…,T.也就是周期下的期望状态转换方程tExt|xt1) =一个txt1

对于时不变状态空间模型,一个是一个——- - - - - -矩阵,是每个周期的状态数。

对于时变状态空间模型,一个是一个T-dimensional单元格数组,其中{t}包含一个t——- - - - - -t- 1状态转换系数矩阵。如果状态数随周期变化t- 1到t,然后tt- 1

任何系数矩阵中的值都表示状态空间模型中的未知参数。一个贡献:

  • sum (isnan ((:)))时不变状态空间模型的未知参数。换句话说,如果状态空间模型是时不变的,那么软件将使用中定义的相同未知参数一个在每个时期。

  • numParamsA时变状态空间模型的未知参数,其中numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0))))).换句话说,如果状态空间模型是时变的,那么软件为中的每个矩阵分配一组新的参数一个

数据类型:|细胞

用于显式创建的状态空间模型的状态扰动加载系数矩阵,指定为矩阵、矩阵的单元格向量或空数组([]).对于隐式创建的状态空间模型,在估计之前,B[]只读。

状态扰动,ut,为均值为0,标准差为1的独立高斯随机变量。状态扰动载荷系数矩阵,Bt,表示从周期到状态转换方程中的附加误差结构t- 1到t,对所有人t= 1,…,T.也就是周期的状态转换方程txt一个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[]只读。

测量灵敏度系数矩阵,Ct,指定状态期望如何在周期内线性组合t为了形成观察结果,yt,对所有人t= 1,…,T.即周期的期望观测方程tEyt|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[]只读。

观察的创新,εt,为均值为0,标准差为1的独立高斯随机变量。观察-创新系数矩阵,Dt,表示周期观测方程中的加性误差结构t,对所有人t= 1,…,T.也就是周期的观测方程tytCtxt+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长度等于初始状态的数目(大小(1)大小(1){1},).

Mean0为周期0时状态高斯分布的均值。

对于隐式创建的状态空间模型,在估计之前,Mean0[]只读。然而,估计指定Mean0在评估之后。

数据类型:

初始状态协方差矩阵,指定为方阵或空数组([]).Cov0的维数等于初始状态的数目(大小(1)大小(1){1},).

Cov0为周期0时状态高斯分布的协方差。

对于隐式创建的状态空间模型,在估计之前,Cov0[]只读。然而,估计指定Cov0在评估之后。

数据类型:

初始状态分布指示符,指定为数值矢量或空数组([]).StateType长度等于初始状态数。

对于隐式创建的状态空间模型或参数未知的模型,StateType[]只读。

这个表总结了初始状态分布的可用类型。

价值 初始态分布类型
0 静止(如ARMA模型)
1 常数1(即状态为1,概率为1)
2 非平稳(例如,随机游走模型,季节性线性时间序列)或静态

例如,假设状态方程有两个状态变量:第一个状态变量是AR(1)过程,第二个状态变量是随机游走。然后,StateType[0;2]

对于非平稳态,舰导弹Cov01 e7默认情况下。随后,该软件实现了卡尔曼滤波器进行滤波、平滑和参数估计。该规范对扩散状态的初始状态值施加了相对较弱的知识,并在所有状态之间使用初始状态协方差项。

数据类型:

参数到矩阵映射函数,指定为函数句柄或空数组([]).ParamMap完全指定状态空间模型的结构。也就是说,ParamMap定义了一个BCD,以及,可选地,Mean0Cov0,StateType.对于显式创建的状态空间模型,ParamMap[]只读。

数据类型:function_handle

对象的功能

全部展开

估计 状态空间模型的极大似然参数估计
disp 显示状态空间模型的摘要信息
完善 细化初始参数以帮助状态空间模型估计
过滤器 状态空间模型的正向递归
光滑的 状态空间模型的向后递归
更新 状态空间模型卡尔曼滤波实时状态更新
irf 状态空间模型的脉冲响应函数
irfplot 绘制状态空间模型的脉冲响应函数
模拟 状态空间模型的蒙特卡罗模拟
simsmooth 状态空间模型仿真更流畅
预测 状态空间模型的预测状态和观测

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象

例子

全部折叠

创建一个包含两个独立的自回归状态的标准状态空间模型,观测值是这两个状态的确定性和。象征性地说,方程组是

x t 1 x t 2 ϕ 1 0 0 ϕ 2 x t - 1 1 x t - 1 2 + σ 1 0 0 σ 2 u t 1 u t 2

y t 1 1 x t 1 x t 2

指定状态转换矩阵。

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打印到命令窗口。

验证状态方程和观测方程的正确性是很好的实践。如果方程不正确,那么手动展开状态空间方程可能会有所帮助。

创建一个包含两个独立的自回归状态的状态空间模型,观测值是两个状态加高斯误差的和。从象征意义上来说,方程式是

x t 1 x t 2 ϕ 1 0 0 ϕ 2 x t - 1 1 x t - 1 2 + σ 1 0 0 σ 2 u t 1 u t 2

y t 1 1 x t 1 x t 2 + σ 3. ε t

定义状态转换矩阵。

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。从象征意义上讲,状态空间模型是

x 1 t x 2 t x 3. t 0 6 0 2 0 5 1 0 0 0 0 1 x 1 t - 1 x 2 t - 1 x 3. t - 1 + 0 3. 0 0 u 1 t

y t 1 - 1 0 x 1 t x 2 t x 3. t + 0 1 ε t

有三种状态: x 1 t 为AR(2)过程, x 2 t 代表 x 1 t - 1 , x 3. t 为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),并注意以下事项:

  • x 1 t 是一个平稳的AR(2)过程。

  • x 2 t 也是一个平稳的AR(2)过程。

  • x 3. t 对所有周期都是常数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)模型。状态的观察带有偏差,但没有随机误差。设置初始状态的均值和方差,并指定状态是平稳的。

写一个函数来指定参数的输入方式参数个数映射到状态空间模型矩阵、初始状态值和状态类型。从象征意义上讲,模型是

数组$ $ \开始{}{* {20}{c}} & # xA; {{x_t}φ= \{间{t - 1}} + \σ{u_t}} \ \ & # xA; {{y_t} = {x_t}} & # xA; \{数组}结束。$ $

版权所有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)用于扩散态。一个标准的状态空间模型处理的结果近似于扩散卡尔曼滤波器的结果。然而,估计使用所有数据来拟合模型,并且过滤器而且光滑的分别返回所有时期的过滤和平滑估计。

显式地创建一个一维扩散状态空间模型。指定第一个状态方程为 x t x t - 1 + u t ,观测模型为 y t x t + ε t

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是相等的,除了初始状态的方差Mdl1 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”);

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示模拟数据、过滤状态Mdl、过滤状态MdlDSSM。

图;阴谋(1:T y“o”1: T, sY,“- d”1: T, sDY“- *”);传奇(模拟数据的“平滑状态—Mdl”“平滑状态—MdlDSSM”);

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示模拟数据、平滑状态Mdl、平滑状态MdlDSSM。

除了明显的瞬态行为外,标准状态空间模型和扩散状态空间模型之间的滤波和平滑状态几乎等效。出现这种细微差别是因为过滤器而且光滑的当他们实现弥漫卡尔曼滤波器时,将弥漫状态空间模型中的所有弥漫状态估计设置为0。一旦平滑状态的协方差矩阵达到满秩,过滤器而且光滑的切换到使用标准卡尔曼滤波器。在这种情况下,切换时间发生在第一个周期之后。

更多关于

全部展开

提示

指定ParamMap在更一般或更复杂的环境中,例如:

  • 初始状态值是参数。

  • 在时变模型中,您希望对多个时间段使用相同的参数。

  • 您希望施加参数约束。

算法

  • 的默认值Mean0而且Cov0

    • 如果显式指定状态空间模型(即提供系数矩阵)一个BC,可选D),那么:

      • 对于平稳状态,软件使用平稳分布生成初值。如果你提供系数矩阵中的所有值(也就是说,你的模型没有未知参数),那么舰导弹生成初始值。否则,软件在估计过程中生成初始值。

      • 对于常数为1的状态,舰导弹Mean0到1和Cov00

      • 对于弥漫状态,软件设置Mean0到0和Cov01 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估计,该软件抛出一个错误。

    由匿名函数建立的数据链接覆盖的所有其他相应的输入参数值估计.这种区别在进行滚动窗口分析时尤其重要。详细信息请参见时间序列模型的滚动窗口分析

选择

  • 如果状态是可观察的,状态方程如下:

    • 一个ARIMA模型,然后您可以指定华宇电脑模型代替。

    • 一个带有ARIMA误差的回归模型,然后可以指定一个regARIMA模型代替。

    • 一个条件方差模型,那么你可以指定一个garchegarch,或gjr模型代替。

    • 一个VAR模型,然后你可以估计这样一个模型使用varm而且估计

  • 为了对扩散状态的初始状态值施加无先验知识,并实现扩散卡尔曼滤波器,创建一个dssm模型对象而不是舰导弹模型对象。

参考文献

[1]德宾J.和S. J.库普曼。状态空间方法的时间序列分析.牛津:牛津大学出版社,2012年。