Zeitreihenvorhersage mit ARIMA gegen LSTM

64

Das Problem, mit dem ich mich beschäftige, ist die Vorhersage von Zeitreihenwerten. Ich betrachte jeweils eine Zeitreihe und möchte anhand von beispielsweise 15% der Eingabedaten deren zukünftige Werte vorhersagen. Bisher bin ich auf zwei Modelle gestoßen:

  • LSTM (Long Short Term Memory; eine Klasse wiederkehrender neuronaler Netze)
  • ARIMA

Ich habe beide ausprobiert und einige Artikel darüber gelesen. Jetzt versuche ich ein besseres Gefühl dafür zu bekommen, wie man die beiden miteinander vergleicht. Was ich bisher gefunden habe:

  1. LSTM funktioniert besser, wenn wir mit großen Datenmengen arbeiten und genügend Trainingsdaten verfügbar sind, während ARIMA für kleinere Datensätze besser ist (ist das richtig?)
  2. ARIMA erfordert eine Reihe von Parametern, (p,q,d)die anhand von Daten berechnet werden müssen, während für LSTM keine Einstellung solcher Parameter erforderlich ist. Es gibt jedoch einige Hyperparameter, die wir für LSTM optimieren müssen.
  3. EDIT: Ein wesentlicher Unterschied zwischen den beiden, den ich beim Lesen eines großartigen Artikels hier festgestellt habe , ist, dass ARIMA nur bei stationären Zeitreihen (wo es keine Saisonalität, keinen Trend usw. gibt) eine gute Leistung erbringen kann, und Sie müssen sich darum kümmern, wenn möchte ARIMA verwenden

Abgesehen von den oben genannten Eigenschaften konnte ich keine anderen Punkte oder Fakten finden, die mir bei der Auswahl des besten Modells helfen könnten. Ich wäre wirklich dankbar, wenn mir jemand helfen könnte, Artikel, Papiere oder andere Sachen zu finden (hatte bisher kein Glück, nur ein paar allgemeine Meinungen hier und da und nichts basierend auf Experimenten.)

Ich muss erwähnen, dass ich mich ursprünglich mit Streaming-Daten befasse, aber derzeit NAB-Datensätze verwende, die 50 Datensätze mit der maximalen Größe von 20.000 Datenpunkten umfassen.

ahajib
quelle
Würde es Ihnen etwas ausmachen, den Code von LSTM mitzuteilen? UND DANKE.
HILFE

Antworten:

25

Aussage 1 ist richtig, Aussage 2 ist richtig, muss aber ausgearbeitet werden, und Aussage 3 ist für saisonale ARIMA falsch:

Das Folgende zeigt Ihnen vielleicht die richtige Richtung, aber hoffentlich erhalten Sie ein paar Antworten mit mehr Tiefe in der Arena von LSTM.

Sie erwähnen, dass Sie beide Algorithmen ausprobiert haben und lediglich herausfinden möchten, welcher Algorithmus besser ist, was mich zu der Annahme veranlasst, dass Sie möglicherweise mehr Probleme mit dem datenwissenschaftlichen Prozess und der Kreuzvalidierung haben als mit den Besonderheiten der Modelle.

Zeitreihen im Allgemeinen:

Zeitreihen sind im Allgemeinen schwer vorherzusagen. Wenn sie leicht vorherzusagen wären, wären alle Datenwissenschaftler wohlhabend und hätten den Wert aller Bestände genau vorhergesagt. Die Realität ist, dass Hedgefonds im Durchschnitt nicht besser abschneiden als der Markt, und dass Zeitreihenprognosen in der Regel sehr schlecht sind und nur für sehr kurze Laufzeiten gelten. Die Hauptprobleme sind, dass es viel Rauschen gibt, dass es viele versteckte Einflüsse gibt, dass Modelle zu simpel sind, dass Influencer sich nicht so verhalten, wie wir es uns vorstellen, das Zusammenspiel von Linearität und Nichtlinearität ist subtil und verwirrend, bis ins Unendliche.

ARIMA

Sie sind falsch in Ihrer Einschätzung, dass ARIMA stationäre Zeitreihen für die Vorhersage benötigt. ARIMA außerhalb der Saison verfügt über drei Eingabewerte, mit deren Hilfe Sie die Glättung, Stationarität und Prognose von ARIMA (p, d, q) steuern können. Dabei gilt Folgendes:

  • p ist die Anzahl der autoregressiven Terme,
  • d ist die Anzahl der nicht saisonalen Unterschiede, die für die Stationarität benötigt werden, und
  • q ist die Anzahl der verzögerten Vorhersagefehler in der Vorhersagegleichung.

Im Gegensatz dazu hat saisonale ARIMA sechs Eingabewerte ARIMA (p, d, q, P, D, Q), wobei:

  • P ist die Anzahl der saisonalen autoregressiven Terme,
  • D ist die Anzahl der saisonalen Unterschiede und
  • Q ist die Anzahl der saisonalen gleitenden Durchschnittswerte.

Vorbehaltlich der obigen qualifizierenden Aussagen schlage ich vor, mit saisonaler ARIMA zu spielen, um ein Gefühl für die Feinheiten zu bekommen, die mit dem Glätten, Entfernen von Gewürzen, Entfernen von Trends, Entfernen von Rauschen und Vorhersagen verbunden sind.

LSTM

Ich weiß nicht genug über LSTM, um hier viel hinzuzufügen. Ich werde hinzufügen, dass rote Flaggen dazu neigen, ausgelöst zu werden, wenn jemand mit vertieftem Lernen in die datenwissenschaftlichen Übungen einsteigt. Ich empfehle Ihnen, mit ARIMA so viel wie möglich zu lernen und dann einige Ihrer ARIMA-Kenntnisse anzuwenden, um Ihnen das Erlernen von LSTM zu erleichtern. Neuronale Netze können ein sehr mächtiges Werkzeug sein, aber sie:

  • kann lange dauern, um zu laufen,
  • Zum Trainieren sind häufig mehr Daten erforderlich als bei anderen Modellen
  • Sie müssen viele Eingabeparameter einstellen.

Kreuzvalidierung und Vergleich von Modellen:

n

Hoffe das hilft und viel Glück!

AN6U5
quelle
Vielen Dank für Ihre Antwort. Ihre Notizen zu ARIMA sind hilfreich, und ich versuche, sie zu berücksichtigen. Im Falle einer Kreuzvalidierung und eines Vergleichs der beiden Modelle kann ich anhand verschiedener Parameter für die aktuellen Datensätze feststellen, welcher Algorithmus besser abschneidet und so weiter. Das Problem ist, dass keiner dieser Datasets die realen Daten (Streaming-Daten) darstellen kann. Aus diesem Grund habe ich mir gedacht, dass es besser ist, andere auf dem Gebiet der Datenwissenschaft und des maschinellen Lernens zum Austausch ihrer Gedanken und Erfahrungen aufzufordern.
Ahajib
Wenn Sie jedoch über Streaming-Daten verfügen, können Sie diese in Testdaten umwandeln, indem Sie den Stream speichern. Das Schöne an Zeitreihen ist, dass Sie jederzeit einen Testdatensatz aus einem beliebigen Datensatz erstellen können. Sie müssen nur einige der Daten speichern und anschließend die Zeit zurücksetzen.
AN6U5
Ich weiß, dass dies etwas in die Jahre gekommen ist, aber ich muss hier nicht zustimmen. Die d, D-Parameter dienen zur Unterscheidung, wie @ AN6U5 sagt, aber der Grund, diese Unterschiede überhaupt zu machen, ist, die Stationarität des Problems zu erzwingen. Tatsächlich besteht eine Interpretation des ARIMA-Modells darin, dass es sich nur um eine lineare Regression mit Begriffen handelt, um die Stationarität in den Zeitreihen zu erzwingen.
Ryan
6

Zur Antwort von @ AN6U5 hinzufügen.

Aus rein theoretischer Sicht hat dieser Aufsatz gezeigt, dass RNN universelle Approximatoren sind. Ich habe das Papier nicht im Detail gelesen, daher weiß ich nicht, ob der Beweis auch auf LSTM angewendet werden kann, aber ich vermute es. Das größte Problem mit RNN im Allgemeinen (einschließlich LSTM) ist, dass sie aufgrund von Gradientenexploration und Gradientenverschwindungsproblemen schwer zu trainieren sind. Die praktische Grenze für LSTM scheint bei Standardgradientenabstieg und zufälliger Initialisierung bei etwa 200 ~ Schritten zu liegen. Und wie bereits erwähnt, benötigen Sie im Allgemeinen eine Menge Daten und jede Menge Tuning, damit ein Deep-Learning-Modell gut funktioniert.

Das ARIMA-Modell ist eingeschränkter. Wenn Ihr zugrunde liegendes System zu komplex ist, ist es einfach unmöglich, eine gute Anpassung zu erzielen. Auf der anderen Seite ist das zugrunde liegende Modell, wenn es einfach genug ist, viel effizienter als der Deep-Learning-Ansatz.

Louis T
quelle
2

ARIMA-Modelle sind linear und LSTM-Modelle sind nichtlinear. Einige andere parametrische nichtlineare Zeitreihenmodelle, die Statistiker untersucht haben, sind autoregressive Modelle mit Schwellenwert (TAR) und autoregressive Modelle mit weichem Übergang (STAR). Das R-Paket tsDyn implementiert diese Modelle.

Ich frage mich, wie sich STAR-Modelle gegen LSTM behaupten.

Fortranner
quelle
2

Ich bin zu dem gleichen Schluss gekommen wie Sie und andere, dass herkömmliche Prognosen wahrscheinlich immer noch am besten für Zeitreihen numerischer Werte geeignet und möglicherweise zuverlässig sind. In der Diskussion, in der Zeitreihen für numerische Werte mit Tiefenlernen gemischt werden, kommt es zu leichten Ausblutungen beim Tiefenlernen, wo (derzeit) Tiefenlernen auf moderne Herausforderungen bei der Mustererkennung für Bild-, Ton-, Klartext- oder Anomalieerkennung angewendet wird. Ich habe oft gute Ergebnisse mit VAR / VECM für tägliche Transaktionsdaten, die wahrscheinlich auf Ihren Anwendungsfall für die Signalverarbeitung angewendet werden könnten.

Starbucks
quelle
1

Als Extremfall hatte ich die Möglichkeit, die Forex-Prognose (Devisenkurs) zu studieren und die Leistungen von LSTM, Windowed-MLP und ARIMA intensiv zu vergleichen. Wie viele Artikel sagen, sind Forex-Zeitreihen nahe an der Random-Walk-Reihe (sie sind vollständig instationär). Keiner dieser Algorithmen kann den Kassakurs des nächsten Tages vorhersagen. Wenn sich zum Beispiel nichts (oder nur wenig) ändert, wird der aktuelle Wert beibehalten und es sieht passend aus. Wenn es jedoch zu einer plötzlichen (erheblichen) Änderung des Kassakurses von morgen kommt, kann dies immer nicht vorhergesagt werden. Das Problem ist, dass aus den Trainingsdaten (z. B. der Spot-Rate-Historie der letzten 10 Jahre) nichts darüber zu lernen ist, ob sie groß genug sind oder nicht, da sie völlig zufällig sind (möglicherweise aufgrund der Einschätzungen der Börsenhändler ...). .

Tatsächlich bietet LSTM mit nur 1 Verzögerung oder ARIMA mit (1,0,0) die beste Leistung, da das Speichern von Daten mit mehr als 1 Verzögerung überhaupt nicht hilft. Für diese Art von Zeitreihen würde ich in Bezug auf die Tracking-Leistung sagen: 1) ARIMA, 2) LSTM, 3) MLP. Letzter Kommentar ... MLP mit makro- / mikroökonomischen Parametern (z. B. BIP-Differenz, Anleiheraten, Rohölpreis, Dollarindex usw.) als zusätzliche Funktionen funktionierten überhaupt nicht.

East Chun
quelle