Prévoir des données de séries chronologiques avec des variables externes

10

Actuellement, je travaille sur un projet de prévision d'une série chronologique (données mensuelles). J'utilise R pour faire les prévisions. J'ai 1 variable dépendante (y) et 3 variables indépendantes (x1, x2, x3). La variable y a 73 observations, tout comme les 3 autres variables (alos 73). De janvier 2009 à janvier 2015. J'ai vérifié les corrélations et la valeur de p, et c'est très important de le mettre dans un modèle. Ma question est: comment puis-je faire une bonne prédiction en utilisant toutes les variables indépendantes? Je n'ai pas de valeurs futures pour ces variables. Disons que je voudrais prédire quelle sera ma variable y sur plus de 2 ans (en 2017). Comment puis-je faire ceci?

J'ai essayé le code suivant:

    model = arima(y, order(0,2,0), xreg = externaldata) 

Puis-je faire une prédiction de la valeur y sur 2 ans avec ce code?

J'ai également essayé un code de régression:

    reg = lm(y ~ x1 + x2 + x3) 

Mais comment prendre le temps dans ce code? Comment puis-je prévoir la valeur de ma valeur y, disons 2 ans? Je suis nouveau dans les statistiques et les prévisions. J'ai effectué quelques lectures et observations sur la valeur de décalage, mais comment puis-je utiliser une valeur de décalage dans le modèle pour effectuer des prévisions?

En fait, ma question globale est de savoir comment puis-je prévoir des données de série chronologique avec des variables externes sans valeur future?

SB
la source
N'utilisez jamais de régression avec des données de séries chronologiques. Utilisez une approche de modèle de fonction de transfert.
Tom Reilly
2
Bonjour monsieur, pouvez-vous m'en dire plus sur un modèle de fonction de transfert? Et pourquoi ne devrais-je jamais utiliser la régression avec des données de séries chronologiques? La plupart des études suggèrent d'utiliser la régression avec des séries chronologiques.
SB
Un modèle de fonction de transfert est expliqué dans le manuel de Box-Jenkins au chapitre 10. Le but est de construire un modèle pour chaque causalité (pré-blanchiment) puis d'utiliser les résidus pour trouver des corrélations contre Y (corrélation croisée). Cela vous aidera à identifier les variables importantes et s'il existe des relations de plomb ou de retard. Il pourrait être nécessaire d'ARIMA dans cette équation ou dénominateur sur les variables X. Vous pouvez également avoir des valeurs aberrantes, des changements de tendance, de niveau, de saisonnalité, de paramètres et de variance.
Tom Reilly
Il peut également y avoir une régression qui suppose que le temps n'est pas important. La régression a été utilisée par Galton pour étudier les pois de sueur ... pas un problème de série chronologique. La fonction de transfert utilise des parties du processus pour estimer le problème.
Tom Reilly

Réponses:

11

Si vous ajustez un modèle à l'aide de variables externes et que vous souhaitez effectuer des prévisions à partir de ce modèle, vous aurez besoin des valeurs futures (prévues) des variables externes, simples et simples. Il n'y a aucun moyen de contourner cela.

Il existe bien sûr différentes manières de prévoir vos variables explicatives. Vous pouvez utiliser la dernière valeur observée (la prévision de «marche aléatoire naïve») ou la moyenne globale. Vous pouvez simplement les mettre à zéro s'il s'agit d'une valeur utile pour eux (par exemple, des événements spéciaux qui se sont produits dans le passé comme un tremblement de terre, que vous ne prévoyez pas de se reproduire). Ou vous pouvez adapter et prévoir un modèle de série chronologique à ces variables explicatives elles-mêmes, par exemple en utilisant auto.arima.

L'alternative est d'adapter un modèle à vos valeurs sans variables explicatives, en supprimant le paramètre, puis de prévoir utilisant ce modèle. Un avantage est que cela peut même capturer des régularités dans vos variables explicatives. Par exemple, vos ventes de glaces peuvent être déterminées par la température, et vous n'avez pas de bonnes prévisions de température dans quelques mois à venir ... mais la température est saisonnière, donc le simple fait d'ajuster un modèle sans température donne un modèle saisonnier, et votre saisonnier les prévisions peuvent en fait être assez bonnes même si vous n'incluez pas le véritable moteur des ventes.yyxregy

Je recommande ce manuel de prévision en ligne gratuit , en particulier cette section sur la régression multiple (malheureusement, il n'y a rien sur ARIMAX là-bas), ainsi que le billet de blog de Rob Hyndman "The ARIMAX model muddle" .

Stephan Kolassa
la source
1

Comme l'a dit Yogi Berra, "Il est difficile de faire des prédictions, en particulier pour l'avenir."

De nombreux modules logiciels de statistiques généreront des prévisions basées sur le flux univarié de séries chronologiques en l'absence de toute information future, par exemple, Proc Forecast in SAS ou n'importe quel nombre de modules ARIMA disponibles. Ces prévisions sont des projections basées sur le comportement historique de vos données.

Vous nous dites que vos données sont mensuelles mais ne nous dites pas combien de périodes vous avez disponibles. Une autre approche consiste à faire reculer vos trois IV de 24 mois par rapport à la DV afin que la période qu'ils prédisent soit t + 24. Cela suppose que vous disposez d'une date suffisante pour initialiser le modèle et calibrer toute saisonnalité pertinente, le cas échéant.

Mike Hunter
la source
J'ai édité mon texte. Pouvez-vous répondre à mes questions maintenant?
SB
Étant donné que vous disposez d'une quantité suffisante d'informations, il existe de nombreuses façons d'intégrer le temps dans votre modèle. Vous pouvez créer des variables muettes pour les années (par exemple, 2009, 2010, etc.), pour les trimestres, pour chaque mois de la série chronologique ou, comme approche de la comptabilité de la saisonnalité, pour chaque mois de l'année. Une autre approche consisterait à traiter le temps comme une fonction de tendance numérique, par exemple linéaire (comme dans un décompte des périodes commençant en janvier 2009 = 1, février = 2, etc.) ou tout nombre de tendances polynomiales basées sur la tendance linéaire, par exemple, quadratique (tendance linéaire au carré) et plus. Que voulez-vous savoir d'autre?
Mike Hunter
Mais le temps ne peut pas être une variable indépendante, non? Alors, comment puis-je prédire ma variable y en utilisant les 3 variables externes? J'ai du mal à sélectionner un modèle qui fera la prédiction?
SB
Comme indiqué dans le commentaire précédent, le temps serait une variable indépendante. Je pense que vous devez lire sur la régression, l'économétrie et la littérature sur les séries chronologiques. Il existe de nombreux sujets sur ce site qui répondent à ces questions et suggèrent des articles, des livres, etc. Parcourez le côté droit de cette page Web pour plus de sujets liés à vos préoccupations.
Mike Hunter
J'ai fait beaucoup de lecture et je n'ai pas pu trouver de solution. C'est la raison pour laquelle j'ai posé cette question ici. Pouvez-vous nommer quelques fils de littérature que je peux utiliser? Ou la bonne page Web?
SB
1

Selon moi, vous avez trois options:

  1. Utilisez une prévision publiée pour vos variables indépendantes ou trouvez un modèle pour les prévoir. Par exemple, le recensement comportera des données démographiques prévisionnelles.
  2. À l'aide de l'ensemble de données dont vous disposez, réglez chacune de vos variables indépendantes dans le temps, puis utilisez ces résultats pour votre modèle de prévision pour les variables indépendantes
  3. Supprimez les variables indépendantes et modélisez simplement votre variable dépendante en fonction du temps et des valeurs décalées de y.

Chaque approche a ses propres forces et faiblesses, donc la meilleure dépend du contexte spécifique.

Ezra Boyd
la source