示例#1
0
def mack_p(data, average, est_sigma, tail):
    if tail:
        return cl.MackChainladder().fit(
            cl.TailCurve(curve='exponential').fit_transform(
                cl.Development(average=average,
                               sigma_interpolation=est_sigma).fit_transform(
                                   cl.load_sample(data))))
    else:
        return cl.MackChainladder().fit(
            cl.Development(average=average,
                           sigma_interpolation=est_sigma).fit_transform(
                               cl.load_sample(data)))
示例#2
0
def test_mack_to_triangle():
    assert (
        cl.MackChainladder()
        .fit(
            cl.TailConstant().fit_transform(
                cl.Development().fit_transform(cl.load_sample("ABC"))
            )
        )
        .summary_
        == cl.MackChainladder()
        .fit(cl.Development().fit_transform(cl.load_sample("ABC")))
        .summary_
    )
示例#3
0
def test_mack_asymmetric():
    r("Paid <- matrix(NA, 45, 45)")
    r("Paid[seq(1,45,4),] <- qpaid")
    out = r("M <- MackChainLadder(Paid)")
    tri = cl.load_sample("quarterly")["paid"]
    xp = tri.get_array_module()
    assert round(float(xp.array(out.rx("Mack.S.E")[0])[-1, -1]), 2) == round(
        float(cl.MackChainladder().fit(tri).summary_.to_frame().iloc[-1, -1]), 2
    )
def test_mack_predict():
    mack = cl.MackChainladder().fit(raa_1989)
    mack.predict(raa_1989)
示例#5
0
def test_mack_malformed():
    a = cl.load_sample('raa')
    b = a.iloc[:, :, :-1]
    x = cl.MackChainladder().fit(a)
    y = cl.MackChainladder().fit(b)
    assert x.process_risk_.iloc[:, :, :-1] == y.process_risk_
示例#6
0
def test_mack_to_triangle():
    assert cl.MackChainladder().fit(cl.TailConstant().fit_transform(cl.Development().fit_transform(cl.load_dataset('ABC')))).summary_ == \
        cl.MackChainladder().fit(cl.Development().fit_transform(cl.load_dataset('ABC'))).summary_
示例#7
0
"""
========================
Mack Chainladder Example
========================

This example demonstrates how you can can use the Mack Chainladder method.
"""
import pandas as pd
import chainladder as cl
import seaborn as sns
sns.set_style('whitegrid')

# Load the data
data = cl.load_dataset('raa')

# Compute Mack Chainladder ultimates and Std Err using 'simple' average
mack = cl.MackChainladder()
dev = cl.Development(average='volume')
mack.fit(dev.fit_transform(data))

# Plotting
plot_data = mack.summary_.to_frame()
g = plot_data[['Latest', 'IBNR']] \
    .plot(kind='bar', stacked=True,
          yerr=pd.DataFrame({'latest': plot_data['Mack Std Err']*0,
                             'IBNR': plot_data['Mack Std Err']}),
          ylim=(0, None), title='Mack Chainladder Ultimate')
g.set_xlabel('Accident Year')
g.set_ylabel('Loss')