Learn R Programming

ChainLadder (version 0.1.7)

MackChainLadder: Mack-Chain-Ladder Model

Description

The Mack-chain-ladder model forecasts future claims developments based on a historical cumulative claims development triangle and estimates the standard error around those.

Usage

MackChainLadder(Triangle, weights = 1, alpha=1, est.sigma="log-linear",
tail=FALSE, tail.se=NULL, tail.sigma=NULL, mse.method="Mack")

Arguments

Triangle
cumulative claims triangle. Assume columns are the development period, use transpose otherwise. A (mxn)-matrix $C_{ik}$ which is filled for $k \leq n+1-i; i=1,\ldots,m; m\geq n$, see qpaid f
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 Triangle with all weight entries in [0; 1]
alpha
'weighting' parameter. Default: 1 for all development periods; alpha=1 gives the historical chain ladder age-to-age factors, alpha=0 gives the straight average of the observed individual development factors and alpha=2 is the result of an
est.sigma
defines how to estimate $sigma_{n-1}$, the variability of the individual age-to-age factors at development time $n-1$. Default is "log-linear" for a log-linear regression, "Mack" for Mack's approximation from his 1999 paper. Alternatively
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 estimated via a linear extrapolation of $log(chain ladder factors - 1)$, if tail is a n
tail.se
defines how the standard error of the tail factor is estimated. Only needed if a tail factor > 1 is provided. Default is NULL. If tail.se is NULL, tail.se is estimated via "log-linear" regres
tail.sigma
defines how to estimate individual tail variability. Only needed if a tail factor > 1 is provided. Default is NULL. If tail.sigma is NULL, tail.sigma is estimated via "log-linear" regr
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 cross-product term as in Murphy and BBMW. R

Value

  • MackChainLadder returns a list with the following elements
  • callmatched call
  • Triangleinput triangle of cumulative claims
  • FullTriangleforecasted full triangle
  • Modelslinear regression models for each development period
  • fchain-ladder age-to-age factors
  • f.sestandard errors of the chain-ladder age-to-age factors f (assumption CL1)
  • F.sestandard errors of the true chain-ladder age-to-age factors $F_{ik}$ (square root of the variance in assumption CL2)
  • sigmasigma parameter in CL2
  • Mack.ProcessRiskvariability in the projection of future losses not explained by the variability of the link ratio estimators (unexplained variation)
  • Mack.ParameterRiskvariability in the projection of future losses explained by the variability of the link-ratio estimators alone (explained variation)
  • Mack.S.Etotal 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: $\mbox{Mack.S.E.}^2 = \mbox{Mack.ProcessRisk}^2 + \mbox{Mack.ParameterRisk}^2$
  • Total.Mack.S.Etotal variability of projected loss for all origin years combined
  • Total.ProcessRiskvector of process risk estimate of the total of projected loss for all origin years combined by development period
  • Total.ParameterRiskvector of parameter risk estimate of the total of projected loss for all origin years combined by development period
  • weightsweights used.
  • alphaalphas used.
  • tailtail factor used. If tail was set to TRUE the output will include the linear model used to estimate the tail factor

Details

Following Mack's 1999 paper let $C_{ik}$ denote the cumulative loss amounts of origin period (e.g. accident year) $i=1,\ldots,m$, with losses known for development period (e.g. development year) $k \le n+1-i$. In order to forecast the amounts $C_{ik}$ for $k > n+1-i$ the Mack chain-ladder-model assumes: $$\mbox{CL1: } E[ F_{ik}| C_{i1},C_{i2},\ldots,C_{ik} ] = f_k \mbox{ with } F_{ik}=\frac{C_{i,k+1}}{C_{ik}}$$ $$\mbox{CL2: } Var( \frac{C_{i,k+1}}{C_{ik}} | C_{i1},C_{i2}, \ldots,C_{ik} ) = \frac{\sigma_k^2}{w_{ik} C^\alpha_{ik}}$$ $$\mbox{CL3: } { C_{i1},\ldots,C_{in}}, { C_{j1},\ldots,C_{jn}},\mbox{ are independent for origin period } i \neq j$$ with $w_{ik} \in [0;1]$, $\alpha \in {0,1,2}$. 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=w/x^(2-alpha)), where y is the vector of claims at development period $k+1$ and x is the vector of claims at development period $k$.

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

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

Buchwalder, Buhlmann, Merz, and Wuthrich. 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

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

Examples

Run this code
## 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 age-to-age 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%

## Parameter-risk (only) estimate of the total reserve = 3142387
tail(MRT$Total.ParameterRisk, 1) # located in last (ultimate) element
#  Parameter-risk (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

## For more examples see:
demo(MackChainLadder)

Run the code above in your browser using DataLab