Capturer la saisonnalité en régression multiple pour les données quotidiennes

13

J'ai des données de vente quotidiennes pour un produit très saisonnier. Je veux saisir la saisonnalité dans le modèle de régression. J'ai lu que si vous avez des données trimestrielles ou mensuelles, dans ce cas, vous pouvez créer respectivement 3 et 11 variables muettes - mais puis-je gérer les données quotidiennes?

J'ai trois ans de données quotidiennes. Les variables indépendantes sont le prix, le drapeau promotionnel (oui / non) et la température. La variable dépendante est les ventes de ce produit. Je ne recherche pas de modèle de série chronologique car j'utilise un modèle de régression multiple.

Arushi
la source
Combien de données avez-vous? Combien d'années en valent la peine? Avez-vous des données sur quelque chose comme la température? À quoi ressemble le reste de votre modèle? Quels sont vos DV et IV?
Peter Flom - Réintègre Monica
En plus de ce que Peter Flom a demandé, modélisez-vous vos données comme des séries chronologiques univariées ou des séries chronologiques multivariées? S'il est multivarié, avez-vous d'autres variables? Ces variables présentent-elles un comportement saisonnier? dans ce cas, l'ajout d'une variable fictive serait inutile. Pouvez-vous fournir ces informations supplémentaires?
prévisionniste
J'ai édité ma question. Pourriez-vous s'il vous plaît fournir une solution. Merci
Arushi
Je suis totalement d'accord avec @IrishStat, nous ne supposerons pas d'ignorer les modèles de séries chronologiques, un très bon modèle qui capture la saisonnalité multiple.Je suggère que vous puissiez vérifier le modèle d'espace d'état de lissage exponentiel qui a la capacité de gérer la saisonnalité multiple, tendance, simultanément.il est exclusivement dans R. vous pouvez utiliser le package if prevision ().
Karthi V

Réponses:

10

@Irishstat a couvert à peu près ce que j'allais dire, mais je répondrais avec ma propre expérience personnelle dans la modélisation de ces données avec la régression des séries chronologiques et la régression OLS.

S'il s'agit de données quotidiennes, je ferais ce qui suit:

Créez une variable fictive pour différentes saisons:

  • Pour capturer la saisonnalité du jour de la semaine, créez 6 variables muettes.
  • Pour capturer la saisonnalité du jour du mois, créez 30 variables fictives
  • Pour capturer le mois de l'année, créez 11 variables muettes.

Créez une variable fictive pour les variables de tendance:

  • Si la série chronologique présente une tendance linéaire, ajoutez une variable de tendance temporelle.

  • Si la série chronologique présente une tendance non linéaire, ajoutez une variable de tendance temporelle non linéaire telle que quadratique / cubique / log

Ajouter des variables indépendantes Variables

  • Il s'agit de données de séries chronologiques, il faut donc faire attention aux effets de plomb et de retard des varibales indépendantes. Par exemple, dans votre exemple, vous mentionnez un indicateur promotionnel de prix, ils peuvent ne pas avoir d'effet immédiat sur votre réponse, c'est-à-dire qu'il peut y avoir un retard et un effet de décomposition / permanent . Ainsi, par exemple, si vous lancez une promotion aujourd'hui, vous pourriez avoir une augmentation des ventes aujourd'hui, mais l'effet de la promotion diminue après quelques jours. Il n'y a pas de moyen facile de modéliser cela en utilisant une régression multiple, vous voudriez utiliser une modélisation de fonction de transfert qui est parcimonoïque et peut gérer tout type d'effets de plomb et de retard. Voir cet exemple que j'ai publié plus tôt, où il y a une intervention (dans votre cas, le prix) et une augmentation brutale, suivie d'un effet de décroissance. Cela dit, si vous avezune connaissance a priori de l'effet de plomb et de retard, créez des variables supplémentaires dans votre cas, des variables factices avant et après le prix et (oui / non) le changement de promotion.

  • Vous devrez également ajouter des variables d'indicateur de jours fériés mobiles, par exemple, comme Irishstat l'a souligné, vous voudrez ajouter Pâques / Thanksgiving (aux États-Unis) qui sont des jours fériés mobiles. Les jours fériés qui sont des dates fixes seront automatiquement pris en charge si vous utilisez un schéma de codage factice pour capturer la saisonnalité.

  • En outre, vous devrez identifier les valeurs aberrantes telles que l'additif / impulsion (événement unique) ou le changement de niveau (changement permanent) et les ajouter en tant que régresseurs. Il est presque impossible d'identifier les valeurs aberrantes dans la régression multiple pour les données de séries chronologiques; vous auriez besoin de méthodes de détection de valeurs aberrantes de séries chronologiques telles que la procédure de Tsay ou la procédure de Chen et Liu qui a été incorporée dans des logiciels tels que AUTOBOX, SPSS, SAS ou le tsoutlierpackage dans R.

Problèmes potentiels:

Voici les problèmes que vous pourriez rencontrer si vous modélisez des données de séries chronologiques à l'aide de la régression multiple OLS.

  • Les erreurs peuvent être corrigées automatiquement. Voir ce joli site Web et ce site Web expliquant ce problème. Une façon d'éviter cela est d'utiliser l' approche des moindres carrés généralisés (GLS) ou ARIMAX par rapport à la régression multiple OLS, où vous pouvez corriger la corrélation automatique.
  • Le modèle OLS ne sera pas parcimonieux. Vous avez variables muettes pour la saisonnalité.6+30+11=47
  • En utilisant des variables muettes, vous supposez que votre saisonnalité est déterministe, c'est-à-dire qu'elle ne change pas avec le temps. Comme vous n'avez que 3 ans de données, je ne m'en inquiéterais pas, mais il vaut quand même la peine de tracer la série et de voir si la saisonnalité ne change pas.

Et il y a bien plus d'inconvénients à utiliser la régression multiple. Si la prédiction est plus importante pour vous, je détiendrais au moins 6 mois de données et testerais la capacité prédictive de votre régression multiple. Si votre objectif principal est d'expliquer la corrélation entre les variables indépendantes, alors je serais prudent en utilisant la régression multiple, et j'utiliserais plutôt une approche de séries chronologiques comme ARIMAX / GLS.

Si vous êtes intéressé, vous pouvez vous référer à l'excellent texte de Pankratz , pour la fonction de transfert et la modélisation de régression dynamique. Pour les prévisions générales de séries chronologiques, veuillez consulter Makridakis et al . En outre, un bon texte de référence serait de Diebold pour la régression et les prévisions basées sur les séries chronologiques.

prévisionniste
la source
Très beau résumé MAIS je voudrais ajouter que vous avez ignoré certains effets de la semaine du mois et du jour du mois en plus des éventuels effets de week-end que j'ai tous trouvés très importants. De plus, les effets pré-événement et post-événement ne doivent pas être ignorés. Considérez l'activité autour de Pâques et autour d'autres fêtes / événements majeurs. Il y a souvent un modèle de réponse individuelle qui nécessite l'incorporation d'une spécification LEAD. Vous devez également noter que les paramètres peuvent et souvent changent au fil du temps et il faut valider l'hypothèse de constance des paramètres.
IrishStat
Merci @Irishstat. Tu as raison. J'ai oublié de déplacer les vacances et leurs effets de plomb et de décalage.
prévisionniste
2

Ce dont vous avez besoin est un modèle qui incorporera les effets quotidiens, les effets hebdomadaires, les effets mensuels, les effets de la semaine du mois, les effets du jour du mois, les effets de plomb et de décalage des vacances, les décalages de niveau / pas non spécifiés mais identifiables empiriquement, les tendances temporelles locales, les changements d'impulsions saisonnières et les impulsions tout en incorporant la structure ARIMA et en traitant éventuellement les changements de paramètres et la variance des erreurs dans le temps. C'est ce qu'on appelle une fonction de transfert et peut être facilement reformulée (MAIS PAS PARSIMONIQUEMENT) comme une régression linéaire multiple.

En particulier, un indicateur quotidien prendrait 6 prédicteurs. En général, il faut soigneusement orchestrer (identifier) ​​le type de prédicteurs nécessaires. Si vous avez beaucoup de temps libre, vous pouvez expérimenter certaines des structures que j'ai mentionnées. Alternativement, vous pourriez avoir besoin d'un logiciel / conseil avancé pour vous aider à résoudre votre problème au cours de votre vie.

IrishStat
la source