我想测试动态线性模型的适用性,我已将其拟合到一组问题数据中。我在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模型理论模型的拟合?我正在寻找可能性和贝叶斯信息准则等函数。
答案 0 :(得分:0)
我已经找到了问题的答案。
执行此操作的功能在dse的同一个包中称为informationTests()。它将使拟合模型的AIC,BIC和负对数似然返回到数据。在上面的示例中,这可以通过以下方式完成:
informationTests(test)
请记住,具有较低BIC的模型被认为更好。您还可以通过添加第二个模型作为参数来比较两个模型(假设您有第二个模型适合称为test2的数据):
informationTests(test, test2)
这列出了AIC,BIC和彼此之间的可能性。