舰导弹类

超:

创建状态空间模型

描述

SSM创造了一个标准的,线性的,状态空间模型对象具有独立的高斯状态扰动和观测创新。

您可以:

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

  • 指定状态是否稳定,静态的,或不稳定。

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

    • 明确地通过提供矩阵

    • 隐含地通过提供的参数矩阵映射的功能,也就是说,一个参数到矩阵映射函数

一旦你指定了一个模型:

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

  • 如果状态和观察矩阵不包含未知参数(例如,估计SSM模型),那么你可以将它传递给:

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

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

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

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

  • SSM金宝app支持外生预测因子的回归。若要包含缩小观测值的回归分量,请参见估计过滤器预测光滑的

建设

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

MDL=舰导弹(一种Cd创建使用状态转变矩阵的状态空间模型一种,state-disturbance-loading矩阵,measurement-sensitivity矩阵C和观察创新矩阵d

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

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

MDL=舰导弹(ParamMap创建使用参数到矩阵映射函数的状态空间模型(ParamMap),你写。函数映射的参数,以矩阵的矢量一种C。(可选)ParamMap可以将参数映射到dMean0,或Cov0。要指定类型的状态,该函数可以返回StateType。为了在观测方程中容纳一个回归分量,ParamMap也可以返回泄了气的观测数据。

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

输入参数

全部展开

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

状态转变系数矩阵,一种Ť,规定了如何在美国,XŤ,预计将从过渡时期开始Ť- 1Ť,尽管Ť= 1,…,Ť。也就是在某一时期的期望状态转变方程ŤËXŤ|XŤ1)=一种ŤXŤ1

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

对于随时间变化的状态空间模型,指定一种作为一个Ť-维单元数组,其中在}包含Ť——- - - - - -Ť- 1状态转换关系系数矩阵。如果状态数与周期数不同Ť- 1Ť, 然后ŤŤ- 1

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

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

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

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

数据类型:|细胞

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

状态紊乱,üŤ,为均值为0,标准差为1的独立高斯随机变量。状态-扰动-加载系数矩阵,Ť,指定从期间状态转换方程中的附加误差结构Ť- 1Ť,尽管Ť= 1,…,Ť。即,在周期的状态转换方程ŤXŤ=一种ŤXŤ1+ŤüŤ

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

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

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

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

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

你不能指定ParamMap同时进行。

数据类型:|细胞

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

测量灵敏度的系数矩阵,CŤ,规定了如何状态,预计在线性组合期限Ť以形成观察,ÿŤ,尽管Ť= 1,…,Ť。也就是说,在周期的预期观测方程ŤËÿŤ|XŤ)=CŤXŤ

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

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

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

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

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

你不能指定CParamMap同时进行。

数据类型:|细胞

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

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

对于时不变状态空间模型,请指定d作为一个ñ——- - - - - -H矩阵,ñ是观测值的数量和H是每个周期观测的创新数目。D * D '为各时段观测-创新协方差矩阵。

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

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

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

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

默认情况下,d是指示在状态空间模型没有观察创新一个空矩阵。

你不能指定dParamMap同时进行。

数据类型:|细胞

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

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

Mdl =舰导弹(@ParamMap)

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

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

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

MDL = SSM(@(PARAMS)ParamMap(参数,可以... ... otherInputArgs))

然而:

  • 按照输出参数的顺序。

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

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

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

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

  • 对于可选的输出参数dMean0Cov0StateTypeDeflateY

    • 可选的输出参数对应于观测-创新系数矩阵d和名称 - 值对参数Mean0Cov0StateType

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

    • DeflateY是瘪观测数据,其容纳观测方程中的回归组件。例如,在这个函数中,其中有一个线性回归部件,ÿ是观察到的响应的矢量和ž为预测数据的向量。

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

    • 对于默认值Mean0Cov0StateType算法

  • 最好的做法是:

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

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

如果您指定ParamMap,那么你可以不指定任何名称 - 值对的参数或其他任何输入参数。

数据类型:function_handle

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

SSM设置在弥漫国家的全部初始差异DSSMMdl.Cov01E7。任何有差异的扩散状态保留他们的价值观。

可以应用标准的卡尔曼滤波器,而不是漫卡尔曼滤波器,用于滤波,平滑和参数估计,转换一个漫射状态空间模型的状态空间模型。

名称 - 值对参数

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

显式状态空间模型建立初始状态的平均,指定为逗号分隔的一对组成的“Mean0”和一个长度等于初始状态数的数值向量。对于默认值,请参阅算法

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

数据类型:

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

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

数据类型:

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

初始状态分布类型
0 固定的(例如,ARMA模型)
1 常数1(即状态为1,概率为1)
2 弥漫性或不稳定(例如,随机游走模型,季节性线性时间序列)或静态

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

如果您指定ParamMap,那么你可以不指定Mean0。相反,在参数中指定到矩阵映射函数的初始状态分布的指标。

对于默认值,请参阅算法

数据类型:

属性

全部展开

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

状态转变系数矩阵,一种Ť,规定了如何在美国,XŤ,预计将从过渡时期开始Ť- 1Ť,尽管Ť= 1,…,Ť。也就是在某一时期的期望状态转变方程ŤËXŤ|XŤ1)=一种ŤXŤ1

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

对于时变状态空间模型,一种是一个Ť-维单元数组,其中在}包含Ť——- - - - - -Ť- 1状态转换关系系数矩阵。如果状态数与周期数不同Ť- 1Ť, 然后ŤŤ- 1

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

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

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

数据类型:|细胞

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

状态紊乱,üŤ,为均值为0,标准差为1的独立高斯随机变量。状态-扰动-加载系数矩阵,Ť,指定从期间状态转换方程中的附加误差结构Ť- 1Ť,尽管Ť= 1,…,Ť。即,在周期的状态转换方程ŤXŤ=一种ŤXŤ1+ŤüŤ

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

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

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

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

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

数据类型:|细胞

测量灵敏度的系数矩阵为显式地创建状态空间模型,指定为一个矩阵,矩阵的细胞载体,或空数组([])。对于隐式创建的状态空间模型,并估计之前,C[]和只读。

测量灵敏度的系数矩阵,CŤ,规定了如何状态,预计在期线性组合Ť以形成观察,ÿŤ,尽管Ť= 1,…,Ť。也就是说,在周期的预期观测方程ŤËÿŤ|XŤ)=CŤXŤ

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

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

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

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

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

数据类型:|细胞

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

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

对于时不变状态空间模型,d是一个ñ——- - - - - -H矩阵,ñ是观测值的数量和H是每个周期观测的创新数目。D * D '是所有peroids观测创新协方差矩阵。

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

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

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

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

数据类型:|细胞

初始状态的平均,指定为数值向量或一个空数组([])。Mean0长度等于初始状态的数目(大小(1)要么尺寸(A {1},1))。

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

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

数据类型:

初始状态协方差矩阵,指定为方阵或空数组([])。Cov0具有的尺寸等于(初始状态数大小(1)要么尺寸(A {1},1))。

Cov0是状态的高斯分布的在周期0的协方差。

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

数据类型:

初始状态分布的指标,其指定为数值载体或空数组([])。StateType长度等于初始状态的数目。

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

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

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

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

对于非平稳的状态,SSMCov01E7默认情况下。随后,该软件实现了卡尔曼滤波器用于滤波,平滑,和参数估计。本规范规定了弥漫性状态的初始状态值相对薄弱的知识,并使用所有国家之间的初始状态协方差项。

数据类型:

参数到矩阵的映射函数,指定为函数句柄或空数组([])。ParamMap完全指定状态空间模型的结构。那是,ParamMap定义一种Cd可选地,Mean0Cov0StateType。为了明确创建的状态空间模型,ParamMap[]和只读。

数据类型:function_handle

方法

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

复制语义

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

例子

全部收缩

创建包含两个独立的,自回归状态的标准状态空间模型,并且观察是两种状态的确定性总和。象征性地,方程系统是

[ X Ť 1 X Ť 2 ] = [ ϕ 1 0 0 ϕ 2 ] [ X Ť - 1 1 X Ť - 1 2 ] + [ σ 1 0 0 σ 2 ] [ ü Ť 1 ü Ť 2 ]

ÿ Ť = [ 1 1 ] [ X Ť 1 X Ť 2 ]

指定状态转换矩阵。

A = [NaN的0;0为NaN];

指定国家扰动载荷矩阵。

B = [NaN 0;0为NaN];

指定测量灵敏度矩阵。

C = [1 1];

使用定义状态空间模型SSM

Mdl =舰导弹(A, B, C)
Mdl =状态空间模型类型:ssm状态向量长度:2个状态向量长度:1个状态扰动向量长度:2个观测创新向量长度:0个观测创新向量长度:模型支持的样本量:无限未知估计参数:4个状态变量:x1, x2,…金宝app状态扰动: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是一个SSM建模含有未知参数。的详细摘要MDL打印到命令窗口。

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

创建一个包含两个独立自回归状态的状态空间模型,观察值是这两个状态的和,加上高斯误差。象征性地说,等式是

[ X Ť 1 X Ť 2 ] = [ ϕ 1 0 0 ϕ 2 ] [ X Ť - 1 1 X Ť - 1 2 ] + [ σ 1 0 0 σ 2 ] [ ü Ť 1 ü Ť 2 ]

ÿ Ť = [ 1 1 ] [ X Ť 1 X Ť 2 ] + σ 3 ε Ť

定义状态转换矩阵。

A = [NaN的0;0为NaN];

定义状态扰动载荷矩阵。

B = [NaN 0;0为NaN];

定义测量灵敏度矩阵。

C = [1 1];

定义观测-创新矩阵。

D =南;

创建使用状态空间模型SSM

Mdl =舰导弹(A, B, C, D)
MDL =状态空间模型类型:SSM状态向量长度:2观察矢量长度:1状态扰动向量长度:2观察创新向量长度:通过模型支持1种样品尺寸:无限未知参数估计:5状态变量:X1,X2金宝app......国家的干扰:U1,U2,...观察系列:Y1,Y2,...观测创新:E1,E2,...未知参数:C1,C2,...状态方程:X1(T)=(C1)X1(T-1)+(C3)U1(t)的X2(T)=(C2)×2(T-1)+(C4)U2(t)的观测方程:Y1(T)= X1(T)+ X2(t)的+(C5)E1(t)的初始状态分布:未指定初始状态的装置。未指定初始状态协方差矩阵。未指定状态类型。

MDL是一个SSM建模含有未知参数。的详细摘要MDL打印到命令窗口。

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

传递数据和MDL估计估计参数。

创建一个状态空间模型,其中状态方程是AR(2)模型。状态扰动为均值为零的高斯随机变量,标准差为0.3。观测方程为当前状态与先前状态之差加上均值为零的高斯观测创新值,标准差为0.1。象征性地,状态空间模型是

[ X 1 Ť X 2 Ť X 3 Ť ] = [ 0 6 0 2 0 1 0 0 0 0 1 ] [ X 1 Ť - 1 X 2 Ť - 1 X 3 Ť - 1 ] + [ 0 3 0 0 ] ü 1 Ť

ÿ Ť = [ 1 - 1 0 ] [ X 1 Ť X 2 Ť X 3 Ť ] + 0 1 ε Ť

有三种状态: X 1 Ť 是AR(2)过程中, X 2 Ť 代表 X 1 Ť - 1 X 3 Ť 是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;

采用SSM创建状态空间模型。设置初始状态均值(Mean0)和协方差矩阵(Cov0)。识别初始状态分布的类型(StateType)通过注意以下情况:

  • X 1 Ť 是一个平稳的AR(2)过程。

  • X 2 Ť 也是静止的,AR(2)的过程。

  • X 3 Ť 是所有时期的常数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,...状态扰动金宝app: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(Ť)=X1(Ť)-X2(Ť) + (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是一个SSM模型。

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

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

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

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

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

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

通过传递函数来创建状态空间模型timeInvariantParamMap作为函数句柄SSM

MDL = SSM(@timeInvariantParamMap);

SSM隐式创建的状态空间模型。通常情况下,你无法验证隐含定义的状态空间模型。

如果您估计、过滤或平滑一个包含至少一个扩散状态的扩散状态空间模型,那么该软件将使用扩散卡尔曼滤波。要使用标准的卡尔曼滤波,将扩散状态空间模型转换为标准状态空间模型。SSM属性一个大的初始状态方差(1E7)弥漫性状态。一个标准的状态空间模型处理导致的近似到漫卡尔曼滤波器的结果。然而,估计使用所有数据来拟合模型,并且过滤器光滑的,返回过滤和平滑估计各个时期分别。

显式创建一维扩散状态空间模型。指定第一个状态方程为 X Ť = X Ť - 1 + ü Ť 和该观察模型为 ÿ Ť = X Ť + ε Ť

= 1;B = 1;C = 1;D = 1;DSSMMdl = dssm (A, B, C, D)
DSSMMdl =状态空间模型类型:DSSM状态向量长度:1个观察向量长度:1个状态扰动向量长度:1个观察创新载体长度:通过模型支持1种试样尺寸:无限制状态变量:X1,X2,...状态扰动金宝app:U1,U2,...观察系列:Y1,Y2,...观测创新:E1,E2,...状态方程:X1(T)= X1(T-1)+ U1(t)的观测方程:Y1(T)= X1(T)+ E 1(t)的初始状态分布:初始状态的装置X1 0初始状态协方差矩阵X1 X1 Inf文件状态类型X1漫

DSSMMdl是一个dssm模型对象。因为模型不包含任何未知参数,dssm推断初始状态分布和它的参数。特别地,所述初始状态是方差因为非平稳状态预设具有弥漫性分布。

转换DSSMMdl到标准状态空间模型。

Mdl =舰导弹(DSSMMdl)
Mdl =状态空间模型类型:ssm状态向量长度:1个观测向量长度:1个状态扰动向量长度:1个观测创新向量长度:1个模型支持的样本量:无限状态变量:x1, x2,…金宝app状态扰动: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是一个SSM模型对象。的结构MDLDSSMMdl是等价的,除了初始状态的方差在MDL1E7

要查看这两个模型之间的差异,请模拟来自状态空间模型的10个周期的数据MDL,但已知初始状态均值为5,方差为2。

SimMdl =舰导弹(A, B, C, D,“Mean0”5,“Cov0”2,“StateType”,2);T = 10;RNG(1);%的再现性Y =模拟(SimMdl,T);

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

fMdl =过滤器(Mdl y);fDSSMMdl =过滤器(DSSMMdl y);sMdl =光滑(Mdl y);sDSSMMdl =光滑(DSSMMdl y);

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

数字;图(1:T,Y,'-o',1:T,fMdl,“- d”1:T, fDSSMMdl' -  *');传奇(“模拟数据”“筛选国 - 铜牌”“过滤状态——DSSMMdl”);

数字;图(1:T,Y,'-o',1:T,SMDL,“- d”,1:T,sDSSMMdl,' -  *');传奇(“模拟数据”“平滑国 - 铜牌”“平滑状态——DSSMMdl”);

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

更多关于

全部展开

提示

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

  • 初始状态值是参数。

  • 在随时间变化的模型,要使用相同的参数超过一个周期。

  • 你想强加参数约束。

算法

  • 的默认值Mean0Cov0

    • 如果你明确地指定状态空间模型(也就是你提供的系数矩阵一种C和任选d),那么:

      • 对于平稳状态,软件使用平稳分布生成初始值。如果您在系数矩阵中提供了所有的值(也就是说,您的模型没有未知的参数),那么SSM生成的初始值。否则,软件估算期间生成的初始值。

      • 对于总是常数1的状态,SSMMean0为1,Cov00

      • 对于分散状态,软件设置Mean0为0,Cov01E7默认情况下。

    • 如果隐式地创建了状态空间模型(即,你提供的参数矢量的系数矩阵映射函数ParamMap),然后软件在估计期间生成任何初始值。

  • 对于在整个样本中不等于1的静态状态,软件不能为退化的初始状态分布赋值。因此,将静态状态设置为2使用名称 - 值对参数StateType。随后,该软件将静态状态视为非平稳状态,并将静态状态赋值为扩散初始分布。

  • 这是设置的最佳实践StateType每个状态。默认情况下,该软件生成StateType,但这种行为可能并不准确。例如,软件无法区分恒定状态和静态状态。

  • 该软件不能推断StateType从数据,因为数据在理论上来源于观测方程。状态方程的实现是不可观测的。

  • SSM模型不存储观察到的反应或预测数据。使用适当的输入或名称 - 值对的参数在必要时提供数据。

  • 假设你想用一个参数对矩阵映射函数与此签名创建一个状态空间模型:

    [A, B, C, D, Mean0 Cov0, StateType, DeflateY] = paramMap (params, Y, Z)
    你使用匿名函数指定模型
    Mdl =舰导弹(@ (params) paramMap (params, Y, Z))
    观察到的反应ÿ和预测数据ž不是匿名函数中的输入参数。如果ÿž在创建之前存在于MATLAB工作区中MDL,那么软件建立与他们的联系。否则,如果传递MDL估计,该软件将引发错误。

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

备择方案

  • 如果状态是可观察的,并且状态方程似的:

    • 一个ARIMA模型,那么你可以指定一个华宇模型代替。

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

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

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

  • 若要对扩散状态的初始状态值施加先验知识,并实现扩散卡尔曼滤波,请创建一个dssm对象而不是SSM模型对象。

参考文献

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