Prognose von Devisen mit neuronalen Netzen - Verzögerung in der Vorhersage

7

Ich habe eine Frage zur Verwendung eines neuronalen Netzwerks. Ich arbeite derzeit mit R ( Neuralnet-Paket ) und habe das folgende Problem. Mein Test- und Validierungssatz ist in Bezug auf die historischen Daten immer zu spät. Gibt es eine Möglichkeit, das Ergebnis zu korrigieren? Vielleicht stimmt etwas in meiner Analyse nicht

  1. Ich benutze die tägliche Protokollrückgabe r (t) = ln (s (t) / s (t-1))
  2. Ich normalisiere meine Daten mit der Sigmoid-Funktion (Sigma und Mu werden für meinen gesamten Satz berechnet).
  3. Ich trainiere meine neuronalen Netze mit 10 Daten und die Ausgabe ist der normalisierte Wert, der auf diese 10 Daten folgt.

Ich habe versucht, den Trend hinzuzufügen, aber es gibt keine Verbesserung, ich habe 1-2 Tage zu spät beobachtet. Mein Prozess scheint in Ordnung zu sein, was denkst du darüber?

ALFRAM
quelle

Antworten:

2

Einige Möglichkeiten zur Verbesserung Ihres Designs:

  1. Betrachten Sie eine andere Normalisierung: Die Sigmoid-Funktion dämpft große Bewegungen. Es ist wahrscheinlich, dass genau diese großen nichtlinearen Bewegungen Sie dazu gebracht haben, neuronale Netze zu verwenden. Warum sie entfernen? Eine einfache whiteningder Daten kann besser sein
  2. Wie von Nima hervorgehoben, kann Ihr Modell nur vorhersagen, was aus den von Ihnen angegebenen Daten erkennbar ist. Wenn Sie nur Daten mit historischen Preisen anpassen, erhalten Sie nur das, was aus diesen vorhersehbar ist. Dinge wie Nachrichtenereignisse / Gewinnüberraschungen / Feiertage / Optionsmarktströme werden nicht in Ihr Modell eingespeist. Erwägen Sie auch das Hinzufügen dieser Serien.
  3. Viele weitere historische Daten. Neuronale Netze erfordern häufig sehr große Stichprobengrößen, da sie versuchen, einen sehr großen Parameterraum abzuschätzen. Obwohl mehr Daten nicht immer mehr Informationen bedeuten, wird dies wahrscheinlich dennoch helfen.
  4. Experimentieren Sie mit verschiedenen Netzwerkarchitekturen. Die Anzahl der Schichten / Größe der Schichten / verschiedene Gradienten-anständige Algorithmen / verschiedene Aktivierungsfunktionen / Dropout usw.
geschlossener Regelkreis
quelle
0

Es ist wahrscheinlich sehr schwierig, eine Schlussfolgerung zu ziehen, wenn Sie mit nur 10 Eingabebeispielen trainieren. Mit mehr Daten wäre Ihre Diagnose, dass das Modell verzögerte Werte vorhersagt, plausibler. Derzeit ist es ziemlich wahrscheinlich, dass Ihr Modell nur sagt, dass der zuletzt beobachtete Wert nahezu korrekt ist. Dies ist nicht dasselbe wie ein echtes Lag-Modell, aber es ist sehr vernünftig zu erraten, ob Sie nicht genügend Daten gesehen haben.

Ted Dunning
quelle
0

Ich habe viele Papiere gesehen, die im Grunde das sind, was Sie gerade beschrieben haben. Es ist nichts Falsches an dem, was Sie tun, aber es gibt schwerwiegende Einschränkungen, wie dies den Markt vorhersagen kann. Lassen Sie mich Ihnen ein Beispiel geben: Nehmen wir an, Sie haben einige Daten und beginnen mit der Vorhersage. Mit jedem Datensatz sagen Sie den nächsten Datenpunkt voraus. und dann geben Sie diesen Datenpunkt als Eingabe an das System zurück und tun dies immer weiter. In den meisten Fällen setzt das System nur den letzten Trend fort und die Zeitreihen brechen nicht. Dies ist keine Vorhersage, dies ist eine Fortsetzung der Linie ... nur wenn das System die Unterbrechung der realen Daten sieht, wird die Vorhersage unterbrochen, und dies ist die Verzögerung, über die Sie sprechen (wenn ich Ihre Frage richtig verstehe). Das erste, was Sie tun können, um dies zu verbessern, ist, einige Marktindikatoren aus dem Preis zu extrahieren. das würde wirklich helfen

Nima Shayanfar
quelle
Ich denke, diese Antwort hat einen Kernel von Wert, könnte aber wahrscheinlich von einem spezifischeren Beispiel und einigen Bearbeitungen profitieren.
Sean Owen