使用卡尔曼滤波器进行时间序列预测的 R 代码

机器算法验证 r 时间序列 卡尔曼滤波器
2022-02-11 13:22:27

有人有使用 R 中的卡尔曼滤波器进行时间序列预测/平滑的好例子吗?

4个回答

你看过CRAN的时间序列任务视图吗?

它列出了涵盖卡尔曼滤波的包的几个条目:

等等,因为这是一种非常常见的时间序列估计技术。

除了其他答案中提到的包之外,您可能还想查看包预测,它处理以状态空间形式投射的特定类别的模型,并将MARSS包与生物学中的示例和应用程序(特别参见编写良好的手册,第 5 章)。

但是,对于一般应用程序,我同意前面的答案, 在我看来dlm是一个多功能且功能强大的软件包(Petris 等人在 R 中的动态线性模型一书中对此进行了很好的描述), KFAS提供了实现大多数程序的例程状态空间方法FKF的出色时间序列分析中描述的算法,设施有限且没有示例,但速度最快。

有关好的示例,请查看dlm vignette如果您不清楚自己想要做什么以及如何做,我会避免使用所有其他软件包。

stsm现在可以在 CRAN 上使用。该软件包提供了一些实用程序来适应基本的结构化时间序列模型。

其他答案中提到的软件包提供了灵活的接口,可以以状态空间形式投射广泛的时间序列模型,并提供卡尔曼滤波器的合理实现。然而,在我看来,很少有人关注优化似然函数的过程。通常使用通用算法——L-BFGS-B 算法。stsm软件包增强了标准程序并提供了特定的算法以适应基本结构模型。

包装随附的文档中提供了更多详细信息。对于一个简单的例子,你也可以看到这篇文章