使用ARIMA非季节性状态模型实现卡尔曼滤波器

时间:2018-06-05 12:33:17

标签: java r kalman-filter arima imputets

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

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

我不希望有人写下所有代码,但也许有人可以解释如何继续上述代码?

1 个答案:

答案 0 :(得分:0)

这里的imputeTS包的维护者......遗憾的是我不知道如何用Java做这个,但也许我的解释可以帮助你。

  1. 卡尔曼滤波器在状态空间模型上运行
  2. 每个ARIMA模型都可以用状态空间形式表示
  3. 因此,imputeTS包的作用是:它采用ARIMA模型的状态空间形式,并对其进行卡尔曼平滑/过滤。

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

    如果您能够将其拉下来,请告诉我,我也会对整体解决方案感兴趣。