Ich habe einige Antworten auf sehr ähnliche Fragen gesehen, aber alle beziehen sich auf ts
Objekte (erstellt direkt von ts
), anstelle von zoo
Einsen.STL-Dekomposition auf Zoo-Objekt. Fehler: nicht periodisch oder weniger als zwei Perioden
Ich habe einen großen Tisch des Umsatzes, auf wöchentliche Nachfrage zusammengefasst, wie folgt aus (in der Original zusammengefasst Tabelle gibt es 121 wöchentliche Beobachtungen, die ich auf 20 reduzierte hier ein kleines Beispiel zu halten):
> dput(dda1)
structure(list(floor_date = structure(c(16068, 16894, 16719,
16474, 16705, 16530, 16516, 16670, 16502, 16824, 16467, 16390,
16488, 16859, 16327, 16313, 16789, 16845, 16642, 16929), class = "Date"),
V1 = c(1809.32, 50866.125, 42822.7775, 45450.085, 37962.295,
50802.2175, 69953.8, 56294.485, 46702.88, 49460.9525, 54223.47,
85252.15, 46455.15, 65523.745, 63216.985, 50868.92, 23372.025,
46291.405, 60290.86, 29907.02)), .Names = c("floor_date",
"V1"), class = "data.frame", row.names = c(NA, -20L))
Um zu vermeiden, die Daten zu verlieren ich habe bereits während einer Zeitreihe zu schaffen, ich die zoo
Funktion verwenden werden:
library(zoo)
library(forecast)
dda1_zoo <- zoo(dda1$V1, order.by = dda1$floor_date)
# there are a lot of missing values (since this is sales,
# those are weeks with zero sale). I'll fill them with merge:
z0 <- seq(min(dda1$floor_date), max(dda1$floor_date), by = "week")
dda2 <- merge(dda1_zoo, zoo(order.by = z0), fill = 0)
# check if it's periodic and timespan
library(xts)
periodicity(dda2_zoo)
## Weekly periodicity from 2013-12-29 to 2016-05-08
# run stl
stl(dda2_zoo)
## Error in stl(dda2_zoo) :
## series is not periodic or has less than two periods
Was mache ich falsch und wie kann ich produzieren die stl
Zersetzung dieser Zeitreihen?
'stl' konvertiert zuerst die Eingabe in ein' "ts" 'Objekt mit' as.ts'. –