Skip to contents

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