reserving.ChainLadder

The chain-ladder method: each origin’s latest value projected to

Usage

reserving.ChainLadder()

ultimate with age-to-age factors estimated from the triangle and a tail.

Parameters

average: (volume, simple, regression) = "volume"

How link ratios are averaged into one factor per age: volume weighted, their mean, or least squares through the origin (Mack’s alpha of 1, 0 and 2).

sigma_interpolation: (log - linear, mack) = "log-linear"

How a variance parameter with a single link ratio is filled in.

tail: (float, TailConstant, TailCurve, TailBondy or TailLogLinear)
Development past the oldest age: a number is a constant factor from the oldest age to ultimate. No tail (a factor of 1) by default.

Examples

>>> from prospicio.reserving import ChainLadder, Triangle
>>> tri = Triangle.from_long([2020, 2020, 2021], [12, 24, 12], {"paid": [100.0, 150.0, 200.0]})
>>> fit = ChainLadder().fit(tri, "paid")
>>> fit.ldf, fit.ultimate, fit.total_reserve

([1.5], [150.0, 300.0], 100.0)

Attributes

Name Description
average How link ratios are averaged.
sigma_interpolation How unestimable variance parameters are filled in.
tail The tail: a constant factor as a number, otherwise its estimator.

average

How link ratios are averaged.

average: str


sigma_interpolation

How unestimable variance parameters are filled in.

sigma_interpolation: str


tail

The tail: a constant factor as a number, otherwise its estimator.

tail: Any

Methods

Name Description
fit() Fits one measure column in every segment of a triangle, each on its

fit()

Fits one measure column in every segment of a triangle, each on its

Usage

fit(triangle, column)

own.

Parameters
triangle: Triangle

Cumulative or incremental, with any number of segments.

column: str
Returns
ChainLadderFit
Raises
ValueError
If the column is unknown, a factor cannot be estimated or the tail cannot be fitted (a constant that is not positive, a curve with fewer than two factors above 1 to fit); with keys, the message names the segment.