CLFMdelta {ChainLadder}R Documentation

Find "selection consistent" values of delta


This function finds the values of delta, one for each development period, such that the model coefficients resulting from the 'chainladder' function with delta = solution are consistent with an input vector of 'selected' development age-to-age factors.


CLFMdelta(Triangle, selected, tolerance = .0005, ...)



cumulative claims triangle. A (mxn)-matrix C_{ik} which is filled for k \leq n+1-i; i=1,\ldots,m; m\geq 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).


a vector of selected age-to-age factors or "link ratios", one for each development period of 'Triangle'


a 'tolerance' parameters. Default: .0005; for each element of 'selected' a solution 'delta' will be found – if possible – so that the chainladder model indexed by 'delta' results in a multiplicative coefficient within 'tolerance' of the 'selected' factor.


not in use


For a given input Triangle and vector of selected factors, a search is conducted for chainladder models that are "consistent with" the selected factors. By "consistent with" is meant that the coefficients of the chainladder function are equivalent to the selected factors. Not all vectors of selected factors can be considered consistent with a given Triangle; feasibility is subject to restrictions on the 'selected' factors relative to the input 'Triangle'. See the References.

The default average produced by the chainladder function is the volume weighted average and corresponds to delta = 1 in the call to that function; delta = 2 produces the simple average; and delta = 0 produces the "regression average", i.e., the slope of a regression line fit to the data and running through the origin. By convention, if the selected value corresponds to the volume-weighted average, the simple average, or the regression average, then the value returned will be 1, 2, and 0, respectively.

Other real-number values for delta will produce a different average. The point of this function is to see if there exists a model as determined by delta whose average is consistent with the value in the selected vector. That is not always possible. See the References.

It can be the case that one or more of the above three "standard averages" will be quite close to each other (indistinguishable within tolerance). In that case, the value returned will be, in the following priority order by convention, 1 (volume weighted average), 2 (simple average), or 0 (regression average).


A vector of real numbers, say delta0, such that coef(chainladder(Triangle, delta = delta0)) = selected within tolerance. A logical attribute 'foundSolution' indicates if a solution was found for each element of selected.


Dan Murphy


Bardis, Majidi, Murphy. A Family of Chain-Ladder Factor Models for Selected Link Ratios. Variance. Pending. Variance 6:2, 2012, pp. 143-160.


x <- RAA[1:9,1]
y <- RAA[1:9,2]
F <- y/x
CLFMdelta(RAA[1:9, 1:2], selected = mean(F)) # value is 2, 'foundSolution' is TRUE
CLFMdelta(RAA[1:9, 1:2], selected = sum(y) / sum(x)) # value is 1, 'foundSolution' is TRUE

selected <- mean(c(mean(F), sum(y) / sum(x))) # an average of averages
CLFMdelta(RAA[1:9, 1:2], selected) # about 1.725
CLFMdelta(RAA[1:9, 1:2], selected = 2) # negative solutions are possible

# Demonstrating an "unreasonable" selected factor.
CLFMdelta(RAA[1:9, 1:2], selected = 1.9) # NA solution, with warning

[Package ChainLadder version 0.2.18 Index]