From 72b5f62ef8f5953d01b78f9a51d8e651afcccf87 Mon Sep 17 00:00:00 2001 From: John Bogaardt Date: Sat, 26 Jan 2019 15:37:24 -0700 Subject: [PATCH] munich example for docs --- chainladder/core/base.py | 4 +- docs/auto_examples/auto_examples_jupyter.zip | Bin 12864 -> 15454 bytes docs/auto_examples/auto_examples_python.zip | Bin 7051 -> 8656 bytes .../images/sphx_glr_plot_munich_001.png | Bin 0 -> 36648 bytes .../thumb/sphx_glr_plot_munich_thumb.png | Bin 0 -> 18923 bytes docs/auto_examples/index.rst | 20 ++++ .../plot_bf_apriori_from_cl_codeobj.pickle | Bin 328 -> 328 bytes .../plot_development_periods_codeobj.pickle | Bin 420 -> 420 bytes .../plot_industry_to_company_codeobj.pickle | Bin 157 -> 157 bytes docs/auto_examples/plot_mack_codeobj.pickle | Bin 320 -> 320 bytes docs/auto_examples/plot_munich.ipynb | 54 ++++++++++ docs/auto_examples/plot_munich.py | 42 ++++++++ docs/auto_examples/plot_munich.py.md5 | 1 + docs/auto_examples/plot_munich.rst | 92 ++++++++++++++++++ docs/auto_examples/plot_munich_codeobj.pickle | Bin 0 -> 533 bytes .../plot_triangle_from_pandas_codeobj.pickle | Bin 308 -> 308 bytes .../plot_triangle_slicing_codeobj.pickle | Bin 393 -> 393 bytes .../chainladder.Chainladder.examples | 18 ++++ .../chainladder.Development.examples | 18 ++++ .../chainladder.MunichAdjustment.examples | 22 +++++ .../chainladder.load_dataset.examples | 18 ++++ docs/themes/scikit-learn/layout.html | 4 +- examples/plot_munich.py | 42 ++++++++ 23 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 docs/auto_examples/images/sphx_glr_plot_munich_001.png create mode 100644 docs/auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png create mode 100644 docs/auto_examples/plot_munich.ipynb create mode 100644 docs/auto_examples/plot_munich.py create mode 100644 docs/auto_examples/plot_munich.py.md5 create mode 100644 docs/auto_examples/plot_munich.rst create mode 100644 docs/auto_examples/plot_munich_codeobj.pickle create mode 100644 examples/plot_munich.py diff --git a/chainladder/core/base.py b/chainladder/core/base.py index b1fe2fa9..8110a76b 100644 --- a/chainladder/core/base.py +++ b/chainladder/core/base.py @@ -618,11 +618,11 @@ def complete_date_range(origin_date, development_date, ''' Determines origin/development combinations in full. Useful for when the triangle has holes in it. ''' origin_unique = \ - pd.PeriodIndex(start=origin_date.min(), + pd.period_range(start=origin_date.min(), end=origin_date.max(), freq=origin_grain).to_timestamp() development_unique = \ - pd.PeriodIndex(start=origin_date.min(), + pd.period_range(start=origin_date.min(), end=development_date.max(), freq=development_grain).to_timestamp() development_unique = TriangleBase.period_end(development_unique) diff --git a/docs/auto_examples/auto_examples_jupyter.zip b/docs/auto_examples/auto_examples_jupyter.zip index 02914ffe20c85d4a7868211088b25dd39bd37751..4e00220202a6e41a54886505e54de5f654ef92bf 100644 GIT binary patch delta 1311 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 z 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 + +.. only:: html + + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png + + :ref:`sphx_glr_auto_examples_plot_munich.py` + +.. raw:: html + + + + +.. toctree:: + :hidden: + + /auto_examples/plot_munich .. raw:: html
diff --git a/docs/auto_examples/plot_bf_apriori_from_cl_codeobj.pickle b/docs/auto_examples/plot_bf_apriori_from_cl_codeobj.pickle index 8125c5f57d76e8ecb6f96270e9a1c923f93a4920..30e4104b6a30770be8daf94ea88077b3bc1bea15 100644 GIT binary patch delta 123 zcmX@Xbb`sHfn};KBLf)JPSNP$Db6d_%gM}3Ey&3)nF11F$xF;lozlYr7wlon%}*)K z0gAB~rzR%l7v)X#_nr99ZQ@B&75?NLy`22Sl=zgylEmUvun8H=Jv_)_lMNUp0Gd-R AYXATM delta 140 zcmX@Xbb`shfn};KBLf)JPSNP$PtMWH$xlp)Pf09EEKV(%0up4&OUzB3(!+xy(ZiOT zpHi9w6z5LPNX*R3NlZyeEt=@!tI1QGSFD$lnU`9SlMgl^gSm$T&d*@&VJ}WiOv*3H Qn|RrB;zTzV@zPQ~0GD7hZvX%Q diff --git a/docs/auto_examples/plot_development_periods_codeobj.pickle b/docs/auto_examples/plot_development_periods_codeobj.pickle index 37139c905ade0f4682f17cacb66aabb40de26a94..d63412f3da7cb5668188f6bf96fa568e273a0295 100644 GIT binary patch delta 121 zcmZ3&yoA}Hfo1AUMg}mboubjhot&c=kXewLlbM$~1th?dmzbM6rH2D1IMFO=GApB* zDt~DYA5g7JYFTPdenD<(UI|Ef26GQLlF-CP5k}$3HjIXh;uEJCGD=T8VKsRHBMSg) Ca40YU delta 119 zcmZ3&yoA}Tfo1AUMg}mboubjhmz<;Ll3JFUlV6aVnpZLfB*v1Ln43DKhZ{+JqCwJR zGe&(z{>f>KR*b?ECs;6wPiA5?l$S2;;RYHJkXewLlbM$a(x1WH!vW(@?qQSw0N;Bi AmH+?% diff --git a/docs/auto_examples/plot_industry_to_company_codeobj.pickle b/docs/auto_examples/plot_industry_to_company_codeobj.pickle index 171021bc80d3e59cc7abfdac5fc58ef6cf179fa3..fb2deb23b9b9521a65a88e5471cd12f26012bef1 100644 GIT binary patch literal 157 zcmZo*nL3F90&1sd^zbF;=s9O3X6EH2rlh16O#z9q1_-E~qA@W+RJ4aBFEKZDN)Jy?equ^|N@7W3acap#Gi@ur;>5eUjNFsC84VfvC(d$U6rLDw#Ufr>ss{j;$#*^3r6mV2OSvsC&ueD3Qz1eWDzed)dK*I%LuCg diff --git a/docs/auto_examples/plot_munich.ipynb b/docs/auto_examples/plot_munich.ipynb new file mode 100644 index 00000000..a79a2f27 --- /dev/null +++ b/docs/auto_examples/plot_munich.ipynb @@ -0,0 +1,54 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Munich Adjustment Example\n\n\nThis example demonstrates how to adjust LDFs by the relationship between Paid\nand Incurred using the MunichAdjustment.\n.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import chainladder as cl\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nsns.set_style('whitegrid')\nsns.set_palette('muted')\n\n# Load data\nmcl = cl.load_dataset('mcl')\n# Volume weighted (default) LDFs\ndev = cl.Development().fit_transform(mcl)\n# Traditional Chainladder\ncl_traditional = cl.Chainladder().fit(dev)\n# Munich Adjustment\ndev_munich = cl.MunichAdjustment(paid_to_incurred={'paid':'incurred'}).fit_transform(dev)\ncl_munich = cl.Chainladder().fit(dev_munich)\n\n# Plot data\nfig, (ax, ax2) = plt.subplots(ncols=2, sharex=True, figsize=(10,5))\nplot1_data = cl_munich.ultimate_['paid'].to_frame()\nplot1_data.columns = ['Paid Ultimate']\nplot1_data['Incurred Ultimate'] = cl_munich.ultimate_['incurred'].to_frame()\nplot2_data = (cl_munich.ultimate_['paid']/cl_munich.ultimate_['incurred']).to_frame()\nplot2_data.columns = ['Munich']\nplot2_data['Traditional'] = (cl_traditional.ultimate_['paid']/cl_traditional.ultimate_['incurred']).to_frame()\nplot1_data.plot(kind='bar', ax=ax)\nax.set_ylabel('Ultimate')\nax.set_xlabel('Accident Year')\nax.set_title('Munich Chainladder')\nplot2_data.plot(kind='bar', ax=ax2, ylim=(0,1.25))\nax2.set_title('P/I Ratio Comparison')\nax2.set_xlabel('Accident Year')\ng = plt.ylabel('Paid Ultimate / Incurred Ultimate')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/docs/auto_examples/plot_munich.py b/docs/auto_examples/plot_munich.py new file mode 100644 index 00000000..fa771e11 --- /dev/null +++ b/docs/auto_examples/plot_munich.py @@ -0,0 +1,42 @@ +""" +========================= +Munich Adjustment Example +========================= + +This example demonstrates how to adjust LDFs by the relationship between Paid +and Incurred using the MunichAdjustment. +. +""" + +import chainladder as cl +import seaborn as sns +import matplotlib.pyplot as plt +sns.set_style('whitegrid') +sns.set_palette('muted') + +# Load data +mcl = cl.load_dataset('mcl') +# Volume weighted (default) LDFs +dev = cl.Development().fit_transform(mcl) +# Traditional Chainladder +cl_traditional = cl.Chainladder().fit(dev) +# Munich Adjustment +dev_munich = cl.MunichAdjustment(paid_to_incurred={'paid':'incurred'}).fit_transform(dev) +cl_munich = cl.Chainladder().fit(dev_munich) + +# Plot data +fig, (ax, ax2) = plt.subplots(ncols=2, sharex=True, figsize=(10,5)) +plot1_data = cl_munich.ultimate_['paid'].to_frame() +plot1_data.columns = ['Paid Ultimate'] +plot1_data['Incurred Ultimate'] = cl_munich.ultimate_['incurred'].to_frame() +plot2_data = (cl_munich.ultimate_['paid']/cl_munich.ultimate_['incurred']).to_frame() +plot2_data.columns = ['Munich'] +plot2_data['Traditional'] = (cl_traditional.ultimate_['paid']/cl_traditional.ultimate_['incurred']).to_frame() +plot1_data.plot(kind='bar', ax=ax) +ax.set_ylabel('Ultimate') +ax.set_xlabel('Accident Year') +ax.set_title('Munich Chainladder') +plot2_data.plot(kind='bar', ax=ax2, ylim=(0,1.25)) +ax2.set_title('P/I Ratio Comparison') +ax2.set_xlabel('Accident Year') +g = plt.ylabel('Paid Ultimate / Incurred Ultimate') diff --git a/docs/auto_examples/plot_munich.py.md5 b/docs/auto_examples/plot_munich.py.md5 new file mode 100644 index 00000000..97e4bb30 --- /dev/null +++ b/docs/auto_examples/plot_munich.py.md5 @@ -0,0 +1 @@ +242c50127e7690e88516533290192901 \ No newline at end of file diff --git a/docs/auto_examples/plot_munich.rst b/docs/auto_examples/plot_munich.rst new file mode 100644 index 00000000..67ba1e6e --- /dev/null +++ b/docs/auto_examples/plot_munich.rst @@ -0,0 +1,92 @@ +.. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` to download the full example code +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_auto_examples_plot_munich.py: + + +========================= +Munich Adjustment Example +========================= + +This example demonstrates how to adjust LDFs by the relationship between Paid +and Incurred using the MunichAdjustment. +. + + + + +.. image:: /auto_examples/images/sphx_glr_plot_munich_001.png + :class: sphx-glr-single-img + + + + + +.. code-block:: python + + + import chainladder as cl + import seaborn as sns + import matplotlib.pyplot as plt + sns.set_style('whitegrid') + sns.set_palette('muted') + + # Load data + mcl = cl.load_dataset('mcl') + # Volume weighted (default) LDFs + dev = cl.Development().fit_transform(mcl) + # Traditional Chainladder + cl_traditional = cl.Chainladder().fit(dev) + # Munich Adjustment + dev_munich = cl.MunichAdjustment(paid_to_incurred={'paid':'incurred'}).fit_transform(dev) + cl_munich = cl.Chainladder().fit(dev_munich) + + # Plot data + fig, (ax, ax2) = plt.subplots(ncols=2, sharex=True, figsize=(10,5)) + plot1_data = cl_munich.ultimate_['paid'].to_frame() + plot1_data.columns = ['Paid Ultimate'] + plot1_data['Incurred Ultimate'] = cl_munich.ultimate_['incurred'].to_frame() + plot2_data = (cl_munich.ultimate_['paid']/cl_munich.ultimate_['incurred']).to_frame() + plot2_data.columns = ['Munich'] + plot2_data['Traditional'] = (cl_traditional.ultimate_['paid']/cl_traditional.ultimate_['incurred']).to_frame() + plot1_data.plot(kind='bar', ax=ax) + ax.set_ylabel('Ultimate') + ax.set_xlabel('Accident Year') + ax.set_title('Munich Chainladder') + plot2_data.plot(kind='bar', ax=ax2, ylim=(0,1.25)) + ax2.set_title('P/I Ratio Comparison') + ax2.set_xlabel('Accident Year') + g = plt.ylabel('Paid Ultimate / Incurred Ultimate') + +**Total running time of the script:** ( 0 minutes 0.433 seconds) + + +.. _sphx_glr_download_auto_examples_plot_munich.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download + + :download:`Download Python source code: plot_munich.py ` + + + + .. container:: sphx-glr-download + + :download:`Download Jupyter notebook: plot_munich.ipynb ` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/auto_examples/plot_munich_codeobj.pickle b/docs/auto_examples/plot_munich_codeobj.pickle new file mode 100644 index 0000000000000000000000000000000000000000..9d666fd6983b733f278aef9a8d4e1034522e6590 GIT binary patch literal 533 zcmb7>!A`^=5QdGeUENk!vsVuuJ@F1kuRcRV3kfw-AZ5m+2NNHFBfhV&WldLmSx(Fc z|NKA0*Xnz7ezsqq;mO~&z+UBt1Y>)tF(kIqyqCe3bMA}Y2!e!L#XAjL2ss2_O}KW- z3>Z{Feiu8wk?vacEZ)iCp{=^`cmKG$JnpB~swBU4+A$}wwj3m)OsS&0oTI2*JINa} z=nz%gsEWp5xTpn39}D^4wmFD|LfNu2@`V#!O)O`X!ii4g5!%gs+I z1xoj@7pEpBMOMXx9|F(p2^xD2E{gSm$T&d*@&VJk??OGzxA QlEI!KGI5sSWCKPP0MBJG_5c6? delta 122 zcmdnOw1vs3fn};DBLf)JPSNP$E=bWUN=;0OPcAN-0uo@!OUzB3(!&84>|x8zPbtj- zim??W=A|SSPjri#%*d$EC@^uJk&;Mh4{vc^v0ia%NqlihB~TgAkPPM?PPo8i1x677 D%SPL^aeWRWc`)dK**FA3`a diff --git a/docs/modules/generated/chainladder.Chainladder.examples b/docs/modules/generated/chainladder.Chainladder.examples index 22cf5656..5c6be769 100644 --- a/docs/modules/generated/chainladder.Chainladder.examples +++ b/docs/modules/generated/chainladder.Chainladder.examples @@ -56,3 +56,21 @@ Examples using ``chainladder.Chainladder`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py` + +.. raw:: html + +
+ +.. only:: html + + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png + + :ref:`sphx_glr_auto_examples_plot_munich.py` + +.. raw:: html + +
+ +.. only:: not html + + * :ref:`sphx_glr_auto_examples_plot_munich.py` diff --git a/docs/modules/generated/chainladder.Development.examples b/docs/modules/generated/chainladder.Development.examples index 9e34fcb3..cc058189 100644 --- a/docs/modules/generated/chainladder.Development.examples +++ b/docs/modules/generated/chainladder.Development.examples @@ -38,3 +38,21 @@ Examples using ``chainladder.Development`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_mack.py` + +.. raw:: html + +
+ +.. only:: html + + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png + + :ref:`sphx_glr_auto_examples_plot_munich.py` + +.. raw:: html + +
+ +.. only:: not html + + * :ref:`sphx_glr_auto_examples_plot_munich.py` diff --git a/docs/modules/generated/chainladder.MunichAdjustment.examples b/docs/modules/generated/chainladder.MunichAdjustment.examples index e69de29b..a5fc4bc2 100644 --- a/docs/modules/generated/chainladder.MunichAdjustment.examples +++ b/docs/modules/generated/chainladder.MunichAdjustment.examples @@ -0,0 +1,22 @@ + + +Examples using ``chainladder.MunichAdjustment`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. raw:: html + +
+ +.. only:: html + + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png + + :ref:`sphx_glr_auto_examples_plot_munich.py` + +.. raw:: html + +
+ +.. only:: not html + + * :ref:`sphx_glr_auto_examples_plot_munich.py` diff --git a/docs/modules/generated/chainladder.load_dataset.examples b/docs/modules/generated/chainladder.load_dataset.examples index 454a5296..75faf4db 100644 --- a/docs/modules/generated/chainladder.load_dataset.examples +++ b/docs/modules/generated/chainladder.load_dataset.examples @@ -92,3 +92,21 @@ Examples using ``chainladder.load_dataset`` .. only:: not html * :ref:`sphx_glr_auto_examples_plot_bf_apriori_from_cl.py` + +.. raw:: html + +
+ +.. only:: html + + .. figure:: /auto_examples/images/thumb/sphx_glr_plot_munich_thumb.png + + :ref:`sphx_glr_auto_examples_plot_munich.py` + +.. raw:: html + +
+ +.. only:: not html + + * :ref:`sphx_glr_auto_examples_plot_munich.py` diff --git a/docs/themes/scikit-learn/layout.html b/docs/themes/scikit-learn/layout.html index 10d510b1..166a677a 100644 --- a/docs/themes/scikit-learn/layout.html +++ b/docs/themes/scikit-learn/layout.html @@ -138,8 +138,8 @@
diff --git a/examples/plot_munich.py b/examples/plot_munich.py new file mode 100644 index 00000000..fa771e11 --- /dev/null +++ b/examples/plot_munich.py @@ -0,0 +1,42 @@ +""" +========================= +Munich Adjustment Example +========================= + +This example demonstrates how to adjust LDFs by the relationship between Paid +and Incurred using the MunichAdjustment. +. +""" + +import chainladder as cl +import seaborn as sns +import matplotlib.pyplot as plt +sns.set_style('whitegrid') +sns.set_palette('muted') + +# Load data +mcl = cl.load_dataset('mcl') +# Volume weighted (default) LDFs +dev = cl.Development().fit_transform(mcl) +# Traditional Chainladder +cl_traditional = cl.Chainladder().fit(dev) +# Munich Adjustment +dev_munich = cl.MunichAdjustment(paid_to_incurred={'paid':'incurred'}).fit_transform(dev) +cl_munich = cl.Chainladder().fit(dev_munich) + +# Plot data +fig, (ax, ax2) = plt.subplots(ncols=2, sharex=True, figsize=(10,5)) +plot1_data = cl_munich.ultimate_['paid'].to_frame() +plot1_data.columns = ['Paid Ultimate'] +plot1_data['Incurred Ultimate'] = cl_munich.ultimate_['incurred'].to_frame() +plot2_data = (cl_munich.ultimate_['paid']/cl_munich.ultimate_['incurred']).to_frame() +plot2_data.columns = ['Munich'] +plot2_data['Traditional'] = (cl_traditional.ultimate_['paid']/cl_traditional.ultimate_['incurred']).to_frame() +plot1_data.plot(kind='bar', ax=ax) +ax.set_ylabel('Ultimate') +ax.set_xlabel('Accident Year') +ax.set_title('Munich Chainladder') +plot2_data.plot(kind='bar', ax=ax2, ylim=(0,1.25)) +ax2.set_title('P/I Ratio Comparison') +ax2.set_xlabel('Accident Year') +g = plt.ylabel('Paid Ultimate / Incurred Ultimate')