首页 > 解决方案 > 用 ARIMA 非季节性状态模型实现卡尔曼滤波器

问题描述

我需要编写一个应用程序,在时间序列信号上估算一些缺失值。我在 R 中使用ImputeTS包做了类似的事情,但现在我需要在 Java 中做

我刚刚搜索了互联网,发现Apache Kalman过滤器是 Java 中 Kalman 过滤器的现有实现。但似乎他们没有在过滤器内使用 ARIMA 内部模型。例如,Apache common 中有转换矩阵和测量矩阵,但是我如何更改它们以便可以将具有 (p,q,d) 参数的 ARIMA 非季节性模型用作卡尔曼滤波器的内部状态模型?

我不希望有人编写所有代码,但也许有人可以解释如何进行上述操作?

标签: javarkalman-filterarimaimputets

解决方案


imputeTS 包的维护者在这里......不幸的是,我不知道如何在 Java 中做到这一点,但也许我的解释可以帮助你。

  1. 卡尔曼滤波器在状态空间模型上运行
  2. 每个 ARIMA 模型都可以表示为状态空间形式

因此,imputeTS 包的作用是:它采用 ARIMA 模型的状态空间形式并对其进行卡尔曼平滑/滤波。

这意味着,您需要获取 ARIMA 模型的状态空间形式(在 R 中这很容易......不了解 java)。这应该适合卡尔曼滤波器所需的输入。

让我知道您是否能够成功,我也会对整体解决方案感兴趣。


推荐阅读