MackChainLadder {ChainLadder}R Documentation

Mack-Chain-Ladder Model

Description

The Mack-chain-ladder model forecasts IBNR (Incurred But Not Reported) claims based on a cumulative claims development triangle and estimates the standard error around it.

Usage

MackChainLadder(Triangle, weights = 1/Triangle,
tail=FALSE, est.sigma="log-linear")

Arguments

Triangle cumulative claims triangle. A (mxn)-matrix C_{ik} which is filled for k <=q n+1-i; i=1,...,m; m>=q 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).
weights weights. Default: 1/Triangle, to use volume weighted chain ladder factors.
tail can be logical or a numeric value. If tail=FALSE no tail factor will be applied, if tail=TRUE a tail factor will be estimate via a linear extrapolation of log(chain ladder factors - 1), if tail is a numeric value than this value will be used as tail factor.
est.sigma defines how to estimate sigma_{n-1}. Default is "log-linear" for a log-linear regression, "Mack" for Mack's approximation from his 1999 paper, or if a numeric value is given it will be used instead.

Details

Let C_{ik} denote the cumulative loss amounts of origin period (e.g. accident year) i=1,...,m, with losses known for development period (e.g. development year) k <=q n+1-i. In order to forecast the amounts C_{ik} for k > n+1-i the Mack chain-ladder-model assumes:

E[ frac{C_{i,k+1}}{C_{ik}} | C_{i1},C_{i2},...,C_{ik} ] = f_k

Var( frac{C_{i,k+1}}{C_{ik}} | C_{i1},C_{i2}, ...,C_{ik} ) = frac{σ_k^2}{C_{ik}}

{ C_{i1},...,C_{in}}, { C_{j1},...,C_{jn}},; are; independent; for; origin; period; i neq j

If these assumptions are hold, the Mack-chain-ladder-model gives an unbiased estimator for IBNR (Incurred But Not Reported) claims.

The Mack-chain-ladder model can be regarded as a weighted linear regression through the origin for each development period: lm(y ~ x + 0, weights=1/x), where y is the vector of claims at development period k+1 and x is the vector of claims at development period k.

Value

MackChainLadder returns a list with the following elements

call matched call
Triangle input triangle of cumulative claims
FullTriangle forecasted full triangle
Models linear regression models for each development period
f chain-ladder ratios
f.se estimation error of the chain-ladder ratios
F.se stochastic error of the chain-ladder ratios
sigma estimation of the conditional deviation of the individual chain ladder ratios
Mack.S.E Mack's estimated standard error for the reserves
Total.Mack.S.E Mack's estimated overall standard error for the reserves
tail tail factor used. If tail was set to TRUE the output will include the linear model used to estimate the tail factor

Note

Additional references for further reading:

England, PD and Verrall, RJ. Stochastic Claims Reserving in General Insurance (with discussion), British Actuarial Journal 8, III. 2002

Murphy, Daniel M. Unbiased Loss Development Factors. Proceedings of the Casualty Actuarial Society Casualty Actuarial Society - Arlington, Virginia 1994: LXXXI 154-222.

Zehnwirth and Barnett. Best estimates for reserves. Proceedings of the CAS, LXXXVI I(167), November 2000.

Author(s)

Markus Gesmann markus.gesmann@gmail.com

References

Thomas Mack. Distribution-free calculation of the standard error of chain ladder reserve estimates. Astin Bulletin. Vol. 23. No 2. 1993. pp.213:225

Thomas Mack. The standard error of chain ladder reserve estimates: Recursive calculation and inclusion of a tail factor. Astin Bulletin. Vol. 29. No 2. 1999. pp.361:366

See Also

See also qpaid, summary.MackChainLadder, plot.MackChainLadder, residuals.MackChainLadder, MunichChainLadder, BootChainLadder,

Examples


# See the example in Mack's 1999 paper
Mortgage
MRT <- MackChainLadder(Mortgage, est.sigma="Mack", tail=1.05)
MRT
# Table 1
MRT$f
MRT$f.se
MRT$F.se[3,]
MRT$sigma
plot(MRT) # We observe trends along calendar years.

# See the Taylor/Ashe example in Mack's 1993 paper
GenIns
GNI <- MackChainLadder(GenIns, est.sigma="Mack")
GNI$f
GNI$sigma^2
GNI # compare to table 2 and 3 in Mack's 1993 paper
plot(GNI)
## Include a tail factor
GNIt <- MackChainLadder(GenIns, est.sigma="Mack", tail=TRUE)
## Extract more information on the tail factor
GNIt$tail 

  
# This data set is discussed many papers, e.g. England and Verall 2000
# paper, see Table 1 just there  
RAA
R <- MackChainLadder(RAA)
R
plot(R)
# Table 12 in England and Verall 2000 paper
R$f
R$sigma^2
# Table 13 in England and Verall 2000 paper
# Please note the different indexing of sigma
MackChainLadder(RAA, est.sigma=R$sigma[7])
# Table 14 in England and Verall 2000 paper
MackChainLadder(RAA, est.sigma=R$sigma[8])

# Different weights
# Using 1/Triangle^2 as weight will use mean chain ladder ratios 
MackChainLadder(RAA, weights=1/RAA^2)$f
apply(RAA[,-1]/RAA[,-10],2, mean, na.rm=TRUE)
 
 # Let's investigate the Mack model more detail
 R[["Models"]][[1]]   # Model for first development period
 summary( R[["Models"]][[1]]) # Look at the model stats
 op <- par(mfrow=c(2,2)) # plot residuals
   plot( R[["Models"]][[1]])
 par(op)

 # Let's include an intercept in our model
 newModel <- update(R[["Models"]][[1]], y ~ x+1, 
              weights=1/R[["Triangle"]][1:9,1],
              data=data.frame(x=R[["Triangle"]][1:9,1], 
                              y=R[["Triangle"]][1:9,2])
               ) 

# View the new model
 summary(newModel)
 op <- par(mfrow=c(2,2)) 
   plot( newModel )
 par(op)

 # Change the model for dev. period one to the newModel
 R2 <- R
 R2[["Models"]][[1]] <- newModel
 predict(R2) # predict the full triangle with the new model 
 #(only the last origin year will be affected)

 R2[["FullTriangle"]] <-  predict(R2)
 R2[["FullTriangle"]] 
 R2   # Std. Errors have not been re-estimated!
 # Plot the result
 
 plot(R2, title="Changed R Model")

## 

[Package ChainLadder version 0.1.2-6 Index]