Bootstrap-Chain-Ladder Model
BootChainLadder.Rd
The BootChainLadder
procedure provides a predictive
distribution of reserves or IBNRs for a cumulative claims development triangle.
Usage
BootChainLadder(Triangle, R = 999, process.distr=c("gamma", "od.pois"), seed = NULL)
Arguments
- Triangle
cumulative claims triangle. Assume columns are the development period, use transpose otherwise. A (mxn)-matrix \(C_{ik}\) which is filled for \(k \le n+1-i; i=1,\ldots,m; m\ge n \). See
qpaid
for how to use (mxn)-development triangles with m<n, say higher development period frequency (e.g quarterly) than origin period frequency (e.g accident years).- R
the number of bootstrap replicates.
- process.distr
character string indicating which process distribution to be assumed. One of "gamma" (default), or "od.pois" (over-dispersed Poisson), can be abbreviated
- seed
optional seed for the random generator
Details
The BootChainLadder
function uses a two-stage
bootstrapping/simulation approach. In the first stage an ordinary
chain-ladder methods is applied to the cumulative claims triangle.
From this we calculate the scaled Pearson residuals which we bootstrap
R times to forecast future incremental claims payments via the
standard chain-ladder method.
In the second stage we simulate the process error with the bootstrap
value as the mean and using the process distribution assumed.
The set of reserves obtained in this way forms the predictive distribution,
from which summary statistics such as mean, prediction error or
quantiles can be derived.
Value
BootChainLadder gives a list with the following elements back:
- call
matched call
- Triangle
input triangle
- f
chain-ladder factors
- simClaims
array of dimension
c(m,n,R)
with the simulated claims- IBNR.ByOrigin
array of dimension
c(m,1,R)
with the modeled IBNRs by origin period- IBNR.Triangles
array of dimension
c(m,n,R)
with the modeled IBNR development triangles- IBNR.Totals
vector of R samples of the total IBNRs
- ChainLadder.Residuals
adjusted Pearson chain-ladder residuals
- process.distr
assumed process distribution
- R
the number of bootstrap replicates
References
England, PD and Verrall, RJ. Stochastic Claims Reserving in General Insurance (with discussion), British Actuarial Journal 8, III. 2002
Barnett and Zehnwirth. The need for diagnostic assessment of bootstrap predictive models, Insureware technical report. 2007
Author
Markus Gesmann, markus.gesmann@gmail.com
Note
The implementation of BootChainLadder
follows closely the
discussion of the bootstrap model in section 8 and appendix 3 of the
paper by England and Verrall (2002).
See also
See also
summary.BootChainLadder
,
plot.BootChainLadder
displaying results and finally
CDR.BootChainLadder
for the one year claims development result.
Examples
# See also the example in section 8 of England & Verrall (2002) on page 55.
B <- BootChainLadder(RAA, R=999, process.distr="gamma")
B
#> BootChainLadder(Triangle = RAA, R = 999, process.distr = "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,880 176 735 174 1,422
#> 1983 23,466 24,033 567 1,288 1,043 2,824
#> 1984 27,067 28,820 1,753 1,956 2,788 5,697
#> 1985 26,180 29,103 2,923 2,531 4,146 7,384
#> 1986 15,852 19,498 3,646 2,390 5,001 8,099
#> 1987 12,314 17,948 5,634 3,099 7,347 11,461
#> 1988 13,112 24,298 11,186 5,009 14,330 20,008
#> 1989 5,395 16,242 10,847 6,182 14,551 21,863
#> 1990 2,063 19,409 17,346 13,273 24,581 41,990
#>
#> Totals
#> Latest: 160,987
#> Mean Ultimate: 215,064
#> Mean IBNR: 54,077
#> IBNR.S.E 18,659
#> Total IBNR 75%: 64,584
#> Total IBNR 95%: 87,212
plot(B)
# Compare to MackChainLadder
MackChainLadder(RAA)
#> MackChainLadder(Triangle = RAA)
#>
#> Latest Dev.To.Date 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 143 0.928
#> 1983 23,466 0.974 24,083 617 592 0.959
#> 1984 27,067 0.943 28,703 1,636 713 0.436
#> 1985 26,180 0.905 28,927 2,747 1,452 0.529
#> 1986 15,852 0.813 19,501 3,649 1,995 0.547
#> 1987 12,314 0.694 17,749 5,435 2,204 0.405
#> 1988 13,112 0.546 24,019 10,907 5,354 0.491
#> 1989 5,395 0.336 16,045 10,650 6,332 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,880.74
#> CV(IBNR): 0.52
quantile(B, c(0.75,0.95,0.99, 0.995))
#> $ByOrigin
#> IBNR 75% IBNR 95% IBNR 99% IBNR 99.5%
#> 1981 0.0000 0.000 0.000 0.000
#> 1982 174.4426 1421.779 3037.410 3840.694
#> 1983 1042.7955 2824.071 4945.594 6116.030
#> 1984 2788.2457 5697.152 7839.133 8530.352
#> 1985 4145.8989 7383.729 10386.568 12706.854
#> 1986 5001.2724 8099.403 10357.138 11643.182
#> 1987 7347.4536 11461.462 14932.652 15321.073
#> 1988 14330.4699 20007.933 24916.955 26223.208
#> 1989 14550.8799 21863.137 28447.237 31217.469
#> 1990 24580.9047 41990.250 54731.815 63806.165
#>
#> $Totals
#> Totals
#> IBNR 75%: 64584.25
#> IBNR 95%: 87212.15
#> IBNR 99%: 108595.06
#> IBNR 99.5%: 113899.74
#>
# fit a distribution to the IBNR
library(MASS)
plot(ecdf(B$IBNR.Totals))
# fit a log-normal distribution
fit <- fitdistr(B$IBNR.Totals[B$IBNR.Totals>0], "lognormal")
fit
#> meanlog sdlog
#> 10.836224928 0.362707471
#> ( 0.011475557) ( 0.008114444)
curve(plnorm(x,fit$estimate["meanlog"], fit$estimate["sdlog"]), col="red", add=TRUE)
# See also the ABC example in Barnett and Zehnwirth (2007)
A <- BootChainLadder(ABC, R=999, process.distr="gamma")
A
#> BootChainLadder(Triangle = ABC, R = 999, process.distr = "gamma")
#>
#> Latest Mean Ultimate Mean IBNR IBNR.S.E IBNR 75% IBNR 95%
#> 1977 762,544 762,544 0 0 0 0
#> 1978 889,022 903,632 14,610 5,244 18,016 23,804
#> 1979 1,019,932 1,057,388 37,456 7,982 42,391 52,175
#> 1980 1,002,134 1,066,234 64,100 9,926 70,210 80,813
#> 1981 1,002,194 1,103,282 101,088 12,403 108,923 122,701
#> 1982 944,614 1,089,066 144,452 13,833 152,849 167,935
#> 1983 895,700 1,107,188 211,488 16,538 222,399 238,876
#> 1984 1,024,228 1,411,667 387,439 24,146 403,594 427,620
#> 1985 1,173,448 1,939,560 766,112 39,078 792,209 831,965
#> 1986 1,011,178 2,377,011 1,365,833 58,669 1,401,398 1,468,501
#> 1987 496,200 2,689,676 2,193,476 109,012 2,265,675 2,386,688
#>
#> Totals
#> Latest: 10,221,194
#> Mean Ultimate: 15,507,247
#> Mean IBNR: 5,286,053
#> IBNR.S.E 169,378
#> Total IBNR 75%: 5,389,690
#> Total IBNR 95%: 5,578,653
plot(A, log=TRUE)
## One year claims development result
CDR(A)
#> IBNR IBNR.S.E CDR(1)S.E CDR(1)75% CDR(1)95%
#> 1977 0.00 0.000 0.000 0.00 0.00
#> 1978 14609.70 5243.964 5243.964 18016.02 23803.75
#> 1979 37455.54 7982.279 6187.179 41670.41 48238.21
#> 1980 64100.14 9925.981 7034.509 68432.26 75514.58
#> 1981 101088.06 12403.082 7978.249 105620.84 114775.42
#> 1982 144451.61 13832.579 8934.881 150154.11 159213.19
#> 1983 211488.37 16538.003 10509.088 218321.04 229241.53
#> 1984 387438.55 24145.695 15735.073 396793.86 412980.16
#> 1985 766112.07 39078.333 24854.756 781423.16 808211.88
#> 1986 1365832.64 58668.729 42468.465 1393558.58 1435164.63
#> 1987 2193476.24 109011.960 91549.726 2250379.17 2348572.78
#> Total 5286052.92 169378.251 132900.010 5365547.92 5504387.10