Ich habe bereits Erfahrungen mit der "normalen" K-fachen Kreuzvalidierung für die Modelloptimierung gesammelt und bin durch die Anwendung in Zeitreihenmodellen leicht verwirrt.
Nach meinem Verständnis ist die Folge für die Kreuzvalidierung für Zeitreihenmodelle das von Hyndman beschriebene Verfahren des "Rolling Forward Origin" . Dies ist für mich sehr sinnvoll und der folgende Code demonstriert die Verwendung der tsCV
Funktion in R aus Hydmans Blog , um zu zeigen, wie sich die Fehler vom Lebenslauf im Vergleich zum gesamten Datensatz auf einmal unterscheiden.
library(fpp)
e <- tsCV(dj, rwf, drift=TRUE, h=1)
sqrt(mean(e^2, na.rm=TRUE))
## [1] 22.68249
sqrt(mean(residuals(rwf(dj, drift=TRUE))^2, na.rm=TRUE))
## [1] 22.49681
In diesem Link oben wird nun erwähnt, dass der Driftparameter bei jedem neuen Prognoseursprung neu geschätzt wird. Im "normalen" Lebenslauf hätte ich ein Raster von Parametern, die ich für jede Falte auswerten würde, damit ich einen Durchschnitt erhalten könnte, um die besten zu verwendenden Parameter zu bestimmen. Ich würde dann diese 'besten' Parameter verwenden, um sie an den vollständigen Trainingssatz anzupassen, und diese als mein endgültiges Modell verwenden, um meinen zuvor durchgeführten Testsatz zu bewerten. Beachten Sie, dass dies eine verschachtelte Kreuzvalidierung ist, sodass ich zu keinem Zeitpunkt an meinem Testsatz trainiere.
Dies ist eindeutig nicht der Fall mit dem ‚rollend nach vorn Ursprung‘ Verfahren , bei dem die Parameter für jeden Falte optimiert sind (zumindest für die R - Methoden wie bats
, tbats
, auto.arima
, etc.). Irre ich mich, über diese Methode bei der Optimierung von Modellparametern nachzudenken, oder wie würde ich die Zeitreihenmodellparameter auswählen, die für das endgültige Modell festgelegt werden sollen, das verwendet werden soll? Oder ist die Parameteroptimierung kein Problem bei Zeitreihenmodellen, bei denen die Optimierung Teil der Modellanpassung zu sein scheint und das Ergebnis des Lebenslaufs darin besteht, nur zu sagen, wie gut jedes Modell insgesamt abschneidet? Und dass das endgültige Modell, das am Ende mit den meisten Daten erstellt wurde, das Modell ist, das ich verwenden würde?
Mir ist klar, dass dies in einer noch einfacheren Frage umformuliert werden kann. Nach der Kreuzvalidierung ("Rolling Forward Origin") verwende ich nur das zuletzt gebaute Modell (mit der größten Obermenge als endgültig angepasstem Modell? Oder was wird vorgeschlagen?