【问题标题】:How to calculate AIC, BIC and likelihoods of a fitted kalman filter using the DSE function in R如何使用 R 中的 DSE 函数计算拟合卡尔曼滤波器的 AIC、BIC 和似然性
【发布时间】:2017-09-12 13:06:42
【问题描述】:

我想测试我已拟合一组问题数据的动态线性模型的适用性。我已经使用 R 中 dse 包中的 SS() 函数完成了这项工作。有没有任何方法可以使用可能性和信息测试来测试 R 中模型的拟合度?

出于说明目的,假设我的模型是随机游走。随机游走的理论形式为 X(t) = X(t-1) + e(t)~N(0,1) 状态演化 Y(t) = X(t) + w(t)~N (0,1)。 R中的代码由以下定义:

kalman.filter=dse::SS(F = matrix(1,1,1), 
              Q = matrix(1,1,1),
              H = matrix(1,1,1),
              R = matrix(1,1,1),
              z0 = matrix(0,1,1),
              P0 = matrix(0,1,1)
              )

假设当时的实际观察结果是:

simulate.kalman.filter=simulate(kalman.filter, start = 1, freq = 1, sampleT = 100)

然后假设我们拟合一个名为“test”的模型:

test=l(kalman.filter, simulate.kalman.filter)

如何测试数据 (simulate.kalman.filter) 与 R 中的模型理论模型的拟合度?我正在寻找诸如可能性和贝叶斯信息准则之类的函数。

【问题讨论】:

  • 能否请您提供一些代码。这样可以更轻松地运行和检查结果。
  • 嗨@alex2006 我刚刚添加了一些代码,非常感谢

标签: r time-series kalman-filter state-space


【解决方案1】:

我已经找到问题的答案了。

执行此操作的函数在 dse 的同一包中称为 informationTests()。它将拟合模型的 AIC、BIC 和负对数似然返回数据。在上面的示例中,这是通过以下方式完成的:

informationTests(test)

请记住,具有较低 BIC 的模型被认为更好。您还可以通过添加第二个模型作为参数来比较两个模型(假设您有第二个模型适合名为 test2 的数据):

informationTests(test, test2)

这将 AIC、BIC 和可能性相互制表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2018-02-21
    • 2017-02-06
    • 1970-01-01
    • 2012-01-17
    • 2023-03-23
    相关资源
    最近更新 更多