Ich suche nach einem einfachen Codebeispiel für die Ausführung eines Partikelfilters in R. Das Pomp-Paket scheint das Zustandsraum-Mathematikbit zu unterstützen, aber die Beispiele sind für einen einfachen OO-Entwickler wie mich programmgesteuert etwas schwierig zu befolgen wie man die beobachteten Daten in ein Pomp-Objekt lädt.
Nehmen wir an, ich habe eine CSV-Datei mit einer Spalte mit verrauschten Daten als Eingabe und möchte sie durch einen Partikelfilter ausführen, um sie hoffentlich mit den Schätzungen in eine andere CSV-Datei zu bereinigen.
y <- read.csv("C:/Dev/VeryCleverStatArb/inputData.csv", header=FALSE)
#CSV to Pomp object ???
#Run Particle Filter
#Write estimates to csv.
Die Hauptschwierigkeit bei den Beispielen besteht darin, CSV-Daten in ein Pomp-Objekt zu laden.
Ein sehr einfaches Zustandsraummodell sollte vorerst gut genug sein.
Irgendwelche Ideen für den R-Neugierigen?
Antworten:
EDIT: Es scheint, dass die meisten Partikelfilterpakete jetzt weg sind. Ich habe jedoch mit LaplacesDemon (einem Bayesian MCMC-Paket) gespielt und es hat die PMC-Funktion (Population Monte Carlo), die PMC implementiert, eine Art Partikelfilter. Vielleicht zu viel Maschinen für einen schnellen Partikelfilter, aber ein Paket, das es wert ist, gelernt zu werden.
Sie finden Pakete und Tutorials bei CRAN .
ORIGINAL: Um ehrlich zu sein, ist es im einfachsten Fall
pomp
schwer zu bedienen. Es ist sehr flexibel für alles, was Sie tun möchten, aber es ist, als würden Sie ein Raumschiff benutzen, um zum Lebensmittelgeschäft zu gelangen.Haben Sie versucht, Kalman-Filter (wenn Ihre Daten möglicherweise den Annahmen des Kalman-Filters entsprechen), einschließlich Basisfunktionen
tsSmooth
undStructTS
(nur univariate), und Paket zu betrachtendlm
? Ich würde auch einen Blick aufloess
und andere Glätter werfen .Ich hoffe, ich liege falsch und jemand hüpft hier mit einer kurzen Frage: "Hier erfahren Sie, wie Sie dies für einfache univariate Daten tun, wie Sie sie mit einigen bescheidenen Annahmen haben." Ich würde das Paket gerne selbst verwenden können.
quelle