Méthodes de réservation ChainLadder en R
Méthodes de réservation ChainLadder en R
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:
Carrato, Mario Wuthrich, Fabio Concina and Eric Dal Moro (2022).
[Link]
introduction
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 :
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
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
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.
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].
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
1 2 3 4 5 6 7 8 9 10
5012 8269 10907 11805 13539 16181 18009 18608 18662 18834
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.
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.
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]="")
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)
summary(myData)
1st Qu.: 3 1st Qu.: 2.00 1st Qu.: 10324 Class :character
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
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])
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.
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
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
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
[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
9.366 3.123 1.923 1.513 1.292 1.160 1.113 1.078 1.060 1.050
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
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
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
mack_smmry$Totals
Totals
Latest: 1.610e+05
Dev: 7.554e-01
Ultimate: 2.131e+05
IBNR: 5.214e+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)
[,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
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
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
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
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))
Latest Paid Latest Incurred Latest P/I Ratio Ult. Paid Ult. Incurred
1 0.980
2 0.975
3 0.993
4 0.991
5 0.997
6 0.998
7 0.987
Totals
Totals
Latest: 160,987
IBNR.S.E 19,669
$ByOrigin
1981 0.0 0 0 0
Totals
meanlog sdlog
10.816072 0.391640
( 0.012391) ( 0.008762)
curve(plnorm(x,fit$estimate["meanlog"], fit$estimate["sdlog"]),
col="red", add=TRUE)
où UNEkUNEk est une colonne d'intersections et BkBk est la matrice de développement pour la
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 ...
[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]
[[1]]
[3,] 602710 NA NA
[[2]]
[3,] 540742 NA NA
Ce qui suit combine deux colonnes de triangles pour former une nouvelle matrice :
cbind2(liab2[1:3, 12])
[,1] [,2]
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, )
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
$AutoLiab
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, )
[1] 0.247 0.495 0.682 0.446 0.487 0.451 -0.172 0.805 0.337 0.688
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]]
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 :
IBNR S.E
IBNR S.E
IBNR S.E
IBNR S.E
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.
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]
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, )
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)
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)
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)
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 .
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"))
Call:
Deviance Residuals:
Coefficients:
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AIC: NA
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"))
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 0 40 91 175 375
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
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 $$
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
$[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
[,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
[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é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)
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
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 :
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 :
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)
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.