{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Neural Networks #\n", "\n", "As outlined in [Carreau and Bengio (2009)](references.ipynb), the parameters of the Phat distribution can also be fit utilizing a simple neural network. For a univariate model, the need for such a structure may not be obvious, but the structure can be built upon to add additional free paramters (such as the mixture weights between the Carbens) and also conditional models with exogeneous variables.\n", "\n", "First, we will demonstrate the technique simply on a Gaussian distribution. \n", "\n", "**Tensorflow** is required." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fitting a Standard Gaussian ##\n", "\n", "A conditional density model is estimated by providing one or many independent variables, $X$, and a dependent variable, $Y$. In our case, we are looking to fit a univariate independent variable. In Tensorflow, we must provide both $X$ and $Y$ input tensors, so to accomplish this we can simply set $X=0$ for every sample of $Y$:\n", "\n", "$$\n", "X_i = 0; i = 1 ... n\n", "\\\\Y_i = \\text{independent variable}\n", "$$\n", "\n", "In this example, we generate 100,000 samples from a standard Gaussian and fit the via the negative log-likelihood. `phat-tails` has a custom `DataSplit` class we can use to split the data for training purposes." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "import seaborn as sns; sns.set(style = 'whitegrid')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-01-09 05:21:37.355360: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" ] } ], "source": [ "import numpy as np\n", "import scipy.stats as scist\n", "import matplotlib.pyplot as plt\n", "\n", "import phat as ph\n", "\n", "n = 100000\n", "y_data = scist.norm(0, 1).rvs(size=n)\n", "data = ph.DataSplit(y_data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we can see the kernel density of our samples looking clearly like the PDF of the Gaussian" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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SGaEz+x3P7+xFovsma+rmXk1Q78rLTTbIzH2wgsv8PXXX7Njxw4A3njjDc6dO8fTTz895/O++uorPv7443hUUUQk5dxxxx3ccsstM8rj1vO/3ndMWlpaxOctX76cO+64g4yMjHltLyIi32ZuIBBg+fLl1308buGflZXFmTNnwvd9Ph9WqzXi82666abrfmuJiMjcvve97836WNxO+P785z/n1KlTfP7553zzzTe89dZb2Gy2eP15ERG5Rlx7/jt27KCqqopAIMADDzzA3XffHa8/LyIi14jbCV8REUkeusJXRMSAFP4iIgak8BcRMSCFv4iIARk6/D/44APy8/MTXY2k4na7KS8vp6ysjN/85jcMDQ0lukpJQYsSzu7AgQM4HA4cDgf79u1LdHWS1p/+9Cfq6+sTXY0ww4b/N998w+7duwkEAomuSlKpq6tjz549HDt2DKfTyTPPPJPoKiWcERclnK++vj7eeecdjh49SmdnJ++//z4nTpxIdLWSzqlTpzh69GiiqzGNYcO/ubmZhx56KNHVSCqTk5P8/ve/Jy8vD4A777yTixcvJrhWiXftooTLli0LL0ooYLFYqK+vJzMzk4yMDG677TaGh4cTXa2k8u9//5vW1la2bduW6KpMY8jwP3nyJBMTE5SWlia6KkklMzOTsrJvfynpypUrHDhwgF/+8pcJrlXi+Xw+LBZL+L7VasXr9SawRsnj9ttvp6CgAICBgQF6enooLi5ObKWSzB/+8Ad27NjB97///URXZZqU/hnHv//97zz77LPTym699VbGxsZ4+eWXE1OpJDFb27z88stMTk5SX1/P1NQU1dXVCaph8ljoooRG8sknn1BdXc0TTzzBj3/840RXJ2m88cYbrF69mqKiIt58881EV2caw13h+8Ybb/DCCy+EV7r78MMPycvL47XXXmPFihUJrl3ijY+Ps337dlauXElLSwuZmZmJrlLCHT16lDNnzrBnzx4ADh48SCgUivhbFEbhdrupra2loaEBh8OR6Ookld/+9reMjIyQnp7O5cuX+frrr9m0aRMNDQ2Jrprxwv+77rzzTj766KNEVyNp/O53v+OHP/whu3fvVu/2/3i9XioqKujo6ODmm29my5YtPP3001qbCrh48SK/+tWvaG1tpaioKNHVSWpvvvkmp0+fprm5OdFVAVJ82Eei88EHH3Dy5El+8pOfsGnTJuDb8e2//OUvia1YgmlRwtm9+OKL+P3+aYG2ZcsWKioqElgrmQ/D9/xFRIzIkLN9RESMTuEvImJACn8REQNS+IuIGJDCX0TEgBT+IiIGpPAXETEghb+IiAH9LyALcTKtmd2YAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(y_data, bins=100)\n", "plt.rcParams['patch.edgecolor'] = 'C0'\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have built a very simple neural network of `DN` class that takes in both $X$ and $Y$ variables, passes $X$ through 1 hidden layer (utilizing a `tanh` activation), then to an intermediate layer with two nodes, $\\mu$ and $\\sigma$, the parameters of the Normal distribution. $\\sigma$ is then passed through a customized `nnelu` activation, which is simply the `relu` with a restriciton to only positive numbers.\n", "\n", "The loss function is the Gaussian negative log-likelihood." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model\"\n", "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_1 (InputLayer) [(None, 1)] 0 \n", "__________________________________________________________________________________________________\n", "h1 (Dense) (None, 200) 400 input_1[0][0] \n", "__________________________________________________________________________________________________\n", "mu (Dense) (None, 1) 201 h1[0][0] \n", "__________________________________________________________________________________________________\n", "sigma (Dense) (None, 1) 201 h1[0][0] \n", "__________________________________________________________________________________________________\n", "pvec (Concatenate) (None, 2) 0 mu[0][0] \n", " sigma[0][0] \n", "==================================================================================================\n", "Total params: 802\n", "Trainable params: 802\n", "Non-trainable params: 0\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "import tensorflow as tf\n", "from phat.learn.normnet import DN, gnll_loss\n", "\n", "dn = DN(neurons=200)\n", "lr = tf.keras.optimizers.schedules.ExponentialDecay(\n", " initial_learning_rate=1e-3,\n", " decay_steps=250,\n", " decay_rate=0.8\n", ")\n", "dn.compile(\n", " loss=gnll_loss, \n", " optimizer=tf.keras.optimizers.Adam(learning_rate=lr),\n", " metrics=['mean', 'std']\n", ")\n", "dn.build_graph().summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see the graph visually via `plot_model`" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dn.plot_model()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-01-09 05:21:38.797366: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)\n" ] } ], "source": [ "stop_loss = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=2, verbose=0)\n", "history = dn.fit(\n", " data.train, epochs=3, \n", " validation_data=data.test, \n", " callbacks=[stop_loss], batch_size=32, verbose=0\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model minimized the loss almost immediately, resulting in the parameters below. They are shown next to return values from `scipy`'s fit function utilizing the Maximum Likelihood Estimate (MLE):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 meanstd
ANN0.00071.0004
MLE-0.00060.9979
\n" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "mean, std = dn.predict(np.zeros(1))[0]\n", "m, s = scist.norm.fit(data.raw.y)\n", "\n", "df = pd.DataFrame([[mean, std], [m, s]], index=['ANN', 'MLE'], columns=['mean', 'std'])\n", "df.style.format({'mean': '{:.4f}', 'std': '{:.4f}'})" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/markdown": [ "The fit for both mean and standard deviation is fairly close, though we should be cognizant that, in terms of daily returns, the delta of 0.0013 still translates to a 0.32% CAGR." ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import Markdown as md\n", "\n", "text = \"The fit for both mean and standard deviation is fairly close,\"\n", "text += \" though we should be cognizant that, in terms of daily returns,\"\n", "text += f' the delta of {mean - m:.4f} '\n", "text += f' still translates to a {(1 + (mean-m)/100)**252-1:.2%} CAGR.'\n", "\n", "md(text)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fitting S&P 500 Daily Returns ##\n", "\n", "We will repeat the same process now for S&P 500 daily returns." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[*********************100%***********************] 1 of 1 completed\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import yfinance as yf\n", "\n", "sp = yf.download('^GSPC')\n", "sp_rets = sp.Close.pct_change()[1:]\n", "sp_rets.plot()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 00064: early stopping\n" ] } ], "source": [ "data = ph.DataSplit(sp_rets.values)\n", "\n", "dn = DN()\n", "lr = tf.keras.optimizers.schedules.ExponentialDecay(\n", " initial_learning_rate=1e-3,\n", " decay_steps=100,\n", " decay_rate=0.9\n", ")\n", "dn.compile(\n", " loss=gnll_loss, \n", " optimizer=tf.keras.optimizers.Adam(learning_rate=lr),\n", " metrics=['mean', 'std']\n", ")\n", "stop_loss = tf.keras.callbacks.EarlyStopping(\n", " monitor='val_loss', min_delta=0, \n", " patience=20, verbose=1, mode='auto'\n", ")\n", "history = dn.fit(\n", " data.train, epochs=100, \n", " validation_data=data.test, \n", " callbacks=[stop_loss], batch_size=32, verbose=0\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 meanstd
ANN0.000350.0133
MLE0.000370.0131
\n" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean, std = dn.predict(np.zeros(1))[0]\n", "m, s = scist.norm.fit(sp_rets)\n", "\n", "df = pd.DataFrame([[mean, std], [m, s]], index=['ANN', 'MLE'], columns=['mean', 'std'])\n", "df.style.format({'mean': '{:.5f}', 'std': '{:.4f}'})" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/markdown": [ " In this instance, the delta between the estimates accounts for just 0.004% CAGR." ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import Markdown as md\n", "\n", "diff = df['mean'].diff().iloc[1]\n", "text = ' In this instance, the delta between the estimates'\n", "text += f' accounts for just {(1 + diff/100)**252-1:.3%} CAGR.'\n", "\n", "md(text)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A visualation of the gradient descent (towargs the mean) is avaible via `loss_progress`." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib\n", "from IPython.core.display import HTML\n", "\n", "matplotlib.use(\"Agg\")\n", "\n", "Writer = matplotlib.animation.writers['ffmpeg']\n", "writer = Writer(fps=15, metadata=dict(artist='rskene'), bitrate=1800)\n", "\n", "anime = dn.loss_progress(history)\n", "anime.save('nnet_norm_fit_sp.mp4', writer=writer)\n", "\n", "HTML(anime.to_html5_video())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fitting the Phat #\n", "\n", "## Failure of a Standard Loss Function ##\n", "\n", "Of course, daily returns on the S&P 500 are not Guassian ... or, at best, if they are Gaussian it means we are living in a one-in-$10^{100+}$ universe where a dozen or more six sigma events have occured in the past 100 years. Fans of the Many Worlds interpretation would agree this is entirely possible.\n", "\n", "Nevertheless, we will explore the fit of the Phat distribution, utilizing a network similar to that employed in [Carreau and Bengio (2009)](references.ipynb). We will first test our model against a generative version of Phat, with parameters chosen to mirror that of daily S&P 500 returns.\n", "\n", "We will use the negative log-likelihood of the entire Phat distribution, a standard loss function used for most probabilitiy distributions." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "genmod = ph.Phat(.0003, .0032, .17, .19)\n", "\n", "n = 60000\n", "y = genmod.rvs(size=n, seed=16433)\n", "data = ph.DataSplit(y)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/by/3p7tzvtd0_9cn60snk5cv8g40000gn/T/ipykernel_73140/2489721303.py:7: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n", " plt.show()\n" ] }, { "data": { "image/png": "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L7NAR5qAAGWxkD179iia353qlofCV2h1XMvKygEAO3fuQHhoIADH86gmfX81aV+9icdVHzXhuF7It3QhLCku0X1/a8LxJCIi8kXMBaENtwGIoUOHYujQoQ7TSktL0adPH5SXlyMwMBDZ2dkOLRrciYmJQXZ2tu1vpcsDQFxcHEJDQxUtIyY1NRXx8fGarIuqaHlcg5ZlAiUV6NatO+rWDgFQGYBYfAYAasz3x3NVHzyuOlh0GkDNuDazcgqApAyEhIbour/uztPi4mLNg/NEREREWlLVBSM4OBi9evXC8uXLAQDLli3DwIEDZS8/cOBAJCcno7y8HCdOnMDx48fRpUsXNUUhIiIiIiIi0hW7WmrDbQsIMTNmzMD06dPx0UcfoUmTJnjnnXcAAIsXL0ZWVhYmTZokuuyQIUOwa9cujBw5EgDw+uuvIywsTG1RqAYR6r5DREREREREvk91ACI2NhYLFy50mT527FiXaX369EGfPn1sf5tMJkybNg3Tpk1Tu3mqcRhyJCLfxLAoERERkTyqumAQERGRI4ZJiYiIiKQxAEFEREREREREumMAgoiIiIiIiEgAU9BpiwEIIiIiIiIiItIdAxBEREREREREpDsGIIiIiDzA4YGJiIiI5GEAgoiISAsmjoNBREREJIUBCPILjRuGAwACA/iAT0RERERE5I+CjC4AkRwzHuiLfcfOIyI8xOiiEBERERERkQpsAUF+ITIiFFd3aWp0MYiIiIiIiEglBiCIiIiIiIiISHcMQBAREXkgoDI3TXgoezUSERERSeHTEhERkQei64fj/pGd0a8ru4kRERERSWEAgoiIyEM3D2prdBGIiIhIF2ajC1CtsAsGERERERERkQSTyWR0EaoFBiCIiIiIiIiISHcMQBARERERERGR7hiAIL/XvX2U0UUgIiIiIiIiN5iEkvyWyWTC/00fjIZ1w4wuChEREREREbnBFhDk12KjIhAWyjgaka/p1KKW0UUgIiIi8ph1mO2QYFadtcCaGxERaW701Q3w3P1djC4GERERkUceHt0V44d0QFgIq85aYBiHiIg0FxRoQmREqNHFICIiIvJIYGAA6tdhl2+tMABBRERERERERLpjAIKIiIiIiIiIdMcABBERERERERHpjgEIIiIiIiIiItIdAxBEREREREREpDsGIIiIiIiIiIhIdwxAEBERkd9KT0/H+PHjMWTIEDz88MPIz893mScrKwv3338/Ro0ahVtuuQWbNm0CAJjNZrz11lsYMmQIhg0bhtTUVG8Xn4iIqEZhAIKIiIj81syZMzFu3DikpKQgLi4OCxYscJln9uzZuO6665CUlIS5c+fi6aefRnl5OVauXIm0tDQsX74cH374IaZPn46ysjID9oKIiKhmYACCiIiI/FJpaSm2bNmChIQEAMDo0aORkpLiMt9NN92ExMREAEDLli1RXFyMgoICrF27FsOGDUNAQABat26Npk2bYvv27V7dByIiopokyOgCEBEREamRm5uLiIgIBAVZHmeioqKQmZnpMt9NN91k+/f//vc/dOzYEXXq1EFWVhaio6Ntn0VFRSEjI0P/ghMREdVQDEAQERGRz1uxYgVmzZrlMK1Vq1Yu85lMJtF1fPnll1iyZAm++eYbAJYcEM4CAuQ3Dt2zZ4/seeViHgpXPCbCeFxc8Zi44jFxxWPiypvHxO8CENaHhZKSEk3XW1xcrOn6yILHVXs8pvrgcdUej6n2pI6p9XdRqFJdHQwdOhRDhw51mFZaWoo+ffqgvLwcgYGByM7OdmjRYG/27NlYu3Ytvv32WzRu3BgAEBMTg+zsbNs8Usvbsx7j9u3bIyQkRO0uudizZw/i4uI0W191wGMijMfFFY+JKx4TVzwmrrQ+JiUlJTh06JDo84jJ7GdPKpcuXcKhQ4eMLgYREZFPat++PerUqWN0MbzmwQcfRGJiIhITE/HRRx8hKysLM2bMcJjnyy+/RHJyMr744gvUrVvXNn3FihX48ccf8fHHH+P06dOYMGECVq5cibCwMMlt8lmEiIhImtjziN8FICoqKpCfn4/g4GDJZpZEREQ1idlsRmlpKWrXrq2oG4G/O3PmDKZPn47z58+jSZMmeOeddxAZGYnFixcjKysLTzzxBK666ipEREQ4BB8++eQTREdHY/bs2fj7778BAM8++ywGDBjgdpt8FiEiIhLm7nnE7wIQREREREREROR/as4rEiIiIiIiIiIyDAMQRERERERERKQ7BiCIiIiIiIiISHcMQBARERERERGR7hiAICIiIiIiIiLdMQBBRERERERERLpjAIKIiIiIiIiIdFfjAxDJyckYNmwYbrzxRnz77bdGF8dnXb58GSNGjMDp06cBABs3bkRiYiJuuukmzJs3zzbf/v37ceuttyIhIQHPP/88ysrKAADp6ekYP348hgwZgocffhj5+fkAgIsXL+LBBx/E0KFDMX78eGRnZ3t/5wzwwQcfYPjw4Rg+fDhmz54NgMdUC/Pnz8ewYcMwfPhwfPHFFwB4XLXy1ltvYfr06QC0O3YlJSWYOnUqhg4diltuuQVpaWnG7JwBJkyYgOHDh2PUqFEYNWoUdu7cKfp7pNU5TL6tpj2P6PVc4c/0fDbwV3r+rvs7PX6X/ZWev6n+avXq1Rg9ejSGDBmC1157DYAPXTvmGiwjI8N83XXXmXNzc835+fnmxMRE8+HDh40uls/ZsWOHecSIEebOnTubT506ZS4sLDQPGjTIfPLkSXNpaan5vvvuM69Zs8ZsNpvNw4cPN2/fvt1sNpvNzz77rPnbb781m81m84MPPmj+9ddfzWaz2fzBBx+YZ8+ebTabzeaZM2eaP/74Y7PZbDb//PPP5kmTJnl35wywYcMG85133mkuLi42l5SUmCdMmGBOTk7mMfXQv//+ax4zZoy5tLTUXFhYaL7uuuvM+/fv53HVwMaNG819+vQxT5s2zWw2a3fsPvvsM/OLL75oNpvN5s2bN5tvu+02b+2SoSoqKsz9+/c3l5aW2qaJ/R5peb8l31XTnkf0fK7wV3o/G/gjvX/X/Zlev8v+SO/fVH908uRJ84ABA8xnz541l5SUmMeOHWtes2aNz1w7NboFxMaNG9G3b1/Uq1cP4eHhSEhIQEpKitHF8jlLly7FjBkzEB0dDQDYtWsXWrZsiebNmyMoKAiJiYlISUnBmTNnUFRUhO7duwMARo8ejZSUFJSWlmLLli1ISEhwmA4Aa9asQWJiIgBgxIgR+Pvvv1FaWur9nfSiqKgoTJ8+HSEhIQgODkabNm1w/PhxHlMPXXXVVfj6668RFBSE8+fPo7y8HBcvXuRx9dCFCxcwb948PPTQQwCg6bFbs2YNRo4cCQDo3bs3cnNzkZ6e7uU99L6jR4/CZDJh4sSJGDlyJL755hvR3yMt77fku2ra84iezxX+Su9nA3+k9++6v9Lzd9kf6fmb6q9+//13DBs2DI0bN0ZwcDDmzZuHWrVq+cy1U6MDEFlZWYiKirL9HR0djczMTANL5Jtef/119OrVy/a32HFznh4VFYXMzEzk5uYiIiICQUFBDtOd1xUUFISIiAjk5OR4Y7cM065dO9tFfvz4cSxfvhwmk4nHVAPBwcF47733MHz4cFx99dU8VzXw0ksvYfLkyahbty4A1+vfk2MntK6MjAxv7ZphLl68iKuvvhoffvghvvzyS3z33XdIT0+Xda56cg6T76ppzyN6Plf4K72fDfyVnr/r/krP32V/pOdvqr86ceIEysvLcf/992PkyJFYtGiRT107NToAYTabXaaZTCYDSuJfxI6b0uliAgJqxml5+PBh3HfffZg2bRpatGjh8jmPqTpPPPEENm3ahLNnz+L48eMun/O4yvf999+jSZMmuPrqq23T9D521f2YAkCPHj0we/ZshIeHo0GDBrjtttvw3nvvucyn5lzl75p/qunfG8/zKt58NvAX3vxd93VG/C77Oj1/U/1VeXk5Nm3ahLfffhtLly7F7t27bfl27Bl1TII0WYufiomJwdatW21/Z2Vl2ZoDkriYmBicO3fO9rf1uDlPz87ORnR0NBo0aIDLly+jvLwcgYGBtumAJfp27tw5NG7cGGVlZbh8+TLq1avn7V3yutTUVDzxxBN47rnnMHz4cGzevJnH1ENpaWkoKSlBx44dUatWLdx0001ISUlBYGCgbR4eV2WWL1+O7OxsjBo1Cnl5eSgoKIDJZNLs2EVHRyM7OxstW7Z0WFd1t3XrVpSWltoeIM1mM2JjY2XdAzw5h8l31fTnEZ7nFno+G/gjvX/X/ZHev8v+SM/fVH/VqFEjXH311WjQoAEAYPDgwT517fhnqEsj/fr1w6ZNm5CTk4PCwkKsWrUKAwcONLpYPq9bt244duyYrXnPr7/+ioEDByI2NhahoaFITU0FACxbtgwDBw5EcHAwevXqheXLlztMB4BBgwZh2bJlACw31V69eiE4ONiQ/fKWs2fP4tFHH8WcOXMwfPhwADymWjh9+jReeOEFlJSUoKSkBH/++SfGjBnD4+qBL774Ar/++iuSkpLwxBNP4Prrr8esWbM0O3aDBg1CUlISAMsDRGhoKJo2ber9HfWyS5cuYfbs2SguLsbly5fx888/4+233xb8PdLy3kC+q6Y/j/A81//ZwB/p/bvuj/T+XfZHev6m+qvrrrsO69evx8WLF1FeXo5169ZhyJAhPnPtmMxC7StqkOTkZHz88ccoLS3FbbfdhokTJxpdJJ91/fXX4+uvv0azZv/fvh2iqh4FcQAei03MgsGsSzDYXINYXIH9L4hJ0CAirsAFqN0ViGaDXYyCxSCC3PbghZee594rft8O5jCHGX6cU47tdhuj0Sju93s0Go3o9XqRy+XieDxGv9+P2+0W1Wo1RqNR5PP5OJ/PkWVZXC6XKJVKMZ1Oo1gsxvV6jSzL4nQ6RaFQiMlkEuVy+adLTWo4HMZqtfrraWWr1YpKpeJM/9N8Pv+T8Dabzeh2u3r1Rdbrdez3+xiPxy87u/v9HoPBIA6HQ+Tz+RgOh1Gr1X661G8xm81is9nE8/mMdrsdnU7nn/PoVT3M7/aJ+0iKveJdpd4N3lXKuf7uUszld5Vypr6r5XIZi8UiHo9H1Ov16Pf7sdvtfsXd+fgAAgAAAEjvo79gAAAAAN9DAAEAAAAkJ4AAAAAAkhNAAAAAAMkJIAAAAIDkBBAAAABAcgIIAAAAIDkBBAAAAJDcFzgNfPCvdLOpAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2) = plt.subplots(1,2,figsize=(18,6))\n", "ax1.plot(data.train_raw.y)\n", "ax2.plot(data.test_raw.y)\n", "\n", "ax1.set_title('Training Set')\n", "ax2.set_title('Test Set')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We developed a second custom network for this process, `PhatNetBeta`, containing a few key changes.\n", "\n", "1. we reduced the nodes in the hidden layer to just one. the input values are all zero and so their weighting is valueless. the bias from the hidden layer is the only meaningful input to the parameter layer.\n", "2. the hidden layer has *no activation function*. the `x` values provided are all zero. They cannot be \"activated\".\n", "2. we have added two additional parameters, `shape_l` and `shape_r`, representing the tail indices of the left and right-tailed Pareto distributions incorporated in the Phat distribution.\n", "3. the loss function is now the negative log-likelihood of the Phat distribution (available as `BodyLoss`, referencing the fact that it over-fits the body of the distribution).\n", "4. the `PhatMetric` class instantiates a metric for any one of the Phat parameters in the body and in both tails (which tail must be specified).\n", "4. a number of operations were pushed lower-level for convenience" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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WbPIyspi7dq1fPPNN+Tn5xMTE0Npaam5DwcHB2JjY4mOjiY0NJSMjAySkpLM9SEhIXTr1o2xY8cSGBiIh4cHXbt2xd/f37wlNyQkBJPJRNeuXdm6dSuurq5WxX/z5k02btyIn58fTz31FH/5y1+Ij49n69atuLu7m9tlZGTwww8/WBww8lv//Oc/CQ8PJy8vD4Bx48axadMmm+bjTnNR1fnYvHkz77//vvmZdevWjd69exMUFETHjh3x8PDg73//O3379gVunVI9duxYvv32W7p27crx48f5+9//TkFBAS+99BIlJSXmeBo2bEhoaGi5k7FdXFzYsWMHrVu3Jjo6Gh8fH2JiYpgyZYr5wJvly5eb52bSpEmkpqZa9dxERERERB40BpM1b6AXERG5RyUkJGA0Gq06UKU6vPrqq8TFxVFcXMyZM2dwd3enUaNGFbbNzs6mSZMmABQWFlK/fn2L+ry8PBwcHKp0QnNubi7Ozs489NBDt21z5cqV28ZWHWyZC6jZ+SiTn59vcf3tDq7p06cPCQkJeHh4VNhPRkYGBoOBli1bVjmWitT29/V+FhISAvzfuxXl3qPvs4iISJ22Xge1iIiIVFGLFi0qrS9LoAHlEmiAxcrCSZMm3XG8CRMm4O/vD3DbZNh/qsmE4m/daS7Atvmoqt8mJCtKKB46dIg2bdpUOoetWrW661hERERERB5kSiqKiIjY4Nq1a5SWllJQUICbm1u19fvss8/esc1/JuXuBTU1FzXhwIEDREdH06lTJ3bv3k1iYqK9Q5IacPr0afbt22f+/OSTT9K1a1eLNqWlpaSmplJQUGB+L2b79u0JCAiwaJebm8u2bdssyvr27Yunp2cNRV89srKyOHHiBL169TKXHTx4kMaNG5dLlqenp/P999+bP3t7e9OlS5faClVERETuc0oqioiIWCk+Pp6dO3diMpl4++23CQ8PN68cvFtlWz3vFzU5FzXh5s2b7N+/nwMHDvDpp5/SunVre4ckNeC7775j1KhRrFmzhl69epV7V2leXh6xsbG89tprODg48NFHHxETE4O7uzupqak8+eST5rbu7u54e3szZswYbty4weLFi61aIWwv2dnZfPjhh8TGxhIeHm6RVPTz8yMyMpLQ0FD+3//7f+byRx99lB49enDmzBn++Mc/8tprrympKCIiIlZTUlFERMRKAwYM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/zshIiJSJ61XUlFERETETsqS4vo5JiIiIiL3mfV6p6KIiIiIiIiIiIjYRElFERERERERERERsYmSiiIiIiIiIiIiImITJRVFRERERERERETEJkoqioiIiIiIiIiIiE2UVBQRERERERERERGbKKkoIiIiIiIiIiIiNlFSUURERERERERERGyipKKIiIiIiIiIiIjYRElFERERERERERERsYmSiiIiIiIiIiIiImITJRVFRERERERERETEJkoqioiIiIiIiIiIiE2UVBQRERERERERERGbKKkoIiIiIiIiIiIiNlFSUURERERERERERGyipKKIiIiIiIiIiIjYRElFERERERERERERsYmSiiIiIiIiIiIiImITJRVFRERERERERETEJkoqioiIiIiIiIiIiE2UVBQRERERERERERGbKKkoIiIiIiIiIiIiNlFSUURERERERERERGyipKKIiIiIiIiIiIjYRElFERERERERERERsYmSiiIiIiIiIiIiImITJRVFRERERERERETEJkoqioiIiIiIiIiIiE2UVBQRERERERERERGbKKkoIiIiIiIiIiIiNlFSUURERERERERERGyipKKIiIiIiIiIiIjYxMneAYiIiIjUBRcuXGDFihUWZYcPHwbgww8/tCh/+OGHCQ8Pr7XYRERERERsZTCZTCZ7ByEiIiLyoCstLaVp06ZcvnyZevXq3bZdUVERr7zyCkuWLKnF6EREREREbLJe259FREREaoGTkxOhoaE4OjpSVFR02z+AESNG2DlaEREREZHKKakoIiIiUktCQ0MpKSmptE3Tpk35wx/+UEsRiYiIiIhUjZKKIiIiIrWke/fuNG/e/Lb1zs7OjB49GgcH/UQTERERkXubfrGKiIiI1BKDwcCoUaNu+07F4uJiQkNDazkqERERERHbKakoIiIiUosq2wLdpk0bAgICajkiERERERHbKakoIiIiUov8/Pzw9vYuV+7s7MzLL79sh4hERERERGynpKKIiIhILRs9enS5LdDFxcUMHz7cThGJiIiIiNhGSUURERGRWjZq1ChKS0vNnw0GA507d+bJJ5+0Y1QiIiIiItZTUlFERESklrVq1YouXbpgMBgAcHR01NZnEREREbmvKKkoIiIiYgdhYWE4OjoCcOPGDYYNG2bniERERERErKekooiIiIgdDBs2jJs3b2Iw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6W1JSUm4detWpROjPXr0wLZt22Bj89/W1NDXPSsrCwD0FkNJS0tDYWGhcgr0tGnT4ObmBn9/f6xatQpxcXEICQmBn58fXn75ZeV+fn5+GDduHO7cuVPt89S93jVN8l67dg2jR49G06ZNq92PiIiIqCHipCIRERFRDQIDAzFjxgyMGzcO33zzDTZt2oQDBw7gt99+g729PQBg6tSpGDx4MGbOnAlvb2+0bNkSAwYMQL9+/ZSViKdOnQoRwYABA3DgwAE4ODgoj2FjY4N169Zh0aJFeP7553H9+nXs379fud3U8a9fv45Tp07VyWIhixYtwu3bt3H16lW97bt27cLz3a5zxAAAIABJREFUzz+P/Px8PP300wgNDa1w3/Hjx+Mf//iH3raaXvejR4/ihx9+AACsWLECycnJ+P7773H8+HFkZ2cjICAAJSUlaNKkCQ4ePIiHHnoIixYtQu/evREQEID33ntPbwGbw4cP45dffsF3331X5XP85Zdf8H/+z/8BAOzduxfBwcFITk6usF9RURH27dsHf39/w19AIiIiogZEI+WvYk1EREQWpdFosGPHDjz33HNql9JoTZ06FQCwc+dOo++bmZmJCxcuoFOnTujYsWOl+6SmpsLFxQXAn0ey3X+UWmZmJmxsbPQms+bOnYuvv/4aRUVFSExMhLOzM5ycnMw2flZWVpXjVceU39cNGzbg3LlzWLNmjdGPBwApKSlo166d3jZDXndDXb9+HRqNBp06dapwW2FhIfbt24emTZvi6aefrtXj7Ny5E9u2bcPevXuNul9tfj+JiIiI6tBOHqlIREREZCBnZ2cMHTq02okt3YQfgEpPe3V2dtab8Lufm5tbtROApoxvyoSiqWbPno309HTExsaadP/7JxQBw153Q3Xu3LnSCUXgz0nFiIgIjBs3rlaPER8fj23btmH79u21GoeIiIioPuOkIhEREZHK8vLyUFJSgpycHLVLqTUbGxts2bIF69evR1RUlNrlGCUyMhIrVqyAVqs1eYzr169j5cqV+Prrr9GsWTMzVkdERERUv3BSkYiIiEhF27Ztw6FDhyAiePfdd3H69Gm1S6q1Jk2aYOPGjWjfvr3apRhl5MiRtZ4ItLe3x5YtW9C6dWszVUVERERUP5n+NSwRERER1dqECRMwfvx45ecmTZqoWI15VXWasTVzdXVVuwQiIiKiOsFJRSIiIiIVOTs7q10CEREREZHRePozERERERERERERGYWTikRERERE9UheXh4KCwvVLoOIiIioWjz9mYiIiIioHomIiICjoyO6d++OAQMGYMCAARg2bBj69esHW1tbtcsjIiIiAgBoRETULoKIiKix0Gg0GDx4MB588EHcu3cP6enpeOCBB+Dk5KR2aQ1ednY2WrRoUeN+J0+eBAAMHjzY0iU1eLt27cLgwYPRsWNHve0FBQWwsbGBvb29SpVZr5MnT+KRRx7BSy+9hKioKERGRuL06dPIz89HixYt4OXlBW9vbwwcOBDe3t546KGH1C6ZiIiIGqednFQkIiKqA2lpaThx4gQWLVqE9PR03Lt3D6WlpWjatCm8vLzw4IMPql1ig1VaWoqLFy/i8uXL8PHxwQMPPKB2SVbv1KlTSE5ORv/+/dGhQwe1y7E6Q4YMwcKFC5WfS0pKcOnSJURHRyv/RUVFoaioCM7OznjkkUcwbNgw+Pj4YODAgWjfvr2K1RMREVEjwUlFIiIiS0hISEBYWBiio6MRHh6OmJgYiAjc3d3h4+OjTAD07t0bGo1G7XIbrBMnTmDWrFm4ffs2AgICsGDBAtjY8JLRlpaZmYlFixYhKCgI48ePx4YNGzgxXseKi4tx9uxZJWeio6MRFxcHEYGrq6ty2rTu1OlWrVqpXTIRERFZF04qEhER1Vb5P+7Dw8Nx5MgRpKamonnz5ujfv7/yR/2TTz6JNm3aqF2uVcjLy0NAQABWr16NUaNGYcOGDejUqZPaZTU6Bw8exJw5c5CZmYlPPvkEfn5+apfUqGVlZeHs2bPKlxnHjx9HcnIyAChfaOgmGh999FE0bdpU5YqJiIioAeOkIhERkbHu3LmDyMhIhIeHK0cJFRQUKEcH6Y5C9Pb2RpMmTdQu1+ocO3YMvr6+SE1N5URWPaCb4F21ahXGjBmDDRs2wM3NTe2y6H/dvn1b77TpiIgIpKenQ6vVKgvB6DKrV69ePNKXiIiIDMVJRSIioproTmXWTSLGxcXBxsYGPXr00PuD3MPDQ+1Srdr9p9wGBgbyen71CE9Fbzhu376t96VITEyMshBM37599U6dZq4RERFRFTipSEREVF5ubi5iY2OVP7h1R/U4OjrC09NTmUDkNcrq1s8//4y5c+eiuLgYa9aswZQpU9QuiSpRUFCADz74AKtXr8bQoUMRHByM7t27q10W1aCyhWAiIyNRXFyMli1b4tFHH1VOnR40aBDatWundslERESkPk4qEhFR45aUlIRTp04pk4i6FVVdXV2VCUTdH9J2dnZql9vo3Lt3D4sXL8bGjRsxdepUrFu3Dm3btlW7LKrBmTNnMHPmTMTFxWHZsmXw9/eHra2t2mWREXJycnD69Gm9icbKFoIZNmwYhgwZAgcHB7VLJiIiorrFSUUiImo8SktLER8fr3fa38WLF2Fra4sePXook4jDhw9Hly5d1C630du5cyfmz58POzs7rFu3DhMnTlS7JDJCcXExPvvsMyxbtgz9+/fHpk2b0Lt3b7XLolrIzMzEuXPn9L6EuXPnjpKh5U+b5jVliYiIrB4nFYmIyHrpjrTR/QEcHh6Oe/fuoUWLFhg0aJByFOJjjz0GZ2dntcul/5WcnIz58+fjhx9+wOzZs7Fq1So4OTmpXRaZ6Pz585g1axZiY2OxcOFCBAQEwN7eXu2yyEzuXwjmxIkTuHv3Luzs7NCtWze9I765EAwREZFV4aQiERFZj/sXH9BdE6z8qczDhg1D//79+YdtPbVz507MnTsXLVu2RFBQEJ588km1SyIzKCsrQ3BwMBYuXIiuXbti06ZNePTRR9UuiyxEt7hV+cnGgoICLgRDRERkXTipSEREDZNuYQHdJOLx48dx7do1aLVaeHp6KkfGjBgxAp06dVK7XKrBtWvX4Ofnh99++w2+vr745z//CUdHR7XLIjNLSEiAr68vjh8/jrfffhsffvghT5FtBMovBKPL7Pj4eJSVleldn3HAgAEYMmQIr5tKRETUMHBSkYiIGobs7Gz8/vvvytEvx48fR2ZmJpycnDBw4EDlKEQfHx80a9ZM7XLJQCKCoKAg+Pv7o1OnTti0aRMGDRqkdllkQeX/zdu3b4/g4GA8/vjjapdFdcyQhWB0me7l5YXmzZurXTIRERHp46QiERHVT+VPZQ4PD0dsbCzKysrg7u6uHIU4bNgweHl5QaPRqF0umeDq1avw9fVFWFgYj1prhG7fvo3XX38d+/fvx+zZs3l0KiEjIwOnTp3Su4RFSkoKtFotunfvrndE48CBA3ltTiIiInVxUpGIiNRXUlKCM2fOKBOIR48eRUpKCuzs7NC3b1/lKMQRI0bAxcVF7XKplkpKSrB27Vr8/e9/R7du3bBp0yYMGDBA7bJIJTt37sTrr78OJycnbNy4ESNHjlS7JKpH7l8IJiwsDBkZGXqfD7qJxt69e/NLJiIiorrDSUUiIqp7WVlZiIyMVCYRw8PDkZ+fj/bt28Pb21s5CnHYsGFo2rSp2uWSGZ07dw6zZs3CuXPn8O677+L999+HnZ2d2mWRyu7cuYP58+djz549eOmll/DFF1+gdevWapdF9VBpaSni4+P1JhpPnTqFwsJCODk5oU+fPsok4/Dhw9GlSxe1SyYiIrJWnFQkIiLL060EqjudWXfdLN2pzLrrZvEoE+tVXFyMzz77DEuXLsWjjz6K4OBg9OrVS+2yqJ7Zv38/5s6dCxHB2rVr8cwzz6hdEjUAxcXFuHz5svIZEx0dXeVCMEOHDkWbNm3ULpmIiMgacFKRiIjMq7i4GGfPnlUmEUNDQ5GWlobmzZujf//+ygQi/7BrPGJjYzFr1ixcunQJS5cuhb+/P2xtbdUui+qpe/fuYfHixdi4cSOmTp2KdevWcTVgMlp2djbOnDmjd0TjxYsXAQCurq7KZ5FuspELfBERERmNk4pERFQ7ycnJiIqKUo4Q0Z2Gdv/qnd7e3lyEo5HJz8/Hhx9+iNWrV8PHxwfBwcHo1q2b2mVRA/HLL79gzpw5KCwsxKpVqzBjxgy1S6IGLikpCadOnVImGX///XekpqZyIRgiIiLTcFKRiIiMU9mpzDY2NujRo4fekR8eHh5ql0oqCgsLg6+vL5KTk/Hpp59i9uzZPLWdjJaVlYUlS5ZgzZo1GDduHNavX4+OHTuqXRZZkfILwYSHh+PEiRPIy8uDg4MD+vXrpzfRyEt0EBER6eGkIhERVS03NxexsbHKBOKJEydw9+5dODo6wtPTU5lEHDZsGFq1aqV2uVQP5OXlISAgAKtWrcLYsWOxYcMGTgJRrR0/fhy+vr5ISUnBJ598wklqspjqFoJxdnbGI488onz2DRw4EO3bt1e7ZCIiIrVwUpGIiP5Ld8SGbhIxKioKRUVFFa4/NWjQIK7YSxX8+uuvmDNnDrKzs/Hxxx/Dz89P7ZLIipQ/nX7kyJHYsGEDOnfurHZZ1AiUv1awbqJRt+DY/QvB+Pj4cOVyIiJqLDipSETUWOmOxii/WubFixdha2urdyrzY489hoceekjtcqkey8jIwLvvvqssrLF27Vq4uLioXRZZqYiICPj6+uLatWtYunQp3nnnHdjY2KhdFjUyWVlZOHv2rDLJGBYWhj/++AMA4O7urrcIzKOPPoqmTZuqXDEREZHZcVKRiKixyMnJwenTp5VJxLCwMGRkZKBFixYYNGiQ8gfQY489BmdnZ7XLpQZi//79eP3111FaWoq1a9di8uTJapdEjUBxcTE+++wzLF26FN7e3ggODkbPnj3VLosaufLXZ4yOjkZERATS09MrLAQzbNgw9O/fn5PhRETU0HFSkYjIWt2+fVuZQAwPD0dsbCzKysr0TmXmHzZkqjt37mDBggXYuXMnpk6disDAQJ7yR3Xu7NmzmDVrFs6fP48PPvgA/v7+sLW1VbssIkX5z+Lo6GjExMQgPz9fuTYxF4IhIqIGjJOKRETWoKSkBJcuXVL+cDl27BiuX78OrVYLT09P5SjEESNGoFOnTmqXSw3czp07MW/ePDg6OmLjxo0YNWqU2iVRI1ZSUoJ//vOfWLZsGXr16oWvv/4a/fv3V7ssokrpPq/LH9Gou35xy5Yt8eijj+pdv7hdu3Zql0xERFQVTioSETVE2dnZ+P3335WjEE+cOIG8vDw4OTlh4MCBylGIPj4+aNasmdrlkpVISkrCvHnzsG/fPsyePRurV69GixYt1C6LCABw5coV+Pr64sSJE1i4cCE+/PBDNGnSRO2yiGqUm5uL2NhYvYnGqhaCGTZsGFq1aqV2yURERAAnFYmIGoaqTmUufzH4YcOGwcvLi6dOkdmJCIKCgvDOO+/AxcUFQUFBeOKJJ9Qui6iCsrIyBAcH4+2338ZDDz2ETZs2YeDAgWqXRWS0zMxMnDt3DtHR0QgPD8exY8dw584dZTG18hONXAiGiIhUwklFIqL6pqSkBGfOnFEmEI8ePYqUlBTY2dmhb9++ylGITzzxBNq2bat2uWTl/vjjD8yePRtHjx7FvHnzsGLFCjg4OKhdFlG1/vjjD/j5+eHIkSP8vSWrcf9CMCdOnMDdu3dhZ2eHbt26KWcoDBgwAL169eL1komIyNI4qUhEpLbMzExERUUpk4hhYWEoKChA+/bt4e3trfyRwCMRqC6VP+KrS5cu2LRpE7y9vdUui8hgIoKtW7firbfeQqtWrXiELVmlhIQEZREY3X8FBQVo0aIF+vbtq3dEo4eHh9rlEhGRdeGkIhFRXdP9AaCbQNRdN0l3KrNuEpGrQJJaLly4gFmzZiEmJgYLFy5EQEAA7O3t1S6LyCS8Fig1JvcvBFP+kin3X59x8ODBcHFxUbtkIiJquDipSERkScXFxTh79qwyiRgaGoq0tDQ4ODigX79+ygTi0KFD0aZNG7XLpUaOq+iSNdOtWu7g4ICNGzdi9OjRapdEVCdycnJw+vTpGheCGTZsGIYOHYrmzZurXTIRETUMnFQkIjKn5ORkREVFKUchnjp1CoWFhUrTrptEHDhwII/8onrl7NmzmDlzJi5evIhly5bB398ftra2apdFZFYpKSnw9/fH1q1bMXXqVKxfv55f6FCjlJGRgVOnTimnTkdGRiIlJaXShWC8vb25kjoREVWGk4pERKYqKytDXFyccnqR7lRmGxsb9OjRQ++C6byOEdVXBQUF+Pjjj7Fy5Up4e3tj06ZN6NGjh9plEVnUTz/9hLlz56K0tBRr1qzBs88+q3ZJRKq7fyGY8PBw3Lt3T2+hON1EIxeCISIicFKRiMhwubm5iI2NVSYQdasuOjo6wtPTU5lEHDZsGFq1aqV2uUQ1ioiIwKxZs3D9+nUsXboU77zzDv9IpEYjIyMD7777LoKCgjBlyhSsWbMG7dq1U7ssonqjtLQU8fHxehONuoVgnJyc0KdPH2WScfjw4ejSpYvaJRMRUd3ipCIRUVV039jrJhGjoqJQVFQEV1dXvaMQBw0aBDs7O7XLJTJYXl4eAgICsHr1aowaNQobNmxAp06d1C6LSBUHDx7EnDlzkJWVhY8//hh+fn5ql0RUbxUXF+Py5ct6/VF8fHylC8EMGTIEbdu2VbtkIiKyHE4qEhEB//02Xtcgh4eHIyEhAVqtFt27d1cmER977DE89NBDapdLZLJjx47B19cXqamp+OSTTzB79myuMk6Nnm6ifdWqVRg7diwCAwPh5uamdllEDUJ2djbOnDmjdzTjxYsXAaDCNaUHDBiAZs2aqVwxERGZCScViahx0q2EqJtEDAsLQ0ZGBlq0aIFBgwYpje9jjz0GZ2dntcslqlZJSQm0Wm21+2RmZmLRokUICgrC+PHjERgYiA4dOtRRhUQNQ3h4OHx9fZGUlIRPP/20xkl3Q957RI1RUlISTp06pUwy/v7770hNTVW+rC1/RCMXryMiarA4qUhEjcPt27f1jkKMjY1VTtUpfy3E/v3785py1KCUlZXhqaeewt///nf4+PhUus+BAwcwd+5cFBUV4dNPP8WMGTPquEqihiM/Px8ffvghVq9ejaFDhyI4OBjdu3evdN9FixahW7dumD17dh1XSdTwlF8IJjw8HCdOnEBeXh4cHBzQr18/vYnG3r178yh6IqL6j5OKRGR9SkpKcOnSJWUS8dixY7h+/Tq0Wi08PT2VCcTHH3+cF+WnBi8gIADLli3Dww8/jPPnz6NJkybKbffu3cPixYuxceNGTJ06FevWreP1rYgMdPr0acycORPx8fFYtmwZ/P39YWtrq9weFRWFwYMHw9bWFidPnoSXl5eK1RI1PJUtBHPq1CkUFhbC2dkZjzzyiHLq9PDhw/HAAw+oXTIREenjpCIRNXxZWVmIjIxUjkIMDw9Hfn4+nJycMHDgQGUS0cfHh9fxIaty6NAhjB07FiICW1tbvPfee/jHP/4BANi5cyfmz58PrVaLdevWYdKkSSpXS9TwFBcX47PPPsOyZcvg5eWFTZs2oVevXigqKoKnpyeuXLkCEcGDDz6IM2fOoFWrVmqXTNSg6RaC0X0xHB0dXeVCMD4+PmjdurXaJRMRNWacVCQiy8nIyICjo6PZrzdV1anM7u7uehOIPHWGrFliYiI8PT2RmZmJsrIyAICtrS0OHDiAjRs3Ys+ePXjppZfw5ZdfcqKDqJbOnz+PmTNn4vTp01i4cCHs7OywcuVKlJaWAgDs7OwwcuRI/Pzzz/zcITKzrKwsnD17VjmaMSwsDH/88QcAKL1f+clGfoFMRFRnOKlIRJaxa9cuLFiwAD/99BMGDBhg8jglJSU4c+aMMoF45MgRpKamws7ODn379lUmEZ944gme1kmNRnFxMYYPH46YmBgUFxcr27VaLZo0aYL27dtj06ZNGDFihHpFElmZkpISfPbZZ1i6dCmKi4uVyXwdGxsbfPTRR1i8eLFKFRI1HuWvzxgdHY2TJ08iLS2twkIww4YNQ79+/fQuXVAb8+bNQ48ePfDGG2+YbUwiogaMk4pEZF43btzA3Llz8csvv0Cj0eCLL77A3/72N4Pvn5KSgt9//125iHdYWBgKCgrwwAMP4NFHH1WOQvT29ta7dhxRY7JgwQKsX79eOUqqPBsbGyxduhTLli1ToTIi61ZSUgJPT0/8v//3//Qm9HU0Gg0OHjyIUaNGqVAdUeOmm2jU9Y+xsbHIy8uDo6MjPD09zbIQTOfOnXHjxg14eHggKCgIQ4YMscAzISJqMDipSETmUVZWhuDgYLz55psoKSlBcXExbG1tMXnyZISEhFR5v4SEBOUoxLCwMMTFxUFEeCozURVCQkIwbdq0avexs7NDbGwsPDw86qgqosbhk08+wd///vcKRynq2NjYoGXLljh79iw6dOhQx9URUXm6hfvKH9EYFRWFoqIiZSEYXZ85aNCgGhfvu3fvHtq0aaNcx7i0tBSvvfYaPv30U54tQ0SNFScViaj2zpw5g9deew1nzpyp8IeWi4sLUlJSAAB5eXmIiYlRvkUODQ1FWloaHBwc0K9fP6Wx44W3iSp3+fJl9O/fH/n5+aju41ur1aJv376IjIzk6VlEZnL58mX06dMHRUVF1e5nZ2eHfv36ITw8HHZ2dnVUHREZIjc3F7GxsXoTjbovtO9fCGbYsGF61yQ+dOgQxowZozeenZ0dmjRpguXLl/OUaCJqjDipSESmy8vLwyeffIKPPvoIGo0GJSUlle43a9YsnDt3DrGxsSguLoabmxt8fHwwdOhQ+Pj4oG/fvmZfzIXI2uTm5sLLywsJCQlVvtfu9/nnn+PNN9+0cGVE1q+srAyPPfYYwsPDDdrf1tYWb731FlatWmXhyoiottLT0xEVFYWoqChERkYiKioKd+7cga2tLXr16gVvb294e3vj/PnzCA4OrvSLBRsbG3h4eGDDhg08JZqIGhNOKhKRaQ4cOAA/Pz/cuXOn2gkOGxsbdO7cGRMmTFAmEd3c3OqwUiLr8MILL2DXrl2VXscN+PNoCd178eGHH8bYsWMxZswYjB8/vi7LJLJKOTk52Lp1K44cOYLDhw8rC0JoNJoq35MajQZ79uzBpEmT6rhaIqqt+xeCiYiIwL179wCgyssfaLValJaW4sUXX8Rnn30GFxeXuiyZiEgNnFQkIuPcuXMHb7/9NrZt2wYbG5sqGysde3t7zJ49G2vWrKmjComsz7p16/DGG2/onfKsm0QUEbi5ueGvf/0rRo4cyZXQieqA7nrAYWFhOHDgAG7dugVbW1u9o/Y1Gg2aNm2KmJgY9OzZU+WKiag2ysrK4OLigrt379a4r52dHZo2bYp//OMfPCWaiKxdxUnFmzdv4sSJE2oVRET1lIjg8OHD2Lp1KwoLC2ucTCzPw8MD58+fr3UN1S34QmStrl69iiVLligrPWs0Gri5uaFv377o3bs3evbsCQcHB5WrbHyee+45i4zLPqxhSk5ORlxcHC5cuIBz584hIyMDGo0GIoKOHTti5cqVsLe3V7tMogbFzc3NYqcSR0REIDEx0eD97969i9dff93ox+nSpQv8/Pzg7u5u9H2JiOqbSvrfipOKhqwqSURkDBsbG2RkZKBFixa1GoerPxNRfWGpEz3YhxER/WnKlCnYuXOnRcaeOnUqdu3aZZGxiYisVSX9784qV0bgWdH1z9SpUwHAYh+u1kSj0WDHjh0WO5KkMUtPT8fNmzeRmJiIxMRE3Lp1C4mJiThw4ADy8vJQUlKidwFrW1tblJaW4uTJkxg1alStH5//rtZPN6nCz6E/j35ycHCockKenwt1r64m/fj7b10SExPRrl07NGnSRO1SFMwPw7GvrHu6309LMmbS8v3338fKlSuh0WiU3lZ31o69vT06duyI7t27o3v37ujSpQvc3d2V/+XZBGQI9r+G4+dX3auu/+Vyq0RklDZt2qBNmzbw9PTU214+3FNTU5XJxsTERNy8eZMfkEQmeOCBB9QugYjMgAuUETVsN2/exODBg9GjR48Kk4aurq5ql0dEpBpOKhKR2bm4uMDFxQX9+vVTuxQiIiIiolr55ptv1C6BiKheslG7ACIiIiIiIiIiImpYOKlIRERERERERERERuGkIhERERERERERERmFk4pERERERERERERkFC7U0sgkJCRg+fLlCAgIQMeOHdUup14qKSlBZGQkhg4dikOHDiE9PR0A0LNnT/Tv319v34yMDPzyyy9628aOHYtWrVrVWb3GSk5ORnx8PEaMGKG3PSYmBm3atEHnzp3VKYzIzJh3NdPlXU5OjtVlHVB53jHriMyHOVsz9pXMWqK6xFyuGftf8+KRio1MTEwMNm/ejHPnzqldSr2UmZmJVatWoU+fPgAAHx8fxMfH44UXXsATTzyBy5cv6+3v7OyMHj16YOXKlVi+fDlcXV3RsmVLNUqvUWpqKvz9/eHu7o4ffvihwu19+/bFxx9/jGPHjqlQHZH5Me+qVz7vrCnrgOrzjllHZD7M2eqxr2TWEtU15nL12P+aP5M5qdjITJkyBampqfjrX/+qdin49ttv1S5Bz61bt/Dyyy9j3rx5aNGiBQDAwcEBH374Iezt7ZGZmYlJkyYhOztbuY9Go4GXlxemTZuG6dOnY8SIEdBoNGo9hWpdu3YNM2bMQH5+fqW3a7VarFmzBh9//DE/hMgq1Je8q29ZB1TMO2vKOqD6vGPWEZlPfclZoP5lLftKZi2RGupLLte3TAbY/1oqkzmp2Ai1bdtW7RJw+PBhvPfee2qXoWfhwoV45pln4OzsXOG2hx9+GKNHj0ZcXBxmzJgBEdG7vU2bNvX6WwsA8Pb2Rs+ePavdx9bWFgsXLoSfn18dVUVkWWrnXX3MOqDqvLOGrANqzjtmHZH5qJ2zQP3MWvaVzFoitaidy/UxkwH2v5bKZE4qNjJlZWUIDQ1FVFSU3vbExER8+eWXKCsrw/nz5/HRRx9h69atKCsrU/a5efMm1q1bBxHBkSNH8N5772HNmjXKTPj+/fvxxRdfIDg4GACQnZ2NtWvX4osvvsCOHTuUcUJDQzFp0iTk5ORgw4YN2L9/PwAgLS0NK1euxJ07dyz9MlQQGRmJn3/+GVOmTKn0dq1Wi++//x5du3bF3r17sXz5cr2SmNw1AAAgAElEQVTbbWxsYGOj/3bKzs7Gjh078MEHH2DTpk1ITEzUu92Q11zn9u3b+PrrrxEQEIDffvutls+2eiNHjkR2djb27Nlj0cchsrTK8s4cWQcYlnf1MeuA6vPOElkHGJ53zDqihoV9ZeXYV/4Xs5aobrH/rRz73z9ZJJPlPjt27JBKNlM9MGXKFJkyZYrJ979w4YJMmTJFAMj69euV7T/++KO4uLgIAPn888/ltddekwkTJggAWbFihYiIfPfdd9KqVStp1qyZzJ07V2bOnCnjxo0TAOLt7S1FRUUiIuLh4SEdO3ZUxs7KyhInJycZMmSIsi02NlZ8fHzExcVFQkNDJTY2VkREgoKCBIB89dVXJj9HHQCyY8cOg/d/9tlnZeTIkVXe3rdvXxEROXfunDg6OopGo5H9+/crt2/YsEHWrFmj/Hz69Gnp06eP7N69W1JSUmT16tXi6Ogo33zzjYgY9prrHD58WGbPni0xMTESEhIijo6OMm/ePIOfW3mFhYUCQP72t79Vu5+fn5/079/fqLFr+/tpCGP/XalhMsfnUGV5Z86sE6k57+oi60x531WXd+bOOhHD886cWSdiWN6ZknWW7pPYh1FdYV9pOPaVlWvIfWVd9K1ExmD/azj2v1VTof8N4aRiA2KOD7+zZ89WaP5ERBYvXiwA5D//+Y+yzcvLSwYMGKD8/NJLL4lGo5Hz588r25YsWSIAJDAwUKmxfMjoxinf/ImITJo0Sdzc3PS25eTkyL/+9S/Jysqq1XMUMb7569atm8yYMaPK23VBIyKye/du0Wg04uzsLJcuXRIR/aApLCyUnj17ytKlS/XGeOGFF8Te3l4uXLggIoa95tnZ2eLu7i45OTnKtlmzZgkAiYiIMPj56Rja/H355Zei1WqlsLDQ4LE5qUjmYq7PocryzlxZJ2JY3lk660x531WXd5bIOpGaX3dzZ52uvpryzpSs46QiWQv2lYZjX1m5htxXclKR6hv2v4Zj/1s1FfrfEJ7+3Mg0adKk0u3NmjUDAL1z8Hv37o0bN24oPzs4OECr1cLDw0PZtnjxYmi1WpNWEbr/IqcODg54/vnnlYtZ15WioiIkJCTA1dXVoP0nT56M999/v9KLuQLAr7/+ivj4eAwePFhv+5gxY1BUVIRNmzYBMOw13759O/Lz87Fo0SLMnz8f8+fPR1JSErp27YorV66Y9HwN4ezsjJKSEos+BpGlVZZ3jTnrAOPyzlxZB9T8ujPriBom9pUVsa+siFlLVHfY/1bE/lefuTNZa5ZRyCrZ2tpWuEjp/Zo3b46OHTsiNTXV6PHry8pJd+/eRWlpqfKmN0RAQADOnDmD/fv3Y8aMGRg7dqxy28WLFwEAjo6OevcZPnw4ACAuLq7Kce9/zS9cuABXV1esXbvW4NrMQVf7zZs30bt37zp9bKK61liyDjA+7yyVdYD+686sI7J+jSVr2VdWxKwlqn8aSyYD7H/vZ+5M5pGKVCuFhYVITk6Gu7u70fetL0HzwAMPoGXLlhW+haiORqPBd999h549e2Lv3r348ssvldtat24NAIiIiNC7T+fOnWFnZ4dWrVoZ/Di2tra4dOkSiouLDb6POdy7dw8A4ObmVqePS1RfWUPWAcbnHbOOiOqSNWQt+8qKmLVEDZM1ZDLA/vd+5s5kTipSrZw8eRIFBQWYMGECgD9XTiooKKjxfhqNBqWlpZYuz2AeHh5ISUmp9DYRQV5eXoXtTk5O2Lt3L5ydnfW+kRg0aBAAVDhM/Pz58yguLsaQIUMMrsvT0xO5ubkIDAzU256RkYF169YZPI6xkpKSoNFo0KVLF4s9BlFDcn/WAYblXX3LOqDqvGPWEZHa2Fcya4mo/mD/y0w2BCcVG5nCwkIAfy7pXl5WVhaAP683oJOWlobCwkK9w6JLSkr03lS7du3C448/rgTN6NGjkZaWhs2bNyM3NxebN29Geno6EhISlBlxAHB1dUVycjISEhJw9epV5ObmIjo6GgMHDsSRI0fM/rxrMnz4cJw7d67S25KSknDr1q1Kw7NHjx7Ytm2b3hLznp6eeOWVV3Ds2DG961SEhYWhW7du8PPzA2DYaz5t2jS4ubnB398fq1atQlxcHEJCQuDn54eXX35ZuZ+fnx/GjRuHO3fuVPs8df8GNX0QXLt2DaNHj0bTpk2r3Y+oPqss78yVdYBheVffsg6oOu8slXVAza+7ubMOMCzvmHVEtcO+snLsK/Uxa4nqDvvfyrH//S+zZ7IRq7qQymq7StnJkyeVJeYfeeQR+emnn0RE5MiRI+Lu7i4AxNfXV5KSkmT79u3i5OQkAOSDDz6Q4uJimTNnjtja2sobb7wh77zzjkyfPl2eeuopvRWcsrOzZfDgwQJAevXqJXv27JHJkyfLmDFjJCgoSNkvNDRUtFqttGzZUllWXrfSUvn9TAUjV+m7e/eutGvXTq5cuaK3fefOnfLYY48JABk1apQcPny40vt/9NFHesvM5+fny/z588XDw0O2bNkiwcHBMn78eLlx44aIGP6ai4hcvHhRunfvLgAEgHh4eEhMTIze43ft2lUAyOrVq6t8jgcOHJBp06YJAGnXrp0EBQVJUlJShf0KCwulTZs28u9//9uwF+9/cfVnMhdzfA5VlnfmzDoRw/LO0llnyvuusryzVNaJGJ535so6EcPyztSs4+rPZC3YVxqOfWVFDb2v5OrPVN+w/zUc+9/KqdT/hnBSsQFR+8Nvzpw5YmdnJyIiN27ckMzMzCr3TUlJUf5/fn5+pftkZGRUCKnqxjSGKZNPgYGBMn/+fJMf886dOxW2ZWRkSHh4uCQmJpo8rs61a9fk+vXrld5WUFAgO3bskH379tX6cUJCQmTixIlG34+TimQuan8OGZN1IjXnnSWzztT3XW3yrrFnHScVyVqwrzQc+0rT1de+Uu3ff6L7qf35z/63eo09k6ubVOTpz2QSNzc3ODk5VXm7i4uL8v+rOqzW2dm5wpLy1Y1pabNnz0Z6ejpiY2NNun+7du0qbHN2dsbQoUPRsWPH2paHzp07o1OnTpXeVlhYiIiICIwbN65WjxEfH49t27Zh+/bttRqHyFrUlHVAzXlX37IOqF3eMeuIyNzYV1bErCUitbD/rYiZXDWtWUdT0bFjx3Dr1i29bXZ2dnBxccGDDz6Ibt26qVSZ9cjLy0NJSQlycnIqLKFuDWxsbLBlyxYsWLAAs2fPhre3t9olGSwyMhIrVqyAVmv6W/r69etYuXIlvv76azRr1syM1dVfCQkJWL58OQICAszyYVBXmHeWZe1ZBzTcvGPWGScvLw+//fYbIiIisGLFCrXLMUhRURGOHz+On376CaNGjTK6gT5+/DiOHj2K+Ph4TJ06FRMnTjS5FmatZVl71jbUnAWYtcZqiFlbHVP647p4DZjJlmXtmQw03Fyu75lsNUcq9u3bF1evXsULL7yAV199FVlZWUhNTcX+/fsxbdo0dOnSBf/3//7fOl+u21ps27YNhw4dgojg3XffxenTp9UuySKaNGmCjRs3on379mqXYpSRI0fWOhzs7e2xZcsWtG7d2kxV1X8xMTHYvHlzlRdTr6+Yd5bTWLIOaJh5x6wzzsGDB7FgwQJs3bpV7VIMdv78eYSEhOCLL77A7du3jbpvdHQ0Vq1ahUWLFqF79+6YNm1apSs6GopZazmNJWsbYs4CzFpjNcSsrY4p/XFdvAbMZMtpLJkMNMxcru+ZbDVHKrZs2RKvvvoqlixZgq5du2LOnDnKbSKC3bt3Y9asWYiMjMTu3bsrHIpL1ZswYQLGjx+v/NykSRMVq7G8qg49tmaurq5ql1DnpkyZgtTUVLRt21btUozCvLOcxpZ1QOPLu8aUdc888wx++OEHhIaGql2Kwby8vDB//nxs3LjR6PsuWbIEQ4cOhb29PZYsWQJfX180b94cAPDtt99ixowZRo3HrLWcxpa1jS1nAWZtQ2ZKf2zsa8BMrl8aWyYDjS+XLZnJVjOpCFR9jr5Go8GUKVNQWlqK6dOnY/jw4YiMjIS9vX0dV9hwOTs7q10CkUU0tAlFHeadZTDryNrY2tqqXYLRdKf3aDQao+534cIFDB8+XLnvgw8+CAA4fPgw3nvvPaP/gAWYtZbCrCVr0xCztjqm9MeGvgbM5PqHmUy1YZZJxfz8fOzbtw9PP/00UlJScODAATz44IN46qmnYGtrizt37uDHH3+EjY0Npk6dqoTB/v37cfXqVTg6OsLX1xfZ2dn49ttvUVxcDFdXV0ybNg0AkJaWhqCgIMycObNWh6lOmzYN3377LQ4cOIDIyEgMGzYMAHD79m38+uuvuHnzJnx8fPCXv/xFuU9iYiL27NmDBQsW4OLFi9i3bx86deqEF198ETY2/z17XERw9OhRnD59Gra2tujZsydGjRql3F7dYxCRZdT0viwrK8PRo0fh6Oiod02NnJwcbN26FTdu3EC3bt0wcOBA9OrVS2mWTM08ncuXL+PkyZM4e/YsfHx88Mwzzyi3qZl3gGGZx7wjql9qek/q9omMjMTBgwfRtWtXvPDCCxUm7arLpps3b+LHH3/E66+/jqNHj+LgwYPo0KEDZs2apXdKjiXf/1WNffToUVy4cAGJiYmIjIzEhg0b4OrqiqeffhqhoaGYNGkSNBoNNmzYoGQ1e0siMpY5sra6nAXqNmvv3buH7du3Y968efjll19w9uxZvP3227CxsTGpPzbkNWAmE1khI5aKrtSRI0ekW7duAkD++c9/ip+fnyxatEiaN28uzz77rAQFBcmLL74o06dPF41GI0899ZTe/T08PKRjx47Kz1lZWeLk5CRDhgxRtgUFBQkA+eqrr6qtJTMzUwBIr169qtwnICBAAMiKFStEROTw4cMye/ZsiYmJkZCQEHF0dJR58+aJiMiPP/4oLi4uAkA+//xzee2112TChAl699f5+9//LkFBQSIiEhUVJQMHDlRuq+4xjGHq0umNEQDZsWOH2mU0KnXx+2nsv2t178sLFy7IlClTBICsX79e2X737l3p3r27HDt2THJycuSZZ54RAOLt7S1vvvlmrTPv888/lxEjRkhZWZn88ccf8tBDD8m6deuU29XKOxHDM8/SeWfs51Bjxs+Fumfp309Txq/uPfnqq6+Kq6urzJ8/X2bNmiUTJ04UjUYjy5cv1xujumz67rvvpFWrVtKsWTOZO3euzJw5U8aNG6dkY1FRkYiYr9+5cOGCAJDg4GBlW3Vj//HHHxIaGioAZM6cORIVFSVxcXEiIhIbGys+Pj7i4uIioaGhEhsbKyLsLUWYH8ZgX1n3LP37acr4tc3amnrAuszaLVu2SPPmzUWr1cr//M//iKenpwCQH374waT+2NDXgJlcNfa/huPnV92r5vczpNaTiiIin332mQCQnTt3KtsWL14sAGT37t3Ktvfff1+aNGkipaWlyrYpU6boTSqKiHh5eelNKubk5Mi//vUvycrKqrYOQ0Jmz549AkD++te/SnZ2tri7u0tOTo5y+6xZswSARERE6D2P//znP3r1DRgwQPm5rKxM2rZtK6Ghoco2XXga8hiG4pvHcGz+6l59m1Ss7n2pc/bs2QpN03vvvSedO3dWfo6OjlYaDZ3aZN7DDz8s8+fPV36eNGmSjBs3TvlZzbwr/zyqyry6yDs2VYbj50Ldq2+TijVl3auvvipNmjSRS5cuKdsGDBig18eI1JxNL730kmg0Gjl//ryybcmSJQJAAgMDzdrv3D+paMjYukwMCAioMN6kSZPEzc1Nbxt7S+aHMdhX1r36NqlojqytKWdF6jZrX3zxRQEge/bsERFRvowxtT829POGmVw59r+G4+dX3atuUtEspz/rzsHv06ePsq1Hjx4AAE9PT2Vbz549UVhYiNu3bxu8PD0AODg44PnnnzdHqcjJyVHG3L59O/Lz87Fo0SLl9qSkJHTt2hVXrlzB4MGDlcPMe/bsqezTu3dvHDx4UPlZo9GgR48emDZtGjZu3IiJEyfC398fAAx6DGOcPHkSU6dONf6JN0Kff/45du7cqXYZjcbJkyeN/n22pOrelzqVXYT46tWrSE1NRVFREezt7eHp6QkHBwckJiYq+9Qm844cOQIHBwcAwMWLF5GYmIisrCzlPmrmHYAaM68u845ZV7OTJ08C4GtVl27evKl2CXoMybpmzZqhe/fuys+PPPII9u3bp7ePIdmk1Wrh4eGhbFu8eDFWrlyJY8eOwcbGxqzv//LMkS33n+rN3vJP7CsNx76ybjXEvrKmrK0pZ4G6zVrddWcnTpwI4L+ZZGp/bMhroMNMrhozuWbsf+tedf2vxRZqadq0aYVtdnZ2AIDc3FxLPWyNYmJiAACDBg3ChQsX4OrqirVr1xo1hq2tLUREb9uaNWswdepUTJo0CX/5y1+wbds2tG/f3uTHIKLaq+p9WZ0nnngCISEhCAsLw5NPPol79+6hqKiowjVz7mdo5nXo0AGHDh3CTz/9hMcffxxdu3ZFdHS0Cc+uZubIO6Bi5jHviOoXY7NOq9WitLRUb5sp2dS8eXN07NgRqampFn3/m2NsYxd9MQZ7S6LGobZZa2oPaKms1V0vsPx1A6tian9c2ecNwEwmsiZWtfpzTUQEx48fh62tLUaNGoVvv/0Wly5dQnFxsfLHv6n69euHmJgYLF68GBs2bICXlxfOnTsHW1tbsz0GAAwePJjfkhpAo9HgrbfewnPPPad2KY1GffymqKr3ZevWrau8j6+vL65cuYK5c+fio48+QmhoKFauXImxY8eapaYlS5YoF95u1qwZdu/ebZZx72cNecesq5nufcfXqu6EhIQoC8nVF6Zk3f1MyabCwkIkJydjzJgxZn//l2eOsS31B2xDz1r2lYZhX1n3rKWvLM/UHrCusrY65u6PmclVYybXjP1v3auu/635awkL02q1KCgoqJPHeuuttxAdHY1Vq1bB09MTnp6eyM3NRWBgoN5+GRkZWLduncHjFhYWYuvWrWjRogXWrl2Ln3/+GUlJSdizZ4/ZHoOIjFPd+7I6Wq0Wrq6u2Lx5M/r27YvPP/8cb7/9tllq+uOPP7B8+XK89NJLyqkWZWVlZhn7fsw7osbB1Kwrz9RsOnnyJAoKCjBhwgSLvv9rO7ZGo6n0SBlzYNYSNQ61zdra9IB1lbXVMWd/zEwmsi5mmVTMzs4G8OebTUd3LYO7d+8q23SnAJbfb/To0UhLS8PmzZuRm5uLzZs3Iz09HQkJCbh37x4AIDo6GgMHDsSRI0eqrePatWsAgPz8/Arb58+fj6+++goLFizAW2+9BeDPJefd3Nzg7++PVatWIS4uDiEhIfDz88PLL78MAMp1LoqKipTx0tLSUFhYqBwSLSIIDAxUfh49ejTatm2Ltm3bGvQYRGR+1b0vdXRZlJaWpmxbv349du3aheLiYhQVFeHGjRtKxumYmnm6fbZv346srCwcP34cx44dw71795CTk4Ps7GxV8w6oOfOYd0T1S01Zl56ejpycHL28unv3LvLy8pQvdQ3JJgAoKSlBXFycMs6uXbvw+OOPY8KECWZ9/2dmZurVZcjYt27dAgAkJydXGM/V1RXJyclISEjA1atXkZuby96SiIxS26w1NGeBustaXZ+anp6ut93U/tiQzxuAmUxkdYxY1aVSJ06cUJagf+WVVyQhIUFCQ0PFy8tLAMj48ePlwoULcuLECRk8eLAAkOeee04uX74sIn+ulqTb3qtXL9mzZ49MnjxZxowZoyzZvnv3btFoNMrPlfnxxx9lxIgRAkAAyJAhQ2TUqFEyfvx4mThxorz99tsSFRVV4X4XL16U7t27K/fz8PCQmJgYERE5cuSIuLu7CwDx9fWVpKQk2b59uzg5OQkA+eCDD6S4uFjy8/PF1dVVpk+fLjt37pTVq1fL0qVLDXoMY3CVI8OBq/TVufq2+nNN78uTJ0/KlClTBIA88sgj8tNPP4mIyA8//CAODg7K+1X338iRIyUpKanWmTdz5kzRarXy8MMPS2BgoOzatUvs7e3lySeflPT0dNXyTsSwzMvOzrZ43nH1O8Pxc6Hu1bfVn6vLuu3bt0vr1q0FgLz99tuSlZUl27ZtkzZt2ggA8ff3l8LCQhGpOZvmzJkjtra28sYbb8g777wj06dPl6eeekpvpU5zvP9///13GTNmjACQ/v37y4EDB2ocOyIiQp555hkBIG5ubvLNN99IRkaGMmZoaKhotVpp2bKlfPXVVyLC3lKE+WEM9pV1r76t/myOrK0pZ0WkzrI2ODhYOnTooPSpv//+u4iY3h8b83nDTK4c+1/D8fOr7lW3+rNGRP8KpLpzpe/bbHGpqalwcXEBABQUFFRY9CArKwtOTk4We/zr169Do9GgU6dOJt2/pKQEZWVlSE5OrnKM2j4Grx1gOI1Ggx07dvDaN3WoLn4/jf13NeR9eb9///vfuHXrFoYNG4bk5GTk5eUhNzcXu3btQp8+fbB48eLaPAUAfx7p2KJFC+XnwsJCvZX2GnveqfU51BDxc6HuWfr305TxTcm6ylSXTXPnzsXXX3+NoqIiJCYmwtnZucqcqm3GVMfUsTMzM2FjY6P3/Bp71jI/DMe+su5Z+vfTlPHNkbU19YD1JWvvZ+7+mJlcEftfw/Hzq+5V8/u5s94s1KKbUAQqX0XVkgEDAJ07d67V/bXaP1/K6gKkto9BRMYx5H1ZXnR0NF599VXcuHEDtra2ePjhh5XbdKvemUP5BgqAXjMJMO+IyDjGZl1VasomHTc3t2rHqer9P2/evBpr8PPzQ79+/YweuybOzs4VtjFricgY5shaQ3MWMC1rzZGz97NEf8xMJrIe9WZSkai+KCkpQWRkJIYOHYpDhw4p1xnp2bMn+vfvr7dvRkYGfvnlF71tY8eORatWreqsXmMlJycjPj4eI0aM0NseExODNm3aNOoPw7NnzyIpKQnBwcEYOXIkOnfujGvXriEyMhJnz57Fe++9p3aJRGaly7ucnByryzqg8rxj1pkmLy8PJSUlyMnJgaOjo0ljPPHEEzXuU/5LZiJrwL6SWWuM2matJXKW/TFZG/a/5qX66s9E9UlmZiZWrVqFPn36AAB8fHwQHx+PF154AU888QQuX76st7+zszN69OiBlStXYvny5XB1dUXLli3VKL1Gqamp8Pf3h7u7O3744YcKt/ft2xcff/wxjh07pkJ19cOrr76K1atX4/vvv4eHhwdatmyJl19+GTk5OQgICKj0W1Wihqp83llT1gHV5x2zznjbtm3DoUOHICJ49913cfr0aZPGmTp1ao3/dejQwczVE6mHfSWz1hjmyFpL5Cz7Y7Im7H/Nn8mcVCSDffvttw16/JrcunULL7/8MubNm6ecmuDg4IAPP/wQ9vb2yMzMxKRJk/RWOtNoNPDy8sK0adMwffp0jBgxAhqNRq2nUK1r165hxowZFVZL09FqtVizZg0+/vhjnDt3ro6rqx80Gg0WLlyI0NBQZGdnIycnBxEREfDz84O9vb3a5VEdamx5Z01ZB1Sfd8w6402YMAHx8fG4d+8ePvroI/To0UPtksgKNLacBdhXUvXqa9ayP248GlsuW1MmA+r1v5xUJIMcPnzYooe2W3p8QyxcuBDPPPNMpd+2Pfzwwxg9ejTi4uIwY8aMChcobdOmTb3+1gIAvL290bNnz2r3sbW1xcKFC+Hn51dHVdVfdnZ2apdAKmnMeWcNWQfUnHfMOuM4OzujZcuWyn/NmjVTuyRq4BpzzgLWkbXsK82vIWQt+2Pr1Zhz2RoyGVCv/+U1FRuB7OxsHDhwAHFxcXBzc8Po0aOVC//u378fV69ehaOjI3x9fZGdnY1vv/0WxcXFcHV1xbRp0xAaGopJkyZBo9Fgw4YNePDBB/HUU08BAG7evIkff/wRr7/+Oo4ePYqDBw+iQ4cOmDVrFpo1a1ar8dPS0hAUFISZM2eiffv2Fn2NIiMj8fPPPyM4OLjS27VaLb7//nt4e3tj7969WL58OZYsWaLcbmNjAxsb/Tn66l53AEhMTMSePXuwYMECXLx4Efv27UOnTp3w4osvVhjr9u3b+PXXX3Hz5k34+PjgL3/5ixmfvb6RI0fizTffxJ49ezB58mSLPQ6RudU26wBUmUfmyLrqxq8veWeJrAMMzztmHVH9x76yZuwr/4tZS2RZ7H8Nw/73TxbJZLnPjh07pJLNVA9MmTJFpkyZYtR9Tp8+LX369JHdu3dLSkqKrF69WhwdHeWbb75R9vHw8JCOHTsqP2dlZYmTk5MMGTJERERiY2PFx8dHXFxcJDQ0VGJjY0VE5LvvvpNWrVpJs2bNZO7cuTJz5kwZN26cABBvb28pKiqq1fhBQUECQL766iujXysAsmPHDoP3f/bZZ2XkyJFV3t63b18RETl37pw4OjqKRqOR/fv3K7dv2LBB1qxZo/xc0+v+448/iouLiwCQzz//XF577TWZMGGCAJAVK1boPfbhw4dl9uzZEhMTIyEhIeLo6Cjz5s0z+LmVV1hYKADkb3/7W7X7+fn5Sf/+/Y0a25TfT2MZ++9KDZMpn0PmyDqRyvPIXFlX1fgipuedKe+76vLO3FknYnjemTPrRAzLO1OyztJ9EvswqivsKw3HvrJyDbmvrIu+lcgY7H8Nx/63air0vyGcVGxAjH3zFBYWSs+ePWXp0qV621944QWxt7eXCxcuKOOWDwIRES8vL70gmDRpkri5uVV4jJdeekk0Go2cP39e2bZkyRIBIIGBgbUaPycnR/71r39JVlaWwc9Zx9jmr1u3bjJjxowqb9cFjYjI7t27RaPRiLOzs1y6dElE9IPG0Nd98eLFAkD+85//KPt4eXnJgAEDlJ+zs7PF3d1dcnJylG2zZs0SABIREWHw89MxtPn78ssvRavVSmFhocFjc1KRzMXYzyFzZp1I5XlkrqyranxT886U9111eWeJrBOpOaLPK2gAACAASURBVO/MnXW6+mrKO1OyjpOKZC3YVxqOfWXlGnJfyUlFqm/Y/xqO/W/VVOh/Q3hNRSv266+/Ij4+HoMHD9bbPmbMGBQVFWHTpk1GjVfZRUkdHByg1Wrh4eGhbFu8eDG0Wq3RKwvdP76DgwOef/555eLWllJUVISEhAS4uroatP/kyZPx/vvvV3oxV8Dw1113nZTy1z3o3bs3bty4ofy8fft25OfnY9GiRZg/fz7mz5+PpKQkdO3aFVeuXDHp+RrC2dkZJSUlFn0MInMxd9YBleeRubKuqvHrW96ZK+uAmvOOWUdU/7GvNAz7yoqYtUTmx/7XcOx/9Zk7k3lNRSt28eJFAICjo6Pe9uHDhwMA4uLijBrP0JWOmjdvjo4dOyI1NdUi45vb3bt3UVpaatTFkAMCAnDmzBns378fM2bMwNixY5XbavO629ra6l0Y9sKFC3B1dcXatWsNrs0cdLXfvHkTvXv3rtPHJjKWubMOMCyPTM06Q8e3BGPzzlJZB+jnHbOOqP5jX2kY9pUVMWuJzI/9r+HY/+ozdybzSEUr1rp1awBARESE3vbOnTvDzs4OrVq1Mmo8Q0OgsLAQycnJcHd3t8j45vbAAw+gZcuWFb6FqI5Go8F3332Hnj17Yu/evfjyyy+V28z5utva2uLSpUsoLi42+D7mcO/ePQCocLFZovrI3FkHGJZHpmadoeNbgrF5x6wjIh32lYZhX1kRs5bI/Nj/Go79rz5zZzInFa3YoEGDAKDCocnnz59HcXExhgwZAuDP1Y4KCgqqHUuj0aC0tNSgxz158iQKCgowYcIEi4xvCR4eHkhJSan0NhFBXl5ehe1OTk7Yu3cvnJ2d9b6RMPR1N4Snpydyc3MRGBiotz0jIwPr1q0zeBxjJSUlQaPRoEuXLhZ7DCJzMWfWAYbnkSlZZ8z4llJV3jHriKg67CsNx75SH7OWyPzY/xqH/e9/mTuTOaloxTw9PfHKK6/g2LFjetdTCQsLQ7du3eDn5wcAGD16NNLS0rB582bk5uZi8+bNSE9PR0JCgjKL7erqiuTkZCQkJODq1avIzc1VxispKdF7o+3atQuPP/64EjSmjh8dHY2BAwfiyJEjln6pMHz4cJw7d67S25KSknDr1q1Kw7JHjx7Ytm2b3pLwhr7uWVlZAP68xoNOWloaCgsLlUOip02bBjc3N/j7+2PVqlWIi4tDSEgI/Pz88PLLLyv38/Pzw7hx43Dnzp1qn6fu9a4p+K9du4bRo0ejadOm1e5HVB+YM+uAqvPOHFlX1fj1Ie8slXVAzXln7qwDDMs7Zh2R4dhXGo59pT5mLZH5sf81Dvvf/zJ7JhuxqgupzJRVjvLz82X+/Pni4eEhW7ZskeDgYBk/frzcuHFD2Sc7O1sGDx4sAKRXr16yZ88emTx5sowZM0aCgoJERCQ0NFS0Wq20bNlSb8n3OXPmiK2trbzxxhvyzjvvyPTp0+Wpp57SW8HJ1PF1Ky/p9jEGjFyl7+7du9KuXTu5cuWK3vadO3fKY489JgBk1KhRcvjw4Urv/9FHH+ktM1/T637kyBFxd3cXAOLr6ytJSUmyfft2cXJyEgDywQcfSHFxsYiIXLx4Ubp37y4ABIB4eHhITEyM3uN37dpVAMjq1aurfI4HDhyQadOmCQBp166dBAUFSVJSUoX9CgsLpU2bNvLvf//bsBfvf3H1ZzIXUz6HzJV1IpXnkbmyrqrxTc07U953leWdpbJOxPC8M1fWiRiWd6ZmHVd/JmvBvtJw7Csrauh9JVd/pvqG/a/h2P9WTqX+N4STig1IbT78MjIyJDw8XBITE6vcJyUlRfn/+fn5lY5x/3Lvc+bMETs7OxERuXHjhmRmZpp1/OrGq44pk0+BgYEyf/58kx5PROTOnTsVthnyuhvq2rVrcv369UpvKygokB07dsi+fftq/TghISEyceJEo+/HSUUyl9p8Dpkj63TjlM8jc2ZdZeOLmJZ3pr7vapN3jT3rOKlI1oJ9peHYV5quvvaVnFSk+ob9r+HY/5rOAv1vCE9/biScnZ0xdOhQdOzYscp9XFxclP9f2aGwzs7O1S737ubmBicnJ7OOX9145jZ79mykp6cjNjbWpPu3a9euwjZDXndDde7cGZ06dar0tsLCQkRERGDcuHG1eoz4+Hhs27YN27dvr9U4RGoxR9bpxqkq72qbdVWN31DyjllHROwra8a+kllLVFfY/xqG/a9lMpmTilQreXl5KCkpQU5Ojtql1JqNjQ22bNmC9evXIyoqSu1yjBIZGYkVK1b8//buPKrKcu0f+HfDZlBmFY0ETVBRSVAQJzS1o2YOvdSBUE/S+1MglWqV4VCeHHhNTcvK5cyQJzUTzPBgNocDihOioIimKIqCgso8w/37w7Ofw5ZpAxsehu9nLVfxjNdzbbjZXPseoFQqG3yNlJQUrFmzBqGhoejQoYMWoyNq/dpSWwe03vaObR1R29aW2trW2s4CbGuJ6Im21CYDrbddbultMouK1GB79uzBr7/+CiEEFi9ejAsXLsgdUqMZGBhgx44d6Natm9yh1Mv48eMb3Tjo6+tj586d6NSpk5aiImob2mJbB7TO9o5tHVHb1Rbb2tbYzgJsa4mobbbJQOtsl1t6m9zwUie1e1OnTsWUKVOkrw0MDGSMRrtq6nrclllZWckdAlGL1JbbOqD9tXds64haprbc1ra3dhZgW0vU2rXlNhlof+1yU7bJLCpSg5mZmckdAhFRk2NbR0TU9NjWEhG1HGyTSVMc/kxERERERERERET1wqIiERERERERERER1QuLikRERERERERERFQvLCoSERERERERERFRvdS4UItCoWjOOKge+NpoxsvLC15eXnKH0a54eHg0+T34urYfbOs0x1y1PXxNqbnwe00zfP/R/Jr6feX+/fv5/U8tDr8nNcdctQxVioojR47Evn375IiFiFq4W7duISoqCklJSbh9+zYq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DR0dHamoMXfuXISGhqKkpAR37tyBmZkZTE1NtXZ94EmPrpquWRNPT08AQHh4eL3Oo/Zr+/btSEhIwKZNm+p97oMHD9C1a9cq2zX5udNESkoKFAoFevToUe3+4uJiHDx4EIaGhnjllVcafJ/w8HDs2bMHERERDb4GtT9sb4mISAvC2VORiIiohTIzM8PIkSNrLWyoCn4Aahz6aGZmVqWXlIqNjU2txb+GXr++BUWihvD19cXDhw8RFxdX73OrKygCmv3caaJnz541FhSBJ0XFmJgYTJ48ucH3SEpKwp49e7B3794GX4OIiIiooVhUJCIiamcKCgpQVlaGvLw8uUMhahQdHR3s3LkTW7duxdmzZ+UOp17OnDmD1atXQ6lUNuj8lJQUrFmzBqGhoejQoYOWoyMiIiKqG4uKRERE7ciePXvw66+/QgiBxYsX48KFC3KHRNQoBgYG2LFjB7p16yZ3KPUyfvz4RhUD9fX1sXPnTnTq1EmLURERERFprmEfjRIREVGrNHXqVEyZMkX62sDAQMZoiLSntqHGbZGVlZXcIRAREVE7x6IiERFRO2JmZiZ3CERERERE1AZw+DMRERERERERERHVC4uKREREREREREREVC8sKhIREREREREREVG9cE5FIqJKYmJi5A6B2hjV91RYWJjMkbR8qampAJgrIqKmlpqaCmtra7nDICKiVk4hhBByB0FE1BIoFAq5QyAiIiJqFh4eHggPD5c7DCIiar3C2VORiOg/+BkLERERERERkWY4pyIRERERERERERHVC4uKREREREREREREVC8sKhIREREREREREVG9sKhIRERERERERERE9fL/AQMmEH33jGvEAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from phat.learn.phatnet import PhatNetBeta, PhatMetric, BodyLoss\n", "\n", "dn = PhatNetBeta(neurons=1)\n", "dn.plot_model()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 00017: early stopping\n" ] } ], "source": [ "metrics = [\n", " PhatMetric('mean_left'), PhatMetric('std_left'), \n", " PhatMetric('shape_left'), PhatMetric('shape_right'),\n", "]\n", "dn.compile(loss=BodyLoss(), optimizer='adam', metrics=metrics)\n", "history = dn.fit(\n", " data.train, \n", " validation_data=data.test,\n", " epochs=100, \n", " batch_size=32, \n", " verbose=0\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can compare results with the generative model:" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "```python\n", "pd.DataFrame(\n", " (genmod.args, phat_fit.args), \n", " index=['Gen Model', 'Neural Net Fit'],\n", " columns=['mean', 'std', \n", " r'$\\xi_l$', r'$\\xi_r$', r'$a_l$', \n", " r'$a_r$', r'$b_l$', r'$b_r$',\n", " ]\n", ").T.to_csv('phat_fit_no_tails_comp.csv', index=False)\n", "```" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Gen ModelNeural Net Fit
00.0003-0.0003001
10.00320.003883
20.173.899e-08
30.194.822e-08
4-0.001064-0.001746
50.0016840.001145
60.0087840.01043
70.0088070.01043
\n" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_, std_, shl_, shr_ = dn.predict([0])[0]\n", "phat_fit = ph.Phat(*dn.predict([0])[0])\n", "\n", "df = pd.read_csv('phat_fit_no_tails_comp.csv')\n", "df.style.format('{:.4}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As with the [MLE](#mle_fit.ipynb) fit, the neural net approach leads to significant underestimation of the tail index, driving them to near zero." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see why below. We compare the change in the log-likelihood for changes in the different parameters. Changes in the mean have a clear absolute minimum, changes in standard deviation are actually asymptotic to declining loss, and changes in the tail are linear across a very narrow range.\n", "\n", "So $\\xi$ can be turned all the way down to zero to the benefit of the loss function." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/by/3p7tzvtd0_9cn60snk5cv8g40000gn/T/ipykernel_73140/2497768408.py:26: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n", " plt.show()\n" ] }, { "data": { "image/png": "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559/RkxMDABg48aN6NGjxyt/TkrVngfOnz8PX1/fittSHp/nteVpNPW9Q9VXVXwPLF26FAUFBVizZg2LEk+g6n3esWNHHD58GHv27MGePXtgb2+PVatWwd3dXZL2aRpV728jIyO0a9eu4opq58+fh6mpKef2+H9V8ZnSqFEjHDx4EACQmJiI9PR0uLm5qbllmulV+1ZPovL+yCtNnamlkpOTxYgRI0RgYKAYN26cuHfvnhBCiM2bN4vly5c/suyZM2ceuSqHUqkUS5YsEUFBQSIoKEgcP3684rHVq1eLoKAg8dprr4ldu3appS1CVK49JSUlYvr06SIoKEj07dtXxMfHVzz/k08+EZs3b35knXK5XMyZM0cEBgaKnj17ij///FMr2pOfny+mTJkievfuLYKDg8Xp06eFEM8+bprcnpCQENG+fXvRp0+fin+xsbGSHJ/ff/9d9O7dW7z22mti1apVQggh3njjDREbGyuEEOLSpUtiwIABolevXuK9994TpaWlz2x/Tk6OmDhxoggKChKDBw9W+8zgL9OeCxcuiIYNG4qgoKCK4/HGG28IIYS4cuWKGDx4sAgKChIjRowQd+/e1fj2CCFEZGSk6Nu3r+jVq5eYNGmSyMvLE0I8/bhpenuEEKJFixaipKTkkfVJeXye15YHZsyY8chVOTT1vUPVlyq/B7KyskTjxo1Fjx49HvmOo0ep+rv3YV26dOHnx/9Q9f5OS0sTEydOFL179xahoaHi/Pnz0jRMQ6l6f9+8eVOMHDlS9O7dW/Tr10+cPHlSmoZpqFfpWwkhxDfffPPIVTlU3R+RCfGEE0qIiIiIiIiIiNSg2p3KQURERERERESag4UJIiIiIiIiIpIMCxNEREREREREJBkWJoiIiIiIiIhIMixMEBEREREREZFkWJggIiIiIiIiIsmwMEFEREREREREkmFhgoiIiIiIiIgkw8IEEREREREREUmGhQkiIiIiIiIikgwLE0REREREREQkGRYmiIiIiIiIiEgyLEwQERERERERkWRYmCAiIiIiIiIiybAwQURERERERESSYWGCiIiIiIiIiCTDwgQRERERERERSYaFCSIiIiIiIiKSDAsTRERERERERCQZFiaIiIiIiIiISDIsTBARERERERGRZFiYICIiIiIiIiLJsDBBRERERERERJJhYYKIiIiIiIiIJMPC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bd26VS4uLurcubOOHTumX3/9VZK0d+9eDR48WKmpqXrttdf0zjvv6KabbtILL7ygoKAgHT169JIfp6zc3d1ltVpL/abbt29fff3110pNTZX025Wt77nnniv6WP369dPChQtVWFgom82myZMna/bs2X86z83NTRaLpczv++uvvxYPFK677jpFR0df9t/gj9zd3XX06FG98847xR+zqKhIJ06cULt27S772s2bN2vgwIEaO3asOnTooO+++67Ex123bp0KCwtVUFCgFStWaODAgWrRooW8vLyKBxMpKSkaNmyYEhISyvz3BQCz0X+URP9x5RzRfwwbNkydO3fWf/7znxLHW7VqJU9PT/3444+Sfrvbxv79+0sdOl3q8+dSSusTLsff319btmzRp59+WlyjvLw8paSklNqfXO5rQJJWrVolm82mjIwMrVu3TjfeeONlPwdQebBiAqZ68cUXFRsbW+LYV199pRUrVhQ/Dg4O1uLFiyVJd911l1xd/ztPe+aZZ4ovLnQp/v7+euaZZ/Tyyy9r2LBheuGFFzR9+nQNHz5cFotFffr00cSJE0u85r777tM///lPLV++XG5ubmrfvn3x0rnevXvrL3/5izw8PNS+ffsSr4uMjNTnn3+uqVOnFh8ry8eTflsy9/rrr+uxxx7T22+/rQkTJuiee+6RzWZT7dq1NX/+/BJ/999NmTJF77zzjsaMGSM3NzcVFhbqpptuuugtK/+ob9++Wrp0qYYMGaJq1aqpY8eOql27to4dO3bZ173yyit64YUXtGjRItWvX1+BgYHy9vZW7dq19eabb2rmzJkqKCiQYRiaOXOmGjdurHvuuUfPPfechg0bJk9PTwUHB1/ydlZXom7dumrXrp3Cw8P1xRdfXPK8/v3764EHHtB9990nFxcX+fr66q233rroN/Hc3Nw/LZtdvHixHn30Ub3yyisaOXKkrFar2rZtW3yhqT9q3bq13NzcNHr0aC1ZsqTURmHYsGHasGGDhg4dKg8PD/Xu3VsZGRnFjV5p3njjDb366qsaPHiwqlWrJsMwdNNNN5VYzngxY8aM0TPPPKPhw4fLzc1N3bt314YNG4qX5np7e2vs2LHKzMwsvmWZq6ur3nnnHU2fPl0ffPCBioqK9Ne//lXdunUrU1YAqCjoP/6L/uPKXYv+42ImT56sW265RT/99FPxMXd3d82d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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "y = np.linspace(-.1, .1, 1000)\n", "siglin = np.linspace(0.001, 0.01, 1000)\n", "shlin = np.linspace(0, .5, 1000)\n", "\n", "shl_pdf = [ph.Phat(mean_, std_, sh, shr_).pdf(mean_) for sh in shlin]\n", "shr_pdf = [ph.Phat(mean_, std_, shl_, sh).pdf(mean_) for sh in shlin]\n", "\n", "shl_nll = [ph.Phat(mean_, std_, sh, shr_).nll(mean_) for sh in shlin]\n", "shr_nll = [ph.Phat(mean_, std_, shl_, sh).nll(mean_) for sh in shlin]\n", "\n", "\n", "fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2,2,figsize=(18,12))\n", "\n", "ax1.plot(y.reshape(-1,1), phat_fit.nll(np.tile(y, 1)).T)\n", "ax2.plot(siglin.reshape(-1,1), ph.Phat(mean_, siglin, shl_, shr_).nll(mean_).T)\n", "ax3.plot(shlin, shl_nll)\n", "ax4.plot(shlin, shr_nll)\n", "\n", "ax1.set_title('NLL Relative to Log Returns')\n", "ax2.set_title('NLL Relative to Deviation')\n", "ax3.set_title('NLL Relative to Changes in the Left Tail Shape')\n", "ax4.set_title('NLL Relative to Changes in the Right Tail Shape')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we can see just how sinister the lack of a tail index can be. The fitted model, with no tail indices, appears to be as good a fit, if not better, for the random samples than the actual model that created them!\n", "\n", "It is only deep in the tails that the larger tail index plays a role." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/by/3p7tzvtd0_9cn60snk5cv8g40000gn/T/ipykernel_73140/1042267465.py:14: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n", " plt.show()\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAFoCAYAAACc1hUlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABpdUlEQVR4nO3deXxU9b3/8dc5syaZJJOdJCTsO7JIFXEBsVZABBS1tVq36/Vq69LV1vqjaq2t1PYWW7Xa3nptr9Xa2qogKu5aFWQTwSA72fd9mX3OOb8/hgyE7CGZyfJ5Ph55JDlzzplPcjLDm+/3e75fxTAMAyGEEEII0WtqtAsQQgghhBiqJEgJIYQQQvSRBCkhhBBCiD6SICWEEEII0UcSpIQQQggh+sgc6SfUdR2Xy4XFYkFRlEg/vRBCCCFEjxmGQSAQIC4uDlVt3/4U8SDlcrk4ePBgpJ9WCCGEEKLPJk+eTHx8fLvtEQ9SFoslXJDVao3000dEXl4eM2fOjHYZog/k2g1tcv2GNrl+Q9dwvnZ+v5+DBw+G88vJIh6kWrvzrFYrNpst0k8fMcP5Zxvu5NoNbXL9hja5fkPXcL92nQ1HksHmQgghhBB9JEFKCCGEEKKPJEgJIYQQQvRRxMdICSGEEIOZruvU1NTQ0NCApmnRLmdIMJvN7Nu3L9plnBKTyYTT6SQ1NbXDaQ46I0FKCCGEOEFJSQmKojB27FiZ87CHXC4XcXFx0S6jz1rniqqsrKSkpITc3NweHytde0IIIcQJXC4X2dnZWK1WCVEjhKIoWK1WsrOzcblcvTpWgpQQQghxkt507Yjhoy/XXf5ShBBCiEEuGAzyxBNPsGzZMi6++GKWLFnCk08+iWEYUamnuLiYe+65B4DPP/+cBx544JTPOWXKFG666aY22+rq6pgxYwaPPvpoj89TUlLCBRdc0OU+jz76aK/O2RUZIyWEEEIMcj/96U+pqanh73//OwkJCbS0tHDbbbcRHx/PNddcE/F6ysrKKC4uBuC0007j3nvv7ZfzFhQU0NjYSGJiIgBvvvkmCQkJ/XLugSItUkIIIcQgVlFRwYYNG1i7dm04VDgcDu69915SU1MBqKmp4Vvf+harV6/m8ssvZ/PmzUCo5WXNmjVce+21XHDBBTzxxBMAaJrGQw89xGWXXcbKlSv585//DMDWrVu54oorWL16NT/60Y+orKzkpptu4qtf/SqLFy/m17/+NQAPPvggeXl5/PSnP2Xr1q3cfPPN7N+/n0suuSRc93vvvcett94KwB//+Mfwcz388MOdtqRdcMEFvP322+Hv33jjDb7yla+Ev//ss8+48sorWblyJddffz2FhYUAfPHFF1x22WVcdtllPP744+H9O/u99CdpkRJCCCG60LznfZp3vzsg546ffQHxs87vcp89e/YwYcKEcCtNqwkTJjBhwgQAfv7zn3P55Zfz5S9/maqqKq6++mpefvllAA4cOMCzzz5Lc3MzF154Iddccw2vvvoqAC+99BJ+v5+bbropvFZeQUEB7733HvHx8Tz11FNccsklXHbZZTQ3N7No0SL+4z/+gzVr1vDYY49x3333sXXrVgCmTp2KqqocPHiQyZMns3HjRlauXMm///1v8vLy+Oc//4miKNx1111s2LCBVatWtftZly1bxpNPPsnll19OdXU1hmGQlpYGhNa8+973vscjjzzCrFmzeP311/ne977Hv/71L370ox/x4x//mLPPPpvHH388XFNXv5f+IkFKCDGs6EE/ismMokiDuxg+Trx7cNOmTTzxxBPouo7VauVf//oXmzdv5ujRo/zud78DQmOqWrve5s+fj9VqJSUlBafTSXNzM1u2bGHfvn188sknALjdbg4cOMDEiRMZN24c8fHxANx000188sknPPXUUxw6dIhAIIDH4+m0zlWrVvHqq6+Sk5PDtm3b+MUvfsEjjzzCnj17WL16NQBer5esrKwOj587dy75+fk0NzfzxhtvsGTJEmpqaoBQwEtISGDWrFlAKHTde++9lJaWUlVVxdlnnw3A6tWr+de//gXQ5e+lv0iQEkIMC4ahE7PvLQreWIs5MZWMy+/CNmp8tMsSw0D8rPO7bTUaSDNmzODIkSO0tLTgcDhYunQpS5cupaSkhOuuuw4ITSL6l7/8BafTCUBlZSWpqam8/fbbbRYTVhQFwzDQNI277rqLiy66CAgN6o6NjWX37t3Y7fbw/mvXrqW4uJhLLrmECy+8kM2bN3c5wP2SSy7h+uuvZ+rUqZx77rnYbDY0TeP666/nxhtvBKCpqQmTydTh8YqisHjxYt555x3efPNNHnnkEZ599tnwz3gywzCIjY1tU9OJ5+7q99Jf5L9sQohhoXHbRuyF23HMOBdD16n4x1o0b+/mgxFi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tWu544478Pl8LFq0qN008UIIMRC0plqMoB9LcmavjjPFODDFOfHXlA5QZUKIkahHQeriiy/m4osvbrNtwYIFbNiwYUCKEkKIzvjrygCwpGT1+tjQgHNpkRJC9B+Z2VwIMaQEassBsCT3PkhZU0bTsvdDDMPo9Q0yYmS79v5NNDT7+v28zngbz9zfdY9OSUkJS5cuZcKECUBoxnGXy8Wll17KnXfeeco1vPjii2zbti08Dro/GIbBo48+yltvvYWiKFitVu68884BHQZ09913c+aZZ7J69eoBe46OSJASQgwpgboyFIsdk6P3d95ZUkej+9xorgbMfThejFwDEaJ6c96Tl4iprKxkyZIlLF++PBywBpPXX3+dvXv38tJLL2E2m8nPz+frX/86r776KikpKdEur19JkBJCDCmBujIsyZl9alFqHVcVrK+QICWGtOrqagzDIC4ujmAwyP3338+hQ4eoqalh3LhxPPbYY9TU1HD77bczadIk9u3bR0pKCr/97W9xOp28/PLLPPHEEzgcDrKzs8M3k3322WfhmciTkpJ44IEHGDNmDNdeey3Tpk1jy5YteL1e1qxZwzPPPMPhw4e54YYbwiugnFifpmn4/X7MZjPjxo3jd7/7HWZzKHasW7eOLVu20NjYSFJSEo8++ihpaWmcc845LF68mB07dpCWlsbVV1/NM888Q0VFBWvXruXMM8/k2muvZfz48ezZswefz8c999zDueee2+b5X375Zf7yl7+g6zozZszgvvvuQ1VV7rnnHg4dOgSE1iP86le/esrXoscTcgohxGAQqCvv0/goAEvSqPA5hBhKqqqqWLVqFUuXLmX+/Pk88sgjPPbYY4waNYpdu3ZhsVj4+9//zltvvYXP5+ODDz4AYP/+/dx4441s3LiRhIQEXnnlFSorK/n1r3/Ns88+y9///vfw/E9+v5/vfe97/OQnP2HDhg1cddVVfO9732tTxyuvvMKqVat48MEHefTRR3n22Wd5/PHH29V76aWX0tLSwoIFC7jpppv44x//yLhx40hMTKSwsJCjR4/y/PPP88Ybb5Cbmxtelqampobzzz+fTZs2AfD222/z3HPPcccdd4RXU2mt9aWXXuK///u/ufvuu/H7/eHHDh06xD/+8Q+ef/551q9fT0pKCk899RS7du2isbGRl19+maeffrrLxZd7Q1qkhBBD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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1,figsize=(10,6))\n", "\n", "y = genmod.rvs(size=10000)\n", "y_ = np.linspace(y.min(), y.max(), 10000)\n", "\n", "bins = np.linspace(y.min(), y.max(), 100)\n", "ax.hist(y, bins=bins, density=True, label='Random Samples')\n", "ax.plot(y_, genmod.pdf(y_), label='Generative Model')\n", "ax.plot(y_, phat_fit.pdf(y_), label='PhatNetBeta')\n", "\n", "ax.set_xlim((-.05, .05))\n", "\n", "ax.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PhatLoss: A Custom Loss Function ##\n", "\n", "As with our MLE, we can incorporate a tail estimation method into our process in order to alleviate underfitting in the tails. To do so, we have to again amend the network model, including the use of a new custom loss function, `PhatLoss`. The updated network is available as `PhatNet`.\n", "\n", "First, we will generate some data." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "genmod = ph.Phat(.0003, .0032, .25, .29)\n", "\n", "n = 60000\n", "y = genmod.rvs(size=n)\n", "data = ph.DataSplit(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, we will find our estimate of each tail index." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "29a8d056e8944e39807989a6722ecc4b", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/10 [00:00open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager) {\n", " manager = IPython.keyboard_manager;\n", " }\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "\n", "from matplotlib import cm\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", "\n", "fig, ax = plt.subplots(figsize=(8,5),subplot_kw={\"projection\": \"3d\"})\n", "\n", "history = pd.read_csv('history_phat_learning.csv')\n", "bodyloss = history.nll\n", "tailloss = history.two_tailed_amlse\n", "X, Y = np.meshgrid(bodyloss, tailloss)\n", "Z = X / (Y + 1)\n", "\n", "surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=False)\n", "\n", "plt.gca().invert_xaxis()\n", "\n", "ax.set_xlabel('Log Likelihood', labelpad=10)\n", "ax.set_ylabel('AMLSE', labelpad=10)\n", "ax.set_zlabel('Total Loss')\n", "\n", "ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([1, 1.5, 1.25, 1.1]))\n", "\n", "ax.set_title('Phat Loss', y=.95)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PhatNet ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we see the model." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime as dt\n", "import tensorflow as tf\n", "\n", "nnet = ph.PhatNet()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To compile the model, we pass our custom loss function `PhatLoss` as well as a number of custom metrics to monitor results, mainly through the `PhatMetric` class. Both `PhatLoss` and `TwoTailedAMLSE` take the estimated shape parameters as arguments." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": true }, "outputs": [], "source": [ "from phat.learn.phatnet import NLL, TwoTailedAMLSE\n", "\n", "metrics = [NLL(), TwoTailedAMLSE(xi_l, xi_r)]\n", "optimizer = tf.keras.optimizers.Adam(learning_rate=5*10**-5)\n", "nnet.compile(loss=ph.PhatLoss(xi_l, xi_r), optimizer=optimizer, metrics=metrics)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have added some customization to the `fit` method including a number of callbacks. For instance, a TensorBoard log is created simply by passing the `logdir` keyword." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 00028: early stopping\n" ] } ], "source": [ "history = nnet.fit(\n", " data.train, \n", " epochs=100,\n", " validation_data=data.test,\n", " verbose=0\n", ")" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "```python\n", "pd.DataFrame(history.history).to_csv('history_phat_learning.csv', index=False)\n", "results = pd.DataFrame(\n", " list(zip(nnet.predicted_params().values[:, 0], genmod.learnable_params)),\n", " index=genmod.PARAM_NAMES[:4],\n", " columns=['Trained', 'Actual']\n", ").to_csv('phat_w_tails_results.csv', index=False)\n", "```" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 TrainedActual
00.00018790.0003
10.0035830.0032
20.33160.25
30.35740.29
\n" ], "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = pd.read_csv('phat_w_tails_results.csv')\n", "results.style.format('{:.4}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Above we see a much improved fit of the tail indices while not sacrificing accuracy in the body parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Caution on Scaling ##\n", "\n", "The model inputs are all `0` so the usual concerns regarding normalization/standardization/activation in the hidden layer do not apply. Still, the scale of the target `y` values do impact performance in an important way.\n", "\n", "If the scale of the `y` values is too large, our custom loss function will work in the exact opposite fashion we expect. To see why, recall our loss function:\n", "\n", "$$ \\text{Loss} = \\frac{\\text{Loss}_{\\textit{body}}}{\\text{Loss}_{\\textit{tail}}+1}$$\n", "\n", "We can see that if $\\Delta \\text{Loss}_{\\textit{tail}} >>> \\Delta\\text{Loss}_{\\textit{body}}$, then an *increase* in both will lead to a decreasing loss value.\n", "\n", "This can result if the scaling of `y` is too large. \n", "\n", "To demonstrate, we'll repeat the prior experiment and simply increase the standard deviation of our Phat distribution by a factor of 100." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0e0cfcab58ff4c87961dd5f600fbc498", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/10 [00:00open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager) {\n", " manager = IPython.keyboard_manager;\n", " }\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "from matplotlib import cm\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", "\n", "\n", "fig, ax = plt.subplots(figsize=(6,4),subplot_kw={\"projection\": \"3d\"})\n", "\n", "# pd.DataFrame(history.history).to_csv('history_phat_learning_on_100x_scale.csv', index=False)\n", "histy = pd.read_csv('history_phat_learning_on_100x_scale.csv')\n", "bodyloss = histy.nll\n", "tailloss = histy.two_tailed_amlse\n", "X, Y = np.meshgrid(bodyloss, tailloss)\n", "Z = X / (Y + 1)\n", "\n", "surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,\n", " linewidth=0, antialiased=False)\n", "\n", "plt.gca().invert_xaxis()\n", "\n", "ax.set_xlabel('Log Likelihood', labelpad=10)\n", "ax.set_ylabel('AMLSE', labelpad=10)\n", "ax.set_zlabel('Total Loss')\n", "\n", "ax.set_title('Phat Loss with Incorrect Scale')\n", "\n", "ax.get_proj = lambda: np.dot(Axes3D.get_proj(ax), np.diag([1, 1.5, 1.25, 1.1]))\n", "\n", "plt.show()" ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.0" } }, "nbformat": 4, "nbformat_minor": 4 }