0% ont trouvé ce document utile (0 vote)
9 vues42 pages

Méthodes de réservation ChainLadder en R

Transféré par

dieunardoklamadjim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues42 pages

Méthodes de réservation ChainLadder en R

Transféré par

dieunardoklamadjim
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

ChainLadder : réservation de

sinistres avec R
Alessandro Carrato, Fabio Concina, Markus Gesmann, Dan Murphy, Mario Wüthrich
et Wayne Zhang

2022-01-09

Résumé
Le package ChainLadder fournit diverses méthodes statistiques qui sont généralement utilisées
pour l'estimation des provisions pour sinistres en cours dans l'assurance dommages, y compris
celles pour estimer les résultats de l'évolution des sinistres, comme l'exige Solvabilité II.

o introduction
o Réserve de sinistres en assurance
o Le pack ChainLadder
o Motivation
o Bref aperçu du forfait
o Installation
o Utilisation du package ChainLadder
o Travailler avec des triangles
o Transformer des triangles entre représentation cumulative et incrémentale
o Méthodes en échelle
o Idée basique
o Échelle à chaîne Mack
o Échelle à chaîne de Munich
o Échelle à chaîne Bootstrap
o Échelle à chaîne multivariée
o Échelle de chaîne séparée ignorant les corrélations
o Échelle en chaîne multivariée utilisant des régressions apparemment sans rapport
o Autres méthodes d'estimation de la covariance résiduelle
o Modèle avec interceptions
o Modélisation conjointe des pertes payées et subies
o Les méthodes de Clark
o La méthode LDF de Clark
o Méthode Cap Cod de Clark
o Méthodes de modèles linéaires généralisés
o Modèle de chaîne payante
o Hypothèses du modèle
o Estimation des paramètres
o Résultat d'évolution des sinistres sur un an
o Fonctions CDR
o Validation de modèle avec tweedieReserve
o Autres ressources
o Autres forfaits R liés à l'assurance
o Les références
To cite package 'ChainLadder' in publications use:

Markus Gesmann, Daniel Murphy, Yanwei (Wayne) Zhang, Alessandro

Carrato, Mario Wuthrich, Fabio Concina and Eric Dal Moro (2022).

ChainLadder: Statistical Methods and Models for Claims Reserving in

General Insurance. [Link]

[Link]

introduction

Réserve de sinistres en assurance

L'industrie de l'assurance, contrairement à d'autres industries, ne vend pas de produits en tant


que tels mais des promesses. Une police d'assurance est une promesse faite par l'assureur au
preneur d'assurance de payer les réclamations futures pour une prime reçue d'avance.
Par conséquent, les assureurs ne connaissent pas le coût initial de leur service, mais s'appuient
sur l'analyse des données historiques et leur jugement pour prévoir un prix durable pour leur
offre. Dans l'assurance générale (ou l'assurance non-vie, par exemple l'assurance automobile,
IARD), la plupart des polices ont une durée de 12 mois. Cependant, le processus de paiement
des sinistres peut prendre des années, voire des décennies. Par conséquent, souvent même la
date de livraison de leur produit n'est pas connue des assureurs.
En particulier, les pertes résultant d'une assurance dommages peuvent prendre beaucoup de
temps à régler et même lorsque les sinistres sont reconnus, il peut falloir du temps pour établir
l'ampleur du coût de règlement des sinistres. Les réclamations peuvent mettre des années à se
concrétiser. Un exemple complexe et coûteux sont les demandes d'indemnisation liées à
l'amiante, en particulier celles liées au mésothéliome et aux lésions pulmonaires résultant d'une
exposition prolongée à l'amiante. Un rapport de recherche d'un groupe de travail de l'Institut et de
la Faculté des actuaires a estimé que le coût non actualisé des réclamations liées au
mésothéliome britannique sur le marché britannique de l'assurance pour la période 2009 à 2050
pourrait être d'environ 10 milliards de livres sterling, voir (Gravelsons et al. 2009) . Le coût des
réclamations liées à l'amiante aux États-Unis pour l'industrie mondiale de l'assurance était estimé
à environ 120 milliards de dollars en 2002, voir(Michael 2002) .
Ainsi, il n'est pas surprenant que le poste le plus important du passif du bilan d'un assureur soit
souvent la provision ou les réserves pour les paiements de sinistres futurs. Ces réserves peuvent
être décomposées en réserves de cas (ou sinistres en cours), qui sont des pertes déjà déclarées
à la compagnie d'assurance et des pertes subies mais non encore déclarées (IBNR).
Historiquement, la provision était basée sur des calculs déterministes avec un stylo et du papier,
combinés à un jugement d'expert. Depuis les années 1980, avec l'arrivée des ordinateurs
personnels, les tableurs sont devenus très populaires pour la réservation. Les tableurs ont non
seulement réduit le temps de calcul, mais ont permis aux actuaires de tester différents scénarios
et la sensibilité de leurs prévisions.
Au fur et à mesure que l'ordinateur devenait plus puissant, les idées de modèles plus
sophistiqués ont commencé à évoluer. L'évolution des exigences réglementaires, par exemple
Solvabilité II en Europe, a favorisé la poursuite des recherches et encouragé l'utilisation de
techniques stochastiques et statistiques. En particulier, pour de nombreux pays, les centiles
extrêmes de détérioration des réserves sur une période déterminée doivent être estimés aux fins
de la fixation des fonds propres.
Au fil des ans, plusieurs méthodes et modèles ont été développés pour estimer à la fois le niveau
et la variabilité des provisions pour sinistres d'assurance, voir (Schmidt 2017) ou (England et
Verrall 2002) pour un aperçu.
Dans la pratique, les modèles Mack chain-ladder et bootstrap chain-ladder sont utilisés par de
nombreux actuaires avec des tests de résistance/analyses de scénarios et des jugements
d'experts pour estimer des fourchettes de résultats raisonnables, voir les enquêtes auprès des
actuaires britanniques en 2002, (Lyons et al. 2002 ) , et sur le marché du Lloyd's en 2012, (Orr
2012) .

Le pack ChainLadder

Motivation

Le package ChainLadder fournit diverses méthodes statistiques qui sont généralement utilisées
pour l'estimation des provisions pour sinistres en cours en assurance dommages. Le programme
a commencé par des présentations données par Markus Gesmann lors du séminaire sur la
réservation stochastique à l'Institute of Actuaries en 2007 et 2008, suivies de conférences lors de
réunions de la Casualty Actuarial Society (CAS) auxquelles se sont joints Dan Murphy en 2008 et
Wayne Zhang en 2010.
La mise en œuvre de méthodes de réservation dans R présente plusieurs avantages. R fournit :

o un langage riche pour la modélisation statistique et les manipulations de données


permettant un prototypage rapide
o une base d'utilisateurs très active, qui publie de nombreuses extensions
o de nombreuses interfaces avec des bases de données et d'autres applications, telles que
MS Excel
o un cadre établi pour l'informatique de l'utilisateur final, y compris la documentation, les
tests et les flux de travail avec des systèmes de contrôle de version
o code écrit dans des fichiers de texte brut, permettant un transfert efficace des
connaissances
o un moyen efficace de collaborer sur Internet
o fonctions intégrées pour créer des rapports de recherche reproductibles
o en combinaison avec d'autres outils tels que LaTeX ou RMarkdown facile à mettre en
place des fonctions de reporting automatisées
o l'accès à la recherche académique, qui est souvent d'abord mise en œuvre en R

Bref aperçu du forfait

Cette vignette donnera au lecteur un bref aperçu des fonctionnalités du package


ChainLadder. Les fonctions sont discutées et expliquées plus en détail dans les fichiers d'aide et
exemples respectifs, voir aussi (Gesmann 2014) .
Un ensemble de démos est livré avec les packages et la liste des démos est disponible via :
demo(package="ChainLadder")

Installation

Vous pouvez installer ChainLadder de la manière habituelle à partir de CRAN, par exemple :
[Link]('ChainLadder')

Pour plus de détails sur l'installation des packages, voir (R Development Core Team 2022b) .
Utilisation du package ChainLadder

Travailler avec des triangles

Les données d'assurance historiques sont souvent présentées sous la forme d'une structure en
triangle, montrant l'évolution des sinistres dans le temps pour chaque période d'exposition
(origine). Une période d'origine peut être l'année où la police a été souscrite ou gagnée, ou la
période de survenance de la perte. Bien sûr, la période d'origine ne doit pas nécessairement être
annuelle, par exemple, des périodes d'origine trimestrielles ou mensuelles sont également
souvent utilisées. La période de développement d'une période d'origine est également appelée
âge ou décalage.
Les données sur les diagonales présentent les paiements au cours de la même période
calendaire. Notez que les données des polices individuelles sont généralement agrégées à des
secteurs d'activité, des niveaux de division ou des risques homogènes.
La plupart des méthodes de réservation du package ChainLadder attendent des triangles comme
ensembles de données d'entrée avec des périodes de développement le long des colonnes et la
période d'origine dans les lignes. Le paquet est livré avec plusieurs exemples de triangles. La
commande R suivante les listera toutes :
library(ChainLadder)
data(package="ChainLadder")

Regardons un exemple de triangle de plus près. Le triangle suivant montre les données de la
Reinsurance Association of America (RAA) :
RAA

dev

origin 1 2 3 4 5 6 7 8 9 10

1981 5012 8269 10907 11805 13539 16181 18009 18608 18662 18834

1982 106 4285 5396 10666 13782 15599 15496 16169 16704 NA

1983 3410 8992 13873 16141 18735 22214 22863 23466 NA NA

1984 5655 11555 15766 21266 23425 26083 27067 NA NA NA


1985 1092 9565 15836 22169 25955 26180 NA NA NA NA

1986 1513 6445 11702 12935 15852 NA NA NA NA NA

1987 557 4020 10946 12314 NA NA NA NA NA NA

1988 1351 6947 13112 NA NA NA NA NA NA NA

1989 3133 5395 NA NA NA NA NA NA NA NA

1990 2063 NA NA NA NA NA NA NA NA NA

Ce triangle montre les valeurs connues de perte de chaque année d'origine et des évaluations
annuelles par la suite. Par exemple, les valeurs connues de perte provenant de la période
d'exposition de 1988 sont 1351, 6947 et 13112 à la fin des années 1988, 1989 et 1990,
respectivement. La dernière diagonale – c'est-à-dire le vecteur 18834, 16704, 2063 du coin
supérieur droit au coin inférieur gauche – montre l'évaluation la plus récente disponible. Les en-
têtes de colonne - 1, 2, , 10 - contiennent les âges (en années) des observations dans la colonne
par rapport au début de la période d'exposition. Par exemple, pour l'année d'origine 1988,
l'ancienneté de la valeur 13112, évaluée au 1990-12-31, est de trois ans.…………
L'objectif d'un exercice de provisionnement est de prévoir l'évolution future des sinistres dans le
coin inférieur droit du triangle et les développements potentiels au-delà de l'âge de
développement 10. Finalement, tous les sinistres pour une période d'origine donnée seront
réglés, mais il n'est pas toujours évident de juger combien d'années, voire de décennies, cela
prendra. On parle d'affaires à long terme et à court terme selon le temps qu'il faut pour payer
toutes les réclamations.

Tracer des triangles

La première chose que vous voulez souvent faire est de tracer les données pour obtenir une vue
d'ensemble. Pour un ensemble de données de classe, trianglele package ChainLadder fournit
des méthodes de traçage par défaut pour donner un aperçu graphique des données :
plot(RAA/1000, main = "Claims development by origin year")

Graphique d'évolution des sinistres du triangle RAA, avec une ligne par période d'origine.
La définition de l'argument lattice=TRUEproduira des tracés individuels pour chaque période
d'origine.
plot(RAA/1000, lattice=TRUE, main = "Claims development by origin year")

Tableau de développement des sinistres du triangle RAA, avec des panneaux individuels pour
chaque période d'origine
Vous remarquerez d'après les graphiques que le triangle RAAprésente l'évolution des sinistres
pour les années d'origine 1981 à 1990 sous une forme cumulative. Pour plus d'informations sur
les fonctions de traçage des triangles, consultez les pages d'aide de [Link].

Transformer des triangles entre représentation cumulative et incrémentale

Les packages ChainLadder sont livrés avec deux fonctions d'assistance cum2incret
permettent incr2cumde transformer des triangles cumulatifs en triangles incrémentiels et vice
versa :
[Link] <- cum2incr(RAA)
## Show first origin period and its incremental development
[Link][1,]

1 2 3 4 5 6 7 8 9 10

5012 3257 2638 898 1734 2642 1828 599 54 172

[Link] <- incr2cum([Link])


## Show first origin period and its cumulative development
[Link][1,]

1 2 3 4 5 6 7 8 9 10

5012 8269 10907 11805 13539 16181 18009 18608 18662 18834

Importation de triangles à partir de sources de données externes

Dans la plupart des cas, vous souhaitez analyser vos propres données, généralement stockées
dans des bases de données ou des feuilles de calcul.

Importer un triangle depuis une feuille de calcul

Il existe plusieurs façons d'importer les données d'une feuille de calcul. Une solution rapide et
sale consiste à utiliser un fichier CSV.
Ouvrez un nouveau classeur et copiez votre triangle dans la cellule A1, la première colonne étant
la période d'accident ou d'origine et la première ligne décrivant la période de développement ou
l'âge.
Assurez-vous que le triangle n'a pas de formatage, comme des virgules pour séparer les milliers,
car ces cellules seront enregistrées en tant que caractères.

Capture d'écran d'un triangle dans un tableur.


Ouvrez maintenant R et passez par les commandes suivantes :
myCSVfile <- "path/to/folder/with/[Link]"
## Use the R command:
# myCSVfile <- [Link]() to select the file interactively
tri <- [Link](file=myCSVfile, header = FALSE)
## Use read.csv2 if semicolons are used as a separator likely
## to be the case if you are in continental Europe
library(ChainLadder)
## Convert to triangle
tri <- [Link]([Link](tri))
# Job done.

De petits ensembles de données peuvent être transférés vers R vers l'arrière et vers l'avant via le
presse-papiers sous MS Windows.
Sélectionnez un ensemble de données dans la feuille de calcul et copiez-le dans le presse-
papiers, puis accédez à R et tapez :
tri <- [Link](file="clipboard", sep="\t", [Link]="")

Lire des données d'une base de données

R facilite l'accès aux données à l'aide d'instructions SQL, par exemple via une connexion
ODBC 1 , pour plus de détails, voir (R Development Core Team 2022a) . Les packages
ChainLadder incluent une démo pour montrer comment les données peuvent être importées à
partir d'une base de données MS Access, voir :
demo(DatabaseExamples)

Dans cette section, nous utilisons des données stockées dans un fichier CSV 2 pour démontrer
certaines opérations typiques que vous souhaiterez effectuer avec des données stockées dans
des bases de données. CSV signifie valeurs séparées par des virgules, stockées dans un fichier
texte. Notez que de nombreux pays européens utilisent une virgule comme point décimal et un
point-virgule comme séparateur de champ, voir aussi le fichier d'aide de read.csv2. Dans la
plupart des cas, vos triangles seront stockés dans des tableaux et non dans une forme de
triangle classique. Le package ChainLadder contient un fichier CSV avec des exemples de
données dans un format de tableau long. Nous lisons les données dans la mémoire de R avec
la [Link] et regardons les deux premières lignes et les résumons :
filename <- [Link]([Link]("Database",
package="ChainLadder"),
"[Link]")
myData <- [Link](filename)
head(myData)

origin dev value lob

1 1977 1 153638 ABC

2 1978 1 178536 ABC

3 1979 1 210172 ABC

4 1980 1 211448 ABC


5 1981 1 219810 ABC

6 1982 1 205654 ABC

summary(myData)

origin dev value lob

Min. : 1 Min. : 1.00 Min. : -17657 Length:701

1st Qu.: 3 1st Qu.: 2.00 1st Qu.: 10324 Class :character

Median : 6 Median : 4.00 Median : 72468 Mode :character

Mean : 642 Mean : 4.61 Mean : 176632

3rd Qu.:1979 3rd Qu.: 7.00 3rd Qu.: 197716

Max. :1991 Max. :14.00 Max. :3258646

Concentrons-nous sur un sous-ensemble de données. Nous sélectionnons à nouveau les


données RAA :
raa <- subset(myData, lob %in% "RAA")
head(raa)

origin dev value lob

67 1981 1 5012 RAA

68 1982 1 106 RAA

69 1983 1 3410 RAA

70 1984 1 5655 RAA

71 1985 1 1092 RAA

72 1986 1 1513 RAA

Pour transformer le tableau long des données RAA en un triangle, nous utilisons la
fonction [Link]. Les arguments que nous devons spécifier sont les noms de colonne de la
période d'origine et de développement et plus loin la colonne qui contient les valeurs :
[Link] <- [Link](raa,
origin="origin",
dev="dev",
value="value")
[Link]

dev

origin 1 2 3 4 5 6 7 8 9 10

1981 5012 3257 2638 898 1734 2642 1828 599 54 172

1982 106 4179 1111 5270 3116 1817 -103 673 535 NA

1983 3410 5582 4881 2268 2594 3479 649 603 NA NA

1984 5655 5900 4211 5500 2159 2658 984 NA NA NA

1985 1092 8473 6271 6333 3786 225 NA NA NA NA

1986 1513 4932 5257 1233 2917 NA NA NA NA NA

1987 557 3463 6926 1368 NA NA NA NA NA NA

1988 1351 5596 6165 NA NA NA NA NA NA NA

1989 3133 2262 NA NA NA NA NA NA NA NA

1990 2063 NA NA NA NA NA NA NA NA NA
Nous notons que les données ont été stockées sous la forme d'un ensemble de données
incrémentiel. Comme mentionné ci-dessus, nous pourrions maintenant utiliser la
fonction incr2cumpour transformer le triangle en un format cumulatif.
Nous pouvons retransformer un triangle en une structure de trame de données :
[Link] <- [Link]([Link], [Link]=TRUE)
head([Link])

origin dev value

1981-1 1981 1 5012

1982-1 1982 1 106

1983-1 1983 1 3410

1984-1 1984 1 5655

1985-1 1985 1 1092

1986-1 1986 1 1513

Ceci est particulièrement utile lorsque vous souhaitez stocker vos résultats dans une base de
données. La figure suivante vous donne une idée d'un flux de données potentiel entre R et les
bases de données.

Organigramme des données entre R et les bases de données

Créer des triangles de manière interactive

Pour les petits ensembles de données ou lors des tests de procédures, il peut être utile de créer
des triangles de manière interactive à partir de la ligne de commande. Il existe deux manières
principales de procéder. Avec le premier, nous créons une matrice de données (y compris les
valeurs manquantes dans la partie inférieure droite du triangle) puis la convertissons en un
triangle [Link] :
[Link](matrix(c(100, 150, 175, 180, 200,
110, 168, 192, 205, NA,
115, 169, 202, NA, NA,
125, 185, NA, NA, NA,
150, NA, NA, NA, NA),
nrow = 5, byrow = TRUE))

dev

origin 1 2 3 4 5

1 100 150 175 180 200

2 110 168 192 205 NA

3 115 169 202 NA NA

4 125 185 NA NA NA

5 150 NA NA NA NA

Nous pouvons également créer le triangle directement avec triangleen fournissant les lignes
(ou colonnes) de données connues sous forme de vecteurs, omettant ainsi les valeurs
manquantes :
triangle(c(100, 150, 175, 180, 200),
c(110, 168, 192, 205),
c(115, 169, 202),
c(125, 185),
150)
dev

origin 1 2 3 4 5

1 100 150 175 180 200

2 110 168 192 205 NA

3 115 169 202 NA NA

4 125 185 NA NA NA

5 150 NA NA NA NA

Méthodes en échelle

L'échelle de chaîne classique est un algorithme déterministe pour prévoir les sinistres sur la base
de données historiques. Elle suppose que les évolutions proportionnelles des créances d'une
période de développement à la suivante sont les mêmes pour toutes les années d'origine.

Idée basique

Le plus souvent, dans un premier temps, les ratios de liaison âge à âge sont calculés comme les
ratios de développement moyens pondérés en fonction du volume d'un triangle de
développement des pertes cumulées d'une période de développement à la
suivante Cje k, je , k = 1 , … , n
Fk=∑n - kje = 1Cje , k + 1∑n - kje = 1Cje , k
# Calculate age-to-age factors for RAA triangle
n <- 10
f <- sapply(1:(n-1),
function(i){
sum(RAA[c(1:(n-i)),i+1])/sum(RAA[c(1:(n-i)),i])
}
)
f

[1] 2.999 1.624 1.271 1.172 1.113 1.042 1.033 1.017 1.009

Souvent, il n'est pas approprié de supposer que l'année d'origine la plus ancienne est pleinement
développée. Une approche typique consiste à extrapoler les taux de développement, par
exemple en supposant un modèle linéaire sur une échelle logarithmique.
[Link] <- 1:(n-1)
plot(log(f-1) ~ [Link],
main="Log-linear extrapolation of age-to-age factors")
[Link] <- lm(log(f-1) ~ [Link])
abline([Link])

co <- coef([Link])
## extrapolate another 100 dev. period
tail <- exp(co[1] + c(n:(n + 100)) * co[2]) + 1
[Link] <- prod(tail)
[Link]

[1] 1.009

Les facteurs d'âge à âge nous permettent de tracer les schémas d'évolution attendus des
sinistres.
plot(100*(rev(1/cumprod(rev(c(f, tail[tail>1.0001]))))), t="b",
main="Expected claims development pattern",
xlab="Dev. period", ylab="Development % of ultimate loss")
Les ratios de liaison sont ensuite appliqués au dernier montant de sinistres cumulés connu pour
prévoir la prochaine période de développement. La quadrature du triangle RAA est calculée ci-
dessous, où une colonne ultime est ajoutée à droite pour tenir compte du développement attendu
au-delà de l'âge le plus élevé (10) du triangle en raison du facteur de queue (1,009) supérieur à
l'unité.
f <- c(f, [Link])
fullRAA <- cbind(RAA, Ult = rep(0, 10))
for(k in 1:n){
fullRAA[(n-k+1):n, k+1] <- fullRAA[(n-k+1):n,k]*f[k]
}
round(fullRAA)

1 2 3 4 5 6 7 8 9 10 Ult

1981 5012 8269 10907 11805 13539 16181 18009 18608 18662 18834 19012

1982 106 4285 5396 10666 13782 15599 15496 16169 16704 16858 17017

1983 3410 8992 13873 16141 18735 22214 22863 23466 23863 24083 24311

1984 5655 11555 15766 21266 23425 26083 27067 27967 28441 28703 28974

1985 1092 9565 15836 22169 25955 26180 27278 28185 28663 28927 29200

1986 1513 6445 11702 12935 15852 17649 18389 19001 19323 19501 19685

1987 557 4020 10946 12314 14428 16064 16738 17294 17587 17749 17917

1988 1351 6947 13112 16664 19525 21738 22650 23403 23800 24019 24246

1989 3133 5395 8759 11132 13043 14521 15130 15634 15898 16045 16196

1990 2063 6188 10046 12767 14959 16655 17353 17931 18234 18402 18576

La perte totale estimée selon cette méthode est d'environ 54100 :


sum(fullRAA[ ,11] - getLatestCumulative(RAA))

[1] 54146

Cette approche est également appelée méthode Loss Development Factor (LDF).
Plus généralement, les facteurs utilisés pour quadriller le triangle ne doivent pas toujours être
tirés des moyennes pondérées en dollars du triangle. D'autres sources de facteurs à partir
desquelles l'actuaire peut sélectionner des ratios de liaison comprennent des moyennes simples
du triangle, des moyennes pondérées en fonction d'observations plus récentes ou ajustées pour
les valeurs aberrantes, et des schémas de référence basés sur des pertes connexes plus
crédibles. De plus, puisque la valeur ultime des sinistres est simplement le produit de la
diagonale la plus courante et du produit cumulé des rapports de liaison, l'achèvement de
l'intérieur du triangle n'est généralement pas affiché en faveur de ce calcul multiplicatif.
Par exemple, supposons que l'actuaire décide que les facteurs pondérés en fonction du volume
du triangle RAA sont représentatifs de la croissance future prévue, mais rejette le facteur de
queue de 1,009 dérivé de l'ajustement log-linéaire en faveur d'une queue de cinq pour cent (1,05)
basée sur les données de perte d'un plus grand livre d'affaires similaires. La méthode LDF peut
être affichée dans R comme suit.
linkratios <- c(attr(ata(RAA), "vwtd"), tail = 1.05)
round(linkratios, 3) # display to only three decimal places

1-2 2-3 3-4 4-5 5-6 6-7 7-8 8-9 9-10 tail

2.999 1.624 1.271 1.172 1.113 1.042 1.033 1.017 1.009 1.050

LDF <- rev(cumprod(rev(linkratios)))


names(LDF) <- colnames(RAA) # so the display matches the triangle
round(LDF, 3)
1 2 3 4 5 6 7 8 9 10

9.366 3.123 1.923 1.513 1.292 1.160 1.113 1.078 1.060 1.050

currentEval <- getLatestCumulative(RAA)


# Reverse the LDFs so the first, least mature factor [1]
# is applied to the last origin year (1990)
EstdUlt <- currentEval * rev(LDF) #
# Start with the body of the exhibit
Exhibit <- [Link](currentEval, LDF = round(rev(LDF), 3), EstdUlt)
# Tack on a Total row
Exhibit <- rbind(Exhibit,
[Link](currentEval=sum(currentEval), LDF=NA, EstdUlt=sum(EstdUlt),
[Link] = "Total"))
Exhibit

currentEval LDF EstdUlt

1981 18834 1.050 19776

1982 16704 1.060 17701

1983 23466 1.078 25288

1984 27067 1.113 30138

1985 26180 1.160 30373

1986 15852 1.292 20476

1987 12314 1.513 18637

1988 13112 1.923 25220

1989 5395 3.123 16847

1990 2063 9.366 19323

Total 160987 NA 223778

Depuis le début des années 1990, plusieurs articles ont été publiés pour intégrer la méthode
simple de l'échelle en chaîne dans un cadre statistique. Ben Zehnwirth et Glenn Barnett
soulignent dans (Zehnwirth et Barnett 2000) que les rapports de liaison âge-âge peuvent être
considérés comme les coefficients d'une régression linéaire pondérée passant par l'origine, voir
aussi (Murphy 1994) .
lmCL <- function(i, Triangle){
lm(y~x+0, weights=1/Triangle[,i],
data=[Link](x=Triangle[,i], y=Triangle[,i+1]))
}
sapply(lapply(c(1:(n-1)), lmCL, RAA), coef)

x x x x x x x x x

2.999 1.624 1.271 1.172 1.113 1.042 1.033 1.017 1.009

Échelle à chaîne Mack

Thomas Mack a publié en 1993 (Mack 1993) une méthode qui estime les erreurs types de la
prévision en chaîne sans supposer une distribution sous trois conditions.
Suivant la notation de Mack (Mack 1999) soitCje k indiquent les montants cumulés des pertes de
la période d'origine (par exemple, l'année de l'accident) je = 1 , … , mje=1,…,m, avec des
pertes connues pour la période de développement (par exemple l'année de
développement) k ≤ n + 1 − je.
Afin de prévoir les montants Cje k pour k > n + 1 − je le modèle en échelle de chaîne de
Mack suppose :
CL1 : CL2 : CL3 : E[Fje k|Cje 1,Cje 2, … ,Cje k] =Fk avec Fje k=Cje , k + 1Cje
kVun r (Cje , k + 1Cje k|Cje 1,Cje 2, … ,Cje k) =σ2kwje kCαje k{Cje 1, … ,Cje n} ,
{Cj 1, … ,Cjn _} , sont indépendants pour la période
d'origine i ≠ jCL1 : E[Fjek|Cje1,Cje2,…,Cjek]=Fk avec Fjek=Cje,k+1CjekCL2 : Vuner(Cje,k+
1Cjek|Cje1,Cje2,…,Cjek)=σk2wjekCjekαCL3 : {Cje1,…,Cjen},{Cj1,…,Cjn}, sont indépendants
pour la période d'origine je≠j

avec wje k∈ [ 0 ; 1 ] , α ∈ { 0 , 1 , 2 }wjek∈[0;1],α∈{0,1,2}.


Si ces hypothèses sont vérifiées, le modèle en chaîne de Mack donne un estimateur non biaisé
pour les sinistres IBNR (Incurred But Not Reported).
Le modèle d'échelle en chaîne de Mack peut être considéré comme une régression linéaire
pondérée passant par l'origine pour chaque période de développement : lm(y ~ x + 0,
weights=w/x^(2-alpha)), oùyy est le vecteur des sinistres à la période de
développement k + 1k+1 et XX est le vecteur des sinistres à la période de développement kk.
La méthode Mack est implémentée dans le package ChainLadder via la
fonction MackChainLadder.
A titre d'exemple on applique la MackChainLadderfonction à notre triangle RAA:
mack <- MackChainLadder(RAA, [Link]="Mack")
mack # same as summary(mack)

MackChainLadder(Triangle = RAA, [Link] = "Mack")

Latest [Link] Ultimate IBNR Mack.S.E CV(IBNR)

1981 18,834 1.000 18,834 0 0 NaN

1982 16,704 0.991 16,858 154 206 1.339

1983 23,466 0.974 24,083 617 623 1.010

1984 27,067 0.943 28,703 1,636 747 0.457

1985 26,180 0.905 28,927 2,747 1,469 0.535

1986 15,852 0.813 19,501 3,649 2,002 0.549

1987 12,314 0.694 17,749 5,435 2,209 0.406

1988 13,112 0.546 24,019 10,907 5,358 0.491

1989 5,395 0.336 16,045 10,650 6,333 0.595

1990 2,063 0.112 18,402 16,339 24,566 1.503

Totals

Latest: 160,987.00

Dev: 0.76

Ultimate: 213,122.23

IBNR: 52,135.23

Mack.S.E 26,909.01

CV(IBNR): 0.52

Nous pouvons accéder aux facteurs d'évolution des pertes et au triangle complet via :
mack$f

[1] 2.999 1.624 1.271 1.172 1.113 1.042 1.033 1.017 1.009 1.000
mack$FullTriangle

dev

origin 1 2 3 4 5 6 7 8 9 10

1981 5012 8269 10907 11805 13539 16181 18009 18608 18662 18834

1982 106 4285 5396 10666 13782 15599 15496 16169 16704 16858

1983 3410 8992 13873 16141 18735 22214 22863 23466 23863 24083

1984 5655 11555 15766 21266 23425 26083 27067 27967 28441 28703

1985 1092 9565 15836 22169 25955 26180 27278 28185 28663 28927

1986 1513 6445 11702 12935 15852 17649 18389 19001 19323 19501

1987 557 4020 10946 12314 14428 16064 16738 17294 17587 17749

1988 1351 6947 13112 16664 19525 21738 22650 23403 23800 24019

1989 3133 5395 8759 11132 13043 14521 15130 15634 15898 16045

1990 2063 6188 10046 12767 14959 16655 17353 17931 18234 18402

Si vous n'êtes intéressé que par les statistiques récapitulatives, utilisez :


mack_smmry <- summary(mack) # See also ?[Link]
mack_smmry$ByOrigin

Latest [Link] Ultimate IBNR Mack.S.E CV(IBNR)

1981 18834 1.0000 18834 0.0 0.0 NaN

1982 16704 0.9909 16858 154.0 206.2 1.3395

1983 23466 0.9744 24083 617.4 623.4 1.0097

1984 27067 0.9430 28703 1636.1 747.2 0.4567

1985 26180 0.9050 28927 2746.7 1469.5 0.5350

1986 15852 0.8129 19501 3649.1 2001.9 0.5486

1987 12314 0.6938 17749 5435.3 2209.2 0.4065

1988 13112 0.5459 24019 10907.2 5357.9 0.4912

1989 5395 0.3362 16045 10650.0 6333.2 0.5947

1990 2063 0.1121 18402 16339.4 24566.3 1.5035

mack_smmry$Totals

Totals

Latest: 1.610e+05

Dev: 7.554e-01

Ultimate: 2.131e+05

IBNR: 5.214e+04

Mack S.E.: 2.691e+04

CV(IBNR): 5.161e-01

Pour vérifier que l'hypothèse de Mack est valide, examinez les tracés des résidus, vous ne
devriez voir aucune tendance dans l'un ou l'autre.
plot(mack)
Certains résidus montrent des tendances claires, indiquant que les hypothèses de Mack ne sont
pas bien respectées
Nous pouvons tracer l'évolution, y compris les erreurs types prévues et estimées par période
d'origine en définissant l'argument lattice=TRUE.
plot(mack, lattice=TRUE)

Utilisation d'un sous-ensemble du triangle

L' weightsargument permet de sélectionner un sous-ensemble du triangle pour les projections.


Par exemple, pour n'utiliser que les 5 dernières années civiles du triangle, paramétrez
le weightscomme suit :
calPeriods <- (row(RAA) + col(RAA) - 1)
(weights <- ifelse(calPeriods <= 5, 0, ifelse(calPeriods > 10, NA, 1)))

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 0 0 0 0 0 1 1 1 1 1

[2,] 0 0 0 0 1 1 1 1 1 NA

[3,] 0 0 0 1 1 1 1 1 NA NA

[4,] 0 0 1 1 1 1 1 NA NA NA

[5,] 0 1 1 1 1 1 NA NA NA NA

[6,] 1 1 1 1 1 NA NA NA NA NA

[7,] 1 1 1 1 NA NA NA NA NA NA

[8,] 1 1 1 NA NA NA NA NA NA NA

[9,] 1 1 NA NA NA NA NA NA NA NA

[10,] 1 NA NA NA NA NA NA NA NA NA

MackChainLadder(RAA, weights=weights, [Link] = "Mack")

MackChainLadder(Triangle = RAA, weights = weights, [Link] = "Mack")

Latest [Link] Ultimate IBNR Mack.S.E CV(IBNR)

1981 18,834 1.0000 18,834 0 0 NaN

1982 16,704 0.9909 16,858 154 206 1.339

1983 23,466 0.9744 24,083 617 623 1.010

1984 27,067 0.9430 28,703 1,636 747 0.457

1985 26,180 0.9050 28,927 2,747 1,469 0.535

1986 15,852 0.8229 19,264 3,412 2,039 0.598

1987 12,314 0.7106 17,329 5,015 2,144 0.428

1988 13,112 0.5613 23,361 10,249 4,043 0.395

1989 5,395 0.2935 18,384 12,989 5,931 0.457

1990 2,063 0.0843 24,463 22,400 16,779 0.749

Totals
Latest: 160,987.00

Dev: 0.73

Ultimate: 220,207.63

IBNR: 59,220.63

Mack.S.E 19,859.00

CV(IBNR): 0.34

Échelle à chaîne de Munich

L'échelle de chaîne de Munich est une méthode de provisionnement qui réduit l'écart entre les
projections IBNR basées sur les pertes payées et les projections IBNR basées sur les pertes
subies. La méthode de l'échelle en chaîne de Munich utilise des corrélations entre les pertes
payées et encourues des données historiques dans la projection pour l'avenir (Quarg et Mack
2004) .
MCLpaid

dev

origin 1 2 3 4 5 6 7
1 576 1804 1970 2024 2074 2102 2131

2 866 1948 2162 2232 2284 2348 NA

3 1412 3758 4252 4416 4494 NA NA

4 2286 5292 5724 5850 NA NA NA

5 1868 3778 4648 NA NA NA NA

6 1442 4010 NA NA NA NA NA

7 2044 NA NA NA NA NA NA

MCLincurred

dev

origin 1 2 3 4 5 6 7

1 978 2104 2134 2144 2174 2182 2174

2 1844 2552 2466 2480 2508 2454 NA

3 2904 4354 4698 4600 4644 NA NA

4 3502 5958 6070 6142 NA NA NA

5 2812 4882 4852 NA NA NA NA

6 2642 4406 NA NA NA NA NA

7 5022 NA NA NA NA NA NA

par(mfrow=c(1,2))
plot(MCLpaid)
plot(MCLincurred)

par(mfrow=c(1,1))

# Following the example in Quarg's (2004) paper:


MCL <- MunichChainLadder(MCLpaid, MCLincurred, [Link]=0.1, [Link]=0.1)
MCL

MunichChainLadder(Paid = MCLpaid, Incurred = MCLincurred, [Link] = 0.1,


[Link] = 0.1)

Latest Paid Latest Incurred Latest P/I Ratio Ult. Paid Ult. Incurred

1 2,131 2,174 0.980 2,131 2,174

2 2,348 2,454 0.957 2,383 2,444

3 4,494 4,644 0.968 4,597 4,629

4 5,850 6,142 0.952 6,119 6,176

5 4,648 4,852 0.958 4,937 4,950

6 4,010 4,406 0.910 4,656 4,665

7 2,044 5,022 0.407 7,549 7,650

Ult. P/I Ratio

1 0.980

2 0.975

3 0.993

4 0.991

5 0.997

6 0.998

7 0.987

Totals

Paid Incurred P/I Ratio

Latest: 25,525 29,694 0.86

Ultimate: 32,371 32,688 0.99

Vous pouvez utiliser summary(MCL)$ByOriginet summary(MCL)$Totalspour extraire les


informations de la sortie ci-dessus.
plot(MCL)

Échelle à chaîne Bootstrap

La BootChainLadderfonction utilise une approche bootstrap/simulation en deux étapes suivant


l'article de England et Verrall (England et Verrall 2002) . Dans la première étape, une méthode
d'échelle en chaîne ordinaire est appliquée au triangle des sinistres cumulatifs. À partir de cela,
nous calculons les résidus de Pearson mis à l'échelle que nous amorçons R fois pour prévoir les
paiements de sinistres supplémentaires futurs via la méthode standard de l'échelle en
chaîne. Dans la deuxième étape, nous simulons l'erreur de processus avec la valeur bootstrap
comme moyenne et en utilisant la distribution de processus supposée. L'ensemble des réserves
ainsi obtenues forme la distribution prédictive, à partir de laquelle des statistiques récapitulatives
telles que la moyenne, l'erreur de prédiction ou les quantiles peuvent être dérivées.
## See also the example in section 8 of England & Verrall (2002)
## on page 55.
B <- BootChainLadder(RAA, R=999, [Link]="gamma")
B

BootChainLadder(Triangle = RAA, R = 999, [Link] = "gamma")


Latest Mean Ultimate Mean IBNR IBNR.S.E IBNR 75% IBNR 95%

1981 18,834 18,834 0 0 0 0

1982 16,704 16,860 156 657 188 1,401

1983 23,466 24,055 589 1,289 1,096 2,972

1984 27,067 28,653 1,586 1,904 2,524 5,006

1985 26,180 28,921 2,741 2,262 3,931 7,087

1986 15,852 19,594 3,742 2,560 5,157 8,548

1987 12,314 17,690 5,376 3,054 7,039 11,342

1988 13,112 24,096 10,984 5,003 13,865 20,353

1989 5,395 16,458 11,063 6,032 14,455 22,939

1990 2,063 19,325 17,262 14,236 24,829 42,957

Totals

Latest: 160,987

Mean Ultimate: 214,486

Mean IBNR: 53,499

IBNR.S.E 19,669

Total IBNR 75%: 64,966

Total IBNR 95%: 87,510

Vous pouvez utiliser summary(B)$ByOriginet summary(B)$Totalspour extraire les informations de


la sortie ci-dessus.
plot(B)

Les quantiles du bootstrap IBNR peuvent être calculés via la quantilefonction :


quantile(B, c(0.75,0.95,0.99, 0.995))

$ByOrigin

IBNR 75% IBNR 95% IBNR 99% IBNR 99.5%

1981 0.0 0 0 0

1982 187.7 1401 2836 3360

1983 1095.8 2972 4826 5986

1984 2524.3 5006 7877 8476

1985 3930.9 7087 9384 9677

1986 5157.4 8548 12149 13497

1987 7038.6 11342 14018 14400

1988 13865.5 20353 25128 27401

1989 14455.0 22939 27620 28518

1990 24828.7 42957 59194 68156


$Totals

Totals

IBNR 75%: 64966

IBNR 95%: 87510

IBNR 99%: 108973

IBNR 99.5%: 113546

La distribution de l'IBNR semble suivre une distribution log-normale, alors adaptons-la :


## fit a distribution to the IBNR
library(MASS)
plot(ecdf(B$[Link]))
## fit a log-normal distribution
fit <- fitdistr(B$[Link][B$[Link]>0], "lognormal")
fit

meanlog sdlog

10.816072 0.391640

( 0.012391) ( 0.008762)

curve(plnorm(x,fit$estimate["meanlog"], fit$estimate["sdlog"]),
col="red", add=TRUE)

Échelle à chaîne multivariée

La technique de l'échelle de chaîne de Mack peut être généralisée au cadre multivarié où


plusieurs triangles de réservation sont modélisés et développés simultanément. L'avantage de la
modélisation multivariée est que les corrélations entre différents triangles peuvent être
modélisées, ce qui conduira à des évaluations d'incertitude plus précises. Les méthodes de
réservation qui modélisent explicitement les corrélations contemporaines entre les triangles
peuvent être trouvées dans (Pröhl et Schmidt 2005) , (Quarg et Mack 2004) . La plupart des
modèles de réservation multivariés basés sur l'échelle de la chaîne peuvent être résumés comme
des régressions séquentielles apparemment sans rapport (Zhang 2010) (Michael Merz et
Wüthrich 2008b) . Un autre avantage de la provision multivariée pour pertes est que les relations
structurelles entre les triangles peuvent également être reflétées, où le développement d'un
triangle dépend des pertes passées d'autres triangles. Par exemple, il est généralement
nécessaire de développer conjointement les pertes payées et encourues. Nous notons qu'un
autre volet de la provision multivariée pour pertes construit une structure hiérarchique dans le
modèle pour permettre l'estimation d'un triangle pour « emprunter la force » d'autres triangles,
reflétant l'idée fondamentale de la crédibilité actuarielle (Zhang, Dukic et Guszcza 2012). .
Dénoter Ouije , k= (Oui( 1 )je , k, ⋯ ,Oui( N)je , k)Ouije,k=(Ouije,k(1),⋯,Ouije,k(N)) en tant
que N× 1N×1 vecteur des pertes cumulées à l'année de survenance jeje et année de
développement kk où ( n )(n) fait référence au n-ième triangle. (Zhang 2010) précise le modèle

Ouije , k + 1=UNEk+Bk⋅Ouije , k+ϵje , k,Ouije,k+1=UNEk+Bk⋅Ouije,k+ϵje,k,


en période de développementkk comme:

où UNEkUNEk est une colonne d'intersections et BkBk est la matrice de développement pour la

E(ϵje , k|Ouije , 1, ⋯ ,Ouije , je+ 1 - k) = 0 ,c o v (ϵje , k|Ouije , 1, ⋯ ,Ouije , je+ 1 -


période de développement kk. Les hypothèses pour ce modèle sont :

k) = ré (Oui− δ/ 2je , k)Σkré (Oui−δ/ 2je , k) ,les sinistres des différentes


années de survenance sont indépendants ,ϵje , k sont distribués
symétriquement .E(ϵje,k|Ouije,1,⋯,Ouije,je+1−k)=0,cov(ϵje,k|Ouije,1,
⋯,Ouije,je+1−k)=ré(Ouije,k−δ/2)Σkré(Ouije,k−δ/2),les sinistres des différentes années de
survenance sont indépendants,ϵje,k sont répartis symétriquement.

Au dessus, réré est l'opérateur diagonal, et δδest une valeur positive connue qui contrôle la
façon dont la variance dépend de la moyenne (sous forme de poids). Ce modèle est appelé
l'échelle de chaîne multivariée générale [GMCL] dans (Zhang 2010) . Un cas particulier important
oùUNEk= 0UNEk=0 et BkBk's are diagonal est une généralisation naïve de l'échelle en
chaîne, souvent appelée échelle en chaîne multivariée [MCL] (Pröhl et Schmidt 2005) .
Dans ce qui suit, nous introduisons d'abord la classe triangles, pour laquelle nous avons défini
plusieurs fonctions d'utilité. En effet, tous les triangles d'entrée de la MultiChainLadderfonction
seront convertis en trianglesinterne. Nous présentons ensuite les méthodes de
provisionnement des pertes basées successivement sur les modèles MCL et GMCL.
Considérez les deux triangles de perte de responsabilité de (Michael Merz et Wüthrich 2008b) . Il
se présente sous la forme d'une liste de deux matrices :
str(liab)

List of 2

$ GeneralLiab: num [1:14, 1:14] 59966 49685 51914 84937 98921 ...

$ AutoLiab : num [1:14, 1:14] 114423 152296 144325 145904 170333 ...

Nous pouvons convertir une liste en trianglesobjet en utilisant


liab2 <- as(liab, "triangles")
class(liab2)

[1] "triangles"

attr(,"package")

[1] "ChainLadder"

Nous pouvons découvrir quelles méthodes sont disponibles pour cette classe:
showMethods(classes = "triangles")

Par exemple, si nous voulons extraire les trois dernières colonnes de chaque triangle, nous
pouvons utiliser l' [opérateur comme suit :
# use drop = TRUE to remove rows that are all NA's
liab2[, 12:14, drop = TRUE]

An object of class "triangles"

[[1]]

[,1] [,2] [,3]

[1,] 540873 547696 549589

[2,] 563571 562795 NA

[3,] 602710 NA NA

[[2]]

[,1] [,2] [,3]

[1,] 391328 391537 391428

[2,] 485138 483974 NA

[3,] 540742 NA NA

Ce qui suit combine deux colonnes de triangles pour former une nouvelle matrice :
cbind2(liab2[1:3, 12])

[,1] [,2]

[1,] 540873 391328

[2,] 563571 485138

[3,] 602710 540742

Échelle de chaîne séparée ignorant les corrélations

La forme des modèles de régression utilisés pour estimer les paramètres de développement est
contrôlée par l' [Link]. Si nous spécifions [Link] = "OLS", les moindres
carrés ordinaires seront utilisés et l'estimation des facteurs de développement pour chaque
triangle est indépendante des autres. Dans ce cas, la matrice de covariance résiduelleΣkΣkest
diagonale. Par conséquent, le modèle multivarié équivaut à exécuter séparément plusieurs
échelles de chaîne Mack.
fit1 <- MultiChainLadder(liab, [Link] = "OLS")
lapply(summary(fit1)$[Link], "[", 15, )

$`Summary Statistics for Triangle 1`

Latest [Link] Ultimate IBNR S.E CV

Total 11343397 0.6482 17498658 6155261 427289 0.0694

$`Summary Statistics for Triangle 2`

Latest [Link] Ultimate IBNR S.E CV

Total 8759806 0.8093 10823418 2063612 162872 0.0789

$`Summary Statistics for Triangle 1+2`

Latest [Link] Ultimate IBNR S.E CV

Total 20103203 0.7098 28322077 8218874 457278 0.0556

Dans ce qui précède, nous ne montrons que l'estimation de la réserve totale pour chaque triangle
afin de réduire la sortie. Le résumé complet, y compris l'estimation pour chaque année, peut être
récupéré à l'aide de la summaryfonction habituelle. Par défaut, la summaryfonction produit des
statistiques de réserve pour tous les triangles individuels, ainsi que pour le portefeuille supposé
être la somme des deux triangles. Ce comportement peut être modifié en fournissant
l' portfolioargument. Voir la documentation pour plus de détails.
Nous pouvons vérifier si c'est bien la même chose que l'échelle de chaîne de Mack univariée. Par
exemple, nous pouvons appliquer la MackChainLadderfonction à chaque triangle :
fit <- lapply(liab, MackChainLadder, [Link] = "Mack")
# the same as the first triangle above
lapply(fit, function(x) t(summary(x)$Totals))

$GeneralLiab

Latest: Dev: Ultimate: IBNR: Mack S.E.: CV(IBNR):

Totals 11343397 0.6482 17498658 6155261 427289 0.06942

$AutoLiab

Latest: Dev: Ultimate: IBNR: Mack S.E.: CV(IBNR):

Totals 8759806 0.8093 10823418 2063612 162872 0.07893


L'argument [Link]ôle la manière dont les erreurs quadratiques moyennes sont
calculées. Par défaut, il implémente la méthode Mack. Une autre méthode est l'approche de
rééchantillonnage conditionnel dans (Buchwalder et al. 2006) , qui suppose que les paramètres
estimés sont indépendants. Ceci est utilisé lorsque [Link] = "Independence". Par exemple,
ce qui suit reproduit le résultat dans (Buchwalder et al. 2006) . Notez que le premier argument
doit être une liste, même si un seul triangle est utilisé.
(B1 <- MultiChainLadder(list(GenIns), [Link] = "OLS",
[Link] = "Independence"))

$`Summary Statistics for Input Triangle`

Latest [Link] Ultimate IBNR S.E CV

1 3,901,463 1.0000 3,901,463 0 0 0.000

2 5,339,085 0.9826 5,433,719 94,634 75,535 0.798

3 4,909,315 0.9127 5,378,826 469,511 121,700 0.259

4 4,588,268 0.8661 5,297,906 709,638 133,551 0.188

5 3,873,311 0.7973 4,858,200 984,889 261,412 0.265

6 3,691,712 0.7223 5,111,171 1,419,459 411,028 0.290

7 3,483,130 0.6153 5,660,771 2,177,641 558,356 0.256

8 2,864,498 0.4222 6,784,799 3,920,301 875,430 0.223

9 1,363,294 0.2416 5,642,266 4,278,972 971,385 0.227

10 344,014 0.0692 4,969,825 4,625,811 1,363,385 0.295

Total 34,358,090 0.6478 53,038,946 18,680,856 2,447,618 0.131

Échelle en chaîne multivariée utilisant des régressions apparemment sans


rapport

Pour permettre l'incorporation de corrélations, nous utilisons les régressions apparemment sans
rapport (voir le package systemfit, (Henningsen et Hamann 2007) ) qui modélisent
simultanément les deux triangles dans chaque période de développement. Ceci est invoqué
lorsque nous spécifions [Link] = "SUR":
fit2 <- MultiChainLadder(liab, [Link] = "SUR")
lapply(summary(fit2)$[Link], "[", 15, )

$`Summary Statistics for Triangle 1`

Latest [Link] Ultimate IBNR S.E CV

Total 11343397 0.6484 17494907 6151510 419293 0.0682

$`Summary Statistics for Triangle 2`

Latest [Link] Ultimate IBNR S.E CV

Total 8759806 0.8095 10821341 2061535 162464 0.0788

$`Summary Statistics for Triangle 1+2`

Latest [Link] Ultimate IBNR S.E CV

Total 20103203 0.71 28316248 8213045 500607 0.061


Nous voyons que l'erreur de prédiction du portefeuille est gonflée à 500 , 607500,607 à partir
de 457 , 278457,278dans le modèle de développement séparé (« OLS »). Cela est dû à la
corrélation positive entre les deux triangles. La corrélation estimée pour chaque période de
développement peut être récupérée via la residCorfonction :
round(unlist(residCor(fit2)), 3)

[1] 0.247 0.495 0.682 0.446 0.487 0.451 -0.172 0.805 0.337 0.688

[11] -0.004 1.000 0.021

De même, la plupart des méthodes qui fonctionnent pour les modèles linéaires tels
que coef, fitted, residetc. fonctionneront également. Puisque nous avons une séquence de
modèles, les résultats récupérés de ces méthodes sont stockés dans une liste. Par exemple,
nous pouvons récupérer les facteurs de développement estimés pour chaque période comme
[Link]("rbind", coef(fit2))

eq1_x[[1]] eq2_x[[2]]

[1,] 3.227 2.2224

[2,] 1.719 1.2688

[3,] 1.352 1.1200

[4,] 1.179 1.0665

[5,] 1.106 1.0356

[6,] 1.055 1.0168

[7,] 1.026 1.0097

[8,] 1.015 1.0002

[9,] 1.012 1.0038

[10,] 1.006 0.9994

[11,] 1.005 1.0039

[12,] 1.005 0.9989

[13,] 1.003 0.9997

Les facteurs de développement inférieurs à un après la 10e période pour le deuxième triangle
entraînent en effet des estimations négatives de l'IBNR pour les premières années d'accident
dans ce triangle.
Le package propose également la plotméthode qui produit diverses figures de synthèse et de
diagnostic :

Tracés de synthèse et de diagnostic à partir d'un MultiChainLadderobjet


Les tracés résultants sont présentés dans la figure ci-dessus. Nous utilisons [Link]
supprimer le tracé du portefeuille et utilisons [Link] sélectionner les types de tracés
souhaités. Voir la documentation pour les valeurs possibles de ces deux arguments.

Autres méthodes d'estimation de la covariance résiduelle

En interne, le MultiChainLadderappelle la systemfitfonction pour ajuster les modèles de


régression période par période. Lorsque des modèles SUR sont spécifiés, il existe plusieurs
façons d'estimer la matrice de covariance résiduelleΣkΣk. Les méthodes disponibles
sont noDfCor, geomean, maxet Theilavec la valeur par défaut geomean. La méthode Theilproduira
une estimation de covariance non biaisée, mais l'estimation résultante peut ne pas être positive
semi-définie. C'est aussi l'estimateur utilisé par (Michael Merz et Wüthrich 2008b) . Cependant,
cette méthode ne fonctionne pas immédiatement pour les liabdonnées, et c'est peut-être l'une
des raisons (Michael Merz et Wüthrich 2008b) d'avoir recours à l'extrapolation pour obtenir
l'estimation pour les dernières périodes.
En effet, pour la plupart des applications, nous recommandons l'utilisation d'échelles de chaîne
séparées pour les périodes de queue afin de stabiliser l'estimation - il y a peu de points de
données dans la queue et l'exécution d'un modèle multivarié produit souvent des estimations
extrêmement volatiles ou même échoue. Pour faciliter une telle approche, le package propose
l' argument, qui spécifie combien de périodes de développement dans la queue vont dans la
deuxième partie de la scission. Le type de structure de modèle à spécifier pour la première partie
du modèle fractionné dans est contrôlé par l' argument. Elle prend l'une des valeurs suivantes : -
la chaîne multivariée à matrice de développement diagonale ; - l'échelle de chaîne multivariée
avec des interceptions supplémentaires ;MultiChainLadder2 fonction, qui implémente une
procédure de division et de jointure : nous divisons les données d'entrée en deux parties,
spécifions un modèle multivarié avec des structures riches sur la première partie (avec
suffisamment de données) pour refléter les dépendances multivariées, appliquez des échelles de
chaîne univariées séparées sur la deuxième partie, puis joignez les deux modèles pour produire
les prédictions finales. Le fractionnement est déterminé par
lalastMultiChainLadder2typeMCLMCL+intGMCL-int- l'échelle de chaîne multivariée générale
sans intersection ; etGMCL - l'échelle de chaîne multivariée générale complète avec interceptions
et matrice de développement non diagonale.
Par exemple, ce qui suit ajuste la méthode SUR à la première partie (les 11 premières colonnes)
en utilisant l'estimateur de covariance résiduelle non biaisé dans (Michael Merz et Wüthrich
2008b) , et des chaînes d'échelles séparées pour le reste :
require(systemfit)
W1 <- MultiChainLadder2(liab, [Link] = "Independence",
control = [Link](methodResidCov = "Theil"))
lapply(summary(W1)$[Link], "[", 15, )

$`Summary Statistics for Triangle 1`

Latest [Link] Ultimate IBNR S.E CV

Total 11343397 0.6483 17497403 6154006 427041 0.0694

$`Summary Statistics for Triangle 2`

Latest [Link] Ultimate IBNR S.E CV

Total 8759806 0.8095 10821034 2061228 162785 0.079

$`Summary Statistics for Triangle 1+2`

Latest [Link] Ultimate IBNR S.E CV

Total 20103203 0.7099 28318437 8215234 505376 0.0615

De même, l'estimateur itératif de covariance résiduelle dans (Michael Merz et Wüthrich


2008b) peut également être utilisé, dans lequel nous utilisons le paramètre de
contrôle maxiterpour déterminer le nombre d'itérations :
for (i in 1:5){
W2 <- MultiChainLadder2(liab, [Link] = "Independence",
control = [Link](methodResidCov = "Theil", maxiter = i))
print(format(summary(W2)@[Link][[3]][15, 4:5],
digits = 6, [Link] = ","))
}

IBNR S.E

Total 8,215,234 505,376


IBNR S.E

Total 8,215,357 505,443

IBNR S.E

Total 8,215,362 505,444

IBNR S.E

Total 8,215,362 505,444

IBNR S.E

Total 8,215,362 505,444

lapply(summary(W2)$[Link], "[", 15, )

$`Summary Statistics for Triangle 1`

Latest [Link] Ultimate IBNR S.E CV

Total 11343397 0.6483 17497526 6154129 427074 0.0694

$`Summary Statistics for Triangle 2`

Latest [Link] Ultimate IBNR S.E CV

Total 8759806 0.8095 10821039 2061233 162790 0.079

$`Summary Statistics for Triangle 1+2`

Latest [Link] Ultimate IBNR S.E CV

Total 20103203 0.7099 28318565 8215362 505444 0.0615

Nous voyons que l'estimation de la covariance converge en trois étapes. Ceux-ci sont très
similaires aux résultats de (Michael Merz et Wüthrich 2008b) , la petite différence étant le résultat
des différentes approches utilisées au cours des trois dernières périodes.
Notez également que dans les deux exemples ci-dessus, l'argument controln'est pas défini dans
le prototype du fichier MultiChainLadder. C'est un argument qui est passé à
la systemfitfonction via le ...mécanisme. Les utilisateurs sont encouragés à explorer comment
les autres options disponibles dans systemfitpeuvent être appliquées.

Modèle avec interceptions

Considérons les autotriangles de0 (Zhang 2010) . Il comprend trois triangles d'assurance
automobile : l'assurance automobile personnelle payée, l'assurance automobile personnelle
engagée et l'assurance automobile commerciale payée.
str(auto)

List of 3

$ PersonalAutoPaid : num [1:10, 1:10] 101125 102541 114932 114452 115597 ...

$ PersonalAutoIncurred: num [1:10, 1:10] 325423 323627 358410 405319 434065 ...

$ CommercialAutoPaid : num [1:10, 1:10] 19827 22331 22533 23128 25053 ...

Il est raisonnable de s'attendre à ce que ces triangles soient corrélés. Nous exécutons donc un
modèle MCL sur eux :
f0 <- MultiChainLadder2(auto, type = "MCL")
# show correlation- the last three columns have zero correlation
# because separate chain-ladders are used
print([Link](cbind, residCor(f0)), digits = 3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]

(1,2) 0.327 -0.0101 0.598 0.711 0.8565 0.928 0 0 0

(1,3) 0.870 0.9064 0.939 0.261 -0.0607 0.911 0 0 0

(2,3) 0.198 -0.3217 0.558 0.380 0.3586 0.931 0 0 0

Cependant, à partir du graphique des résidus, la première ligne de la figure @ref(fig:multi_resid),


il est évident que la structure moyenne par défaut du modèle MCL n'est pas adéquate. Il s'agit
généralement d'un problème courant avec les modèles basés sur l'échelle en chaîne, en raison
de l'absence d'intersections.
Nous pouvons améliorer le modèle ci-dessus en incluant des interceptions dans l'ajustement
SUR comme suit :
f1 <- MultiChainLadder2(auto, type = "MCL+int")

Le tracé résiduel correspondant est affiché dans la deuxième ligne de la figure ci-dessous. Nous
voyons que ces résidus sont dispersés de manière aléatoire autour de zéro et qu'il n'y a pas de
modèle clair par rapport au tracé du modèle MCL.

Graphiques des résidus pour le modèle MCL (première ligne) et le modèle GMCL (MCL+int)
(deuxième ligne) pour les données automatiques
Le récapitulatif par défaut calcule les estimations du portefeuille comme la somme de tous les
triangles. Ce n'est pas souhaitable car les deux premiers triangles appartiennent tous deux à la
ligne auto personnelle. Nous pouvons écraser cela via l' portfolioargument. Par exemple, ce
qui suit utilise les deux triangles payés comme estimation du portefeuille :
lapply(summary(f1, portfolio = "1+3")@[Link], "[", 11, )

$`Summary Statistics for Triangle 1`

Latest [Link] Ultimate IBNR S.E CV

Total 3290539 0.8537 3854572 564033 19089 0.0338

$`Summary Statistics for Triangle 2`

Latest [Link] Ultimate IBNR S.E CV

Total 3710614 0.9884 3754197 43583 18839 0.4323

$`Summary Statistics for Triangle 3`

Latest [Link] Ultimate IBNR S.E CV

Total 1043851 0.7504 1391064 347213 27716 0.0798

$`Summary Statistics for Triangle 1+3`

Latest [Link] Ultimate IBNR S.E CV

Total 4334390 0.8263 5245636 911246 38753 0.0425

Modélisation conjointe des pertes payées et subies

Bien que le modèle avec interceptions se soit avéré être une amélioration par rapport au modèle
MCL, il ne tient toujours pas compte de la relation structurelle entre les triangles. En particulier, il
produit des ratios de sinistres payés sur encourus divergents pour la branche automobile des
particuliers :
ult <- summary(f1)$Ultimate
print(ult[, 1] /ult[, 2], 3)

1 2 3 4 5 6 7 8 9 10 Total

0.995 0.995 0.993 0.992 0.995 0.996 1.021 1.067 1.112 1.114 1.027

On constate que pour les années de survenance 9-10, les ratios sinistres payés/sinistres
encourus sont supérieurs à 110 %. Cela peut être résolu en permettant au développement des
triangles payés/engagés de dépendre les uns des autres. Autrement dit, nous incluons les
valeurs passées du triangle payé comme prédicteurs lors du développement du triangle engagé,
et vice versa.
Nous illustrons cela en ignorant le triangle de l'automobile commerciale. Voir la démo pour un
modèle qui utilise les trois triangles. Nous incluons également le modèle MCL et l'échelle à
chaînes de Munich à titre de comparaison :
da <- auto[1:2]
# MCL with diagonal development
M0 <- MultiChainLadder(da)
# non-diagonal development matrix with no intercepts
M1 <- MultiChainLadder2(da, type = "GMCL-int")
# Munich chain-ladder
M2 <- MunichChainLadder(da[[1]], da[[2]])
# compile results and compare projected paid to incured ratios
r1 <- lapply(list(M0, M1), function(x){
ult <- summary(x)@Ultimate
ult[, 1] / ult[, 2]
})
names(r1) <- c("MCL", "GMCL")
r2 <- summary(M2)[[1]][, 6]
r2 <- c(r2, summary(M2)[[2]][2, 3])
print([Link](cbind, c(r1, list(MuCl = r2))) * 100, digits = 4)

MCL GMCL MuCl

1 99.50 99.50 99.50

2 99.49 99.49 99.55

3 99.29 99.29 100.23

4 99.20 99.20 100.23

5 99.83 99.56 100.04

6 100.43 99.66 100.03

7 103.53 99.76 99.95

8 111.24 100.02 99.81

9 122.11 100.20 99.67

10 126.28 100.18 99.69

Total 105.58 99.68 99.88

Les méthodes de Clark

Le package ChainLadder contient des fonctionnalités permettant d'exécuter les méthodes


décrites dans l'article 3 de David Clark (Clark 2003) . En utilisant une approche d'analyse
longitudinale, Clark suppose que les pertes évoluent selon une courbe de croissance théorique .
La méthode LDF est un cas particulier de cette approche où la courbe de croissance peut être
considérée comme une fonction en escalier ou linéaire par morceaux. Clark envisage une courbe
de croissance comme mesurant le pourcentage de perte ultime qui devrait avoir émergé à
chaque âge d'une période d'origine. L'article décrit deux méthodes qui correspondent à ce
modèle.
La méthode LDF suppose que les pertes ultimes de chaque période d'origine sont distinctes et
non liées. Le but de la méthode est donc d'estimer les paramètres des pertes ultimes et de la
courbe de croissance afin de maximiser la probabilité d'avoir observé les données dans le
triangle.
La méthode CapeCod suppose que les pertes ultimes attendues a priori pour chaque année
d'origine sont le produit de la prime acquise cette année-là et d'un ratio de sinistres théorique. La
méthode CapeCod nécessite donc d'estimer potentiellement beaucoup moins de paramètres :
pour la fonction de croissance et pour le taux de perte théorique.
L'un des avantages secondaires de l'utilisation du maximum de vraisemblance pour estimer les
paramètres est que sa théorie asymptotique associée fournit des estimations d'incertitude pour
les paramètres. Observant que les estimations de réserves par année d'origine sont des
fonctions des paramètres estimés, les estimations d'incertitude de ces valeurs fonctionnelles sont
calculées selon la méthode Delta , qui est essentiellement une linéarisation du problème basée
sur un développement en série de Taylor.
Les deux formes fonctionnelles des courbes de croissance considérées dans l'article de Clark
sont la fonction log-logistique (alias la courbe de puissance inverse) et la fonction de Weibull,
toutes deux étant des fonctions à deux paramètres. Clark utilise les paramètresωω et θθdans
son papier. Les méthodes de Clark fonctionnent sur les pertes incrémentielles. Sa fonction de
vraisemblance est basée sur l'hypothèse que les pertes incrémentielles suivent un processus de
Poisson sur-dispersé (ODP).

La méthode LDF de Clark

Considérons à nouveau le triangle RAA. En acceptant tous les défauts, la méthode Clark LDF
estimerait les pertes ultimes totales de 272 009 et une réserve (FutureValue) de 111 022, soit
près du double de la valeur basée sur les ratios de liaison moyens pondérés en fonction du
volume et l'ajustement loglinéaire de la section 3.2.1 ci-dessus.
ClarkLDF(RAA)

Origin CurrentValue Ldf UltimateValue FutureValue StdError CV%

1981 18,834 1.216 22,906 4,072 2,792 68.6

1982 16,704 1.251 20,899 4,195 2,833 67.5

1983 23,466 1.297 30,441 6,975 4,050 58.1

1984 27,067 1.360 36,823 9,756 5,147 52.8

1985 26,180 1.451 37,996 11,816 5,858 49.6

1986 15,852 1.591 25,226 9,374 4,877 52.0

1987 12,314 1.829 22,528 10,214 5,206 51.0

1988 13,112 2.305 30,221 17,109 7,568 44.2

1989 5,395 3.596 19,399 14,004 7,506 53.6

1990 2,063 12.394 25,569 23,506 17,227 73.3

Total 160,987 272,009 111,022 36,102 32.5

La majeure partie de la différence est due à la queue lourde, 21,6 %, impliquée par l'ajustement
de la courbe de puissance inverse. Clark reconnaît que la courbe log-logistique peut prendre un
temps déraisonnablement long pour s'aplatir. Si, selon l'expérience de l'actuaire, la plupart des
sinistres se clôturent après, disons, 20 ans, la courbe de croissance peut être tronquée en
conséquence en utilisant l' maxageargument :
ClarkLDF(RAA, maxage = 20)

Origin CurrentValue Ldf UltimateValue FutureValue StdError CV%

1981 18,834 1.124 21,168 2,334 1,765 75.6

1982 16,704 1.156 19,314 2,610 1,893 72.6

1983 23,466 1.199 28,132 4,666 2,729 58.5

1984 27,067 1.257 34,029 6,962 3,559 51.1

1985 26,180 1.341 35,113 8,933 4,218 47.2

1986 15,852 1.471 23,312 7,460 3,775 50.6

1987 12,314 1.691 20,819 8,505 4,218 49.6

1988 13,112 2.130 27,928 14,816 6,300 42.5

1989 5,395 3.323 17,927 12,532 6,658 53.1

1990 2,063 11.454 23,629 21,566 15,899 73.7

Total 160,987 251,369 90,382 26,375 29.2

La courbe de croissance de Weibull a tendance à se développer plus rapidement que la log-


logistique :
ClarkLDF(RAA, G="weibull")

Origin CurrentValue Ldf UltimateValue FutureValue StdError CV%

1981 18,834 1.022 19,254 420 700 166.5

1982 16,704 1.037 17,317 613 855 139.5

1983 23,466 1.060 24,875 1,409 1,401 99.4

1984 27,067 1.098 29,728 2,661 2,037 76.5

1985 26,180 1.162 30,419 4,239 2,639 62.2

1986 15,852 1.271 20,151 4,299 2,549 59.3

1987 12,314 1.471 18,114 5,800 3,060 52.8

1988 13,112 1.883 24,692 11,580 4,867 42.0


1989 5,395 2.988 16,122 10,727 5,544 51.7

1990 2,063 9.815 20,248 18,185 12,929 71.1

Total 160,987 220,920 59,933 19,149 32.0

Il est recommandé d'inspecter les résidus pour aider à évaluer le caractère raisonnable du
modèle par rapport aux données réelles.
plot(ClarkLDF(RAA, G="weibull"))

Bien qu'il existe certaines preuves d'hétéroscédasticité avec l'augmentation des âges et des
valeurs ajustées, les résidus apparaissent autrement dispersés au hasard autour d'une ligne
horizontale passant par l'origine. Le graphique qq montre des preuves d'un manque d'ajustement
dans les queues, mais la valeur de p de presque 0,2 peut être considérée comme trop élevée
pour rejeter purement et simplement l'hypothèse de résidus standardisés normalement
distribués 4 .

Méthode Cap Cod de Clark


L'ensemble de données RAA, largement étudié dans la littérature, n'a traditionnellement aucune
prime qui lui est associée. Supposons une prime acquise constante de 40 000 chaque année et
une fonction de croissance de Weibull :
ClarkCapeCod(RAA, Premium = 40000, G = "weibull")

Origin CurrentValue Premium ELR FutureGrowthFactor FutureValue UltimateValue

1981 18,834 40,000 0.566 0.0192 436 19,270

1982 16,704 40,000 0.566 0.0320 725 17,429

1983 23,466 40,000 0.566 0.0525 1,189 24,655

1984 27,067 40,000 0.566 0.0848 1,921 28,988

1985 26,180 40,000 0.566 0.1345 3,047 29,227

1986 15,852 40,000 0.566 0.2093 4,741 20,593

1987 12,314 40,000 0.566 0.3181 7,206 19,520

1988 13,112 40,000 0.566 0.4702 10,651 23,763

1989 5,395 40,000 0.566 0.6699 15,176 20,571

1990 2,063 40,000 0.566 0.9025 20,444 22,507

Total 160,987 400,000 65,536 226,523

StdError CV%

692 158.6

912 125.7

1,188 99.9

1,523 79.3

1,917 62.9

2,360 49.8

2,845 39.5

3,366 31.6

3,924 25.9

4,491 22.0

12,713 19.4

Le ratio de sinistres attendus estimé est de 0,566. L'encours total est supérieur d'environ 10 % à
celui de la méthode LDF. L'erreur standard, cependant, est plus faible, probablement en raison
du fait qu'il y a moins de paramètres à estimer avec la méthode CapeCod, ce qui entraîne moins
de risque de paramètre.
Un graphique de ce modèle montre des résidus similaires par origine et âge projeté à ceux de la
méthode LDF, une meilleure répartition par valeur ajustée et un graphique qq légèrement
meilleur, en particulier dans la queue supérieure.
plot(ClarkCapeCod(RAA, Premium = 40000, G = "weibull"))

Méthodes de modèles linéaires généralisés


Ces dernières années ont également vu un intérêt croissant pour l'utilisation de modèles linéaires
généralisés [GLM] pour la provision des pertes d'assurance. L'utilisation de GLM dans la
provision des pertes d'assurance présente de nombreux aspects convaincants, par exemple,

o lorsqu'un modèle de Poisson surdispersé est utilisé, il reproduit les estimations de


l'échelle en chaîne ;
o elle fournit un cadre de modélisation plus cohérent que la méthode Mack ;
o toute la théorie statistique établie pertinente peut être directement appliquée pour
effectuer des tests d'hypothèses et des vérifications diagnostiques ;

La glmReservefonction prend un triangle de perte d'assurance, le convertit en pertes


supplémentaires en interne si nécessaire, le transforme au format long (voir [Link]) et
adapte les données de perte résultantes avec un modèle linéaire généralisé où la structure
moyenne inclut à la fois l'année de l'accident et le retard de développement effets. La fonction
fournit également des méthodes analytiques et d'amorçage pour calculer les erreurs de
prédiction associées. L'approche bootstrap simule également la distribution prédictive complète,
sur la base de laquelle l'utilisateur peut calculer d'autres mesures d'incertitude telles que les
intervalles prédictifs.
Seule la famille de distributions de Tweedie est autorisée, c'est-à-dire la famille exponentielle qui
admet une fonction de variance puissance V( μ ) =µpV(µ)=µp. Le pouvoir d'écartppest
spécifié dans l' [Link] et contrôle le type de la distribution. Lorsque la distribution de
Poisson composée de Tweedie1 < p < 21<p<2doit être utilisé, l'utilisateur a la possibilité de
spécifier [Link] = NULL, où la puissance de varianceppsera estimée à partir des données à
l'aide du cplmpackage (Zhang 2012) .
Par exemple, ce qui suit correspond au modèle de Poisson surdispersé et énonce les
informations sur les réserves estimées :
# load data
data(GenIns)
GenIns <- GenIns / 1000
# fit Poisson GLM
(fit1 <- glmReserve(GenIns))

Latest [Link] Ultimate IBNR S.E CV

2 5339 0.98252 5434 95 110.1 1.1589


3 4909 0.91263 5379 470 216.0 0.4597

4 4588 0.86599 5298 710 260.9 0.3674

5 3873 0.79725 4858 985 303.6 0.3082

6 3692 0.72235 5111 1419 375.0 0.2643

7 3483 0.61527 5661 2178 495.4 0.2274

8 2864 0.42221 6784 3920 790.0 0.2015

9 1363 0.24162 5642 4279 1046.5 0.2446

10 344 0.06922 4970 4626 1980.1 0.4280

total 30457 0.61982 49138 18681 2945.7 0.1577

On peut aussi extraire le modèle GLM sous-jacent en spécifiant type = "model"dans


la summaryfonction :
summary(fit1, type = "model")

Call:

glm(formula = value ~ factor(origin) + factor(dev), family = fam,


data = ldaFit, offset = offset)

Deviance Residuals:

Min 1Q Median 3Q Max

-14.701 -3.913 -0.688 3.675 15.633

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 5.59865 0.17292 32.38 < 2e-16 ***

factor(origin)2 0.33127 0.15354 2.16 0.0377 *

factor(origin)3 0.32112 0.15772 2.04 0.0492 *

factor(origin)4 0.30596 0.16074 1.90 0.0650 .

factor(origin)5 0.21932 0.16797 1.31 0.1999

factor(origin)6 0.27008 0.17076 1.58 0.1225

factor(origin)7 0.37221 0.17445 2.13 0.0398 *

factor(origin)8 0.55333 0.18653 2.97 0.0053 **

factor(origin)9 0.36893 0.23918 1.54 0.1317

factor(origin)10 0.24203 0.42756 0.57 0.5749

factor(dev)2 0.91253 0.14885 6.13 4.7e-07 ***

factor(dev)3 0.95883 0.15257 6.28 2.9e-07 ***

factor(dev)4 1.02600 0.15688 6.54 1.3e-07 ***

factor(dev)5 0.43528 0.18391 2.37 0.0234 *

factor(dev)6 0.08006 0.21477 0.37 0.7115

factor(dev)7 -0.00638 0.23829 -0.03 0.9788

factor(dev)8 -0.39445 0.31029 -1.27 0.2118


factor(dev)9 0.00938 0.32025 0.03 0.9768

factor(dev)10 -1.37991 0.89669 -1.54 0.1326

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for Tweedie family taken to be 52.6)

Null deviance: 10699 on 54 degrees of freedom

Residual deviance: 1903 on 36 degrees of freedom

AIC: NA

Number of Fisher Scoring iterations: 4

De même, nous pouvons ajuster le Gamma et un modèle de réservation GLM de Poisson


composé en modifiant l' [Link] :
# Gamma GLM
(fit2 <- glmReserve(GenIns, [Link] = 2))

Latest [Link] Ultimate IBNR S.E CV

2 5339 0.98288 5432 93 45.17 0.4857

3 4909 0.91655 5356 447 160.56 0.3592

4 4588 0.88248 5199 611 177.62 0.2907

5 3873 0.79611 4865 992 254.47 0.2565

6 3692 0.71757 5145 1453 351.33 0.2418

7 3483 0.61440 5669 2186 526.29 0.2408

8 2864 0.43870 6529 3665 941.32 0.2568

9 1363 0.24854 5485 4122 1175.95 0.2853

10 344 0.07078 4860 4516 1667.39 0.3692

total 30457 0.62742 48543 18086 2702.71 0.1494

# compound Poisson GLM (variance function estimated from the data):


# (fit3 <- glmReserve(GenIns, [Link] = NULL))

Par défaut, l'approche basée sur les formules est utilisée pour calculer les erreurs de
prédiction. Nous pouvons également effectuer des simulations d'amorçage en
spécifiant [Link] = "bootstrap"(notez que cet argument prend en charge la
correspondance partielle) :
[Link](11)
(fit5 <- glmReserve(GenIns, [Link] = "boot"))

Latest [Link] Ultimate IBNR S.E CV

2 5339 0.98252 5434 95 108.7 1.1440

3 4909 0.91263 5379 470 207.8 0.4421

4 4588 0.86599 5298 710 270.4 0.3809

5 3873 0.79725 4858 985 306.6 0.3112

6 3692 0.72235 5111 1419 387.6 0.2732

7 3483 0.61527 5661 2178 493.3 0.2265

8 2864 0.42221 6784 3920 813.1 0.2074

9 1363 0.24162 5642 4279 1077.3 0.2518

10 344 0.06922 4970 4626 1986.3 0.4294

total 30457 0.61982 49138 18681 2955.4 0.1582

Lorsque le bootstrap est utilisé, l'objet résultant a trois composants supplémentaires


- [Link], [Link], et [Link] stockent les paramètres simulés, les
valeurs moyennes et les valeurs prédites des réserves pour chaque année, respectivement.
names(fit5)

[1] "call" "summary" "Triangle"

[4] "FullTriangle" "model" "[Link]"

[7] "[Link]" "[Link]"

Nous pouvons ainsi calculer les quantiles des prédictions basées sur les échantillons simulés
dans l' [Link]élément comme :
pr <- [Link](fit5$[Link])
qv <- c(0.025, 0.25, 0.5, 0.75, 0.975)
res.q <- t(apply(pr, 2, quantile, qv))
print(format(round(res.q), [Link] = ","), quote = FALSE)

2.5% 25% 50% 75% 97.5%

2 0 40 91 175 375

3 125 339 463 612 941

4 290 551 720 910 1,330

5 507 797 991 1,195 1,686

6 812 1,194 1,424 1,691 2,305

7 1,345 1,873 2,161 2,536 3,258

8 2,595 3,427 3,951 4,517 5,742

9 2,462 3,555 4,222 4,988 6,879

10 809 3,394 4,505 5,904 9,236

La distribution prédictive complète des réserves simulées pour chaque année peut être visualisée
facilement :
library(ggplot2)
prm <- reshape(pr, varying=list(names(pr)), [Link] = "reserve",
timevar = "year", direction="long")
gg <- ggplot(prm, aes(reserve))
gg <- gg + geom_density(aes(fill = year), alpha = 0.3) +
facet_wrap(~year, nrow = 2, scales = "free") +
theme([Link] = "none")
print(gg)

La distribution prédictive des provisions pour sinistres pour chaque année basée sur le bootstrap

Modèle de chaîne payante

Le modèle Paid-incurred chain a été publié par Merz et Wüthrich en 2010 (M. Merz et Wüthrich
2010) . Il combine les paiements des sinistres et les informations sur les pertes subies d'une
manière mathématiquement rigoureuse et cohérente pour obtenir une prévision unifiée des
pertes ultimes.

Hypothèses du modèle

Les hypothèses du modèle pour le modèle PIC log-normal sont les suivantes :

o Conditionnellement, étant
donné Θ = (Φ0, . . . ,Φje,Ψ0, . . . ,Ψje− 1,σ0, . . . ,σje− 1,τ0, . . . ,τje− 1Θ=(
Φ0,...,Φje,Ψ0,...,Ψje−1,σ0,...,σje−1,τ0,...,τje−1 on a
o le vecteur aléatoire (ξ0 , 0, . . . ,ξje, je,ζ0 , 0, . . . ,ζje, je− 1)
(ξ0,0,...,ξje,je,ζ0,0,...,ζje,je−1) a une distribution gaussienne multivariée avec des
composantes non corrélées données par $$

ξje , j∼N _(Φj,σ2j) ,ξje,j∼N(Φj,σj2),

ζk , l∼N _(Ψje,τ2je) ;ζk,je∼N(Ψje,τje2);


o les paiements cumulés sont donnés par la récursivité

Pje , j=Pje , j - 1exp(ξje , j) ,Pje,j=Pje,j−1exp⁡(ξje,j),

$$ avec la valeur initiale Pje , 0= exp(ξje , 0)Pje,0=exp⁡(ξje,0);

o pertes subies jeje , jjeje,j sont donnés par la récurrence arrière

jeje , j - 1=jeje , jexp( -ζje , j - 1) ,jeje,j−1=jeje,jexp⁡(−ζje,j−1),

avec valeur initiale jeje , je=Pje , jejeje,je=Pje,je.

o Les composants de ΘΘ sont indépendants et σj,τj> 0σj,τj>0 pour tout j.

Estimation des paramètres

Paramètres ΘΘdans le modèle ne sont généralement pas connus et doivent être estimés à partir
des observations. Ils sont estimés dans un cadre bayésien. Dans le modèle bayésien PIC, ils
supposent que les hypothèses précédentes sont vraies avec

Φm∼N _(ϕm,s2m) ,Φm∼N(ϕm,sm2),


déterministeσ0, . . . ,σJσ0,...,σJ et τ0, . . . ,τJ− 1τ0,...,τJ−1 et

Ψn∼N _(ψn,t2n) .Ψn∼N(ψn,tn2).


Il ne s'agit pas d'une approche bayésienne complète, mais elle a l'avantage de donner des
expressions analytiques pour les distributions a posteriori et l'incertitude de prédiction.
Le modèle Paid-incurred Chain est implémenté dans le ChainLadderpackage via la
fonction PaidIncurredChain. À titre d'exemple, nous appliquons la fonction aux triangles USAA
payés et engagés :
PIC <- PaidIncurredChain(USAApaid, USAAincurred)
PIC

$[Link]

[,1]

[1,] 983113

[2,] 1078697

[3,] 1145761

[4,] 1245171

[5,] 1371964

[6,] 1433857

[7,] 1415964

[8,] 1410065

[9,] 1320415

$[Link]

[1] 11405008
$[Link]

[,1]

[1,] 965.3

[2,] 3159.6

[3,] 7386.4

[4,] 18521.4

[5,] 47232.4

[6,] 113727.4

[7,] 230663.7

[8,] 443903.3

[9,] 778393.5

$[Link]

[1] 1643953

$s.e.

[1] 113940

Nous pouvons accéder aux réserves par année d'origine via


PIC$[Link]

[,1]

[1,] 965.3

[2,] 3159.6

[3,] 7386.4

[4,] 18521.4

[5,] 47232.4

[6,] 113727.4

[7,] 230663.7

[8,] 443903.3

[9,] 778393.5

et la réserve totale via


PIC$[Link]

[1] 1643953

s.e. est la racine carrée de l'erreur quadratique moyenne de prédiction pour la perte ultime
totale.
Il est important de noter que le modèle est implémenté dans le cas particulier des a priori non
informatifs pour ΦmΦm et ΨnΨn; cela signifie que nous
laissonss2m→ ∞sm2→∞ et t2n→ ∞tn2→∞.

Résultat d'évolution des sinistres sur un an


Les méthodes stochastiques de provisionnement des sinistres considérées ci-dessus prédisent le
triangle inférieur (inconnu) et évaluent l'incertitude de cette prédiction. Par exemple, la formule
d'incertitude de Mack quantifie l'incertitude de prédiction totale du prédicteur en chaîne sur
l'ensemble du règlement des sinistres en cours. Les considérations modernes de solvabilité,
telles que Solvabilité II, exigent une deuxième vision des créances en préservant
l'incertitude. Cette deuxième vision est une vision à court terme car elle nécessite des
évaluations des changements sur un an des prévisions de sinistres lorsque l'on met à jour les
informations disponibles à la fin de chaque exercice comptable. Au momentt ≥ nt≥n nous
avons des informations
rét= {Cje , k; je + k ≤ t + 1 } .rét={Cje,k; je+k≤t+1}.
Cela motive la séquence suivante de prédicteurs pour la revendication ultime Cje , KCje,K a
l'heure t ≥ nt≥n
Cˆ( t )je , K= E [Cje , K|rét] .C^je,K(t)=E[Cje,K|rét].
Les résultats de l'évolution des sinistres sur un an (CDR), voir Merz-Wüthrich , tiennent compte
des changements dans ces mises à jour sur un an, c'est-à-dire
C D Rje , t + 1=Cˆ( t )je , K−Cˆ( t + 1 )je , [Link]éRje,t+1=C^je,K(t)−C^je,K(t+1).
La propriété de tour de l'espérance conditionnelle implique que les CDR sont en moyenne de 0,
c'est-à-dire E [C D Rje , t + 1|rét] = 0E[CréRje,t+1|rét]=0et la formule de Merz-
Wüthrich (Michael Merz et Wüthrich 2008a) , (Michael Merz et Wüthrich 2014) évalue l'incertitude
de ces prédictions mesurée par l'erreur quadratique moyenne conditionnelle de prédiction

mse p _ _C D Rje , t + 1|rét( 0 ) = E [(C D Rje , t + 1− 0 )2∣∣rét] .msepCréRje,t+1|


(MSEP) suivante

rét(0)=E[(CréRje,t+1−0)2|rét].
La difficulté majeure dans l'évaluation de la MSEP conditionnelle est la quantification de
l'incertitude d'estimation des paramètres.

Fonctions CDR

Le résultat de développement des sinistres (CDR) sur un an peut être estimé via la CDRfonction
générique pour les objets de MackChainLadderetBootChainLadder .
De plus, la tweedieReservefonction offre également la possibilité d'estimer le CDR sur un an, en
définissant l'argument rereserving=TRUE.
Par exemple, pour reproduire les résultats de (Michael Merz et Wüthrich 2014) utilisez :
M <- MackChainLadder(MW2014, [Link]="Mack")
cdrM <- CDR(M)
round(cdrM, 1)

IBNR CDR(1)S.E. Mack.S.E.

1 0.0 0.0 0.0

2 1.0 0.4 0.4

3 10.1 2.5 2.6

4 21.2 16.7 16.9

5 117.7 156.4 157.3

6 223.3 137.7 207.2

7 361.8 171.2 261.9

8 469.4 70.3 292.3

9 653.5 271.6 390.6


10 1008.8 310.1 502.1

11 1011.9 103.4 486.1

12 1406.7 632.6 806.9

13 1492.9 315.0 793.9

14 1917.6 406.1 891.7

15 2458.2 285.2 916.5

16 3384.3 668.2 1106.1

17 9596.6 733.2 1295.7

Total 24134.9 1842.9 3233.7

Pour passer en revue l'image complète de l'évolution des revendications, définissez


l'argumentdev="all" :
cdrAll <- CDR(M,dev="all")
round(cdrAll, 1)

IBNR CDR(1)S.E. CDR(2)S.E. CDR(3)S.E. CDR(4)S.E. CDR(5)S.E. CDR(6)S.E.

1 0.0 0.0 0.0 0.0 0.0 0.0 0.0

2 1.0 0.4 0.0 0.0 0.0 0.0 0.0

3 10.1 2.5 0.4 0.0 0.0 0.0 0.0

4 21.2 16.7 2.4 0.3 0.0 0.0 0.0

5 117.7 156.4 16.4 2.4 0.3 0.0 0.0

6 223.3 137.7 154.0 16.1 2.3 0.3 0.0

7 361.8 171.2 131.0 148.0 15.5 2.2 0.3

8 469.4 70.3 185.0 141.8 160.9 16.8 2.4

9 653.5 271.6 61.8 178.0 136.9 155.7 16.3

10 1008.8 310.1 274.6 59.0 180.4 138.6 158.1

11 1011.9 103.4 293.0 260.0 53.0 170.9 131.4


12 1406.7 632.6 102.3 302.2 268.7 52.8 176.6

13 1492.9 315.0 572.1 86.6 273.0 242.8 45.4

14 1917.6 406.1 313.3 573.0 84.4 273.1 243.1

15 2458.2 285.2 395.5 305.3 560.8 80.1 267.1

16 3384.3 668.2 271.7 380.2 293.3 540.6 75.7

17 9596.6 733.2 645.4 261.0 367.0 282.8 522.9

Total 24134.9 1842.9 1485.1 1208.3 1071.1 901.1 785.3

CDR(7)S.E. CDR(8)S.E. CDR(9)S.E. CDR(10)S.E. CDR(11)S.E. CDR(12)S.E.

1 0.0 0.0 0.0 0.0 0.0 0.0

2 0.0 0.0 0.0 0.0 0.0 0.0

3 0.0 0.0 0.0 0.0 0.0 0.0

4 0.0 0.0 0.0 0.0 0.0 0.0

5 0.0 0.0 0.0 0.0 0.0 0.0

6 0.0 0.0 0.0 0.0 0.0 0.0

7 0.0 0.0 0.0 0.0 0.0 0.0


8 0.3 0.0 0.0 0.0 0.0 0.0

9 2.3 0.3 0.0 0.0 0.0 0.0

10 16.6 2.4 0.3 0.0 0.0 0.0

11 150.4 15.7 2.3 0.3 0.0 0.0

12 135.8 155.6 16.3 2.3 0.3 0.0

13 159.7 122.9 141.1 14.8 2.1 0.3

14 44.1 159.9 123.0 141.4 14.8 2.1

15 237.9 42.3 156.4 120.4 138.5 14.5

16 257.3 229.3 39.9 150.8 116.1 133.6

17 71.8 248.8 221.7 38.1 145.9 112.3

Total 525.2 476.3 366.4 269.3 245.0 180.4

CDR(13)S.E. CDR(14)S.E. CDR(15)S.E. CDR(16)S.E. CDR(17)S.E. Mack.S.E.

1 0.0 0.0 0.0 0.0 0 0.0

2 0.0 0.0 0.0 0.0 0 0.4

3 0.0 0.0 0.0 0.0 0 2.6

4 0.0 0.0 0.0 0.0 0 16.9

5 0.0 0.0 0.0 0.0 0 157.3

6 0.0 0.0 0.0 0.0 0 207.2

7 0.0 0.0 0.0 0.0 0 261.9

8 0.0 0.0 0.0 0.0 0 292.3

9 0.0 0.0 0.0 0.0 0 390.6

10 0.0 0.0 0.0 0.0 0 502.1

11 0.0 0.0 0.0 0.0 0 486.1

12 0.0 0.0 0.0 0.0 0 806.9

13 0.0 0.0 0.0 0.0 0 793.9


14 0.3 0.0 0.0 0.0 0 891.7

15 2.1 0.3 0.0 0.0 0 916.5

16 14.0 2.0 0.3 0.0 0 1106.1

17 129.3 13.5 1.9 0.3 0 1295.7

Total 130.1 13.7 2.0 0.3 0 3233.7

Voir les fichiers d'aide à CDRet tweedieReservepour plus de détails.

Validation de modèle avec tweedieReserve

La validation du modèle est l'une des activités clés lorsqu'une compagnie d'assurance passe par
le processus d'approbation du modèle interne avec le régulateur. Cette section donne quelques
exemples d'utilisation des arguments de la tweedieReservefonction pour valider un modèle de
réservation stochastique. L'argument [Link] permet de tester différentes structures de
régression. Le modèle classique de Poisson surdispersé (ODP) utilise la structure suivante :
Oui∽ un s . facteur ( O Y _ _ _ _ _) + un s . facteur ( D Y _ _ _ _ _) ,Oui∽une
[Link](OOui)+[Link](réOui),
(c'est-à-dire [Link]=c(1,1,0)). Cela permet, avec le lien logarithmique, d'obtenir les
mêmes résultats que le modèle en échelle de chaîne (pondéré en volume), donc les mêmes
hypothèses implicites du modèle. Une lacune courante du modèle est lorsque les résidus tracés
par période calendaire commencent à montrer un modèle, que l'échelle de chaîne n'est pas
capable de modéliser. Afin de pallier cela, l'utilisateur pourrait alors être intéressé à modifier la
structure de régression afin d'essayer d'éliminer ces schémas (Gigante et Sigalotti 2005) . Par
exemple, une structure de régression comme :
Oui∽ un s . facteur ( D Y _ _ _ _ _) + un s . facteur ( _ _ _ _ _ _Oui) ,Oui∽un
[Link](réOui)+[Link](COui),
c'est-à- dire [Link]=c(0,1,1)pourrait être envisagé à la place. Cette approche renvoie les
mêmes résultats que la méthode de séparation arithmétique, modélisant explicitement les
paramètres d'inflation entre des périodes calendaires consécutives. Une autre hypothèse
intéressante est la distribution sous-jacente supposée. Le modèle ODP suppose ce qui suit :
Pje , j∽ O D P(mje , j, ϕ ⋅mje , j) ,Pje,j∽OréP(mje,j,ϕ⋅mje,j),
qui est un cas particulier de loi de Tweedie, de pparamètre égal à 1. De manière générale, pour
toute variable aléatoire Y obéissant à une loi de Tweedie, la variance V [Y]V[Oui] concerne la

V [Y] = une ⋅ E [ Oui]p,V[Oui]=une⋅E[Oui]p,


moyenne E [ O]E[Oui] par la loi suivante :

où aet psont des constantes positives. L'utilisateur peut tester différentes pvaleurs via
l' [Link] de la fonction. De plus, afin de valider le paramètre de Tweedie , il pourrait
être intéressant de tracer le profil de vraisemblance à des valeurs pdéfinies (par l' argument) pour
un jeu de données donné et une structure de régression. Cela pourrait être réalisé en définissant
l' [Link]=TRUE
p_profile <- tweedieReserve(MW2008, [Link]=TRUE,
[Link]=c(0,1.1,1.2,1.3,1.4,1.5,2,3),
[Link]=c(0,1,1),
rereserving=FALSE,
bootstrap=0,
progressBar=FALSE)
# 0 1.1 1.2 1.3 1.4 1.5 2 3
# ........Done.
# MLE of p is between 0 and 1, which is impossible.
# Instead, the MLE of p has been set to NA .
# Please check your data and the call to [Link]().
# Error in if (([Link] == [Link][1]) | ([Link] == [Link][length([Link])])) { :
# missing value where TRUE/FALSE needed

Cet exemple montre que le MLE de p semble être compris entre 0 et 1, ce qui n'est pas possible
car les modèles de Tweedie ne sont pas définis pour 0 < p < 1, d'où le message d'erreur. Mais,
malgré cela, nous pouvons conclure que globalement une valeur p=1pourrait être raisonnable
pour cet ensemble de données et la fonction de régression choisie, car elle semble être proche
de la MLE. D'autres sensibilités pourraient être exécutées sur :

o Type bootstrap (paramétrique / semi-paramétrique), via l' bootstrapargument


o Ajustement du biais (si vous utilisez un bootstrap semi-paramétrique), via
l' [Link]

Veuillez vous référer à help(tweedieReserve)pour plus d'informations.

Autres ressources
Pour une approche bayésienne complète des réservations de sinistres dans R avec Stan utilisant
le package brms, voir « Modèles de réservation compartimentés hiérarchiques » (Gesmann et
Morris 2020) .
Autres documents et ressources utiles pour débuter avec R dans le cadre du travail actuariel :

o Introduction à R pour les actuaires (De Silva 2006) .


o Sciences actuarielles computationnelles avec R (Charpentier 2014)
o Théorie moderne du risque actuariel - Utilisation de R (Kaas et al. 2001)
o Une boîte à outils actuarielle (Maynard et al. 2006)
o Conférence Data Science Assurance : [Link]

Autres forfaits R liés à l'assurance

Vous trouverez ci-dessous une liste d'autres packages R dans le cadre de l'assurance. La liste
est loin d'être complète et les vues de tâches du CRAN « Finance empirique » et « Distributions
de probabilité » fourniront des liens vers des ressources supplémentaires.

o cplm : Méthodes basées sur la vraisemblance et bayésiennes pour ajuster les modèles
linéaires de Poisson composés de Tweedie (Zhang 2012) .
o DCL : Provisionnement des sinistres dans le cadre du modèle Double Chain-
Ladder. Modélisation statistique et prévision des provisions pour sinistres en assurance
non-vie dans le cadre de la Double Chain-Ladder par (Miranda, Nielsen et Verrall 2012) .
o actuar : modélisation des distributions de pertes, théorie du risque (y compris la théorie
de la ruine), simulation de modèles hiérarchiques composés et théorie de la
crédibilité (Dutang, Goulet et Pigeon 2008) .
o fitdistrplus : Aide à l'ajustement d'une distribution paramétrique à des données non
censurées ou censurées (Delignette-Muller et al. 2010) .
o mondate : paquet R pour garder une trace des dates en termes de mois (Murphy 2021) .
o éventualités vie : Forfait pour réaliser l'évaluation actuarielle des éventualités
vie (Spedicato 2022) .
o brut : R Actuarial Workshops, plusieurs ensembles de données accessibles au public
intéressant les actuaires non-vie (Fannin 2021)
o SPLICE : Simulateur synthétique de perte payée et d'expérience de coût engagé
(SPLICE) (Avanzi, Taylor et Wang 2021)
o SynthETIC : expérience synthétique de suivi des réclamations d'assurance (Avanzi et al.
2021)
o NetSimR : Fonctions actuarielles pour la modélisation de l'assurance non-vie (Parizas
2019)

N'est plus sur CRAN :

o lossDev : un modèle bayésien de développement des pertes en séries


chronologiques. Les caractéristiques comprennent une distribution en t asymétrique avec
un paramètre d'échelle variant dans le temps, un saut réversible MCMC pour déterminer
la forme fonctionnelle du chemin de consommation et une rupture structurelle dans ce
chemin (Laws et Schmid 2011) .
o favir : Vignettes actuarielles formatées dans R. FAViR réduit la courbe d'apprentissage de
l'environnement R. Il s'agit d'une série d'articles Sweave évalués par des pairs qui
utilisent un style cohérent (Escoto 2011) .
o MRMR : Modèles de régression multivariés pour le provisionnement (Fannin 2013) .

Les références
Avanzi, Benjamin, Greg Taylor et Melantha Wang. 2021. SPLICE : Simulateur synthétique
d'expérience de perte payée et de coût engagé
(SPLICE) . [Link] .
Avanzi, Benjamin, Greg Taylor, Melantha Wang et Bernard Wong. 2021. " SynthETIC : Un simulateur
de réclamation d'assurance individuelle avec contrôle des fonctionnalités. " Assurance:
Mathématiques et économie 100 (septembre): 296–
308. [Link] .
Buchwalder, M., H. Bühlmann, M. Merz et M. V Wüthrich. 2006. "L'erreur quadratique moyenne de
prédiction dans la méthode de réservation de l'échelle en chaîne (Mack et Murphy
revisités)." Journal actuariel nord-américain 36 : 521–42.
Charpentier, Arthur, éd. 2014. Computational Actuarial S cience avec R . Chapman ; Salle/CRC.
Clark, David R. 2003. Ajustement de courbe LDF et réservation stochastique : une approche de
probabilité maximale . société actuarielle
d'accidents; [Link] .
De Silva, Nigel. 2006. "Une introduction à r : Exemples pour les actuaires." groupe de travail sur la
boîte à outils actuarielle ; [Link] .
Delignette-Muller, Marie Laure, Régis Pouillot, Jean-Baptiste Denis et Christophe
Dutang. 2010. Fitdistrplus : Aide à l'ajustement d'une distribution paramétrique à des données
non censurées ou censurées .
Dutang, C, V. Goulet et M. Pigeon. 2008. "Actuar : un package R pour la science
actuarielle." Tourillon de logiciel statistique 25 (7).
Angleterre, Peter et Richard Verrall. 2002. "Réservation stochastique des sinistres dans l'assurance
générale." Journal actuariel britannique 8 : 443–544.
Escoto, Benoît. 2011. Favir : Vignettes actuarielles formatées en r . 0.5–1ère
éd. [Link] .
Fannin, Brian A. 2013. MRMR : modèles de régression multivariés pour la
réservation . [Link] .
———. 2021. Raw : R Ateliers actuariels . [Link] .
Gesmann, Markus. 2014. «Réservation des sinistres et IBNR ». In Computational Actuarial S cience
with R , 545–84 . Chapman ; Salle/CRC.
Gesmann, Markus et Jake Morris. 2020. Modèles de réservation compartimentés
hiérarchiques . société actuarielle
d'accidents; [Link]
[Link] .
Gigante et Sigalotti. 2005. "Risque de modèle dans la réservation de sinistres avec GLM." Giornale
Dell IIA LXVIII : 55–87.
Gravelsons, Brian, Matthew Ball, Dan Beard, Robert Brooks, Naomi Couchman, Brian Gravelsons,
Charlie Kefford, et al. 2009. "B12 : Mise à jour 2009 du groupe de travail sur l'amiante au
Royaume-Uni." [Link] .
Henningsen, Arne et Jeff D. Hamann. 2007. "Systemfit : un package pour l'estimation de systèmes
d'équations simultanées en r." Tourillon de logiciel statistique 23 (4) : 1–
40. [Link] .
Kaas, R., M. Goovaerts, J. Dhaene et M. Denuit. 2001. Théorie moderne du risque
actuariel . Dordrecht : Kluwer Academic Publishers .
Laws, Christopher W., et Frank A. Schmid. 2011. lossDev : Développement robuste des pertes à
l'aide de MCMC . [Link] .
Lyons, Graham, Will Forster, Paul Kedney, Ryan Warren et Helen Wilkinson. 2002. Document du
groupe de travail sur la réservation des créances . Institut des actuaires.
Mac, Thomas. 1993. "Calcul sans distribution de l'erreur type des estimations des réserves en
échelle de chaîne." ASTIN Bulletin 23 : 213–225.
———. 1999. "L'erreur standard des estimations des réserves en échelle de chaîne : calcul récursif
et inclusion d'un facteur de queue." Astin Bulletin Vol. 29 (2): 361–266.
Maynard, Trevor, Nigel De Silva, Richard Holloway, Markus Gesmann, Sie Lau et John
Harnett. 2006. « Une boîte à outils actuarielle. Présentation du Manifeste de la boîte à
outils . » [Link] .
Merz, Michael et Mario V. Wuthrich. 2008a. "Modélisation du résultat de développement des sinistres
à des fins de solvabilité." CAS E-Forum Automne: 542–68.
———. 2008b. "Erreur de prédiction de la méthode de réservation de l'échelle de chaîne
multivariée." Journal actuariel nord-américain 12 : 175–97.
———. 2014. "Laims Run-Off Incertitude: The Full Picture." Manuscrit SSRN 2524352.
Merz, M., et M. Wuthrich. 2010. "Méthode de réservation des sinistres en chaîne
payés." Assurance : Mathématiques et économie 46(3) : 568–79.
Michaels, Darren. 2002. « APH : Comment l'amour charnel et les implants en silicone ont presque
détruit Lloyd 's (diapositives) ». Institut des
actuaires : [Link]
[Link] .
Miranda, María Dolores Martínez, Jens Perch Nielsen et Richard Verrall. 2012. "Échelle à double
chaîne". Bulletin ASTIN 42 (1): 59–76. [Link] .
Murphy, Daniel. 1994. "Facteurs de développement de perte impartiaux." PCAS 81 : 154-222.
———. 2021. Mondate : Gardez une trace des dates en termes de mois . [Link]
[Link]/package=mondate .
Orr, James. 2012. Groupe de travail de recherche sur la réservation du GIROC . Institut des
actuaires.
Parizas, Yiannis. 2019. "S'échapper du Triangle." Le magazine de
l'actuaire juin. [Link] .
Pröhl, Carsten et Klaus D. Schmidt. 2005. «Échelle de chaîne multivariée». Dresdner Schriften Zur
Versicherungsmathematik .
Quarg, Gerhard et Thomas Mack. 2004. «Échelle de chaîne de Munich». Groupe Munich Re.
Équipe centrale de développement R. 2022a. R Importation/exportation de données . Fondation R
pour le calcul statistique ; [Link] .
———. 2022b. R Installation et administration . Fondation R pour le calcul statistique ; [Link]
[Link]/doc/manuals/[Link] .
Schmidt, Klaus D. 2017. "Une bibliographie sur la provision pour
pertes." [Link]
lang=de .
Spedicato, Giorgio Alfredo. 2022. Introduction à LifeContingencies Package . 1.3.8 éd. Conseiller
statistique Inc ; [Link] .
Zehnwirth, Ben et Glen Barnett. 2000. "Meilleures estimations pour les réserves." Actes du
TAS LXXXVII (167).
Zhang, Yanwei. 2010. "Un modèle général d'échelle de chaîne multivariée." Assurance :
Mathématiques et économie 46 : 588–99.
———. 2012. "Méthodes basées sur la probabilité et bayésiennes pour les modèles mixtes linéaires
de Poisson composés de Tweedie." Statistiques et informatique .
Zhang, Yanwei, Vanja Dukic et James Guszcza. 2012. "Un modèle bayésien non linéaire pour la
prévision des paiements de pertes d'assurance." Journal de la Royal Statistical Society, série
A 175 : 637–56.

1. Voir les forfaits RODBCet ↩︎DBI


2. Veuillez vous assurer que votre fichier CSV est exempt de formatage, par exemple des

caractères ou des facteurs plutôt que comme des valeurs numériques. ↩︎


caractères pour séparer les unités de milliers, car ces colonnes seront lues comme des

3. Ce document fait partie du programme de l'examen CAS 6 ↩︎


4. En guise d'exercice, le lecteur peut confirmer que l'hypothèse de distribution normale est
rejetée au niveau de 5 % avec la courbe log-logistique

Vous aimerez peut-être aussi