The Mackchainladder model forecasts future claims developments based on a historical cumulative claims development triangle and estimates the standard error around those.
1 2 
Triangle 
cumulative claims triangle. Assume columns are the development
period, use transpose otherwise.
A (mxn)matrix C_{ik}
which is filled for k ≤q n+1i; i=1,…,m; m≥q n , see

weights 
weights. Default: 1, which sets the weights for all
triangle entries to 1. Otherwise specify weights as a matrix of the same
dimension as 
alpha 
'weighting' parameter.
Default: 1 for all development periods; alpha=1 gives the historical chain
ladder agetoage factors, alpha=0 gives the straight average of the
observed individual development factors and alpha=2 is the result of
an ordinary regression of C_{i,k+1} against C_{i,k} with
intercept 0, see also Mack's 1999 paper and 
est.sigma 
defines how to estimate sigma_{n1}, the variability of the individual agetoage factors at development time n1. Default is "loglinear" for a loglinear regression, "Mack" for Mack's approximation from his 1999 paper. Alternatively the user can provide a numeric value. If the loglinear model appears to be inappropriate (pvalue > 0.05) the 'Mack' method will be used instead and a warning message printed. Similarly, if Triangle is so small that loglinear regression is being attempted on a vector of only one nonNA average link ratio, the 'Mack' method will be used instead and a warning message printed. 
tail 
can be logical or a numeric value.
If 
tail.se 
defines how the standard error of the tail factor is estimated. Only needed if
a tail factor > 1 is provided. Default is 
tail.sigma 
defines how to estimate individual tail variability. Only needed if
a tail factor > 1 is provided.
Default is 
mse.method 
method used for the recursive estimate of the parameter risk component of the mean square error. Value "Mack" (default) coincides with Mack's formula; "Independence" includes the additional crossproduct term as in Murphy and BBMW. Refer to References below. 
Following Mack's 1999 paper 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 ≤ n+1i. In order to forecast the amounts C_{ik} for k > n+1i the Mack chainladdermodel assumes:
CL1: E[ F_ik C_i1,C_i2,...,C_ik ] = f_k with F_ik=C_{i,k+1}/C_ik
CL2: Var( C_{i,k+1}/C_ik  C_i1, C_i2, ... ,C_ik ) = sigma_k^2/( w_ik C^alpha_ik)
CL3: { C_i1, ... ,C_in}, { C_j1, ... ,C_jn}, are independent for origin period i != j
with w_{ik} in [0;1], alpha in {0,1,2}. If these assumptions are hold, the Mackchainladdermodel gives an unbiased estimator for IBNR (Incurred But Not Reported) claims.
The Mackchainladder model can be regarded as a weighted linear regression
through the origin for each development period:
lm(y ~ x + 0, weights=w/x^(2alpha))
,
where y
is the vector of claims at development period
k+1 and x
is the vector of claims at development period
k.
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 
chainladder agetoage factors 
f.se 
standard errors of the chainladder agetoage factors f (assumption CL1) 
F.se 
standard errors of the true chainladder agetoage factors F_{ik} (square root of the variance in assumption CL2) 
sigma 
sigma parameter in CL2 
Mack.ProcessRisk 
variability in the projection of future losses not explained by the variability of the link ratio estimators (unexplained variation) 
Mack.ParameterRisk 
variability in the projection of future losses explained by the variability of the linkratio estimators alone (explained variation) 
Mack.S.E 
total variability in the projection of future losses by the chain ladder method; the square root of the mean square error of the chain ladder estimate: Mack.S.E.^2 = Mack.ProcessRisk^2 + Mack.ParameterRisk^2 
Total.Mack.S.E 
total variability of projected loss for all origin years combined 
Total.ProcessRisk 
vector of process risk estimate of the total of projected loss for all origin years combined by development period 
Total.ParameterRisk 
vector of parameter risk estimate of the total of projected loss for all origin years combined by development period 
weights 
weights used. 
alpha 
alphas used. 
tail 
tail factor used. If tail was set to TRUE the output will include the linear model used to estimate the tail factor 
Additional references for further reading:
England, PD and Verrall, RJ. Stochastic Claims Reserving in General Insurance (with discussion), British Actuarial Journal 8, III. 2002
Barnett and Zehnwirth. Best estimates for reserves. Proceedings of the CAS, LXXXVI I(167), November 2000.
Markus Gesmann markus.gesmann@gmail.com
Thomas Mack. Distributionfree 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
Murphy, Daniel M. Unbiased Loss Development Factors. Proceedings of the Casualty Actuarial Society Casualty Actuarial Society  Arlington, Virginia 1994: LXXXI 154222
Buchwalder, Bühlmann, Merz, and Wüthrich. The Mean Square Error of Prediction in the Chain Ladder Reserving Method (Mack and Murphy Revisited). Astin Bulletin Vol. 36. 2006. pp.521:542
See also qpaid
for dealing with nonsquare triangles,
chainladder
for the underlying chainladder method,
summary.MackChainLadder
,
plot.MackChainLadder
and
residuals.MackChainLadder
displaying results and finally
CDR.MackChainLadder
for the one year claims development result.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59  ## See the Taylor/Ashe example in Mack's 1993 paper
GenIns
plot(GenIns)
plot(GenIns, lattice=TRUE)
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)
plot(GNI, lattice=TRUE)
## Different weights
## Using alpha=0 will use straight average agetoage factors
MackChainLadder(GenIns, alpha=0)$f
# You get the same result via:
apply(GenIns[,1]/GenIns[,10],2, mean, na.rm=TRUE)
## Tail
## See the example in Mack's 1999 paper
Mortgage
m < MackChainLadder(Mortgage)
round(summary(m)$Totals["CV(IBNR)",], 2) ## 26% in Table 6 of paper
plot(Mortgage)
# Specifying the tail and its associated uncertainty parameters
MRT < MackChainLadder(Mortgage, tail=1.05, tail.sigma=71, tail.se=0.02, est.sigma="Mack")
MRT
plot(MRT, lattice=TRUE)
# Specify just the tail and the uncertainty parameters will be estimated
MRT < MackChainLadder(Mortgage, tail=1.05)
MRT$f.se[9] # close to the 0.02 specified above
MRT$sigma[9] # less than the 71 specified above
# Note that the overall CV dropped slightly
round(summary(MRT)$Totals["CV(IBNR)",], 2) ## 24%
# tail parameter uncertainty equal to expected value
MRT < MackChainLadder(Mortgage, tail=1.05, tail.se = .05)
round(summary(MRT)$Totals["CV(IBNR)",], 2) ## 27%
## Parameterrisk (only) estimate of the total reserve = 3142387
tail(MRT$Total.ParameterRisk, 1) # located in last (ultimate) element
# Parameterrisk (only) CV is about 19%
tail(MRT$Total.ParameterRisk, 1) / summary(MRT)$Totals["IBNR", ]
## Three terms in the parameter risk estimate
## First, the default (Mack) without the tail
m < MackChainLadder(RAA, mse.method = "Mack")
summary(m)$Totals["Mack S.E.",]
## Then, with the third term
m < MackChainLadder(RAA, mse.method = "Independence")
summary(m)$Totals["Mack S.E.",] ## Not significantly greater
## One year claims development results
M < MackChainLadder(MW2014, est.sigma="Mack")
CDR(M)
## For more examples see:
## Not run:
demo(MackChainLadder)
## End(Not run)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.