Kod R do prognozowania szeregów czasowych przy użyciu filtra Kalmana

23

Czy ktoś ma dobry przykład prognozowania / wygładzania szeregów czasowych za pomocą Kalmana Filter w R?

Aaron
źródło

Odpowiedzi:

27

Pan spojrzał w szeregu czasowym Widok zadania CRAN?

Zawiera kilka wpisów dla pakietów obejmujących filtrowanie Kalmana:

i więcej, ponieważ jest to dość powszechna technika szacowania szeregów czasowych.

Dirk Eddelbuettel
źródło
15

Oprócz pakietów wymienionych w innych odpowiedziach, warto przyjrzeć się prognozie pakietów, która dotyczy konkretnej klasy modeli obsadzonych w formie przestrzeni stanu i pakietu MARSS z przykładami i zastosowaniami w biologii (patrz w szczególności dobrze napisana instrukcja , Rozdz. 5).

W przypadku ogólnych zastosowań zgadzam się jednak z poprzednimi odpowiedziami, ponieważ dlm jest moim zdaniem wszechstronnym i potężnym pakietem (dobrze opisanym w książce Dynamiczne modele liniowe w R autorstwa Petrisa i in.), KFAS oferuje procedury, które implementują większość algorytmów opisanych w doskonałej analizie szeregów czasowych metodą State Space Methods i FKF z ograniczonymi możliwościami i bez przykładów, ale najszybszą.

F. Tusell
źródło
2
Dzięki wszystkim książka Dynamic Linear Models in R autorstwa Petrisa i wsp. Ma wysoki stosunek S / N.
Aaron,
8

Dla dobrych przykładów spójrz na winietę dlm. Unikałbym wszystkich innych pakietów, jeśli nie masz jasnego pojęcia, co chcesz zrobić i jak.

Dr G.
źródło
3
+1, zawsze polecam dlmi jego winieta. Najważniejsze jest to, że DLM są znacznie bardziej podobne do programowania niż większość innych metod. Jeśli zamierzasz robić cokolwiek poza podstawowym modelowaniem i prognozowaniem, będziesz musiał zrozumieć macierze (w pewnym sensie programy przestrzeni kosmicznej) i metody, które dlmsię dla ciebie generują. Większość innych pakietów obsługuje przetwarzanie twoich macierzy, ale oczekujesz, że zrozumiesz, jak je wykonać.
Wayne
7

Pakiet stsm jest teraz dostępny w CRAN. Pakiet oferuje pewne narzędzia pasujące do podstawowego strukturalnego modelu szeregów czasowych.

Pakiety wspomniane w innych odpowiedziach zapewniają elastyczne interfejsy do rzutowania szerokiej gamy modeli szeregów czasowych w formie przestrzeni stanów i dają dźwiękowe implementacje filtra Kalmana. Jednak moim zdaniem mało uwagi poświęca się procedurze optymalizującej funkcję prawdopodobieństwa. Algorytm ogólnego przeznaczenia - algorytm L-BFGS-B - jest zwykle używany. stsmPakiet zwiększa standardową procedurę i zapewnia specyficzne algorytmy w celu dopasowania do podstawowego modelu strukturalnego.

Dalsze szczegóły podano w dokumencie dołączonym do opakowania. Dla szybkiego przykładu możesz także zobaczyć ten post .

javlacalle
źródło