MackChainladder Example

MackChainladder Example#

import pandas as pd
import chainladder as cl

This example demonstrates how you can use the Mack Chainladder method.

# Load the data
data = cl.load_sample("raa")

# Compute Mack Chainladder ultimates and Std Err using 'mack' interpolation
# This recreates the figures from page 130 of Mack (1994)
mack = cl.MackChainladder()
dev = cl.Development(sigma_interpolation="mack")
mack.fit(dev.fit_transform(data))

plot_data = mack.summary_.to_frame(origin_as_datetime=False)
plot_data
Latest IBNR Ultimate Mack Std Err
1981 18834.0 NaN 18834.000000 NaN
1982 16704.0 153.953917 16857.953917 206.220059
1983 23466.0 617.370924 24083.370924 623.376673
1984 27067.0 1636.142163 28703.142163 747.175225
1985 26180.0 2746.736343 28926.736343 1469.457150
1986 15852.0 3649.103184 19501.103184 2001.856931
1987 12314.0 5435.302590 17749.302590 2209.242094
1988 13112.0 10907.192510 24019.192510 5357.869298
1989 5395.0 10649.984101 16044.984101 6333.165866
1990 2063.0 16339.442529 18402.442529 24566.287911

Hide code cell source

import matplotlib.pyplot as plt

plt.style.use("ggplot")
%config InlineBackend.figure_format = 'retina'

ax = plot_data[["Latest", "IBNR"]].plot(
    kind="bar",
    stacked=True,
    ylim=(0, None),
    grid=True,
    yerr=pd.DataFrame({
        "latest": plot_data["Mack Std Err"] * 0,
        "IBNR": plot_data["Mack Std Err"],
    }),
    title="Mack Chainladder Ultimate",
    xlabel="Accident Year",
    ylabel="Loss",
);