主要内容

过滤器

类别:ssm

状态空间模型的正向递归

描述

例子

X=过滤器(MdlY返回过滤后的状态X)来执行完全指定的前向递归状态空间模型Mdl.也就是说,过滤器应用标准卡尔曼滤波器使用Mdl观察到的反应Y

例子

X=过滤器(MdlY名称、值使用一个或多个指定的附加选项名称、值对参数。例如,指定回归系数和预测数据来缩小观测值,或者指定使用平方根滤波器。

如果Mdl未完全指定,则必须使用参数个数名称、值配对参数。

X对数输出] =过滤器(___使用前面语法中的任何输入参数来额外返回日志可能性值(对数)和输出结构数组(输出)使用前面语法中的任何输入参数。输出包含:

输入参数

全部展开

标准状态空间模型,指定为ssm返回的模型对象ssm估计

如果Mdl没有完全指定(即,Mdl包含未知参数),然后使用参数个数名称-值对的论点。否则,软件将报错。估计返回完全指定的状态空间模型。

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

观察到的响应数据Mdl是fit,指定为数值矩阵或数值向量的单元向量。

  • 如果Mdl对于观测方程是时不变的,那么Y是一个T——- - - - - -n矩阵,其中每一行对应一个周期,每一列对应模型中的一个特定观察。T样品大小和为每个周期的观测次数。最后一行Y包含了最新的观察结果。

  • 如果Mdl对于观测方程,时间是变化的吗Y是一个T-by-1细胞载体。单元向量的每个元素对应一个周期并包含一个nt-该时期观测值的维向量。中系数矩阵的相应维数Mdl.C {t}Mdl.D{t}必须与矩阵一致吗Y{t}所有时期。最后一个细胞Y包含了最新的观察结果。

元素表示缺失的观测值。关于卡尔曼滤波如何容纳缺失观测的细节,请参见算法

名称-值对参数

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

例子:“β”,β,“预测因子”,Z指定通过由预测数据组成的回归组件缩小观测值Z系数矩阵贝塔

对应于预测变量的回归系数,指定为逗号分隔对,由“贝塔”d——- - - - - -n数字矩阵。d是预测变量的数量(见预测),n观察到的响应序列数(见Y).

如果Mdl是估计的状态空间模型,然后指定存储在中的估计回归系数estParams

状态空间模型中未知参数的值,指定为由逗号分隔的对组成“Params”和一个数字向量。

的元素参数个数对应状态空间模型矩阵中的未知参数一个BC,及D,以及,可选的初始状态均值Mean0和协方差矩阵Cov0

  • 如果你创建的Mdl显式地(即,通过指定没有参数到矩阵映射函数的矩阵),然后软件映射参数个数S的状态空间模型矩阵和初始状态值。软件搜索按顺序排列一个BCDMean0,及Cov0

  • 如果你创建的Mdl然后,您必须隐式地(即通过使用参数到矩阵映射函数指定矩阵)设置状态空间模型矩阵的初始参数值、初始状态值和参数到矩阵映射函数中的状态类型。

如果Mdl包含未知参数,则必须指定其值。否则,软件将忽略参数个数

数据类型:

状态空间模型观测方程中的预测变量,指定为逗号分隔对组成“预测因素”T——- - - - - -d数字矩阵。T是周期数和d是预测变量的数量。行t对应于在某一时期观测到的预测因子tZt).展开的观测方程为

y t Z t β C x t + D u t

也就是说,该软件使用回归组件压缩观测值。β为软件结合所有其他参数估计的回归系数的时不变向量。

如果有n每个周期的观测,然后软件将所有预测序列回归到每个观测上。

如果您指定预测,然后Mdl必须是时不变的。否则,软件将返回错误。

默认情况下,软件从状态空间模型中排除回归组件。

数据类型:

平方根过滤器方法标志,指定为逗号分隔对组成“SquareRoot”真的.如果真的,然后估计在实现卡尔曼滤波时应用平方根滤波方法。

如果怀疑过滤状态或预测观测协方差矩阵的特征值接近零,请指定“SquareRoot”,真的.平方根滤波器对计算精度有限引起的数值问题具有鲁棒性,但需要更多的计算资源。

例子:“SquareRoot”,真的

数据类型:逻辑

预测不确定性阈值,指定为逗号分隔对组成“宽容”一个非负标量。

如果某一特定观测的预测不确定性小于宽容在数值估计过程中,软件在反演前从预测协方差矩阵中去除与观测值相对应的不确定性。

最好的做法是设置宽容例如,对一小部分人,le-15,以克服估算过程中的数值障碍。

例子:“宽容”,le-15

数据类型:

单变量处理的一个多变量序列标志,指定为逗号分隔对组成“一元”真的.多变量序列的单变量处理也称为顺序滤波

单变量处理可以加速和提高卡尔曼滤波器的数值稳定性。然而,所有的观测创新必须是不相关的。也就是说,DtDt'必须是对角线,哪里Dtt= 1,…,T,是以下各项之一:

  • 矩阵D{t}在一个时变状态空间模型中

  • 矩阵D在定常状态空间模型中

例子:“一元”,真的

数据类型:逻辑

输出参数

全部展开

过滤后的状态,作为数字矩阵或数字向量的单元格向量返回。

如果Mdl是时不变的,那么X为样本量,T的列数X是状态数,.最后一行X包含最新的过滤状态。

如果Mdl那么,时间是变化的吗X是一个长度等于样本大小的细胞向量。细胞t属于X包含过滤状态向量,其长度等于周期中的状态数t.最后一个细胞X包含最新的过滤状态。

对数似然函数值,作为标量返回。

遗漏的观察结果不会对对数似然性产生影响。

按周期过滤结果,作为结构数组返回。

输出是一个T-by-1结构,其中元素t对应于当时的筛选结果t

  • 如果单变量(默认情况下为),则下表概述了输出

    描述 估计的
    LogLikelihood 标量对数似然目标函数值 N/A
    过滤状态 t1的向量过滤后的状态 E x t | y 1 ... y t
    FilteredStatesCov t——- - - - - -t滤波状态的方差-协方差矩阵 V 一个 r x t | y 1 ... y t
    ForecastedStates t1的向量国家预测 E x t | y 1 ... y t 1
    ForecastedStatesCov t——- - - - - -t状态预测的方差-协方差矩阵 V 一个 r x t | y 1 ... y t 1
    ForecastedObs ht1预测的观察向量 E y t | y 1 ... y t 1
    ForecastedObsCov ht——- - - - - -ht预测观测的方差-协方差矩阵 V 一个 r y t | y 1 ... t t 1
    卡尔曼根 t——- - - - - -nt调整卡尔曼增益矩阵 N/A
    DataUsed ht-by-1逻辑向量,指示软件是否使用特定观测进行过滤。例如,如果观测当时t是一个,然后元素在里面DataUsed当时t0 N/A

  • 如果Univarite真的,然后是田野输出除以下修改外,与上表相同。

    变化
    ForecastedObs 同样的维度单变量= 0,但只有第一个元素是相等的
    ForecastedObsCov

    n预测观测方差的-1向量。

    该向量的第一个元素等价于ForecastedObsCov (1, 1)单变量.元素中的其余部分不一定与它们的对应值相等ForecastObsCov单变量

    卡尔曼根 同样的维度单变量,虽然卡尔曼根可能有不同的条目。

例子

全部展开

假设一个潜在过程是AR(1)。状态方程是

x t 0 5 x t - 1 + u t

在哪里 u t 为高斯分布,均值为0,标准差为1。

从中生成100个观察值的随机序列 x t ,假设系列从1.5开始。

T=100;ARMdl=arima(基于“增大化现实”技术的,0.5,“常数”0,“方差”x0=1.5;rng(1);%的再现性x =模拟(ARMdl T“Y0”, x0);

进一步假设潜在过程受到可加性测量误差的影响。观测方程为

y t x t + ε t

在哪里 ε t 为高斯分布,平均值为0,标准偏差为0.75。潜过程方程和观测方程共同构成一个状态空间模型。

使用随机潜在状态过程(x)和产生观测值的观测方程。

y = x + 0.75*randn(T,1);

指定四个系数矩阵。

一个= 0.5;B = 1;C = 1;D = 0.75;

使用系数矩阵指定状态空间模型。

Mdl =舰导弹(A, B, C, D)
Mdl =状态空间模型类型:ssm状态向量长度:1观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…万博1manbetx状态扰动:u1 u2…观察系列:y1, y2,…观察创新:e1, e2,…状态方程:x1(t) = (0.50)x1(t-1) + u1(t)观测方程:y1(t) = x1(t) + (0.75)e1(t)初始状态分布:初始状态均值x1 0初始状态协方差矩阵x1 x1 1.33状态类型x1平稳

Mdl是一个ssm模型。使用命令窗口中的显示来验证模型是否正确指定。软件推断状态过程是平稳的。随后,软件将初始状态均值和协方差设置为AR(1)模型平稳分布的均值和方差。

过滤周期1到100的状态。绘制真实状态值和过滤后的状态估计。

filteredX =过滤器(Mdl y);图的阴谋(1:T, x,“- k”1: T, filteredX“:r”“线宽”2)标题({“国家价值观”})xlabel(“时间”)伊拉贝尔(“状态”)({传奇“真实状态值”的过滤状态值})

图中包含一个坐标轴。具有标题状态值的轴包含两个类型为line的对象。这些对象表示True状态值,Filtered状态值。

真实值和滤波估计值大致相同。

假设失业率变化与名义国民生产总值(nGNP)增长率之间的线性关系是有效的。进一步假设失业率的第一个差是ARMA(1,1)级数。从象征意义和状态空间的形式来看,模型是

x 1 t x 2 t ϕ θ 0 0 x 1 t - 1 x 2 t - 1 + 1 1 u 1 t y t - β Z t x 1 t + σ ε t

地点:

  • x 1 t 失业率的变化是否在当时t

  • x 2 t 是MA(1)效应的虚拟状态。

  • y 1 t 观察到的失业率变化是否被nGNP的增长率所抵消( Z t ).

  • u 1 t 是具有平均值0和标准偏差1的状态扰动的高斯序列。

  • ε t 高斯序列的观测创新是否有均值0和标准差 σ

加载Nelson-Plosser数据集,其中包含失业率和nGNP系列。

负载数据采集器

通过取nGNP系列的自然对数和每个系列的第一个差值来预处理数据。此外,删除开始每个系列的值。

isNaN =任何(ismissing(数据表),2);%包含nan的标记句点gnpn=DataTable.gnpn(~isNaN);u=DataTable.UR(~isNaN);T=size(gnpn,1);%样本量Z=[one(T-1,1)diff(log(gnpn))];y=diff(u);

虽然这个例子消除了缺失值,但是软件可以在卡尔曼滤波框架中容纳包含缺失值的序列。

指定系数矩阵。

A = [NaN NaN;0 0];B = [1;1);C = [1 0];D =南;

使用指定状态空间模型ssm

Mdl =舰导弹(A, B, C, D);

估计模型参数,并使用一组随机初始参数值进行优化。属性指定用于优化的回归组件及其初始值“预测因素”“Beta0”分别为名称-值对参数。限制 σ 所有正的实数。

params0=[0.30.20.2];[EstMdl,estParams]=估计值(Mdl,y,params0,“预测因素”, Z,...“Beta0”,[0.1 0.2],“磅”(负负0负无穷,无穷]);
方法:最大似然(fmincon)样本量:61对数似然:-99.7245 Akaike信息准则:209.449贝叶斯信息准则:220.003 | t统计概率多项式系数Std犯错  ---------------------------------------------------------- c (1) c(2) | | -0.34098 0.29608 -1.15164 0.24948 1.05003 0.41377 2.53771 0.01116摄氏度(3)| 0.48592 0.36790 1.32079 0.18657 y < - z (1) | 1.36121 0.22338 6.09358 0 y < - z(2) | -24.46711 1.60018 -15.29024 0 | |最终状态性病Dev t统计概率x (1) | 1.012640.44690 2.26592 0.02346 x(2) | 0.77718 0.58917 1.31912 0.18713

EstMdl是一个ssm模型,您可以使用点表示法访问它的属性。

过滤估计的状态空间模型。EstMdl不存储数据或回归系数,因此必须使用名称-值对参数传入它们“预测因素”“贝塔”,分别。绘制估计的、过滤的状态。回想一下,第一个状态是失业率的变化,第二个状态帮助建立了第一个状态。

filteredX=过滤器(EstMdl,y,“预测因素”, Z,“贝塔”, estParams (end-1:结束));(图绘制(日期(结束)- t - 1 + 1:结束),filteredX (: 1));包含(“时间”)伊拉贝尔(“失业率的变化”)标题(“失业率的过滤变化”

图中包含一个坐标轴。标题为“在失业率中过滤变化”的轴包含一个类型为line的对象。

提示

  • Mdl不存储响应数据、预测数据和回归系数。在必要时使用适当的输入或名称-值对参数提供数据。

  • 为加速低维时不变模型的估计,设置“一元”,真的。使用此规范,软件会在筛选过程中按顺序更新,而不是一次更新所有内容。

算法

  • 卡尔曼滤波器通过不更新与缺失观测相对应的过滤状态估计来容纳缺失数据。换句话说,假设在某个时期有一个缺失的观测值t.然后是一段时期的状态预测t基于之前的t- 1观测和过滤状态的周期t是等价的。

  • 对于显式定义的状态空间模型,过滤器对每个响应系列应用所有预测因子。然而,每个响应序列都有自己的回归系数集。

参考文献

杜宾J.和S. J.库普曼。基于状态空间方法的时间序列分析.2版。牛津:牛津大学出版社,2012。