Prévisions ARIMA avec saisonnalité et tendance, résultat étrange

9

alors que j'entre dans la prévision avec des modèles ARIMA, j'essaie de comprendre comment je peux améliorer une prévision basée sur ARIMA en fonction de la saisonnalité et de la dérive.

Mes données sont les séries chronologiques suivantes (sur 3 ans, avec une tendance claire à la hausse et une saisonnalité visible, ce qui ne semble pas être soutenu par l'autocorrélation aux décalages 12, 24, 36 ??).

    > bal2sum3years.ts
             Jan     Feb     Mar     Apr     May     Jun     Jul     Aug          
    2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729 
    2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888 
    2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416 
             Sep     Oct     Nov     Dec
    2010 2232261 2394644 2468479 2816287
    2011 2480940 2699780 2760268 3206372
    2012 2951516 3119176 3032960 3738256

Le modèle proposé par auto.arima(bal2sum3years.ts)m'a donné le modèle suivant:

    Series: bal2sum3years.ts 
    ARIMA(0,0,0)(0,1,0)[12] with drift         

    Coefficients:
              drift
          31725.567
    s.e.   2651.693

    sigma^2 estimated as 2.43e+10:  log likelihood=-321.02
    AIC=646.04   AICc=646.61   BIC=648.39

Cependant, le acf(bal2sum3years.ts,max.lag=35)ne montre pas de coefficients acf supérieurs à 0,3. La saisonnalité des données est cependant assez évidente - pic au début de chaque année. Voici à quoi ressemble la série sur le graphique: Séries chronologiques originales

La prévision utilisant fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE), appelée par fonction forecast(fit), se traduit par des moyennes des 12 prochains mois égales aux 12 derniers mois des données plus constante. Cela peut être vu en appelant plot(forecast(fit)),

Données réelles et prévues

J'ai également vérifié les résidus, qui ne sont pas autocorrélés mais dont la moyenne est positive (non nulle).

L'ajustement ne modélise pas précisément la série temporelle d'origine, à mon avis (bleu la série temporelle d'origine, le rouge est le fitted(fit):

Original vs fit

La question est: le modèle est-il incorrect? Suis-je en train de manquer quelque chose? Comment puis-je améliorer le modèle? Il semble que le modèle prenne littéralement les 12 derniers mois et ajoute une constante pour atteindre les 12 prochains mois.

Je suis un débutant relatif dans les modèles de prévision de séries chronologiques et les statistiques.

Zima
la source
" L'ajustement ne modélise pas la série chronologique originale précisément, à mon avis " - pourquoi vous attendriez-vous à ce que ??
Glen_b -Reinstate Monica
@Glen_b, cette opinion était basée sur les différences que je vois quand je regarde l'intrigue. Si j'essaie de prévoir, par exemple, les ventes mensuelles à des fins comptables, l'erreur pourrait être importante ...
zima
« les différences que je vois quand je regarde l'intrigue » est une autre façon de dire « ne modélise pas précisément les séries chronologiques ». Ce n'est pas contesté. Votre expression d'un désir de meilleures prévisions est le même désir que tout prévisionniste. Dans de nombreux cas, cela peut être très important. Néanmoins, ce désir ne met pas plus d'informations dans les données. Chaque modèle ARIMA - en effet, tout modèle de série chronologique pertinent pour cette tâche - a un terme d'erreur non nul. Il y aura toujours un décalage entre les données et l'ajustement. Y a-t-il quelque chose qui vous fait penser que votre modèle a raté quelque chose qui peut être modélisé?
Glen_b -Reinstate Monica
Je viens de penser à quelque chose .. Peut-être que le modèle ARIMA n'est pas en mesure de refléter les données car il ne prend pas en compte la nature des données - l'activité des utilisateurs sur le site. Je pense qu'il pourrait y avoir d'autres événements affectant les nombres, pas seulement la saisonnalité - tels que les événements spéciaux, les promotions ... Peut-être que d'autres méthodes de prédiction (pas ARIMA), mais plus complexes impliquant des techniques d'apprentissage automatique, sont capables de mieux prédire les valeurs. J'examinerai cela.
zima
Plausible. Si c'est le cas, vous devriez être en mesure d'identifier une telle défaillance dans les résidus. Notez que les modèles ARIMA et les modèles de séries chronologiques structurelles peuvent incorporer des choses comme des événements spéciaux et des promotions via des termes de régression; les modèles de régression de séries chronologiques sont assez courants.
Glen_b -Reinstate Monica

Réponses:

9

D'après l'apparence de vos données, après la différenciation saisonnière, il se peut fort bien qu'il n'y ait plus de saisonnalité substantielle. Ce pic au début de chaque année, et le modèle suivant tout au long de l'année est assez bien repris par un modèleI[12] ; le modèle a incorporé une "saisonnalité évidente".

Oui, en effet, le modèle proposé est "This June = Last June + constant + error", et de même pour les autres mois.

Qu'est-ce qui ne va pas exactement? Cela semble être une excellente description de vos données.

Vous trouverez peut-être une décomposition de séries chronologiques plus intuitive et plus facile à expliquer, peut-être même quelque chose basé sur un modèle structurel de base - un modèle avec saisonnalité - mais cela n'implique pas nécessairement un modèle qui fonctionne mieux que celui que vous avez. Néanmoins, une ou plusieurs des techniques de décomposition standard peuvent valoir la peine d'être essayées - il y a beaucoup à dire pour un modèle que vous comprenez bien.

Glen_b -Reinstate Monica
la source
1

Je crois que notre problème est que nous passons directement au modèle ARIMA sans essayer les modèles traditionnels. pour cette raison, vous pouvez constater que le modèle ne donne pas les résultats nécessaires. Dans votre cas, j'ai testé vos données, j'ai constaté qu'il y a une saisonnalité tous les 12 mois qui est claire pour vous, mais aussi j'ai trouvé qu'une moyenne mobile simple de 3 termes Désaisonnalisation: Multiplicative est le meilleur modèle. À mon avis, nous devons essayer les algorithmes de prévision traditionnels avant de passer à une technique avancée. Prévisions sur 12 mois pour les données des questions

Awbath
la source
1
Le modèle que vous proposez est un modèle ARIMA de la forme (3,0,0) (0,0,0) où vous codez en dur les trois coefficients pour être .333, .333 et .333 et une constante de 0.0. Ainsi, non seulement vous supposez la forme du modèle arima MAIS vous supposez les valeurs des coefficients ET il n'y a pas de valeurs aberrantes dans la série. Laissez les données parler d'elles-mêmes en termes de forme du modèle et de valeurs optimales pour les paramètres ... vous n'avez rien à perdre et beaucoup à gagner. Si en effet votre modèle est correct, il sera trouvé. Tous les modèles arima sont des fonctions pondérées du passé.
IrishStat
1
stats.stackexchange.com/questions/40905/… explique comment la modélisation pondérée et l'arima sont liées. De cette façon, un modèle ARIMA peut être expliqué comme la réponse à la question Combien de valeurs historiques dois-je utiliser pour calculer une somme pondérée de la passé? Quelles sont précisément ces valeurs?
IrishStat