chainladder.minimum

Contents

chainladder.minimum#

chainladder.minimum(x1, x2)[source]#

Element-wise minimum of two triangles or a triangle and a scalar (delegates to Triangle.minimum).

Parameters:
x1Triangle

The first triangle operand.

x2Triangle or scalar

The second operand. If a scalar, each element of x1 is compared against that constant value.

Examples

When two chainladder runs use different development factor selections, the ultimates may disagree at each origin. minimum picks the lower ultimate at each origin, producing the low-side scenario.

tri = cl.load_sample("raa")
ult_vol = cl.Chainladder().fit(
    cl.Development(average="volume").fit_transform(tri)
).ultimate_
ult_sim = cl.Chainladder().fit(
    cl.Development(average="simple").fit_transform(tri)
).ultimate_
print(ult_vol.values[0, 0, -5:, 0].round(0))
print(ult_sim.values[0, 0, -5:, 0].round(0))
low_side = cl.minimum(ult_vol, ult_sim)
print(low_side.values[0, 0, -5:, 0].round(0))
[19501. 17749. 24019. 16045. 18402.]
[19807. 18201. 25475. 17776. 55781.]
[19501. 17749. 24019. 16045. 18402.]