R-код для прогнозирования временных рядов с использованием фильтра Калмана

23

У кого-нибудь есть хороший пример для прогнозирования / сглаживания временных рядов с использованием фильтра Калмана в R?

Аарон
источник

Ответы:

27

Вы смотрели на представление задач временных рядов на CRAN?

В нем перечислены несколько записей для пакетов, охватывающих фильтрацию Калмана:

и более того, это довольно распространенная методика оценки временных рядов.

Дирк Эддельбюттель
источник
15

В дополнение к пакетам, упомянутым в других ответах, вы можете посмотреть на прогноз пакета, который касается конкретного класса моделей, отлитых в форме пространства состояний, и пакета MARSS с примерами и приложениями в биологии (см., В частности, хорошо написанное руководство Глава 5).

Для общих приложений, я согласен с предыдущими ответами, поскольку dlm является, на мой взгляд, универсальным и мощным пакетом (хорошо описанным в книге « Динамические линейные модели в R » Петриса и др.), KFAS предлагает процедуры, которые реализуют большинство из алгоритмов, описанных в превосходном анализе временных рядов методами State Space Methods и FKF, с ограниченными возможностями и без примеров, но являющимися самыми быстрыми.

Ф. Туселл
источник
2
Спасибо всем, книга «Динамические линейные модели в R» Петриса и др. Имеет высокое отношение сигнал / шум.
Аарон
8

Для хороших примеров посмотрите на виньетку dlm. Я бы избегал всех других пакетов, если у вас нет четкого представления о том, что вы хотите сделать и как.

Доктор г
источник
3
+1, я всегда рекомендую dlmи свою виньетку. Суть в том, что DLM гораздо больше похожи на программирование, чем большинство других методов. Если вы намереваетесь сделать что-то помимо базового моделирования и прогнозирования, вам нужно понять матрицы (программы пространства состояний в некотором смысле) и методы, которые dlmвырабатываются для вас. Большинство других пакетов обрабатывают ваши матрицы, но ожидают, что вы поймете, как их создавать.
Уэйн
7

Пакет stsm теперь доступен на CRAN. Пакет предлагает некоторые утилиты, чтобы соответствовать базовой структурной модели временного ряда.

Пакеты, упомянутые в других ответах, предоставляют гибкие интерфейсы для приведения широкого спектра моделей временных рядов в форме пространства состояний и обеспечивают надежную реализацию фильтра Калмана. Однако, на мой взгляд, мало внимания уделяется процедуре, которая оптимизирует функцию правдоподобия. Обычно используется алгоритм общего назначения - алгоритм L-BFGS-B. stsmПакет расширяет стандартную процедуру и предусматривает конкретные алгоритмы , чтобы соответствовать основной структурной модели.

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

javlacalle
источник