【问题标题】:Estimation of a state-space model with lags in the measurement equation in R在 R 中的测量方程中具有滞后的状态空间模型的估计
【发布时间】:2020-05-07 07:47:28
【问题描述】:

我正在尝试从 this paper 估计一个具有以下形式的 SS 模型:

将第一个滞后多项式的阶数设置为零,第二个多项式为一,我们可以在适用时使用 MARSS 包指南中的术语对其进行重新表述(x 是状态,y 是观察变量,d 是外生的):

MARSS 包允许估计一个更简单的模型,该模型不包括测量方程中的滞后变量。有没有一种方法可以使用 MARSS 或任何其他包来估计这个,而无需为这种特殊情况重写估计例程?也许有一种方法可以重新制定它,以便它可以“喂”给 MARSS 或其他一些包?

【问题讨论】:

    标签: r kalman-filter state-space


    【解决方案1】:

    看看如何将 BSM 结构时间序列模型或 ARMA 模型表述为 MARSS 模型,也就是多元状态空间模型。这将使您了解如何以多变量状态空间形式改革您的模型。

    基本上,你的 x 看起来像

    看看 x_2 如何只是一个被强制为 x(t-1) 的虚拟对象?

    现在是 y 方程

    d 和 a 是你的 D 和 A。我用小写来说明它们是标量。但它们通常可以是矩阵(如果 y 是多元的)。您的输入是 d_t 和 y_{t-1}。你准备那个 2x1xT 矩阵作为输入。

    请注意您的初始条件规范。可能最好/最容易将其设置为 t=1 并估计或使用扩散先验。

    您可以使用 MARSS 拟合此模型。您可以使用任何允许您在 y 方程中传递输入的卡尔曼滤波器函数(有些可以,有些不可以)。 KFAS::KFS() 允许使用 SScustom() 函数。

    在 MARSS 中,模型列表如下所示

    mod.list=list(
    B=matrix(list("b",1,0,0),2,2),
    U=matrix(0,2,1),
    Q=matrix(list("q",0,0,0),2,2),
    Z=matrix(c("z", "c"),1,2),
    A=matrix(0),
    R=matrix("r"),
    D=matrix(c("d", "a"),1,2),
    x0=matrix(c("x1","x2"),2,1),
    tinitx=1,
    d=rbind(dt[2:TT],y[1:(TT-1)])
    )
    dat <- y[2:TT] # since you need y_{t-1} in the d (inputs)
    fit <- MARSS(dat, model=mod.list)
    

    它可能会抱怨它需要 x0 的初始条件。任何事情都会奏效。 EM 算法对 BFGS 或牛顿算法不敏感。但method="BFGS" 实际上通常更适合这种结构 ts 模型,在这种情况下为 x 选择一个合理的初始条件(我认为在这种情况下合理 = 接近您的数据)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多