Méthode de séparation arithmétique de Taylor

library(ggplot2)
library(reshape2)

Presentation

Cette méthode presentée par Taylor G.C en 1977 1~, suppose : \(Y_{i,j} = P_{j} \cdot \mu_{i+j}\)\(P_{j}\) est la part payée la \(j^{\text{ème}}\) année de développement et \(\mu_{i+j}\) est le coût total payé lors de l’année calendaire \(i + j\), comme le montre le triangle de la Figure 1. Cette méthode permet d’intégrer des hypothèses d’inflation.

Triangle de paiement de la méthode de Taylor

Texte alternatif

Figure 1: Légende de l’image

Estimations des parametres

On obtient les estimateurs suivants :

\[ \hat{\mu}_{n} = \sum_{i=0}^{n} Y_{i,n-i}, \quad \quad \hat{P}_{n} = \frac{Y_{0,n}}{\hat{\mu}_{n}}, \quad \quad \hat{P}_{n-k} = \frac{\sum_{i=0}^{k}Y_{i,n-k}}{\sum_{l=n-k}^{n}\hat{\mu}_{l}} \quad \text{et} \quad \hat{\mu}_{n-k} = \frac{\sum_{i=0}^{n-k}Y_{i, n-k-i}}{1 - \sum_{j=n-k+1}^{n} \hat{P}_{j}} \]

Après cela, l’étape suivante consiste à extrapoler les coefficients \(\hat{\mu}_{n-k}\) de \(n+1\) à \(2n\). Pour ce faire, il est nécessaire d’estimer l’inflation future, plusieurs méthodes peuvent être utilisées à cet effet :

  • On peut estimer l’inflation en prenant la moyenne des ratios \(\frac{\mu_{k+1}}{\mu_{k}}\) pour \(k = 0, \dots , n-1\) ;

  • Ou en annualisant le taux d’inflation des \(n\) années précédentes : \(\left( \frac{\mu_{n}}{\mu_{0}}\right)^{1/n} - 1\).

Ensuite, le triangle inférieur est reconstitué pour \(i+ j > n\) selon l’équation :

\[\hat{Y}_{i,j} = \hat{P}_{j} \cdot \hat{\mu}_{i+j}\]

Codage

La fonction Taylor permet de calculer les provisions en utilisant la méthode de Taylor. Elle prend en argument :

  • TriangleDePaiement : un triangle de paiement non cumulé (matrice n*n).

  • Min : c’est la valeur minimale de la période à partir de laquelle on voudrait commencer pour estimer les \(\mu_{i}\).

  • Max : c’est la valeur maximale de la période à partir de laquelle on voudrait commencer pour estimer les \(\mu_{i}\).

  • decoupe : C’est le nombre de periodes considérées pour le calcul d’une provision.

Dans notre cas, n = 36, donc Min et Max sont entre 1 et 36. Pour des raisons telles que la Covid, il est parfois préférable de considérer des périodes Min = 13 et Max = 36 pour ne pas tenir compte de l’effet Covid, mais en règle générale, l’estimation se fait sur toutes les périodes.

Taylor = function(TriangleDePaiement, Min, Max, decoupe) {
  
  TriangleDePaiement <- as.matrix(TriangleDePaiement)
  Periode <- nrow(TriangleDePaiement)
  Provisions_par_Period <- matrix(0, nrow = Periode, ncol = Periode)
  Triangles_de_Paiements_par_Periode <- matrix(0, nrow = Periode, ncol = Periode)
  
  for (i in 1:(Periode - 1)) {
    Provisions_par_Period[, i] <- c(diag(TriangleDePaiement[1:(Periode + 1 - i), i:Periode]), rep(0, i - 1))
    Triangles_de_Paiements_par_Periode[, i] <- c(rep(0, i - 1), Provisions_par_Period[1:(Periode - i + 1), i])
  }
  
  sommes_lignes <- rowSums(Triangles_de_Paiements_par_Periode[, 1:Periode])
  Triangles_de_Paiements_par_Periode <- cbind(Triangles_de_Paiements_par_Periode, Somme = sommes_lignes)
  
  d_k_diagonales <- sommes_lignes
  v_k_S_colonnes <- colSums(Provisions_par_Period[, 1:Periode])
  I_k <- c(as.numeric(d_k_diagonales[Periode]), as.numeric(c(d_k_diagonales[Periode - 1])))
  y_k <- c(v_k_S_colonnes[Periode] / sum(I_k[1:1]), v_k_S_colonnes[Periode - 1] / sum(I_k[1:2]))
  
  for (i in 3:Periode) {
    I_k[i] <- d_k_diagonales[Periode + 1 - i] / (1 - sum(y_k, na.rm = TRUE))
    y_k[i] <- v_k_S_colonnes[Periode + 1 - i] / sum(I_k, na.rm = TRUE)
  }
  I_k <- rev(I_k)
  y_k <- rev(y_k)
  
  # Calcul des coefficients de la régression linéaire
  Years <- 0:(Periode - 1)
  modele_lineaire <- lm(I_k[Min:Max] ~ Years[Min:Max])
  ordoonnee_origine <- coef(modele_lineaire)[1]
  pente <- coef(modele_lineaire)[2]
  Coefficient_correlation <- cor(0:(Periode - 1), I_k)
  
  # Création des données pour l'interpolation
  Interpolation <- Periode:(2 * Periode - 2) * pente + ordoonnee_origine
  Capitaux <- c(I_k, Interpolation)
  
  # Calcul des provisions
  MATRICE <- matrix(0, nrow = Periode, ncol = Periode)
  for (i in 1:Periode) {
    for (j in 1:Periode) {
      if (i + j < Periode + 2) {
        MATRICE[i, j] <- 0
      } else {
        MATRICE[i, j] <- Capitaux[i + j - 1]
      }
    }
    MATRICE[i,] <- MATRICE[i,] * y_k
  }
  
  # Calcul des sommes cumulées
  Donne <- cumsum(colSums(MATRICE))
  Donne_pourcent <- Donne / Donne[length(Donne)]
  
  if(Periode%%decoupe == 0){
    indices <- 1:Periode
    taille_lot <- decoupe
    lots <- split(indices, ceiling(seq_along(indices) / taille_lot))
    
    PSAP <- c()
    
    for(i in 1:length(lots)){PSAP[i] <- sum(MATRICE[, lots[[i]]]) }
  
  # Création du data frame Provision
    Provision <- data.frame(Periode = 1:length(PSAP), 
                            Provision = PSAP)
    return(Provision)
  }
  else{
    return('Le decoupage n est pas un diviseur de la periode') 
  }
}

Application

Soit la triangles de paiement suivant :

Texte alternatif

Figure 1: Légende de l’image

data <- data.frame(
  Année = factor(rep(1:6, each = 6)),
  Période = rep(1:6, times = 6),
  Montant = c(100, 150, 200, 50, 310, 250,
              0, 120, 100, 20, 140, 320,
              0, 0, 130, 120, 230, 210,
              0, 0, 0, 170, 105, 210,
              0, 0, 0, 0, 100, 80,
              0, 0, 0, 0, 0, 160)
)
# Convertir en matrice pour une meilleure visualisation
data_matrix <- acast(data, Année ~ Période, value.var = "Montant")

# Afficher la matrice
print(data_matrix)
##     1   2   3   4   5   6
## 1 100 150 200  50 310 250
## 2   0 120 100  20 140 320
## 3   0   0 130 120 230 210
## 4   0   0   0 170 105 210
## 5   0   0   0   0 100  80
## 6   0   0   0   0   0 160
Taylor(data_matrix, Min = 1, Max = 6, decoupe = 2)
##   Periode Provision
## 1       1  124.6457
## 2       2  876.4183
## 3       3 1353.1498

Pour les sinistres survenus au cours des années précédentes, les provisions sont les suivantes :

  • Année N-3 : 124.6457

  • Année N-2 : 876.4183

  • Année N-1 : 1353.1498

Taylor(data_matrix, Min = 1, Max = 6, decoupe = 3)
##   Periode Provision
## 1       1  512.1094
## 2       2 1842.1044
Taylor(data_matrix, Min = 1, Max = 6, decoupe = 6)
##   Periode Provision
## 1       1  2354.214

La provision totale.

References


  1. G. C. Taylor, “Separation of inflation and other effects from the distribution of non-life insurance claim delays,” ASTIN Bulletin, vol. 9, pp. 219–230, 1977.↩︎