Реализация фильтра Калмана с моделью несезонного состояния ARIMA

Мне нужно написать приложение, которое вменяет некоторые пропущенные значения в сигнал временного ряда. Я сделал нечто подобное в R, используя ImputeTS пакет, но теперь мне нужно сделать это на Java.

Я просто искал в интернете и нашел фильтры Apache Kalman как существующую реализацию фильтров Kalman в Java. Но, похоже, они не используют внутреннюю модель ARIMA внутри фильтра. Например, в Apache есть общие матрицы переходов и измерений, но как я могу изменить их так, чтобы несезонная модель ARIMA с параметрами (p,q,d) могла использоваться в качестве модели внутреннего состояния фильтра Калмана?

Я не ожидаю, что кто-то напишет все коды, но, может быть, кто-то может объяснить, как действовать выше?

1 ответ

Поддерживающий пакет imputeTS здесь... к сожалению, я понятия не имею, как это сделать на Java, но, возможно, мои объяснения могут вам помочь.

  1. Фильтры Калмана работают на моделях пространства состояний
  2. Каждая модель ARIMA может быть выражена в форме пространства состояний

Таким образом, то, что также делают пакеты imputeTS: принимает форму пространства состояний модели ARIMA и выполняет сглаживание / фильтрацию Калмана.

Это означает, что вам нужно получить форму состояния пространства вашей модели ARIMA (в R это довольно просто... не знаю о Java). Это должно соответствовать требуемому входу для фильтра Калмана.

Дайте мне знать, если вам удастся это осуществить, мне также будет интересно общее решение.

Другие вопросы по тегам