| Conférencier |
Transcription |
| |
Bonjour, merci d'avoir pris le temps de consulter ce document. Je m'appelle Jacob Rhyne et je suis testeur logiciel chez JMP. Aujourd'hui, je vais partager avec vous un module complémentaire que j'ai développé pour vous aider à choisir entre un modèle ARIMA ou un modèle de lissage d'espace d'état dans la plateforme de séries temporelles de JMP. |
| |
Je commence donc par un bref aperçu de l'adaptation des modèles ARIMA et State Space Smoothing à la plateforme Time Series. |
| |
Je présenterai la nécessité d'un module complémentaire pour faciliter le choix entre ces deux classes de modèles. Je donnerai également un aperçu de la validation croisée des séries temporelles, son principal outil. Je terminerai ensuite par une démonstration du module complémentaire avec JMP 16.1. |
| |
La plateforme de séries chronologiques de JMP permet d'ajuster de nombreux modèles de séries chronologiques différents. Cette présentation portera sur les modèles ARIMA et de lissage d'espace d'état, et je montrerai comment les ajuster à l'aide de cet exemple de données sur les expéditions d'acier. |
| |
Les données d'échantillon des expéditions d'acier contiennent les totaux mensuels des expéditions d'acier américaines de 1984 à 1991. Et j'explorerai cela avec la plate-forme Séries chronologiques dans le menu Modélisation spécialisée. |
| |
La colonne « Expéditions d'acier » correspond à ma série chronologique. La colonne « Date » correspond à mon identifiant temporel. Imaginons que je souhaite prévoir les expéditions d'acier pour les deux prochaines années. Comme il s'agit de données mensuelles, j'ai besoin de 24 périodes de prévision. Je clique ensuite sur « OK » pour lancer mon rapport de séries chronologiques. |
| |
Vous pouvez voir que j'ai un tracé de la série chronologique, quelques statistiques de base de la série, ainsi que quelques diagnostics de base de la série chronologique. |
| |
Je souhaite adapter un modèle ARIMA à cette série. Pour ce faire, je dois déterminer si des transformations ou des différenciations sont nécessaires. J'utiliserai donc l'option « Différence » du menu « Séries chronologiques » pour explorer cette question. |
| |
Je vais commencer par une différenciation non saisonnière d'ordre un, puis cliquer sur estimation. |
| |
J'ai maintenant un graphique de la série de différences. Il semble plus stable, mais il y a encore une certaine saisonnalité. Je peux le constater en regardant les diagnostics. Je descends au décalage numéro 12. |
| |
Je peux voir que la valeur de corrélation automatique est élevée et que la corrélation automatique partielle est également un peu élevée pour le décalage de 12. Cela suggère donc que je devrais ajuster un modèle ARIMA saisonnier avec une différenciation non saisonnière et saisonnière. |
| |
Je vais clôturer ce rapport de différences pour le rendre plus clair. Je vais également explorer l'adaptation de différents modèles ARIMA avec l'option Groupe de modèles ARIMA. |
| |
J'ai donc décidé d'ajuster un modèle ARIMA saisonnier avec un ordre de différenciation non saisonnier de 1 et un ordre de différenciation saisonnier de 1. Cependant, pour les ordres autorégressifs et de moyenne mobile, je les laisserai à zéro ou à un. |
| |
Lorsque je clique sur « Estimer », JMP ajuste ces 16 modèles ARIMA saisonniers différents. Je peux faire défiler la fenêtre de comparaison des modèles et les visualiser. Les modèles sont triés par ordre décroissant d'AIC ; je sélectionne donc celui qui minimise l'AIC. |
| |
Je peux faire défiler la page vers le bas pour examiner le modèle et le rapport. Je constate qu'il est stable et inversible. Je peux également consulter le tableau des estimations des paramètres, ainsi que les prévisions et leurs intervalles. |
| |
Supposons que j’ai examiné tous ces diagnostics et que je suis satisfait de ce modèle ARIMA saisonnier comme candidat à considérer pour les prévisions. |
| |
Je vais donc supprimer ces autres modèles ARIMA saisonniers du rapport. |
| |
Et disons que je souhaite également envisager d'utiliser un modèle de lissage de l'espace d'état pour créer une prévision. Je peux le faire en utilisant l'option Lissage de l'espace d'état du menu des séries chronologiques. |
| |
Je dois dire que la période est de 12 car il s'agit de données mensuelles, et je vais simplement adapter tous les modèles de lissage d'espace d'état recommandés pour cette série chronologique. |
| |
Je clique donc sur OK pour exécuter le rapport. Si je fais défiler la page jusqu'au rapport de comparaison des modèles, je constate que JMP a ajusté tous les modèles de lissage d'espace d'état recommandés. Ils sont à nouveau classés par ordre décroissant d'AIC. |
| |
Le modèle minimisant l'AIC était donc un modèle d'erreur multiplicative sans tendance et avec une saisonnalité multiplicative. Je vais donc sélectionner ce modèle. |
| |
dans le plan de comparaison des modèles, faites défiler vers le bas pour examiner l'ajustement du modèle. |
| |
Je peux donc consulter le résumé du modèle et le tableau des estimations des paramètres. |
| |
Vous pouvez consulter les prévisions et leurs intervalles. Supposons que j'ai examiné tous ces diagnostics et que je suis satisfait de ce modèle de lissage d'espace d'états comme candidat à la prévision. |
| |
Je vais donc supprimer l'autre modèle State Space Smothing de mes modèles et de ma fenêtre de comparaison de modèles. |
| |
Alors maintenant, la question est de savoir comment choisir entre ce modèle ARIMA que j'envisage et le modèle de lissage de l'espace d'état que j'envisage pour les prévisions. |
| |
Vous pouvez voir que j'ai cet avertissement de texte de lecture qui m'indique que les critères basés sur la vraisemblance ne sont pas comparables entre les différentes classes de modèles. |
| |
Et cela signifie que je ne peux pas simplement faire défiler l'écran et afficher l'AIC et dire, puisque l'AIC est inférieur, pour le modèle ARIMA, je vais l'utiliser pour les prévisions. |
| |
Ce n'est pas une décision valable. Alors, que faire ? Eh bien, une option est déjà disponible dans JMP. Si vos données sont suffisamment longues, |
| |
pour avoir un délai de retenue défini, vous pouvez utiliser l'option de prévision sur délai de retenue lors du lancement de la plateforme Time Series. |
| |
Cela permettrait d'ajuster tous les modèles de séries temporelles utilisés à l'ensemble d'entraînement. De plus, dans la fenêtre de comparaison des modèles, au lieu de trier les modèles par AIC, |
| |
il triera les modèles par l'erreur quadratique moyenne ou RMSE de l'ensemble de retenue et vous choisirez le modèle qui minimise le RMSE de l'ensemble de retenue. |
| |
Cependant, si vos données ne sont pas suffisamment longues pour utiliser un ensemble de retenue, nous ne pouvons pas utiliser l'option de prévision sur retenue et nous avons besoin d'une autre méthode pour nous aider à choisir entre un modèle ARIMA ou un modèle de lissage de l'espace d'état. |
| |
Et pour faire ça. |
| |
C'est pourquoi j'ai créé ce module complémentaire. Il vous aide à choisir en utilisant ce qu'on appelle la validation croisée des séries temporelles. |
| |
La validation croisée des séries chronologiques divise essentiellement vos séries chronologiques en plusieurs ensembles d'entraînement et de test où, pour chaque groupe successif, vous étendez l'ensemble d'entraînement d'une ligne. |
| |
Je vais vous donner un exemple détaillé de validation croisée de séries chronologiques dans un instant, mais je tiens à préciser que je n'ai pas inventé cette méthode. Pour en savoir plus, |
| |
après avoir visionné cette conférence, c'est une ressource que je recommanderais : les principes et la pratique de prévision par le Dr Rob Hyndman. |
| |
Mais regardons un exemple de validation croisée de séries chronologiques. |
| |
Disons que j'ai des données sur les résultats du box-office nord-américain de janvier à juillet 2021 parce que je suis un fan de cinéma. |
| |
J'aimerais prévoir le box-office des six prochaines semaines en utilisant soit un modèle ARIMA, soit un modèle de lissage d'espace d'état. Pour choisir la prévision à utiliser, j'utiliserais la validation croisée des séries chronologiques. |
| |
Comme je l'ai mentionné, la validation croisée des séries chronologiques divisera vos données en groupes d'ensembles d'entraînement et de test où vous étendez l'ensemble d'entraînement d'une ligne et de chaque groupe successif. |
| |
Je dois donc décider du nombre de lignes que je souhaite dans mon ensemble d’entraînement initial. |
| |
Par défaut, mon module complémentaire vous propose six groupes de validation croisée de séries chronologiques. Cela vous donne un nombre suggéré de lignes par défaut à utiliser dans votre ensemble d'entraînement initial, mais vous pouvez le modifier si vous le souhaitez. |
| |
Je vais conserver la valeur par défaut de 17 lignes initiales dans l'ensemble d'entraînement pour cet exemple. |
| |
Lorsque vous lancez le module complémentaire de validation croisée des séries chronologiques, vous obtenez un rapport standard. Un cadre pour vos contrôles de validation croisée des séries chronologiques est également ajouté au bas du rapport. |
| |
Ici, vous devez donc spécifier le nombre de lignes initiales, qui correspond au nombre de lignes de votre premier ensemble d'entraînement, la longueur de prévision qui vous intéresse et la période si vous souhaitez ajuster les modèles saisonniers. |
| |
Je vais donc conserver la valeur par défaut de 17 lignes dans l'ensemble d'entraînement, ce qui me permettra d'avoir six groupes de validation croisée de séries chronologiques différents. |
| |
J'utiliserai une durée de prévision de six semaines, car je souhaite prévoir le box-office pour les six prochaines semaines. Je conserverai ici la période manquante, car je n'utiliserai pas de modèles saisonniers pour ces données particulières. |
| |
Alors, explorons le premier groupe de validation croisée de séries chronologiques. |
| |
Vous pouvez voir que j’ai 17 lignes dans mon premier ensemble d’entraînement et les six lignes suivantes sont mon ensemble de test. |
| |
Mon module complémentaire va adapter les modèles ARIMA que je lui ai demandés à l'ensemble d'entraînement. Il va également adapter les modèles de lissage d'espace d'état recommandés à l'ensemble d'entraînement. |
| |
Il va sélectionner le meilleur modèle de chaque classe par AIC et prendre mes prévisions de modèles sélectionnés dans l'ensemble de test et évaluer l'erreur de prévision. |
| |
Le deuxième groupe de validation croisée de séries chronologiques va étendre l'ensemble d'entraînement d'une ligne, donc maintenant mon ensemble d'entraînement est |
| |
Composé des lignes 1 à 18, les six lignes suivantes constituent mon ensemble de test. Je répète ensuite le processus effectué pour le premier groupe de validation croisée des séries chronologiques. |
| |
J'adapte les modèles ARIMA demandés par l'utilisateur et les modèles de lissage d'espace d'état recommandés. Je sélectionne le modèle le plus adapté à la prévision AIC dans l'ensemble de test et enregistre l'erreur de prévision. |
| |
Je continue ainsi jusqu'à avoir utilisé toutes mes données. Ainsi, le groupe final de validation croisée de séries chronologiques pour cet exemple utiliserait les lignes 1 à 22 pour l'ensemble d'entraînement, puis le reste des données, les six dernières lignes, comme ensemble de test. |
| |
J'ai donc mentionné que je stockais l'erreur de prévision pour chaque groupe de validation croisée de séries chronologiques. |
| |
Ce que fait le module complémentaire, c'est qu'il rapporte le RMSE global, le MAE et le MAPE pour les deux classes de modèles et il vous donne un tracé du RMSE pour chaque groupe de validation croisée de séries chronologiques. |
| |
Et vous pouvez utiliser ce tableau et ce graphique pour vous aider à décider si vous devez adapter chaque modèle à la prévision ou au modèle de lissage de l'espace d'état. |
| |
Jetons un œil au complément en action avec ces données. |
| |
Je vais donc ouvrir mes données de box-office que j'ai obtenues auprès de Box Office Mojo et je vais simplement exécuter ce script qui lance simplement la plate-forme Time Series pour ces données, car je veux juste jeter un œil aux séries chronologiques. |
| |
Je prévois le chiffre d'affaires moyen au box-office par semaine et je peux voir qu'au fil des semaines, la variance et le chiffre d'affaires moyen augmentent et j'aimerais donc effectuer une transformation logarithmique. |
| |
au brut moyen. Je peux le faire en créant une colonne de formule logarithmique pour le brut moyen, mais |
| |
Ce n'est pas nécessaire : le module complémentaire permet d'effectuer une transformation Box Cox, tout comme la plateforme Time Series standard. Je lance donc mon module complémentaire, je clique sur l'avertissement et je souhaite prévoir le chiffre d'affaires moyen au box-office par semaine pour les six prochaines semaines. |
| |
et je veux prendre une transformation logarithmique vers le brut moyen, donc j'utiliserai une transformation Box Cox avec Lambda égal à zéro. |
| |
Et je vais cliquer sur OK. |
| |
Cela lance le rapport de séries chronologiques standard pour la réponse transformée Box Cox. Je peux insérer tous les modèles de séries chronologiques souhaités, disponibles dans JMP, grâce à ce menu triangulaire rouge. |
| |
Mais au lieu de cela, je vais descendre au bas du rapport et utiliser la validation croisée des séries chronologiques pour obtenir une recommandation quant à savoir si je dois ajuster un modèle ARIMA ou un modèle de lissage de l'espace d'état. |
| |
Je conserverai les lignes initiales à 17, car cela me permettra d'obtenir six groupes de validation croisée de séries chronologiques que je viens de montrer dans l'exemple précédent. |
| |
Je vais garder une durée de prévision de six parce que je veux prévoir les six prochaines semaines au box-office et je vais garder la période égale à manquante pour cet exemple. |
| |
Je clique donc sur « Exécuter » et je dois maintenant indiquer quels modèles ARIMA je souhaite intégrer à chaque groupe de validation croisée de séries temporelles. Je décide donc d'utiliser une différenciation non saisonnière de 1, mais je laisserai les ordres autorégressifs et de moyenne mobile à zéro ou à un. |
| |
Ainsi, lorsque je clique sur « Estimer », ce qui va se passer, c'est que chaque groupe de validation croisée de séries chronologiques va s'adapter à ces quatre modèles ARIMA et aux modèles de lissage d'espace d'état recommandés. |
| |
Je clique donc sur « Estimer ». Le module complémentaire étend cet ensemble de données à mes six groupes de validation croisée de séries chronologiques, en adaptant les modèles demandés à l'ensemble d'entraînement, en prévoyant dans l'ensemble de test et en stockant l'erreur de prévision. |
| |
Je vais donc faire défiler la page vers le bas pour examiner les résultats. Vous pouvez constater, d'après le tableau, que globalement, les modèles ARIMA ont produit des RMSE, MAE et MAPE inférieurs à ceux des modèles de lissage d'espace d'état. Et, si je regarde le graphique, |
| |
Je peux voir que les modèles ARIMA ont produit un RMSE inférieur pour chaque groupe de validation croisée de séries chronologiques. |
| |
Ce module complémentaire recommande donc d'utiliser un modèle ARIMA pour créer des prévisions pour ces données, plutôt qu'un modèle de lissage d'espace d'état. Je peux donc accéder au menu en forme de triangle rouge et ajuster un modèle ARIMA avec l'option Groupe de modèles ARIMA. |
| |
Voyons un autre exemple du module complémentaire, et pour réaliser cet exemple suivant, je vais utiliser un sous-ensemble des données d'échantillon trimestrielles MC3. |
| |
L'échantillon de données trimestriel MC3 contient des données pour un peu plus de 100 séries chronologiques différentes issues du concours de modélisation MC3. Ces séries sont toutes trimestrielles. |
| |
Je trouve cet ensemble de données intéressant, car il contient de nombreuses séries chronologiques différentes. Cependant, pour des raisons de temps, j'ai simplement sélectionné un sous-ensemble aléatoire de trois séries du tableau. |
| |
Je vais donc lancer mon add-in. |
| |
Configurez le lanceur : ma colonne Y correspond à ma série chronologique et « heure » à l'identifiant de l'heure. Comme j'ai des données pour plusieurs séries, je dois utiliser l'option « Par » pour la colonne « série ». Imaginons que je souhaite établir des prévisions pour les deux prochaines années. Je saisis donc huit périodes de prévision et clique sur « OK ». |
| |
Cela a fait apparaître le rapport de séries chronologiques pour chaque série de mon tableau, comme prévu. J'ai également des contrôles de validation croisée des séries chronologiques pour chaque série du tableau. |
| |
Je pourrais donc utiliser la validation croisée des séries chronologiques pour chacune de ces séries afin d'obtenir une recommandation sur l'utilisation d'un modèle ARIMA ou d'un modèle de lissage d'espace d'état pour la prévision. |
| |
Pour gagner du temps, je ne le ferai que pour la première série. Je vais utiliser une période de quatre ans, car je souhaite intégrer des modèles saisonniers pour cette série. Je clique sur « Exécuter ». |
| |
J'utiliserai donc un ordre de différenciation non saisonnier de un, mais tous les autres ordres de moyenne mobile autorégressive et l'ordre de différenciation saisonnier seront compris entre zéro et un. |
| |
Définissez la période d'observation sur quatre, car il s'agit de données trimestrielles. Ainsi, lorsque je clique sur « Estimer », les données s'ajustent à ces 32 modèles ARIMA. |
| |
dans chacun des groupes de validation croisée de séries chronologiques. Le module complémentaire va donc là où la série est N 691. |
| |
Il étend son application à six groupes de validation croisée de séries chronologiques différents. Il adapte les modèles ARIMA demandés à l'ensemble d'entraînement. Il applique également les modèles de lissage d'espace d'état recommandés à l'ensemble d'entraînement. |
| |
Sélection du meilleur modèle par AIC. Prévision dans l'ensemble de test et stockage de l'erreur de prévision. |
| |
Je vais lui donner une seconde pour finir. |
| |
On y va. |
| |
Je peux faire défiler les résultats et les visualiser. Comme vous pouvez le constater dans le tableau, les modèles ARIMA ont produit des RMSE, MAE et MAPE inférieurs à ceux des modèles de lissage d'espace d'état. |
| |
Et à partir du graphique, je peux voir que dans tous les groupes de validation croisée de séries chronologiques, sauf le dernier, les modèles ARIMA avaient un RMSE inférieur |
| |
qu'un modèle de lissage d'espace d'état, et c'était à peu près la même chose dans le dernier groupe. |
| |
Il s'agit donc encore une fois d'une validation croisée de séries chronologiques et je recommanderais d'utiliser un modèle ARIMA pour créer des prévisions pour la série N 691. Et vous pouvez accéder aux autres séries différentes et répéter le processus et pour celles-ci, il pourrait recommander un modèle de lissage d'espace d'état. |
| |
Je terminerai donc la démonstration en montrant une autre fonctionnalité du module complémentaire qui n'est en fait pas liée à la validation croisée des séries chronologiques. |
| |
Je vous ai également donné la possibilité d'utiliser un ensemble de tests pour évaluer les prévisions avec le module complémentaire. Je vais vous montrer cela en utilisant à nouveau les données d'exemple des expéditions d'acier. Je vais donc lancer mon module complémentaire. Je souhaite prévoir les expéditions d'acier par date. |
| |
Disons que je veux prévoir les deux prochaines années, donc prenez 24 périodes de prévision et, comme je l'ai mentionné précédemment, si votre série est suffisamment longue, pour un ensemble de retenue, vous pouvez utiliser l'option de prévision sur retenue |
| |
Pour sélectionner des modèles. Comme je fais cela, je n'ai pas vraiment besoin de valider les séries chronologiques. Je peux donc utiliser l'option d'apprentissage de l'ensemble de tests. |
| |
disposer d'un ensemble de tests indépendant pour évaluer le modèle que je choisis. Je déciderai que la longueur de mon ensemble de tests sera de 12. |
| |
Cela signifie que les 12 dernières lignes de mes données seront prises en compte et exclues de mon analyse, afin que je puisse les utiliser pour évaluer les performances de mes prévisions. Je clique donc sur « OK ». |
| |
Vous pouvez constater que j'ai ajouté une autre colonne au tableau. Il s'agit simplement d'une colonne indicatrice pour l'ensemble de test, dont la valeur est égale à 1 si la ligne est incluse dans l'ensemble de test et à 0 dans le cas contraire. |
| |
Ces modèles de séries chronologiques ne seront ajustés qu'aux lignes où l'ensemble de test est nul. Cela me permet de préserver l'indépendance de l'ensemble de test. |
| |
Ajustons donc quelques modèles ARIMA à ces données. J'utilise les mêmes contrôles qu'au début de cet exposé, avec un ordre de différenciation saisonnier et non saisonnier de 1, mais chaque autre ordre étant compris entre 0 et 1. |
| |
Je clique donc sur « Estimer » pour exécuter ces 16 modèles ARIMA saisonniers différents et j'adapterai également les modèles de lissage de l'espace des états recommandés. |
| |
Je vais donc faire défiler la fenêtre de comparaison des modèles et je peux voir que le modèle qui minimise l'erreur quadratique moyenne dans l'ensemble de retenue était le modèle de lissage de l'espace d'état avec erreur additive, aucune tendance et saisonnalité additive. |
| |
Supposons que je m'intéresse également aux performances du modèle ARIMA le plus performant dans l'ensemble de tests. Je peux également le sélectionner. |
| |
Et je supprimerai les autres modèles que je ne considère plus pour les prévisions. |
| |
Donc, encore une fois, j'ai utilisé l'option de prévision sur retenue, donc je choisirais ce modèle de lissage d'espace d'état à utiliser pour la prévision, mais je suis juste curieux de savoir comment le modèle ARIMA se comporterait dans l'ensemble de test. |
| |
Je peux donc faire défiler la page jusqu'à la boîte d'analyse de l'ensemble de tests. Comme j'ai utilisé l'option de prévision avec retenue, cela va réajuster les deux modèles sélectionnés aux données combinées d'entraînement et de retenue pour obtenir les paramètres mis à jour. |
| |
Ensuite, il va prévoir dans l'ensemble de tests et évaluer comment la prévision s'est déroulée par rapport aux données réelles de l'ensemble de tests. |
| |
Je clique donc sur Exécuter pour effectuer l'analyse. J'obtiens un tableau des RMSE, MAE et MAPE de l'ensemble de tests, ainsi qu'un graphique comparant l'ensemble de tests aux prévisions. |
| |
Je constate que le modèle de lissage de l'espace d'état est non seulement plus performant dans l'ensemble de retenue, mais également dans l'ensemble de test. Cette option d'analyse de l'ensemble de test vous permet donc d'évaluer l'ajustement de votre modèle. |
| |
En résumé, le module complémentaire vous permet d'effectuer une validation croisée de séries chronologiques. |
| |
Je pense que ce module complémentaire pourrait vous être utile si vous disposez de données de séries chronologiques qui ne sont pas suffisamment longues pour utiliser l'option de prévision sur retenue qui se trouve dans JMP, mais que vous souhaitez toujours envisager d'utiliser différentes classes de modèles. |
| |
Le module complémentaire vous permet également d'utiliser un ensemble de tests pour évaluer les prévisions. À noter : comme pour toutes les mesures de sélection de modèles pour les données de séries chronologiques, le module complémentaire ne garantit pas des prévisions plus précises. |
| |
Merci beaucoup pour votre temps. J'espère que vous testerez le module complémentaire et que vous apprécierez le reste de Discovery. Merci beaucoup. |