Le sujet de cette lettre d'information est la mise en place d'un modèle de prévision (par exemple, ARMA, GARCH, régression) de manière à ce que vous (ou quelqu'un d'autre) puissiez facilement le maintenir au fur et à mesure que de nouveaux points de données sont disponibles et que les prévisions sont mises à jour automatiquement.
Pour le démontrer, nous avons défini un modèle GARCH pour les rendements mensuels de l'ETF S&P 500, calibré les valeurs des paramètres et construit une structure à terme de prévision de la volatilité pour les 36 mois suivants. Nous avons ensuite introduit un nouveau point de données et observé le modèle avancer la date de début de la prévision et mettre à jour les valeurs de la prévision.
Pourquoi s'en préoccuper ?
Dans la pratique, nous créons de nombreux modèles basés sur Excel, certains à usage unique, mais de nombreuses feuilles de calcul sont souvent partagées avec des collègues, révisées occasionnellement et conservées pendant longtemps. Préparer votre feuille de calcul pour une mise à jour automatique est relativement simple. Une fois cela fait, vous pouvez facilement ajouter de nouveaux points de données ou réviser les points existants et voir vos calculs mis à jour avec un minimum d'effort.
C'est parti !
Préparation des données
Pour ce tutoriel, nous utilisons les rendements logarithmiques mensuels de l'ETF S&P 500 (SPY) entre janvier 2010 et novembre 2019 :
Tout d'abord, nous devons ajouter des espaces réservés à l'ensemble de données actuel. Pour ce faire, nous avançons les dates (par exemple, déc. 2019, janv. 2019) et saisissons "#N/A" comme valeur.
Modélisation
Nous avons choisi un GARCH(2,2) avec les innovations de l'étudiant pour capturer la dynamique de la volatilité mensuelle variable dans le temps pour cet ensemble de données. Pour définir le modèle, localisez une cellule vide dans votre feuille de calcul, puis cliquez sur l'icône "GARCH" dans la barre d'outils "NumXL", et l'assistant GARCH apparaît.
Dans la section "Données d'entrée", sélectionnez la plage de cellules des rendements mensuels, y compris les espaces réservés que vous avez ajoutés précédemment. Ne vous inquiétez pas, les fonctions NumXL écarteront les observations avec des valeurs "#N/A" aux deux extrémités de la plage de cellules d'entrée.
Sélectionnez ARCH et GARCH dans la section Spécifications du modèle et réglez l'ordre sur 2. Cliquez sur "Student t-distribution" dans la section innovations. Cliquez ensuite sur le bouton "OK" pour confirmer votre sélection.
L'assistant GARCH génère la table de modèle et initialise les valeurs de ses paramètres à des valeurs valides mais sous-optimales. Pour trouver un ensemble optimal de valeurs pour les paramètres GARCH, sélectionnez la cellule d'en-tête de la table de modèle et cliquez sur l'icône "Calibrer" dans la barre d'outils "NumXL". Microsoft Solver s'affiche avec toutes ses valeurs définies. Cliquez sur Solve
Le solveur Microsoft recherche une solution optimale pour le processus GARCH.
Exploration des données
Nous avons mentionné précédemment que les fonctions NumXL écartent toute observation dans la plage de cellules d'entrée dont la valeur est égale à "#N/A". Comment savoir où se termine l'ensemble de données ?
Pour répondre à la question ci-dessus, vous devez d'abord calculer la taille de l'ensemble de données à l'aide de deux fonctions : RMNA(.) et COUNT(.). La fonction RMNA(.) écarte les points de données avec "#N/A" et renvoie un tableau de toutes les observations non manquantes, et la fonction COUNT(.) renvoie la taille de ce tableau.
Vous pouvez également calculer la date de fin de l'ensemble de données en utilisant la fonction INDEX(.) intégrée à Excel et la taille de l'ensemble de données ci-dessus.
En résumé, vous avez un ensemble de données de 119 valeurs non manquantes, et la dernière observation est tombée en novembre 2019.
Prévisions
pour ce tutoriel, vous devez construire la prévision de volatilité mensuelle pour les 36 mois à venir. Pour ce faire, sélectionnez la ligne d'en-tête de la table de modèle et cliquez sur l'icône "Prévision" dans la barre d'outils NumXL.
Dans la section "Obs. les plus récentes", sélectionnez la plage de cellules de la colonne "B", y compris l'observation avec des valeurs manquantes (c.-à-d. #N/A).
Pour la volatilité, laissez le champ vide et NumXL utilisera la volatilité en échantillon calculée par le modèle GARCH lui-même. Cliquez sur le bouton "OK".
L'assistant de prévision génère un tableau de prévision qui exprime l'unité de temps en termes d'étapes (c'est-à-dire de mois) mesurées après la fin de l'ensemble de données d'entrée.
Au fil du temps, l'ajout de nouveaux points de données avance la date de la dernière observation (avec valeur non manquante), ce qui a un impact sur notre interprétation de l'unité d'étape dans le tableau de prévision. Pour remédier à ce problème, nous avons ajouté une colonne à gauche du tableau de prévision pour désigner la date calendaire correspondante.
Pour calculer la date correspondante à chaque étape, nous utilisons les fonctions NxEDATE(.) et CONCAT(.), comme indiqué ci-dessous :
En utilisant la date de fin de l'ensemble de données, la fonction NxEDATE(.) renvoie les données qui tombent après N mois, où N est le nombre d'étapes du tableau de prévision.
Que se passe-t-il si les nouvelles données tombent un week-end ou un jour férié ? Comme notre jeu de données est une série temporelle financière, la date doit tomber un jour ouvrable ; sinon, déplacez la date à la date ouvrable la plus proche (NxAdjust(.)).
C'est tout ! Examinons le tableau des prévisions et la courbe de structure par terme de la volatilité mensuelle.
Le modèle GARCH révèle un environnement de faible volatilité - par rapport au niveau historique (c'est-à-dire 3,8 %) - mais prévoit une augmentation constante de la volatilité au cours de l'année à venir.
Ajouter des points de données
Examinons ce qui se passe lorsque nous avons le rendement mensuel de décembre 2019, disons -0,6 %.
Étape 1: Saisir la nouvelle valeur dans l'ensemble de données.
Étape 2: Observateur
La taille du jeu de données d'entrée est passée à 120, et la date de fin est désormais fixée à décembre 2019.
Dans le tableau des prévisions, la date correspondant à la première étape est désormais janvier 2020 (contre décembre 2019), et la structure à terme de la volatilité est différente (moins lisse).
Étape 3: Avancé
Le tableau de prévisions ci-dessus utilise le même processus GARCH que nous avons calibré précédemment, en particulier la valeur des paramètres.
Pour les besoins de l'argumentation, supposons que vous souhaitiez recalibrer le modèle tout en conservant les ordres ARCH/GARCH (c.-à-d. P et Q) et la distribution de l'innovation (par exemple, t de l'étudiant).
Comme nous l'avons fait précédemment, localisez et sélectionnez la ligne d'en-tête du tableau du modèle GARCH et cliquez sur l'icône "Calibrer" dans la barre d'outils NumXL.
Le solveur s'affiche, mais cette fois, l'optimisation démarre (c'est-à-dire la valeur initiale) avec les valeurs optimales des paramètres de la dernière exécution. Nous nous attendons donc à une conversion rapide.
Cliquez sur le bouton "Solveur" pour lancer le processus d'optimisation.
Une fois l'opération terminée, le Solveur affiche une boîte de dialogue "Trouver la solution". Cliquez sur le bouton OK, et les valeurs des nouveaux paramètres seront copiées dans la table du modèle.
Pour examiner l'impact du recalibrage sur vos prévisions, regardez les valeurs de vos prévisions dans le tableau (et le graphique).
Conclusion
Dans ce tutoriel, nous avons examiné les deux étapes de la configuration de vos modèles pour la mise à jour automatique :
- Ajout de points de données de remplacement à la fin de l'ensemble de données d'entrée,
- Sélectionnez l'ensemble de données contenant les points de données fictifs dans le modèle et les prévisions.
Au fur et à mesure que le temps passe et que de nouvelles observations sont réalisées, nous saisissons leurs valeurs réelles dans l'ensemble de données (à la place du #N/A), et Excel met à jour le calcul de toutes les cellules de référence (par exemple, le tableau des prévisions).
Commentaires
Vous devez vous connecter pour laisser un commentaire.