SPB Git

# Chapitre 40 — Monte-Carlo et stress tests — bilan de rédaction (2026-10-31)

# Livrables

  • manuscript/chapters/ch40.tex : ≈ 11 900 mots de prose (hors tableaux et équations), 8 sections (40.1 de la sensibilité à la simulation → 40.8 portefeuille) + exercices + « Pour aller plus loin » ; 21 équations numérotées (dont 7 align), 1 définition, 2 propositions et 1 théorème avec démonstrations, 1 exemple intégral (cas 3 de bout en bout), 8 tableaux, 7 figures, encadrés objectifs, synthetique, quebec, erreurs, limites, synthese, 6 exercices (niveaux 1-1-2-2-3-3). 16 clés bibliographiques citées, toutes déjà dans references/library.bib.
  • analysis/python/cases/ch40_montecarlo.py : importe sans les redéfinir MC_LOIS, R_T_PLANCHER, GRAINE (20261031), tirer, projeter_vectorise, valeur_vectorisee, monte_carlo, tornade de ch47_dossier.py ; ajoute moments théoriques / quantiles / élicitation / bêta-PERT, Cholesky + copule gaussienne + corrélation r–R_T, erreur de Monte-Carlo (théorique vs 300 répétitions), convergence (suite de 100 000 tirages), écart-type empirique selon N, hypercube latin (hypercube_latin, tirer_lhs, comparer_lhs), VaR/CVaR, RCD₁ analytique, stress déterministes avec probabilité attachée, stress inversé (Brent), indices de Sobol S₁/S_T par échantillons appariés (centrage), corrélations de rang, régression standardisée, simuler_portefeuille (cas 4) et comparer_structures_correlation, exercices. Exécution ≈ 10 s (--rapide ≈ 2 s).
  • analysis/python/figures/ch40_figures.py → assets/figures/ch40/ch40-fig-{distribution,convergence,nuage,sobol,rcd,lhs,portefeuille}.pdf (style traite.style, 135 mm ; à exécuter sans --rapide pour que les chiffres de la figure LHS coïncident avec le texte).
  • analysis/python/tests/test_ch40.py : 15 tests — vert (15 passed, 1,3 s). Vérifient notamment : mêmes objets MC_LOIS/graine que ch47 ; médiane 2 191 607,87, q05 1 735 194,21, q95 2 876 902,35, P(RCD₁<1,20) 0,4936, P(RCD₁<1) 0 ; evaluer() = monte_carlo() tirage par tirage ; formules fermées des lois = scipy ; Cholesky/copule ; erreur type théorique vs empirique ; pente −1/2 ; LHS (une strate par point, P(RCD₁<1,20) exactement 0,5) ; VaR/CVaR ; RCD₁ affine ; stress et stress inversé ; Sobol ; corrélation intra/inter-RMR du modèle factoriel ; valeurs citées du portefeuille ; exercices.
  • solutions/ch40.tex : 6 solutions détaillées (chiffres de exercices()).
  • verification/chapters/ch40-figures.csv (7), ch40-calculations.csv (26), ch40-claims.csv (19), ch40-registry.csv (4 sources vérifiées, non citées), references/lib-ch40.bib (4 entrées vérifiées par DOI le 2026-10-31 : McKay–Beckman–Conover 1979, Sobol' 2001, Artzner et al. 1999, Rockafellar–Uryasev 2000 — proposées pour fusion ; le texte ne cite que des clés de library.bib).

# Contrôles

  • tools/compile_chapter.sh 40 → OK ch40 : 40 pages, 0 references/citations non definies, 0 overfull hbox.
  • python3 -m pytest -q analysis/python/tests/test_ch40.py → 15 passed.
  • python3 tools/check_manuscript.py --no-log : aucune remarque propre au ch. 40 autre que les 7 figures absentes du verification/figures.csv global (lignes fournies dans ch40-figures.csv, fusion par l'orchestrateur).
  • Inspection visuelle (pdftoppm -r 50/55) des pages 1, 6, 9, 13, 17, 21, 27, 31 + pages des tableaux retouchés : tableaux dans la justification, figures à la largeur du texte, encadrés corrects.

# Chiffres pivots (identiques au ch. 47 §47.12)

Cas 3, 10 000 tirages, graine 20261031 : médiane 2 191 608 $, moyenne 2 233 506, écart-type 350 443 (CV 15,7 %), IC 90 % [1 735 194 ; 2 876 902], P(V < V_cap) 30,9 %, P(V < 2 M$) 26,5 %, P(V < rôle) 51,2 %, P(RCD₁ < 1,20) = 49,4 % (exact 0,5), P(RCD₁ < 1) = 0 (exact 2·10⁻⁵), P(RCD₆ < 1,20 | +200 pb) 1,4 %. Nouveaux : erreur type (N = 10 000) médiane 4 135 $, q05 4 756 $, q95 10 621 $, moyenne 3 504 $ (empirique sur 300 graines : 4 277 / 4 654 / 10 862 / 3 590) ; la graine 20261031 est une réalisation défavorable : médiane à z = −2,87 (rang 1/300 ; moyenne des médianes 2 203 873 $) — déclaré dans le texte, graine conservée ; suite de 100 000 tirages : médiane 2 203 500, q05 1 744 070, q95 2 895 770 ; pente log-log −0,501 ; LHS (N = 1 000, 100 rép.) : variance de la moyenne ÷ 105, médiane ÷ 2,8, q05 ÷ 1,4, q95 ÷ 1,9 ; VaR₅ 473 372 $ (21,4 %), CVaR₅ 557 097 $ (25,2 %) ; corrélation r–R_T 0,781 (théorie = empirique), Spearman 0,769 vs 0,766 ; Sobol S₁ : r 0,528, g_m 0,248, δ 0,134, g_d 0,043, v 0,020, rotation 0,013, CAPEX 0,003 (somme 0,989 ; R² linéaire 0,955) ; stress : hausse des taux ch. 30 −11,8 % ↔ P 20,7 % ; 7 quantiles 90 % −33,7 % ↔ P 0,13 % ; stress inversé v = 13,33 % (RCD₁ = 1), r = 7,72 % (V = 2 M$), R_T = 5,62 % ou g_m = 2,33 % (V = V_cap). Cas 4 (48 immeubles, 1 an, σ_R 50 pb, ρ_prov 0,30 / ρ_rmr 0,60) : référence 147 936 k$, σ_P 10 295 k$, VaR₅ 14 064 k$, CVaR₅ 17 389 k$, ratio de diversification 0,643 (0,201 indépendance ; 0,998 parfaite) ; E[n(RCD<1,20)] 10,2 et E[n(RCD<1)] 4,9 quelle que soit la corrélation (5 et 1 sans choc) ; avec σ_g = 10 % : q95(n<1) 8 / 10 / 11, P(n<1 > 10) 0 / 1,9 / 5,1 %.

# Fonction réutilisable pour le ch. 48

ch40_montecarlo.simuler_portefeuille(pf, n=10_000, graine=20261031, sigma_R=0.005, rho_rmr=0.60, rho_prov=0.30, croissance=None, sigma_g_defaut=0.03, choc_taux_renouvellement=0.02, horizon_renouvellement=2028, amortissement_mois=480, seuil_rcd=1.20) -> dict

  • pf : cas4_portefeuille.csv (colonnes id_immeuble, rmr, rne_2026, taux_global, valeur_2026, dette, taux_dette, echeance_dette) ; croissance : sortie de traite.cas4.croissance_rne(series) (g_i et σ_g,i par immeuble) ; sinon g = 0 et σ_g = sigma_g_defaut.
  • Modèle : ln RNE_i' = ln RNE_i + g_i + σ_g,i e_i ; R_i' = max(R_i + σ_R u_i, 2 %) ; V_i' = RNE_i'/R_i' ; e_i, u_i = √ρ_prov Z₀ + √(ρ_rmr − ρ_prov) Z_k(i) + √(1 − ρ_rmr) ε_i (facteurs indépendants pour RNE et taux) ⇒ Corr = ρ_rmr intra-RMR, ρ_prov inter-RMR (test : ±0,05). RCD_i = RNE_i'/SD_i avec fin.Hypotheque(dette, taux (+choc si échéance ≤ horizon), amortissement).
  • Retour : valeurs (n × N), valeur_portefeuille, rne, rcd, service_dette, par_rmr (écart-type de la valeur par RMR), stats (médiane, moyenne, écart-type, q05/q95, VaR05/CVaR05 vs valeur déterministe à un an, somme des écarts-types, ratio_diversification, nb_rcd_sous_seuil_moyen/q95, nb_rcd_sous_1_moyen/q95, P_plus_de_10_sous_1, rcd_portefeuille_mediane, comptages déterministes, nb_renouvellements_stress, rpv_portefeuille).
  • comparer_structures_correlation(pf, croissance, n, **kw) : tableau indépendance / régionale / parfaite. Extensible à un troisième niveau de facteur (zone inondable, ch. 43).

# Points non vérifiés / à harmoniser

  1. CLM-40-017 (non_verifie) : affirmation générale sur l'excès de confiance des experts élicités (fourchettes trop étroites) — sans source ; à sourcer ou à atténuer.
  2. CLM-40-011/013 (partiellement_verifie) : pourcentage TAL 3,1 % et couverture SCHL 2,4–6,3 % repris des ch. 30/47 sans relecture des sources dans ce chapitre.
  3. Références fondatrices (LHS, Sobol, VaR cohérente, CVaR) vérifiées mais non citées (règle de collision) : après fusion de lib-ch40.bib, ajouter les \parencite aux §40.4, §40.5 et §40.6 (le texte dit « résultat classique » / « identité classique »).
  4. Les hypothèses du portefeuille (ρ 0,30/0,60 ; amortissement 480 mois ; +200 pb sur les échéances ≤ 2028 ; σ_g,i estimé sur 2016-2026) sont pédagogiques et déclarées ; le ch. 48 devra les remplacer par des estimations ou les reprendre explicitement. Le ch. 48 (en cours de rédaction en parallèle) a sa propre figure ch48-fig-montecarlo.pdf : vérifier la cohérence des paramètres lors de l'harmonisation.
  5. La graine 20261031 est une réalisation défavorable (z = −2,87 sur la médiane) : le chapitre le déclare et explique pourquoi on ne change pas de graine ; l'orchestrateur peut décider d'harmoniser la formulation du ch. 47 (« médiane 2 191 608 $ » → ajouter « erreur type ≈ 4 100 $ »).
  6. verification/figures.csv, calculations.csv, claims.csv, sources/registry.csv, library.bib globaux non modifiés (fichiers par chapitre fournis).

# Suggestions d'harmonisation

  • Ch. 47 §47.12 : mentionner l'erreur de Monte-Carlo (4 100 $ sur la médiane, 0,5 point sur les probabilités) et renvoyer à \cref{sec:40:erreur} ; la probabilité exacte P(RCD₁<1,20) = 0,5 (prêt calibré au seuil = médiane de v) peut y être signalée.
  • Ch. 30 §30.6 : la tornade du ch. 30 utilise des bornes hétérogènes (±50 pb, ±25 pb, 2,5/4,5 %…), celle du ch. 47 des quantiles 10-90 homogènes ; le ch. 40 explique la différence de classement (croissances vs taux) par ce choix de bornes — un renvoi croisé explicite dans le ch. 30 serait utile.
  • Glossaire : ajouter « hypercube latin », « indice de Sobol », « VaR / CVaR de valeur », « copule gaussienne », « stress test inversé », « ratio de diversification ».
Files · d2b579d9e218b409826a327e9268215b1d11dd98
Menu

Theme