Conférencier
|
Transcription
|
| |
Bonjour, merci d'avoir pris le temps de regarder ceci. Je m'appelle Jacob Rhyne. Je suis testeur de logiciels pour JMP. Aujourd'hui, je vais partager avec vous un complément que j'ai écrit pour vous aider à choisir entre un modèle ARIMA ou un modèle State Space Smoothing dans la plateforme Time Series de JMP. |
| |
Je commence donc par juste un bref aperçu de l'adaptation des modèles ARIMA et State Space Smoothing dans la plate-forme Time Series. |
| |
Je vais présenter la nécessité d'un complément pour aider à choisir entre ces deux classes de modèles. Et donnez un aperçu de la validation croisée des séries chronologiques, qui est l'outil principal du complément. Je terminerai ensuite par la démo du complément utilisant JMP 16.1. |
| |
La plateforme Time Series de JMP permet aux utilisateurs d'adapter de nombreux modèles de séries chronologiques différents. Cette présentation se concentrera sur les modèles ARIMA et State Space Smoothing et je montrerai comment adapter ces deux modèles à l'aide de ces exemples de données Steel Shipments. |
| |
L’échantillon de données sur les expéditions d’acier contient les totaux mensuels des expéditions d’acier aux États-Unis de 1984 à 1991. Et je vais explorer cela avec la plateforme Time Series dans le menu Specialized Modeling. |
| |
La colonne Expéditions d'acier est ma série chronologique. La colonne de date est mon Time ID. Supposons que je souhaite prévoir les livraisons d’acier pour les deux prochaines années. Donc, puisqu'il s'agit de données mensuelles, j'ai besoin de 24 périodes de prévision. Et je clique sur OK pour lancer mon rapport de série chronologique. |
| |
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. |
| |
J'aimerais adapter un modèle ARIMA à cette série, et lorsque j'adapte un modèle ARIMA, je dois décider si je dois effectuer tout type de transformation ou de différenciation. Je vais donc utiliser l'option Différence dans le menu Série temporelle pour explorer cela. |
| |
Je vais commencer par une différenciation non saisonnière de premier ordre, puis cliquer sur Estimation. |
| |
Maintenant, j'ai un tracé de la série des différences. Cela s'annonce mieux en termes de plus stationnaire, mais j'ai encore une certaine saisonnalité ici. Et je peux le dire 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 12. Cela suggère donc que je devrais adapter un modèle ARIMA saisonnier avec des différences non saisonnières et saisonnières. |
| |
Je vais fermer ce rapport de différence juste pour garder mon rapport propre. Et je vais explorer l'adaptation de différents modèles ARIMA, avec l'option de groupe de modèles ARIMA. |
| |
J'ai donc décidé d'adapter un modèle ARIMA saisonnier avec un ordre de différenciation non saisonnier de un et un ordre de différenciation saisonnière de un. Mais, pour les ordres autorégressifs et à moyenne mobile, je vais les laisser être zéro ou un. |
| |
Ainsi, lorsque je clique sur l'estimation, JMP va adapter ces 16 modèles ARIMA saisonniers différents. Je peux faire défiler jusqu'à la fenêtre de comparaison des modèles et visualiser ces modèles. Les modèles sont triés par ordre décroissant par AIC, je vais donc sélectionner le modèle qui minimise l'AIC. |
| |
Je peux faire défiler vers le bas pour jeter un œil au modèle et au rapport. Je peux voir qu'il est stable et inversible. Je pourrais consulter le tableau des estimations des paramètres. Jetez un œil aux prévisions et aux intervalles de prévision. |
| |
Supposons que j'ai examiné tous ces diagnostics et que je sois satisfait de ce modèle saisonnier ARIMA en tant que candidat à prendre en compte pour les prévisions. |
| |
Je vais donc supprimer ces autres modèles ARIMA saisonniers du rapport. |
| |
Et disons, 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 de l'espace d'état recommandés pour cette série chronologique. |
| |
Je clique donc sur OK pour exécuter. Si je fais défiler jusqu'au rapport de comparaison de modèles, je peux voir que JMP s'adapte à tous les modèles de lissage de l'espace d'état recommandés. Ils sont à nouveau triés par ordre décroissant par AIC. |
| |
Ainsi, le modèle qui a minimisé l’AIC était un modèle d’erreur multiplicative sans tendance ni saisonnalité multiplicative. Je vais donc sélectionner ce modèle |
| |
dans le plan de comparaison des modèles et faites défiler vers le bas pour jeter un œil à l’ajustement du modèle. |
| |
Je peux donc parcourir le résumé du modèle, je peux consulter le tableau des estimations des paramètres. |
| |
Vous pouvez afficher les prévisions et les intervalles de prévision. Disons que j'ai examiné tous ces diagnostics et que je suis satisfait de ce modèle de lissage de l'espace d'état en tant que candidat à prendre en compte pour les prévisions. |
| |
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 State Space Smoothing que j'envisage pour la prévision. |
| |
Vous pouvez voir que j'ai cet avertissement de lecture de texte 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 ce que cela signifie, c'est que je ne peux pas simplement faire défiler 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 qu'est-ce que je fais? Eh bien, il existe déjà une option disponible dans JMP. Si vos données sont suffisamment longues. |
| |
Pour définir une retenue, vous pouvez utiliser l'option de prévision sur retenue lors du lancement de la plateforme Time Series. |
| |
Et cela permettrait d'adapter tous les modèles de séries chronologiques que vous avez utilisés à l'ensemble de formation. Et, dans la fenêtre de comparaison des modèles, au lieu de trier les modèles par AIC, |
| |
il triera les modèles en fonction de l'erreur quadratique moyenne ou du RMSE de l'ensemble de retenues et vous choisirez le modèle qui minimise le RMSE de l'ensemble de retenues. |
| |
Toutefois, si vos données ne sont pas suffisamment longues pour utiliser un ensemble de retenues, 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éé le complément. Ainsi, le complément vous aide à choisir en utilisant quelque chose appelé validation croisée de séries chronologiques. |
| |
La validation croisée des séries chronologiques décompose essentiellement votre série chronologique en plusieurs ensembles de formation et de tests où tout groupe successif développe l'ensemble de formation d'une ligne. |
| |
Je vais donner momentanément un exemple détaillé de validation croisée de séries chronologiques, mais je tiens à souligner que je n'ai pas inventé cette méthode. Si vous souhaitez en savoir plus, |
| |
après avoir visionné cet exposé, c'est une ressource que je recommanderais en matière de principes et de pratiques 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. |
| |
Et j'aimerais prévoir les six prochaines semaines au box-office en utilisant soit un modèle ARIMA, soit un modèle State Space Smoothing. Et, pour décider quelle prévision utiliser, j'aimerais utiliser la validation croisée de séries chronologiques. |
| |
Comme je l'ai mentionné, la validation croisée des séries chronologiques divisera vos données en groupes d'ensembles de formation et de tests où vous développerez l'ensemble de formation d'une ligne et de chaque groupe successif. |
| |
Je dois donc décider du nombre de lignes que je veux dans mon ensemble de formation initiale. |
| |
Par défaut, mon complément vous permettra d'avoir six groupes de validation croisée de séries chronologiques. Cela vous donnera donc 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 de formation pour cet exemple. |
| |
Lorsque vous lancez le complément de validation croisée des séries chronologiques, vous obtiendrez un rapport de séries chronologiques standard. Mais il ajoutera également une zone de présentation pour vos contrôles de validation croisée de séries chronologiques au bas du rapport. |
| |
Ici, vous devez donc spécifier le nombre de lignes initiales, c'est-à-dire le nombre de lignes de votre premier ensemble d'entraînement, la durée de prévision qui vous intéresse et la période si vous souhaitez adapter des modèles saisonniers. |
| |
Je vais donc conserver la valeur par défaut de 17 lignes dans l'ensemble de formation, ce qui me permettra d'avoir six groupes de validation croisée de séries chronologiques différents. |
| |
J'aurai une durée prévisionnelle de six car je veux prévoir les six prochaines semaines au box-office. Et ici, je vais garder la période égale à manquante car je ne vais pas ajuster les modèles saisonniers pour ces données particulières. |
| |
Explorons donc 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 que les six lignes suivantes sont mon ensemble de test. |
| |
Ce que mon complément va faire, c'est qu'il s'adaptera à tous les modèles ARIMA que je lui ai demandés à l'ensemble de formation. Et cela va adapter les modèles de lissage de l'espace d'état recommandés à l'ensemble de formation. |
| |
Il va sélectionner le meilleur modèle de chaque classe par AIC et intégrer 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 de formation d'une ligne, donc maintenant mon ensemble de formation est |
| |
composé des lignes 1 à 18 et les six lignes suivantes constituent mon ensemble de test. Et puis je répète le processus que j'ai effectué dans le premier groupe de validation croisée de séries chronologiques. |
| |
J'adapte tous les modèles ARIMA demandés par l'utilisateur et j'adapte les modèles de lissage de l'espace d'état recommandés. Sélectionnez le meilleur modèle par la prévision AIC dans l'ensemble de test et stockez l'erreur de prévision. |
| |
Et je continue à faire cela jusqu'à ce que j'aie utilisé toutes mes données. Ainsi, le groupe de validation croisée de séries chronologiques final pour cet exemple utiliserait les lignes 1 à 22 pour l'ensemble de formation, puis utiliserait 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. |
| |
Le complément fait état du RMSE, du MAE et du MAPE globaux pour les deux classes de modèles et 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 de prévision ou de prévision du modèle de lissage de l'espace d'état. |
| |
Jetons un coup d'œil au complément en action avec ces données. |
| |
Je vais donc ouvrir mes données au box-office que j'ai obtenues du box-office mojo et je vais juste exécuter ce script qui lance simplement la plate-forme Time Series pour ces données, parce que je veux juste jeter un œil aux séries chronologiques. |
| |
Je fais des prévisions, le brut moyen au box-office par semaine et je peux voir qu'au fil des semaines, la variance et le brut moyen augmentent et j'aimerais donc prendre une transformation de journal. |
| |
à la moyenne brute. Je peux le faire en créant une colonne de formule logarithmique pour le brut moyen, mais |
| |
ce n'est pas nécessaire, le complément vous donne la possibilité d'effectuer une transformation Box Cox, tout comme la plateforme Time Series standard. Je vais donc lancer mon complément, cliquer après la clause de non-responsabilité. Je souhaite prévoir la moyenne de fermeture du box-office par semaine pour les six prochaines semaines. |
| |
et je veux prendre une transformation logarithmique en moyenne brute, je vais donc utiliser une transformation Box Cox avec Lambda égal à zéro. |
| |
Et je clique sur OK. |
| |
Cela lance donc le rapport de série chronologique standard pour la réponse transformée de Box Cox. Je pouvais adapter n'importe quel type de modèles de séries chronologiques, je voulais qu'ils soient disponibles dans JMP avec ce menu triangulaire rouge. |
| |
Mais au lieu de cela, je vais aller au bas du rapport et utiliser la validation croisée des séries chronologiques pour obtenir une recommandation quant à savoir si je dois m'adapter à un modèle ARIMA ou à un modèle de lissage de l'espace d'état. |
| |
Je garderai les lignes initiales à 17, car cela me donnera six groupes de validation croisée de séries chronologiques que je viens de montrer dans l'exemple précédent. |
| |
Je garderai une durée de prévision de six car je souhaite prévoir les six prochaines semaines au box-office et je vais garder la période égale à manquante pour cet exemple. |
| |
Je vais donc cliquer sur Exécuter et maintenant je dois dire quels modèles ARIMA j'aimerais intégrer dans chaque groupe de validation croisée de séries chronologiques. Donc, je décide que j'aimerais utiliser la différenciation non saisonnière de un, mais je laisserai les ordres autorégressifs et à moyenne mobile être nuls 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 s'adaptera à ces quatre modèles ARIMA et aux modèles de lissage de l'espace d'état recommandés. |
| |
Je clique donc sur Estimer, le complément étend cet ensemble de données à mes six groupes de validation croisée de séries chronologiques en ajustant les modèles demandés à l'ensemble de formation prévoyant dans l'ensemble de test et en stockant l'erreur de prévision. |
| |
Je vais donc faire défiler vers le bas et voir les résultats. Vous pouvez voir dans le tableau que, dans l'ensemble, les modèles ARIMA ont produit des RMSE, MAE et MAPE inférieurs à ceux des modèles de lissage de l'espace d'état. Et si je regarde l'intrigue |
| |
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 complément recommande donc d’utiliser un modèle ARIMA pour créer des prévisions pour ces données, au lieu d’un modèle de lissage de l’espace d’état. Je peux donc accéder au menu du triangle rouge et adapter un modèle ARIMA avec l'option de groupe de modèles ARIMA. |
| |
Voyons un autre exemple du complément, et pour faire cet exemple suivant, je vais utiliser un sous-ensemble des exemples de données MC3 Quarterly. |
| |
Les exemples de données MC3 Quarterly contiennent des données pour un peu plus de 100 séries chronologiques différentes du concours de modélisation MC3. Les séries sont toutes trimestrielles. |
| |
Je pense qu'il s'agit d'un ensemble de données intéressant simplement parce qu'il contient de nombreuses séries chronologiques différentes. Cependant, juste pour des raisons de temps, dans cet exposé, j'ai simplement pris un sous-ensemble aléatoire de trois séries de la table. |
| |
Je vais donc lancer mon complément. |
| |
Et configurez le lanceur, ma colonne Y est ma série chronologique, l'heure est l'ID temporel. Et comme j'ai des données pour plusieurs séries, je dois utiliser l'option by pour la colonne série. Supposons à nouveau que je souhaite prévoir les deux prochaines années. Je vais donc saisir huit périodes de prévision et cliquer sur OK. |
| |
Cela a fait apparaître le rapport de série chronologique pour chaque série différente de mon tableau, comme vous vous en doutez. Et j'ai également des contrôles de validation croisée de séries chronologiques pour chaque série du tableau. |
| |
Je pourrais donc utiliser la validation croisée de 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 de l'espace d'état pour les prévisions. |
| |
Pour gagner du temps, je ne le ferai que pour la première série. Je vais utiliser une période de quatre car je souhaite adapter des modèles saisonniers à cette série. Je clique sur Exécuter. |
| |
J'utiliserai donc un ordre de différence non saisonnier de un, mais tous les autres ordres de moyenne mobile autorégressive et l'ordre de différence saisonnier que je laisserai aller de zéro ou un. |
| |
Fixez la période d'observation à quatre car, encore une fois, il s'agit de données trimestrielles. Donc, ce qui va se passer lorsque je clique sur Estimation, c'est que cela va s'adapter à ces 32 modèles ARIMA. |
| |
dans chacun des groupes de validation croisée de séries chronologiques. Le complément va donc là où la série est N 691. |
| |
Il l'étend à six groupes de validation croisée de séries chronologiques différents. Il s'agit d'adapter les modèles ARIMA demandés à l'ensemble de formation. Les modèles de lissage de l’espace d’état recommandés pour l’ensemble de formation. |
| |
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 terminer. |
| |
On y va. |
| |
Et je peux faire défiler et voir les résultats. Ainsi, comme vous pouvez le voir dans le tableau, les modèles ARIMA ont produit des RMSE, MAE et MAPE inférieurs à ceux des modèles de lissage de l'espace d'état. |
| |
Et d'après le 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 de l'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. Pour celles-ci, il peut recommander un modèle de lissage de l'espace d'état. |
| |
Je terminerai donc la démo en montrant une autre fonctionnalité du complément 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 complément, et je vais le montrer à nouveau en utilisant les exemples de données Steel Shipments. Je vais donc lancer mon complément. D'accord, je veux prévoir les expéditions d'acier par date. |
| |
Disons que je souhaite prévoir les deux prochaines années, alors prenez 24 périodes de prévision et, comme je l'ai déjà mentionné, si votre série est suffisamment longue, pour un ensemble de retenues, vous pouvez utiliser l'option de prévision sur retenue. |
| |
pour sélectionner des modèles. Donc, puisque je fais cela, je n'ai pas vraiment besoin d'utiliser la validation croisée de séries chronologiques. Je peux donc utiliser l'option d'ensemble de tests de formation |
| |
avoir un ensemble de tests indépendant pour évaluer le modèle que je choisis. Je déciderai que je veux que la durée de ma série de tests soit de 12. |
| |
Et cela signifie que les 12 dernières lignes de mes données seront complètement exclues de mon analyse, afin que je puisse les utiliser pour évaluer les performances de mes prévisions. Je vais donc cliquer sur OK. |
| |
Et vous pouvez voir que ce qui s'est passé, c'est que j'ai ajouté une autre colonne au tableau. Il s'agit simplement d'une colonne indicatrice pour l'ensemble de test où elle est égale à un si la ligne est incluse dans l'ensemble de test et à zéro si elle ne l'est pas. |
| |
Et cela adaptera uniquement ces modèles de séries chronologiques aux lignes où l'ensemble de test est égal à zéro. Cela me permet de préserver l'indépendance de l'ensemble de test. |
| |
Ajustons donc certains 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 un, mais je laisse tous les autres ordres aller de zéro à un. |
| |
Je clique donc sur Estimation pour exécuter ces 16 modèles ARIMA saisonniers différents et j'adapterai également les modèles de lissage spatial des états recommandés. |
| |
Donc, je vais faire défiler jusqu'à 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 retenues était le modèle de lissage de l'espace d'état avec une erreur additive, aucune tendance et une saisonnalité additive. |
| |
Disons que je suis également simplement intéressé par la façon dont le modèle ARIMA le plus performant fonctionnerait dans l'ensemble de test. Je peux également le sélectionner. |
| |
Et je supprimerai les autres modèles que je n'envisage plus pour la prévision. |
| |
Donc, encore une fois, j'ai utilisé l'option de prévision sur retenue, je choisirais donc ce modèle de lissage de l'espace d'état à utiliser pour la prévision, mais je suis simplement curieux de savoir comment le modèle ARIMA fonctionnerait dans l'ensemble de test. |
| |
Je peux donc faire défiler jusqu'à la boîte d'analyse de mon ensemble de tests. Et ce que cela va faire, puisque j'ai utilisé l'option de prévision sur la retenue, c'est que cela va réadapter ces 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 fera des prévisions dans l'ensemble de test et évaluera les performances de la prévision par rapport aux données réelles de l'ensemble de test. |
| |
Je vais donc cliquer sur Exécuter pour effectuer cette analyse. Et je peux voir que j'ai un tableau de l'ensemble de test RMSE, MAE et MAPE, ainsi qu'un tracé de l'ensemble de test par rapport aux prévisions. |
| |
Je peux voir que non seulement le modèle de lissage de l'espace d'état a mieux fonctionné dans l'ensemble de retenue, mais il a également mieux fonctionné dans l'ensemble de test. Ainsi, cette option d'analyse d'ensemble de tests vous donne simplement un outil pour évaluer les performances de l'ajustement de votre modèle. |
| |
Donc, juste pour résumer. Le complément vous permet d'effectuer une validation croisée de séries chronologiques. |
| |
Je pense que ce complément pourrait vous être utile si vous disposez de données de série chronologique qui ne sont pas assez longues pour utiliser l'option de prévision de retenue qui se trouve dans JMP, mais que vous souhaitez tout de même envisager d'utiliser différentes classes de modèles. |
| |
Le complément vous donne également la possibilité d’utiliser un ensemble de tests pour évaluer les prévisions. Et, à titre de mise en garde, comme pour toutes les mesures de sélection de modèles pour les données de séries chronologiques, le complément ne garantit pas des prévisions plus précises. |
| |
Merci beaucoup pour votre temps. J'espère que vous essayerez le complément et j'espère que vous apprécierez le reste de Discovery. Merci beaucoup. |