OOO FTL LAREQ Publication
S IMULATIONS
STOCHASTIQUES SUR D YNARE Auteur(s) : Jean – Paul K. Tsasa Vangu Source : Laboratoire d’analyse – recherche en économie quantitative Publié par : LAREQ Publication Volume : Série alpha-I, numéro 12 [pp. 93 – 110] Web : http://www.lareq.com Courriel :
[email protected] Soumission : Juillet 26, 2013 Publication : Janvier 25, 2014
Le LAREQ Publication collabore avec Makroeconomica Review dans la production et la diffusion de la série des fiches techniques Lareq (FTL). MAKROECONOMICA REVIEW Web : http://www.makroeconomica.org
Vous pouvez utiliser le contenu des FTL uniquement pour un usage personnel et non – commercial. Si vous désirez exploiter tout le contenu de cette fiche, s'il vous plaît, citer la source. Pour un usage commercial, prière contacter l'éditeur pour en obtenir l’autorisation, en vous dirigeant à l’adresse suivante : http://www.makroeconomica.org/contact.ws. MAKROECONOMICA REVIEW travaille en collaboration avec le Laboratoire d'analyse-recherche en économie quantitative et le réseau congolais de recherche en économie quantitative dans l'objectif de contribuer à la construction d’une plate-forme de recherche commune qui favorise la découverte et l'utilisation de ces ressources au sein des universités africaines. Pour plus d'informations sur MAKROECONOMICA, s'il vous plaît, contactez :
[email protected].
Résumé1 Cette série de fiches techniques (alpha–I) propose une introduction à la modélisation DSGE et une initiation à la plateforme logiciel Dynare et aux logiciels Dynare++ et MatLab. L’ensemble de publications dans le cadre de cette série, une fois complété, sera publié dans un document unique sous forme d’un manuel d’initiation. Dans cette fiche, nous abordons la deuxième partie des exercices consacrés aux simulations (déterministes et stochastiques) sur la plateforme Dynare, c’est – à – dire les simulations stochastiques. Etant donné que, dans la modélisation macroéconomique, ces dernières sont relativement plus sollicitées par rapport aux simulations déterministes, ainsi, on y consacre davantage d’espace dans l’analyse.
1
L’utilisateur désirant accéder au manuel de référence Dynare, peut se diriger au site internet suivant : http://www.dynare.org.
I. Introduction Dans un contexte stochastique, le logiciel Dynare calcule une ou plusieurs simulations correspondant à un tirage aléatoire de chocs. L'algorithme principal pour résoudre les modèles stochastiques repose sur une approximation de Taylor, jusqu'au troisième ordre, des fonctions politiques. Les articles sémantiques, pour ce faire, sont notamment Judd (1996) ; Collard et Juillard (2001) ; Schmitt-Grohé et Uribe (2004). Les détails de la mise en œuvre sur Dynare de la solution de premier ordre sont fournis dans Villemot (2011). Comme nous le verrons, plus loin dans le texte, une telle solution est calculée en utilisant la commande stoch_simul. Par ailleurs, il sied de noter que, dans le souci de rendre les hypothèses plus réalistes, la plupart des modèles macroéconomiques utilisés à la frontière de la recherche tendent à devenir davantage plus complexes. Généralement, cet état de choses rend de plus en plus difficile la dérivation des solutions exactes. D’où, le recours aux méthodes d'approximation numérique (cf. FTL, série–I, num. 1). Parmi ces méthodes, comme évoqué précédemment, on note particulièrement celle de perturbation du premier ordre. En effet, cette technique de résolution des modèles macroéconomiques, consiste à fournir une approximation linéaire de la fonction de politique. Au passage, on peut noter que cette dernière ne souffre pas de la malédiction de la dimensionnalité, c’est – à – dire des problèmes techniques de calcul surgissant avec l’accroissement du nombre de variables d'état dans le modèle. Cependant, la solution issue de cette technique est caractérisée par la propriété d’équivalence certaine. Par exemple,
l'approximation du premier ordre des moyennes inconditionnelles des
variables endogènes coïncide avec leurs valeurs d’état stationnaire non stochastiques (déterministes). Ainsi, il s’ensuite que cette faiblesse restreint la gamme de questions qui peuvent être abordées de manière significative en utilisant les techniques de perturbation du premier ordre, notamment, les questions d’évaluations de bien – être, d'aide sociale ou des primes de risque dans un environnement stochastique. Ainsi,
pour
remédier
à
cette
limite,
il
est
recommandé
de
procéder
à
des
approximations d’ordre supérieur (cf. Schmitt – Grohé & Uribe, 2004). De même, comme la technique d’approximation du premier ordre (perturbation du premier ordre), les méthodes de perturbation d'ordre supérieur ne souffrent pas de la malédiction de la dimensionnalité. En parallèle, il est également possible d’implémenter les simulations d’un modèle stochastique en utilisant la méthode du chemin étendu (extended path), telle que proposée par Fair et Taylor (1983). Cette méthode est particulièrement utile quand il y a des non-linéarités strictes ou des contraintes non-saturées. Sur Dynare, une telle solution peut être calculée en utilisant la commande extended_path. 94
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Nous développerons cette fiche en distinguant quatre sections principales : (II) Calcul de
la
solution
stochastique ;
(III)
Revue
des
options
Dynare
de
simulations
stochastiques ; (IV) Typologie et ordre de variables ; (V) Implémentation des méthodes de perturbation.
II. Calcul de la solution stochastique La commande Dynare stoch_simul résout un modèle stochastique (modèle avec anticipations rationnelles), en utilisant la technique de perturbation.
stoch_simul [VARIABLE_NAME. . .];
[Commande]
stoch_simul (OPTIONS. . .)[VARIABLE_NAME. . .];
[Commande]
Plus précisément, stoch_simul calcule une approximation de Taylor de la règle de décision et de la fonction de transition pour le modèle d’analyse. Autrement, la commande stoch_simul calcule les fonctions de réponse impulsionnelle (IRFs) et diverses statistiques descriptives (moments, décomposition de la variance, coefficients de corrélation et d'autocorrélation). En présence des chocs corrélés, Dynare calcule la décomposition de la variance telle qu’établie dans la littérature consacrée à la modélisation VAR, en se servant d’une décomposition de Cholesky de la matrice de covariance des variables exogènes. Aussi, il sied de préciser que lorsque les chocs sont corrélés, la décomposition de la variance dépend de l'ordre des variables dans la commande varexo. Dans la pratique, Dynare calcule l'approximation de Taylor autour de l'état d'équilibre (cf. FTL, série alpha–I, num. 9). Par ailleurs, les fonctions de réponse impulsionnelle (IRFs) issues de ces simulations sont calculées comme la différence entre la trajectoire d'une variable suite à un choc au début de la période 1 et sa valeur en état stationnaire. Pour plus de détails sur le calcul des IRFs sur Dynare, l’utilisateur peut consulter la plateforme DynareWiki. Les résultats sur la décomposition de la variance, la corrélation et l’autocorrélation ne sont affichés que pour les variables ayant une variance positive (c’est-à-dire non nulle). Et les fonctions de réponse impulsionnelle (IRFs) sont tracées uniquement pour les variables avec une réponse supérieure à 1e– 10. La décomposition de la variance est calculée par rapport à la somme de la contribution de chaque choc. En temps normal, cela doit être égal à la variance totale, mais si un modèle génère de très grands écarts, il peut arriver que, en raison de l'erreur numérique, les deux diffèrent de manière significative. Toutefois, le logiciel Dynare
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
95
émet un avertissement si la différence relative maximale entre la somme de la contribution de chaque choc et la variance totale est supérieure à 0,01%. Actuellement, les IRFs ne sont tracées que pour 12 variables. L’utilisateur peut sélectionner celles qu’il souhaite voir être affichées, dans le cas où le modèle mobilisé contenait plus de 12 variables endogènes. La matrice de covariance des chocs est spécifiée avec la commande shocks (cf. FTL série–I, num. 8). Par ailleurs, quand une liste de nom de variables (VARIABLE_NAME) est spécifiée, les résultats ne sont affichés que pour ces variables. In fine, il convient de préciser que la commande stoch_simul avec une approximation de premier ordre peut bénéficier des instructions décrites dans le bloc décomposition du modèle (cf. Option bloc, dans FTL série–I, num. 6).
III. Revue des options Dynare de simulations stochastiques L’utilisateur dispose d’une trentaine d’options lui permettant de gérer l’implémentation des simulations sur la plateforme logicielle Dynare. Ci – après, nous les énumérons.
ar = INTEGER à précise l’ordre de coefficients d’autocorrélation à calculer et à imprimer. La valeur par défaut est : 5.
drop = INTEGER à Détermine le nombre de points diminués au début de simulation avant de calculer le sommaire des statistiques. La valeur par défaut est : 100.
hp_filter = DOUBLE à Utilise le filtre HP avec λ = DOUBLE avant le calcul des moments. Par défaut : pas de filtre.
hp_ngrid = INTEGER à Nombre de points de la grille pour
la Transformée de Fourier rapide inverse
discrète utilisée dans le calcul du filtre HP. Il peut être nécessaire de l’augmenter pour les processus fortement autocorrélés. La valeur par défaut est : 512. Note : La Transformée de Fourier rapide (Fast Fourier Transform) est un algorithme de calcul de la transformée de Fourier discrète.
irf = INTEGER à Nombre de périodes sur lesquelles calculer les IRFs. En fixant irf = 0, cela supprime les graphiques des IRFs. La valeur par défaut est : 40.
96
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
irf_shocks = ( VARIABLE_NAME [[,] VARIABLE_NAME. . .] ) à Les variables exogènes pour lesquelles calculer les IRFs. Par défaut est : tous.
relative_irf à Sollicite le calcul des IRFs normalisées en pourcentage de l'erreur-type de chaque choc.
nocorr à Ne pas imprimer les matrices de corrélation. Par défaut : Imprimer les matrices de corrélation.
nofunctions à Ne pas imprimer les coefficients de la solution approximée. Par défaut : Imprimer les coefficients de la solution approximée.
nomoments à Ne pas imprimer les moments des variables endogènes. Par défaut : Imprimer les moments des variables endogènes.
nograph à Ne pas créer des graphiques (ce qui signifie qu'ils ne sont ni enregistrés sur le disque, ni affichés ou imprimés). Si cette option n'est pas utilisée, les graphiques seront sauvegardés sur le disque (au format spécifié par l'option de graph_format) et affichés à l'écran (à moins que l’option nodisplay soit utilisée).
nodisplay à Ne pas afficher les graphiques, mais les enregistrer sur le disque (à moins que l’option nograph soit utilisé). graph_format = FORMAT graph_format = ( FORMAT, FORMAT. . .) à Spécifier le(s) format(s) du fichier pour les graphiques enregistrés sur le disque. à Les valeurs possibles sont eps (par défaut), pdf et fig Note : sous Octave, seule la valeur eps est disponible).
noprint à Ne pas imprimer n’importe quoi. Utile pour les boucles.
print à Imprimer les résultats (opposée de noprint).
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
97
order = INTEGER à Ordre d’approximation de Taylor. Les valeurs acceptables sont de 1, 2 et 3. Il sied de notez que pour le troisième ordre, l’option k_order_solver est implicite et seuls les moments empiriques sont disponibles (l’utilisateur doit fournir une valeur pour l'option periods). Une valeur de 2 ou supérieure est incompatible avec les options de block et bytecode du bloc model. La valeur par défaut est : 2 (excepté après la commande estimation, dans ce cas, la valeur par défaut est la valeur utilisée pour l'estimation).
k_order_solver à Utilisez un solveur k-ordre (implémenté en C++) à la place du solveur de Dynare par défaut. Cette option n'est pas encore compatible avec l'option bytecode (cf. Option bytecode, FTL, série alpha–I, num. 6). Par défaut : Invalide pour l'ordre 1 et 2, valide ailleurs.
periods = INTEGER à Si différent de zéro, les moments empiriques seront calculés à la place de moments théoriques. La valeur de l'option spécifie le nombre de périodes à utiliser dans les simulations. Les valeurs du bloc initval, éventuellement recalculées par steady, seront utilisées comme point de départ de la simulation. Les variables endogènes simulées sont disponibles dans un vecteur pour chaque variable et dans la matrice globale oo_.endo_simul (cf. [oo_.endo_simul], FTL, série alpha–I, num. 11). Les variables exogènes simulées sont disponibles dans oo_.exo_simul (voir [oo_.exo_simul], FTL, série alpha–I, num. 6). La valeur par défaut est : 0.
qz_criterium = DOUBLE à Valeur utilisée pour distinguer les valeurs propres instables de celles stables dans la réorganisation de la décomposition généralisée de Schur. Celle-ci est utilisée pour résoudre les problèmes du premier ordre. La valeur par défaut est : 1.000001 (excepté lors de l'estimation avec l'option lik_init égale à 1 : la valeur par défaut est 0,999999 dans ce cas (se rapporter à FTL, série alpha–I, num. 14).
replic = INTEGER à Nombre de séries simulées utilisées pour calculer les IRFs. La valeur par défaut est : 1 si order=1, et 50, sinon.
simul_replic = INTEGER à Nombre de séries à simuler lorsque les moments empiriques sont sollicités (par exemple, periods > 0). Il convient de noter que si cette option est supérieure à 1, une série supplémentaire ne sera pas utilisée pour le calcul des moments empiriques mais
sera
simplement
enregistrée
FILENAME_simul. La valeur par défaut : 1. 98
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
sous
forme
binaire
dans
le
fichier
solve_algo = INTEGER à Cf. FTL, série alpha–I, num. 9, pour les valeurs possibles et leur signification.
aim_solve à Utiliser l'algorithme de Moore-Anderson (AIM) pour calculer les règles de décision, au lieu d'utiliser la méthode par défaut de Dynare basé sur une décomposition de Schur généralisée. Cette option n'est valable que pour l’approximation du premier ordre. Cf. Web: http://www.federalreserve.gov/econresdata/ama/index.htm pour plus de détails sur l'algorithme en cause.
conditional_variance_decomposition = INTEGER à Cf. ci-dessous.
conditional_variance_decomposition = [INTEGER1 : INTEGER2] à Cf. ci-dessous.
conditional_variance_decomposition = [INTEGER1 INTEGER2. . .] à Cette option calcule une décomposition de la variance conditionnelle pour la (les) période(s)
indiquée(s).
Les
périodes
doivent
être
strictement
positives.
Les
variances conditionnelles sont données par var 𝑦!!! 𝑡 . Pour la période 1, la décomposition de la variance conditionnelle permet la décomposition des effets des chocs lors de l'impact. Les résultats sont stockés dans la matrice oo_.conditional_variance_decomposition. La décomposition de la variance est réalisée uniquement si les moments théoriques sont requis, par exemple en utilisant l’option periods=0. En cas de order=2, le logiciel Dynare fournit une approximation précise de second ordre pour les vrais moments sur base des termes linéaires de la solution de second ordre [Cf. Kim, Kim, Schaumburg et Sims (2008)].
pruning à Ecarter les termes d'ordre supérieur pendant le calcul itératif des simulations de la solution, comme dans Kim, Kim, Schaumburg et Sims (2008).
partial_information à Calculer la solution du modèle en information partielle, suivant l’approche de Pearlman, Currie et Levine (1986). Les agents économiques sont censés observer uniquement certaines variables de l'économie. L'ensemble des variables observées est déclaré en utilisant la commande varobs. Il sied de noter que si varobs n'est pas présent ou contient toutes les variables endogènes, alors dans ce cas, l'information est complète, et donc cette option n'a aucun effet. Plus de références peuvent être trouvées à : http://www.dynare.org/DynareWiki/PartialInformation.
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
99
sylvester = OPTION à Détermine l'algorithme utilisé pour résoudre l'équation de Sylvester pour le bloc du modèle décomposé. Les valeurs possibles pour l'option sont : default
utilise le solveur par défaut pour les équations de Sylvester (gensylv), basé sur l'algorithme de Ondra Kamenik (voir le site Web Dynare pour plus d'informations). Cf. site Web Dynare pour plus de détails :
http://www.dynare.org/documentation-and-support/dynarepp/sylvester.pdf/at_download/file
fixed_point
utilise un algorithme de point fixe pour résoudre l'équation de Sylvester (gensylv_fp). Cette méthode s’avère plus rapide que celle par défaut notamment pour les modèles à grande échelle. La valeur par défaut est : default. sylvester_fixed_point_tol = DOUBLE à C'est le critère de convergence utilisé dans la résolution de l’équation de Sylvester par méthode (solveur) de point fixe. Sa valeur par défaut est de 1e– 12. Output Les
variables
endogènes
simulées
sont
disponibles
dans
la
matrice
globale
oo_.endo_simul. L’ensemble de commandes : oo_.dr ; oo_.mean ; oo_.var et oo_.autocorr, seront décrits ci-dessous. Si l’option periods est présente, alors oo_.endo_simul (cf. [oo_.endo_simul], FTL, série
alpha–I,
num.
11),
enregistre
les
variables
simulées
dans
les
vecteurs
MatLab/Octave de l'espace de travail global avec le même nom que les variables endogènes. Si l’option irf est différente de zéro, alors oo_.irfs (cf. ci-dessous) enregistre les IRFs dans les vecteurs MATLAB/Octave de l'espace de travail global (cette dernière façon d'accéder aux IRFs est obsolète et devra disparaître dans la prochaine version du logiciel).
Exemple 1 : shocks; var e; stderr 0.0348; end; stoch_simul;
100
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Le programme précédent effectue la simulation de l’approximation du second ordre d'un modèle avec un seul choc stochastique e, et un écart type de 0,0348.
Exemple 2 : stoch_simul(irf=60) y k; Le programme, illustré dans l’exemple 2, exécute la simulation d'un modèle et affiche les fonctions de réponse impulsionnelle sur 60 périodes pour les variables y et k.
oo_.mean
[Variable MatLab/ Octave]
Après exécution de stoch_simul, oo_.mean, cette variable contient la moyenne des variables endogènes. Elle contient la moyenne théorique si l'option periods n'est pas présente, et la moyenne empirique dans le cas contraire. Et les variables sont classées par ordre de déclaration. oo_.var
[Variable MatLab/ Octave]
Après exécution de stoch_simul, oo_.var, cette variable contient matrice de variance-covariance des variables endogènes. Elle contient la variance théorique si l'option periods n'est pas présente (ou une approximation de celle-ci si l'ordre = 2), et la variance empirique dans le cas contraire. Et les variables sont classées par ordre de déclaration. oo_.autocorr
[Variable MatLab/ Octave]
Après exécution de stoch_simul, oo_.autocorr, cette variable contient un tableau de cellules (cell array) de matrices d'autocorrélation des variables endogènes. Le nombre d'éléments de la matrice dans le tableau de cellules correspond à l'ordre de l'autocorrélation. L'option ar spécifie le nombre de matrices d'autocorrélation disponibles. Elle contient les autocorrélations théoriques si l'option periods n'est pas présente (ou une approximation de celle-ci si l'ordre = 2), et les autocorrélations empiriques dans le cas contraire. ! L’élément oo_.autocorr{i}(k,l) est égal à la corrélation entre 𝑦!! et 𝑦!!! ,
où 𝑦 ! (respectivement 𝑦 ! ) est le 𝑘 − è𝑚𝑒 (respectivement 𝑙 − è𝑚𝑒) variable endogène suivant l’ordre de déclaration. Il sied de noter que si les moments théoriques ont été requis, oo_.autocorr{i} est la même que oo_.gamma_y{i 1}. oo_.gamma_y
[Variable MatLab/ Octave]
Après exécution de stoch_simul, si les moments théoriques ont été sollicités (par exemple, si l'option periods n'est pas présente), cette variable contient un tableau de cellules avec les valeurs suivantes (où ar est la valeur de l'option du même nom) : oo_.gamma{1} Matrice de variance-covariance. oo_.gamma{i+1} (for i = 1:ar) Fonction d'autocorrélation (Cf. variable oo_. autocorr, pour plus de détails).
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
101
Note : il s'agit de la fonction d'autocorrélation, et non de la fonction d'autocovariance. oo_.gamma{nar+2} Décomposition de la variance. oo_.gamma{nar+3} Si une approximation de second ordre a été sollicitée, alors cette variable contiendrait le vecteur des termes ajustés de la moyenne. En cas de order = 2, les moments théoriques d’ordre 3 sont une approximation de second ordre précise des vrais moments d’ordre 2. (Cf. conditional_variance_decomposition).
oo_.irfs
[Variable MatLab/ Octave]
Après exécution de stoch_simul, avec l'option irf différent de zéro, cette variable contient les réponses impulsionnelles, avec le nom conventionnel suivant : VARIABLE_NAME_SHOCK_NAME. Par exemple, oo_.irfs.gnp_ea contient l'effet sur gnp (PNB en français) d'une déviation de choc sur ea. La solution approximée d'un modèle prend la forme d'un ensemble de règles de décision ou des équations de transition exprimant la valeur courante des variables endogènes du modèle comme fonction de l'état antérieur du modèle et des chocs observés au début de la période. Les règles de décision sont stockées dans la structure oo_.dr.
extended;
[Commande]
extended_path(OPTIONS. . .);
[Commande]
Comme évoqué précédemment, la commande extended_path résout un modèle stochastique (modèle avec anticipations rationnelles), en utilisant la méthode du chemin étendu proposé par Fair et Taylor (1983). Cette fonction calcule d'abord un chemin aléatoire pour les variables exogènes, stockées dans oo_.exo_simul (Cf. oo_.exo_simul, FTL, série alpha–I, num. 11), puis calcule la trajectoire correspondante pour les variables endogènes, en considérant l’état stationnaire comme point de départ. Le résultat de la simulation est stocké dans oo_.endo_simul (Cf. oo_.endo_simul, FTL, série alpha–I, num. 11).
102
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Options periods = INTEGER à Le nombre de périodes pour lesquelles la simulation doit être calculée. Aucune valeur par défaut. Option obligatoire.
solver_periods = INTEGER à Le nombre de périodes utilisées pour calculer la solution approximative à chaque itération de l'algorithme. La valeur par défaut est : 200.
IV. Typologie et ordre de variables Le logiciel Dynare distingue quatre types de variables endogènes :
⎯
les
variables
purement
retardées
(ou
purement
prédéterminées,
purely
backward variables) ;
⎯
les variables purement tournées vers le futur (ou purement anticipées ou avancées, purely forward variables) ;
⎯
les variables mixtes ;
⎯
les variables statistiques.
Variables purement retardées Sont celles qui apparaissent uniquement à la période courante et passée dans le modèle, mais pas à la période future (c’est – à – dire à 𝑡 et 𝑡 − 1, 𝑡 − 2, … mais pas à 𝑡 + 1,
𝑡 + 2, …).
Le
nombre
de
ces
variables
est
égal
à
oo_.dr.npred
–
oo_.dr.nboth.
Variables purement tournées vers le futur Sont celles qui apparaissent uniquement à la période courante et future dans le modèle, mais pas à la période antérieure (c’est – à – dire à 𝑡 et 𝑡 + 1, 𝑡 + 2, … mais pas à 𝑡 − 1, 𝑡 − 2, … ). Le nombre de ces variables est stocké dans oo_.dr.nfwrd.
Variables mixtes Sont celles qui apparaissent à la période courante, passée et future dans le modèle (c’est – à – dire à 𝑡 et 𝑡 − 1, 𝑡 − 2, … et 𝑡 + 1, 𝑡 + 2, … ). Le nombre de telles variables est stocké dans oo_.dr.nboth.
Variables statiques Sont celles qui apparaissent uniquement à la période courante (pas dans le passée, ni dans le futur) dans le modèle (c’est – à – dire uniquement à 𝑡 mais pas à 𝑡 − 1,
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
103
𝑡 − 2, … ni à 𝑡 + 1, 𝑡 + 2, … ). Le nombre de telles variables est stocké dans oo_.dr.nstatic. Il sied de noter que toutes les variables endogènes entrent dans l'une de ces quatre catégories, puisque, après la création de variables auxiliaires (cf. FTL, série alpha–I, num. 5), toutes les endogènes ont au plus un retard (décalage négatif) ou une avance (décalage positif). D’où l'identité suivante :
oo_.dr.npred + oo_.dr.nfwrd + oo_.dr.nstatic = M_.endo_nbr
En interne, le logiciel Dynare utilise deux ordres des variables endogènes :
⎯
l'ordre de la déclaration (se reflétant dans M_.endo_names) ;
⎯
et un ordre appelé DR-order, fondé sur les quatre catégories de variables telles que décrites précédemment (« DR » est l'abréviation de règles de décision, en anglais decision rules).
NOTE : Dans la plupart du temps, l'ordre de la déclaration est utilisé. Mais pour les éléments des règles de décision, c’est plutôt le DR-order est utilisé. La DR-order est la suivante : (i)
les variables statiques ;
(ii)
les variables purement retardées ;
(iii)
les variables mixtes ;
(iv)
les variables tournées vers le futur.
A l'intérieur de chaque catégorie, les variables sont disposés selon l'ordre de la déclaration. La variable oo_.dr.order_var décrit la DR-order pour l’ordre de la déclaration, et la variable oo_.dr.inv_order_var contient la description inverse. En d'autres termes, la 𝑘 − è𝑚𝑒 variable dans la DR-order correspond à la variable endogène numérotée oo_.dr_order_var(k) dans l’ordre de la déclaration. Inversement, la 𝑘 − è𝑚𝑒 variable déclarée est numéroté oo_.dr.inv_order_var(k) dans la DR-order.
104
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Enfin, les variables d'état du modèle sont des variables purement retardées et des variables mixtes. Elles sont disposées dans DR-order quand elles apparaissent parmi les éléments des règles de décision. Il y a des variables oo_.dr.npred.
oo_.conditional_variance_decomposition
[Variable MatLab/ Octave]
Après exécution de stoch_simul, avec l'option : conditional_variance_decomposition, cette variable contient un tableau à trois dimensions de résultat de la décomposition : (i) la première dimension correspond aux horizons de prévision (comme déclaré avec l'option) ; (ii) la seconde dimension correspond à des variables endogènes (dans l'ordre de déclaration) ; (iii) la troisième dimension correspond à des variables exogènes (dans l'ordre de déclaration)
V. Implémentation de la méthode de perturbation Trois cas seront traités dans cette section : (i) l’approximation du premier ordre ; (ii) l’approximation du second ordre ; (iii) l’approximation du troisième ordre.
V.I. Approximation du premier ordre L’approximation du premier ordre est de la forme : ! 𝑦! = 𝑦 ! + 𝐴𝑦!!! + 𝐵𝑢!
où 𝑦 ! est la valeur de 𝑦 en état stationnaire et : 𝑦!! = 𝑦! − 𝑦 ! . Sur Dynare, les coefficients des règles de décision sont stockées comme suit :
⎯
𝑦 ! est stocké dans oo_.dr.ys. Les lignes du vecteur correspondent à toutes les variables endogènes dans l'ordre de la déclaration ;
⎯
𝐴 est stocké dans oo_.dr.ghx. Les lignes de la matrice correspondent à toutes les
variables
endogènes
dans
DR-order.
Et
les
colonnes
de
la
matrice
correspondent aux variables d'état dans DR-order ;
⎯
𝐵 est stocké dans oo_.dr.ghu. Les lignes de la matrice correspondent à toutes les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent à des variables exogènes dans l'ordre de la déclaration.
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
105
V.II. Approximation du second ordre L’approximation du second est de la forme : ! ! ! ! 𝑦! = 𝑦 ! + 0.5∆! + 𝐴𝑦!!! + 𝐵𝑢! + 0.5𝐶 𝑦!!! ⨂𝑦!!! + 0.5𝐷 𝑢! ⨂𝑢! + 𝐸 𝑦!!! ⨂𝑢!
où 𝑦 ! est la valeur de 𝑦 en état stationnaire et : 𝑦!! = 𝑦! − 𝑦 ! , et ∆! est l'effet de décalage de la variance des chocs futurs. Les coefficients des règles de décision sont stockés dans les variables telles que décrites dans l’approximation du premier ordre, en plus des variables suivantes : ∆! est stocké dans oo_.dr.ghs2. Les lignes du vecteur correspondent à toutes
⎯
les variables endogènes dans DR-order ; 𝐶 est stocké dans oo_.dr.ghxx. Les lignes de la matrice correspondent à toutes
⎯
les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent au produit de Kronecker de vecteur de variables d'état dans DRordre ; 𝐷 est stocké dans oo_.dr.ghuu. Les lignes de la matrice correspondent à toutes
⎯
les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent au produit de Kronecker des variables exogènes dans l'ordre de la déclaration ; 𝐸 est stocké dans oo_.dr.ghxu. Les lignes de la matrice correspondent à toutes
⎯
les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent au produit de Kronecker de vecteur de variables d'état (dans DRorder) par le vecteur des variables exogènes (dans l'ordre de la déclaration).
V.III. Approximation de troisième ordre L’approximation du troisième ordre est de la forme : 𝑦! = 𝑦 ! + 𝐺! + 𝐺! 𝑧! + 𝐺! 𝑧! ⨂𝑧! + 𝐺! 𝑧! ⨂𝑧! ⨂𝑧! !
où 𝑦 est la valeur de 𝑦 en état stationnaire et 𝑧! est un vecteur constitué des variables d’états en déviation par rapport à l'état stationnaire (dans DR-order) à la date 𝑡 − 1, suivie par les variables exogènes à la date 𝑡 (dans l'ordre de la déclaration). Le vecteur 𝑧! est donc de taille : 𝑛! = oo_.dr.npred_M_.exo_nbr.
106
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Les coefficients des règles de décision sont stockées comme suit :
⎯
𝑦 ! est stocké dans oo_.dr.ys. Les lignes du vecteur correspondent à toutes les variables endogènes dans l'ordre de la déclaration ;
⎯
𝐺! est stocké dans oo_.dr.g_0. Les lignes du vecteur correspondent à toutes les variables endogènes dans DR-order ;
⎯
𝐺! est stocké dans oo_.dr.g_1. Les lignes de la matrice correspondent à toutes les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent aux variables d'état dans DR-order, suivies par les variables exogènes dans l’ordre de la déclaration ;
⎯
𝐺! est stocké dans oo_.dr.g_2. Les lignes de la matrice correspondent à toutes les
variables
endogènes
dans
DR-order.
Les
colonnes
de
la
matrice
correspondent au produit de Kronecker de variables d'état (dans DR-order), suivies par les variables exogènes (dans l'ordre de la déclaration). Il sied de noter que le produit de Kronecker est stocké d'une manière pliée, c’est – à – dire les éléments symétriques ne sont stockés qu'une seule fois, ce qui implique que la matrice comprend 𝑛! 𝑛! + 1 2 colonnes. Plus précisément, chaque colonne de cette matrice correspond à un couple 𝑖! , 𝑖! où chaque indice représente un élément de 𝑧! et est donc compris entre 1 et 𝑛! . Seuls les couples non décroissants sont stockés, c'est – à – dire ceux pour lesquels 𝑖! ≤ 𝑖! . Les colonnes sont disposées dans l'ordre lexicographique des paires non décroissantes. In fine, il convient de noter également que pour les paires où 𝑖! ≠ 𝑖! , puisque l'élément n’est stocké qu’une seule fois, mais apparaît à deux reprises dans la matrice de 𝐺! déplié (unfolded matrix), il doit être multiplié par 2 lors du calcul des règles de décision.
⎯
𝐺! est stocké dans oo_.dr.g_3. Les lignes de la matrice correspondent à toutes les variables endogènes en DR-order. Les colonnes de la matrice correspondent à la troisième puissance de Kronecker de variables d'état (dans DR-order), suivies par les variables exogènes (dans l'ordre de la déclaration). Notons que la troisième puissance de Kronecker est stockée d'une manière pliée, c’est – à – dire les éléments symétriques sont stockés qu'une seule fois, ce qui implique que la matrice comprend 𝑛! + 1 𝑛! + 2 6 colonnes. Plus précisément, chaque colonne de cette matrice correspond à un tuple 𝑖! , 𝑖! , 𝑖! dans laquelle chaque indice représente un élément de 𝑧! , et est donc compris entre 1 et 𝑛! .
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
107
Seuls les tuples non décroissants sont stockés, c'est – à – dire ceux pour lesquels 𝑖! < 𝑖! < 𝑖! . Les colonnes sont disposées suivant l'ordre lexicographique des tuples non décroissantes. Par ailleurs, il sied de remarquer que pour les tuples qui ont trois indices distincts, c’est – à – dire 𝑖! ≠ 𝑖! ; 𝑖! ≠ 𝑖! et 𝑖! ≠ 𝑖! , puisque ces éléments ne sont stockés qu'une seule fois mais apparaît six fois dans la matrice 𝐺! déplié (unfolded matrix), ils doivent être multipliés par 6, lors du calcul des règles de décision. De manière similaire, pour les tuples qui ont deux indices égales (c'est à dire de la forme 𝑎, 𝑎, 𝑏 ou 𝑎, 𝑏, 𝑎 ou 𝑏, 𝑎, 𝑎 , étant donné que ces éléments sont stocké une seule fois mais apparaît trois fois dans la matrice 𝐺! déplié, ils doivent être multipliés par 3 pour le calcul des règles de décision. En parallèle, il sied de noter qu’en mathématiques, si n est un entier naturel, alors un n-uplet ou n-uple est une collection ordonnée de n objets, appelés composantes. En programmation informatique, le terme anglais tuple pour uplet est couramment utilisé.
Somme toute, la présentation soumise tout au long de la présente fiche sera renforcée, dans la fiche qui suivra (FTL, série alpha–I, num. 13), par un exemple tiré de la version 2009 du guide pratique proposé par Collard (2001) dans le cadre de la résolution des modèles d’équilibre général dynamiques stochastiques (DSGE) sur la plateforme logicielle Dynare, et adapté par Juillard et Villemot pour la version Dynare 4.1. Ainsi, une fois cet exemple présenté, notre attention sera par la suite, focalisée sur la procédure et les techniques d’estimation des modèles DSGE sur Dynare.
108
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Références bibliographiques •
ADJEMIAN Stéphanie, Houstan BASTANI, Michel JUILLARD, Frédéric KARAME, Junior MAIH, Ferhat MIHOUDI, George PERENDIA, Marco RATO et Sébastien VILLEMOT, 2011, “Dynare: Reference Manual, Version 4”, Dynare Working Papers, 1, CEPREMAP. Web: http://www.dynare.org.
•
BLANCHARD Olivier J. et Charles M. KAHN, 1980. “The Solution of Linear Difference Models under Rational Expectations”, Econometrica, 48 (5): 1305 – 1312.
•
BOUCEKKINE Raouf, 1995, “An Alternative Methodology for Solving Nonlinear Forward – Looking Models”, Journal of Economic Dynamics and Control, 19, 711 – 734.
•
COLLARD Fabrice et Michel JUILLARD, 2001a, "Accuracy of stochastic perturbation methods: the case of asset pricing models", Journal of Economic Dynamics and Control, 25 (6 – 7): 979 – 999.
•
COLLARD Fabrice et Michel JUILLARD, 2001b, “A Higher – Order Taylor Expansion Approach to Simulation of Stochastic Forward-Looking Models with an Application to a Non-Linear Phillips Curve”, Computational Economics, 17, 125 – 139.
•
COLLARD Fabrice, 2001, “Stochastic simulations with Dynare: A practical guide”, 8p, disponible sur http://www.dynare.com.
•
COLLARD Fabrice, Michel JUILLARD et Sébastien VILLEMOT, 2009, “Stochastic Simulations with Dynare. Apratical guide (Adapted for Dynare 4.1)”, disponible sur http://www.dynare.com.
•
FAIR Ray C. et John B. Taylor, 1983, “Solution and Maximum Likelihood Estimation of Dynamic Nonlinear Rational Expectations Models”, Econometrica, 51 (4): 1169 – 1186.
•
FERNANDEZ-VILLAVERDE Jesus et Juan RUBIO-RAMIREZ, 2004, “Comparing Dynamic Equilibrium Economies to Data: A Bayesian Approach”, Journal of Econometrics, 123, 153 – 187.
•
HEER Burkhard et Alfred MAUßNER, 2009, Dynamic General Equilibrium Modeling. Computational Methods and Applications, Second Edition Springer – Verlag, Berlin, 702p.
•
KIM Jinill, Sunghyun KIM, Ernst SCHAUMBURG, et Christopher A. SIMS, 2008, “Calculating and using second-order accurate solutions of discrete time dynamic equilibrium models,” Journal of Economic Dynamics and Control, 32(11): 3397 – 3414.
•
JUDD Kenneth L., 1996, “Approximation, Perturbation, and Projection Methods in Economic Analysis”, 511-585. Hans Amman, David Kendrick, and John Rust. Handbook of Computational Economics. 1996. North Holland Press.
•
JUDD Kenneth L., 1998, Numerical Methods in Economics, MIT Press, Cambridge, MA, 656p.
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
109
•
JUILLARD Michel, 1996, “DYNARE : A Program for the Resolution and Simulation of Dynamic Models with Forward Variables Through the Use of a Relaxation Algorithm”, CEPREMAP Working Paper 9602, 13p. Disponible sur http://www.cepremap.fr/depot/couv_orange/co9602.pdf.
•
JUILLARD Michel, 2001, “A Higher-Order Taylor Expansion Approach to Simulation of Stochastic Forward-Looking Models with an Application to a Non-Linear Phillips Curve”, Computational Economics, 17, 125-139.
•
KING Robert G. et Mark W. WATSON, 1998, "The Solution of Singular Linear Difference Systems under Rational Expectations", International Economic Review, 4(39): 1015 – 1026.
•
LAFFARGUE Jean – Pierre, 1990, « Résolution d’un Modèle Macroéconomique avec Anticipations Rationnelles », Annales d’Economie et de Statistique, 17, 97 – 199.
•
LOKOTA Michel – Ange et Jean – Paul TSASA, 2014, « Aperçu du Développement de la Macroanalyse », Fiche Technique Laréq, Série Alpha–I, 1, 1 – 15.
•
MAKAMBO Israël et Jean – Paul TSASA, 2014, « Conditions Initiales et Terminales sur Dynare », Fiche Technique Laréq, Série Alpha–I, 5, 36 – 50.
•
MATATA Amsini et Jean – Paul TSASA, 2014, « Déclaration des Variables et Paramètres sur Dynare », Fiche Technique Laréq, Série Alpha–I, 5, 36 – 50.
•
MAVUNGU Marina et Jean – Paul TSASA, 2014, « Conventions Dynare », Fiche Technique Laréq, Série Alpha–I, 4, 32 – 35.
•
MAVUNGU Marina et Jean – Paul TSASA, 2014, « Déclaration d’un modèle sur Dynare », Fiche Technique Laréq, Série Alpha–I, 6, 51 – 57.
•
MAVUNGU Marina, Jean – Paul TSASA et Yves TOGBA, 2014, « Simulations déterministes sur Dynare », Fiche Technique Laréq, Série Alpha–I, 11, 87 – 92.
•
SCHMITT – GROHE Stephanie et Martin URIBE, 2004, “Solving Dynamic General Equilibrium Models using a Second – Order Approximation to the Policy Function”, Journal of Economic Dynamics and Control, 28 (4): 755 – 775.
•
SIMS Christopher A., 2002, “Solving Linear Rational Expectations Models”, Computational Economics (octobre), 20 (1 – 2): 1–20.
•
TOGBA Yves et Jean – Paul TSASA, 2014, « Eléments Connexes de la Plateforme Dynare, Installation et Configuration », Fiche Technique Laréq, Série Alpha–I, 2, 16 – 24.
•
TOMBOLA Cédrick et Jean – Paul TSASA, 2014, « Premiers pas avec Dynare », Fiche Technique Laréq, Série Alpha–I, 3, 25 – 31.
•
TSASA Jean – Paul, (octobre) 2012, « Construction et Application d’un Modèle DSGE pour la RDC : Analyse comparée des estimations bayésiennes et VAR », Discussion Paper Laréq (octobre), S2, DPN 001, 1 – 71.
•
UHLIG Harold, 1999, “A toolkit for analysing nonlinear dynamic stochastic models easilyi, dans Computational Methods for the Study of Dynamic Economics, ed. by R. Marimon and A. Scott, Oxford University Press, 30 – 61.
•
VILLEMOT Sébastien, 2011, “Solving rational expectations models at first order: what Dynare does”, Dynare Working Papers, 2, CEPREMAP, 10p. Disponible sur: http://www.dynare.org/wp-repo/dynarewp002.pdf.
110
Jean-Paul K. Tsasa Simulations stochastiques sur Dynare
Fiche technique Laréq, Série alpha–I, Num. 12, pp. 93 – 110 Jean-Paul K. Tsasa
111