Berechnung des Prognosefehlers mit zeitreihenübergreifender Validierung

13

Ich habe ein Vorhersagemodell für eine Zeitreihe und möchte den Vorhersagefehler außerhalb der Stichprobe berechnen. Im Moment ist die Strategie, die ich verfolge, die auf Rob Hyndmans Blog (am Ende der Seite) vorgeschlagene Strategie (unter der Annahme einer Zeitreihe und eines Trainingssatzes der Größe ).y1,,ynk

  1. das Modell an die Daten und lassen Sie die Vorhersage für die nächste Beobachtung sein.y t + kyt,,yt+k-1y^t+k
  2. Berechnen Sie den Prognosefehler als et=y^t+k-yt+k .
  3. Wiederholen Sie dies für t=1,,n-k
  4. Berechnen Sie den mittleren quadratischen Fehler als MSE=1n-kt=1n-ket2

Meine Frage ist, wie sehr ich mich wegen meiner überlappenden Trainingssätze um Korrelationen sorgen muss. Angenommen, ich möchte nicht nur den nächsten Wert, sondern auch die nächsten m Werte vorhersagen, sodass ich Vorhersagen habe: y^t+k,,y^t+k+m-1 und Fehler et,1,,et,m , und ich möchte eine Termstruktur von Vorhersagefehlern aufbauen.

Kann ich das Fenster des Trainingssatzes immer noch um 1 nach vorne rollen, oder sollte ich es um m nach vorne rollen m? Wie ändern sich die Antworten auf diese Fragen, wenn es eine signifikante Autokorrelation in der Serie gibt, die ich vorhersage?

Ich würde mich über eine Erklärung oder einen Link zu einem Ort freuen, an dem ich theoretische Ergebnisse zu den Konfidenzintervallen in Bezug auf die MSE (oder andere Fehlermaßnahmen) finden kann.

Chris Taylor
quelle

Antworten:

11

Es hört sich so an, als ob Sie mehr daran interessiert sein könnten, Fehler mithilfe des Maximum-Entropy-Bootstraps zu schätzen , als durch Kreuzvalidierung. Auf diese Weise können Sie mehrere Bootstraps Ihrer Daten generieren, die Sie dann in beliebig viele Zug- / Testsätze aufteilen können, um Konfidenzintervalle für Ihre Vorhersagen zu berechnen.

Rob Hyndman hat in seinem Blog einige weitere Diskussionen zur zeitreihenübergreifenden Validierung , in denen er verschiedene Methoden zum "Rollen" und zur Prognose implementiert, die sich jedoch hauptsächlich auf die Implementierung konzentrieren. Ich habe auch einige weitere Implementierungen in meinem Blog . Der einfachste Ansatz wäre vielleicht, Ihren Fehler über alle Zeitfenster zu mitteln und daher mögliche Korrelationen bei Fehlern zu ignorieren.

Soweit ich das beurteilen kann, liegt der theoretische Stand der Kreuzvalidierung für Zeitreihendaten etwas hinter dem theoretischen Stand der allgemeinen Kreuzvalidierung. Ich gehe intuitiv davon aus, dass der Fehler mit zunehmendem Horizont zunimmt, was darauf hindeutet, dass Sie über verschiedene Prognosehorizonte hinweg mit korrelierten Fehlern rechnen sollten. Warum macht dir das Sorgen?

Zach
quelle