Ich versuche, anomale Werte in einer Zeitreihe von Klimadaten mit einigen fehlenden Beobachtungen zu ermitteln. Beim Durchsuchen des Webs habe ich viele verfügbare Ansätze gefunden. Von diesen scheint die Zersetzung im Sinne der Entfernung von Trends und saisonalen Bestandteilen und der Untersuchung des Restes ansprechend zu sein. Lesen von STL: Ein auf Löss basierendes saisonal-trendbezogenes Zerlegungsverfahrenstl
scheint bei der Festlegung der Einstellungen für die Zuweisung von Variabilität flexibel zu sein , wirkt sich nicht auf Ausreißer aus und kann trotz fehlender Werte angewendet werden. Beim Versuch, es in R
vier Jahren Beobachtungen anzuwenden und alle Parameter gemäß http://stat.ethz.ch/R-manual/R-patched/library/stats/html/stl.html zu definieren, stoße ich auf etwas Error:
"time series contains internal NAs"
(wann na.action=na.omit
) und
"series is not periodic or has less than two periods"
(wann na.action=na.exclude
).
Ich habe überprüft, ob die Frequenz korrekt definiert ist. Ich habe relevante Fragen in Blogs gesehen, aber keinen Vorschlag gefunden, der dies lösen könnte. Ist es nicht möglich, sich stl
in einer Serie mit fehlenden Werten zu bewerben ? Ich bin sehr zurückhaltend, sie zu interpolieren, da ich keine Artefakte einführen (und folglich erkennen ...) möchte. Aus dem gleichen Grund weiß ich nicht, wie ratsam es wäre, stattdessen ARIMA-Ansätze zu verwenden (und wenn fehlende Werte immer noch ein Problem wären).
Teilen Sie uns bitte mit, ob Sie eine Möglichkeit kennen, sich stl
in einer Reihe mit fehlenden Werten zu bewerben , oder ob Sie der Meinung sind, dass meine Auswahl methodisch nicht zutreffend ist oder ob Sie einen besseren Vorschlag haben. Ich bin ziemlich neu auf dem Gebiet und überwältigt von den Haufen (scheinbar ...) relevanter Informationen.
quelle
Antworten:
ARIMA-Modelle enthalten einfach Dummy-Variablen, um mit fehlenden Werten umzugehen. Diese werden als Pulsindikatoren bezeichnet. Die Methode ist unkompliziert und in http://www.unc.edu/~jbhill/tsay.pdf dokumentiert . Im Allgemeinen extrahiert die Methode Informationen zu Impulsen, Pegelverschiebungen, saisonalen Impulsen und lokalen Zeittrends aus den aktuellen Restserien.
quelle
Laut @Julius in diesem Beitrag ist es möglich,
stl
mitna.approx
, fromzoo
package, using zu verwendenstl(x, na.action = na.approx, ...)
. Dies führt eine Art Interpolation durch .quelle
Vielleicht möchten Sie auch das
stlplus
Paket von Hafen ausprobieren . Details sind in seiner Arbeit.Sie können es von CRAN mit installieren
oder direkt von github mit
quelle