# 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 ».