Différenciation saisonnière et auto.arima
J'ai commencé à étudier différents algorithmes de prévision, en utilisant R. À titre d'exemple, peut-être pas le meilleur (en raison du manque de saisonnalité), j'utilise les actions Facebook.
Ensemble d'entraînement:
SYMBOL <- getSymbols("FB", from = "2015-01-01", to = "2019-12-31")
Stocks_FB_day <- get(SYMBOL[1])
Stocks_FB_day_Cl <- Cl(Stocks_FB_day)
Ensemble de test:
SYMBOL <- getSymbols("FB", from = "2020-01-01", to = "2020-01-21")
Stocks_FB_day <- get(SYMBOL[1])
J'ai construit différents modèles, dont ARIMA. Je sais que celui-ci n'est pas le plus approprié pour les données boursières quotidiennes, cependant, j'ai décidé de l'essayer. En tenant compte du fait qu'il y a environ 252 observations par an, j'ai créé des graphiques de décomposition, en utilisant stl()
des fréquences de fonction et de réglage égales à 126 (une demi-année) et 252 (une année complète). Les deux graphiques montrent que les signaux saisonniers ne sont pas vraiment essentiels. Voici l'un d'entre eux:
Il peut également être conclu à partir des graphiques ACF et PACF (peut-être que je me trompe?):
Ce sont mes expériences avec la auto.arima
fonction:
Chaque fois que j'écrivais «D = 1» (que la fréquence soit de 252 ou 126), forçant la différenciation saisonnière, j'obtenais des valeurs AIC plus élevées, cependant, des prévisions plus précises. Je ne dis pas qu'obtenir des lignes plates / presque plates n'est pas approprié, néanmoins, vous voulez parfois en savoir plus qu'une simple direction générale de vos prévisions futures si cela est possible.
Je suppose que j'ai fait beaucoup d'erreurs et qu'il est fort possible que l'approche dans son ensemble ne soit pas du tout appropriée.
La question majeure est:
"Est-il judicieux de forcer la différenciation saisonnière (D = 1) dans les cas où cela donne de meilleures valeurs de prévision (je les compare avec un ensemble d'attente, calcul MAPE, par exemple) même si cela semble inutile, en raison de le fait que la saisonnalité est faible? "
Réponses
À titre de conseil général, vous pouvez vous opposer à ce que les données que vous avez sous les yeux vous indiquent si vous avez une connaissance préalable fiable du domaine . Dans ce cas, il s'agirait de connaissances sur le marché boursier en général, ou de connaissances sur les activités de Facebook en particulier, que vous avez précédemment acquises indépendamment de la série de cours boursiers que vous regardez.
Mais si la connaissance du domaine ne dit pas que cela devrait être saisonnier, et que les données ne semblent pas vraiment saisonnières, et vous dites au hasard "hé, et si j'essayais de forcer la saisonnalité?" et vous tirez meilleur parti des résultats des échantillons, vous devez absolument être sceptique quant à savoir si vous avez vraiment amélioré votre modèle d'une manière qui sera utile à l'avenir. Il est bien sûr possible que la connaissance du domaine soit erronée ou que l'ajout de la différenciation saisonnière ait résolu un problème réel mais sans rapport avec votre modèle que vous pourriez mieux justifier directement.
Je vois beaucoup de gens ici qui apprennent les prévisions qui semblent graviter vers les cours des actions comme un premier projet. Malheureusement, la nature du domaine est que, dans la classe des modèles ARIMA, les cours des actions sont presque toujours mieux modélisés comme des marches aléatoires, donc pas très intéressants du point de vue de l'apprentissage. Il s'agit d'une propriété fondamentale du domaine et elle est due à la manière dont les attentes agrégées des prix futurs influencent les investisseurs pour modifier la trajectoire future du prix en achetant ou en vendant l'actif. Ce mécanisme de rétroaction a tendance à atténuer les mouvements facilement anticipés, de sorte que tout ce que vous pouvez facilement observer est le bruit.
Les cours des actions n'ont généralement pas de modèle fortement saisonnier pour cette raison. S'il était possible de réaliser des bénéfices fiables en achetant en basse saison et en vendant en haute saison, tout le monde le ferait. Cela ferait augmenter le prix en basse saison, et celui de la haute saison à baisser, faisant finalement disparaître cet avantage. La connaissance préalable du domaine dans ce cas indique que les cours des actions ne sont probablement pas saisonniers de cette manière.
Donc, dans ce cas, je serais sceptique quant à l'ajout de la différence saisonnière et j'étudierais plus en détail pourquoi le niveau de vos prévisions non saisonnières semble être beaucoup plus éloigné (je ne peux pas dire d'après les informations que vous avez publiées jusqu'à présent ).