2016-05-13 22 views
0

Ich entwickle ein Vektor Auto Regression (VAR) Zeitreihenmodell in R. Die Modellspezifikation enthält eine Matrix (xts Klasse) von endogenen Variablen namens "endog" und eine Matrix (auch xts Klasse) von exogenen Variablen namens "exog . " Die Daten sind saisonabhängig und ich möchte, dass die Saisonalität vorhergesagt wird. Daher gebe ich auch "saison = 12" an, da die Daten monatlich sind. Also mein R-Code, um das Var-Modell auszuführen ist:R var-Vorhersage erfordert sowohl die exogene Variablenliste als auch die Dummy-Variablenliste, was ist, wenn meine Spezifikation keine Dummy-Variablen enthält?

Dieser Code läuft reibungslos. Aber jetzt will ich die Daten für 24 Perioden voraussagen. Also mein vorhersagen Code ist:

predictions <- predict(fit, exo.fcst = exog_future, n.ahead = 24, ci = 0.95) 

wo „exog_future“ ist eine Matrix (auch xts Klasse) der gleichen Variablen wie in exog, sondern umfasst die 24 zukünftigen Perioden prognostiziert werden. (Ich habe versucht, zwei Versionen:. Eine mit den historischen Daten exog sowie die neuen Daten für die nächsten 24 Perioden, und die andere Version enthält nur die 24 Perioden)

Ich erhalte die folgende Fehlermeldung:

Fehler in predict.varest (VAR (ENDOG, p = 1, Jahreszeit = 12, type = "const",.: keine Matrix für dumvar geliefert, aber Objekt enthält varest exogenen Variablen

Offensichtlich R erwartet eine Matrix von Dummy-Variablen zusätzlich zu exogenen Variablen, außer wenn R die Spezifikation "season = 12" als ma betrachtet Trix von Dummy-Variablen, die Modellspezifikation enthält keine Dummy-Variablen, also warum erwartet sie jetzt Dummy-Variablen? Falls die saisonale Spezifikation als Dummy-Variable betrachtet wird, fügte ich dann "size = 12" zu meinem Vorhersage-Code hinzu. Ich habe dieselbe Fehlermeldung erhalten.

Ich verstehe, dass, wenn das Modell exogene Variablen enthält, ich die zukünftigen Werte für diese im Vorhersagecode liefern muss. Ich verstehe auch, dass, wenn ich Dummy-Variablen lieferte, diese Vorhersagen die zukünftigen Werte auch aus im Wesentlichen demselben Grund benötigen würden. Sie sind exogene Variablen, nur binäre.

Also, wenn die Modellspezifikation keine Dummy-Variablen enthält, was erwartet mich R für "dumvar?"

+0

Ich habe es herausgefunden, aber die Lösung ist unlogisch. Vielleicht könnte jemand überprüfen, ob die Lösung korrekt ist. – Joe

+0

Ich habe es vielleicht herausgefunden, aber die Lösung ist unlogisch. Vielleicht könnte jemand überprüfen, ob die Lösung korrekt ist.Wenn ich die Matrix der zukünftigen exogenen Variablen als _dumbvar = matrix_of_future_exogener_variables_ einsende, verschwindet der Fehler. Es ist logisch sinnvoll, diese Variablen einzureichen, da die Vorhersage ihre Werte benötigt, um die prognostizierten Werte der endogenen Variablen zu berechnen. Es macht keinen Sinn, sie _dumbvar_ zu nennen, weil sie nicht binär sind. Sie sind kontinuierliche Variablen wie die _unemployment_rate_. Beachten Sie, dass die Matrix im xts-Format vorliegt, da es sich um Zeitreihen handelt. – Joe

+0

Entschuldigung für die Vervielfältigung. Ich habe versucht, sofort zu bearbeiten, aber das System würde dies nicht erlauben, weil ich mehr als 5 Minuten brauchte, um meine Bearbeitung abzuschließen. Vielleicht könnte diese Beschränkung auf einer Website entfernt werden, die nachdenkliche Lösungen fördert. – Joe

Antwort

0

der Tat, wenn Sie einen exogenen Wert in Ihrer Ausbildung haben, müssen Sie für dumvar in der Funktion predict(), in Ihrem Fall die Zukunft exogene Werte exog_future als Parameter enthalten, die Sie einstellen sollten dumvar=exog_future so dass

predictions <- predict(fit, dumvar = exog_future, n.ahead = 24, ci = 0.95)

http://127.0.0.1:26594/library/vars/html/predict.html

in der R-Dokumentation heißt es, dass die wichtigsten Argumente der Funktion predict() sind object, n.ahead, ci und dumvar, so, um Verwechslungen zu vermeiden, sollten Sie vielleicht ignorieren das Argument exo.fcst. Es ist verwirrend, weil es scheint, dass exo.fcst der richtige Parameter für exog_future ist, aber in der Praxis sollten Sie immer dumvar für dieses verwenden, nicht exo.fcst.