Stellen Sie sich das folgende Problem vor. Ich habe wöchentliche Schnappschüsse von Preisdaten von K Artikeln sowie von verschiedenen Funktionen / Prädiktoren. Ich möchte vorhersagen, um wie viel sich der Preis in 2 Jahren ändern wird.
Ich setze meinen Datensatz wie folgt zusammen: Jede Zeile besteht aus Funktionen für jeden Artikel für jede Woche, und die Ausgabevariable ist eine Forward-2-Jahres-Preisrendite. Das Datum der Beobachtung befindet sich nicht in meinem Datensatz. Ich verwende es nur, um den Datensatz in einen Trainings- und Validierungssatz zu unterteilen, dh in eine Kreuzvalidierung (wobei ich 2 Jahre Daten vor und nach dem Validierungszeitraum verwerfe (dh) 1 Jahr), um Daten-Snooping zu verhindern).
Es ist klar, dass die Stichproben aus zwei aufeinanderfolgenden Wochen für denselben Artikel (und sogar für verschiedene Artikel) sowohl hinsichtlich der Merkmale als auch hinsichtlich der Antwortvariablen stark korreliert sind (da sich die vorwärtsgerichteten 2 Jahre weitgehend überschneiden, was die Renditen bedeutet wird sehr ähnlich sein). Welche potenziellen Probleme kann es für überwachte Lernansätze verursachen, z. B. zufällige Wälder oder Bäume mit Gefälle?
Meine Gedanken sind:
- Die effektive Größe des Datensatzes ist kleiner als erwartet. Das heißt, mein Datensatz von beispielsweise 100'000 Beobachtungen verhält sich eher wie ein Datensatz von 100'000 / (52 * 2) ~ = 1000 Beobachtungen, da dies die Anzahl der Proben ist, für die die Antwort keine Autokorrelation aufweist. Dies wirkt sich erheblich auf die Komplexität der Modelle aus, die ich an die Daten anpassen kann, dh ich habe erhebliche Überanpassungsprobleme und viel schlechtere Ergebnisse als erwartet.
- Da Features in aufeinanderfolgenden Wochen für jedes Element im Feature-Space sehr nahe beieinander liegen, deckt mein Dataset den Feature-Space viel schlechter als erwartet ab, wodurch die "effektive" Größe des Datasets erneut verringert wird.
- Die Verwendung von nur 1 Jahr Daten für die Validierung bei der Kreuzvalidierung führt zu einer hohen Varianz der Kreuzvalidierungsergebnisse, da die effektive Anzahl von Proben im Validierungssatz wiederum ~ K statt 52 * K beträgt.
Sind das berechtigte Bedenken? Wenn ja, bedeutet dies, dass ich mit K ~ = 100 Hunderte, wenn nicht Tausende von Jahren Daten benötige, um ein einigermaßen komplexes nichtlineares Modell aus Hunderten von Merkmalen zu trainieren, z. B. unter Verwendung zufälliger Wälder oder gradientenverstärkter Bäume? Oder bin ich zu pessimistisch und mein Argument über die "effektive Datensatzgröße" oben ist unsinnig?
Lassen Sie uns Ihr Problem wie folgt skizzieren:
Das heißt, Sie versuchen, eine Funktion maschinell zu lernenf( x ) . Ihr Funktionsumfang enthält alle Daten, die bis verfügbar sindT. . In einer irgendwie überladenen Notation wollte ich die Tatsache hervorheben, dass, wenn wir uns ansehenX. Als stochastischer Prozess wäre es zweckmäßig, dies durchzusetzen X. ist an eine Filtration angepasst ( ein zunehmender Informationsstrom ) - der Vollständigkeit halber erwähne ich hier Filtrationen.
Wir können uns auch die Gleichung ansehen1 als Versuch zu schätzen ( hier ):
Im einfachsten Fall, der in meinem Kopf auftaucht - der linearen OLS-Regression - haben wir:
Ich schlage diesen Gedankengang vor, um statistisches Lernen und klassische Ökonometrie zu verbinden.
Ich mache das, weil, egal wie Sie schätzen (lineare Regression, zufällige Gesamtstruktur, GBMs, ..)E.[X.T.+ 1|X.T.,X.T.- 1, . . ]] müssen Sie sich mit der Stationarität Ihres Prozesses X auseinandersetzen, das heißt: wie E.[X.T.+ 1|X.T.,X.T.- 1, . . ]] verhält sich rechtzeitig. Es gibt mehrere Definitionen von Stationarität , die versuchen, uns einen Eindruck von der Zeit-Homögenität Ihres stochastischen Prozesses zu vermitteln, dh wie sich der Mittelwert und die Varianz des Schätzers Ihres erwarteten Werts verhalten, wenn Sie den Prognosehorizont vergrößern.
Wir befinden uns zwischen dem Worst- und dem Best-Case-Szenario: Die Autokorrelation beeinflusst die Art der Stationarität, die ein stochastischer Prozess anzeigt: die Autokovarianzfunktionγ( h ) , wo h ist die Zeitlücke zwischen zwei Messungen, charakterisiert schwach stationäre Prozesse. Die Autokorrelationsfunktion ist die skalierungsunabhängige Version der Autokovarianzfunktion ( Quelle , Quelle ).
Das schwach stationäre Framework sollte Sie bei der Behandlung Ihrer Daten unterstützen. Der Schlüssel zum Erfolg ist, dass Sie keine Autokorrelation unter den Teppich legen können - Sie müssen sich damit befassen:
Sie erhöhen die Granularität des Zeitnetzes: Sie werfen Datenpunkte weg (weniger Granularität und viel weniger Daten, um Ihr Modell zu trainieren), aber die Autokorrelation beißt Sie immer noch auf die Streuung vonE.[X.T.+ 1|X.T.,X.T.- 1, . . ]] und Sie werden viel Varianz in Ihrer Kreuzvalidierung sehen
Sie erhöhen die Granularität des Zeitnetzes: Stichproben, Chunking und Kreuzvalidierung sind viel komplexer. Aus Modellsicht müssen Sie sich explizit mit der Autokorrelation befassen.
quelle