DLM są fajne, ale nie są tak proste jak, powiedzmy, ARIMA lub inne metody. W innych metodach podłączasz swoje dane, a następnie poprawiasz niektóre parametry algorytmu, być może odwołując się do różnych metod diagnostycznych, aby poprowadzić twoje ustawienia.
Za pomocą DLM tworzysz maszynę w przestrzeni stanów, która składa się z kilku macierzy, które w zasadzie implementują coś w rodzaju ukrytego modelu Markowa. Niektóre pakiety ( sspir
myślę między innymi) oczekują, że rozumiesz pojęcie i to, co robią macierze. Gorąco polecam zacząć oddlm
pakietu, a jak zaleca @RockScience, przejdź przez winietę.
Ze dlm
masz zamiar po prostu wykonać kilka kroków:
Jakie elementy opisują moją serię? Trend? Sezonowość? Zmienne egzogeniczne? Użyjesz dlm
narzędzi takich jak dlmModPoly
implementacja tych komponentów, używając +
operatora do połączenia ich w jeden model.
Utwórz podprogram R, który pobiera jednak wiele parametrów wymaganych przez ten model, tworzy komponenty z tymi parametrami, a następnie dodaje je razem i zwraca model wynikowy.
Służy dlmMLE
do wyszukiwania / optymalizacji w celu znalezienia odpowiednich parametrów (za pomocą MLE, która jest w zasadzie optymalizacją, z pułapkami, które mogą wystąpić podczas optymalizacji). dlmMLE
wielokrotnie wywołuje podprogram R z parametrami kandydującymi do tworzenia modeli, a następnie je testuje.
Utwórz swój ostateczny model, korzystając z utworzonego podprogramu R i parametrów znalezionych w kroku 3.
Filtruj swoje dane za pomocą dlmFilter
, a następnie może za pomocą dlmSmooth
.
Jeśli używasz dlmModReg
lub robisz coś, co powoduje, że model ma parametry zmienne w czasie, nie możesz użyć dlmForecast
do prognozowania swojej serii. Jeśli skończysz na modelu zmiennym w czasie, będziesz chciał wypełnić swoje dane wejściowe NA i pozwolić na dlmFilter
wypełnienie NA dla ciebie (prognoza biedaka), ponieważ dlmForecast
nie działa z parametrami zmieniającymi się w czasie.
Jeśli chcesz zbadać komponenty indywidualnie (powiedz trend, niezależnie od sezonu), musisz zrozumieć macierze i to, co jest w każdej kolumnie, a także zrozumieć, w jaki sposób dlm
je łączy (kolejność ma znaczenie!).
Jest inny pakiet, którego nazwa ucieka mi, który próbuje stworzyć interfejs, który może korzystać z kilku z tych pakietów (w tym dlm
jako zaplecza). Niestety, nigdy nie udało mi się, aby działał dobrze, ale to może być tylko ja.
Naprawdę polecam kupienie książki o DLM. Mam ich kilka i dużo grałem, dlm
aby dotrzeć do tego, gdzie jestem, i pod żadnym względem nie jestem ekspertem.