Contexte
Il y a quelques années, les utilisateurs ont demandé une interface plus moderne dans MS Excel pour le programme populaire X12-ARIMA et sa méthodologie de correction des variations saisonnières (X11). Le US Census Bureau a développé et maintient le programme X12-ARIMA (X12A), qui est donc disponible gratuitement, et presque tout le monde dans le secteur accepte et considère le programme X12A et sa méthodologie avec beaucoup d'estime.
Nous avons alors choisi d'intégrer NumXL à X12ARIMA, mais en tant que programme externe.
Que signifie l'intégration avec des programmes externes ?
En bref, NumXL met en œuvre plusieurs fonctions Excel et offre une interface utilisateur pour accepter les entrées et les données des utilisateurs. En coulisses, NumXL transfère les données et les entrées de l'utilisateur au programme X12A pour qu'il effectue le calcul et, une fois terminé, NumXL renvoie les résultats à l'utilisateur dans Excel.
Pourquoi s'en préoccuper ?
Nous supposons que vous utilisez déjà X12A/X11, et nous souhaitons partager quelques astuces et solutions de contournement que nous avons composées pour surmonter certaines des limitations de X12A afin d'optimiser le temps d'exécution et la réactivité de votre modèle.
Que vous ayez un seul modèle X12ARIMA ou des centaines de modèles, votre classeur doit pouvoir les gérer.
Avertissement
À partir de la version 1.67 (MARTHA), NumXL prend en charge le dernier logiciel de désaisonnalisation X13ARIMA-SEATS du recensement américain. L'U.S. Census ne maintient pas le logiciel de désaisonnalisation X12ARIMA, et NumXL inclut ce modèle pour aider ses clients à migrer les modèles X12 existants vers les équivalents X13.
Problème 1 : Limitation de la longueur des données d'entrée par X12A
L'outil X12 ARIMA du recensement américain accepte des séries temporelles d'une longueur de 12 (pour les données mensuelles) et de 4 pour les données trimestrielles, jusqu'à 600 observations.
Les fonctions NumXL acceptent une série temporelle de n'importe quelle longueur, mais n'utilisent que les 600 observations les plus récentes (non manquantes) pour les besoins de X12A et décalent la date de début en conséquence.
En tant qu'utilisateur, vous n'avez rien à changer, vous transmettez les données comme vous le faites habituellement, et NumXL gère cette contrainte en arrière-plan.
Problème 2 : Ajouter une nouvelle observation à la série de données
Au fil du temps, de nouvelles observations sont réalisées et ajoutées à l'ensemble des données d'entrée. Nous devons affiner la définition de X12ARIMA pour inclure ces observations et réexécuter le modèle pour mettre à jour la correction des variations saisonnières et les prévisions.
Le scénario ci-dessus peut sembler intuitif, mais gardez à l'esprit que vous devrez modifier la plage de cellules d'entrée dans la formule de chaque modèle X12ARIMA de votre classeur. Ce n'est pas un problème pour une série, mais qu'en est-il pour des dizaines ou des centaines de séries temporelles et de modèles correspondants ? Vous devrez répéter le même exercice périodiquement, et nous avions donc besoin d'une meilleure approche.
La solution est la même que celle que nous avons illustrée dans l'astuce : “Comment configurer l'analyse de régression pour qu'elle soit mise à jour automatiquement ?.” Nous ajoutons un "#N/A" après la fin de vos données d'entrée pour les réserver. Ensuite, incluez ces cellules dans la définition du modèle X12ARIMA.
Dans un premier temps, NumXL ignore tous les "#N/A" survenant après la dernière observation avec une valeur non manquante. Par la suite, lorsqu'un nouveau point de données est réalisé, nous remplaçons le #N/A par un nombre réel, augmentant ainsi l'ensemble des données d'entrée.
Cette technique permet d'ajouter une nouvelle observation à l'ensemble des données d'entrée sans qu'il soit nécessaire de modifier la formule de définition. Vous devrez toujours recalculer pour mettre à jour les résultats du modèle.
Problème 3 : Le temps consacré à la construction des modèles est trop long !
Le X12A effectue un ensemble complet de sélection et d'étalonnage de modèles, de sorte que si votre feuille de calcul comporte plus de quelques modèles X12ARIMA, le calcul de l'ensemble de la feuille prend plus de quelques secondes.
La solution à ce problème se compose de deux parties :
- Désactivez le calcul automatique et réglez-le sur Manuel.
En réglant le calcul sur Manuel, Excel n'essaiera pas de forcer un calcul lorsqu'une cellule est touchée ou que sa valeur change. Au lieu de cela, vous devrez lancer le calcul en appuyant sur F9 ou SHIFT+F9.
Entre-temps, vous pouvez apporter de nombreuses modifications, tout en conservant la réactivité d'Excel. - Désactiver le nettoyage du disque X12ARIMA et laisser les fichiers intermédiaires X12ARIMA générés sur le disque.
Allez dans le répertoire d'installation de NumXL (c.-à-d. C:ousers\<username>\AppData\Roaming\NumXL), et ouvrez le fichier NumXL.conf avec le bloc-notes ou votre éditeur de texte favori.
Localisez l'entrée "CLEANUP_EXIT" dans la section X12ARIMA.
Assurez-vous que la valeur correspondante est fixée à "false".
Note : remplacez le <nom d'utilisateur> ; par votre véritable nom d'utilisateur Windows.
Désormais, lorsque vous ouvrirez le classeur, NumXL chargera (en fonction des besoins) les modèles stockés et leurs résultats, sans qu'il soit nécessaire d'exécuter le programme X12A.
Problème 4 : Mon flux de données touche de nombreuses cellules.
Dans de nombreux environnements, les programmes d'alimentation en données génèrent et mettent à jour (à la demande ou périodiquement) les données d'entrée utilisées dans les modèles X12ARIMA. Cette configuration est très intéressante, mais les cellules d'entrée sont souvent touchées, et Excel déclenche des scores massifs de demandes de calcul, de sorte que lors de l'exécution d'un calcul manuel, de nombreux modèles sont candidats à une réévaluation.
Dans NumXL, nous calculons et stockons la somme de contrôle en interne (alias Hash) pour l'ensemble des données d'entrée et pour les valeurs des paramètres du modèle. Ainsi, lorsqu'Excel fait une nouvelle demande d'évaluation de modèle, NumXL calcule les nouvelles sommes de contrôle et les compare à celles dont nous disposons déjà. Si NumXL ne trouve aucun changement, il ignore simplement la demande.
Par conséquent, quel que soit le nombre de modèles X12ARIMA que vous avez, NumXL n'évalue que ceux dont les entrées (c'est-à-dire les paramètres du modèle ou les données d'entrée) ont réellement changé depuis la dernière exécution. Ainsi, X12ARIMA s'exécute lorsque cela est nécessaire.
Problème 5 : Valeurs manquantes (#N/A)
Le programme X12A du recensement américain ne traite pas les valeurs manquantes, mais celles-ci sont utiles, comme nous l'avons vu dans le problème 2.
NumXL accepte les ensembles de données d'entrée avec des valeurs manquantes avant le début ou après la fin de l'ensemble de données (non manquantes). NumXL ne prend pas en charge les observations intermédiaires avec des valeurs manquantes.
Vous vous demandez peut-être pourquoi nous devons insérer des observations avec des valeurs manquantes avant le début de l'ensemble de données d'entrée. Les utilisateurs souhaitent toujours aligner leurs ensembles de données sur la même ligne, mais les ensembles de données peuvent avoir des dates de début différentes. En insérant #N/A au début, nous pouvons donc faire en sorte que toutes les séries temporelles commencent à la même date.
L'ajout d'observations avec des valeurs manquantes aux deux extrémités de la série temporelle n'affecte pas la sortie, car NumXL ajuste la date de début (et la date de fin) aux dates des observations non manquantes les plus proches.
Problème 6 : Argument de décalage dans X12ACOMP
Pour afficher l'une des séries temporelles de sortie de X12ARIMA (par exemple, corrigée des variations saisonnières), l'utilisateur doit utiliser la fonction X12ACOMP() de la feuille de calcul, mais cette fonction attend : un nom de modèle, un type de sortie et un décalage.
Le décalage est le nombre d'observations à partir du début de l'ensemble de données d'entrée. Les observations doivent inclure celles dont les valeurs sont manquantes (c.-à-d. empaillées au début).
Pour calculer le décalage, vous pouvez soit remplir une colonne avec une séquence d'entiers, en commençant par un (1), et en augmentant au fur et à mesure.
Une autre approche consiste à utiliser la fonction intégrée COUNT() d'Excel et à calculer le nombre de cellules depuis le début des données d'entrée jusqu'à notre position actuelle.
Problème 7 : Restrictions de la politique IT/MIS
Dans certains environnements, le service informatique/MIS définit des politiques de sécurité restrictives qui empêchent les programmes de s'exécuter dans le profil local des utilisateurs (c'est-à-dire C:\users\<nom d'utilisateur>\AppData\LocalData). Cette configuration empêche le programme X12A de s'exécuter et donc de générer des résultats.
La solution à ce problème consiste à modifier la configuration du "répertoire de données" dans le fichier "NumXL.conf", pour le remplacer par un répertoire où l'utilisateur a suffisamment d'autorisations pour exécuter des programmes.
Pour ce faire, accédez au répertoire d'installation de NumXL (c'est-à-dire C:\users\<nom d'utilisateur>\AppData\Roaming\NumXL), puis ouvrez le fichier NumXL.conf à l'aide du Bloc-notes ou de votre éditeur de texte préféré.
Localisez l'entrée "DATAPATH" dans la section [GLOBASLS], décommentez-la (supprimez le hashtag) et donnez-lui la valeur d'un répertoire sur votre disque avec suffisamment d'autorisations pour exécuter le programme X12A.
Conclusion
Dans ce numéro, nous avons présenté une série de défis rencontrés par nos utilisateurs lors de l'utilisation quotidienne du modèle NumXL X12ARIMA dans Excel. Pour chaque cas, nous avons montré l'amélioration correspondante, la recommandation et, dans certains cas, les solutions de contournement pour y remédier.
Pour l'avenir, nous nous inspirons de ces précieuses leçons, en nous appuyant sur le dernier programme X13ARIMA-SEATS du recensement américain.
Commentaires
Vous devez vous connecter pour laisser un commentaire.