From aae456282f3c44e7261a5f9d4245ad4ff7d95df3 Mon Sep 17 00:00:00 2001 From: John S Bogaardt Date: Mon, 1 Jun 2020 06:59:20 -0600 Subject: [PATCH] substantial tail estimator upgrades --- chainladder/__init__.py | 2 +- chainladder/tails/base.py | 17 +- chainladder/tails/bondy.py | 78 ++++--- chainladder/tails/clark.py | 67 ++++-- chainladder/tails/constant.py | 41 ++-- chainladder/tails/curve.py | 69 ++++-- docs/auto_examples/auto_examples_jupyter.zip | Bin 52630 -> 52721 bytes docs/auto_examples/auto_examples_python.zip | Bin 30090 -> 30181 bytes .../sphx_glr_plot_bondy_sensitivity_001.png | Bin 42267 -> 41487 bytes .../sphx_glr_plot_bondy_sensitivity_thumb.png | Bin 29294 -> 28778 bytes .../plot_bondy_sensitivity.ipynb | 4 +- docs/auto_examples/plot_bondy_sensitivity.py | 9 +- .../plot_bondy_sensitivity.py.md5 | 2 +- docs/auto_examples/plot_bondy_sensitivity.rst | 13 +- .../plot_bondy_sensitivity_codeobj.pickle | Bin 3528 -> 3528 bytes docs/auto_examples/sg_execution_times.rst | 8 +- docs/modules/development.rst | 6 +- .../chainladder.Development.examples | 114 ---------- .../chainladder.DevelopmentBase.examples | 209 ------------------ .../chainladder.EstimatorIO.examples | 10 +- .../generated/chainladder.GridSearch.examples | 10 +- .../chainladder.GridSearch.fit.examples | 19 -- .../generated/chainladder.TailBase.examples | 10 +- .../chainladder.TailCurve.intercept_.examples | 0 .../chainladder.TailCurve.slope_.examples | 0 .../generated/chainladder.Triangle.examples | 10 +- .../chainladder.load_sample.examples | 10 +- docs/modules/tails.rst | 96 ++++++-- docs/modules/triangle.rst | 1 + docs/tutorials/template-tutorial.ipynb | 2 +- examples/plot_bondy_sensitivity.py | 9 +- setup.py | 2 +- 32 files changed, 312 insertions(+), 506 deletions(-) create mode 100644 docs/modules/generated/chainladder.TailCurve.intercept_.examples create mode 100644 docs/modules/generated/chainladder.TailCurve.slope_.examples diff --git a/chainladder/__init__.py b/chainladder/__init__.py index 960e26c2..c14cb3aa 100644 --- a/chainladder/__init__.py +++ b/chainladder/__init__.py @@ -11,4 +11,4 @@ def array_backend(array_backend='numpy'): from chainladder.methods import * # noqa (API Import) from chainladder.workflow import * # noqa (API Import) -__version__ = '0.6.3' +__version__ = '0.7.0' diff --git a/chainladder/tails/base.py b/chainladder/tails/base.py index 40d964cd..c44f86b4 100644 --- a/chainladder/tails/base.py +++ b/chainladder/tails/base.py @@ -116,10 +116,13 @@ def _get_initial_ldf(self, xp, tail): c = -xp.log(tail) return (-b+xp.sqrt(b**2-4*a*c))/(2*a) - def _apply_decay(self, X, tail): - ''' Created Tail vector with decay over time ''' + def _apply_decay(self, X, tail, attach_idx=None): + ''' Created Tail vector with decay over time. ''' xp = cp.get_array_module(X.values) - decay_range = self.ldf_.shape[-1]-X.shape[-1]+1 + if attach_idx: + decay_range = self.ldf_.shape[-1] - attach_idx + else: + decay_range = self.ldf_.shape[-1]-X.shape[-1]+1 if xp.max(tail) == 1.0: ldfs = 1 + 0*(self.decay**xp.arange(1000)) else: @@ -127,7 +130,7 @@ def _apply_decay(self, X, tail): ldfs = ldfs[..., :decay_range] ldfs[..., -1:] = tail/xp.prod(ldfs[..., :-1], axis=-1, keepdims=True) self.ldf_.values[..., -decay_range:] = \ - self.ldf_.values[..., -decay_range:]*ldfs + (self.ldf_.values[..., -decay_range:]*0+1)*ldfs self.cdf_ = DevelopmentBase._get_cdf(self) return self @@ -165,11 +168,9 @@ def _get_tail_weighted_time_period(self, X): def _tail_(self): df = self.cdf_[self.cdf_.development== self.cdf_.development.iloc[-1-self._ave_period[0]]] - if np.all(df.values.min(axis=-1) == df.values.max(axis=-1)): + if np.all(df.values.min(axis=2) == df.values.max(axis=2)): idx = self.cdf_._idx_table() - df = df.T.drop_duplicates().T - df.index = idx.index - df.columns = idx.columns + df = df[df.origin==df.origin.min()].to_frame() return df @property diff --git a/chainladder/tails/bondy.py b/chainladder/tails/bondy.py index fedc6c97..65156d42 100644 --- a/chainladder/tails/bondy.py +++ b/chainladder/tails/bondy.py @@ -3,6 +3,7 @@ # file, You can obtain one at https://mozilla.org/MPL/2.0/. import numpy as np import pandas as pd +import copy from scipy.optimize import least_squares from chainladder.utils.cupy import cp from chainladder.tails import TailBase @@ -19,15 +20,23 @@ class TailBondy(TailBase): The earliest age from which the Bondy exponent is to be calculated. Defaults to earliest available in the Triangle. Any available development age can be used. + attachment_age: int (default=None) + The age at which to attach the fitted curve. If None, then the latest + age is used. Measures of variability from original `ldf_` are retained + when being used in conjunction with the MackChainladder method. Attributes ---------- - b_ : DataFrame - The Bondy exponent ldf_ : Triangle ldf with tail applied. cdf_ : Triangle cdf with tail applied. + tail_ : DataFrame + Point estimate of tail at latest maturity available in the Triangle. + b_ : DataFrame + The Bondy exponent + earliest_ldf_ : DataFrame + The LDF associated with the ``earliest_age`` pick. sigma_ : Triangle sigma with tail factor applied. std_err_ : Triangle @@ -41,8 +50,9 @@ class TailBondy(TailBase): TailCurve """ - def __init__(self, earliest_age=None): + def __init__(self, earliest_age=None, attachment_age=None): self.earliest_age = earliest_age + self.attachment_age = attachment_age def fit(self, X, y=None, sample_weight=None): """Fit the model with X. @@ -59,44 +69,57 @@ def fit(self, X, y=None, sample_weight=None): self : object Returns the instance itself. """ + if self.attachment_age and self.attachment_age < self.earliest_age: + raise ValueError('attachment_age must not be before earliest_age.') super().fit(X, y, sample_weight) xp = cp.get_array_module(X.values) - if self.earliest_age is None: earliest_age = X.ddims[0] else: earliest_age = X.ddims[int( self.earliest_age / ({'Y': 12,'Q': 3,'M': 1}[X.development_grain])) - 1] + attachment_age = self.attachment_age if self.attachment_age else X.ddims[-2] obj = Development().fit_transform(X) if 'ldf_' not in X else X b_optimized = [] initial = xp.where(obj.ddims==earliest_age)[0][0] if earliest_age else 0 for num in range(len(obj.vdims)): - b0 = xp.ones(obj.shape[0])*.5 - data = xp.log(obj.ldf_.values[:, num, 0,initial:]) + b0 = (xp.ones(obj.shape[0])*.5)[:, None] + data = xp.log(obj.ldf_.values[:, num, 0, initial:]) + b0 = xp.concatenate((b0, data[..., 0:1]), axis=1) b_optimized.append(least_squares( - TailBondy.solver, x0=b0, kwargs={'data': data}).x[:, None]) - self.b_ = xp.concatenate(b_optimized, axis=1)[..., None, None] - tail = xp.exp(xp.log(obj.ldf_.values[..., 0:1, initial:initial+1]) * \ - self.b_**(len(obj.ldf_.ddims)-1)) + TailBondy._solver, x0=b0.flatten(), kwargs={'data': data}).x) + self.b_ = xp.concatenate( + [item.reshape(-1,2)[:, 0:1] + for item in b_optimized], axis=1)[..., None, None] + self.earliest_ldf_ = xp.exp(xp.concatenate( + [item.reshape(-1,2)[:, 1:2] + for item in b_optimized], axis=1)[..., None, None]) + if sum(X.ddims>earliest_age) > 1: + tail = xp.exp(self.earliest_ldf_ * self.b_**(len(obj.ldf_.ddims)-1)) + else: + tail = self.ldf_.values[..., 0, initial] tail = (tail**(self.b_/(1-self.b_))) - self.decay = self.b_ - self = self._apply_decay(obj, tail) - sigma, std_err = self._get_tail_stats(obj) - self.sigma_.values[..., -1] = sigma[..., -1] - self.std_err_.values[..., -1] = std_err[..., -1] + f0 = self.ldf_.values[..., 0:1, initial:initial+1] + fitted = (f0**(self.b_**(np.arange(sum(X.ddims>=earliest_age))[None, None, None, :]))) + fitted = xp.concatenate((fitted, fitted[..., -1:]**(self.b_/(1-self.b_))), axis=-1) + fitted = xp.repeat(fitted, self.ldf_.shape[2], axis=2) idx = X._idx_table() self.b_ = pd.DataFrame( self.b_[..., 0, 0], index=idx.index, columns=idx.columns) self.earliest_ldf_ = pd.DataFrame( - self.ldf_.values[..., 0, initial], index=idx.index, columns=idx.columns) + self.earliest_ldf_[..., 0, 0], index=idx.index, columns=idx.columns) + self.ldf_.values = xp.concatenate( + (self.ldf_.values[..., :sum(X.ddims<=attachment_age)], + fitted[..., -sum(X.ddims>=attachment_age):]), + axis=-1) + self.cdf_ = DevelopmentBase._get_cdf(self) + sigma, std_err = self._get_tail_stats(obj) + self.sigma_.values[..., -1] = sigma[..., -1] + self.std_err_.values[..., -1] = std_err[..., -1] return self def transform(self, X): """Transform X. - The predicted class of an input sample is a vote by the trees in - the forest, weighted by their probability estimates. That is, - the predicted class is the one with highest mean probability - estimate across the trees. Parameters ---------- @@ -109,16 +132,15 @@ def transform(self, X): New Triangle with tail factor applied to its development attributes. """ - X.std_err_ = self.std_err_ - X.cdf_ = self.cdf_ - X.ldf_ = self.ldf_ - X.sigma_ = self.sigma_ - X.b_ = self.b_ - return X + X_new = super().transform(X) + X_new.b_ = self.b_ + X_new.earliest_ldf_ = self.earliest_ldf_ + return X_new @staticmethod - def solver(b, data): + def _solver(b, data): + b = b.reshape(-1, 2) xp = cp.get_array_module(data) arange = xp.repeat(xp.arange(data.shape[-1])[None, :], data.shape[0], 0) - out = data - (data[:, 0])[:, None]*b**(arange) + out = data - (b[:, 1:2])*b[:, 0:1]**(arange) return out.flatten() diff --git a/chainladder/tails/clark.py b/chainladder/tails/clark.py index 64d089ef..72be118c 100644 --- a/chainladder/tails/clark.py +++ b/chainladder/tails/clark.py @@ -18,6 +18,10 @@ class TailClark(TailBase): growth : {'loglogistic', 'weibull'} The growth function to be used in curve fitting development patterns. Options are 'loglogistic' and 'weibull' + attachment_age: int (default=None) + The age at which to attach the fitted curve. If None, then the latest + age is used. Measures of variability from original `ldf_` are retained + when being used in conjunction with the MackChainladder method. Attributes ---------- @@ -25,10 +29,23 @@ class TailClark(TailBase): ldf with tail applied. cdf_ : cdf with tail applied. - + tail_ : DataFrame + Point estimate of tail at latest maturity available in the Triangle. + theta_ : DataFrame + Estimates of the theta parameter of the growth curve. + omega_ : DataFrame + Estimates of the omega parameter of the growth curve. + elr_ : DataFrame + The Expected Loss Ratio parameter. This only exists when a `sample_weight` + is provided to the Estimator. + scale_ : DataFrame + The scale parameter of the model. + norm_resid_ : Triangle + The "Normalized" Residuals of the model according to Clark. """ - def __init__(self, growth='loglogistic'): + def __init__(self, growth='loglogistic', attachment_age=None): self.growth = growth + self.attachment_age = attachment_age def fit(self, X, y=None, sample_weight=None): """Fit the model with X. @@ -50,22 +67,35 @@ def fit(self, X, y=None, sample_weight=None): model = ClarkLDF(growth=self.growth).fit(X, sample_weight=sample_weight) xp = cp.get_array_module(X.values) age_offset = {'Y':6., 'Q':1.5, 'M':0.5}[X.development_grain] - tail = 1/model.G_(xp.array( - [item*self._ave_period[1]+X.ddims[-1]-age_offset - for item in range(self._ave_period[0]+1)])) - tail = xp.concatenate((tail.values[..., :-1]/tail.values[..., -1], - tail.values[..., -1:]), -1) + fitted = 1/model.G_(xp.array( + [self._ave_period[1]+X.ddims-age_offset + for item in range(self._ave_period[0]+2)])[0]) + fitted = xp.concatenate( + (fitted.values[..., :-1]/fitted.values[..., -1:], + fitted.values[..., -1:]), -1) + fitted = xp.repeat(fitted, self.ldf_.values.shape[2], 2) + attachment_age = self.attachment_age if self.attachment_age else X.ddims[-2] + print(self.ldf_.values[..., :sum(X.ddims<=attachment_age)].shape, fitted[..., -sum(X.ddims>=attachment_age):].shape) self.ldf_.values = xp.concatenate( - (X.ldf_.values, xp.repeat(tail, X.shape[2], 2)), -1) + (self.ldf_.values[..., :sum(X.ddims<=attachment_age)], + fitted[..., -sum(X.ddims>=attachment_age):]), + axis=-1) + + self.cdf_ = DevelopmentBase._get_cdf(self) + self.omega_ = model.omega_ + self.theta_ = model.theta_ + self.G_ = model.G_ + self.scale_ = model.scale_ + self._G = model._G + self.incremental_fits_ = model.incremental_fits_ + if hasattr(model, 'elr_'): + self.elr_ = model.elr_ + self.norm_resid_ = model.norm_resid_ return self def transform(self, X): """Transform X. - The predicted class of an input sample is a vote by the trees in - the forest, weighted by their probability estimates. That is, - the predicted class is the one with highest mean probability - estimate across the trees. Parameters ---------- @@ -78,7 +108,12 @@ def transform(self, X): New Triangle with tail factor applied to its development attributes. """ - - X.cdf_ = self.cdf_ - X.ldf_ = self.ldf_ - return X + X_new = super().transform(X) + triangles = ['omega_', 'theta_', 'incremental_fits_', 'G_', '_G', + 'growth', 'scale_'] + for item in triangles: + setattr(X_new, item, getattr(self, item)) + X_new._set_slicers() + if hasattr(self, 'elr_'): + X_new.elr_ = self.elr_ + return X_new diff --git a/chainladder/tails/constant.py b/chainladder/tails/constant.py index a5f5652d..2919d2b3 100644 --- a/chainladder/tails/constant.py +++ b/chainladder/tails/constant.py @@ -5,6 +5,7 @@ from chainladder.utils.cupy import cp from chainladder.tails import TailBase from chainladder.development import DevelopmentBase, Development +import copy class TailConstant(TailBase): """Allows for the entry of a constant tail factor to LDFs. @@ -17,6 +18,10 @@ class TailConstant(TailBase): An exponential decay constant that allows for decay over future development periods. A decay rate of 0.5 sets the development portion of each successive LDF to 50% of the previous LDF. + attachment_age: int (default=None) + The age at which to attach the fitted curve. If None, then the latest + age is used. Measures of variability from original `ldf_` are retained + when being used in conjunction with the MackChainladder method. Attributes ---------- @@ -24,6 +29,8 @@ class TailConstant(TailBase): ldf with tail applied. cdf_ : cdf with tail applied. + tail_ : DataFrame + Point estimate of tail at latest maturity available in the Triangle. sigma_ : sigma with tail factor applied. std_err_ : @@ -40,9 +47,10 @@ class TailConstant(TailBase): TailCurve """ - def __init__(self, tail=1.0, decay=0.5): + def __init__(self, tail=1.0, decay=0.5, attachment_age=None): self.tail = tail self.decay = decay + self.attachment_age = attachment_age def fit(self, X, y=None, sample_weight=None): """Fit the model with X. @@ -60,8 +68,13 @@ def fit(self, X, y=None, sample_weight=None): Returns the instance itself. """ super().fit(X, y, sample_weight) + xp = cp.get_array_module(X.values) tail = self.tail - self = self._apply_decay(X, tail) + if self.attachment_age: + attach_idx = xp.min(xp.where(X.ddims>=self.attachment_age)) + else: + attach_idx = len(X.ddims) - 1 + self = self._apply_decay(X, tail, attach_idx) obj = Development().fit_transform(X) if 'ldf_' not in X else X xp = cp.get_array_module(X.values) if xp.max(self.tail) != 1.0: @@ -69,27 +82,3 @@ def fit(self, X, y=None, sample_weight=None): self.sigma_.values[..., -1] = sigma[..., -1] self.std_err_.values[..., -1] = std_err[..., -1] return self - - def transform(self, X): - """Transform X. - The predicted class of an input sample is a vote by the trees in - the forest, weighted by their probability estimates. That is, - the predicted class is the one with highest mean probability - estimate across the trees. - - Parameters - ---------- - X : Triangle - Triangle must contain the ``ldf_`` development attribute. - - Returns - ------- - X_new : Triangle - New Triangle with tail factor applied to its development - attributes. - """ - X.std_err_ = self.std_err_ - X.cdf_ = self.cdf_ - X.ldf_ = self.ldf_ - X.sigma_ = self.sigma_ - return X diff --git a/chainladder/tails/curve.py b/chainladder/tails/curve.py index 702f85c5..71f7dbaa 100644 --- a/chainladder/tails/curve.py +++ b/chainladder/tails/curve.py @@ -5,7 +5,10 @@ from chainladder.utils import WeightedRegression from chainladder.development import DevelopmentBase, Development import numpy as np +import pandas as pd from chainladder.utils.cupy import cp +import copy +import warnings class TailCurve(TailBase): @@ -15,9 +18,10 @@ class TailCurve(TailBase): ---------- curve : str ('exponential', 'inverse_power') The type of curve extrapolation you'd like to use - fit_period : slice - A slice object representing the range (by index) of ldfs to use in - the curve fit. + fit_period : tuple (start, stop) + A tuple representing the range of ldfs to use in the curve fit. + The use of ``None`` will use the edge of the triangle. For example, + (48, None) will use development factors for age 48 and beyond. extrap_periods : int Then number of development periods from attachment point to extrapolate the fit. @@ -32,16 +36,22 @@ class TailCurve(TailBase): Attributes ---------- - ldf_ : + ldf_ : Triangle ldf with tail applied. - cdf_ : + cdf_ : Triangle cdf with tail applied. - sigma_ : + tail_ : DataFrame + Point estimate of tail at latest maturity available in the Triangle. + slope_ : DataFrame + Slope parameter of the curve fit. + intercept : DataFrame + Intercept parameter of the curve fit. + sigma_ : Triangle sigma with tail factor applied. - std_err_ : + std_err_ : Triangle std_err with tail factor applied """ - def __init__(self, curve='exponential', fit_period=slice(None, None, None), + def __init__(self, curve='exponential', fit_period=(None, None), extrap_periods=100, errors='ignore', attachment_age=None): self.curve = curve self.fit_period = fit_period @@ -64,31 +74,36 @@ def fit(self, X, y=None, sample_weight=None): self : object Returns the instance itself. """ + + if type(self.fit_period) == slice: + warnings.warn("Slicing for fit_period is deprecated and will be removed. Please use a tuple (start_age, end_age).") + fit_period = self.fit_period + else: + grain = {'Y': 12, 'Q': 3, 'M': 1}[X.development_grain] + start = self.fit_period[0] if self.fit_period[0] is None else int(self.fit_period[0] / grain - 1) + end = self.fit_period[1] if self.fit_period[1] is None else int(self.fit_period[1] / grain - 1) + fit_period = slice(start, end, None) super().fit(X, y, sample_weight) xp = cp.get_array_module(self.ldf_.values) _y = self.ldf_.values[..., :X.shape[-1]-1].copy() _w = xp.zeros(_y.shape) - if type(self.fit_period) is not slice: - raise TypeError('fit_period must be slice.') - else: - _w[..., self.fit_period] = 1.0 + _w[..., fit_period] = 1.0 if self.errors == 'ignore': _w[_y <= 1.0] = 0 _y[_y <= 1.0] = 1.01 elif self.errors == 'raise' and xp.any(y < 1.0): - raise ZeroDivisionError('Tail fit requires all LDFs to be' + - ' greater than 1.0') + raise ZeroDivisionError('Tail fit requires all LDFs to be greater than 1.0') _y = xp.log(_y - 1) n_obs = X.shape[-1]-1 k, v = X.shape[:2] _x = self._get_x(_w, _y) # Get LDFs coefs = WeightedRegression(axis=3).fit(_x, _y, _w) - slope, intercept = coefs.slope_, coefs.intercept_ + self._slope_, self._intercept_ = coefs.slope_, coefs.intercept_ extrapolate = xp.cumsum( xp.ones(tuple(list(_y.shape)[:-1] + [self.extrap_periods + n_obs])), -1) - tail = self._predict_tail(slope, intercept, extrapolate) + tail = self._predict_tail(extrapolate) if self.attachment_age: attach_idx = xp.min(xp.where(X.ddims>=self.attachment_age)) else: @@ -99,8 +114,6 @@ def fit(self, X, y=None, sample_weight=None): sigma, std_err = self._get_tail_stats(obj) self.sigma_.values[..., -1] = sigma[..., -1] self.std_err_.values[..., -1] = std_err[..., -1] - self.slope_ = slope - self.intercept_ = intercept self.cdf_ = DevelopmentBase._get_cdf(self) return self @@ -113,10 +126,24 @@ def _get_x(self, w, y): xp = cp.get_array_module(reg.x) return xp.log(reg.x) - def _predict_tail(self, slope, intercept, extrapolate): + def _predict_tail(self, extrapolate): xp = cp.get_array_module(extrapolate) if self.curve == 'exponential': - tail_ldf = xp.exp(slope*extrapolate + intercept) + tail_ldf = xp.exp(self._slope_*extrapolate + self._intercept_) if self.curve == 'inverse_power': - tail_ldf = xp.exp(intercept)*(extrapolate**slope) + tail_ldf = xp.exp(self._intercept_)*(extrapolate**self._slope_) return self._get_tail_prediction(tail_ldf) + + @property + def slope_(self): + """ Does not work with munich """ + idx = self.cdf_._idx_table() + return pd.DataFrame(self._slope_[..., 0, 0], + index=idx.index, columns=idx.columns) + + @property + def intercept_(self): + """ Does not work with munich """ + idx = self.cdf_._idx_table() + return pd.DataFrame(self._intercept_[..., 0, 0], + index=idx.index, columns=idx.columns) diff --git a/docs/auto_examples/auto_examples_jupyter.zip b/docs/auto_examples/auto_examples_jupyter.zip index 5a169380303038c4e02d59605f0a7175eccb9bfc..50191c845370a53a2aa615f14621b469284f8969 100644 GIT binary patch delta 375 zcmY+8ze_?<9L0TC`mt0l{ZiB$ZV#!&B?%J)A+(GL3X=4O7kzMj58k^<1yKYMVFdA& z772n1Y>TA8A#C$E)gRFiIMfmq4Lz)-GoEukoO7HrzU7QpEpw0ivNU)7Tz*o!4FpL}Fx>Q7rv33#vrqIHS&X zM`xuZ;fjh?nx-n({@}38RT7i9q{xI}pCZTBagy?c5`(VYM=;Iz!-w?@t3gy9+x52q?e8EE_h&GGhDO$nZ6w%l{yq3(c-86OXl?}Rn0D2#masU7T delta 267 zcmex3n|a!7<_&M8c#F+<2LxqR>xpwPFof zopNB3N|`({MQ-w?Q(BBplmDJ_Wx821IiOTxa?EKh#=^<%r@a~VCSN{n!x%AH;EWxk z;bi|aE=&>gCZC_DFnQ}4Ev7HaCqF#n!8m`i)>$7WrJa*!?v$N8^{f`tmHm?sp4DR0 IInDqC0F~Ql>i_@% diff --git a/docs/auto_examples/auto_examples_python.zip b/docs/auto_examples/auto_examples_python.zip index d5a5710d61737bd0d257731e1bdb62cc65d380e8..f2f432632240f9578bea5b14225b446eba220d8e 100644 GIT binary patch delta 354 zcmY+8y-Pw-9ELrI$`C~DV=08QB^L>b1|uER@FO7_f`UG-Cp_qZ#2>Mup$o_(+mL}JRh=wlK(!0Lz^Y9*Y(R&wNF9!UxSNBVU+fRi~pU2Z_ ztp#GJNytitSwvSDDKaVrXG)v2%!+;=S41&QwB2h3RhrNS<$`VrM))tYEIGBxf<=29 zm*rKeZAm0+Fsaoa?DuI&OI&l?qJpGstF%L^Ojqm@BvAxzf=5sY?e=R|Zo)@s#yi=d zqRvz+GBmvT|25>CRh$`t3nzh^@aE*vHyE`zYD2k}KrOherSWYP_M&0%N&`K@v`nB= zaAXF(LR+TrSsIGzQ3xsnXR{DjS)5vceHBB;aHrX7;b#*L&2c!_hAV#2 YdA!ac%*SA=Zs2(V8}*5S2ixQ32j}X6ApigX delta 258 zcmaF*nz8FO;|4!|-Xine0X*%BT?H%*3aj51_UR)5t z^jdiG-vV1kmC4qHo{S48w-(wk#!Nm`Xv-KesmPfrNoVp+9oflAMOutmlY5J78Eq$@ zE^=e6pDa}D#ON|PwAg{^joaku#qLbcJtsdXwqP`$ELmdBWEDJlW3brdoDwa@xs#`t ucrfNqeo*4Z6p=jne6rkRw^A)e#>s`Hu1qhpCnw~HPd;BNz?PcN00aO#09p|M diff --git a/docs/auto_examples/images/sphx_glr_plot_bondy_sensitivity_001.png b/docs/auto_examples/images/sphx_glr_plot_bondy_sensitivity_001.png index ee1f4deecf28d8d70a7f4801f9b130de13c7f397..e40d5a257b06606a7e3f4d6ddf501da004552c22 100644 GIT binary patch literal 41487 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 F{1YXB^;ZA@ literal 42267 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�B04E+u7;mU19;^+F0GDJKNR= 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 SzWIj2KX(@|X0`Lalm7;ssI-Fs diff --git a/docs/auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png b/docs/auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png index 29e97063efb6fa00835dc77902b4b7d64ba69e02..91b38172ba208bdba0bfe93cb90541098c8e0bd3 100644 GIT binary patch literal 28778 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 Uv)(tw3_*&n)&b2-b&J6N12vgf!2kdN literal 29294 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 }^QP<#9C&M;a51{K{I* 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 diff --git a/docs/auto_examples/plot_bondy_sensitivity.ipynb b/docs/auto_examples/plot_bondy_sensitivity.ipynb index 625c8449..e040fe90 100644 --- a/docs/auto_examples/plot_bondy_sensitivity.ipynb +++ b/docs/auto_examples/plot_bondy_sensitivity.ipynb @@ -15,7 +15,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\n# Testing Sensitivity of Bondy Tail Assumptions\n\n\nThis example demonstrates the usage of the `TailBondy` estimator as well as\npassing multiple scoring functions to `GridSearch`.\n\n" + "\n# Testing Sensitivity of Bondy Tail Assumptions\n\n\nThis example demonstrates the usage of the `TailBondy` estimator as well as\npassing multiple scoring functions to `GridSearch`. When the `earliest_age`\nis set to the last available in the Triangle, the estimator reverts to the\ntraditional Bondy method.\n\n" ] }, { @@ -26,7 +26,7 @@ }, "outputs": [], "source": [ - "import chainladder as cl\n\n# Fit basic development to a triangle\ntri = cl.load_sample('tail_sample')['paid']\ndev = cl.Development(average='simple').fit_transform(tri)\n\n\n# Return both the tail factor and the Bondy exponent in the scoring function\nscoring = {\n 'tail_factor': lambda x: x.cdf_[x.cdf_.development=='120-9999'].to_frame().values[0,0],\n 'bondy_exponent': lambda x : x.b_[0,0]}\n\n# Vary the 'earliest_age' assumption in GridSearch\nparam_grid=dict(earliest_age=list(range(12, 120, 12)))\ngrid = cl.GridSearch(cl.TailBondy(), param_grid, scoring)\nresults = grid.fit(dev).results_\n\nax = results.plot(x='earliest_age', y='bondy_exponent',\n title='Bondy Assumption Sensitivity', marker='o')\nresults.plot(x='earliest_age', y='tail_factor', grid=True,\n secondary_y=True, ax=ax, marker='o');" + "import chainladder as cl\n\n# Fit basic development to a triangle\ntri = cl.load_sample('tail_sample')['paid']\ndev = cl.Development(average='simple').fit_transform(tri)\n\n# Return both the tail factor and the Bondy exponent in the scoring function\nscoring = {\n 'tail_factor': lambda x: x.tail_.values[0,0],\n 'bondy_exponent': lambda x : x.b_.values[0,0]}\n\n# Vary the 'earliest_age' assumption in GridSearch\nparam_grid=dict(earliest_age=list(range(12, 120, 12)))\ngrid = cl.GridSearch(cl.TailBondy(), param_grid, scoring)\nresults = grid.fit(dev).results_\n\nax = results.plot(x='earliest_age', y='bondy_exponent',\n title='Bondy Assumption Sensitivity', marker='o')\nresults.plot(x='earliest_age', y='tail_factor', grid=True,\n secondary_y=True, ax=ax, marker='o');" ] } ], diff --git a/docs/auto_examples/plot_bondy_sensitivity.py b/docs/auto_examples/plot_bondy_sensitivity.py index a52de021..952c62f3 100644 --- a/docs/auto_examples/plot_bondy_sensitivity.py +++ b/docs/auto_examples/plot_bondy_sensitivity.py @@ -4,7 +4,9 @@ =============================================== This example demonstrates the usage of the `TailBondy` estimator as well as -passing multiple scoring functions to `GridSearch`. +passing multiple scoring functions to `GridSearch`. When the `earliest_age` +is set to the last available in the Triangle, the estimator reverts to the +traditional Bondy method. """ import chainladder as cl @@ -13,11 +15,10 @@ tri = cl.load_sample('tail_sample')['paid'] dev = cl.Development(average='simple').fit_transform(tri) - # Return both the tail factor and the Bondy exponent in the scoring function scoring = { - 'tail_factor': lambda x: x.cdf_[x.cdf_.development=='120-9999'].to_frame().values[0,0], - 'bondy_exponent': lambda x : x.b_[0,0]} + 'tail_factor': lambda x: x.tail_.values[0,0], + 'bondy_exponent': lambda x : x.b_.values[0,0]} # Vary the 'earliest_age' assumption in GridSearch param_grid=dict(earliest_age=list(range(12, 120, 12))) diff --git a/docs/auto_examples/plot_bondy_sensitivity.py.md5 b/docs/auto_examples/plot_bondy_sensitivity.py.md5 index 1143960b..d2834877 100644 --- a/docs/auto_examples/plot_bondy_sensitivity.py.md5 +++ b/docs/auto_examples/plot_bondy_sensitivity.py.md5 @@ -1 +1 @@ -dacdf27446a7ddaa1bca04f6b3d4225d \ No newline at end of file +9da70733f0eb47f24423433a8e3779a8 \ No newline at end of file diff --git a/docs/auto_examples/plot_bondy_sensitivity.rst b/docs/auto_examples/plot_bondy_sensitivity.rst index 2fbda261..1e4fdb94 100644 --- a/docs/auto_examples/plot_bondy_sensitivity.rst +++ b/docs/auto_examples/plot_bondy_sensitivity.rst @@ -14,7 +14,9 @@ Testing Sensitivity of Bondy Tail Assumptions =============================================== This example demonstrates the usage of the `TailBondy` estimator as well as -passing multiple scoring functions to `GridSearch`. +passing multiple scoring functions to `GridSearch`. When the `earliest_age` +is set to the last available in the Triangle, the estimator reverts to the +traditional Bondy method. @@ -30,7 +32,7 @@ passing multiple scoring functions to `GridSearch`. .. code-block:: none - + @@ -48,11 +50,10 @@ passing multiple scoring functions to `GridSearch`. tri = cl.load_sample('tail_sample')['paid'] dev = cl.Development(average='simple').fit_transform(tri) - # Return both the tail factor and the Bondy exponent in the scoring function scoring = { - 'tail_factor': lambda x: x.cdf_[x.cdf_.development=='120-9999'].to_frame().values[0,0], - 'bondy_exponent': lambda x : x.b_[0,0]} + 'tail_factor': lambda x: x.tail_.values[0,0], + 'bondy_exponent': lambda x : x.b_.values[0,0]} # Vary the 'earliest_age' assumption in GridSearch param_grid=dict(earliest_age=list(range(12, 120, 12))) @@ -67,7 +68,7 @@ passing multiple scoring functions to `GridSearch`. .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 0 minutes 1.008 seconds) + **Total running time of the script:** ( 0 minutes 0.586 seconds) .. _sphx_glr_download_auto_examples_plot_bondy_sensitivity.py: diff --git a/docs/auto_examples/plot_bondy_sensitivity_codeobj.pickle b/docs/auto_examples/plot_bondy_sensitivity_codeobj.pickle index 0f1785b3ddae396995f4a773df29bae8671f74f1..ae377e1d7153f7230dcae6bb5dfb27a2d9e572e6 100644 GIT binary patch delta 219 zcmX>heL{M|Usjg%qRf=ZcUXNUFJ(_-RGfT;dq1PzWLb6tHscK5&eFt*e@qxHCL1zp zF|i`Oxs6GK@yz5Ctj8E{f@E1AfNg!iDmuB2OheL{M|-^pv3j2R^-KVZ^gl$m^)&5>0xgSWGE@&h)p$@=UftSWF`96LXoI*6A# z*^grrqse4O&IOG2lO1_vChy~PXLOtVhb5EIck)A4smTqj-HZ{F=W<9){=gx?7(H2< zLzgW9q&0DJG5d1H+{yOb#~7>NS{oBK)f7^h7(XDer% zKY2ZyGUKAj+{~vK*H6x5k(>O5c`@TIxc-A+t53kKzC4+SO^fl``__ -LDF Curve Fitting -================= +.. _clarkldf: + +Growth Curve Fitting +==================== :class:`ClarkLDF` is an application of Maximum Likelihood Estimation (MLE) theory for modeling the distribution of loss development. This model is used to estimate future loss emergence, and the variability around that estimate. The value of diff --git a/docs/modules/generated/chainladder.Development.examples b/docs/modules/generated/chainladder.Development.examples index 5d9e070b..7c417a7c 100644 --- a/docs/modules/generated/chainladder.Development.examples +++ b/docs/modules/generated/chainladder.Development.examples @@ -3,44 +3,6 @@ Examples using ``chainladder.Development`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. raw:: html - -

- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_mack_thumb.png - :alt: Mack Chainladder Example - - :ref:`sphx_glr_auto_examples_plot_mack.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_mack.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_development_periods_thumb.png - :alt: Basic Assumption Tuning with Pipeline and Gridsearch - - :ref:`sphx_glr_auto_examples_plot_development_periods.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_development_periods.py` - .. raw:: html
@@ -59,79 +21,3 @@ Examples using ``chainladder.Development`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png - :alt: Benktander: Relationship between Chainladder and BornhuetterFerguson - - :ref:`sphx_glr_auto_examples_plot_benktander.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_benktander.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_thumb.png - :alt: ODP Bootstrap Example - - :ref:`sphx_glr_auto_examples_plot_bootstrap.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_bootstrap.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png - :alt: Munich Adjustment Example - - :ref:`sphx_glr_auto_examples_plot_munich.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_munich.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_exhibits_thumb.png - :alt: Sample Excel Exhibit functionality - - :ref:`sphx_glr_auto_examples_plot_exhibits.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_exhibits.py` diff --git a/docs/modules/generated/chainladder.DevelopmentBase.examples b/docs/modules/generated/chainladder.DevelopmentBase.examples index db3fa5a7..dfbbba0a 100644 --- a/docs/modules/generated/chainladder.DevelopmentBase.examples +++ b/docs/modules/generated/chainladder.DevelopmentBase.examples @@ -3,82 +3,6 @@ Examples using ``chainladder.DevelopmentBase`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_clarkldf_thumb.png - :alt: Clark Growth Curves - - :ref:`sphx_glr_auto_examples_plot_clarkldf.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_clarkldf.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_value_at_risk_thumb.png - :alt: Value at Risk example - - :ref:`sphx_glr_auto_examples_plot_value_at_risk.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_value_at_risk.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_mack_thumb.png - :alt: Mack Chainladder Example - - :ref:`sphx_glr_auto_examples_plot_mack.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_mack.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_development_periods_thumb.png - :alt: Basic Assumption Tuning with Pipeline and Gridsearch - - :ref:`sphx_glr_auto_examples_plot_development_periods.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_development_periods.py` - .. raw:: html
@@ -97,136 +21,3 @@ Examples using ``chainladder.DevelopmentBase`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_comparison_thumb.png - :alt: ODP Bootstrap Comparison - - :ref:`sphx_glr_auto_examples_plot_bootstrap_comparison.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_bootstrap_comparison.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_stochastic_bornferg_thumb.png - :alt: Stochastic Bornhuetter Ferguson - - :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_stochastic_bornferg.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png - :alt: Benktander: Relationship between Chainladder and BornhuetterFerguson - - :ref:`sphx_glr_auto_examples_plot_benktander.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_benktander.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_clarkldf_resid_thumb.png - :alt: Clark Residual Plots - - :ref:`sphx_glr_auto_examples_plot_clarkldf_resid.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_clarkldf_resid.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bootstrap_thumb.png - :alt: ODP Bootstrap Example - - :ref:`sphx_glr_auto_examples_plot_bootstrap.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_bootstrap.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png - :alt: Munich Adjustment Example - - :ref:`sphx_glr_auto_examples_plot_munich.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_munich.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_exhibits_thumb.png - :alt: Sample Excel Exhibit functionality - - :ref:`sphx_glr_auto_examples_plot_exhibits.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_exhibits.py` diff --git a/docs/modules/generated/chainladder.EstimatorIO.examples b/docs/modules/generated/chainladder.EstimatorIO.examples index d257a924..666baf37 100644 --- a/docs/modules/generated/chainladder.EstimatorIO.examples +++ b/docs/modules/generated/chainladder.EstimatorIO.examples @@ -5,14 +5,14 @@ Examples using ``chainladder.EstimatorIO`` .. raw:: html -
+
.. only:: html - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_extrap_period_thumb.png - :alt: Extrapolation Period Sensitivity + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png + :alt: Testing Sensitivity of Bondy Tail Assumptions - :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` .. raw:: html @@ -20,4 +20,4 @@ Examples using ``chainladder.EstimatorIO`` .. only:: not html - * :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` diff --git a/docs/modules/generated/chainladder.GridSearch.examples b/docs/modules/generated/chainladder.GridSearch.examples index 3ac7ccc1..365a3aa1 100644 --- a/docs/modules/generated/chainladder.GridSearch.examples +++ b/docs/modules/generated/chainladder.GridSearch.examples @@ -5,14 +5,14 @@ Examples using ``chainladder.GridSearch`` .. raw:: html -
+
.. only:: html - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_extrap_period_thumb.png - :alt: Extrapolation Period Sensitivity + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png + :alt: Testing Sensitivity of Bondy Tail Assumptions - :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` .. raw:: html @@ -20,4 +20,4 @@ Examples using ``chainladder.GridSearch`` .. only:: not html - * :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` diff --git a/docs/modules/generated/chainladder.GridSearch.fit.examples b/docs/modules/generated/chainladder.GridSearch.fit.examples index 9909421a..91740567 100644 --- a/docs/modules/generated/chainladder.GridSearch.fit.examples +++ b/docs/modules/generated/chainladder.GridSearch.fit.examples @@ -21,22 +21,3 @@ Examples using ``chainladder.GridSearch.fit`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` - -.. raw:: html - -
- -.. only:: html - - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_benktander_thumb.png - :alt: Benktander: Relationship between Chainladder and BornhuetterFerguson - - :ref:`sphx_glr_auto_examples_plot_benktander.py` - -.. raw:: html - -
- -.. only:: not html - - * :ref:`sphx_glr_auto_examples_plot_benktander.py` diff --git a/docs/modules/generated/chainladder.TailBase.examples b/docs/modules/generated/chainladder.TailBase.examples index f06135b9..6dc10bb1 100644 --- a/docs/modules/generated/chainladder.TailBase.examples +++ b/docs/modules/generated/chainladder.TailBase.examples @@ -5,14 +5,14 @@ Examples using ``chainladder.TailBase`` .. raw:: html -
+
.. only:: html - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_extrap_period_thumb.png - :alt: Extrapolation Period Sensitivity + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png + :alt: Testing Sensitivity of Bondy Tail Assumptions - :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` .. raw:: html @@ -20,4 +20,4 @@ Examples using ``chainladder.TailBase`` .. only:: not html - * :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` diff --git a/docs/modules/generated/chainladder.TailCurve.intercept_.examples b/docs/modules/generated/chainladder.TailCurve.intercept_.examples new file mode 100644 index 00000000..e69de29b diff --git a/docs/modules/generated/chainladder.TailCurve.slope_.examples b/docs/modules/generated/chainladder.TailCurve.slope_.examples new file mode 100644 index 00000000..e69de29b diff --git a/docs/modules/generated/chainladder.Triangle.examples b/docs/modules/generated/chainladder.Triangle.examples index b4d0b8f1..c8bca002 100644 --- a/docs/modules/generated/chainladder.Triangle.examples +++ b/docs/modules/generated/chainladder.Triangle.examples @@ -5,14 +5,14 @@ Examples using ``chainladder.Triangle`` .. raw:: html -
+
.. only:: html - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_extrap_period_thumb.png - :alt: Extrapolation Period Sensitivity + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png + :alt: Testing Sensitivity of Bondy Tail Assumptions - :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` .. raw:: html @@ -20,4 +20,4 @@ Examples using ``chainladder.Triangle`` .. only:: not html - * :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` diff --git a/docs/modules/generated/chainladder.load_sample.examples b/docs/modules/generated/chainladder.load_sample.examples index ebbdf9bc..d6653438 100644 --- a/docs/modules/generated/chainladder.load_sample.examples +++ b/docs/modules/generated/chainladder.load_sample.examples @@ -5,14 +5,14 @@ Examples using ``chainladder.load_sample`` .. raw:: html -
+
.. only:: html - .. figure:: /auto_examples/images/thumb/sphx_glr_plot_extrap_period_thumb.png - :alt: Extrapolation Period Sensitivity + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_bondy_sensitivity_thumb.png + :alt: Testing Sensitivity of Bondy Tail Assumptions - :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` .. raw:: html @@ -20,4 +20,4 @@ Examples using ``chainladder.load_sample`` .. only:: not html - * :ref:`sphx_glr_auto_examples_plot_extrap_period.py` + * :ref:`sphx_glr_auto_examples_plot_bondy_sensitivity.py` diff --git a/docs/modules/tails.rst b/docs/modules/tails.rst index c11c07bb..37c5e43e 100644 --- a/docs/modules/tails.rst +++ b/docs/modules/tails.rst @@ -5,31 +5,61 @@ =============== Tail Estimators =============== + +The Basics +========== + The Tails module provides a variety of tail transformers that allow for the extrapolation of development patterns beyond the end of the triangle. Tail factors are used extensively in commercial lines of business. +Every tail estimator produced a ``tail_`` attribute which represents the point +estimate of the tail of the Triangle. + +Run Off +------- +In addition to point estimates, tail estimators support run-off analysis. The +``ldf_`` and ``cdf_`` attribute splits the tail point estimate into enough +development patterns to allow for tail run-off to be examined for at least another +valuation year. For an annual ``development_grain`` grain, the development pattterns +include two additional patterns. + + >>> development.cdf_ + 12-Ult 24-Ult 36-Ult 48-Ult 60-Ult 72-Ult 84-Ult 96-Ult 108-Ult + (All) 8.920234 2.974047 1.831848 1.441392 1.230198 1.104917 1.060448 1.026309 1.009217 + >>> tail.cdf_ + 12-Ult 24-Ult 36-Ult 48-Ult 60-Ult 72-Ult 84-Ult 96-Ult 108-Ult 120-Ult 132-Ult + (All) 9.004403 3.002109 1.849133 1.454993 1.241806 1.115343 1.070454 1.035993 1.018739 1.009436 1.005006 + +For quarterly grain, there are five additional development patterns and for monthly +there are thirteen. + +Attachment Age +-------------- +By default, tail estimators attach to the oldest ``development`` age of the ``Triangle``. +In practice, the last several known development factors of a ``Triangle`` can be +unreliable and attaching the tail earlier and using it as a smoothing mechanism +is preferred. All tail estimators have an ``attachment_age`` parameter that +allows you to select the development age to which the tail will attach. +Regardless of ``attachment_age``, the tail development factor vector will +always include patterns at least one year beyond the known data in the ``Triangle``. + + + .. _constant: External Data ============= :class:`TailConstant` allows you to input a tail factor as a constant. This is useful when relying on tail selections from an external source like industry data. -.. warning:: - The chainlader package does not currently support any stochastic - paramters for :class:`TailConstant`. This precludes the compatibility of - this estimator with stochastic methods such as :class:`MackChainladder`. - The tail factor supplied applies to all individual triangles contained within the Triangle object. If this is not the desired outcome, slicing individual triangles and applying :class:`TailConstant` separately to each can be done. Decay ----- -An exponential ``decay`` parameter is also available to describe the run-off nature of -the tail. Although tail factors are generally specified as scalar value, the -``chainladder`` package will expand it over a single future calendar year so that -run-off analyses can be performed for the upcoming year. +An exponential ``decay`` parameter is also available to facilitate the run off +analysis described above. >>> import chainladder as cl >>> abc = cl.Development().fit_transform(cl.load_sample('abc')) @@ -55,7 +85,12 @@ are supported. :scale: 50% In general, ``inverse_power`` fit produce more conservative tail estimates than -the ``exponential`` fit. +the ``exponential`` fit. Both are fit using basic OLS regression on transformed +`X` and `y` values. + +For exponential curve fitting, we use fit a regression to the natural log of +the development portion of a link-ratio, `f`. + Extrapolation Period --------------------- @@ -69,11 +104,42 @@ asymptotic value. :align: center :scale: 50% +Regression parameters +---------------------- +Underlying the curve fit is an OLS regression which generates both a `slope_` +and `intercept_` term. + +For the `exponential` curve fit with slope, b and intercept a, the tail factor +is: + +.. math:: + \prod_{i}^{N}1+exp(\beta X+\alpha ) + +For the `inverse_power` curve, the tail factor is: + +.. math:: + \prod_{i}^{N}1+exp(\alpha) X^{\beta} + + +Deriving the `tail_` factor manually: + + >>> import chainladder as cl + >>> import numpy as np + >>> raa = cl.load_sample('raa') + >>> tail = cl.TailCurve('exponential').fit(raa) + >>> np.prod((1+np.exp(np.arange(10, 10+tail.extrap_periods)*tail.slope_.values+tail.intercept_.values))) + 1.0094357515812302 + >>> tail = cl.TailCurve('inverse_power').fit(raa) + >>> np.prod(1+np.exp(tail.intercept_.values)*(np.arange(10, 10+tail.extrap_periods)**tail.slope_.values)) + 1.1014821181181595 + .. topic:: References .. [CAS2013] `CAS Tail Factor Working Party, "The Estimation of Loss Development Tail Factors: A Summary Report", Casualty Actuarial Society E-Forum `__ + + .. _bondy: The Bondy Tail ============== @@ -87,8 +153,10 @@ More formally, the tail factor is defined as: .. math:: F(n)=f(n-1)^{B}f(n-1)^{B^{2}}...=f(n-1)^{\frac{B}{1-B}} -Rather than using the last known development factor explicitely, we estimate the +Rather than using the last known development factor explicitly, we estimate the fitted LDF using the formula above along with the ``earliest_age`` parameter. +The following example shows how the :class:`TailBondy` estimator develops a +tail factor from ``b_``, the Bondy exponent. >>> import chainladder as cl >>> # Data and initial development patterns @@ -119,9 +187,9 @@ fitted LDF using the formula above along with the ``earliest_age`` parameter. Growth Curve Extrapolation ========================== :class:`TailClark` is a continuation of the :class:`ClarkLDF` model. Familiarity -with :class:`ClarkLDF` will aid in understanding this Estimator. The growth -curve approach used by Clark produces development patterns for any age including -ages beyond the edge of the Triangle. +with :ref:`Growth Curve Fitting` will aid in understanding this Estimator. +The growth curve approach used by Clark produces development patterns for any +age including ages beyond the edge of the Triangle. An example completing Clark's model: diff --git a/docs/modules/triangle.rst b/docs/modules/triangle.rst index 56a48d5e..513f6261 100644 --- a/docs/modules/triangle.rst +++ b/docs/modules/triangle.rst @@ -1,6 +1,7 @@ .. _triangle: .. currentmodule:: chainladder + ======== Triangle ======== diff --git a/docs/tutorials/template-tutorial.ipynb b/docs/tutorials/template-tutorial.ipynb index 00479046..390a15ae 100644 --- a/docs/tutorials/template-tutorial.ipynb +++ b/docs/tutorials/template-tutorial.ipynb @@ -17,7 +17,7 @@ { "data": { "text/plain": [ - "'0.6.1'" + "'0.6.3'" ] }, "execution_count": 1, diff --git a/examples/plot_bondy_sensitivity.py b/examples/plot_bondy_sensitivity.py index a52de021..952c62f3 100644 --- a/examples/plot_bondy_sensitivity.py +++ b/examples/plot_bondy_sensitivity.py @@ -4,7 +4,9 @@ =============================================== This example demonstrates the usage of the `TailBondy` estimator as well as -passing multiple scoring functions to `GridSearch`. +passing multiple scoring functions to `GridSearch`. When the `earliest_age` +is set to the last available in the Triangle, the estimator reverts to the +traditional Bondy method. """ import chainladder as cl @@ -13,11 +15,10 @@ tri = cl.load_sample('tail_sample')['paid'] dev = cl.Development(average='simple').fit_transform(tri) - # Return both the tail factor and the Bondy exponent in the scoring function scoring = { - 'tail_factor': lambda x: x.cdf_[x.cdf_.development=='120-9999'].to_frame().values[0,0], - 'bondy_exponent': lambda x : x.b_[0,0]} + 'tail_factor': lambda x: x.tail_.values[0,0], + 'bondy_exponent': lambda x : x.b_.values[0,0]} # Vary the 'earliest_age' assumption in GridSearch param_grid=dict(earliest_age=list(range(12, 120, 12))) diff --git a/setup.py b/setup.py index 16e183a4..4b24cd61 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ descr = "Chainladder Package - P&C Loss Reserving package " name = 'chainladder' url = 'https://github.com/casact/chainladder-python' -version='0.6.3' # Put this in __init__.py +version='0.7.0' # Put this in __init__.py data_path = '' setup(