Os DLMs são legais, mas não são tão simples quanto, por exemplo, o ARIMA ou outros métodos. Em outros métodos, você conecta seus dados e depois ajusta alguns parâmetros do algoritmo, talvez se referindo a vários diagnósticos para orientar suas configurações.
Com um DLM, você está criando uma máquina de espaço de estado, que consiste em várias matrizes que basicamente implementam algo como um Modelo Markov Oculto. Alguns pacotes ( sspir
eu acho, entre outros) esperam que você entenda o conceito e o que as matrizes fazem. Eu recomendo que você comece com odlm
pacote e, como a @RockScience recomenda, passe pela vinheta.
Com isso, dlm
você basicamente seguirá várias etapas:
Que tipos de componentes descrevem minha série? Uma tendência? Sazonalidade? Variáveis exógenas? Você usará dlm
ferramentas como dlmModPoly
para implementar esses componentes, usando o +
operador para uni-los em um modelo.
Crie uma sub-rotina R que use quantos parâmetros forem exigidos por este modelo, crie os componentes com esses parâmetros, adicione-os e retorne o modelo resultante.
Use dlmMLE
para fazer uma pesquisa / otimização para encontrar os parâmetros apropriados (usando o MLE, que é basicamente otimização, com as armadilhas que podem ocorrer na otimização). dlmMLE
chama repetidamente sua sub-rotina R com parâmetros candidatos para criar modelos e os testa.
Crie seu modelo final, usando a sub-rotina R que você criou, além dos parâmetros encontrados na etapa 3.
Filtre seus dados com dlmFilter
, e talvez com suavidade dlmSmooth
.
Se você usa dlmModReg
ou faz algo que faz com que o modelo tenha parâmetros de variação de tempo, não pode usar dlmForecast
para prever suas séries. Se você terminar com um modelo de variação de tempo, preencha seus dados de entrada com NAs e deixe que dlmFilter
preencha os NAs para você (previsão de um homem pobre), pois dlmForecast
não funciona com parâmetros que variam no tempo.
Se você deseja examinar os componentes individualmente (diga a tendência, separadamente da sazonal), precisará entender as matrizes e o que está em cada coluna, além de entender um pouco de como dlm
os reúne (a ordem é importante!).
Há outro pacote, cujo nome me escapa, que tenta criar um front end que pode usar vários desses pacotes (incluindo dlm
como back-end). Infelizmente, nunca consegui que funcionasse bem, mas isso poderia ser apenas eu.
Eu realmente recomendo a compra de um livro sobre DLMs. Eu peguei alguns deles e brinquei muito dlm
para chegar aonde estou, e não sou especialista em nada.