如何使用 R 中的 DSE 函数计算 AIC、BIC 和拟合卡尔曼滤波器的可能性

How to calculate AIC, BIC and likelihoods of a fitted kalman filter using the DSE function in R

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

为了便于说明,假设我的模型是随机游走。随机游走的理论形式为 X(t) = X(t-1) + e(t)~N(0,1) for state evolution 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 中模型理论模型的拟合度?我正在寻找诸如可能性和贝叶斯信息准则之类的函数。

我找到问题的答案了

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

informationTests(test)

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

informationTests(test, test2)

这列出了 AIC、BIC 和相互比较的可能性。