1. Arthur CHARPENTIER - IBNR: quantification of uncertainty
IBNR : quantification of uncertainty
Arthur Charpentier (Universit´ Rennes 1)
e
http ://blogperso.univ-rennes1.fr/arthur.charpentier/
Universidade Federal de Minas Gerais, March 2009
1
4. Arthur CHARPENTIER - IBNR: quantification of uncertainty
A short introduction
Claims reserving is an important and difficult issue. It might take years until a
claim is finally settled,
• reporting delay, between accident date and reporting date (notification at
insurance company)
• settlement delay, between reporting date and final settlement (recovery
process, court decisions)
• possible reopenings, due to unexpected developments
”It is hoped that more casualty actuaries will involve themselves in this important
area. IBNR reserves deserve more than just a clerical or cursory treatment and
we believe, as did Mr. Tarbell Chat ”the problem of incurred but not reported
claim reserves is essentially actuarial or statistical”. Perhaps in today’s
environment the quotation would be even more relevant if it stated that the
problem ”...is more actuarial than statistical”.” Bornhuetter & Ferguson
(1972)
=⇒ claims reserving is a prediction problem
4
5. Arthur CHARPENTIER - IBNR: quantification of uncertainty
On reserving risk (and uncertainty)
From July to November 2004, stock price of Converium Holding -90% after
reserve increase annoncements
25
20
15
10
5
2002 2003 2004 2005 2006 2007 2008
5
6. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Reserve cycle
Note that there is a reserving cycle, i.e. one should focus on boni-mali modeling.
6
7. Arthur CHARPENTIER - IBNR: quantification of uncertainty
A short overview on prediction uncertainty
Basically, we have to predict some (random) future cash flow, denoted X.
Let Ft denote the information available at some time t.
Let X denote the prediction made at time t.
The (conditional) mean square error of prediction (MSE) is simply
mset (X) = E [X − X]2 |Ft
2
= V ar(X|Ft ) + E (X|Ft ) − X
process variance
parameter estimation error
a predictor for X
i.e X is
an estimator for E(X|Ft ).
7
8. Arthur CHARPENTIER - IBNR: quantification of uncertainty
On claims reserving techniques
8
9. Arthur CHARPENTIER - IBNR: quantification of uncertainty
On claims reserving techniques
9
10. Arthur CHARPENTIER - IBNR: quantification of uncertainty
On claims reserving techniques
10
11. Arthur CHARPENTIER - IBNR: quantification of uncertainty
On claims reserving techniques
11
12. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
Information on claims is usually summarizes in payment triangles, either
incremental triangles, or cumulated payments.
Development year j Occurence year i Calendar year i + j
12
13. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
Information on claims is usually summarizes in payment triangles, either
incremental triangles, or cumulated payments.
Development year j Occurence year i Calendar year i + j
13
14. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
Information on claims is usually summarizes in payment triangles, either
incremental triangles, or cumulated payments.
Development year j Occurence year i Calendar year i + j
14
15. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
Information on claims is usually summarizes in payment triangles, either
incremental triangles, or cumulated payments.
Development year j Occurence year i Calendar year i + j
15
16. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
• Xi,j denotes incremental payments, payments of year j, for claims occurred
year i
• Ci,j denotes cumulated payments Ci,j = Xi,0 + Xi,1 + · · · + Xi,j , i.e. payments
seen as at year i + j.
0 1 2 3 4 5 0 1 2 3 4 5
0 3209 1163 39 17 7 21 0 3209 4372 4411 4428 4435 4456
1 3367 1292 37 24 10 1 3367 4659 4696 4720 4730
2 3871 1474 53 22 et et 2 3871 5345 5398 5420
3 4239 1678 103 3 4239 5917 6020
4 4929 1865 4 4929 6794
5 5217 5 5217
from Partrat et al. (2005)
16
17. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
• Pi,j denotes earned premium for year i
• Ni,j denotes cumulated number of claims, accdient year i seen as at year i + j
(in thousands).
0 1 2 3 4 5 0 1 2 3 4 5
0 4563 4589 4590 4591 4591 4591 0 1043.4 1045.5 1047.5 1047.7 1047.7 1047.7
1 4718 4674 4671 4672 4672 1 1043.0 1027.1 1028.7 1028.9 1028.7
2 4836 4861 4861 4863 etet 2 965.1 967.9 967.8 970.1
3 5140 5168 5173 3 977.0 984.7 986.8
4 5633 5668 4 1099.0 1118.5
5 6389 5 1076.3
from Partrat et al. (2005). Using a simple Chain Ladder algorithm, the
following earned premium can be considered
Year i 0 1 2 3 4 5
Pi 4591 4672 4863 5175 5673 6431
17
18. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Notations on triangles
And finally,
• Ci,j denotes cumulated payments Ci,j = Xi,0 + Xi,1 + · · · + Xi,j , i.e. payments
seen as at year i + j.
• Ei,j denotes cumulated estimated final charge, seen as as at.
0 1 2 3 4 5 0 1 2 3 4 5
0 3209 4372 4411 4428 4435 4456 0 4795 4629 4497 4470 4456 4456
1 3367 4659 4696 4720 4730 1 5135 4949 4783 4760 4750
2 3871 5345 5398 5420 et et 2 5681 5631 5492 5470
3 4239 5917 6020 3 6272 6198 6131
4 4929 6794 4 7326 7087
5 5217 5 7353
those triangles are sometimes denoted paid (P ) and incurred (I) losses triangles.
18
19. Arthur CHARPENTIER - IBNR: quantification of uncertainty
The Chain Ladder estimate
We assume here that
Ci,j+1 = λj Ci,j for all i, j = 1, · · · , n.
A natural estimator for λj based on past history is
n−j
i=1 Ci,j+1
λj = n−j
for all j = 1, · · · , n − 1.
i=1 Ci,j
Hence, it becomes possible to estimate future payments using
Ci,j = λn+1−i ...λj−1 Ci,n+1−i .
19
33. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Practical calculation of the Chain Ladder estimate
0 1 2 3 4 5 0 1 2 3 4 5
0 3209 4372 4411 4428 4435 4456 0 3209 4372 4411 4428 4435 4456
1 3367 4659 4696 4720 4730 1 3367 4659 4696 4720 4730 4752.4
2 3871 5345 5398 5420 et et 2 3871 5345 5398 5420 5430.1 5455.8
3 4239 5917 6020 3 4239 5917 6020 6046.15 6057.4 6086.1
4 4929 6794 4 4929 6794 6871.7 6901.5 6914.3 6947.1
5 5217 5 5217 7204.3 7286.7 7318.3 7331.9 7366.7
One the triangle has been completed, we obtain the amount of reserves, with
respectively 22, 36, 66, 153 and 2150 per accident year, i.e. the total is 2427.
33
34. Arthur CHARPENTIER - IBNR: quantification of uncertainty
The Chain-Ladder estimate
The Chain-Ladder estimate is probably the most popular technique to estimate
claim reserves. Let Ft denote the information avalable at time t, or more formally
the filtration generated by {Ci,j , i + j ≤ t} - or equivalently {Xi,j , i + j ≤ t}
Assume that incremental payments are independent by occurence years, i.e. Ci1 ,·
Ci2 ,· are independent for any i1 and i2 .
Further, assume that (Ci,j )j≥0 is Markov, and more precisely, there exist λj ’s
2
and σj ’s such that
i,j+1 |Fi+j ) = E(Ci,j+1 |Ci,j ) = λj · Ci,j
E(C
Var(Ci,j+1 |Fi+j ) = Var(Ci,j+1 |Ci,j ) = σ 2 · Ci,j
j
Under those assumption, one gets
E(Ci,j+k |Fi+j ) = E(Ci,j+k |Ci,j ) = λj · λj+1 · · · λj+k−1 Ci,j
34
35. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Underlying assumptions in the Chain-Ladder estimate
Recall, see Mack (1993), properties of the Chain-Ladder estimate rely on the
following assumptions
H1 E (Ci,j+1 |Ci,1 , ..., Ci,j ) = λj .Cij for all i = 0, 1, .., n and j = 0, 1, ..., n − 1
H2 (Ci,j )j=1,...,n and (Ci ,j )j=1,...,n are independent for all i = i .
2
H3 V ar (Ci,j+1 |Ci,1 , ..., Ci,j ) = Ci,j σj for all i = 0, 1, ..., n and j = 0, 1, ..., n − 1
35
36. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Properties of the Chain-Ladder estimate
Further
n−j−1
i=0 Ci,j+1
λj = n−j−1
i=0 Ci,j
is an unbiased estimator for λj , given Gj , and λj and λj + h are non-correlated,
given Fj . Hence, an unbiased estimator for E(Ci,j |Fi ) is
Ci,j = λn−i · λn−i+1 · · · λj−2 λj−1 − 1 · Ci,n−i .
Recall that λj is the estimator with minimal variance among all linear estimators
obtained from λi,j = Ci,j+1 /Ci,j ’s. Finally, recall that
n−j−1 2
2 1 Ci,j+1
σj = − λj · Xi,j
n−j−1 i=0
Ci,j
2
is an unbiased estimator of σj , given Gj (see Mack (1993) or Denuit &
Charpentier (2005)).
36
37. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Import/export of datasets with R
In the case of Excel files, library(RODBC)
library(RODBC)
file= odbcConnectExcel("D:triangle.xls")
BASE <- sqlQuery(file, "select * from [Feuil1$D9:I15]")
odbcCloseAll()
TRIANGLE.D=as.matrix(BASE)
base = read.table("D:triangle.csv",header=FALSE,sep=";")
A more convenient way is to use source(base.R).
37
38. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Example of payment triangle
file=paste("D:/reserves/triangles/xls/","triangle.csv",sep="")
base = read.table(file,header=FALSE,sep=";")
Consider the following cumulated triangle
base = read.table("D:vect-triangle.csv",header=TRUE,sep=";")
year = base$year
development = base$development
paycum = base$paycum
TRIANGLE.C = tapply(paycum,list(year,development),sum)
> TRIANGLE.C
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3209 4372 4411 4428 4435 4456
[2,] 3367 4659 4696 4720 4730 NA
[3,] 3871 5345 5398 5420 NA NA
[4,] 4239 5917 6020 NA NA NA
[5,] 4929 6794 NA NA NA NA
[6,] 5217 NA NA NA NA NA
38
39. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Example of payment triangle
From cumulated triangles, it is possible to obtain increments
TRIANGLE.X = TRIANGLE.D; Ntr=nrow(TRIANGLE.C)
for(i in 2:Ntr){
TRIANGLE.X[1:(Ntr+1-i),i]= TRIANGLE.C[1:(Ntr+1-i),i]- TRIANGLE.C[1:(Ntr+1-i),i-1]}
i.e.
> TRIANGLE.C > TRIANGLE.X
[,1] [,2] [,3] [,4] [,5] [,6] [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3209 4372 4411 4428 4435 4456 [1,] 3209 1163 39 17 7 21
[2,] 3367 4659 4696 4720 4730 NA [2,] 3367 1292 37 24 10 NA
[3,] 3871 5345 5398 5420 NA NA [3,] 3871 1474 53 22 NA NA
[4,] 4239 5917 6020 NA NA NA [4,] 4239 1678 103 NA NA NA
[5,] 4929 6794 NA NA NA NA [5,] 4929 1865 NA NA NA NA
[6,] 5217 NA NA NA NA NA [6,] 5217 NA NA NA NA NA
39
40. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Example of payment triangle
In regression models, it will be useful to have data in a dataset, i.e. we have to
transform matrices in vectors.
vec.D=as.vector(TRIANGLE.C)[is.na(as.vector(TRIANGLE.C))==FALSE]
vec.C=as.vector(TRIANGLE.X)[is.na(as.vector(TRIANGLE.X))==FALSE]
year=NA; dev=NA
for(i in 1:Ntr){
year=c(year,1:(Ntr-i+1)); dev=c(dev,rep(i,Ntr-i+1))}
year=year[is.na(year)==FALSE]; dev=dev[is.na(dev)==FALSE]
triangle= data.frame(year,dev,vec.D,vec.C)
> triangle
year dev vec.C vec.X year dev vec.C vec.X year dev vec.C vec.X
1 1 1 3209 3209 8 2 2 4659 1292 15 4 3 6020 103
2 2 1 3367 3367 9 3 2 5345 1474 16 1 4 4428 17
3 3 1 3871 3871 10 4 2 5917 1678 17 2 4 4720 24
4 4 1 4239 4239 11 5 2 6794 1865 18 3 4 5420 22
5 5 1 4929 4929 12 1 3 4411 39 19 1 5 4435 7
6 6 1 5217 5217 13 2 3 4696 37 20 2 5 4730 10
7 1 2 4372 1163 14 3 3 5398 53 21 1 6 4456 21
40
41. Arthur CHARPENTIER - IBNR: quantification of uncertainty
An alternative to obtain incremental triangles from cumulated ones is simply to
use inc <- cbind(cum[,1], t(apply(cum,1,diff))), and dualy, to obtain cumulated
triangles from incremental ones cum <- t(apply(inc,1, cumsum)).
41
42. Arthur CHARPENTIER - IBNR: quantification of uncertainty
With R, those two vectors can be obtained using functions lambda(triangle) and
sigma(triangle), the algorithm being simply
LAMBDA = matrix(NA,1,Ntr-1)
for(i in 1:(Ntr-1)){
LAMBDA[i] = sum(TRIANGLE.C[1:(Ntr-i),i+1])/
sum(TRIANGLE.C[1:(Ntr-i),i])}
Hence,
> LAMBDA
[,1] [,2] [,3] [,4] [,5]
[1,] 1.380933 1.011433 1.004343 1.001858 1.004735
An alternative is to remember that the chain ladder estimate is obtained as the
coefficient of a weighted regression,
x <- TRIANGLE.C[,1]
y <- TRIANGLE.C[,2]
lm(y ~ x + 0, weights=1/x)
we obtain here
Call:
42
43. Arthur CHARPENTIER - IBNR: quantification of uncertainty
lm(formula = y ~ x + 0, weights = 1/x)
Coefficients:
x
1.381
which is the value of the first link ratio. Actually more details can be obtained
> summary(lm(y ~ x + 0, weights=1/x))
Call:
lm(formula = y ~ x + 0, weights = 1/x)
Residuals:
1988 1989 1990 1991 1992
-1.048825 0.161975 -0.009507 0.971088 -0.179734
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 1.380933 0.005176 266.8 1.18e-09 ***
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
43
44. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Residual standard error: 0.7249 on 4 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.9999, Adjusted R-squared: 0.9999
F-statistic: 7.119e+04 on 1 and 4 DF, p-value: 1.184e-09
If f denotes the triangle of λi,j = Di,j+1 /Di,j ,
f=TRIANGLE.D[,2:Ntr]/TRIANGLE.D[,1:(Ntr-1)]
SIGMA = matrix(NA,1,Ntr-1)
for(i in 1:(Ntr-1)){
D=TRIANGLE.D[,i]*(f[,i]-t(rep(LAMBDA[i],Ntr)))^2
SIGMA[i]<-1/(Ntr-i-1)*sum(D[,1:(Ntr-1)])}
SIGMA[Ntr-1]<-min(SIGMA[(Ntr-3):(Ntr-2)])
44
45. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Hence,
> SIGMA
[,1] [,2] [,3] [,4] [,5]
[1] 0.525418785 0.102633234 0.002104330 0.000660780 0.000660780
In order to complete the triangle, one can simply use
for(i in 1:(Ntr-1)){
TRIANGLE.D[(Ntr-i+1):(Ntr),i+1]=LAMBDA[i]*TRIANGLE.D[(Ntr-i+1):(Ntr),i]}
Hence,
> TRIANGLE.D
0 1 2 3 4 5
1988 3209 4372.000 4411.000 4428.000 4435.000 4456.000
1989 3367 4659.000 4696.000 4720.000 4730.000 4752.397
1990 3871 5345.000 5398.000 5420.000 5430.072 5455.784
1991 4239 5917.000 6020.000 6046.147 6057.383 6086.065
1992 4929 6794.000 6871.672 6901.518 6914.344 6947.084
1993 5217 7204.327 7286.691 7318.339 7331.939 7366.656
45
46. Arthur CHARPENTIER - IBNR: quantification of uncertainty
The total amount of reserve is the obtained comparing the last column (estimated
ultimate loss amont) and the second diagonal (total payments as at now).
ultimate = TRIANGLE.D[,6]*(1+0.00)
payment.as.at = diag(TRIANGLE.D[,6:1])
RESERVES = ultimate-payment.as.at
> RESERVES
[1] 0.00000 22.39103 35.79342 65.67668 153.36790 2149.65640
Hence, here sum(RESERVES) is equal to 2426.885.
46
47. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Mack’s approach with R
A ChainLadder-package grew out of presentations the author gave at the Stochastic
Reserving Seminar at the Institute of Actuaries in November 2007. This package
implements the Mack and Munich Chain Ladder model using weighted linear
regression.
A link with Excel (through the RExcel-Addin) can be used.
MackChainLadder can be used to obtain λj ’s and σj ’s.
MunichChainLadder
47
48. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Mack’s approach with R
> MackChainLadder(TRIANGLE.D)
Latest Dev.To.Date Ultimate IBNR Mack.S.E CoV
1 4,456 1.000 4,456 0.0 0.000 NaN
2 4,730 0.995 4,752 22.4 0.639 0.0285
3 5,420 0.993 5,456 35.8 2.503 0.0699
4 6,020 0.989 6,086 66.1 5.046 0.0764
5 6,794 0.978 6,947 153.1 31.332 0.2047
6 5,217 0.708 7,367 2,149.7 68.449 0.0318
Totals:
Sum of Latest: 32,637
Sum of Ultimate: 35,064
Sum of IBNR: 2,427
Total Mack S.E.: 79
Total CoV: 3
The total amount of reserves is here 2,427.
48
49. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Mack’s approach with R
> MackChainLadder(TRIANGLE.D)
Latest Dev.To.Date Ultimate IBNR Mack.S.E CoV
1 4,456 1.000 4,456 0.0 0.000 NaN
2 4,730 0.995 4,752 22.4 0.639 0.0285
3 5,420 0.993 5,456 35.8 2.503 0.0699
4 6,020 0.989 6,086 66.1 5.046 0.0764
5 6,794 0.978 6,947 153.1 31.332 0.2047
6 5,217 0.708 7,367 2,149.7 68.449 0.0318
Totals:
Sum of Latest: 32,637
Sum of Ultimate: 35,064
Sum of IBNR: 2,427
Total Mack S.E.: 79
Total CoV: 3
The link-ratios σj ’s.
49
50. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Mack’s approach with R
> MackChainLadder(TRIANGLE.D)$FullTriangle
F1 F2 F3 F4 F5 F6
1 3209 4372.000 4411.000 4428.000 4435.000 4456.000
2 3367 4659.000 4696.000 4720.000 4730.000 4752.397
3 3871 5345.000 5398.000 5420.000 5430.072 5455.784
4 4239 5917.000 6020.000 6046.147 6057.383 6086.065
5 4929 6794.000 6871.672 6901.518 6914.344 6947.084
6 5217 7204.327 7286.691 7318.339 7331.939 7366.656
> MackChainLadder(TRIANGLE.D)$f
[1] 1.380933 1.011433 1.004343 1.001858 1.004735 1.000000
> TRIANGLE=MackChainLadder(TRIANGLE.D)$FullTriangle
> sum(TRIANGLE[,Ntr]-rev(diag(TRIANGLE[Ntr:1,])))
[1] 2426.985
It is also possible to use plot(MackChainLadder(TRIANGLE.D))
50
54. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
X=c(1,2,3); Y=c(1,2,4); D=data.frame(X,Y)
REG=lm(Y~X,data=D); summary(REG)
x0=seq(0.1,3.9,by=0.05); D0=data.frame(X=x0)
y0=predict(REG,newdata=D0)
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 1 – Gaussian LM model.
54
55. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
REG=glm(Y~X,data=D,family=gaussian(link = "identity"))
x0=seq(0.1,3.9,by=0.05); D0=data.frame(X=x0)
y0=predict(REG,newdata=D0)
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 2 – Gaussian GLM model, Identity link function (canonical).
55
56. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
REG=glm(Y~X,data=D,family=poisson(link = "log"))
x0=seq(0.1,3.9,by=0.05); D0=data.frame(X=x0)
y0=exp(predict(REG,newdata=D0))
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 3 – Poisson GLM model, log link function (canonical).
56
57. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
REG=glm(Y~X,data=D,family=Gamma(link = "inverse"))
x0=seq(0.1,3.5,by=0.05); D0=data.frame(X=x0)
y0=1/predict(REG,newdata=D0)
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 4 – Gamma GLM model, Identity link function (canonical).
57
58. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
REG=glm(Y~X,data=D,family=poisson(link = "identity"))
x0=seq(0.1,3.9,by=0.05); D0=data.frame(X=x0)
y0=predict(REG,newdata=D0)
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 5 – Poisson GLM model, Identity link function (noncanonical).
58
59. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Basics on GLM with R
REG=glm(Y~X,data=D,family=poisson(link = "inverse"))
x0=seq(0.1,3.7,by=0.05); D0=data.frame(X=x0)
y0=1/predict(REG,newdata=D0)
5
q
4
3
q
2
q
1
0
0 1 2 3 4
Figure 6 – Poisson GLM model, inverse link function (noncanonical).
59
60. Arthur CHARPENTIER - IBNR: quantification of uncertainty
A factor model in claims reserving
A natural idea is to assume that incremental payments Yi,j can be explained by
two factors : one related to occurrence year i, and one development factor,
related to j. Formally, we assume that
Yi,j ∼ L(ϕ(1(occurrence year = i), 1(development year = j))),
i.e. Yi,j is a random variable, with distribution L, where parameter(s) can be
related to the two factors, and where ϕ is a given function, called link function.
60
61. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Poisson regression in claims reserving
Renshaw & Verrall (1998) proposed to use a Poisson regression for incremental
payments to estimate claim reserve, i.e.
Yi,j ∼ P exp α + βu 1(occurrence year u = i) + γv 1(development year v = j)
u v
devF=as.factor(development); anF=as.factor(year)
REG=glm(vec.C~devF+anF, family = "Poisson")
Here,
> summary(REG)
Call:
glm(formula = vec.C ~ anF + devF, family = poisson(link = "log"),
data = triangle)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.343e+00 -4.996e-01 9.978e-07 2.770e-01 3.936e+00
61
63. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Number of Fisher Scoring iterations: 4
Again, it is possible to summarize this information in triangles....
Predictions can be used to complete the triangle.
on r´cup`re alors les pr´dictions pour compl´ter le triangle.
e e e e
ANew=rep(1 :Ntr),times=Ntr) ; DNew=rep(0 :(Ntr-1),each=Ntr)
P=predict(REG, newdata=data.frame(A=as.factor(ANew),D=as.factor(DNew)))
payinc.pred= exp(matrix(as.numeric(P),nrow=n,ncol=n))
noise = payinc-payinc.pred
year development paycum payinc payinc.pred noise
1 1988 0 3209 3209 3155.699242 5.330076e+01
2 1989 0 3367 3367 3365.604828 1.395172e+00
3 1990 0 3871 3871 3863.737217 7.262783e+00
4 1991 0 4239 4239 4310.096418 -7.109642e+01
5 1992 0 4929 4929 4919.862296 9.137704e+00
6 1993 0 5217 5217 5217.000000 1.818989e-12
7 1988 1 4372 1163 1202.109851 -3.910985e+01
8 1989 1 4659 1292 1282.069808 9.930192e+00
9 1990 1 5345 1474 1471.824853 2.175147e+00
63
64. Arthur CHARPENTIER - IBNR: quantification of uncertainty
10 1991 1 5917 1678 1641.857784 3.614222e+01
11 1992 1 6794 1865 1874.137704 -9.137704e+00
12 1988 2 4411 39 49.820712 -1.082071e+01
13 1989 2 4696 37 53.134604 -1.613460e+01
14 1990 2 5398 53 60.998886 -7.998886e+00
15 1991 2 6020 103 68.045798 3.495420e+01
16 1988 3 4428 17 19.143790 -2.143790e+00
17 1989 3 4720 24 20.417165 3.582835e+00
18 1990 3 5420 22 23.439044 -1.439044e+00
19 1988 4 4435 7 8.226405 -1.226405e+00
20 1989 4 4730 10 8.773595 1.226405e+00
21 1988 5 4456 21 21.000000 -2.842171e-14
Residuals are obtained using the residual function, with one of the following
options deviance, pearson, working, response or partial.
The pearson residuals are
Xi,j − µi,j
εP =
i,j ,
µi,j
64
65. Arthur CHARPENTIER - IBNR: quantification of uncertainty
The deviance residuals are
Xi,j − µi,j
εD
i,j = ,
di,j
Pearson’s error can be obtained from function resid=residuals(REG,"pearson"), and
summarized in a triangle
> PEARSON
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 9.488238e-01 -1.12801295 -1.533031 -0.4899687 -0.4275912 -6.202125e-15
[2,] 2.404895e-02 0.27733318 -2.213449 0.7929194 0.4140426 NA
[3,] 1.168421e-01 0.05669707 -1.024162 -0.2972380 NA NA
[4,] -1.082940e+00 0.89196334 4.237393 NA NA NA
[5,] 1.302749e-01 -0.21107479 NA NA NA NA
[6,] 2.518371e-14 NA NA NA NA NA
65
68. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Finally, the theoretical triangles of Yi,j ’s, defined as
> resid*sqrt(payinc.pred)+payinc.pred
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3209 1163 39 17 7 21
[2,] 3367 1292 37 24 10 NA
[3,] 3871 1474 53 22 NA NA
[4,] 4239 1678 103 NA NA NA
[5,] 4929 1865 NA NA NA NA
[6,] 5217 NA NA NA NA NA
68
69. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Uncertainty and bootstrap simulations
Based on that theoretical triangle, it is possible to generate residuals to obtain a
simulated triangle. Since the size of the sample is small (here 21 observed values),
assuming normality for Pearson’s residuals can be too restrictive. Resampling
bootstrap procedure can then be more robust.
In order to get the loss distribution, it is possible to use bootstrap techniques to
generate a matrix of errors, see Renshaw & Verrall (1994). They suggest to
boostrap Pearson’s residuals, and the simulation procedure is the following
• estimate the model parameter (GLM), β,
Yi,j − µi,j
• calculate fitted values µi,j , and the residuals ri,j = ,
V (µi,j )
• forecast with original data µi,j for i + j > n.
Then can start the bootstrap loops, repeating B times
(b)
• resample the residuals with resample, and get a new sample ri,j ,
∗ (b)
• create a pseudo sample solving Yi,j = µi,j + ri,j × V (µi,j ),
• estimate the model using GLM procedure and derive boostrap forecast
69
70. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Let resid.sim be resampled residuals. Note that REG$fitted.values (called here
payinc.pred) is the vector containing the µi,j ’s. And further V (µi,j ) is here simply
REG$fitted.values since the variance function for the Poisson regression is the
identity function. Hence, here
∗ (b)
Yi,j = µi,j + ri,j × µi,j
and thus, set
resid.sim = sample(resid,Ntr*(Ntr+1)/2,replace=TRUE)
payinc.sim = resid.sim*sqrt(payinc.pred)+payinc.pred
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3155.699 1216.465 42.17691 18.22026 9.021844 22.89738
[2,] 3381.694 1245.399 84.02244 18.20322 11.122243 NA
[3,] 3726.151 1432.534 61.44170 23.43904 NA NA
[4,] 4337.279 1642.832 74.58658 NA NA NA
[5,] 4929.000 1879.777 NA NA NA NA
[6,] 5186.116 NA NA NA NA NA
For this simulated triangle, we can use Chain-Ladder estimate to derive a
70
71. Arthur CHARPENTIER - IBNR: quantification of uncertainty
simulated reserve amount (here 2448.175). Figure 7 shows the empirical
distribution of those amounts based on 10, 000 random simulations.
Estimated density of total reserves Estimated quantile of total reserves
(with Gaussian fitted distribution) (with Gaussian fitted distribution)
0.000 0.001 0.002 0.003 0.004 0.005 0.006 0.007
2600
2650
2500
2550
0.95 0.96 0.97 0.98 0.99 1.00
2400
2300
2200 2300 2400 2500 2600 2700 0.0 0.2 0.4 0.6 0.8 1.0
Figure 7 – Distribution of claim reserves, using bootstrap techniques.
71
72. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Parametric or nonparametric Monte Carlo ?
A natural idea would be to assume that Pearson residual have a Gaussian
distribution, qqnorm(R) ; qqline(R)
QQ plot of Pearson residuals QQ plot of Pearson residuals (Cook's distance)
q q
4
4
3
3
Empirical quantiles
Empirical quantiles
2
2
q
1
1
q
q q q q
q q
q q
qqqqq q
q q
q q
0
0
q q q q
qq q q
−1
−1
q q q q
q
q q
−2
−2
q q
−1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5
Theoritical quantiles Theoritical quantiles
The graph on the right draw point with a size proportional to its Cook’s distance.
72
73. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Instead of resampling in the sample obtained, we can also directly draw from a
normal distribution, i.e.
rnorm(length(R),mean=mean(R),sd=sd(R))
QQ plot of Pearson residuals Distribution of the reserves, B=10,000
q
4
0.005
3
0.004
Empirical quantiles
2
0.003
Density
1
q
q q
q
0.002
q
qqqqq q
0
q q
qq
0.001
−1
q q q
q
−2
q 0.000
−1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 2100 2200 2300 2400 2500 2600 2700
Theoritical quantiles Total amount of reserves
73
74. Arthur CHARPENTIER - IBNR: quantification of uncertainty
QQ plot of Pearson residual (Student) Distribution of the reserves, B=10,000
q
4
0.005
3
0.004
Empirical quantiles
2
0.003
Density
1
q
q q
q
0.002
q
qq qqq
q
0
qq
qq
0.001
−1
q qq
q
−2
0.000
q
−3 −2 −1 0 1 2 3 2100 2200 2300 2400 2500 2600 2700
Theoritical quantiles Total amount of reserves
The second triangle is obtained using a Student t distribution (the blue line
being the bootstrap estimate).
74
75. Arthur CHARPENTIER - IBNR: quantification of uncertainty
VaR for total reserves
2700
2650
Student
Normal
2600
bootstrap
quantile level
2550
2500
2450
2400
0.80 0.85 0.90 0.95 1.00
probability level
Note that the bootstrap technique is valid only in the case were the residuals are
perfectly independent.
In R, it is also possible to use the BootChainLadder(Triangle , R = 999, process.distr
= "od.pois") function.
75
76. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Going further
So far, we have derived a ditrisbution for the best estimate of total reserves.
Note tat it is possible to estimate a scale parameter φ. England and Verrall
(1999) suggested
ε2
i,j
φ=
n−p
where the summation is over all past observations.
It is possible to sample from the estimated process distribution, i.e. generate a
single Poisson P( αi βj ), where the sum is over the future.
P286
The overall algorithm is simply
76
77. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Analytical estimate of the prediction error
So far, we have been using bootstrap technique to derive a confidence interval of
future payments. But it is possible to use outputs of a GLM function.
Recall that
2
2
E [Xi,j − Xi,j ] = E[Xi,j ] − E[Xi,j ] +V ar(Xi,j −Xi,j ) ≈ V ar(Xi,j )+V ar(Xi,j ),
since
• the squared bias is small and can be neglected,
• the future loss and its forecast (computed from past losses) are independent.
In the case of a log-Poisson model, E Xi,j = µi,j = exp(ηi,j ) and
V ar(Xi,j = ϕ · µi,j , hence,
2
∂µi,j
V ar(Xi,j ) =≈ V ar(ηi,j ).
∂ηi,j
Thus,
E [Xi,j − Xi,j ]2 ≈ ϕµi,j + µ2 V ar(ηi,j ).
i,j
77
78. Arthur CHARPENTIER - IBNR: quantification of uncertainty
So finally, E(R − R)2 can be computed and
E(R − R)2 ≈ ϕµi,j + µ V ar(η)µ.
i,j
78
79. Arthur CHARPENTIER - IBNR: quantification of uncertainty
Bootstrap Chain-Ladder
> I=as.matrix(read.table("D:triangleC.csv",sep=";",header=FALSE))
> BCL <- BootChainLadder(Triangle = I, R = 999, process.distr = "od.pois")
> BCL
BootChainLadder(Triangle = I, R = 999, process.distr = "od.pois")
Latest Mean Ultimate Mean IBNR SD IBNR IBNR 75% IBNR 95%
1 4,456 4,456 0.0 0.0 0 0
2 4,730 4,752 22.0 11.8 28 45
3 5,420 5,455 35.3 14.6 44 61
4 6,020 6,086 66.2 20.8 78 102
5 6,794 6,947 152.7 29.1 170 205
6 5,217 7,364 2,146.9 112.5 2,214 2,327
Totals
Latest: 32,637
Mean Ultimate: 35,060
Mean IBNR: 2,423
SD IBNR: 131
Total IBNR 75%: 2,501
Total IBNR 95%: 2,653
79