主要内容

光滑的

类:dssm

反向散射状态空间模型的递归

描述

例子

X=平滑(Mdl,Y)返回平滑状态(X)通过执行完全指定的向后递归状态空间模型扩散Mdl。也就是说,光滑的应用分散卡尔曼滤波器使用Mdl和观察到的反应Y

例子

X=平滑(Mdl,Y,名称,值)使用指定的一个或多个额外的选项名称,值对参数。例如,指定缩小的回归系数和预测数据的观察,或指定使用的单变量处理多变量模型。

如果Mdl不完全指定,那么您必须指定未知参数作为已知的标量使用吗参数个数名称,值对参数。

例子

(X,logL,输出]=平滑(___)使用任何输入参数在前面语法另外返回loglikelihood值(logL)和一个输出结构阵列(输出)使用任何输入参数在前面的语法。等领域的输出包括:

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

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

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

  • loglikelihood值

  • 的调整卡尔曼增益

  • 和一个向量表示数据的软件用于过滤器

输入参数

全部展开

扩散,状态空间模型作为一个指定dssm模型对象返回的dssm估计

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

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

观察到的响应数据,指定为一个数字矩阵或细胞数值向量的向量。

  • 如果Mdl是时不变的观测方程,然后呢Y是一个T——- - - - - -n矩阵,每一行对应一个周期,每一列对应一个特定的模型中观察。T样本大小和吗每个时期的观测数量。最后一行的Y包含最新的观测。

  • 如果Mdl是时变的观测方程,然后呢Y是一个T1细胞向量。每个元素的细胞向量对应一个时期和包含一个nt维的观测向量。相应的系数矩阵的维度Mdl.C {t}Mdl.D {t}矩阵必须是一致的吗Y {t}所有的时间。的最后一个单元格Y包含最新的观测。

元素表明失踪的观察。的细节卡尔曼滤波器提供失踪的观察,看看算法

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:β,β,“预测”,Z指定的缩小观测回归组件组成的预测数据Z和系数矩阵β

回归系数对应的预测变量,指定为逗号分隔组成的“β”和一个d——- - - - - -n数字矩阵。d在预测变量的数量(看见吗预测),n是观察到的反应级数的数量(见Y)。

如果Mdl状态空间模型的估计,那么指定估计回归系数存储在吗estParams

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

的元素参数个数对应于状态空间模型中的未知参数矩阵一个,B,C,D,选择初始状态的意思Mean0和协方差矩阵Cov0

  • 如果你创建的Mdl显式(即通过指定矩阵没有parameter-to-matrix映射函数),然后软件地图的元素参数个数s矩阵和状态空间模型的初始状态值。软件搜索年代后列顺序一个,B,C,D,Mean0,Cov0

  • 如果你创建的Mdl隐式(即通过指定的矩阵parameter-to-matrix映射函数),那么你必须设置状态空间模型初始参数值矩阵,初始状态值,和国家在parameter-to-matrix映射函数类型。

如果Mdl包含未知参数,那么您必须指定它们的值。否则,该软件忽略的价值参数个数

数据类型:

状态空间模型预测变量的观测方程,指定为逗号分隔组成的“预测”和一个T——- - - - - -d数字矩阵。T期和数量吗d是预测变量的数量。行t对应于在期间观察到的预测因子t(Zt)。扩大后的观测方程

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

即软件消去观察使用回归组件。β是定常的回归系数矢量软件与所有其他参数估计。

如果有n观察每一个时期,那么软件就退化预测系列每个观测到。

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

默认情况下,软件不包括回归状态空间模型的组件。

数据类型:

最后期限分散状态初始化指定为逗号分隔组成的“SwitchTime”和一个正整数。也就是说,估计用期1期的观察SwitchTimepresample来实现精确的初始卡尔曼滤波器(见分散卡尔曼滤波器[1])。初始化后分散状态,估计应用标准卡尔曼滤波器从时间的观察SwitchTime+ 1T

的默认值SwitchTime是最后一期的估计精度矩阵是奇异的(即平滑状态。协方差矩阵的逆)。这个规范代表初始化扩散所需的最少数量的观察状态。因此,这是一个最佳实践是使用默认值。

如果你设置SwitchTime比默认值,那么有效的样本容量减少。如果你设置SwitchTime不到默认值,估计可能没有足够的观测数据初始化扩散,这会导致一个错误或不当的值。

一般来说,估计、滤波和平滑状态空间模型与至少一个需要分散状态SwitchTime至少有一个。默认的估计显示包含有效的样本大小。

数据类型:

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

如果预测不确定性为特定观察不到宽容在数值估算,那么相对应的软件删除不确定性观测前的预测协方差矩阵反演。

是最佳实践的集合宽容例如,数量小le-15评估期间,克服数值障碍。

例子:“宽容”,le-15

数据类型:

单变量的一系列多元国旗,指定为逗号分隔组成的“一元”真正的。单变量治疗一系列多元也被称为序贯滤波

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

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

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

例子:“一元”,真的

数据类型:逻辑

输出参数

全部展开

平滑状态,作为一个数字矩阵或返回一个细胞向量的矩阵。

如果Mdl是时不变,那么的行数的X是样本容量,列数的X的状态数。最后一行的X包含最新的平滑状态。

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

光滑的垫第一SwitchTime的时期X与零或空细胞。0或空细胞代表初始化分散状态所需的时间。

Loglikelihood函数值,作为一个标量返回。

失踪前观察和观测SwitchTime不会导致loglikelihood。

平滑结果期间,作为一个结构数组返回。

输出是一个T1结构,元素t对应的平滑递归时t

  • 如果单变量(默认情况下),那么下面的表描述了领域输出

    描述 估计
    LogLikelihood 标量loglikelihood目标函数值 N /一个
    SmoothedStates t1的向量平滑状态 E ( x t | y 1 , , y T )
    SmoothedStatesCov t——- - - - - -tvariance-covariance矩阵平滑的状态 V 一个 r ( x t | y 1 , , y T )
    SmoothedStateDisturb kt1的向量平滑、状态扰动 E ( u t | y 1 , , y T )
    SmoothedStateDisturbCov kt——- - - - - -kt干扰variance-covariance矩阵平滑的状态 V 一个 r ( u t | y 1 , , y T )
    SmoothedObsInnov ht1的向量平滑观察创新 E ( ε t | y 1 , , y T )
    SmoothedObsInnovCov ht——- - - - - -htvariance-covariance矩阵平滑,观察创新 V 一个 r ( ε t | y 1 , , y T )
    KalmanGain t——- - - - - -nt调整卡尔曼增益矩阵 N /一个
    DataUsed ht1逻辑向量表示软件过滤器是否使用一个特定的观察。例如,如果观察在时间t是一个,然后元素DataUsed在时间t0 N /一个

  • 如果Univarite真正的,然后等领域输出在前面的表是一样的,但值KalmanGain可能会有所不同。

光滑的垫第一SwitchTime时间的领域输出用空细胞。这些空细胞代表初始化分散状态所需的时间。

数据类型:结构体

例子

全部展开

假设一个潜在的过程是一个随机游走。状态方程是

x t = x t - - - - - - 1 + u t ,

在哪里 u t 是高斯的意思是0和标准偏差1。

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

T = 100;x0 = 1.5;rng (1);%的再现性u = randn (T, 1);x = cumsum ((x0; u));x = x(2:结束);

进一步假设的过程是受添加剂测量误差。观测方程

y t = x t + ε t ,

在哪里 ε t 与平均0和标准偏差0.75高斯。在一起,潜在的过程和状态空间模型观测方程组成。

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

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

指定的四个系数矩阵。

= 1;B = 1;C = 1;D = 0.75;

创建使用状态空间模型扩散系数矩阵。指定初始状态分布分散。

Mdl = dssm (A, B, C, D,“StateType”,2)
类型:状态空间模型Mdl = dssm状态向量长度:1观察向量长度:1状态扰动向量长度:1创新观察向量长度:1样本容量支持模型:无限的状态变量:x1, x2,…金宝app国家干扰:u1, u2,……观察系列:y1, y2,……观察创新:e1, e2,…状态方程:x1 (t) = x1 (t - 1) + u1 (t)观测方程:日元(t) = x1 (t) + (0.75) e1 (t)初始状态分布:初始状态意味着x1 0 x1 x1初始状态协方差矩阵正态类型x1扩散

Mdl是一个dssm模型。验证模型正确地指定使用在命令窗口中显示。

平滑时间1到100。情节真实状态值和平滑状态估计。

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

图包含一个坐标轴对象。坐标轴对象与标题状态值,包含时期,ylabel状态包含2线类型的对象。这些对象表示真实状态值,平滑状态值。

真正的价值观和平滑估计大约是相同的。

假设和失业率之间的线性关系名义国民生产总值(nGNP)是感兴趣的。进一步假设失业率是一个AR(1)系列。象征性地,在状态空间形式,模型

x t = ϕ x t - - - - - - 1 + σ u t y t - - - - - - β Z t = x t ,

地点:

  • x t 失业率在时间吗t

  • y t 观察到的变化在失业率被返回nGNP(放气 Z t )。

  • u t 是高斯系列的干扰有0和未知的标准差意味着什么 σ

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

负载Data_NelsonPlosser

预处理的数据以自然对数nGNP系列,和删除的开始从每个系列值。

isNaN =任何(ismissing(数据表),2);%国旗时期包含nangnpn = DataTable.GNPN (~ isNaN);y = diff (DataTable.UR (~ isNaN));T =大小(gnpn, 1);%的样本大小Z = price2ret (gnpn);

这个例子使用系列没有继续值。然而,使用卡尔曼滤波框架,软件可以容纳系列含有缺失值。

指定的系数矩阵。

一个=南;B =南;C = 1;

创建使用状态空间模型dssm通过提供的系数矩阵和指定值来自分散分布状态。扩散规范表示时刻的初始分布一无所知。

StateType = 2;Mdl = dssm (A, B, C,“StateType”,StateType);

估计的参数。指定回归组件及其初值优化使用“预测”“Beta0”名称-值对参数,分别。显示估计和优化诊断信息。限制的估计 σ 所有积极、实数。

params0 = (0.3 - 0.2);%初始值选择任意Beta0 = 0.1;[EstMdl, estParams] =估计(Mdl y params0,“预测”,Z,“Beta0”Beta0,“磅”,负0负);
方法:最大似然(fmincon)有效样本量:60对数似然:-110.477 Akaike信息标准:226.954贝叶斯信息准则:233.287 |多项式系数性病犯错t统计概率- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c (1) | 0.59436 0.09408 6.31738 0 c (2) | 1.52554 0.10758 14.17991 0 y < - z(1) | -24.26161 1.55730 -15.57930 0 | |最终状态性病Dev t统计概率x(1) | 2.54764 0正0

EstMdl是一个dssm模型,您可以访问其属性使用点符号。

光滑的状态空间模型估计的扩散。EstMdl不存储数据或回归系数,所以你必须通过他们在使用名称-值对的参数“预测”“β”,分别。画出平滑状态。

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

图包含一个坐标轴对象。坐标轴对象与标题平滑改变失业率,包含时期,ylabel失业率的变化包含一个类型的对象。

状态空间模型估计扩散、光滑,然后提取其他的估计输出输出参数。

考虑到状态空间模型扩散

( x 1 , t x 2 , t ] = ( ϕ 0 0 1 ] ( x 1 , t - - - - - - 1 x 2 , t - - - - - - 1 ] + ( σ 1 0 0 σ 2 ] ( u 1 , t u 2 , t ] y t = ( 1 1 ] ( x 1 , t x 2 , t ]

状态变量 x 1 , t 是一个AR(1)模型与自回归系数 ϕ x 2 , t 是一个随机游走。的干扰 u 1 , t u 2 , t 是独立的高斯随机变量与0和标准差意味着什么 σ 1 σ 2 ,分别。观察 y t 是错误的 x 1 , t x 2 , t

生成状态空间模型的数据。模拟数据,假设样本的大小 T = 1 0 0 , ϕ = 0 6 , σ 1 = 0 2 , σ 2 = 0 1 , x 1 , 0 = x 2 , 0 = 2

rng (1);%的再现性T = 100;ARMdl = arima (基于“增大化现实”技术的,0.6,“不变”0,“方差”0.2 ^ 2);x1 =模拟(ARMdl T“Y0”2);u3 = 0.1 * randn (T, 1);x3 = cumsum ([2; u3]);x3 = x3(2:结束);y = x1 + x3;

指定状态空间模型的系数矩阵。表示未知参数,使用值。

= (NaN 0;0 1];B =[南0;0 NaN);C = [1];

创建一个分散状态空间模型,描述了模型。指定 x 1 , t x 2 , t 有扩散的初始状态分布。

StateType = (2 - 2);Mdl = dssm (A, B, C,“StateType”,StateType);

估计未知参数Mdl。为优化选择初始参数值。指定的标准偏差限制是积极的,但所有其他参数都不受约束的使用“磅”名称-值对的论点。

params0 = (0.01 0.1 0.01);%初始值选择任意EstMdl =估计(Mdl y params0,“磅”,(从0 0]);
方法:最大似然(fmincon)有效样本大小:98对数似然:3.44283 Akaike信息标准:-0.885655贝叶斯信息准则:6.92986 |多项式系数性病犯错t统计概率- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c(1) | 0.54134 0.20494 2.64145 0.00826摄氏度(2)0 c(3) | | 0.18439 0.03305 5.57897 0.11783 0.04347 2.71039 0.00672 | |最终状态性病Dev t统计概率x (1) x (2) | | 0.24884 0.17168 1.44943 0.14722 1.73762 0.17168 10.12121 0

参数是接近他们的真实值。

平稳的状态EstMdl,并要求所有其他可用的输出。

[X, logL输出]=光滑(EstMdl y);

X是一个T2矩阵平滑状态,logL是最后的优化对数似价值,输出是一个结构数组包含各种估计卡尔曼滤波器要求。列表的字段输出使用字段

字段(输出)
ans =9 x1细胞{' LogLikelihood} {‘SmoothedStates} {‘SmoothedStatesCov} {‘SmoothedStateDisturb} {‘SmoothedStateDisturbCov} {‘SmoothedObsInnov} {‘SmoothedObsInnovCov} {‘KalmanGain} {' DataUsed '}

转换输出一个表。

OutputTbl = struct2table(输出);OutputTbl (1:10, 1:4)%显示四个变量的第一个10行
ans =10×4表_________________ LogLikelihood SmoothedStates SmoothedStatesCov SmoothedStateDisturb _________________ * * * ____________________ {0 x0双}{0 x0双}{0 x0双}{0 x0双}{0 x0双}{0 x0双}{0 x0双}{0 x0双}{[0.1827]}{2 x1双}{2 x2双}{2 x1双}{[0.0972]}{2 x1双}{2 x2双}{2 x1双}{[0.4472]}{2 x1双}{2 x2双}{2 x1双}{[0.2073]}{2 x1双}{2 x2双}{2 x1双}{[0.5167]}{2 x1双}{2 x2双}{2 x1双}{[0.2389]}{2 x1双}{2 x2双}{2 x1双}{[0.5064]}{2 x1双}{2 x2双}{2 x1双}{[-0.0105]}{2 x1双}{2 x2双}{2 x1双}

前两个表的行包含空的细胞或零。这些对应于初始化所需的观测分散卡尔曼滤波器。也就是说,SwitchTime是2。

SwitchTime = 2;

画出平滑状态和个人Wald-type 95%置信区间。

CI =南(T、2、2);j = (SwitchTime + 1): T CovX = OutputTbl.SmoothedStatesCov {};CI (j: 1) = X (j, 1) + 1.96 * sqrt (CovX (1,1)) * (1);CI (j: 2) = X (j, 2) + 1.96 * sqrt (CovX (2, 2)) * (1);结束图;阴谋(1:T X (: 1),“k”1:T, CI (:,: 1),“——r”);包含(“时间”);ylabel (“平滑状态”);标题(“估计状态1”)传说(“平滑”,“95%个人独联体”);网格;

图包含一个坐标轴对象。坐标轴对象与标题状态1的估计,包含时期,ylabel平滑状态包含3线类型的对象。这些对象代表平滑,95%个人CIs。

图;阴谋(1:T X (:, 2),“k”1:T, CI (:,:, 2),“——r”);包含(“时间”);ylabel (“平滑状态”);标题(“估计状态2”)传说(“平滑”,“95%个人独联体”);网格;

图包含一个坐标轴对象。坐标轴对象与标题状态2估计,包含时期,ylabel平滑状态包含3线类型的对象。这些对象代表平滑,95%个人CIs。

提示

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

  • 这是一个最佳实践,允许光滑的确定的价值SwitchTime。然而,在极少数情况下,你可能会经历在估计数值问题,过滤,或平滑分散状态空间模型。在这种情况下,试验各种尝试SwitchTime规格,或者考虑不同的模型结构(例如,简化或reverify模型)。例如,分散状态空间模型转换为一个标准的使用状态空间模型舰导弹

  • 加快评估为低维、定常模型集“一元”,真的。使用这个规范,软件顺序更新而不是过滤过程中更新一次。

算法

  • 卡尔曼滤波器提供缺失的数据不更新过滤状态估计对应失踪的观察。换句话说,假设有一个失踪的观察时间t。然后,预估时间t基于前面的t- 1的观察和过滤状态t是等价的。

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

  • 分散卡尔曼滤波器需要presample数据。如果缺少观测时间序列,然后分散卡尔曼滤波器常数必须收集足够的观察来初始化分散状态。

  • 对于分散状态空间模型,过滤器通常开关从分散卡尔曼滤波器的标准卡尔曼滤波器当累积的数量的观察和分散状态的数量是相等的。然而,如果一个分散了状态空间模型可识别性问题(例如,模型过于复杂,适合数据),然后过滤器可能需要更多的观察来初始化分散状态。在极端的情况下,过滤器需要整个样本。

引用

[1]杜宾J。,S. J. Koopman.时间序列分析的状态空间方法。第二版》。牛津:牛津大学出版社,2012年。

版本历史

介绍了R2015b