Robuste Ausreißererkennung in finanziellen Zeitreihen

16

Ich suche nach robusten Techniken, um Ausreißer und Fehler (aus welchen Gründen auch immer) aus finanziellen Zeitreihendaten (z. B. Tickdata) zu entfernen.

Tick-by-Tick-Finanzzeitreihendaten sind sehr unübersichtlich. Es enthält große (Zeit-) Lücken, wenn die Börse geschlossen wird, und macht große Sprünge, wenn die Börse wieder geöffnet wird. Wenn die Börse geöffnet ist, führen alle Arten von Faktoren dazu, dass Geschäfte auf falschen (nicht aufgetretenen) und / oder nicht für den Markt repräsentativen Niveaus getätigt werden (zum Beispiel aufgrund eines falsch eingegebenen Geld- oder Briefkurses). In diesem Artikel von tickdata.com (PDF) wird das Problem gut umrissen , es werden jedoch nur wenige konkrete Lösungen angeboten.

Die meisten Artikel, in denen dieses Problem erwähnt wird, ignorieren es entweder (die Tickdaten werden als gefiltert angenommen) oder schließen die Filterung als Teil eines riesigen Handelsmodells ein, das alle nützlichen Filterungsschritte verbirgt.

Ist jemandem eine vertiefende Arbeit in diesem Bereich bekannt?

Update: Diese Frage scheint an der Oberfläche ähnlich zu sein, aber:

  • Finanzielle Zeitreihen sind (zumindest auf Tick-Ebene) nicht periodisch.
  • Der Eröffnungseffekt ist ein großes Problem, da Sie die Daten des letzten Tages nicht einfach als Initialisierung verwenden können, obwohl Sie dies wirklich möchten (da Sie sonst nichts haben). Externe Ereignisse können dazu führen, dass sich die Eröffnung des neuen Tages sowohl in absoluten Zahlen als auch in Bezug auf die Volatilität vom Vortag dramatisch unterscheidet.
  • Sehr unregelmäßige Häufigkeit eingehender Daten. Nahe dem Öffnen und Schließen des Tages kann die Anzahl der Datenpunkte / Sekunde 10-mal höher sein als der Durchschnitt des Tages. Die andere Frage befasst sich mit regelmäßig erfassten Daten.
  • Die "Ausreißer" in Finanzdaten weisen einige spezifische Muster auf, die mit spezifischen Techniken erkannt werden könnten, die in anderen Bereichen nicht anwendbar sind, und ich suche teilweise nach diesen spezifischen Techniken.
  • In extremeren Fällen (z. B. beim Flash-Crash) können die Ausreißer über längere Zeiträume (> 10 Minuten) mehr als 75% der Daten ausmachen. Darüber hinaus enthält die (hohe) Häufigkeit eingehender Daten einige Informationen zum Ausreißeraspekt der Situation.
Jilles de Wit
quelle
1
Ich glaube nicht, dass dies aufgrund der Art der Daten ein Duplikat ist. Das Problem, das bei der anderen Frage diskutiert wurde, beobachtete regelmäßig Zeitreihen mit gelegentlichen Ausreißern (zumindest habe ich das so interpretiert). Die Art der Tick-by-Tick-Daten würde aufgrund des Effekts der Austauschöffnung zu unterschiedlichen Lösungen führen.
Rob Hyndman
mögliches Duplikat von Einfacher Algorithmus zur Online-Erkennung von Ausreißern einer generischen Zeitreihe Diese Frage sollte als Duplikat geschlossen werden. Könnten Sie uns bitte im Meta-Thread mitteilen, ob und inwiefern sich Ihr Kontext von der Frage unterscheidet, die ich verlinkt habe?
@Rob Der Exchange Opening-Effekt bestimmt jedoch nur, wann Sie den Algorithmus ausführen müssen. Das grundsätzliche Problem bleibt dasselbe. Selbst in Netzwerkdaten haben Sie den "Büroeröffnungseffekt", bei dem der Datenverkehr bei Eröffnung eines Büros einen Spitzenwert erreicht. Zumindest sollte das OP eine Verknüpfung zu dieser Frage herstellen, die Antworten dort scannen und erklären, warum die dortigen Lösungen nicht funktionieren, damit eine geeignete Antwort für diese Frage veröffentlicht werden kann.
1
Ich bin mit @Rob einverstanden. Diese Art von Daten kann einzigartige Herausforderungen mit sich bringen, sodass dies kein Duplikat ist.
Shane
1
Ich denke es gehört hierher. Die Frage ist, ob unregelmäßig verteilte, sehr verrauschte Zeitreihen analysiert werden sollen. Haben Sie sich "Eine Einführung in die Hochfrequenzfinanzierung" von Dacorogna, Olsen und vielen anderen angeschaut? Oder die Arbeiten der gleichen Autoren?
PeterR

Antworten:

14

Das Problem ist definitiv schwer .

Mechanische Regeln wie die +/- N1 mal Standardabweichungen oder + / N2 mal MAD oder +/- N3 IQB oder ... wird scheitern , weil es immer einige Serien, die wie beispielsweise unterschiedlich sind:

  • Fixierungen wie der Interbanksatz können für einige Zeit konstant sein und dann plötzlich springen
  • Ähnliches gilt zB für bestimmte Fremdwährungen
  • bestimmte Instrumente sind implizit Spreads; Diese können für bestimmte Zeiträume nahe Null liegen und plötzlich sprunghaft ansteigen

War dort, habe das getan, ... in einem früheren Job. Sie könnten versuchen, jede Serie mit Arbitrage-Relation-Schiffen in eine Klammer zu setzen ( z. B. vorausgesetzt, USD / EUR und EUR / JPY werden als gut vorausgesetzt, Sie können Bänder für den USD / JPY berechnen; ebenso für Derivate aus einem Basiswert usw. pp.

Kommerzielle Datenanbieter bemühen sich darum, und diejenigen, die ihre Kunden sind, wissen, dass dies immer noch keine Fehler ausschließt.

Dirk Eddelbüttel
quelle
+1 ja, nichts ist perfekt. Tickdata.com (dessen Artikel erwähnt wird) enthält auch Ausreißer und sie entfernen auch zu viele gute Daten (im Vergleich zu einer anderen Quelle). Olsens Daten sind beinahe schrecklich, und ich bin im Allgemeinen nur ein Hinweis. Es gibt einen Grund, warum Banken große Operationsteams dafür bezahlen, daran zu arbeiten.
Shane
Mir gefällt Ihre Idee, bekannte Arbitrage-Beziehungen zu verwenden. Haben Sie das in Ihrem vorherigen Job schon einmal versucht?
Jilles de Wit
Nein, das haben wir nie vollständig formalisiert. Aber ich denke, wir haben einige einfache verwendet (zB ETF gegen zugrunde liegenden Index usw.). Es ist allerdings ein paar Jahre her.
Dirk Eddelbuettel
8

Wenn ich wieder an einem Computer bin, füge ich einige Papierreferenzen hinzu, aber hier sind einige einfache Vorschläge:

Beginnen Sie auf jeden Fall mit Retouren. Dies ist wichtig, um den unregelmäßigen Abstand zu berücksichtigen, bei dem es natürlich zu großen Preisunterschieden kommen kann (insbesondere an Wochenenden). Dann können Sie einen einfachen Filter anwenden, um Renditen zu entfernen, die weit außerhalb der Norm liegen (z. B. gegenüber einer hohen Anzahl von Standardabweichungen). Die Renditen passen sich dem neuen absoluten Niveau an, sodass große reale Änderungen zum Verlust von nur einem Tick führen. Ich empfehle die Verwendung eines Zweipassfilters mit Rückgaben aus 1 Schritt und n Schritten, um Cluster von Ausreißern zu behandeln.

Edit 1: In Bezug auf die Verwendung von Preisen anstelle von Renditen: Die Preise von Vermögenswerten sind in der Regel nicht stationär, sodass die IMO einige zusätzliche Herausforderungen darstellen kann. Um die Auswirkungen der Unregelmäßigkeiten und des Potenzgesetzes zu berücksichtigen, würde ich eine Anpassung empfehlen, wenn Sie sie in Ihren Filter aufnehmen möchten. Sie können die Preisänderungen anhand des Zeitintervalls oder der Volatilität skalieren. Sie können auf die Litertur "Realisierte Volatilität" verweisen, um eine Diskussion darüber zu führen. Auch in Dacorogna et. al.

Um die Änderungen der Volatilität zu berücksichtigen, können Sie versuchen, Ihre Volatilitätsberechnung ab derselben Tageszeit in der vergangenen Woche zu erstellen (unter Verwendung der Saisonalität).

Shane
quelle
Wenn Sie nur die Renditen verwenden, sind Sie sehr anfällig für Leitern (dh eine Folge von Preisen, die von der Norm abweicht oder steigt, wobei jede einzelne Rendite akzeptabel ist, aber als Gruppe einen Ausreißer darstellt). Idealerweise würden Sie sowohl den Return- als auch den Absolutpegel verwenden.
Jilles de Wit
5

Ich habe (mit einiger Verzögerung) meine Antwort geändert, um Ihre Besorgnis über die mangelnde Anpassungsfähigkeit des bedingungslosen Verrückten / Medians widerzuspiegeln.

(μ^t,σ^t)

xt-μ^tσ^t

Weitere Informationen (und einen Link zu einem R-Paket) finden Sie in diesem Dokument :

Boudt, K. und Croux, C. (2010). Robuste M-Schätzung multivariater GARCH-Modelle.

user603
quelle
Ich habe so etwas versucht, aber diese Methode ist nicht sehr gut im Umgang mit plötzlichen Änderungen der Volatilität. Dies führt in ruhigen Perioden zu einer Unterfilterung und in stark frequentierten Zeiten zu einer Überfilterung.
Jilles de Wit
Ich verstehe das nicht, was "Das führt zu Unterfilterung in ruhigen Perioden und Überfilterung in geschäftigen Zeiten" zu erklären ist?
User603
In ruhigen Zeiten ist die Preisvolatilität tendenziell geringer, sodass Preise, die näher am Mittelwert liegen, als Ausreißer betrachtet werden können. Da Sie MAD jedoch (vermutlich) für einen ganzen Handelstag (oder sogar länger) verwenden, sind diese Ausreißer weniger als 3 MAD vom Median entfernt und werden nicht gefiltert. Das Gegenteil gilt für Stoßzeiten mit höheren Preisbewegungen (akzeptable Preisbewegungen werden gefiltert). Somit reduziert sich das Problem darauf, die MAD zu jeder Zeit richtig zu schätzen, was das Problem ist, mit dem zu beginnen.
Jilles de Wit