Méthodologie
MacroSim Lab reprend le corpus pédagogique de « DIY Macroeconomic Model Simulation » en corrigeant les limites qui empêchaient de l'utiliser pour un travail appliqué.
Convergence réelle, pas d'itérations arbitraires
Les systèmes simultanés sont résolus par forme réduite lorsqu'elle existe, sinon par une méthode de Newton amortie avec recherche linéaire, repliée sur un balayage de point fixe amorti. Le critère d'arrêt est max|résidu| < 1e-10 ; chaque simulation publie sa méthode, son nombre d'itérations, son résidu final et son statut. Une simulation non convergée est signalée, jamais présentée comme un résultat.
Domaines économiques validés
Chaque variable déclare son domaine admissible : taux d'emploi dans [0,1], prix et stocks positifs, parts distributives bornées, arguments de logarithme strictement positifs. Toute sortie du domaine génère une alerte lisible indiquant la variable, la période et la valeur fautive, au lieu d'un NaN silencieux propagé dans les graphiques.
Cohérence stock-flux
Pour les modèles du circuit monétaire, les stocks financiers sont accumulés à partir de leurs propres flux, indépendamment de la richesse des ménages. Le résidu actif–passif est recalculé à chaque période : s'il dépasse la tolérance, la simulation est marquée invalide.
Paramètres estimés, pas seulement pédagogiques
Les valeurs par défaut restent lisibles pour l'enseignement, mais la calibration empirique permet d'estimer les paramètres estimables par moindres carrés ou méthode des moments sur des séries importées (FRED, Banque mondiale / FMI, ou fichier CSV), avec écarts-types et indicateurs d'ajustement.
Incertitude et sensibilité
Élasticités locales par différences centrées, balayages 1D et 2D avec cartographie des régimes (par exemple zones wage-led / profit-led), diagrammes de bifurcation, et simulations Monte-Carlo produisant des bandes de confiance 5–95 %. Les tirages qui violent un domaine sont écartés et comptabilisés.
Stabilité analytique
Pour les modèles dynamiques, l'état stationnaire est recherché comme point fixe de l'application de transition, puis le jacobien est calculé numériquement et ses valeurs propres extraites. Le verdict distingue convergence monotone, convergence oscillatoire, instabilité et cas limite de bifurcation.
Formulations débattues, rendues explicites
La fonction d'investissement néoclassique est proposée en variantes commutables (coût d'usage du capital, q de Tobin, accélérateur flexible) plutôt qu'imposée dans une seule écriture. Le choix de spécification est un paramètre du modèle, visible et documenté dans les exports.
R et Python
Le moteur s'exécute en TypeScript pour rester instantané et sans serveur de calcul. R et Python sont les langages de sortie : chaque scénario génère un script commenté contenant la paramétrisation, les chocs et les équations, à exécuter avec nleqslv ou scipy.optimize.root — c'est-à-dire avec un vrai critère de convergence, comme dans l'application.