chainladder: Estimate age-to-age factors

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/ChainLadder.R

Description

Basic chain ladder function to estimate age-to-age factors for a given cumulative run-off triangle. This function is used by Mack- and MunichChainLadder.

Usage

1
chainladder(Triangle, weights = 1, delta = 1)

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, 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], where entry W_{i,k} corresponds to the point C_{i,k+1}/C_{i,k}.

delta

'weighting' parameters, either 0,1 or 2. Default: 1; delta=1 gives the historical chain ladder age-to-age factors, delta=2 gives the straight average of the observed individual development factors and delta=0 is the result of an ordinary regression of C_{i,k+1} against C_{i,k} with intercept 0, see Barnett & Zehnwirth (2000);. Please note that Mack (1999) used the notation of alphas, with alpha=2-delta.

Details

The key idea is to see the chain ladder algorithm as a weighted linear regression through the origin applied to each development period.

Suppose y is the vector of cumulative claims at development period i+1, and x at development period i, w are weighting factors and F the individual age-to-age factors F=y/x, than we get the various age-to-age factors for different deltas (alphas) as:

sum(w*x^alpha*F)/sum(w*x^alpha) # Mack (1999) notation

delta <- 2-alpha

lm(y~x + 0 ,weights=w/x^delta) # Barnett & Zehnwirth (2000) notation

Value

chainladder returns a list with the following elements:

Models

linear regression models for each development period

Triangle

input triangle of cumulative claims

weights

weights used

delta

deltas used

Author(s)

Markus Gesmann <markus.gesmann@gmail.com>

References

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

G. Barnett and B. Zehnwirth. Best Estimates for Reserves. Proceedings of the CAS. Volume LXXXVII. Number 167. November 2000.

See Also

See also ata, predict.ChainLadder MackChainLadder,

Examples

 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
## Concept of different chain ladder age-to-age factors.
## Compare Mack's and Barnett & Zehnwirth's papers.
x <- RAA[1:9,1]
y <- RAA[1:9,2]

weights <- RAA
weights[!is.na(weights)] <- 1
w <- weights[1:9,1]

F <- y/x
## wtd. average chain ladder age-to-age factors
alpha <- 1
delta <- 2-alpha

sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^delta)
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## straight average age-to-age factors
alpha <- 0
delta <- 2 - alpha 
sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^(2-alpha))
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## ordinary regression age-to-age factors
alpha=2
delta <- 2-alpha
sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^delta)
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## Change weights

weights[2,1] <- 0.5
w <- weights[1:9,1] 

## wtd. average chain ladder age-to-age factors
alpha <- 1
delta <- 2-alpha
sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^delta)
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## straight average age-to-age factors
alpha <- 0
delta <- 2 - alpha 
sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^(2-alpha))
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## ordinary regression age-to-age factors
alpha=2
delta <- 2-alpha
sum(w*x^alpha*F)/sum(w*x^alpha)
lm(y~x + 0 ,weights=w/x^delta)
summary(chainladder(RAA, weights=weights, delta=delta)$Models[[1]])$coef

## Model review
CL0 <- chainladder(RAA, weights=weights, delta=0)
## age-to-age factors
sapply(CL0$Models, function(x) summary(x)$coef["x","Estimate"])
## f.se
sapply(CL0$Models, function(x) summary(x)$coef["x","Std. Error"])
## sigma
sapply(CL0$Models, function(x) summary(x)$sigma)

CL1 <- chainladder(RAA, weights=weights, delta=1)
## age-to-age factors
sapply(CL1$Models, function(x) summary(x)$coef["x","Estimate"])
## f.se
sapply(CL1$Models, function(x) summary(x)$coef["x","Std. Error"])
## sigma
sapply(CL1$Models, function(x) summary(x)$sigma)

CL2 <- chainladder(RAA, weights=weights, delta=2)
## age-to-age factors
sapply(CL2$Models, function(x) summary(x)$coef["x","Estimate"])
## f.se
sapply(CL2$Models, function(x) summary(x)$coef["x","Std. Error"])
## sigma
sapply(CL2$Models, function(x) summary(x)$sigma)


## Forecasting

predict(CL0)
predict(CL1)
predict(CL2)

edalmoro/ChainLadderQuantileV1 documentation built on May 29, 2019, 3:05 a.m.