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


Answers:



15

除了在其他答案中提到的软件包之外,您可能还需要查看软件包预测,该预测处理以状态空间形式转换的特定类型的模型,并将MARSS包含生物学中的示例和应用程序(特别是写得很好的手册) (第5章)。

不过,对于一般应用程序,我同意先前的回答, 我认为dlm是一种通用且功能强大的软件包(在Petris等人的R中的《动态线性模型》一书中有很好的描述),KFAS提供了实现大多数功能的例程状态空间方法FKF在出色的时间序列分析中描述的算法,功能有限,没有示例,但速度最快。


2
谢谢,Petris等人撰写的《 R中的动态线性模型》一书具有很高的信噪比。
亚伦

8

举个很好的例子,看看dlm小插图,如果您对要做什么以及如何做不清楚,我会避免使用其他所有软件包。


3
+1,我总是推荐dlm和它的小插图。最重要的是,与大多数其他方法相比,DLM更像是编程。如果您打算进行除基本建模和预测之外的任何工作,则必须了解dlm为您生成的矩阵(某种意义上的状态空间程序)和方法。大多数其他软件包都可以处理矩阵,但希望您了解如何制作矩阵。
韦恩

7

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.