Calcul des indices de saisonnalité pour la saisonnalité complexe

10

Je veux prévoir les articles au détail (par semaine) à l'aide du lissage exponentiel. Je suis coincé en ce moment dans la façon de calculer, stocker et appliquer les indices de sésonalité.

Le problème est que tous les exemples que j'ai trouvés traitent d'une sorte de saisonnalité simple. Dans mon cas, j'ai les problèmes suivants: 1. Les saisons ne se produisent pas la même semaine chaque année: elles sont mobiles. Mardi-gras, prêté, Pâques et quelques autres. 2. Il y a des saisons qui changent selon l'année. Par exemple, il y a une saison des fêtes nationales. Selon que les vacances sont proches du week-end, les clients quitteront ou non la ville. C'est un peu comme avoir deux saisons: une où les clients quittent la ville et une où ils ne quittent pas la ville. 3. Parfois, deux (ou 3) saisons se produisent en même temps. Par exemple, nous avons eu la saison des "Mardi-Gras" en même temps que la saison de la Saint-Valentin.
4. Parfois, les saisons changent de durée. Par exemple, la "saison d'Halloween" a commencé plus tôt cette année. Noël est également un autre exemple, où il semble que chaque année, nous commençons plus tôt à transporter les produits.

Il me semble que je dois trouver un moyen de définir une sorte de "profils saisonniers" qui, ensuite, en fonction du scénario particulier, sont en quelque sorte ajoutés pour obtenir le bon indice saisonnier. Cela a-t-il du sens?

Quelqu'un sait-il où trouver des informations pratiques sur la façon de procéder?

Merci, Edgard

elriba
la source

Réponses:

7

yt=a+b1Dt,1++bmDt,m+NtNtARIMA
Dt,karima

Si vous voulez vraiment vous en tenir au cadre de lissage exponentiel, il y a une discussion sur la façon d'inclure des covariables dans mon livre de 2008 sur le lissage exponentiel . Vous pouvez également consulter mon récent article sur le lissage exponentiel avec une saisonnalité complexe, bien que les types de complications saisonnières dont nous discutons soient plus difficiles que le genre de festival émouvant que vous décrivez.

Rob Hyndman
la source
Salut Kwak et Rob. Merci d'avoir regarder ceci. Je voulais utiliser le lissage exponentiel parce que c'est ce que je connais le mieux. Je pense que je dois apprendre à utiliser le cadre ARIMA. Pourriez-vous recommander un bon livre qui m'aiderait à en apprendre suffisamment sur le cadre ARIMA pour appliquer une telle approche de variable fictive? J'ai Bowerman's "Forecasting, Time Series, and Regression" et Levenbach "Forecasting: Practice and Process for Demand Management", que j'ai utilisé pour en savoir plus sur le lissage exponentiel. Je ne sais pas si ces informations sont suffisamment détaillées pour répondre à mes besoins. Merci!
elriba
Bowerman O'Connell et Koehler sont assez bons pour introduire des modèles ARIMA mais je ne pense pas que cela inclut ARIMA avec des covariables. Vous pouvez essayer mon manuel de 1998 qui couvre la modélisation et la régression ARIMA avec des erreurs ARIMA à un niveau d'introduction. Voir robjhyndman.com/forecasting pour plus de détails.
Rob Hyndman
1

Une solution simple serait d'inclure des variables factices d'événements dans votre spécification:

(1)yt^=λ1yt1+...+λkytk+ϕ1Dt,1+ϕmDt,m

Dt,m1tmm

λ1yt1+...+λkytk

Cela présuppose que vous avez au moins 20 observations pour chaque événement (soit 20 «mardi gras»). Si ce n'est pas le cas, vous pouvez essayer de regrouper certains événements (par exemple, mardi gras et fête du travail).

Le R à ajuster (1) est plutôt simple, en supposant que dlsales est stationnaire et D est votre matrice de variables fictives:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

À partir d'ici, vous pouvez poser des questions plus spécifiques sur la partie de ma réponse qui ne vous est pas familière (je ne sais pas quel est votre niveau en statistiques).

user603
la source
2
En fait, la fonction arima dans R ne correspond pas à votre modèle (1). arima () effectue une régression avec des erreurs ARIMA et votre équation (1) est un modèle ARMAX.
Rob Hyndman
Rob:> j'ai édité l'équation un. Pouvez-vous indiquer une source où les différences entre l'armax et la régression avec des erreurs d'arima sont expliquées (ou alternativement fournir une explication intuitive). Connaissez-vous également un package R qui implémente les modèles ARMAX? Merci d'avance.
user603
Un modèle ARMAX de premier ordre avec une covariable est y_t = a + bx_t + cy_ {t-1} + e_t où e_t est iid zéro moyenne. La régression correspondante avec l'erreur ARIMA est y_t = a + bx_t + n_t où n_t = phi * n_ {t-1} + z_t et z_t est iid zéro moyenne.
Rob Hyndman
1
@kwak. Tout d'abord, n_t = phi n_ {t-1} + z_t est AR (1). Un processus moyen mobile d'ordre 1 serait n_t = thêta z_ {t-1} + z_t. Deuxièmement, une régression avec des erreurs MA équivaut à un modèle MAX. Mais une fois que vous avez ajouté des termes AR dans le processus d'erreur, il n'y a plus d'équivalence entre les deux classes. Troisièmement, la fonction arimax () dans TSA s'adapte aux modèles de fonction de transfert, dont un cas spécial est une régression avec des erreurs ARIMA. Il ne convient pas aux modèles ARIMAX. Je pourrais écrire un blog à ce sujet car il est difficile de trouver les différentes classes de modèles comparées et discutées n'importe où.
Rob Hyndman
2
J'ai essayé de résumer les différents modèles sur robjhyndman.com/researchtips/arimax
Rob Hyndman