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:
- 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?)
- 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. - 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.
quelle
Antworten:
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:
Im Gegensatz dazu hat saisonale ARIMA sechs Eingabewerte ARIMA (p, d, q, P, D, Q), wobei:
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:
Kreuzvalidierung und Vergleich von Modellen:
Hoffe das hilft und viel Glück!
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle