Filtr cząstek stałych w R - przykład trywialnego kodu

9

Szukam prostego przykładu kodu, w jaki sposób uruchomić filtr cząstek w R. Wydaje się, że pakiet pomp obsługuje bit matematyki w przestrzeni stanów, ale przykłady są nieco trudne do zaprogramowania dla prostego programisty OO, takiego jak ja, szczególnie jak załadować obserwowane dane do obiektu typu pomp.

Powiedzmy, że mam plik csv z 1 kolumną zaszumionych danych jako danych wejściowych i chciałbym uruchomić go przez filtr cząstek, aby, mam nadzieję, wyczyścić go, a dane wyjściowe są szacunkami, do innego pliku csv.

 y <- read.csv("C:/Dev/VeryCleverStatArb/inputData.csv", header=FALSE)
 #CSV to Pomp object ???
 #Run Particle Filter
 #Write estimates to csv.

Główną trudnością związaną z przykładami jest ładowanie danych csv do obiektu typu pomp.

Bardzo prosty model przestrzeni stanów powinien być na razie wystarczający.

Jakieś pomysły na R-ciekawy?

użytkownik1180428
źródło
Może to być przydatne dla każdego, kto szuka handlu parami lub handlu algorytmicznego w ogóle, gdy jest to relacja gospodarcza otoczona hałasem.
IMHO, lepiej, żebyś sam kodował filtr ...
Dr G
Niesamowite! Próbki / wskazówki / wskaźniki dla wszystkich oglądających to? Alternatywne rozwiązanie jest lepsze niż brak rozwiązania.
user1180428,
@ user1180428: Zredagowałem moją odpowiedź, która może teraz stanowić dla ciebie możliwą alternatywę.
Wayne

Odpowiedzi:

1

EDYCJA: Wygląda na to, że większość pakietów filtrów cząstek już nie ma. Jednak gram z LaplacesDemon (pakiet Bayesian MCMC) i ma on funkcję PMC (Population Monte Carlo), która implementuje PMC, który jest rodzajem filtra cząstek. Może za dużo maszyn na coś w rodzaju szybkiego filtra cząstek, ale pakiet warty nauczenia się.

Pakiet i samouczki można znaleźć w CRAN .

ORYGINAŁ: Szczerze mówiąc, w najprostszym przypadku pompjest trudny w użyciu. Jest bardzo elastyczny na wszystko, co chcesz zrobić, ale to tak, jakby za pomocą statku kosmicznego udać się do sklepu spożywczego.

Czy próbowałeś już spojrzeć na filtry Kalmana (jeśli twoje dane mogą spełniać założenia filtru Kalmana), w tym funkcje podstawowe tsSmoothi StructTS(tylko jednowymiarowe) oraz pakiet dlm? Rzuciłbym również okiem loessi inne wygładzacze.

Mam nadzieję , że się mylę i ktoś przeskakuje tutaj szybko: „Oto jak to zrobić dla prostych danych jednowymiarowych, takich jak masz przy skromnych założeniach”. Chciałbym móc sam korzystać z tego pakietu.

Wayne
źródło
1
Byłem tam zhakowany. Niestety, prosta średnia ruchoma wydaje się w tym przypadku lepiej przydać użyteczny sygnał niż filtr Kalmana, a wiele innych przykładów - Kalman: link , SMA: link Dane są nieruchome, jest tak daleko, jak Dickey Fuller p <0,01. Może robię to źle. Skrypt uruchamiający filtr cząstek na tych danych i inne pary kandydujące na handel byłyby niesamowite (tak sądzę).
user1180428