Prognose von Zeitreihendaten mit externen Variablen

10

Derzeit arbeite ich an einem Projekt zur Vorhersage von Zeitreihendaten (monatliche Daten). Ich benutze R, um die Vorhersage zu machen. Ich habe 1 abhängige Variable (y) und 3 unabhängige Variablen (x1, x2, x3). Die y-Variable hat 73 Beobachtungen, ebenso wie die anderen 3 Variablen (auch 73). Von Januar 2009 bis Januar 2015. Ich habe Korrelationen und den p-Wert überprüft, und es ist alles wichtig, ihn in ein Modell einzufügen. Meine Frage ist: Wie kann ich mit allen unabhängigen Variablen eine gute Vorhersage treffen? Ich habe keine zukünftigen Werte für diese Variablen. Nehmen wir an, ich möchte vorhersagen, was meine y-Variable in mehr als 2 Jahren (2017) ist. Wie kann ich das machen?

Ich habe den folgenden Code ausprobiert:

    model = arima(y, order(0,2,0), xreg = externaldata) 

Kann ich mit diesem Code eine Vorhersage des y-Werts über 2 Jahre machen?

Ich habe auch einen Regressionscode ausprobiert:

    reg = lm(y ~ x1 + x2 + x3) 

Aber wie nehme ich mir die Zeit in diesem Code? Wie kann ich vorhersagen, wie hoch mein y-Wert sein wird, sagen wir 2 Jahre? Ich bin neu in Statistik und Prognose. Ich habe etwas gelesen und über den Verzögerungswert hinweg gearbeitet, aber wie kann ich einen Verzögerungswert im Modell verwenden, um Prognosen zu erstellen?

Eigentlich ist meine allgemeine Frage, wie ich Zeitreihendaten mit externen Variablen ohne zukünftigen Wert vorhersagen kann.

SB
quelle
Verwenden Sie niemals Regression mit Zeitreihendaten. Verwenden Sie einen Modellansatz für Übertragungsfunktionen.
Tom Reilly
2
Hallo Herr, können Sie mir mehr über ein Übertragungsfunktionsmodell erzählen? Und warum sollte ich niemals Regression mit Zeitreihendaten verwenden? Die meisten Studien schlagen vor, Regression mit Zeitreihen zu verwenden.
SB
Ein Übertragungsfunktionsmodell wird im Box-Jenkins-Lehrbuch in Kapitel 10 erläutert. Ziel ist es, für jede Kausalität ein Modell zu erstellen (Voraufhellung) und dann die Residuen zu verwenden, um Korrelationen gegen Y zu finden (Kreuzkorrelation). Auf diese Weise können Sie ermitteln, welche Variablen wichtig sind und ob Lead- oder Lag-Beziehungen bestehen. In dieser Gleichung oder diesem Nenner für die X-Variablen ist möglicherweise ARIMA erforderlich. Möglicherweise haben Sie auch Ausreißer, Änderungen in Trend, Level, Saisonalität, Parametern und Varianz.
Tom Reilly
Möglicherweise gibt es auch eine Regression, bei der davon ausgegangen wird, dass die Zeit nicht wichtig ist. Regression wurde von Galton verwendet, um Schweißerbsen zu untersuchen ... kein Zeitreihenproblem. Die Übertragungsfunktion verwendet Teile des Prozesses, um das Problem abzuschätzen.
Tom Reilly

Antworten:

11

Wenn Sie ein Modell mit externen Variablen anpassen und aus diesem Modell eine Prognose erstellen möchten, benötigen Sie (prognostizierte) zukünftige Werte der externen Variablen, schlicht und einfach. Daran führt kein Weg vorbei.

Es gibt natürlich verschiedene Möglichkeiten, Ihre erklärenden Variablen vorherzusagen. Sie können den zuletzt beobachteten Wert (die "naive Random Walk" -Prognose) oder den Gesamtmittelwert verwenden. Sie können sie einfach auf Null setzen, wenn dies ein nützlicher Wert für sie ist (z. B. besondere Ereignisse, die in der Vergangenheit wie ein Erdbeben aufgetreten sind und von denen Sie nicht erwarten, dass sie erneut auftreten). Oder Sie können ein Zeitreihenmodell an diese erklärenden Variablen selbst anpassen und vorhersagen, z auto.arima.

Die Alternative besteht darin, ein Modell ohne erklärende Variablen an Ihre Werte anzupassen, indem Sie den Parameter entfernen und dann mit diesem Modell prognostizieren . Ein Vorteil ist, dass dies sogar Regelmäßigkeiten in Ihren erklärenden Variablen erfassen kann. Zum Beispiel kann Ihr Eisverkauf von der Temperatur abhängen, und Sie haben einige Monate vorher keine guten Prognosen für die Temperatur ... aber die Temperatur ist saisonabhängig. Wenn Sie also einfach ein Modell ohne Temperatur anpassen, erhalten Sie ein saisonales Modell und Ihre saisonale Prognosen können tatsächlich ziemlich gut sein, selbst wenn Sie nicht den tatsächlichen Umsatztreiber angeben.yyxregy

Ich empfehle dieses kostenlose Online-Prognose-Lehrbuch , insbesondere diesen Abschnitt über multiple Regression (dort gibt es leider nichts über ARIMAX) sowie Rob Hyndmans Blog-Beitrag "The ARIMAX model muddle" .

Stephan Kolassa
quelle
1

Wie Yogi Berra sagte: "Es ist schwierig, Vorhersagen zu treffen, insbesondere über die Zukunft."

Viele statistische Softwaremodule generieren Prognosen basierend auf dem univariaten Strom von Zeitreihen, wenn keine zukünftigen Informationen vorliegen, z. B. Proc Forecast in SAS oder eine beliebige Anzahl verfügbarer ARIMA-Module. Diese Prognosen sind Projektionen, die auf dem historischen Verhalten Ihrer Daten basieren.

Sie teilen uns mit, dass Ihre Daten monatlich sind, teilen uns jedoch nicht mit, wie viele Zeiträume Ihnen zur Verfügung stehen. Ein anderer Ansatz besteht darin, Ihre drei IVs 24 Monate relativ zum DV zurückzusetzen, sodass der von ihnen vorhergesagte Zeitraum t + 24 beträgt. Dies setzt voraus, dass Sie über eine ausreichende Datumsmenge verfügen, um das Modell zu initialisieren und gegebenenfalls die relevante Saisonalität zu kalibrieren.

Mike Hunter
quelle
Ich habe meinen Text bearbeitet. Können Sie meine Fragen jetzt beantworten?
SB
Wenn Sie über eine ausreichende Menge an Informationen verfügen, gibt es viele Möglichkeiten, die Zeit in Ihr Modell zu integrieren. Sie können Dummy-Variablen für die Jahre (z. B. 2009, 2010 usw.), für die Quartale, für jeden Monat in der Zeitreihe oder als Ansatz zur Berücksichtigung der Saisonalität für jeden Monat des Jahres erstellen. Ein anderer Ansatz wäre, die Zeit als numerische Trendfunktion zu behandeln, z. B. linear (wie in einer Zählung der Perioden, die mit Jan 2009 = 1, Feb = 2 usw. beginnen) oder eine beliebige Anzahl von Polynomtrends basierend auf dem linearen Trend. zB quadratisch (linearer Trend im Quadrat) und höher. Was möchtest du noch wissen?
Mike Hunter
Aber Zeit kann keine unabhängige Variable sein, oder? Wie kann ich meine y-Variable anhand der 3 externen Variablen vorhersagen? Es fällt mir schwer, tatsächlich ein Modell auszuwählen, das die Vorhersage übernimmt?
SB
Wie im vorherigen Kommentar dargelegt, wäre die Zeit eine unabhängige Variable. Ich denke, Sie müssen sich über Regression, Ökonometrie und die Zeitreihenliteratur informieren. Es gibt viele Themen auf dieser Website, die diese Fragen beantworten und Artikel, Bücher usw. vorschlagen. Auf der rechten Seite dieser Webseite finden Sie weitere Themen zu Ihren Anliegen.
Mike Hunter
Ich habe viel gelesen und konnte keine Lösung finden. Aus diesem Grund habe ich diese Frage hier gestellt. Können Sie einige Themen einer Literatur nennen, die ich verwenden kann? Oder richtige Webseite?
SB
1

Aus meiner Sicht haben Sie drei Möglichkeiten:

  1. Verwenden Sie eine veröffentlichte Prognose für Ihre unabhängigen Variablen oder suchen Sie ein Modell, um sie vorherzusagen. Zum Beispiel wird die Volkszählung Bevölkerungsdaten prognostiziert haben.
  2. Regulieren Sie anhand des vorhandenen Datensatzes jede Ihrer unabhängigen Variablen gegen die Zeit und verwenden Sie diese Ergebnisse dann als Prognosemodell für die unabhängigen Variablen
  3. Löschen Sie die unabhängigen Variablen und modellieren Sie einfach Ihre abhängige Variable als Funktion der Zeit und der verzögerten Werte von y.

Jeder Ansatz hat seine eigenen Stärken und Schwächen. Das Beste hängt also vom jeweiligen Kontext ab.

Ezra Boyd
quelle