Learn R Programming

ChainLadder (version 0.1.4-2)

MultiChainLadder: Multivariate Chain Ladder Models

Description

The MultiChainLadder implements multivariate methods within the chain ladder framework to forecast reserves or IBNR (Incurred But Not Reported) claims based on several cumulative claims development triangles simultaneously. It fits development models that reflect both contemporaneous correlations and structural relationship, and estimates the conditional Mean Square Errors (MSE).

Usage

MultiChainLadder(Triangles, 
		fit.method = "SUR", 
		delta = 1, 
		int = NULL,
		restrict.regMat = NULL,
		extrap = TRUE, 
		mse.method = "Mack", 
		model = "MCL", ...)

Arguments

Triangles
a list of cumulative claims triangles.
fit.method
method to estimate the development parameters. Default: "SUR", i.e. seemingly unrelated regressions.
delta
parameter for weights. Used to determine the covariance structure $D(Y_{i,k}^{-\delta/2})\Sigma_k D(Y_{i,k}^{-\delta/2})$. It defaults to 1.
int
indicator of which periods have intercepts. This only works for GMCL. Default NULL means no intercept. Otherwise, specify a numeric vector.
restrict.regMat
a list of matrix specifying parameter restriction matrix for each period. This only works for GMCL. Default NULL means no restriction. See systemfit
extrap
logical. Whether to use Mack's extrapolation method for the last period to get the variance component estimation. It only works for model="MCL". If the data are trapezoids, it is set to be FALSE automatically and a warning messa
mse.method
method to estimate the mean square error. Could be either Mack or Independence, multivariate generalization of the Mack formulas and the conditional resampling approach, respectively.
model
structure of the model to be fitted. Either MCL or GMCL. See details.
...
arguments passed to systemfit.

Value

  • MultiChainLadder returns an object of class MultiChainLadder with the following slots:
  • modelmodel structure used, either MCL or GMCL
  • Trianglesinput triangles of cumulative claims, converted to class triangles
  • modelsfitted models for each development period, output from the call of systemfit
  • coefficientsestimated coefficients from systemfit. They are put into the matrix format for GMCL
  • coefCovestimated variance-covariance matrix returned by systemfit
  • residCovestimated residual covariance matrix returned by systemfit
  • fit.methodestimation method
  • deltavalue of delta
  • mse.aymean square error matrix for each accident year
  • mse.ay.estestimation error matrix for each accident year
  • mse.ay.procprocess error matrix for each accident year
  • mse.totalmean square error matrix for all accident years combined
  • mse.total.estestimation error matrix for all accident years combined
  • mse.total.procprocess error matrix for all accident years combined
  • FullTrianglesforecasted full triangles of class triangles
  • intintercept indicators

Details

This function fits the multivariate models within the chain ladder framework. Corresponding to the model argument, there are two major models that are incorporated into this function. One is the Multivariate Chain Ladder (MCL) model proposed by Prohl and Schmidt (2005), which is characterized by a diagonal development matrix, allowing multiple lines to be developed together while reflecting the correlations among lines. The other is a natural generalization of the MCL model, the General Multivariate Chain Ladder (GMCL) model proposed by Zhang (2010), which has a non-diagonal development matrix and intercepts, and can be used to develop structurally related triangles, such as paid and incurred or paid and case reserve, as well as contemporaneously related ones. The MCL model is a sub-model of GMCL, but it is programmed separately because: a) its stand-alone importance; b) different MSE methods are only available for the MCL model; c) extrapolation is not allowed for GMCL. Some technical details about the GMCL model. Assume N triangles are available. Denote $Y_{i,k}=(Y^{(1)}_{i,k}, \ldots ,Y^{(N)}_{i,k})$ as an $N \times 1$ vector of cumulative losses at accident year i and development year k where (n) refers to the n-th triangle. The GMCL model in development period k is: $$Y_{i,k+1}=A_k + B_k \cdot Y_{i,k}+\epsilon_{i,k},$$ where $A_k$ is a column of intercepts and $B_k$ is the usual development matrix. By default, MultiChainLadder sets $A_k$ to be zero, but one can specify a model with intercepts using the int argument. Assumptions for this model are: $$E(\epsilon_{i,k}|Y_{i,1},\ldots,Y_{i,I+1-k})=0.$$ $$cov(\epsilon_{i,k}|Y_{i,1},\ldots,Y_{i,I+1-k})=\Sigma_{\epsilon_{i,k}}=D(Y_{i,k}^{-\delta/2})\Sigma_k D(Y_{i,k}^{-\delta/2}).$$ $$\mbox{losses of different accident years are independent}.$$ $$\epsilon_{i,k} \, \mbox{are symmetrically distributed}.$$ The GMCL model is very flexible since different parameter restrictions can be specified. It will be equivalent to the MCL model if the model does not have intercepts and the development matrix is restricted to be diagonal. When applied to paid and incurred triangles, it can reflect the development relationship between the two triangles, as described by Quarg and Mack (2004). The full bivariate model is identical to the "double regression" model described by Mack (2003), which is argued by him to be equivalent to the Munich Chain Ladder (MuCL) model. GMCL with intercepts can also help improve model adequacy as described by Barnett and Zehnwirth (2000). Currently the model GMCL can only work for trapezoid data, and it only allows for estimation method mse.method="Mack", while the model MCL allows extrapolation and the mse method that assumes independence among estimated parameters. The model MCL under estimation method "OLS" will be equivalent to separate chain ladders (SCL). When one triangle is specified (as a list), MCL is equivalent to MackChainLadder. GMCL allows different model structures to be specified across the development periods. This is usually achieved through the combination of the int and restrict.regMat arguments. int indicates which periods will have intercepts, and restrict.regMat allows different parameter restrictions to be specified in a list. In using the multivariate method, one often specifies separate chain ladder for later periods to stabilize the estimation. In this case, one can use "[", defined for class triangles to split the input data, and use the MultiChainLadder to fit two models, either MCL or GMCL, and join them together using Join2Fits, which creates an object of class MCLFit or GMCLFit. Then methods of predict and Mse can be called to produce predictions and mean square errors. The function JoinFitMse is written to make it easy to construct an object of class MultiChainLadder, for which a couple of methods are defined to produce statistical results and diagonostic plots.

References

Buchwalder M, Buhlmann H, Merz M, Wuthrich M.V (2006). The mean square error of prediction in the chain ladder reserving method (Mack and Murphy revisited), ASTIN Bulletin, 36(2), 521-542. Prohl C, Schmidt K.D (2005). Multivariate chain-ladder, Dresdner Schriften zur Versicherungsmathematik. Mack T (1993). Distribution-free calculation of the standard error, ASTIN Bulletin, 23, No.2. Mack T (1999). The standard error of chain ladder reserve estimates: recursive calculation and inclusion of a tail factor, ASTIN Bulletin, 29, No.2, 361-366. Merz M, Wuthrich M (2008). Prediction error of the multivariate chain ladder reserving method, North American Actuarial Journal, 12, No.2, 175-197. Zhang Y (2010). A general multivariate chain ladder model.Insurance: Mathematics and Economics, 46, pp. 588-599. Zhang Y (2010). Prediction error of the general multivariate chain ladder model.

See Also

See also MackChainLadder, MunichChainLadder, triangles, MultiChainLadder, summary,MultiChainLadder-method and plot,MultiChainLadder,missing-method.

Examples

Run this code
# This shows that MCL under "OLS" applied to one triangle 
# is equivalent to MackChainLadder using the Mack extrapolation

data(GenIns)

uni1 <- MackChainLadder(GenIns,est.sigma="Mack")
uni2 <- MultiChainLadder(list(GenIns),
			fit.method="OLS")
summary(uni1)
summary(uni2)

# show plots 
par(mfrow=c(2,2))
plot(uni2,which.plot=1:4)
plot(uni2,which.plot=5)

# This illustrates the use of the "Independence" assumption in 
# calculating the Mse, which is equivalent to the result in Buchwalder et al. (2006)

fit.bbmw <- MultiChainLadder(list(GenIns),
				fit.method="OLS", 
				mse.method="Independence")
fit.bbmw


# The following shows the inclusion of intercepts for years 1:7
auto <- as(auto,"triangles")

da1 <- auto[,1:7]
da2 <- auto[,7:10]

coefr <- matrix(0,12,6)
pos=cbind(c(1,2,5,7,9,12),1:6)
coefr[pos] <- 1		#coefficient restriction matrix
int=1:6				# specify which periods need intercepts
restrict.regMat <- c(rep(list(coefr),6),rep(list(NULL),3))

fit1<-MultiChainLadder(da1,"SUR",
			int=int,
			restrict.regMat=restrict.regMat,
			model="GMCL")
fit2<-MultiChainLadder(da2,"OLS")
fit <- Join2Fits(fit1,fit2)
pred <- predict(fit)
mse <- Mse(fit,pred)
fit.int <- JoinFitMse(fit,mse)

## summary statistics
summary(fit.int,portfolio="1+3")@report.summary[[4]]

### residual plots
par(mfrow=c(2,3))
plot(fit.int,which.plot=3:4)

# To reproduce results in Zhang (2010) and see more examples, use:
demo(MultiChainLadder)

Run the code above in your browser using DataLab