Un modèle à deux agents des inégalités.

Cycles et fluctuations - AE2E6

Importer l’émulation Dynare.

Code
from dyno import dynare

Préférence pour la richesse et propension marginale à consommer

Pour l’instant, nous considérons un agent représentatif unique. Il peut acheter une obligation à deux périodes, qui rapporte 1 après une période. Le prix de l’obligation à la date \(t\) est \(q\), donc son taux d’intérêt (sans risque) est \(r=1/q\).

L’agent valorise la consommation \(c_t\) et la richesse \(b_t q_t\), et il maximise1 :

\[\max \sum_t \beta^t \left( \frac{c_t^{1-\frac{1}{\sigma}}}{1-\frac{1}{\sigma}}+ \varphi \frac{ (1+b_t q_t)^{1-\frac{1}{\eta}} } {1-\frac{1}{\eta}} \right)\]

sous la contrainte budgétaire

\[c_t = y_t + b_{t-1} - b_t q_t\]

\(y_t\) est un revenu exogène suivant un AR1

\[(y_t-\overline{y})=\rho (y_{t-1}-\overline{y}) + \epsilon^y_t\]

  1. Écrivez la condition d’optimalité pour les détentions de dette.

On obtient :

\[q_t = \beta \left(\frac{c_{t+1}}{c_{t}}\right)^{-\frac{1}{\sigma}}+\varphi\frac{ \left(1 + b_t q_t\right)^{-\frac{1}{\eta}}}{\left(c_{t}\right)^{-\frac{1}{\sigma}}}\]

  1. Quelles sont les équations qui définissent l’équilibre déterministe ?

À l’équilibre, la dernière équation devient : \[q = \beta + \varphi \frac{\left(1 + b q\right)^{-\frac{1}{\eta}}}{c^{-\frac{1}{\sigma}}}\]

  1. Inspectez et exécutez le modèle one_agent.mod. Montrez qu’il existe une racine unitaire. Pouvez-vous l’interpréter ?
Code
report = dynare("one_agent.mod")
report
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.
Could not normalize the static model. Variable b is not in the maximum cardinality matching.

Model: one_agent

equations 3
variables 4
  endogenous 3 y, c, b
  exogenous 1 e_y
constants 13 bbar, beta, cbar, chi, eta, phi, q, r, rho, sig_y, sigma, ybar, zbar

Check


Residuals
eq 1
0
eq 2
0
eq 3
0

Generalized Eigenvalues
1
0
2
0
3
1
4
1.04
5
inf
6
inf

Decision Rule

Steady-state

y c b
1.0 1.0 0.0

Jacobian

y[t-1] c[t-1] b[t-1] e_y[t]
y[t] 0.0 0.0 0.000000 1.000000
c[t] 0.0 0.0 0.038462 0.038462
b[t] 0.0 0.0 1.000000 1.000000

Moments


Theoretical Moments


Mean Std. Dev. Variance
VARIABLE
y 1.0000 0.0100 0.0001
c 1.0000 25811.1015 NaN
b 0.0000 671088.6400 NaN

Unconditional Covariances


y c b
y 0.000100 0.000004 0.0001
c 0.000004 NaN NaN
b 0.000100 NaN NaN

Conditional Covariances


y c b
y 0.000100 3.846154e-06 0.000100
c 0.000004 1.479290e-07 0.000004
b 0.000100 3.846154e-06 0.000100

Simulation


e_yy0400.010c0400.0003850b0400.010

Le modèle one_agent.mod est un modèle standard d’épargne-consommation sans préférence pour la richesse.

En général, si la solution d’un modèle est \(y_t = A y_{t-1}\), où \(y_t\) est le vecteur des variables, on a une racine unitaire quand l’une des valeurs propres de \(A\) est égale à 1 en valeur absolue.

Dans le cas précis du modfile, on lit directement les valeurs de de A dans la jacobienne. Avec l’ordre du modfile, la matrice est triangulaire supérieure et on voit que la dynamique de la dette est b[t]=1.0 b[t-1] + 0.1 e_y[t], c’est à dire un AR1 avec une persistance parfaite.

Les lignes correspondent aux états (prédéterminés). Les variables non prédéterminées n’apparaissent pas en lignes (ou, de façon équivalente, avec des zéros partout).

Ici, on voit que \(b_t\) est le seul état endogène. On voit aussi que sa dynamique est :

\[b_t = 1.0 b_{t-1} + 0.1 e_{y,t}\]

Autrement dit, la dynamique de \(b\) est un AR1 avec une persistance parfaite.

Ce comportement (comme dans une économie ouverte) vient du fait que tout niveau de dette de long terme est possible (dans un modèle déterministe). Les chocs peuvent donc affecter durablement l’état stationnaire.

  1. Quelle est la réponse de la consommation à un choc temporaire de revenu ? À un choc permanent ? (avec autocorrélation \(\rho=0.9\) et \(\rho=1.0\))

Modifier l’équation de revenu :

  • pour un choc temporaire, retirer le terme autorégressif pour obtenir : y = ybar + e_y
  • pour un choc persistant, définir un nouveau paramètre dans la ligne des paramètres avec rho=0.9, puis utiliser : y - ybar = rho*(y(-1) - ybar) + e_y. Dans le cas rho=1.0, noter l’apparition d’une deuxième racine unitaire.

Dans les simulations, faire attention à la taille du choc e_y (1% par défaut) afin de la comparer à l’amplitude de la réponse des actifs b.

Dans toutes les simulations, l’effet persistant du choc sur le niveau de dette provient de la présence d’une racine unitaire.

  1. Dans le modfile, ajoutez un terme de préférence pour la richesse dans la fonction d’utilité et ajustez la calibration de beta en conséquence.

Les paramètres phi et eta sont déjà prédéfinis.

Ajouter + phi*(1+b*q)^(-1/eta)/(c^(-1/sigma)) à l’équation d’Euler et beta = 1/r - phi*(1+bbar*q)^(-1/eta)/(cbar^(-1/sigma)); dans la définition des paramètres.

La simulation ne se lance que si la commande check réussit, en particulier quand l’état stationnaire est bien satisfait. Sinon, il faut ajuster les équations/la calibration.

Le résultat est dans le fichier one_agent_2.mod.

Ici, on voit qu’une racine unitaire a disparu, car la préférence pour la richesse épingle les détentions d’actifs d’équilibre.

  1. Simulez la réponse à un choc temporaire et à un choc persistant. Pour un phi donné, quel est l’effet de eta ?

La réponse de l’épargne à un choc transitoire est maintenant de retour vers la moyenne, tandis que la réponse à un choc persistant reste persistante et peut même augmenter au cours du temps.

eta affecte le niveau d’épargne de long terme en réponse à un choc temporaire de revenu. (Par curiosité, vous pouvez vérifier que cela ne dépend pas de phi).

Un modèle à deux agents

Nous supposons maintenant qu’il existe deux types d’agents : les bas revenus et les hauts revenus. Les hauts revenus représentent une fraction \(\chi\) de la population totale. Ensemble, ils perçoivent une fraction \(z\in[0,1]\) de la production totale \(y\), qui suit un processus AR1 comme dans la première partie. Le reste revient aux bas revenus.

Les hauts revenus peuvent épargner en prêtant aux bas revenus. On note \(B_t\) la quantité totale d’obligations sans risque, échangées au prix \(q_t\). Noter que la dette par tête est \(\frac{B_t}{\chi}\) pour les hauts revenus et \(\frac{B_t}{1-\chi}\) pour les bas revenus. Les hauts revenus ont une préférence pour la richesse comme dans la première partie, tandis que les bas revenus ont des préférences standards (avec \(\varphi=0\)).

  1. Écrivez les équations budgétaires des deux agents. Quelles sont les nouvelles équations d’Euler ? Vérifiez la cohérence avec le modfile two_agents.mod. Quelles sont les variables par tête ?

Les contraintes budgétaires sont incluses dans le modfile.

Variables par tête : c_t, c_b, b_t et b_b.

  1. Quel est qualitativement l’effet d’un choc redistributif permanent ? (simulez le modèle)
Code
report = dynare("two_agents.mod")

Avec une hausse du revenu des hauts revenus, ces derniers souhaitent augmenter leurs détentions d’actifs. Cela se produit car les bas revenus sont indifférents à l’état stationnaire. Pendant la transition, on observe toutefois une baisse du taux d’intérêt (pour convaincre les emprunteurs d’accepter une trajectoire de consommation décroissante).

Calibration et simulation du modèle

Le modèle dans le modfile est pré-calibré pour reproduire les données américaines de 1983. On suppose que le modèle est à l’équilibre pour un niveau initial de dette \(B=0.91\) (ratio dette/PIB aux États-Unis en 1983).

En prenant \(\varphi=0.05\) comme constante, pour tout choix donné de \(\eta\), il existe une valeur unique de \(\beta\) compatible avec l’équilibre, comme dans le cas à un agent.

Nous voulons maintenant calibrer la valeur de \(\eta\) pour reproduire la propension marginale à épargner des hauts revenus, qui était d’environ 50% en 1983.

Comme le modèle à deux agents est déjà calibré pour la plupart des variables, on le réutilise plutôt que d’adapter le modèle à un agent.

  1. Dans le modèle two_agents.mod, remplacez l’équation d’Euler du bas revenu par q = 1/rbar. Justifiez pourquoi, du point de vue des hauts revenus, le modèle est alors équivalent à un modèle à un agent.

Le taux d’intérêt est la seule manifestation des préférences des bas revenus dans le modèle. Si on le fixe à une constante, les hauts revenus font face à une demande d’obligations infiniment élastique, comme dans le cas à un agent.

  1. Utilisez le modèle modifié pour calculer la propension marginale à partir d’un choc permanent de revenu après 6 périodes. Choisissez le paramètre eta pour que cette p.m.e. soit approximativement de 50%.

Plusieurs options sont possibles. On peut simplement appliquer un choc persistant de taille sig_z au revenu global \(y\) et calculer la propension marginale à épargner à différentes périodes (variable mps). Elle doit être normalisée par le niveau initial de revenu des hauts revenus. On peut ensuite faire des calculs pour différentes valeurs de \(eta\) jusqu’à trouver la valeur souhaitée.

Le modèle modifié est two_agents_mps.mod. J’ai trouvé que eta=0.6 est une bonne calibration. Noter que dans ce modèle modifié, le taux d’intérêt est fixé, de sorte que les deux agents sont essentiellement découplés et que le modèle est équivalent à un modèle à un agent pour les hauts revenus.

Code
report = dynare("two_agents_mps.mod")
report.simulation['e_y'][['mps']][:7]
mps
0 0.000000
1 0.121383
2 0.228505
3 0.322829
4 0.405671
5 0.478216
6 0.541528
  1. Quel est l’effet d’une hausse permanente de 10% des inégalités ? Sur 30 ans et à long terme ?
Code
from matplotlib import pyplot as plt

# charger le modèle original à deux agents
report = dynare("two_agents.mod")
df = report.simulation['e_z'] 

fig, axs = plt.subplots(3, 2, figsize=(8, 6))
axs[0, 0].plot(df['z'])
axs[0, 0].set_title('Choc d\'inégalité')
axs[0, 0].grid(True)
axs[0, 1].plot(df['r'])
axs[0, 1].set_title('Taux d\'intérêt')
axs[0, 1].grid(True)
axs[1, 0].plot(df['b_t'], label='Actifs hauts revenus')
axs[1, 0].set_title('Actifs hauts revenus')
axs[1, 0].grid(True)
axs[1, 1].plot(df['b_b'], label='Actifs bas revenus')
axs[1, 1].set_title('Actifs bas revenus')
axs[1, 1].grid(True)
axs[2, 1].plot(df['c_b'])
axs[2, 1].set_title('Consommation bas revenus')
axs[2, 1].grid(True)
axs[2,0].plot(df['c_t'])
axs[2,0].set_title('Consommation hauts revenus')
axs[2,0].grid(True)
plt.tight_layout()
plt.show()

Une hausse permanente de 10% des inégalités (part de revenu plus élevée pour les hauts revenus) engendre une réallocation de richesse importante et persistante.

Sur 30 ans :

  • Le choc d’inégalité est permanent (z saute et reste élevé).
  • Les hauts revenus accumulent progressivement des actifs (b_t augmente fortement).
  • Les bas revenus accumulent de la dette (b_b devient plus négatif).
  • La consommation des hauts revenus saute à l’impact puis continue d’augmenter graduellement.
  • La consommation des bas revenus chute fortement à l’impact puis continue de diminuer progressivement.
  • Le taux d’intérêt baisse à l’impact (écart négatif), puis revient lentement vers son niveau initial. L’ajustement passe donc à la fois par les prix (r) et les quantités (actifs/dette), avec un effet quantitatif dominant à long terme.

À long terme :

  • Un nouvel état stationnaire avec des détentions nettes d’actifs bien plus élevées pour les hauts revenus et un endettement plus important pour les bas revenus.
  • Une divergence persistante des consommations : c_t plus élevée, c_b plus faible.
  • Le choc a donc des effets distributifs permanents sur les inégalités de richesse et de consommation, et pas seulement des effets transitoires.

Footnotes

  1. il s’agit de la spécification de “préférence pour la richesse”↩︎