1. Contexte et objectifs

Une compagnie d’assurance spécialisée dans l’assurance automobile souhaite analyser le risque associé à son portefeuille afin d’évaluer sa rentabilité, sa sinistralité et sa capacité à absorber des événements défavorables.

L’objectif de ce projet est de réaliser une analyse actuarielle complète du portefeuille à partir des données observées sur les cinq dernières années.

L’étude porte notamment sur :

  • l’évolution du nombre de contrats ;
  • la fréquence des sinistres ;
  • le coût moyen des sinistres ;
  • la charge moyenne des sinistres par contrat ;
  • le ratio de sinistres ;
  • le résultat technique ;
  • la volatilité du résultat ;
  • la simulation du nombre de sinistres ;
  • l’évaluation du risque extrême à l’aide de la VaR et de l’Expected Shortfall ;
  • l’analyse de l’adéquation du capital ;
  • la réalisation d’un stress test.

L’analyse permettra ainsi de relier les indicateurs classiques de tarification aux problématiques de gestion des risques et de solvabilité.

2. Présentation des données

La compagnie dispose des données suivantes pour la période 2021–2025.

donnees <- data.frame(
  Annee = c(2021, 2022, 2023, 2024, 2025),
  Contrats = c(8000, 8500, 9000, 9500, 10000),
  Sinistres = c(520, 595, 630, 760, 850),
  Cout_sinistres = c(
    312000000,
    386750000,
    415800000,
    547200000,
    637500000
  ),
  Primes = c(
    480000000,
    535500000,
    585000000,
    665000000,
    750000000
  )
)

donnees
##   Annee Contrats Sinistres Cout_sinistres    Primes
## 1  2021     8000       520      312000000 480000000
## 2  2022     8500       595      386750000 535500000
## 3  2023     9000       630      415800000 585000000
## 4  2024     9500       760      547200000 665000000
## 5  2025    10000       850      637500000 750000000

Tous les montants sont exprimés en FCFA.

Le portefeuille connaît une progression régulière du nombre de contrats, passant de 8 000 contrats en 2021 à 10 000 contrats en 2025. Cette évolution s’accompagne d’une augmentation du nombre de sinistres et du coût total des sinistres.

3. Analyse de la fréquence des sinistres

La fréquence mesure le nombre moyen de sinistres observés par contrat exposé. Elle est définie par :

\[ F = \frac{N}{E} \]

\(N\) représente le nombre de sinistres et \(E\) le nombre de contrats exposés.

donnees$Frequence <-
  donnees$Sinistres /
  donnees$Contrats

donnees$Frequence_pct <-
  donnees$Frequence * 100

donnees[, c(
  "Annee",
  "Contrats",
  "Sinistres",
  "Frequence",
  "Frequence_pct"
)]
##   Annee Contrats Sinistres Frequence Frequence_pct
## 1  2021     8000       520     0.065           6.5
## 2  2022     8500       595     0.070           7.0
## 3  2023     9000       630     0.070           7.0
## 4  2024     9500       760     0.080           8.0
## 5  2025    10000       850     0.085           8.5

L’évolution de la fréquence permet d’identifier une éventuelle détérioration de la sinistralité indépendamment de la croissance du portefeuille.

4. Analyse du coût moyen des sinistres

Le coût moyen, ou sévérité moyenne, correspond au montant moyen d’un sinistre :

\[ CM = \frac{C}{N} \]

\(C\) représente le coût total des sinistres.

donnees$Cout_moyen <-
  donnees$Cout_sinistres /
  donnees$Sinistres

donnees[, c(
  "Annee",
  "Sinistres",
  "Cout_sinistres",
  "Cout_moyen"
)]
##   Annee Sinistres Cout_sinistres Cout_moyen
## 1  2021       520      312000000     600000
## 2  2022       595      386750000     650000
## 3  2023       630      415800000     660000
## 4  2024       760      547200000     720000
## 5  2025       850      637500000     750000

L’étude du coût moyen permet de distinguer une évolution de la sinistralité provenant du nombre de sinistres d’une évolution provenant de leur montant.

5. Analyse de la prime moyenne

La prime moyenne par contrat est donnée par :

\[ Prime_{moyenne} = \frac{Primes}{Contrats} \]

donnees$Prime_moyenne <-
  donnees$Primes /
  donnees$Contrats

donnees[, c(
  "Annee",
  "Contrats",
  "Primes",
  "Prime_moyenne"
)]
##   Annee Contrats    Primes Prime_moyenne
## 1  2021     8000 480000000         60000
## 2  2022     8500 535500000         63000
## 3  2023     9000 585000000         65000
## 4  2024     9500 665000000         70000
## 5  2025    10000 750000000         75000

La comparaison entre la prime moyenne et la charge moyenne des sinistres permet d’apprécier la marge disponible pour couvrir les autres charges de l’entreprise.

6. Analyse du ratio de sinistres

Le ratio de sinistres, ou Loss Ratio, mesure la part des primes consommée par les sinistres :

\[ Loss\ Ratio = \frac{Coût\ des\ sinistres} {Primes} \]

donnees$Loss_Ratio <-
  donnees$Cout_sinistres /
  donnees$Primes

donnees$Loss_Ratio_pct <-
  donnees$Loss_Ratio * 100

donnees[, c(
  "Annee",
  "Primes",
  "Cout_sinistres",
  "Loss_Ratio_pct"
)]
##   Annee    Primes Cout_sinistres Loss_Ratio_pct
## 1  2021 480000000      312000000       65.00000
## 2  2022 535500000      386750000       72.22222
## 3  2023 585000000      415800000       71.07692
## 4  2024 665000000      547200000       82.28571
## 5  2025 750000000      637500000       85.00000

Le ratio de sinistres constitue un indicateur central de la rentabilité technique du portefeuille. Une augmentation du ratio signifie qu’une part croissante des primes est consommée par les sinistres.

7. Résultat technique

Dans le cadre simplifié de cette étude, le résultat technique est défini par :

\[ Résultat\ technique = Primes - Coût\ des\ sinistres \]

donnees$Resultat_technique <-
  donnees$Primes -
  donnees$Cout_sinistres

donnees[, c(
  "Annee",
  "Primes",
  "Cout_sinistres",
  "Resultat_technique"
)]
##   Annee    Primes Cout_sinistres Resultat_technique
## 1  2021 480000000      312000000          168000000
## 2  2022 535500000      386750000          148750000
## 3  2023 585000000      415800000          169200000
## 4  2024 665000000      547200000          117800000
## 5  2025 750000000      637500000          112500000

Cette mesure constitue une première approximation de la rentabilité technique du portefeuille. Elle ne prend cependant pas en compte les frais de gestion, les commissions, les frais d’acquisition ou les charges de réassurance.

8. Analyse de la marge technique

La marge technique est définie par :

\[ Marge = \frac{Résultat\ technique} {Primes} \]

donnees$Marge <-
  donnees$Resultat_technique /
  donnees$Primes

donnees$Marge_pct <-
  donnees$Marge * 100

donnees[, c(
  "Annee",
  "Resultat_technique",
  "Marge_pct"
)]
##   Annee Resultat_technique Marge_pct
## 1  2021          168000000  35.00000
## 2  2022          148750000  27.77778
## 3  2023          169200000  28.92308
## 4  2024          117800000  17.71429
## 5  2025          112500000  15.00000

L’évolution de cette marge permet d’identifier une éventuelle dégradation de la performance technique du portefeuille.

9. Décomposition de l’évolution de la sinistralité

La charge moyenne des sinistres par contrat peut être décomposée comme suit :

\[ Charge = \frac{Coût\ total\ des\ sinistres} {Nombre\ de\ contrats} \]

et également :

\[ \boxed{ Charge = Fréquence \times Coût\ moyen } \]

donnees$Charge_par_contrat <-
  donnees$Cout_sinistres /
  donnees$Contrats

donnees[, c(
  "Annee",
  "Frequence",
  "Cout_moyen",
  "Charge_par_contrat"
)]
##   Annee Frequence Cout_moyen Charge_par_contrat
## 1  2021     0.065     600000              39000
## 2  2022     0.070     650000              45500
## 3  2023     0.070     660000              46200
## 4  2024     0.080     720000              57600
## 5  2025     0.085     750000              63750

Cette décomposition est particulièrement importante en actuariat puisqu’elle permet d’identifier les deux principales composantes du risque de sinistralité : la fréquence et la sévérité.

10. Évolution de la fréquence entre 2021 et 2025

Afin d’étudier la dynamique du portefeuille, on mesure la variation relative de la fréquence entre le début et la fin de la période :

frequence_2021 <-
  donnees$Frequence[
    donnees$Annee == 2021
  ]

frequence_2025 <-
  donnees$Frequence[
    donnees$Annee == 2025
  ]

variation_frequence <-
  (frequence_2025 / frequence_2021) - 1

variation_frequence * 100
## [1] 30.76923

Cette variation permet de mesurer la contribution de la fréquence à l’évolution globale de la charge sinistre.

11. Évolution du coût moyen

On mesure également l’évolution du coût moyen des sinistres :

cout_2021 <-
  donnees$Cout_moyen[
    donnees$Annee == 2021
  ]

cout_2025 <-
  donnees$Cout_moyen[
    donnees$Annee == 2025
  ]

variation_cout <-
  (cout_2025 / cout_2021) - 1

variation_cout * 100
## [1] 25

L’analyse conjointe de la fréquence et du coût moyen permet de déterminer si l’évolution de la charge des sinistres provient principalement d’une augmentation de la fréquence, d’une augmentation de la sévérité ou d’une combinaison des deux.

12. Analyse de la volatilité du résultat technique

L’actuaire doit également mesurer la variabilité historique du résultat technique.

L’écart-type est utilisé comme mesure de volatilité :

\[ \sigma = \sqrt{ \frac{1}{n-1} \sum_{i=1}^{n} (X_i-\bar{X})^2 } \]

ecart_type_resultat <-
  sd(donnees$Resultat_technique)

ecart_type_resultat
## [1] 26969798

Le coefficient de variation complète cette analyse :

\[ CV = \frac{\sigma} {|\mu|} \]

moyenne_resultat <-
  mean(donnees$Resultat_technique)

cv_resultat <-
  ecart_type_resultat /
  abs(moyenne_resultat)

cv_resultat
## [1] 0.1882708

Ces indicateurs permettent d’apprécier la stabilité du résultat technique au cours de la période étudiée.

13. Modélisation du nombre de sinistres

Dans une première approche, on suppose que le nombre de sinistres suit une loi de Poisson :

\[ N \sim Poisson(\lambda) \]

Le paramètre \(\lambda\) est estimé à partir de la fréquence moyenne historique.

frequence_moyenne <-
  mean(donnees$Frequence)

contrats_2026 <- 10000

lambda_2026 <-
  frequence_moyenne *
  contrats_2026

lambda_2026
## [1] 740

Le paramètre obtenu représente le nombre moyen de sinistres attendu pour un portefeuille de 10 000 contrats.

14. Simulation du nombre de sinistres

Afin d’étudier la distribution du risque, nous réalisons 10 000 simulations du nombre annuel de sinistres.

set.seed(123)

n_simulations <- 10000

sinistres_simules <-
  rpois(
    n_simulations,
    lambda = lambda_2026
  )

head(sinistres_simules)
## [1] 724 772 694 743 786 752

La distribution simulée peut être représentée graphiquement :

hist(
  sinistres_simules,
  breaks = 30,
  main = "Distribution simulée du nombre de sinistres",
  xlab = "Nombre de sinistres",
  ylab = "Fréquence"
)

Cette simulation permet de passer d’une approche déterministe à une approche probabiliste du risque.

15. Probabilité d’un scénario défavorable

La simulation permet notamment d’estimer la probabilité que le nombre de sinistres dépasse un seuil donné.

Dans notre cas, nous considérons le seuil de 700 sinistres :

prob_plus_700 <-
  mean(sinistres_simules > 700)

prob_plus_700
## [1] 0.9274
prob_plus_700 * 100
## [1] 92.74

Cette probabilité constitue un indicateur simple de la fréquence d’un scénario défavorable dans le modèle simulé.

16. Simulation du coût total des sinistres

Pour simplifier la modélisation, nous supposons que le coût moyen d’un sinistre est constant et égal à 750 000 FCFA.

Le coût total simulé est alors :

\[ S = N \times CM \]

cout_moyen <- 750000

cout_total_simule <-
  sinistres_simules *
  cout_moyen

head(cout_total_simule)
## [1] 543000000 579000000 520500000 557250000 589500000 564000000

Cette approche permet de transformer le risque de fréquence simulé en une distribution du coût total des sinistres.

17. Mesure du risque extrême : Value-at-Risk

La Value-at-Risk à 99 % correspond au quantile à 99 % de la distribution simulée du coût total :

\[ VaR_{99\%} = q_{99\%}(S) \]

VaR_99 <-
  quantile(
    cout_total_simule,
    0.99
  )

VaR_99
##       99% 
## 602250000

Nous calculons également la VaR à 95 % :

VaR_95 <-
  quantile(
    cout_total_simule,
    0.95
  )

VaR_95
##      95% 
## 5.88e+08

La VaR permet ainsi d’identifier un niveau de coût associé à un quantile élevé de la distribution des pertes simulées.

18. Expected Shortfall

La VaR ne renseigne pas directement sur l’ampleur moyenne des pertes lorsque le seuil est dépassé.

L’Expected Shortfall à 99 % est défini par :

\[ ES_{99\%} = E[S \mid S > VaR_{99\%}] \]

ES_99 <-
  mean(
    cout_total_simule[
      cout_total_simule > VaR_99
    ]
  )

ES_99
## [1] 610198454

L’Expected Shortfall complète donc la VaR en donnant une information sur la gravité moyenne des scénarios situés dans la partie la plus défavorable de la distribution.

19. Analyse de l’adéquation du capital

Supposons que la compagnie dispose actuellement d’un capital de :

\[ Capital = 700\,000\,000\ FCFA \]

Nous comparons ce montant au niveau de VaR à 99 % obtenu précédemment.

capital_disponible <- 700000000

marge_securite <-
  capital_disponible -
  as.numeric(VaR_99)

marge_securite
## [1] 97750000

On peut également automatiser la comparaison :

if (
  capital_disponible >= as.numeric(VaR_99)
) {
  print("Capital supérieur au seuil VaR 99%")
} else {
  print("Capital inférieur au seuil VaR 99%")
}
## [1] "Capital supérieur au seuil VaR 99%"

Cette comparaison constitue une analyse simplifiée de l’adéquation du capital face au risque modélisé. Dans une étude réelle, l’évaluation du capital réglementaire nécessite naturellement une modélisation beaucoup plus complète des risques.

20. Stress test

Une analyse de risque ne doit pas uniquement reposer sur les scénarios historiques ou simulés. Il est également nécessaire d’étudier des situations défavorables.

Nous considérons ici un scénario de stress caractérisé simultanément par :

  • une augmentation de 15 % de la fréquence ;
  • une augmentation de 20 % du coût moyen.

La fréquence stressée est :

\[ F_{stress} = F(1+15\%) \]

et le coût moyen stressé :

\[ CM_{stress} = CM(1+20\%) \]

frequence_stress <-
  frequence_moyenne * 1.15

cout_moyen_stress <-
  cout_moyen * 1.20

charge_stress <-
  frequence_stress *
  cout_moyen_stress

frequence_stress
## [1] 0.0851
cout_moyen_stress
## [1] 9e+05
charge_stress
## [1] 76590

Le stress test permet d’évaluer l’impact d’une détérioration simultanée de la fréquence et de la sévérité des sinistres.

21. Comparaison entre scénario central et scénario stressé

comparaison <- data.frame(
  Scenario = c(
    "Situation normale",
    "Stress test"
  ),

  Frequence = c(
    frequence_moyenne,
    frequence_stress
  ),

  Cout_moyen = c(
    cout_moyen,
    cout_moyen_stress
  ),

  Charge_par_contrat = c(
    frequence_moyenne * cout_moyen,
    charge_stress
  )
)

comparaison
##            Scenario Frequence Cout_moyen Charge_par_contrat
## 1 Situation normale    0.0740     750000              55500
## 2       Stress test    0.0851     900000              76590

Cette comparaison permet de mesurer directement l’impact du scénario défavorable sur la charge moyenne attendue par contrat.

22. Lecture actuarielle du risque

L’analyse met en évidence l’importance de distinguer les différentes composantes du risque automobile.

Le risque de sinistralité peut être décomposé selon :

\[ \boxed{ Charge\ sinistre = Fréquence \times Sévérité } \]

La fréquence mesure la probabilité ou le nombre attendu de sinistres, tandis que la sévérité mesure leur coût moyen.

Une détérioration du portefeuille peut donc provenir :

  • d’une augmentation de la fréquence ;
  • d’une augmentation du coût moyen ;
  • d’une évolution simultanée des deux composantes.

Cette décomposition constitue une base importante pour la tarification, le provisionnement et la gestion des risques.

23. Limites de la modélisation

La modélisation réalisée dans ce projet constitue une première approche simplifiée du risque automobile.

Plusieurs améliorations pourraient être apportées dans une étude actuarielle réelle.

Tout d’abord, le modèle de Poisson repose sur l’hypothèse d’une égalité entre la moyenne et la variance du nombre de sinistres. Cette hypothèse peut être insuffisante en présence de surdispersion.

Dans ce cas, une loi binomiale négative pourrait être envisagée.

Par ailleurs, le coût des sinistres a été considéré comme constant dans la simulation. En pratique, les coûts individuels présentent une distribution aléatoire et peuvent être fortement asymétriques.

Une modélisation plus réaliste pourrait donc séparer :

\[ \boxed{ Fréquence + Sévérité } \]

et utiliser, par exemple, une loi de Poisson ou binomiale négative pour la fréquence et une loi Gamma, Lognormale ou Pareto pour la sévérité.

Enfin, une analyse complète devrait intégrer les frais, les commissions, les provisions, la réassurance, l’inflation, les évolutions tarifaires et les exigences réglementaires de capital.

24. Conclusion

L’analyse actuarielle d’un portefeuille automobile repose sur l’étude conjointe de la fréquence, de la sévérité, de la sinistralité, de la rentabilité et du risque extrême.

L’approche développée dans ce projet permet de passer progressivement :

\[ \boxed{ Données \rightarrow Analyse \rightarrow Modélisation \rightarrow Simulation \rightarrow Risque \rightarrow Capital } \]

L’actuaire dispose ainsi d’une vision globale de la dynamique du portefeuille. L’analyse de la fréquence et du coût moyen permet de comprendre l’évolution de la sinistralité, tandis que la simulation et les mesures de risque telles que la VaR et l’Expected Shortfall permettent d’étudier les scénarios défavorables.

Dans une approche professionnelle, ces analyses peuvent ensuite être approfondies par des modèles de tarification, des modèles de fréquence-sévérité, des simulations Monte Carlo plus réalistes, des modèles de dépendance et une analyse complète du besoin en capital.