Leçon gratuite · Risque · 5 min de lecture

La simulation Monte Carlo : VaR et TVaR d’un portefeuille

Combien un assureur peut-il perdre lors d’une très mauvaise année ? La moyenne ne le dit pas : il faut toute la distribution de la charge des sinistres. La simulation Monte Carlo la construit en rejouant l’année des milliers de fois. Lancez-la vous-même, puis lisez comment elle fonctionne.

Dans cette leçon 8 parties
  1. Le problème : la moyenne ne suffit pas
  2. La méthode en trois étapes
  3. Lire la VaR et la TVaR
  4. Pourquoi les résultats bougent à chaque lancement
  5. Ce qui fait grossir la queue
  6. Le même calcul en Python
  7. Ce qu’il faut retenir
  8. Pour aller plus loin

Le simulateur

Un portefeuille de 1 000 contrats. Réglez les hypothèses : la simulation se relance aussitôt.

Coefficient de variation : plus il est élevé, plus les gros sinistres pèsent.
Charge moyenne150 000 €Théorique : 50 × 3 000 € = 150 000 €
VaR à 99,5 %≈ 330 000 €Dépassée une année sur 200
TVaR à 99,5 %≈ 390 000 €Moyenne des années au-delà de la VaR
Capital au-delà de la moyenne≈ 180 000 €VaR moins charge moyenne
Répartition des charges annuelles simulées. La zone teintée, à droite de la VaR, rassemble les pires années ; le point marque leur moyenne, la TVaR.
Voir les résultats en tableau
Résultats de la simulation
SimulationLe simulateur a besoin de JavaScript.

Le problème : la moyenne ne suffit pas

Prenons un portefeuille de 1 000 contrats habitation. Chaque contrat a 5 % de chances par an de déclarer un sinistre, et un sinistre coûte 3 000 € en moyenne. La charge moyenne vaut donc 50 × 3 000 = 150 000 € par an : c’est la prime pure du portefeuille.

Mais un assureur doit aussi tenir pendant les mauvaises années : plus de sinistres que prévu, ou quelques sinistres très coûteux. Solvabilité 2 lui demande de résister à une année qui ne se produit qu’une fois sur 200. Pour la chiffrer, il faut toute la distribution de la charge totale S = X1 + … + XN, et pas seulement sa moyenne. Or cette distribution n’a presque jamais de formule simple. D’où l’idée de la simuler.

La méthode en trois étapes

  1. Tirer le nombre de sinistres de l’année, N, selon une loi de Poisson de moyenne λ = 1 000 × 5 % = 50.
  2. Tirer le coût de chacun de ces sinistres selon une loi lognormale de moyenne 3 000 € : la plupart sont modestes, quelques-uns très chers.
  3. Additionner : on obtient la charge d’une année simulée. On recommence 10 000 fois.

Les 10 000 charges simulées forment une distribution. On y lit la moyenne, mais surtout la queue : les pires années. C’est le modèle collectif, rejoué des milliers de fois.

Lire la VaR et la TVaR

  • La VaR à 99,5 % est la charge dépassée une année sur 200 seulement. Sur 10 000 années simulées, c’est à peu près la 50e pire.
  • La TVaR à 99,5 % est la moyenne de ces années au-delà de la VaR. Elle dit combien on perd, en moyenne, quand on tombe dans la queue.
  • Le capital au-delà de la moyenne, VaR moins charge moyenne, donne l’ordre de grandeur des fonds propres à immobiliser pour traverser cette année-là. C’est l’idée qui sous-tend le capital de solvabilité requis de Solvabilité 2.

Avec les réglages par défaut, la VaR à 99,5 % tourne autour de 330 000 €, plus du double de la charge moyenne, et la TVaR autour de 390 000 €.

Pourquoi les résultats bougent à chaque lancement

Une simulation est un échantillon : relancez-la, la VaR change un peu. Plus on simule d’années, plus l’estimation est stable. Avec les réglages par défaut, la VaR estimée varie d’environ 22 000 € d’un lancement à l’autre avec 1 000 années simulées, 7 000 € avec 10 000 années et 3 000 € avec 50 000 (écart-type).

La raison : la VaR à 99,5 % ne repose que sur les 0,5 % d’années les pires. Avec 1 000 années simulées, cela fait 5 années seulement. Essayez : réglez 1 000 années, puis relancez plusieurs fois.

Ce qui fait grossir la queue

  • La dispersion des coûts. Avec un coefficient de variation de 2 plutôt que 1, la charge moyenne ne bouge pas, mais la VaR à 99,5 % passe d’environ 240 000 € à 330 000 €.
  • La rareté des sinistres. À charge moyenne égale de 150 000 €, 20 sinistres de 7 500 € en moyenne demandent un capital d’environ 310 000 €, contre 120 000 € pour 100 sinistres de 1 500 €. Plus il y a de sinistres, plus les écarts se compensent : c’est la mutualisation.

Le même calcul en Python

Une vingtaine de lignes suffisent avec NumPy :

import numpy as np

rng = np.random.default_rng(2026)
n_sim = 10000            # années simulées
lam = 1000 * 0.05        # nombre moyen de sinistres par an
moyenne, cv = 3000, 2.0  # coût moyen et coefficient de variation

# paramètres de la loi lognormale
sigma2 = np.log(1 + cv**2)
mu = np.log(moyenne) - sigma2 / 2

N = rng.poisson(lam, n_sim)                         # sinistres de chaque année
X = rng.lognormal(mu, np.sqrt(sigma2), N.sum())     # coût de chaque sinistre
annee = np.repeat(np.arange(n_sim), N)              # année de chaque sinistre
S = np.bincount(annee, weights=X, minlength=n_sim)  # charge de chaque année

var = np.quantile(S, 0.995)
tvar = S[S >= var].mean()
print(round(S.mean()), round(var), round(tvar))

Vous obtiendrez une charge moyenne proche de 150 000 € et une VaR proche de celle du simulateur.

Ce qu’il faut retenir

  • Monte Carlo remplace une formule introuvable par des milliers de tirages : fréquence, puis coûts, puis somme.
  • La moyenne sert à tarifer, la queue sert à dimensionner le capital.
  • La VaR donne un seuil, la TVaR la gravité moyenne au-delà de ce seuil.
  • Une VaR extrême demande beaucoup de simulations pour être stable.

Pour aller plus loin

À vous de jouer : estimer une TVaR à partir d’une simulation.

Les définitions précises : VaR, TVaR et modèle collectif dans le lexique.

Un modèle complet en assurance temporaire décès (1 000 contrats, 20 000 scénarios, VaR et TVaR à 99,5 %) est publié sur mon GitHub.

Envie d’aller plus loin ?

Le cours Probabilités pour l’actuariat consacre un module à la simulation : lois de fréquence et de coût, modèle collectif, Monte Carlo en Python, VaR et TVaR.