光滑的

类:舰导弹

状态空间模型的向后递归

描述

例子

X=平滑(MdlY返回平滑状态X),以执行完全指定的状态空间模型Mdl.也就是说,光滑的应用标准卡尔曼滤波器使用Mdl观察到的反应Y

例子

X=平滑(MdlY名称,值使用一个或多个指定的其他选项名称,值对参数。

如果Mdl未完全指定,则必须使用?将未知参数设置为已知标量参数个数名称,值对参数。

例子

XlogL输出=平滑的(___使用前面语法中的任何输入参数来额外返回对数似然值(logL)和输出结构数组(输出)包含:

  • 平滑状态和估计的协方差矩阵

  • 平滑状态扰动及其估计协方差矩阵

  • 平滑观测创新及其估计协方差矩阵

  • 对数似然值

  • 的调整卡尔曼增益

  • 还有一个矢量,表示软件用来过滤哪些数据

输入参数

全部展开

的标准状态空间模型舰导弹返回的模型对象舰导弹估计

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

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

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

  • 如果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

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

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

  • 如果你创建了Mdl显式地(即通过指定矩阵而不使用参数到矩阵的映射函数),然后软件映射的元素参数个数S在状态空间模型矩阵和初始状态值。该软件搜索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是样本量,和列数的X是状态数。最后一行X包含最新的平滑状态。

如果Mdl那么,时间是变化的吗X是长度等于样本大小的单元格向量。细胞tX包含一个平滑状态向量,其长度等于周期内的状态数t.最后一个细胞X包含最新的平滑状态。

数据类型:细胞|

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

缺失的观测对对数似然没有贡献。

按周期平滑结果,作为结构数组返回。

输出是一个T-by-1结构,其中元素t对应于时刻的平滑递归t

  • 如果单变量(默认为),则下表描述的字段输出

    描述 估计
    LogLikelihood 标量对数似然目标函数值 N/A
    SmoothedStates t的-by-1向量平滑状态 E x t | y 1 ... y T
    SmoothedStatesCov t——- - - - - -t平滑状态的方差-协方差矩阵 V 一个 r x t | y 1 ... y T
    SmoothedStateDisturb kt的-by-1向量平滑状态扰动 E u t | y 1 ... y T
    SmoothedStateDisturbCov kt——- - - - - -kt方差-协方差矩阵的平滑,状态扰动 V 一个 r u t | y 1 ... y T
    SmoothedObsInnov ht的-by-1向量平滑的观测创新 E ε t | y 1 ... y T
    SmoothedObsInnovCov ht——- - - - - -ht方差-协方差矩阵的平滑化,观察创新 V 一个 r ε t | y 1 ... y T
    KalmanGain t——- - - - - -nt调整卡尔曼增益矩阵 N/A
    DataUsed ht-by-1逻辑向量,表示软件是否使用特定的观察结果进行过滤。例如,如果观察在时间t是一个,然后是元素DataUsed在时间t0 N/A

  • 如果Univarite真正的,然后田野的输出与上表中的值相同,但是KalmanGain可能会有所不同。

例子

全部展开

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

x t 0 5 x t - 1 + u t

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

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

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

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

y t x t + ε t

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

使用随机潜伏状态过程(x)和观测方程来生成观测值。

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

指定四个系数矩阵。

A = 0.5;B = 0.5;C = 1;D = 0.05;

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

Mdl = ssm(A,B,C,D)
Mdl =状态空间模型类型:ssm状态向量长度:1观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…金宝app状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…状态方程:x1(t) = (0.50)x1(t-1) + (0.50)u1(t)观测方程:y1(t) = x1(t) + (0.05)e1(t)初始状态分布:初始状态表示x1 0初始状态协方差矩阵x1 x1 0.33状态类型x1平稳

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

平滑周期1到100的状态。绘制真实状态值和平滑状态。

smooththedx = smooth(Mdl,y);图的阴谋(1:T, x,“- k”1: T, SmoothedX“:r”“线宽”2)标题({“国家价值观”})包含(“时间”) ylabel (“状态”)({传奇“真实状态值”平滑的状态值})

假设失业率变化与名义国民生产总值(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 是以本地生产总值增长率扣除的实际失业率( Z t ).

  • u 1 t 为状态扰动的高斯序列,其均值为0,标准差为1。

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

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

负载Data_NelsonPlosser

对数据进行预处理,取nGNP系列的自然对数,以及每个系列的第一差值。另外,去掉起始部分每个系列的值。

isNaN = any(ismissing(DataTable),2);包含nan的标记句点gnpn = dattable . gnpn (~isNaN);u = dattable . ur (~isNaN);T = size(gnpn,1);%样本量Z = [ones(t -1,1) diff(log(gnpn))];Y = diff(u);

虽然本例删除了缺失值,但该软件可以在卡尔曼滤波器框架中容纳包含缺失值的序列。

指定系数矩阵。

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

使用指定状态空间模型舰导弹

Mdl = ssm(A,B,C,D);

估计模型参数。属性指定回归组件及其初始值,以进行优化“预测”而且“Beta0”名称-值对参数。限制估计 σ 对所有正的实数。

Params0 = [0.3 0.2 0.2];%任意选择[EstMdl,estParams] =估计(Mdl,y,params0,“预测”, Z,...“Beta0”(0.1 - 0.2),“磅”(负负0负无穷,无穷]);
方法:最大似然(fmincon)样本量:61对数似然:-99.7245赤井信息准则:209.449贝叶斯信息准则:220.003 | Coeff Std Err t Stat Prob ---------------------------------------------------------- c(1) | -0.34098 0.29608 -1.15164 0.24948 c(2) | 1.05003 0.41377 2.53771 0.01116 c(3) | 0.48592 0.36790 1.32079 0.18657 y <- z(1) | 1.36121 0.22338 6.09358 y <- z(2) | -24.46711 1.60018 -15.29024 0 | |最终状态Std Dev Stat Prob x(1) | 1.01264 0.44690 2.26592 0.02346 x(2) | 0.77718 0.58917 1.31912 0.18713

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

平滑状态。EstMdl不存储数据或回归系数,因此必须在使用名称-值对参数时传入它们“预测”而且“β”,分别。绘制平滑状态。回想一下,第一个状态是失业率的变化,第二个状态帮助建立了第一个状态。

smooththedx = smooth(EstMdl,y,“预测”, Z,“β”, estParams (end-1:结束));(图绘制(日期(结束)- t - 1 + 1:结束),SmoothedX (: 1));包含(“时间”) ylabel (“失业率的变化”)标题(“失业率的平稳变化”

提示

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

  • 为了加速低维时不变模型的估计,设置“一元”,真的.使用此规范,软件在过滤过程中按顺序更新,而不是一次性更新。

算法

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

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

参考文献

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