舰导弹类

超类:

状态空间模型创建

描述

舰导弹创建一个标准的,直链,状态空间模型对象具有独立的高斯状态扰动和观测创新。

您可以:

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

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

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

    • 明确地通过提供矩阵

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

一旦你指定了一个模型:

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

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

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

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

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

    • 模拟从状态空间模型中模拟状态和观察结果

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

建设

Mdl=舰导弹(一个,B,C)创建一个状态空间模型(Mdl)使用状态转换矩阵一个,state-disturbance-loading矩阵B和测量灵敏度矩阵C

Mdl=舰导弹(一个,B,C,D)使用状态转换矩阵创建状态空间模型一个,state-disturbance-loading矩阵B,measurement-sensitivity矩阵C,以及观测-创新矩阵D

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

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

Mdl=舰导弹(ParamMap)使用参数到矩阵的映射函数(ParamMap)你写。该函数将参数向量映射到矩阵一个,B,C。可选地,ParamMap可以将参数映射到D,Mean0,或Cov0。要指定状态的类型,函数可以返回StateType。为了在观测方程中容纳一个回归分量,ParamMap也可以返回泄气的观测数据。

Mdl=舰导弹(DSSMMdl)转换分散的状态空间模型对象(DSSMMdl)到一个状态空间模型对象(Mdl)。舰导弹设置在弥漫国家的全部初始差异SSMMdl.Cov01 e07

输入参数

全部展开

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

状态跃迁系数矩阵,一个t,规定了各州,xt,预计从过渡期开始t——1t,尽管t= 1,…,T。也就是周期的期望状态转变方程tE(xt|xt1)=一个txt1

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

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

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

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

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

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

数据类型:|细胞

状态扰动加载系数矩阵显式状态空间模型建立,指定为矩阵的矩阵或细胞载体。

干扰,ut,为均值为0,标准差为1的独立高斯随机变量。状态-扰动-加载系数矩阵,Bt,指定从期间状态转换方程中的附加误差结构t——1t,尽管t= 1,…,T。即,在周期的状态转换方程txt=一个txt1+Btut

对于时不变状态空间模型,请指定B作为一个——- - - - - -k矩阵,其中状态数和k是每个周期状态扰动的数量。B * B”为各时段的状态扰动协方差矩阵。

对于时变状态空间模型,请指定B作为一个T-维单元数组,其中B {吨}包含一个t——- - - - - -kt状态扰动加载系数矩阵。如果状态或状态扰动的数量变化在周期t,然后之间的矩阵的维数B {t - 1}B {吨}有所不同。B {吨} * B {吨}”周期的状态扰动协方差矩阵是吗t

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

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

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

你不能指定BParamMap同时进行。

数据类型:|细胞

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

测量灵敏度系数矩阵,Ct,指定这些状态在周期内期望如何线性组合t以形成观察,yt,尽管t= 1,…,T。即周期的期望观测方程tE(yt|xt)=Ctxt

对于时不变状态空间模型,请指定C作为一个n——- - - - - -矩阵,其中n是观测值和是每个周期的状态数。

对于时变状态空间模型,请指定C作为一个T-维单元数组,其中13 C {吨}包含一个nt——- - - - - -tmeasurement-sensitivity系数矩阵。如果状态数或观测值在周期内发生变化t,然后之间的矩阵的维数C {t - 1}13 C {吨}有所不同。

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

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

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

你不能指定CParamMap同时进行。

数据类型:|细胞

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

观察创新,εt,为均值为0,标准差为1的独立高斯随机变量。观测-创新系数矩阵,Dt时,指定在周期的观测等式中的附加误差结构t,尽管t= 1,…,T。也就是周期的观测方程tyt=Ctxt+Dtεt

对于时不变状态空间模型,请指定D作为一个n——- - - - - -h矩阵,其中n是观测值和h为每个时段的观测创新数。D * D '为各时段的观测-创新协方差矩阵。

对于时变状态空间模型,请指定D作为一个T-维单元数组,其中D {t}包含一个nt——- - - - - -ht矩阵。如果观测次数或观测创新次数在某一时期发生变化t,然后之间的矩阵的维数D {t - 1}D {t}有所不同。D {t} * D {t}’为周期的观测创新协方差矩阵t

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

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

  • numParamsD时变状态空间模型的未知参数,其中numParamsD =总和(cell2mat(cellfun(@(x)的总和(求和(isnan(X))),d, 'UniformOutput',0)))。换句话说,如果状态空间模型是时变的,那么软件会为每个矩阵分配一组新的参数D

默认情况下,D为空矩阵,表示状态空间模型中没有观测创新。

你不能指定DParamMap同时进行。

数据类型:|细胞

用于隐式状态空间模型创建的参数到矩阵映射函数,指定为函数句柄。

ParamMap必须是接受至少一个输入参数并返回至少三个输出参数的函数。所需的输入参数是一个未知参数的向量,所需的输出参数对应于系数矩阵一个,B,C,分别。如果你的parameter-to-mapping函数只需要输入parameter vector参数,那么通过输入以下内容,隐式地创建一个状态空间模型:

Mdl =舰导弹(@ParamMap)

一般来说,你可以写一个中间函数,例如,ParamFun,使用以下语法:

函数[A,B,C,D,Mean0,Cov0,StateType,DeflateY] =…ParamFun (params otherInputArgs…)

在这种情况下,通过输入来创建状态空间模型

Mdl =舰导弹(@ (params) ParamMap (params otherInputArgs…))

然而:

  • 按照输出参数的顺序。

  • PARAMS是一个向量,每个元素对应一个未知参数。

  • ParamFun必须返回一个,B,C,分别对应于状态转移矩阵、状态扰动载荷矩阵和测量灵敏度系数矩阵。

  • 如果指定的输入参数多于参数向量(PARAMS),例如观察到的响应和预测器,然后使用语法模式隐式地创建状态空间模型

    Mdl =舰导弹(@ (params) ParamFun (params, y, z))

  • 对于可选的输出参数D,Mean0,Cov0,StateType,DeflateY:

    • 可选输出参数对应于观测-创新系数矩阵D以及名称-值对参数Mean0,Cov0,StateType

    • 若要跳过指定可选输出参数,请将该参数设置为[]在函数体中。例如,跳过指定D,然后设置d = [];的函数。

    • DeflateY为偏折观测数据,在观测方程中加入回归分量。例如,在这个函数中,它有一个线性回归分量,Y是观测到的响应和的向量吗Z为预测数据的向量。

      函数[A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ParamFun(params,Y,Z)…- params(9) - params(10)*Z;…结束

    • 的默认值Mean0,Cov0,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——1t,尽管t= 1,…,T。也就是周期的期望状态转变方程tE(xt|xt1)=一个txt1

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

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

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

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

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

数据类型:|细胞

状态扰动加载系数矩阵显式地创建状态空间模型,指定为一个矩阵,矩阵的细胞载体,或空数组([])。对于隐式创建的状态空间模型和评估之前,B[]和只读。

干扰,ut,为均值为0,标准差为1的独立高斯随机变量。状态-扰动-加载系数矩阵,Bt,指定从期间状态转换方程中的附加误差结构t——1t,尽管t= 1,…,T。即,在周期的状态转换方程txt=一个txt1+Btut

对于时不变状态空间模型,B是一个——- - - - - -k矩阵,其中状态数和k是每个周期状态扰动的数量。B * B”为各时段的状态扰动协方差矩阵。

对于时变状态空间模型,B是一个T-维单元数组,其中B {吨}包含一个t——- - - - - -kt状态扰动加载系数矩阵。如果状态或状态扰动的数量变化在周期t,然后之间的矩阵的维数B {t - 1}B {吨}有所不同。B {吨} * B {吨}”周期的状态扰动协方差矩阵是吗t

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

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

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

数据类型:|细胞

显式创建状态空间模型的测量灵敏度系数矩阵,指定为矩阵、矩阵的单元向量或空数组([])。对于隐式创建的状态空间模型和评估之前,C[]和只读。

测量灵敏度系数矩阵,Ct,指定在周期内期望状态如何线性组合t以形成观察,yt,尽管t= 1,…,T。即周期的期望观测方程tE(yt|xt)=Ctxt

对于时不变状态空间模型,C是一个n——- - - - - -矩阵,其中n是观测值和是每个周期的状态数。

对于时变状态空间模型,C是一个T-维单元数组,其中13 C {吨}包含一个nt——- - - - - -tmeasurement-sensitivity系数矩阵。如果状态数或观测值在周期内发生变化t,然后之间的矩阵的维数C {t - 1}13 C {吨}有所不同。

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

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

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

数据类型:|细胞

显式创建状态空间模型的观测-创新系数矩阵,指定为矩阵、矩阵的单元向量或空数组([])。对于隐式创建的状态空间模型和评估之前,D[]和只读。

观察创新,εt,为均值为0,标准差为1的独立高斯随机变量。观测-创新系数矩阵,Dt时,指定在周期的观测等式中的附加误差结构t,尽管t= 1,…,T。也就是周期的观测方程tyt=Ctxt+Dtεt

对于时不变状态空间模型,D是一个n——- - - - - -h矩阵,其中n是观测值和h为每个时段的观测创新数。D * D '是所有peroids观测创新协方差矩阵。

对于时变状态空间模型,D是一个T-维单元数组,其中D {t}包含一个nt——- - - - - -ht矩阵。如果观测次数或观测创新次数在某一时期发生变化t,然后之间的矩阵的维数D {t - 1}D {t}有所不同。D {t} * D {t}’周期的状态扰动协方差矩阵是吗t

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

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

  • numParamsD时变状态空间模型的未知参数,其中numParamsD =总和(cell2mat(cellfun(@(x)的总和(求和(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定义了一个,B,C,D可选地,Mean0,Cov0,StateType。对于显式创建的状态空间模型,ParamMap[]和只读。

数据类型:function_handle

方法

disp 显示状态空间模型的摘要信息
估计 状态空间模型的极大似然参数估计
过滤器 状态空间模型的前向递归
预测 预测的状态和状态空间模型的观察
完善 细化初始参数以帮助状态空间模型估计
simsmooth 状态空间模型仿真平滑
模拟 状态空间模型的蒙特卡罗模拟
光滑 状态空间模型的向后递归

复制语义

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

例子

全部收缩

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

( 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 =舰导弹(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 =南;

使用以下命令创建状态空间模型舰导弹

Mdl =舰导弹(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*eye(2) + Cov1AR2*flip(eye(2));StateType = [0;0;1);Mdl =舰导弹(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,...状态方程:X 1(T)=(0.60)×1(T-1)+(0.20)×2(T-1)+(0.50)×3(T-1)+(0.30)U1(t)的X2(T)= X1(T-1)×3(T)= X3(T-1)的观察方程:Y1(t)=x1(t)-x2(t) + (0.10)e1(t) Initial state distribution: Initial state means x1 x2 x3 0 0 1 Initial state covariance matrix x1 x2 x3 x1 0.71 0.44 0 x2 0.44 0.71 0 x3 0 0 0 State types x1 x2 x3 Stationary Stationary Constant

Mdl是一个舰导弹模型。

您可以显示的属性Mdl使用点符号。例如,显示初始状态协方差矩阵。

Mdl.Cov0
ANS =3×30.7143 0.4412 0 0.4412 0.7143 0 0 0 0

使用参数映射函数创建时不变状态空间模型,其中状态模型为AR(1)模型。对状态的观测有偏差,但没有随机误差。设置初始状态的均值和方差,并指定状态是平稳的。

编写一个函数,指定参数如何输入PARAMS映射到状态空间模型矩阵、初始状态值和状态类型。象征性地,模型是

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

% MathWorks, Inc.版权所有函数[A, B, C, D, Mean0 Cov0, StateType] = timeInvariantParamMap (params)%时不变状态空间模型参数映射函数的例子。这个函数将向量参数映射到状态空间矩阵(A、B、C和),初始状态值和初始状态方差(Mean0和%Cov0),和状态的类型(StateType)。状态模型是AR(1)%,没有观测误差。varu1 = exp (params (2));正方差约束一个= params (1);B =√varu1);C = params (3);D = [];Mean0 = 0.5;Cov0 = 100;StateType = 0;结束

将此代码保存为一个名为的文件timeInvariantParamMap.m您MATLAB®路径上的文件夹中。

通过传递函数创建状态空间模型timeInvariantParamMap作为函数句柄舰导弹

Mdl =舰导弹(@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 Inf状态类型x1扩散

MdlDSSM是一个dssm模型对象。因为模型不包含任何未知参数,dssm推断初始状态分布和它的参数。特别地,所述初始状态是方差因为非定态在默认情况下是扩散分布的。

将MdlDSSM转换为标准状态空间模型。

Mdl =舰导弹(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是一个舰导弹模型对象。的结构MdlMdlDSSM是等价的,除了初始状态的方差在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);

获得经过过滤和平滑的状态MdlMdlDSSM使用模拟数据。

财政年度=过滤器(Mdl y);锦纶长丝=过滤器(MdlDSSM y);sY =光滑(Mdl y);sDY =光滑(MdlDSSM y);

绘制经过过滤和平滑的状态。

图;阴谋(1:T y'-o'1:T,财政年度,“- d”1:T,锦纶长丝,' -  *');传奇(模拟数据的,“筛选国 - 铜牌”,“过滤状态——MdlDSSM”);

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

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

更多关于

全部展开

提示

指定ParamMap在更一般或更复杂的情况下,例如:

  • 初始状态值是参数。

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

  • 你想强加参数约束。

算法

  • 的默认值Mean0Cov0:

    • 如果你明确地指定状态空间模型(也就是你提供的系数矩阵一个,B,C和任选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 =舰导弹(@ (params) paramMap (params, Y, Z))
    观察到的反应Y和预测数据Z是不是在匿名函数的输入参数。如果YZ在创建之前存在于MATLAB工作区中Mdl,然后软件就会建立到它们的链接。否则,如果你通过Mdl估计,软件抛出一个错误。

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

备择方案

  • 如果状态是可观测的,状态方程类似于:

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

    • 带有ARIMA错误的回归模型,然后可以指定AregARIMA模型代替。

    • 一个条件方差模型,然后你可以指定一个GARCH,egarch,或GJR模型代替。

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

  • 强加给漫状态的初始状态值先验知识,并实施漫卡尔曼滤波器,创建dssm对象而不是舰导弹模型对象。

参考

[1] Durbin J.和S. J. Koopman。用状态空间法进行时间序列分析。2版。牛津:牛津大学出版社,2012。