/ / Zeitreihen Prognosefehler in R - r, Prognose

Zeitreihen Prognosefehler in R - r, Prognose

Ich versuche die Prognosefunktion von zu verwendendas Prognosepaket v4.06 für ein Zeitserienobjekt, das ich erstelle. Abhängig von der Größe des Vektors, den ich in die Zeitreihenfunktion übergebe, um ein Zeitreihenobjekt zu erzeugen, bekomme ich eine Ausnahme vom nachfolgenden Aufruf zur Vorhersage geworfen.

Erstellen Sie beispielsweise ein Zeitreihenobjekt mit einem Vektor der Länge 6 wie folgt:

tsObj <- ts(tsVector[1:6], frequency=12, start=c(2013,4))

und dann die Vorhersagefunktion für dieses Zeitreihenobjekt aufrufen:

pred <- forecast(tsObj, 1)

generiert die folgende Ausnahme:

Error in lsfit(1:maxn, y.sa[1:maxn]) : 0 responses, but only 2 variables
In addition: Warning message:
In lsfit(1:maxn, y.sa[1:maxn]) : 6 missing values deleted

Tatsächlich werden Vektorlängen von 4 bis 11 erzeugtdieser Fehler, aber Längen von 1, 2, 3 oder> = 12 gelingt es, eine geeignete Vorhersage zu erzeugen. Jeder Einblick in die Ausnahme würde immens geschätzt werden. Danke für die Zeit!

================================================= ==================================

Ich glaube, ich habe die Quelle für lsfit gefunden und den Ort gefunden, an dem diese Ausnahme erzeugt wird:

## check for compatible lengths
nrx <- NROW(x)
ncx <- NCOL(x)
nry <- NROW(y)
ncy <- NCOL(y)
nwts <- length(wt)
if(nry != nrx) stop(paste("X matrix has", nrx, "responses, Y",
"has", nry, "responses."))
if(nry < ncx) stop(paste(nry, "responses, but only", ncx,     "variables"))

Es sieht wie eine Abweichung in der Anzahl der Zeilen auszwischen den x- und y-Vektoren. Allerdings kann ich nicht finden, wo lsfit innerhalb des Vorhersagepakets aufgerufen wird, um herauszufinden, was "y" in diesem Fall ist. Danke für jede / alle Hilfe!

Antworten:

0 für die Antwort № 1

Das Problem ist, dass Sie eine Häufigkeit von 12 einstellen, aber dies ist nicht möglich, mit weniger als der gleichen Anzahl von zu schätzen tsVector Eingaben. Die minimale Häufigkeit, die Sie einstellen können, ist die Anzahl der Objekte in Ihrem Vektor.

Beide Codeblöcke funktionieren für mich:

tsVector <- c(1,2,3,4,5, 6)
tsObj <- ts(tsVector, frequency = 5, start = c(2013, 4))
pred <- forecast(tsObj, 1)

und

tsVector <- c(1,2,3,4,5, 6, 7, 8, 9 , 10, 11, 12)
tsObj <- ts(tsVector, frequency = 12, start = c(2013, 4))
pred <- forecast(tsObj, 1)

Hoffe das hilft!