{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction #\n", "\n", "#### P.H.A.T. - **P**areto **H**ybrids with **A**symmetric **T**ails ####\n", "\n", "The **Phat** distribution is an attempt to address the issues of fat tails in two-tailed data. It is a two-tailed, fully-continuous, well-defined asymmetric power law probability distribution. \n", "\n", "It is a mixture model of two Pareto hybrid distributions, as described in [2009 by Julie Carreau and Yoshua Bengio](https://www.researchgate.net/publication/226293435_A_hybrid_Pareto_model_for_asymmetric_fat-tailed_data_The_univariate_case) with:\n", "\n", "+ Gaussian body \n", "+ distinct Pareto power laws in either tail.\n", "\n", "The distribution requires only 4 parameters:\n", "\n", "+ $\\mu, \\sigma$ in the Gaussian body\n", "+ $\\xi_{\\text{left}}, \\xi_{\\text{right}}$, being the inverse tail index (1/$\\alpha$) for either Paretian tail.\n", "\n", "The **phat-tails** package makes available several methods to fit a given time-series dataset to the parameters of the Phat distribution and produce a forecast with the results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Installation ##\n", "\n", "Installation available via `pip`\n", "\n", "```console\n", "$ pip install phat-tails\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quickstart ##\n", "\n", "All pertinent classes and functions are imported via the module `phat`." ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "nbsphinx": "hidden" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [], "source": [ "import phat as ph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The probability distribution is found in the main class, `Phat`, which mimics the structure of the [continuous distributions found in scipy.stats](https://docs.scipy.org/doc/scipy/tutorial/stats/continuous.html#continuous-distributions-in-scipy-stats). \n", "\n", "We pass the four parameters to instantiate the distribution. For simplicity, we will show the distribution with equal tail indices initially." ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "mean, sig, shape = 0, 1, 1/5\n", "phat_dist = ph.Phat(mean, sig, shape, shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below is a complete rendering of the distribution, with breakdown among the component Gaussian and Pareto tails." ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "image/png": "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40YWLVpUq/yVnbM6+ZsTuQdOCGFQkrJSic+PpZ/zINRq+Rv071xszdixL5azDpZ06uSidByhACcnJ8LCwvSvk5OTCQoKYuzYsbz++us1OmZmZuYdB9ivL38/Z+fOnencuXODZmjM5LefEMKgbD93EIAR7foqnKRx8nK1ISshi6MHZW5UcdP169fR6XRERkaW6V3797//zciRI5k6dSqPP/44GzduBCAtLY05c+YQFBTEo48+SlFREcuWLSMlJYX58+dX65x/78lbtGgRGzduJDw8nAcffJB58+YRFBTEggULKCoqQqfT8c477xAUFMSYMWP48ssvy53z9mN+8sknjBkzhuDgYJYvX05paSmHDx+u8NgAISEhJCeXf8Bn8eLFrF69GoDY2FiCgoI4c+ZMDb7KN504cYLp06czceJERo4cybp162p8rKpID5wQwqAcSTyGvbETHVw9lY7SKFlZmeLoaUvCxVSKi0sxlqm1mp2UlBRCQkIoLCwkPT2dzp0788EHH2BiYqLf5o8//iAiIoJffvmF/Px8Jk6cyNChQwG4du0an3zyCe7u7kyZMoUDBw6wZMkSZs2axYcffljrfMePH2fbtm04OTkxZcoU9u3bR2FhIceOHWPLli0UFxczY8YMXn31VaKjo8udc8+ePfzxxx9s3LgRjUbDE088wfr162nTpk2Fxx46dGiZHsnbPfXUU4SGhjJs2DCeffZZXn/9dTp16lRmmwULFnDlypUK99+wYQNmZv8bh9LHx4evv/4ajUZDdnY2Q4cO5b777iuzj1arrZOrB1LACSEMRl5BMe00vfFytUGlUikdp9HqFODGn1fOcuJ4Aj17eSkdp1k5/sRT5F2Nq/PjWnh5ErD6vWpte+sSqlarZfny5URFRREYGMixY8f02xw4cIDRo0djYmKCiYkJw4cP16/z8/PD0/PmH0i+vr6kp6fX6Xtp27YtLi4u+uNnZmZy+vTpMnnCwsKIj4+vcP9Dhw4xduxYfeE0adIkNm/eTJs2bSo8dmWcnZ2ZMGEC9913H6tWraJHjx7ltlm1alW139vu3bv54YcfyMrKKlOoabVapk+fjoeHB/fcc0+5oq4mpIATQhiMq8nZOBq3Ymh7H6WjNGo9e3my55fznAyPlwKugVW3yGoIarWa5557jgkTJvCf//yHbt26lVmn1Vb8tLJG87/SQKVS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XbowZ84cTp8+Xem+L7/8Mt9//z1jxowhPDycp556qt7zvvfeexw9epSwsDDefPNNPvroIzZv3szMmTMr3P7AgQOEhISU+7d3795y2xYVFXH27Fn+85//MH78eJ544gmuXbtWbrt9+/bRuXNnvL29AZg+fTpbtmy54/KKLjcLccvBS2c4kXkAtXUGRkZy75tQnkqlYtKs7pi7WHHpWqbScUQjdrdt8i3VbZtr2y7rdLoGaZsVm4khODiY4ODgMsv+PscY3OzGvJ27uztff/11vWa7XU5ODl9++SVbt27F2tqarl27cunSJZ5++mmsrKx44403mDBhAh07dtTv07dvX8LCwqp1/OTkZAIDA3nmmWfw8fHhs88+Y968eWzatKnM/X1JSUm4uLjoX7u4uJCTk8PVq1crXJ6bm1vlZVTRfP0Q+SumKgumBsjQIaLxcLa3wN7alIP7YvG51waNsZHSkUQjU1WbXJnqts21bZdzc3MrXVdXbbNMpVWFQ4cO4e3tjafnzcmWi4uLsba25h//+AcAFy9epE2bNmX2OXDgAG+99Va5Yz377LMMGDCgzDJPT88yhetDDz3ERx99RHx8vP6ccPOhg4oYGVX8C06eKBR3cvjyOeLzLzPScxSWpmZKxxFCT6VSYatScSQ8gT2OVgwb3lbpSKKRqapNvkWr1ZZrB6vbNte2XVar1ZWuqytSwFUhOTm5zIMSGzZswNnZWV9BFxUVYWJiUmafu+mBO3/+POfPn2fChAn6ZTqdDmNj4zLbubq6cvLkyTK5bG1tcXNz49SpU+WWW1hYVPs9iublh8hfMVGZMfUe6X0TjU/vXl7s23GB8L2XGTTYF41G/hgV/1NVmxwaGoq/vz8lJSXl5katbttc23bZwsKi0nV1RX4yquDi4sL58+dJSUnh5MmThIWFkZqaSlFREampqTg41G7ib7Vazeuvv05cXBwA3377Le3bty/T9QrQv39/Tp48SWxsLADr169n2LBhd1wuREWup+dhqXVimOcwrM2kyBeNj9pITe9BrSnMKeKvPReVjiMamcra5LS0NFJTU3nmmWdqNbF9bdvlqtbVFemBq8KAAQPo168fY8aMwdbWlg8++IB33nmH2bNns2DBAtq1a1er47dr144lS5bw2GOPUVpaiouLC++++y4Ac+bMYdq0aQwbNgwHBwfefPNNFixYQHFxMV5eXrz11lvY2dlVuFyIipy5lEoX6z6M7+mrdBQh7qh/fx8O777E0b8uM2Bga4zlXjjxX1W1yePGjcPOzq5W56isXYaybfOd2t87tdl1SaVrRo8r3hpPpbJx4Hx8fKp9vC+++AIPDw+GDx9e11Hr3aVLl7Czs5Nx4AxQTT+T41cvsPPkeUZ3DMTf17HqHcRdkZ+VurVv7yX27rjAmGld6drRpeodKiCfSeNT3XHgNBpNuR6vqnzxxRe4uLgwatSo2kRsUImJiWi12irHgauobpFLqLUQHR1N+/btlY4hRLV8dWIjp/L/pJW7pdJRhKhS337eBIxux+XruTIunKiW6OhoOnTooHSMBiMFXC288cYbZZ5IEaKx2htzioT8WAZ7DZZ734RBUKvVdG3rRE5OIeHHE5SOIwzAG2+8QatWrZSO0WCkgBOiidNqtXwfuQVztSUz7hmpdBwhqs3FwYK0syn8sekMBQXFSscRolGRAk6IJm7H+XCSC+MZ4T0ccxMZ900YDpVKRb+hbSguKGH7tiil4wjRqEgBJ0QTptXqiL2WhatpK6YEGN7DNkJ07+6BnYsVkYfjyMkpUDqOEI2GFHBCNGFXkrKwLvXgmcB5mGhk1CBhmEaM60BpcSm//HxO6ShCNBpSwAnRRBUUFfLDyR1YWxnh5WytdBwhaqxDB2ecvO24Fp9Bbn6R0nGEaBSkgBOiifo6/DfCs3Zh45RbZgJmIQzRtNk9cAtw41RMqtJRhGgU5JpKI6HT6Vi8eDFt27bloYceqnCbqKgoli1bRnZ2Nmq1mqVLl+Lv78/mzZv5/PPP9dtlZ2eTnJzMnj17aNmyZUO9BdGIXM/KYHf8n3hZ+DKobTel4whRa3Y2ZrTzakHkuWRcrU3x9q58EHIhaquxt8vSA1eFwsJCunXrxv/93/+VWT558mS2bNlSJ+e4ePEis2fPZtu2bXfcJj8/n4ceeoiHH36YzZs3M2/ePJ599lkAJkyYQFhYGGFhYfz44484Ojry4osvSvHWjH12ZBPFuiIe7HGv0lGEqDN+Xi2IPxLPlh9PKx1FKKQh2mQwjHZZeuCqYGpqyocffshrr73G3LlzAdi2bRslJSWMGzeuwn3mzp1LREREheu6d+9e7htv3bp1hIaG4ubmdscc+/fvx9PTk0GDBgEwbNgwPDw8ym23du1a7O3tmTZtWrXen2h6opLiOJ4aTlf7e+jo6q10HCHqjIW5MZ16eHBy/xWOHLlKr15eSkcSDawmbTI0zXZZCrhquOeee4iPj6ekpASdTsfKlSt5+eWXUalUvPHGG0yYMIGOHTvqt//7N0JVXnrpJQAOHTp0x20uX76Mo6Mjzz//POfPn8fGxoaFCxeW2SYtLY3PP/+cjRs33tX5RdNy5tJ1HI09eLh3qNJRhKhzo8b6ce74NXZvjaJbgDsmMtF9s1NZm3wnTbFdlkuo1WBubo6dnR3x8fF8//33uLu7069fP+BmN2ubNm3qPUNJSQl79uxh6tSpbNy4kX/84x888sgjFBX974ms77//nmHDhsn0Xs1Y4o1cCrItmB8wF2cbuUdIND2mpsYMGNWOguxCftt6Xuk4QgGVtcm3aLX1P3+u0u2y9MBVU6tWrTh79iwff/xxmUq+qKgIExOTMts+/PDDlXbVfvrpp3d9ficnJ1q3bk3Xrl0BGD58OEuWLCEuLg5fX18Atm7dypIlS+762KJpKCwuYu3hH/GzvId2XnZKxxGi3vTp04pjB68SF59BfmEJ5qbSlDU3d2qTQ0ND8ff3p6SkhDfeeEO/vCm2y/JdX01eXl68/fbb9O7dm06dOgGQmpqKg4NDuW1r8o1QlYEDB/LWW28RGRmJv78/R48eRaVS6a+3Z2ZmcvXqVQICAur83MIwfHV0G5E5h+jj2xEjI+lcF02XWq1m5txAfjsUy4no6/Tp7Kp0JNHAKmqT09LSSE1N5ZlnnsHOzq7M9k2xXZYCrppatWrFli1beOqpp/TLoqOjadeuXb2ed86cOUybNo1hw4bx4Ycf8uqrr5Kfn4+JiQmrV6/G1NQUgCtXruDo6IixsXG95hGNU3zadf6M20UryzaM8OupdBwh6p2dtSntvVpw7EQCLYyN8PNzUjqSaEAVtclRUVGMGzeuXPFW1xpLuywFXDVZWFgwdOjQMtexo6Ki6rSAW758eblla9eu1f+/Z8+e/PDDDxXu26VLF3bs2FFnWYRh+ejQd2jR8ljgDKWjCNFg/FrZse2rY/xyIZU2i4ai0UjPc3Nxpza5c+fOdXqextwuy3d7NcXExNChQ4cyy6Kjo2nfvr1CiYS4aVdUBDHZ5xjoPpjWLeVSkmg+zM1M6DO8DXnpBWzfJg80NCd3apP/vqwpkwKumiq6XPrGG2/IE59CUSWlWq4namhveQ8P9gpWOo4QDW7QoNbYOVtxfF8sySk5SscRDeRObXKrVq0UStTwpICrpvXr1zNs2DClYwhRRuTFG2gLTZnfZwZmJqZKxxGiwanVaiZO64pOq2PjdyfQ6XRKRxINQNpkKeDKkB98YUhOxV/i09Of4egELg6WSscRQjGeXi3o3McLrZkRccnZSscRtaRSqZpNe6zT6SodgLgyUsD9l4mJCYWFhUrHaDAFBQXlxq8ThqO4tJRPjn5NZul1AtrKfW9CjJ/gT+vOLkScT6GouFTpOKIWjI2Nm017XFhYWOOnVKWA+y8rKyuKiorIzm76f71lZWVRXFyMpaX02hiqLw7/wo2iJCZ3mEhLK1ul4wihOLVaRa9OLly/ks733x5XOo6oBTs7OzIyMigoKFA6Sr0qKCggMzOzxsOeyDAi/6VSqWjdujUXL17E2toaS0vLGndrNlZarZa8vDyys7Px9fVtcu+vuYjPSWVX0g58rNoR7N9f6ThCNBoOtuZYoOLSqSSOHL2KjGdtmExMTPDw8OD8+fPY2dlhZmbWpNornU5HQUEBGRkZeHp61rgHTgq421hbW+Pv76+v/JvaNXiVSoWtrS2tWrVCo5GP3hBptTp2JkWgURnzVP/ZTeqXmhB14d6pXVl1KY1dm88yYLTMB2yoWrZsiY2NDRkZGRQVFTWp9lilUmFhYYGbm1utbmWSVvxvNBoNLVu2VDqGEBU6czkVj7zuTOnnjqutNE5C/J2ZmTFjp3Thp/+Ec+RABv2lk9pgmZiY4OQkM2zciXQwC2EgohLjORmTjFsLCwa066R0HCEarU6dXGgX4EZOchHHT1xTOo4Q9UIKOCEMQF5RASsOfMKRvC20dTNTOo4QjV7olK7YtTXnUlou+YUlSscRos5JASeEAVj113dklqQS2ikIYyO5702IqpiYGNGtszUlWi1/HryMtlSrdCQh6pQUcEI0cr+dOcyx1CP0aBnI4HYBSscRwmBYmhnh29KKiF+jCdt8Ruk4QtQpKeCEaMSu3Eji6zPf4WDszBMDpikdRwiDc08XV1q623D64BUiI5OUjiNEnZECTohGqlSr4+i5JOw0jjzb/2HMZa5TIe6aWq3mvgd6YmxmzC8bTpKZ1bQHhxXNhxRwQjRSx6OSKcozY1G/Bfg6eSgdRwiDZWNrxvjpXSnKL2bdf46i1cr9cMLwSQEnRCP0a+QBvj73Dd7uFng6WysdRwiD16mTC936e1OiVnHmUprScYSoNSnghGhkziVeYd2Z9ZSo8rinnbPScYRoMoJDOtF9cGsiL94gIaXpz3stmjYp4IRoRNJys/n3gTUYqTQsHvwoZnLfmxB1RqVS0buTC8YlWr75+BDxCRlKRxKixqSAE6KRKCkt5fVdn5BdksFj3R/Ao4VMISNEXdMYqendxZXivGK++/QoOblFSkcSokakgBOikdgTGU1yQSITfEPo69tZ6ThCNFmeni0Iurcz+dmFfLnmEKUl8lCDMDxSwAnRCFyISyc5ScXcDk8wvcdIpeMI0eT17OnJPQN9SI3P4rt1x5SOI8RdkwJOCIXtOBfOVxGbcXWwoF8nb6XjCNFsjA3uSKuOTiQlZHHu0g2l4whxVzRKBxCiOTsRF8Pnp77CxrgFPf2dUKtlnlMhGopKpeK+2T3YdzKBExduYGVpgqezjdKxhKgW6YETQiEXr1/j3UMfY6I248WhT2BlZqZ0JCGaHY1GTb+u7liZali/9ignT11TOpIQ1SIFnBAKuJaRyut7VqHVaVnUfz7udi2VjiREs2WsUdO3syva4lK2rDtBTIxcThWNnxRwQjSwgsIStoQfp1BbwFO95uLn2krpSEI0ew4OlsycG4hao+b7/xzl6tUMpSMJUSkp4IRoQIVFJfwZEYcdniwbtIQe3n5KRxJC/Jebmw3TH+6FTgvr1hwi8VqW0pGEuCMp4IRoIFn5uSzc+jZn088woJs7Ps5y2VSIxsbHx557H+iOkYkR+09dIye/WOlIQlRICjghGkBGXg7Pb19JcmE8fq3scWtppXQkIcQdtG/vxIML+qEzVrPzyBWSr+coHUmIcqSAE6KepeZk8fz2d7lemMisTv9grH9fpSMJIarQ0s6CYT29iDuZxH9W7SdB5k0VjYwUcELUo/TcXJ7//d+kFiXzUOdZUrwJYUDsbcwYMbIdpcWlfPXRIS5dSlU6khB6UsAJUU9y8orYG5GEk5EXjwY8xMiOvZWOJIS4S35+Tkx9qCc6nY7v1hzhzJlkpSMJAUgBJ0S9OBkXw/f7wykq0bJg4AyGtLtH6UhCiBpq29aRmY/1wchYzeZ1x7hyLVPpSEJIASdEXfsz6hhvHVxNePYuhvf0xLGFudKRhBC15Olpx0ML+tG2tycHIpO4GJ+hdCTRzEkBJ0Qd+i58B5+c+AxrjS0vDH0MO2uZHkuIpsLR0YqJYzvgbG/B9m3n+e6bY2hLtUrHEs2UYgXcli1bGDNmDCNGjGDdunXl1p87d45JkyYRFBTECy+8QElJCQCbN2+mf//+hISEEBISwsqVKxs6uhDlFJeW8vauL9l0cSMeFt68Pfo5mR5LiCbIWGPEwAB3zHRw4fg1Plm9n9y8QqVjiWZIkQIuOTmZlStX8u233xIWFsaGDRuIiYkps83ChQt58cUX2b59Ozqdju+//x6A06dPs2jRIsLCwggLC+Ppp59W4i0IoVdQVMKf4Ve5kpFAj5aBLB/9NLbmMs6bEE2VxkjN/Q/3ImCANzfiMvloxV4ZZkQ0OEUKuAMHDhAYGIidnR0WFhYEBQXx22+/6dcnJCRQUFBAt27dAAgNDdWvP336NJs3b2b8+PE8++yzZGbKzaRCOafiL7J5/1nSs4p4qvdcnhs2G2ONRulYQoh6plarCZ7gz6ipXSjMLeKLDw5yOS5d6ViiGVGkgEtJScHR0VH/2snJieTk5Duud3R01K93dHTkiSeeICwsDFdXV5YuXdpwwYX4L61Wy3fhO3hj/0rCs/5geC8v2no4KB1LCNHAevXyYvbjffHwd+bg2WRORl+nVO6LEw1Aka4CnU5XbplKparW+g8//FC/7OGHH2b48OF3ff7IyMi73qc5i4iIUDpCo5JbXMimuL0kaGNxwJmglvcQG3OW2AbMIJ9J4ySfS+PTUJ9Jh3Y6Lly7wW/b4/gtrYReA1tgY2PcIOc2NPJzUjcUKeCcnZ0JDw/Xv05JScHJyanM+hs3buhfX79+HScnJ7Kzs/npp5+4//77gZuFnqYGl6v8/f0xNTWt+RtoRiIiIujevbvSMRqNMwmxfHjw/8jRZjLYbShz+4ZiZGTUoBnkM2mc5HNpfBr6M+kF/LHrAvt/i+bA7+kMCe5A377eDXZ+QyA/J3ensLDwjp1OilxC7du3LwcPHiQtLY38/Hx+//13Bg4cqF/v7u6OqampvkrfvHkzAwcOxMLCgk8//ZSTJ08C8M033zBixAgl3oJoZkq1Ok7FXCf8dCYWaiue7jmfeQMmN3jxJoRo3IYOa8s/5gViYm7Mzp8i+c+aQ+TmylOqou4p1gP39NNPM2vWLIqLi7n33nvp0qULc+bMYcGCBXTu3JkVK1awZMkScnNz6dixI7NmzcLIyIj33nuPV155hYKCAry9vXn77beVeAuiGTl77QrfRPxCB+NBtHN3ZJrfIkyNpXATQlTMx8eBBYsG8+N3J7h4KonvN0YydmwHnOwtlI4mmhDFHpcLDg4mODi4zLK1a9fq/+/n58ePP/5Ybr8ePXqwadOmes8nRGFJCf85FMaehD/RqIwJ6Tic3r5uSscSQhgAUxMN983uwdlzKVxIyWLX0as4mGjo09MTayu5hUfUnox3IEQFjlw+x2fH15NenEJb6w4s6P8PnG3slY4lhDAwHTs40bZtSyLOJrFz3QkidsUwcHR7+vb1LvPwnhB3Swo4IW5TUFTC8agUPo9aT6Euj/s7zWKMfx+lYwkhDJixRk1gFzes1Wp+/fE0uzae4eTReCZO7Yqrq43S8YSBkgJOCKCktJQfjv+BNsMZtdaUae2m06OtFzbmcs+KEKJudPJ3oV07R375+QyRh+P4dOVegmYEcE9nFzRGMjW5uDtSwIlm768LJ/n29EbSilPobT+Eh/qEYGct96gIIeqesYkRE+/tQq++3vy15yIxyVlcy8zH09acgC4uqNVSyInqkQJONFtnE6/wRcRPxOZewEJtzYwO0xnv319+gQoh6p27mw3TpweQkpbH/vA4fv3mGHvsLRg+rgNdurgqHU8YACngRLOTm1/M6Ys32BC9keSSKwz3GMnMnqMxNzFTOpoQoplxsrcgeGhbLEp1ROy9zOYvI9jrbsPI8R1p26al0vFEIyYFnGg2EtJv8FXEFuyL22GracmEtsF09GmJo5Wd0tGEEM2YRqMmaLQfAwa3Ztsv5zgXnsD6/ztM/8n+3NPRBVsZdkRUQAo40eTFpaWw7tivnEiNQIeOEe5OBHfvhaW5zFMohGg8LMxNmDS5K5kj2nHoaBzXswrZuv8y2ut5BPbxwtdXeuTE/0gBJ5qszJxCPjn0HcdTw9Gho1OLLsy8JxifljIYrxCi8bK1MydoRDsKCks4FpnIrl0XuXj8Gi09bRk0oh2dOjkrHVE0AlLAiSZFp9Nx7MoFslPNuXYjl9wCHZ3tu3HfPePwdnBROp4QQlSbmamGvt096eDbkt+3nufCyUR++s9RdjpZMirUn3ZtWspgwM2YFHCiSSgqKeG3c4fYcXEPyYXxDLKdxMA23Qj1nImZqXybCyEMVws7c6bOCCBnfEd2/h5N9KkkjkZf50JyNs5WpnRq74iFuYnSMUUDk5ZNGLT0nFzWH/+Nw0mHydNmY2VkyxjvsdzbrS9WpjIIrxCi6bCyMmVCaGdKQjoRl5xN1JU0dm6M5PeiUlp1cGLw8DZ4uNspHVM0ECnghMHRarVcSErm+nUtV5IyOZh5EAezlkzzDWW4X080RkZKRxRCiHqjMVLj42aLt6sNbham7N99iUunk7h0Kgl7N2sCh/gS0M0dI7VcXm3KpIATBiM5K50tkX9xOPEoRaWFjHV4mA7eLRnusgRnWzul4wkhRINSqVR06epGl65uJCdn8+euC1yKTCbiVCJXMwvwcDDH1d4KTw9bpaOKeiAFnGjUSrU6Dl08x5ao37mcewEdWpxM3RjuPZjxXXwwM5b7PoQQwtnZmmkz7qG4uJTE1FwuX8vi6IGrpF5IxdbZCv/u7vTt6425DJ/UZEgBJxodrVbLifgYMtIhPVXF1byrJOTH0dOxN2M6DKSjq7fSEYUQolEyNjbCy8UGLxcb2rvZsHf3JS6eSWb/1igObr+Aq28LRod2xsXBErVcYjVoUsCJRkGn0xGVFMfO6EOcuH6SrNI02pn1YJT3KHp37sv8FsMx0ci3qxBCVJeLiw2Tp3VDW6rl5KlEjh2+SlZ2IbuPxWNmokGXlk/Hjk60b+8oc0AbIGkRhaKycouITcxkzek1pBTFA+Bq5sUw70EEdeiDvaW1wgmFEMKwqY3UBAS4ExDgTmmplms3crkQm8b+rVGcOXAFU0sTWrVvyT29PGnj6yDFnIGQAk40KJ1OR3RSPH9ePMKV9EQ6mwwHwMOiFd1duxDkF4ibnaPCKYUQomkyMlLj6WyNp7M13ds7cejgFc6fTiL62DWij13Ds5srXXt54t7SEscW5lLMNWJSwIl6p9XqOHPtCjtjDnA29SyZJakAOJq40amjLW3dW2Jh5qdwSiGEaF5s7cwJGu1H0Gg/UlNzOXLoKmpbU6KvpnNkfyzpl9Jwb22Pf1c3unRxRWMsQzQ1JlLAiXqRV1TAvoun0RTYkZEBUdmnOZG/D1dzL/p79mFo2554tnBSOqYQQgjAwcGS0WM7AFBUXEp4eBzHMwq4cu46sWdS2PrDKZw87Rg2vgPuztaYmUj5oDT5BESduXwjiX2XjnMq+RzxeZcppYQAyyEM9OyPf9sBzG0xDHtLGY9ICCEaMxNjI/r28aZvH29yc4s4diyeqMhkMtPzOXw2GdXZZPLjs2hhZ06XADd8vFvIpVYFSAEnaiyvqJDLydfJzzHmcsoNfkj6AAArI1u6OgTQ07Mr/Xz8MTMxVTipEEKImrC0NGHAgNYMGNAanU5HWlYB8SnZ7ApPIP5sCqcPXMHY3BiXVnb4B7jRtasbJnKptUFIASeqTavVcjbxCkeuRnLmxnmu5V3FQePOANuJONvbcq/VZLp5tKGtkycqlYwvJIQQTYlKpcLB1hwHW3O6vjCMpKQsjh9L4HLUDRIu3CCnsISY1FzsrEzJic/Er6MLfh2cMNZI71x9kAJO3JFOp+NGXg4X4tJJSs1j4+XvSCi6CICtxp5uLe+hl0dXBrZpi5GRGvBQNrAQQogG4+Jiw+gxNjAGiopKSb6RS3peIdHnr3PuSDznjsSj1qixd7XGq7U99/TyRKfTKR27yZACTpSRkH6dw1fOEJkcTWz2JXJLshib2wIbcwvucepOH/Nu9PHujKe9s9JRhRBCNBImJkZ4utngCXRp40hGP29OnkzkYtR1kuMyORaXSUpBMTlFOaRkRqMqLKVDRxe8vGzl/rkakgKuGdNqtVy+kURBnhFZ2aUcSDjM4czfATBWmeJh2Qq/0nYEBXrjZGuNStVG4cRCCCEMgV0LCwYN9mXQYF90Oh0JCZnkaXUcPpbDlegbXI9J4+iui2jMNDi4WOPh04LA/t7Y25rLLTjVJAVcM1JSWsrZxFhOJEQTnXqRuNwr5Gtz6GkxhtaWfrRt4Yud7Wi6e3Sgs1trjIyMiIiIwNnORunoQgghDJRKpcLDww6A7OvmBIwPID4ukzORSVy9lEpqYhY3rmWRoVFhaqKhKDkHS1NjfNu1pF27lpjIkCUVkq9KE5aZl8vx+AsUFajQFNkTm5rIbxmfA2CutsTTqhXtHXzp53MPPi2d//tXTxdlQwshhGjS1Go1Xq1a4NWqBXDzfuuUG7nkFpWSkp7HgcNx5NzI4+T+WFRqFVYOFni1bUnPfq1oaWeOhZmxwu+gcZACronQanVk5hSy48J+olIvE599lfSSG4AOT2M/hjqPx9/DkxYu0wjwaEcrexfpphZCCKE4lUqFs6MVAK3dbQn0d+X69RzOnU3hyqVUUhKySIjLoPCkMTqdjmtHE7BzsMDdyw7fti1p3doB42Y4dIkUcAbqWsYNTibEEHX9EnkFJfhqelNaqmNX1h8U6HJwNnens2MnOjq3IcCjHS30k8K7KppbCCGEqIqjoxWOg6xgUGsASkpKycgp4lpyNpnnbpASl0nixTTC/7yESq2iVTdXOt7jjp2lCSYqFR7uNk3+4Qgp4Bo5nU7HjewsCgvUpGUV8Nvl3zmTcYJ8bQ4AKlS4mnkxspUdLe3MGWT2NC62LTBSN7+/RoQQQjRNGo0RLe3MaWlnTpf2Tmi1WhITs4mOuk78lXQsbM24mJBBzo08Eo4mYGSsxtrBAkdXGzxa2dGhozMO9hZN6sqTFHCNiE6nIzEzndMJF7iQeoWrWQkk51+jQJvLONt5aFQa0GpoZe2Nt50XnZx96ezWGgtTM6WjCyGEEA1GrVbj7m6Lu/v/pmfUanUkJmVzytqMxPhM0pJzuHDiGheOXyP6WiZ2jlYYFZaQn5qHm4cdrX0dcHOz+e84poZHCjiFFJWUcCElnuiUK1xOj6OteXeK8jScyT5KZMFeAGw0LfCy8sanhSeDfd1xaWGLscZP4eRCCCFE46NWq3B3s8Hd7X8jJxQUFHPxYipGFsZk5BZxNiKe+NPJXDieyB5ArVFj2cKc3qPa4uRghblGjYO9OWamjf9BCSng6plOpyM5K53cvFIK8tWcv36JnQm/kl58Ay2lAKhQY+fkSSendnh69iHIuCudXH2wMrVQOL0QQghhuMzMjOnUyUX/OtDflcKCYi7HpnPlchqJCZlkpuUTfyOX2OQckiOTyU7MxszaFLuWFji6WOPuaYd/F1fMTTWN6hKsFHB1LDU7mx3Rh7iacY3EnCRSC1Mo0OXRzXwo3qadKdGAucaCNna98bb3oL1TK9o6eWKqafzVvhBCCGHoTM2M8fNzws/PSb9Mp9ORm19MpJ05sRdSuZGcQ+q1bJIupXPeMpGY9DyMNWoyYtIwNlLh6GLNPT08cXWxruRM9UsKuDp2LCqZjRc3YoSGFiYt8bVrh5eNG93d/PFz9cLE2IhZ9FQ6phBCCCH+S6VSYWVhQmDvVgT2bqVfnpGZT3JyDiozDRk5hSSdSCI5JYer566Tq9MxJbiTYpmlgKtjg7v50Mb7JbxaOGFkJE+CCiGEEIbKztYcO1tz/eteHV3QarUkJ+dgY6PsA4RSwNUxY40RPi1lrDUhhBCiKVKr1bi6Kj/FpGE+OyuEEEII0YxJASeEEEIIYWCkgBNCCCGEMDBSwAkhhBBCGBgp4IQQQgghDIwUcEIIIYQQBkYKOCGEEEIIAyMFnBBCCCGEgZECTgghhBDCwEgBJ4QQQghhYKSAE0IIIYQwMM1qLlSdTgdAUVGRwkkMS2FhodIRxN/IZ9I4yefS+Mhn0vjIZ1J9t+qVW/XL7VS6ipY2UdnZ2URHRysdQwghhBCi2tq1a4e1tXWZZc2qgNNqteTm5mJsbIxKpVI6jhBCCCHEHel0OoqLi7G0tEStLnvXW7Mq4IQQQgghmgJ5iEEIIYQQwsBIASeEEEIIYWCkgBNCCCGEMDBSwAkhhBBCGBgp4IQQQgghDIwUcEIIIYQQBkYKOCGEEEIIAyMFnKiWs2fP4u/vr3QMAURERDBp0iRCQkKYPXs2CQkJSkdq1rZs2cKYMWMYMWIE69atUzqOAD744APGjh3L2LFjefvtt5WOI/7mrbfeYtGiRUrHMHhSwIkq5efns3TpUoqLi5WOIoCFCxfy+uuvExYWRnBwMMuWLVM6UrOVnJzMypUr+fbbbwkLC2PDhg3ExMQoHatZO3DgAPv27WPTpk1s3ryZM2fOsGPHDqVjif86ePAgmzZtUjpGkyAFnKjS8uXLuf/++5WOIbg5sfGTTz6Jn58fAO3btycxMVHhVM3XgQMHCAwMxM7ODgsLC4KCgvjtt9+UjtWsOTo6smjRIkxMTDA2NsbX15dr164pHUsAGRkZrFy5kkcffVTpKE2CFHCiUrt27aKgoIBRo0YpHUUAJiYmhISEADfn9v3ggw8YPny4wqmar5SUFBwdHfWvnZycSE5OVjCRaNu2Ld26dQMgNjaWrVu3MmjQIGVDCQBeeuklnn76aWxsbJSO0iRolA4gGodt27bx5ptvllnWunVrcnJy+OKLL5QJ1czd6TP54osvKCoqYtGiRZSUlDB37lyFEoqKppJWqVQKJBF/d+HCBebOncu//vUvvL29lY7T7P3www+4urrSp08fNm7cqHScJkEmsxd39MMPP/B///d/WFpaAnD+/Hn8/PxYt24dVlZWCqdrvnJzc3nsscews7NjxYoVmJiYKB2p2dq0aRPh4eG8/vrrAHz44YfodDoef/xxhZM1bxERESxYsIDnn3+esWPHKh1HAA888ADXr1/HyMiIzMxM8vLymDBhAs8//7zS0QyWFHCi2tq3b09UVJTSMZq9efPm4eDgwNKlS6W3R2HJyclMnz6dH3/8EXNzc6ZNm8Zrr71Gly5dlI7WbCUmJjJx4kRWrlxJnz59lI4jKrBx40aOHDnC8uXLlY5i0OQSqhAG5OzZs+zatYs2bdowYcIE4OZ9V2vXrlU2WDPl7OzM008/zaxZsyguLubee++V4k1hn332GYWFhWWKg2nTpjF9+nQFUwlR96QHTgghhBDCwMhTqEIIIYQQBkYKOCGEEEIIAyMFnBBCCCGEgZECTgghhBDCwEgBJ4QQQghhYKSAE0IIIYQwMFLACSGEEEIYGCnghBCihjZt2sSwYcPIzc0lLy+P0aNHs3nzZqVjCSGaARnIVwghauGf//wn1tbWFBUVYWRkxGuvvaZ0JCFEMyAFnBBC1EJOTg4hISGYmZmxceNGTE1NlY4khGgG5BKqEELUQmpqKoWFhWRlZZGSkqJ0HCFEMyE9cEIIUUPFxcVMmzaNadOmodVq+fHHH/n2228xNjZWOpoQoomTHjghhKihd999F0dHRyZPnszUqVOxs7Nj5cqVSscSQjQD0gMnhBBCCGFgpAdOCCGEEMLASAEnhBBCCGFgpIATQgghhDAwUsAJIYQQQhgYKeCEEEIIIQyMFHBCCCGEEAZGCjghhBBCCAMjBZwQQgghhIH5fzUU29e0Idi0AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import scipy.stats as scist\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns; sns.set(style = 'whitegrid')\n", "\n", "x = np.linspace(-5+mean, 5+mean, 1000)\n", "\n", "fig, ax1 = plt.subplots(1,1,figsize=(10,6))\n", "\n", "ax1.plot(x, phat_dist.pdf(x), alpha=.5)\n", "x_body = np.linspace(phat_dist.left.a, phat_dist.right.a, 100)\n", "x_left = np.linspace(x[0], phat_dist.left.a, 100)\n", "x_right = np.linspace(phat_dist.right.a, x[-1], 100)\n", "ax1.plot(x_body, phat_dist.pdf(x_body), c='C1', ls='--', label='Gaussian Body')\n", "ax1.plot(x_left, phat_dist.pdf(x_left), c='C2', ls='--', label='Left Paretian')\n", "ax1.plot(x_right, phat_dist.pdf(x_right), c='C4', ls='--', label='Right Paretian')\n", "\n", "ax1.axvline(\n", " phat_dist.left.a, .825, .925, \n", " c='r', lw=1, label=r'Left Junction; $x = a_l$')\n", "ax1.axvline(phat_dist.right.a, .825, .925, c='r', lw=1, label=r'Right Junction; $x = a_r$')\n", "\n", "paramtxt = 'Body'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\mu, \\sigma$ = ' + f'{phat_dist.mu:.0f}, {phat_dist.sig:.0f}'\n", "\n", "ax1.text(\n", " .5, .5, paramtxt, ha='center',\n", " transform=ax1.transAxes,\n", " bbox=dict(boxstyle='round', ec='.8', fc='w')\n", ")\n", "\n", "paramtxt = r'Left Tail$_{}$'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\epsilon_{l}$ = ' + f'{phat_dist.left.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$a_l$ = ' + f'{phat_dist.left.a:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$b_l$ = ' + f'{1 / phat_dist.left.b:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\alpha_l$ = ' + f'{1 / phat_dist.left.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\gamma_l = $' + f'{phat_dist.right.gamma:.2f}'\n", "\n", "ax1.text(\n", " .02,.3, paramtxt,\n", " transform=ax1.transAxes,\n", " bbox=dict(boxstyle='round', ec='.8', fc='w')\n", ")\n", "paramtxt = r'Right Tail$_{}$'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\epsilon_r$ = ' + f'{phat_dist.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$a_r$ = ' + f'{phat_dist.right.a:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$b_r$ = ' + f'{1 / phat_dist.right.b:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\alpha_r$ = ' + f'{1 / phat_dist.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\gamma_r = $' + f'{phat_dist.right.gamma:.2f}'\n", "\n", "ax1.text(\n", " .98,.3, paramtxt, ha='right',\n", " transform=ax1.transAxes,\n", " bbox=dict(boxstyle='round', ec='.8', fc='w')\n", ")\n", "ax1.set_xlabel('x')\n", "ax1.set_ylabel('f(x)', loc='top', rotation='horizontal')\n", "\n", "ax1.legend()\n", "ax1.set_title('PDF - Phat')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we demonstrate the ability to generate asymmetric tails. We overlay two different Phat distributions, one with symmetric tail indices of $\\alpha=2$ and the other with *asymmetric* tail indices, $\\alpha_{\\text{left}}=2$ and $\\alpha_{\\text{right}}=20$.\n", "\n", "We can see that the left tails are identical. In the right tails, the distributions appear to differ only modestly, however, [this difference leads to dramatically different effects](demo.ipynb#Compare-Fit-with-Gaussian-and-T)." ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "mean, sig = 0, 1\n", "shape_l1, shape_r = 1/2, 1/2\n", "dist1 = ph.Phat(mean, sig, shape_l1, shape_r)\n", "shape_l2, shape_r = 1/2, 1/20\n", "dist2 = ph.Phat(mean, sig, shape_l2, shape_r,)" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mean, sig = 0, 1\n", "x = np.linspace(-4+mean, 7+mean, 1000)\n", "shape_l1, shape_r = 1/2, 1/2\n", "dist1 = ph.Phat(mean, sig, shape_l1, shape_r)\n", "shape_l2, shape_r = 1/2, 1/20\n", "dist2 = ph.Phat(mean, sig, shape_l2, shape_r,)\n", "\n", "fig, ax1 = plt.subplots(1,1,figsize=(10,6))\n", "\n", "ax1.plot(x, dist1.pdf(x), label='Fatter Right')\n", "ax1.plot(x, dist2.pdf(x), label='Thinner Right')\n", "\n", "paramtxt = r'Fatter Right$_{}$'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\epsilon_{l}$ = ' + f'{dist1.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$a_l$ = ' + f'{dist1.right.a:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$b_l$ = ' + f'{1 / dist1.right.b:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\alpha_l$ = ' + f'{1 / dist1.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\gamma_l = $' + f'{dist1.right.gamma:.2f}'\n", "\n", "ax1.text(\n", " .02,.95, paramtxt, va='top',\n", " transform=ax1.transAxes,\n", " bbox=dict(boxstyle='round', ec='.8', fc='w')\n", ")\n", "paramtxt = r'Thinner Right$_{}$'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\epsilon_{l}$ = ' + f'{dist2.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$a_l$ = ' + f'{dist2.right.a:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$b_l$ = ' + f'{1 / dist2.right.b:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\alpha_l$ = ' + f'{1 / dist2.right.xi:.2f}'\n", "paramtxt += '\\n'\n", "paramtxt += r'$\\gamma_l = $' + f'{dist2.right.gamma:.2f}'\n", "\n", "ax1.text(\n", " .02,.2, paramtxt, va='bottom',\n", " transform=ax1.transAxes,\n", " bbox=dict(boxstyle='round', ec='.8', fc='w')\n", ")\n", "ax1.set_xlabel('x')\n", "ax1.set_ylabel('f(x)', loc='top', rotation='horizontal')\n", "\n", "ax1.legend()\n", "\n", "ax1.set_title('PDF')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Phat` class has common methods such as `pdf`, `cdf`, `sf`, `ppf`. It can also calculate negative log-likelihood and first and second moments. Derivations are [found here](moments.ipynb)." ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.00482994])" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean, sig, shape_l, shape_r = 0,1, 1/5, 1/4\n", "phat_dist = ph.Phat(mean, sig, shape_l, shape_r)\n", "phat_dist.pdf(10)" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.51144212, 0.70624103, 0.47567736])" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.cdf([.05,1,-0.1])" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.48855788])" ] }, "execution_count": 137, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.sf([.05])" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [], "source": [ "assert phat_dist.sf([.05]) == 1 - phat_dist.cdf([.05])" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ -inf, -1.63735173, 0.00569209, 1.68013031, inf])" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "phat_dist.ppf(np.linspace(0,1,5))" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.8510368])" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.nll(1) # Negative Log-Likelihood" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0796142959815449" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.mean()" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.7926873955033087" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.std()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It can also generate random variables (and standardized random variables)." ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 4.10522047, 3.55472489, -0.93678543, 0.51636282, 1.34579594,\n", " 1.01540556, -0.80886831, -0.67534635, 0.09117024, 6.42834252,\n", " 0.35292732, 3.1609973 , 4.03059888, 5.0758071 , -3.4068779 ,\n", " -0.5631759 , 0.76542791, -6.26470075, -5.32952901, 0.60021098])" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.rvs(20)" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.12796173, 0.43906166, -0.737519 , -0.51000483, 0.17890436,\n", " -0.08411178, 0.28586079, -0.2721797 , -0.22500339, 0.22734977,\n", " -0.25146567, 0.64438798, -1.50587683, 0.1999281 , -0.29127155,\n", " 0.35417953, -0.01986807, 0.5101493 , 0.59852587, -0.38408617])" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.std_rvs(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Importantly, Phat captures the undefined moments that result when $\\alpha < 2$." ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [], "source": [ "shape_l, shape_r, mean, sig = 1, 1, 0, 1\n", "phat_dist = ph.Phat(mean, sig, shape_l, shape_r)" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/spindicate/Documents/programming/investing/analysis/options/phat/src/phat/utils.py:75: RuntimeWarning: invalid value encountered in matmul\n", " return (self.p @ stack)\n" ] }, { "data": { "text/plain": [ "nan" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.mean()" ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "nan" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phat_dist.var()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Phat` has a `fit` method, which generates a [standard Maximum Likelihood Estimate (MLE)](mle_fit.ipynb), *although this is not the recommended approach to fitting this distribution*.\n", "\n", "In addition to the main distribution class, the package also provides:\n", "\n", "+ `ph.two_tailed_hill_double_bootstrap`: [a method for estimating both tail indices of a dataset simultaneously](dblbs.ipynb)\n", "+ `ph.PhatNet`: [a simple neural network that provides improved fit relative to MLE](nn_fit.ipynb), which includes a custom loss function called `PhatLoss`.\n", "+ `ph.Garchcaster`: [a class for generating time-series forecasts from ARMA and GARCH models that incorporates Phat random innovations](phatgarch.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dependencies ##\n", "\n", "+ Python versions: 3.9\n", "+ numpy 1.19.5\n", "+ numba 0.53.*\n", "+ scipy 1.7.*\n", "+ scikit-learn 0.24.*\n", "+ statsmodels 0.12.*\n", "+ tensorflow 2.5.0\n", "+ tensorflow-probability 0.12.2\n", "+ matplotlib 3.5.1\n", "+ arch 4.19\n", "+ pmdarima 1.8.2\n", "+ tqdm 4.61.2\n", "\n", "Also see requirements and compatibility specifications for [Tensorflow](https://www.tensorflow.org/install) and [Numba](https://numba.readthedocs.io/en/stable/user/installing.html)\n", "\n", "### Suggested ###\n", "+ [tensorboard](https://www.tensorflow.org/tensorboard/get_started): monitoring tool for tensorflow\n", "+ [yfinance](https://github.com/ranaroussi/yfinance): for downloading historical price data\n", "\n", "### Also Check Out ###\n", "\n", "+ [tail-estimation](https://github.com/ivanvoitalov/tail-estimation)\n", " + built as part of [Ivan Voitalov et al (2019)](https://journals.aps.org/prresearch/pdf/10.1103/PhysRevResearch.1.033034) on tail index estimation techniques for power law phenomenon in scale-free networks\n", " + code from this package is utilized in the `two_tailed_hill_double_bootstrap` function\n", "+ [thresholdmodeling](https://github.com/iagolemos1/thresholdmodeling) for a package on manual Peak-over-Threshold (PoT) analysis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Enhancements ##\n", "\n", "Potential enhancements under consideration:\n", "\n", "+ truncated Pareto tails\n", "+ additional tail index estimation techniques\n", "+ integration with Heston or other stochastic volatility models\n", "+ incorporation of Phat innovations into `fit` of AR-GARCH or ARMA-GARCH via custom model\n", "+ generalization to additional GARCH models\n", "+ better optimization of `Garchcaster.forecast` method" ] } ], "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 }