diff --git a/chainladder/core/common.py b/chainladder/core/common.py
index 2f527b38..e996eb2f 100644
--- a/chainladder/core/common.py
+++ b/chainladder/core/common.py
@@ -4,7 +4,7 @@
import copy
from chainladder.utils.cupy import cp
-def _get_full_expectation(cdf_, ultimate_, process_variance_):
+def _get_full_expectation(cdf_, ultimate_):
""" Private method that builds full expectation"""
xp = cp.get_array_module(ultimate_.values)
o, d = ultimate_.shape[-2:]
@@ -17,9 +17,6 @@ def _get_full_expectation(cdf_, ultimate_, process_variance_):
full.ddims = xp.append(cdf_.ddims, '9999-Ult')
full.ddims = xp.array([int(item.split('-')[0]) for item in full.ddims])
full.vdim = ultimate_.vdims
- if process_variance_:
- full.values = (xp.nan_to_num(full.values) +
- xp.nan_to_num(process_variance_.values))
return full
def _get_full_triangle(full_expectation_, triangle_):
@@ -62,10 +59,7 @@ def full_expectation_(self):
if not hasattr(self, 'ultimate_'):
raise AttributeError("'" + self.__class__.__name__ + "'" +
" object has no attribute 'full_expectation_'")
- if hasattr(self, 'process_variance_'):
- return _get_full_expectation(self.cdf_, self.ultimate_, self.process_variance_)
- else:
- return _get_full_expectation(self.cdf_, self.ultimate_, None)
+ return _get_full_expectation(self.cdf_, self.ultimate_)
@property
def full_triangle_(self):
diff --git a/chainladder/core/tests/test_triangle.py b/chainladder/core/tests/test_triangle.py
index 0efd03cb..e146bf41 100644
--- a/chainladder/core/tests/test_triangle.py
+++ b/chainladder/core/tests/test_triangle.py
@@ -6,11 +6,12 @@
tri = cl.load_sample('clrd')
qtr = cl.load_sample('quarterly')
+raa = cl.load_sample('raa')
# Test Triangle slicing
def test_slice_by_boolean():
assert tri[tri['LOB'] == 'ppauto'].loc['Wolverine Mut Ins Co']['CumPaidLoss'] == \
- tri.loc['Wolverine Mut Ins Co'].loc['ppauto']['CumPaidLoss']
+ tri.loc['Wolverine Mut Ins Co'].loc['ppauto']['CumPaidLoss']
def test_slice_by_loc():
@@ -18,13 +19,11 @@ def test_slice_by_loc():
def test_slice_origin():
- assert cl.load_sample('raa')[cl.load_sample('raa').origin>'1985'].shape == \
- (1, 1, 5, 10)
+ assert raa[raa.origin>'1985'].shape == (1, 1, 5, 10)
def test_slice_development():
- assert cl.load_sample('raa')[cl.load_sample('raa').development<72].shape == \
- (1, 1, 10, 5)
+ assert raa[raa.development<72].shape == (1, 1, 10, 5)
def test_slice_by_loc_iloc():
@@ -32,30 +31,27 @@ def test_slice_by_loc_iloc():
def test_repr():
- tri = cl.load_sample('raa')
- np.testing.assert_array_equal(pd.read_html(tri._repr_html_())[0].set_index('Origin').values,
- tri.to_frame().values)
+ np.testing.assert_array_equal(
+ pd.read_html(raa._repr_html_())[0].set_index('Origin').values,
+ raa.to_frame().values)
def test_arithmetic_union():
- raa = cl.load_sample('raa')
assert raa.shape == (raa-raa[raa.valuation<'1987']).shape
def test_to_frame_unusual():
- clrd = cl.load_sample('clrd')
- a = clrd.groupby(['LOB']).sum().latest_diagonal['CumPaidLoss'].to_frame().values
- b = clrd.latest_diagonal['CumPaidLoss'].groupby(['LOB']).sum().to_frame().values
+ a = tri.groupby(['LOB']).sum().latest_diagonal['CumPaidLoss'].to_frame().values
+ b = tri.latest_diagonal['CumPaidLoss'].groupby(['LOB']).sum().to_frame().values
xp = cp.get_array_module(a)
xp.testing.assert_array_equal(a, b)
def test_link_ratio():
- tri = cl.load_sample('RAA')
- xp = cp.get_array_module(tri.values)
- assert xp.sum(xp.nan_to_num(tri.link_ratio.values*tri.values[:,:,:-1,:-1]) -
- xp.nan_to_num(tri.values[:,:,:-1,1:]))<1e-5
-
+ xp = cp.get_array_module(raa.values)
+ assert xp.sum(xp.nan_to_num(raa.link_ratio.values*raa.values[:,:,:-1,:-1]) -
+ xp.nan_to_num(raa.values[:,:,:-1,1:]))<1e-5
+
def test_incr_to_cum():
xp = cp.get_array_module(tri.values)
@@ -94,7 +90,7 @@ def test_sum_of_diff_eq_diff_of_sum():
def test_append():
- assert cl.load_sample('raa').append(cl.load_sample('raa')).sum() == 2*cl.load_sample('raa')
+ assert raa.append(raa).sum() == 2*raa
def test_assign_existing_col():
@@ -168,7 +164,6 @@ def test_arithmetic_2():
def test_rtruediv():
- raa = cl.load_sample('raa')
xp = cp.get_array_module(raa.values)
assert xp.nansum(abs(((1/raa)*raa).values[0,0] - raa.nan_triangle))< .00001
@@ -191,14 +186,13 @@ def test_grain_returns_valid_tri():
def test_base_minimum_exposure_triangle():
- raa = (cl.load_sample('raa').latest_diagonal*0+50000).to_frame().reset_index()
- raa['index'] = raa['index'].astype(str)
- cl.Triangle(raa, origin='index', columns=raa.columns[-1])
+ d = (raa.latest_diagonal*0+50000).to_frame().reset_index()
+ d['index'] = d['index'].astype(str)
+ cl.Triangle(d, origin='index', columns=d.columns[-1])
def test_origin_and_value_setters():
- raa = cl.load_sample('raa')
- raa2 = cl.load_sample('raa')
+ raa2 = raa.copy()
raa.columns = list(raa.columns)
raa.origin = list(raa.origin)
assert np.all((np.all(raa2.origin == raa.origin),
@@ -236,19 +230,17 @@ def test_valdev3():
#def test_valdev4():
# # Does not work with pandas 0.23, consider requiring only pandas>=0.24
-# raa = cl.load_sample('raa')
+# raa = raa
# np.testing.assert_array_equal(raa.dev_to_val()[raa.dev_to_val().development>='1989'].values,
# raa[raa.valuation>='1989'].dev_to_val().values)
def test_valdev5():
- raa = cl.load_sample('raa')
xp = cp.get_array_module(raa.values)
xp.testing.assert_array_equal(raa[raa.valuation>='1989'].latest_diagonal.values,
raa.latest_diagonal.values)
def test_valdev6():
- raa = cl.load_sample('raa')
xp = cp.get_array_module(raa.values)
xp.testing.assert_array_equal(raa.grain('OYDY').latest_diagonal.values,
raa.latest_diagonal.grain('OYDY').values)
@@ -282,7 +274,7 @@ def test_commutative():
xp.nan_to_num(full.val_to_dev().grain('OYDY').values), atol=1e-5)
def test_broadcasting():
- t1 = cl.load_sample('raa')
+ t1 = raa
t2 = tri
assert t1.broadcast_axis('columns', t2.columns).shape[1] == t2.shape[1]
assert t1.broadcast_axis('index', t2.index).shape[0] == t2.shape[0]
@@ -307,32 +299,28 @@ def test_exposure_tri():
assert x == y
def test_jagged_1_add():
- raa = cl.load_sample('raa')
raa1 = raa[raa.origin<='1984']
raa2 = raa[raa.origin>'1984']
assert raa2 + raa1 == raa
assert raa2.dropna() + raa1.dropna() == raa
def test_jagged_2_add():
- raa = cl.load_sample('raa')
raa1 = raa[raa.development<=48]
raa2 = raa[raa.development>48]
assert raa2 + raa1 == raa
assert raa2.dropna() + raa1.dropna() == raa
def test_df_period_input():
- raa = cl.load_sample('raa').latest_diagonal
- df = raa.to_frame().reset_index()
- assert cl.Triangle(df, origin='index', columns=df.columns[-1]) == raa
+ d = raa.latest_diagonal
+ df = d.to_frame().reset_index()
+ assert cl.Triangle(df, origin='index', columns=df.columns[-1]) == d
def test_trend_on_vector():
- raa = cl.load_sample('raa').latest_diagonal
- assert raa.trend(.05, axis=2).to_frame().astype(int).iloc[0,0]==29216
+ d = raa.latest_diagonal
+ assert d.trend(.05, axis=2).to_frame().astype(int).iloc[0,0]==29216
def latest_diagonal_val_to_dev():
- raa = cl.load_sample('raa')
assert raa.latest_diagonal.val_to_dev()==raa[raa.valuation==raa.valuation_date]
def vector_division():
- raa = cl.load_sample('raa')
raa.latest_diagonal/raa
diff --git a/docs/modules/triangle.rst b/docs/modules/triangle.rst
index da46a6ad..4a926c97 100644
--- a/docs/modules/triangle.rst
+++ b/docs/modules/triangle.rst
@@ -31,7 +31,7 @@ index, columns, origin, development.
``development`` (axis 3):
Development represents the development age or date of your triangle.
- Valuation Month, Valuation Year, Valuation Quarter in a are good choices.
+ Valuation Month, Valuation Year, Valuation Quarter are good choices.
Despite this structure, you interact with it in the style of pandas. You would
use ``index`` and ``columns`` in the same way you would for a pandas DataFrame.
diff --git a/docs/tutorials/stochastic-tutorial.ipynb b/docs/tutorials/stochastic-tutorial.ipynb
index a8766a23..74f3dc81 100644
--- a/docs/tutorials/stochastic-tutorial.ipynb
+++ b/docs/tutorials/stochastic-tutorial.ipynb
@@ -75,7 +75,9 @@
{
"cell_type": "code",
"execution_count": 3,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"mack = cl.MackChainladder().fit(tri['CumPaidLoss'])"
@@ -278,10 +280,10 @@
"
Method: | Least Squares | F-statistic: | 2887. | \n",
"\n",
"\n",
- " Date: | Sat, 04 Jul 2020 | Prob (F-statistic): | 1.60e-11 | \n",
+ " Date: | Sat, 11 Jul 2020 | Prob (F-statistic): | 1.60e-11 | \n",
"
\n",
"\n",
- " Time: | 10:02:44 | Log-Likelihood: | -107.89 | \n",
+ " Time: | 20:59:21 | Log-Likelihood: | -107.89 | \n",
"
\n",
"\n",
" No. Observations: | 9 | AIC: | 217.8 | \n",
@@ -327,8 +329,8 @@
"Dep. Variable: y R-squared (uncentered): 0.997\n",
"Model: WLS Adj. R-squared (uncentered): 0.997\n",
"Method: Least Squares F-statistic: 2887.\n",
- "Date: Sat, 04 Jul 2020 Prob (F-statistic): 1.60e-11\n",
- "Time: 10:02:44 Log-Likelihood: -107.89\n",
+ "Date: Sat, 11 Jul 2020 Prob (F-statistic): 1.60e-11\n",
+ "Time: 20:59:21 Log-Likelihood: -107.89\n",
"No. Observations: 9 AIC: 217.8\n",
"Df Residuals: 8 BIC: 218.0\n",
"Df Model: 1 \n",
@@ -393,7 +395,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "c:\\users\\jboga\\onedrive\\documents\\github\\chainladder-python\\chainladder\\utils\\weighted_regression.py:49: RuntimeWarning: invalid value encountered in true_divide\n",
+ "c:\\users\\jboga\\onedrive\\documents\\github\\chainladder-python\\chainladder\\utils\\weighted_regression.py:51: RuntimeWarning: invalid value encountered in true_divide\n",
" (xp.nansum(w*x*x, axis)-xp.nanmean(x, axis)*xp.nansum(w*x, axis)))\n"
]
}
@@ -420,7 +422,9 @@
{
"cell_type": "code",
"execution_count": 9,
- "metadata": {},
+ "metadata": {
+ "collapsed": true
+ },
"outputs": [],
"source": [
"dev = cl.Development(average='simple').fit(tri['CumPaidLoss'])"
@@ -1092,7 +1096,7 @@
"outputs": [
{
"data": {
- "image/png": "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\nJiQJwmjsSKYAAAAASUVORK5CYII=\n",
+ "image/png": "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\n8w8LihBxTHYAAAAASUVORK5CYII=\n",
"text/plain": [
"