J'ai une expérience antérieure avec la validation croisée `` normale '' pour le réglage de modèle et je suis légèrement confus par l'application dans les modèles de séries chronologiques.
Je crois comprendre que pour les modèles de séries chronologiques, le corollaire de la validation croisée est la procédure d '«origine ascendante» décrite par Hyndman . Cela a beaucoup de sens pour moi et le code ci-dessous montre l'utilisation de la tsCV
fonction dans R, du blog d' Hydman , pour montrer comment les erreurs diffèrent de CV par rapport à l'ensemble de données en une seule fois.
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
Maintenant, dans ce lien ci-dessus, il indique que le paramètre de dérive est réestimé à chaque nouvelle origine de prévision. Dans un CV «normal», j'aurais une grille de paramètres que j'évaluerais pour chaque pli afin de pouvoir obtenir une moyenne pour déterminer les meilleurs paramètres à utiliser. J'utiliserais ensuite ces «meilleurs» paramètres pour s'adapter à l'ensemble d'entraînement complet et l'utiliser comme mon modèle final pour évaluer sur mon ensemble de test précédemment détenu. Remarque: il s'agit d' une validation croisée imbriquée, donc je ne m'entraîne à aucun moment sur mon jeu de tests.
Ceci est clairement pas le cas de la procédure « d'origine roulant vers l' avant » , où les paramètres sont optimisés pour chaque fois (au moins pour les procédés de R tels que bats
, tbats
, auto.arima
, etc.). Suis-je dans l'erreur de penser à cette méthode en termes de réglage des paramètres du modèle ou comment choisir les paramètres du modèle de série chronologique à définir pour le modèle final qui serait utilisé? Ou le réglage des paramètres n'est-il pas considéré comme un problème avec les modèles de séries chronologiques où l'optimisation semble faire partie de l'ajustement du modèle et le résultat du CV est simplement de dire dans quelle mesure chaque modèle fonctionne globalement? Et que le modèle final construit avec la majorité des données à la fin est le modèle que j'utiliserais?
Je sais que cela peut être reformulé en une question encore plus simple. Après la validation croisée («origine évolutive»), dois-je simplement utiliser le dernier modèle construit (avec le plus grand sur-ensemble comme modèle ajusté final? Ou qu'est-ce qui est suggéré?
la source
Réponses:
Vous pouvez combiner l'origine en aval avec la validation croisée k-fold (aka backtesting avec validation croisée). Déterminez les plis à l'avance une fois, et à chaque fois que vous roulez, parcourez les k plis, entraînez-vous sur k-1 et testez sur k. L'union de tous les plis de test retenus vous donne une couverture complète de l'ensemble de données à ce moment-là, et les plis de train couvrent le jeu de données k-1 fois à ce moment-là, que vous pouvez agréger de la manière appropriée (par exemple, moyenne ). Ensuite, notez le train et testez séparément comme vous le feriez normalement pour obtenir les scores de train / test séparés à ce moment-là.
Lors de l'optimisation des paramètres, créez d'abord un ensemble d'exclusion distinct, puis effectuez la validation croisée décrite uniquement sur les données restantes. Pour chaque paramètre à optimiser, vous devez décider si ce paramètre est indépendant du temps (afin que vous puissiez effectuer l'optimisation sur tous les temps de roulement) ou dépendant du temps (de sorte que le paramètre est optimisé séparément à chaque fois). Dans ce dernier cas, vous pouvez représenter le paramètre en fonction du temps (éventuellement linéaire), puis optimiser à tout moment les coefficients indépendants du temps de cette fonction.
la source
Si vous optimisiez les paramètres pour les données de test, vous ajusteriez partiellement vos données aux données de test au lieu des données d'entraînement. Vous voulez savoir quelle méthode est préférable aux données retenues et non, par exemple, à quel gamma doit être défini dans un modèle Holt Winters.
la source