如何使用 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 和相互比较的可能性。
我想测试我拟合的动态线性模型对问题数据集的适用性。我已经使用 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 和相互比较的可能性。