Código R para previsão de séries temporais usando o filtro Kalman

23

Alguém tem um bom exemplo para Previsão / suavização de séries temporais usando o Kalman Filter no R?

Aaron
fonte

Respostas:

27

Você já viu o Time Series Task View no CRAN?

Ele lista várias entradas para pacotes que cobrem a filtragem Kalman:

e mais, pois essa é uma técnica bastante comum para estimativa de séries temporais.

Dirk Eddelbuettel
fonte
15

Além dos pacotes mencionados em outras respostas, você pode consultar a previsão de pacotes que lida com uma classe específica de modelos expressos no formato de espaço de estado e no pacote MARSS com exemplos e aplicações em biologia (consulte, em particular, o manual bem escrito) , Cap. 5).

Porém, para aplicações gerais, eu concordo com as respostas anteriores, com o dlm sendo um pacote versátil e poderoso (bem descrito no livro Modelos Lineares Dinâmicos em R , de Petris et al.), A KFAS oferecendo rotinas que implementam a maioria dos algoritmos descritos na excelente Análise de Séries Temporais por State Space Methods e FKF com recursos limitados e sem exemplos, mas sendo o mais rápido.

F. Tusell
fonte
2
Obrigado a todos, o livro Dynamic Linear Models in R, de Petris et al., Apresenta uma alta relação S / N.
Aaron
8

Para bons exemplos, observe a vinheta do dlm e evitaria todos os outros pacotes se você não tiver uma ideia clara do que deseja fazer e como.

Dr G
fonte
3
+1, eu sempre recomendo dlme sua vinheta. A conclusão é que os DLMs são muito mais parecidos com a programação do que a maioria dos outros métodos. Se você pretende fazer algo além da modelagem e previsão básicas, precisará entender as matrizes (programas de espaço de estado em algum sentido) e os métodos que dlmestão gerando para você. A maioria dos outros pacotes trata do processamento de suas matrizes, mas espera que você entenda como fazê-las.
Wayne
7

O pacote stsm está agora disponível no CRAN. O pacote oferece alguns utilitários para se ajustar ao modelo estrutural básico de séries temporais.

Os pacotes mencionados em outras respostas fornecem interfaces flexíveis para converter uma ampla variedade de modelos de séries temporais no espaço de estados e fornecer implementações sólidas do filtro Kalman. No entanto, na minha opinião, pouca atenção é dada ao procedimento que otimiza a função de probabilidade. Um algoritmo de uso geral - o algoritmo L-BFGS-B - é normalmente usado. ostsm pacote aprimora o procedimento padrão e fornece algoritmos específicos para se ajustar ao modelo estrutural básico.

Detalhes adicionais são fornecidos no documento fornecido com o pacote. Para um exemplo rápido, você também pode ver esta postagem .

javlacalle
fonte