Le backtesting en modélisation fait référence au test d'un modèle prédictif à l'aide de données historiques. L'article traite de la manière de procéder dans Microsoft Excel, et non du contexte théorique du backtesting.
Comment procède-t-on à un backtesting ? Nous remontons le temps jusqu'au début de notre série temporelle, nous calibrons les paramètres du modèle en utilisant les données disponibles jusqu'à ce moment-là et nous effectuons une prédiction (c'est-à-dire une prévision) pour la période suivante. Ensuite, nous avançons dans le temps, recalibrons les valeurs des paramètres et effectuons une autre projection, et ainsi de suite. À la fin de notre exercice, nous disposerons d'un ensemble de prédictions.
Notez qu'à chaque point, la seule hypothèse que nous faisons est la définition générale du modèle (par exemple, ARMA(1,1)). Néanmoins, nous calibrerons les valeurs des paramètres en utilisant uniquement les informations disponibles à ce moment-là.
Cette approche est cohérente avec les pratiques de la vie réelle : on part d'un modèle initial et on effectue une prévision pour la période suivante. Le temps passe. Une nouvelle période s'est produite, nous ajoutons donc le nouveau point de données à l'ensemble des données d'entrée actuelles, nous recalibrons les paramètres, nous effectuons une prévision pour la période suivante et nous répétons l'opération.
Pourquoi devrais-je m'en soucier ?
Cet article vous guidera à travers les étapes de Microsoft Excel nécessaires à la réalisation d'un backtesting. Nous utiliserons principalement deux puissantes fonctions intégrées d'Excel : INDEX(.) et SEQUENCE(.) : INDEX(.) et SEQUENCE(.), et nous tirerons parti du mécanisme de "tableau de données" d'Excel pour exécuter les différents scénarios.
Le backtesting génère ce qui aurait été des erreurs de prévision, de sorte que vous pouvez examiner de près la série temporelle des erreurs de prévision pour détecter les corrélations sérielles, les distributions, les valeurs aberrantes et autres, afin de mieux comprendre la précision et la performance du modèle.
C'est parti !
Pour cette question, nous utilisons un ensemble de données stationnaires synthétiques de 200 observations. L'ensemble de données suit un processus ARMA(1,1), comme indiqué ci-dessous.
Le modèle proposé est ARMA(1,1)
Procédure de backtesting
Pour chaque itération, nous devons procéder comme suit : (1) définir l'ensemble des données d'entrée (un sous-ensemble de la série temporelle originale), (2) à l'aide de l'ensemble de données (1), calibrer les valeurs des paramètres du modèle ARMA(1,1), (3) à l'aide du modèle (2) et de l'ensemble de données (1), calculer une prévision à l'horizon d'une période.
1. Ensemble de données d'entrée
Pour décrire complètement l'ensemble de données d'entrée, nous avons besoin de deux indices : le début et la fin, puis, à l'aide de la fonction SEQUENCE(.), nous générons un ensemble d'indices entre le début et la fin. Nous utilisons ensuite la fonction INDEX(.) pour renvoyer tous les intervalles de cellules de l'ensemble de données d'origine avec les indices de ligne de l'ensemble de séquences.
Exemple :
L'ensemble des données d'entrée originales est \$A\$3:\$A\$202. Pour sélectionner les cellules entre les indices 1 et 50.
=INDEX(\$A\$3:\$A\$202,SEQUENCE(50,1,1,1),1)
Notez que vous pouvez définir un nom pour vos données d'entrée et faire référence à ce nom à la place de la plage de cellules d'entrée.
2. Étalonnage du modèle
Nous utiliserons la fonction NumXL ARMA_PARAM(.) et spécifierons le type de retour=2 pour les paramètres calibrés.
Notez que ARMA_PARAM(.) renvoie une forme compacte des paramètres du modèle, de sorte que dans la figure ci-dessus, le processus ARMA est : \[\begin{array}{l} {X_t} = 1.485 + 0.401{X_{t - 1}} + 0.734{a_{t - 1}} + {a_t}\\ {a_t} \sim N(0,1.14) \end{array}\]
3. Les prévisions
En utilisant l'ARMA_FORE(.), les données de (1) et les paramètres du modèle calculés en 2, nous pouvons calculer les valeurs prévisionnelles pour l'horizon d'une période.
Notez que j'ai généré la prévision moyenne, l'erreur de prévision et l'intervalle de confiance.
Tableau des données
Nous venons de terminer le calcul d'une étape. Nous utiliserons la fonction "Tableau de données" d'Excel pour effectuer les mêmes calculs pour les périodes restantes jusqu'à l'étape 200.
Tout d'abord, nous devons préparer le tableau de sortie :
Sélectionnez ensuite l'ensemble du tableau de données, en commençant par la ligne de sortie et en incluant la colonne d'index d'arrivée, comme indiqué ci-dessous :
Ensuite, passez à la barre d'outils "Données" et localisez l'élément "Tableau de données" sous "Scénario d'hypothèse".
La boîte de dialogue "Tableau de données" apparaît. Localisez la "cellule d'entrée de colonne", entrez une référence à l'index "finish" de l'ensemble de données et cliquez sur le bouton OK.
Le tableau de données remplacera les valeurs de l'indice d'arrivée par celles de notre tableau de données et enregistrera les résultats.
Notez que l'"erreur standard" est générée par la fonction ARMA_FORE(.), tandis que la colonne la plus à droite ("erreur") est l'erreur entre la prévision et la valeur réelle réalisée.
Analyse des tests rétrospectifs
Tout d'abord, examinons visuellement les résultats des prévisions du backtesting par rapport aux valeurs réelles réalisées, puis nous approfondirons les propriétés statistiques.
La zone ombrée du graphique correspond à l'intervalle de confiance de la prévision à 95 %.
Le graphique montre une bonne adéquation du modèle et, par conséquent, une bonne précision des prévisions.
Examinons ensuite les propriétés statistiques de l'erreur de prévision (Prévision - Réalité) à l'aide des statistiques récapitulatives de la barre d'outils NumXL.
Le tableau récapitulatif des statistiques indique que l'erreur de prévision est un bruit gaussien de moyenne nulle et d'écart-type de 1,0.
En conclusion, le modèle ARMA(1,1) est un modèle prédictif approprié pour l'ensemble de données donné.
Quelle est la prochaine étape ?
À ce stade, vous vous interrogez probablement sur les valeurs des paramètres du modèle. Sont-elles stables ?
Tout d'abord, nous construisons un deuxième "tableau de données", mais dans la ligne de sortie se trouvent les valeurs des paramètres du modèle, et nous exécutons le tableau de données comme nous l'avons fait précédemment.
Analysez maintenant les valeurs de chaque paramètre comme vous l'avez fait pour l'erreur de prévision.
Les valeurs des paramètres (sauf thêta) sont stables et tendent vers une valeur constante. Les valeurs de thêta (coefficient MA) sont plus volatiles mais se situent entre 0,6 et 0,9.
Ensuite, nous devrions examiner les statistiques descriptives et les distributions sous-jacentes des valeurs des paramètres, mais nous vous laissons le soin de faire cet exercice.
Veuillez vous référer à la feuille de calcul ci-jointe pour l'ensemble des données et l'analyse.
Conclusion
Cet article présente les étapes à suivre pour réaliser un backtesting pour un modèle prédictif avec peu ou pas de calculs intermédiaires. Nous avons utilisé les fonctions intégrées d'Excel : INDEX(.) et SEQUENCE(.) et nous avons tiré parti de la fonction "Tableau de données" pour effectuer le calcul pour tous les indices prédéfinis.
Une fois que nous avons obtenu les résultats du backtesting, nous nous tournons vers l'analyse statistique et évaluons leurs propriétés et leur distribution afin de déceler d'éventuels biais (par exemple, une corrélation sérielle) dans les résultats.
Commentaires
Vous devez vous connecter pour laisser un commentaire.