mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-09-05 20:30:32 +00:00
395 lines
632 KiB
Text
395 lines
632 KiB
Text
|
|
{
|
||
|
|
"cells": [
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 1,
|
||
|
|
"metadata": {
|
||
|
|
"block_hidden": true,
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [],
|
||
|
|
"source": [
|
||
|
|
"%load_ext rpy2.ipython\n",
|
||
|
|
"%matplotlib inline\n",
|
||
|
|
"from fbprophet import Prophet\n",
|
||
|
|
"import pandas as pd\n",
|
||
|
|
"import numpy as np"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 2,
|
||
|
|
"metadata": {
|
||
|
|
"block_hidden": true,
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"name": "stderr",
|
||
|
|
"output_type": "stream",
|
||
|
|
"text": [
|
||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: Loading required package: Rcpp\n",
|
||
|
|
"\n",
|
||
|
|
" warnings.warn(x, RRuntimeWarning)\n"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R\n",
|
||
|
|
"library(prophet)"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"There are two main ways that outliers can affect Prophet forecasts. Here we make a forecast on the logged Wikipedia visits to the R page from before, but with a block of bad data:"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 3,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
||
|
|
"init = user\n",
|
||
|
|
"save_iterations = 1\n",
|
||
|
|
"init_alpha = 0.001\n",
|
||
|
|
"tol_obj = 1e-12\n",
|
||
|
|
"tol_grad = 1e-08\n",
|
||
|
|
"tol_param = 1e-08\n",
|
||
|
|
"tol_rel_obj = 10000\n",
|
||
|
|
"tol_rel_grad = 1e+07\n",
|
||
|
|
"history_size = 5\n",
|
||
|
|
"seed = 676177418\n",
|
||
|
|
"initial log joint probability = -28.5336\n",
|
||
|
|
"Optimization terminated normally: \n",
|
||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGwCAIAAAAPKcUMAAAACXBIWXMAAAsSAAALEgHS3X78AAAg\nAElEQVR4nOzdd3wT9f8H8NdddtN0b6CLtuy9V5E9igiKIOKAnwv84saFgCJ+BVFRwfUFxYEIDhwg\nQ6mAZUsZhdJCS0snhU7atM3O/f64kKZpOmiTJoX38+FDMi6Xd0bvXvl8Pvc5huM4EEIIIYQ4Euvs\nAgghhBBy66PAQQghhBCHo8BBCCGEEIejwEEIIYQQhxM6u4AaVVVVjlitUCg0Go1Go9ERK7cXgUBg\nMBicXUVDRCKRXq935SHGLMsCcOUPmmEYoVCo0+mcXUhDXP+ryLIsy7J6vd7ZhTTE9d9G2jDahetv\nGBmGYRjGQR+0XC6/qeVdKHCoVCpHrFahUBgMBrVa7YiV24tcLnfQy7cXqVRaXV3tylt5kUgEwJV3\n50KhUCKRVFRUOLuQhrSJryLLsi5epOu/jZ6enlqtVqPROLuQejEMI5VKXfxtdHNzq6qqcuVUJBKJ\nGIbRarWOWPnNBg7qUiGEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBC\niMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKI\nw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDCR269urq6pUrV+r1ejc3t5deeoll2bVr\n11ZWVoaFhc2dO9ehT00IIYTctpIKKgH0D/V2diE1HNvCsX///l69eq1cubJjx44JCQnHjh0LCQl5\n/fXXCwoKcnNzHfrUhBBCyG0oqaCSTxuuxrEtHFFRUb6+vgAUCoVIJEpPT+/evTuAiIiI9PT0Dh06\nOPTZCSGEEOIiHBs4OnXqBODff/89fPjwsmXLkpOT+fzh5+dXVVXFL/Pqq6+mpKQIhcIff/zRETWw\nLCsSiWQymSNWbi8sy4rFYmdX0RCBQODh4cFxnLMLqRfDMABcvEKWZb29XaiFsy7X/yoyDMMwDL2N\nLcSyrFwud3Nzc3YhDWFZViqVOruKhjAM4+Hh4ewqrHlU1fRdKBQKOGbDqFarb/Yhjg0cHMf99NNP\neXl5S5YscXNzc3NzKykp6dixY0lJib+/P7/M/Pnzq6urGYZRKpWOqEEul+t0Oq1W64iV24tMJlOp\nVM6uoiEeHh5VVVUGg8HZhdRLKBQC0Ov1zi6kXgKBQC6XO+h7bi+u/1UUi8Uikcj8i8U1uf7b6O7u\nrtFodDqdswupF8MwYrFYo9E4u5CGeHp6VlVVGY1GZxdS48yVWluY6moxwzCO+KCNRqNcLr+phzg2\ncBw9erSysvK5557jf31GR0dnZWUNHDgwOzt76NCh/DJhYWH8heLiYkfUYDQajUajK++HALh+hRzH\nGQwGVy6S/465coUAOI5z8Qpd/6soFApdv0jXr5DjOBcvkmEYoVDoyhXyDAaDS/0SsyrGYDAwDOMi\nb6NjA0dSUlJqauorr7wCIC4ubsiQIR9//PHq1asDAgJoAAchhBDiUGeuKPu0c5VOH8cGjgULFljd\n8txzzzn0GQkhhJDbk2senGJGE38RQgghxOEocBBCCCHE4ShwEEIIIW2ei/engAIHIYQQ0ta5ftoA\nBQ5CCCGkTWsTaQMUOAghhBDSCihwEEIIIcThKHAQQgghbVVb6U8BBQ5CCCGEtAIKHIQQQghxOMdO\nbU4IIYQQR2hDnSk8auEghBBC2pg2lzZAgYMQQghpW9pi2gAFDkIIIYS0AgochBBCSJvRRps3QIGD\nEEIIIa2AAgchhBDSNrTd5g1Q4CCEEEJIK6DAQQghhBCHo8BBCCGEtAFtuj8FFDgIIYQQ19fW0wYo\ncBBCCCGkFVDgIIQQQlzaLdC8AQochBBCCGkFFDgIIYQQ4nAUOAghhBDXdWv0p4ACByGEEEJaAQUO\nQgghhDic0NkFEEIIIcSGW6YzhUctHIQQQghxOGrhIIQQQlzLLda2waMWDkIIIYQ4nAu1cEilUkes\nViAQOGK19iUQCBz08u2FYRixWCwUutAXxgr/Qbvyx82yLMMwLv5Bu/5XUSQSuX6Rrl8hy7IikYhh\nGGcXUi+GYUQiEcdxzi6kERKJxGg02n21YrHWLusRCAQikYhl7d+4oNfrb/YhLrT/0Ol0jlitWCw2\nGAwOWrm9CIVCF68QgMFgaMY3rNVwHMcwjCu/jXwYcuUK0Ra+inxuc/EiXf9tlEgkLr5hZBiGZVlX\nrpCn0+nsGDjOXFHaa1VmDvqgm/GqXShwGAwGR6yW4zij0eigldsLx3FtokJXLpKP8K5cIcMwbeWD\ndnYVDTEaja5fpOtXCMDFN4wMw7h4hTz7Fmn3xhKj0eg6byON4SCEEEKIw7lQCwchhBBye7olD0ux\nQi0chBBCCHE4ChyEEEIIcTgKHIQQQogz3Q79KaDAQQghhJBWQIGDEEIIIQ5HgYMQQgghDkeBgxBC\nCCEOR4GDEEIIIQ5HgYMQQgghDkeBgxBCCHGa2+SYWFDgIIQQQpzl9kkboMBBCCGEkFZAgYMQQggh\nDkdniyWEEEJa223VmcKjFg5CCCGkVd2GaQMUOAghhBDSCihwEEIIIcThKHAQQgghxOFo0CghhBDS\nSm7P0Rs8auEghBBCWsPtnDZAgYMQQghpBbd52gAFDkIIIYS0AgochBBCiGNR8wYocBBCCCGkFVDg\nIIQQQojD0WGxhBBCiKNQZ4oZtXAQQgghDkFpwxIFDkIIIYQ4HHWpEEIIIXZGbRt1tUYLx4oVK9Rq\nNYDi4uKHHnpo0aJFixYtys/Pb4WnJoQQQloZpQ2bHNvCoVQqly9fnpaWxl8tLCyMi4ubNWuWQ5+U\nEEIIIa7GsS0c7u7u77zzTo8ePfirhYWF+fn569at279/v0OflxBCCCEuxbEtHAzDCAQCljXFGplM\n1r179759+3744Yc+Pj69evUCsG3btitXrggEgnnz5jmiBqFQyLKsQCBwxMrtRSQSyeVyZ1fREJZl\nZTKZ0Wh0diH14r9mYrHY2YXUi2VZlmVd/IN2/a8i/xft4kW6/tsoEAgkEolQ6NLD+PjP2tlVNEIm\nk3EcZ3nL6fwKmUzmrHqsMAwjkUhEIpHd16zT6W72Ia36bRs0aBB/YfTo0WlpaXzgIIQQQsgtr1UD\nx/fff9+1a9fevXvn5ORERUXxN95zzz38heLiYkc8KcuyOp2OH7XqsuRyeVVVlbOraIhYLFapVHq9\n3tmF1IuP8M0I3a1GKBQKhUIX/6Bd/6solUpFIpGLF+n6b6NQKNRoNBqNxtmF1IthGKlUqlKpnF1I\nQ/gKDQaD+RZXGy7Kf9BardbZhQCtHDjGjh27Zs2an3/+2c/Pb8iQIa351IQQQojjuFrUcEGtEThW\nrFjBXwgICFi1alUrPCMhhBBCXIqrj8chhBBCXBw1bzQFBQ5CCCGEOBwFDkIIIYQ4HAUOQgghhDgc\nBQ5CCCGk+WgARxNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMO59Jl7CCGEEJfCj9joFewO4GTudaVS\n6eyK2gwKHIQQQsjN4WOHp6enswtpS6hLhRBCCCEORy0chBBCSOPo8NcWohYOQgghhDgcBQ5CCCGE\nOBwFDkIIIYQ4HAUOQgghpBE0gKPlKHAQQgghxOEocBBCCCENoeYNu6DAQQghhNSL0oa9UOAghBBC\niMNR4CCEEEJso+YNO6LAQQghhNhAacO+aGpzQgghpBaKGo5AgYMQQggxoajhONSlQgghhBCHo8BB\nCCGEANS84WAUOAghhBDicBQ4CCGEEOJwFDgIIYQQ6k9xOAochBBCbneUNloBBQ5CCCG3NUobrYMC\nByGEEEIczoUm/hIIBI5YLcMwLMs6aOX2wjBMm6iQ4zhnF1IvlmUZhjEajc4upF58hW3ig3Z2FQ2h\nt9FeXHzD2Gqb7jNXlCz
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"df <- read.csv('../examples/example_wp_R_outliers1.csv')\n",
|
||
|
|
"df$y <- log(df$y)\n",
|
||
|
|
"m <- prophet(df)\n",
|
||
|
|
"future <- make_future_dataframe(m, periods = 1096)\n",
|
||
|
|
"forecast <- predict(m, future)\n",
|
||
|
|
"plot(m, forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 4,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAGpCAYAAAB/KasqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYXFWd//H3ra33Tmfr7JAEAoQ1kAQIayREVBREFofB\nAQSMMo4bjoqjuCuMDoz601GioEEUFBFRVASjEYUACRDZEgiQvTtJd3rvWu6955zfH7d6Szqr3ale\nPq/nyZNUdS2n6naqPnXqe77Hc845RERERESkU6zQAxARERERGWgUkkVEREREdqKQLCIiIiKyE4Vk\nEREREZGdKCSLiIiIiOxEIVlEREREZCcKySIiIiIiO1FIFhERERHZiUKyiIiIiMhOEoUewP4YM2YM\nU6dOLfQwhpQgCEgmk4UehuwHHbPBR8ds8NExG3x0zAafQh2z9evXU19fv9fLDaqQPHXqVFauXFno\nYQwpNTU1TJw4sdDDkP2gYzb46JgNPjpmg4+O2eBTqGM2Z86cfbqcyi1ERERERHaikCwiIiIishOF\nZBERERGRnSgki4iIiIjsRCFZRERERGQnCskiIiIiIjtRSBYRERER2YlCsoiIiIjIThSSRURERER2\nopAsIiIiIrIThWQRERERkZ30e0jetGkTb3rTm5g5cybHHHMM3/rWtwBoaGhg4cKFzJgxg4ULF9LY\n2NjfQxERERER2Sf9HpITiQS33norq1ev5sknn+S73/0uL7/8MrfccgsLFixg7dq1LFiwgFtuuaW/\nhyIiIiIisk/6PSRPmDCBk046CYCKigpmzpzJli1bePDBB7nqqqsAuOqqq/j1r3/d30MREREREdkn\nB7Umef369Tz33HOccsopbNu2jQkTJgBRkN6+ffvBHIqIiIiIyG4lDtYdtbW1cfHFF/PNb36TysrK\nfb7e4sWLWbx4MQBbt26lpqamv4Y4LNXV1RV6CLKfdMwGHx2zwUfHbPDRMRtc1jekKQraCj2MPToo\nITkIAi6++GKuuOIK3vWudwEwbtw4amtrmTBhArW1tVRXV/d63UWLFrFo0SIA5syZw8SJEw/GkIcV\nPaeDj47Z4KNjNvjomA0+OmaDx6agkXKTHNDHrN/LLZxzXHvttcycOZMbbrih8/wLLriAJUuWALBk\nyRIuvPDC/h6KiIiIiBTAs5ub2NHud54OrQPPK+CI9q7fZ5Iff/xxfvKTn3Dccccxa9YsAL72ta9x\n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\n+c53uOuuu5gzZw633no
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fe45bc41190>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"df = pd.read_csv('../examples/example_wp_R_outliers1.csv')\n",
|
||
|
|
"df['y'] = np.log(df['y'])\n",
|
||
|
|
"m = Prophet()\n",
|
||
|
|
"m.fit(df)\n",
|
||
|
|
"future = m.make_future_dataframe(periods=1096)\n",
|
||
|
|
"forecast = m.predict(future)\n",
|
||
|
|
"m.plot(forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"The trend forecast seems reasonable, but the uncertainty intervals seem way too wide. Prophet is able to handle the outliers in the history, but only by fitting them with trend changes. The uncertainty model then expects future trend changes of similar magnitude.\n",
|
||
|
|
"\n",
|
||
|
|
"The best way to handle outliers is to remove them - Prophet has no problem with missing data. If you set their values to `NA` in the history but leave the dates in `future`, then Prophet will give you a prediction for their values."
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 5,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
||
|
|
"init = user\n",
|
||
|
|
"save_iterations = 1\n",
|
||
|
|
"init_alpha = 0.001\n",
|
||
|
|
"tol_obj = 1e-12\n",
|
||
|
|
"tol_grad = 1e-08\n",
|
||
|
|
"tol_param = 1e-08\n",
|
||
|
|
"tol_rel_obj = 10000\n",
|
||
|
|
"tol_rel_grad = 1e+07\n",
|
||
|
|
"history_size = 5\n",
|
||
|
|
"seed = 272756854\n",
|
||
|
|
"initial log joint probability = -21.2638\n",
|
||
|
|
"Error evaluating model log probability: Non-finite gradient.\n",
|
||
|
|
"Error evaluating model log probability: Non-finite gradient.\n",
|
||
|
|
"Optimization terminated normally: \n",
|
||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nvjx//jz35eolCye/PPK
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"outliers <- (as.Date(df$ds) > as.Date('2010-01-01')\n",
|
||
|
|
" & as.Date(df$ds) < as.Date('2011-01-01'))\n",
|
||
|
|
"df$y[outliers] = NA\n",
|
||
|
|
"m <- prophet(df)\n",
|
||
|
|
"forecast <- predict(m, future)\n",
|
||
|
|
"plot(m, forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 6,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nFyKZTB6R/Umfd/NoYkg
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fe424413e50>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"df.loc[(df['ds'] > '2010-01-01') & (df['ds'] < '2011-01-01'), 'y'] = None\n",
|
||
|
|
"model = Prophet().fit(df)\n",
|
||
|
|
"model.plot(model.predict(future));"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"In the above example the outliers messed up the uncertainty estimation but did not impact the main forecast `yhat`. This isn't always the case, as in this example with added outliers:"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 7,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
||
|
|
"init = user\n",
|
||
|
|
"save_iterations = 1\n",
|
||
|
|
"init_alpha = 0.001\n",
|
||
|
|
"tol_obj = 1e-12\n",
|
||
|
|
"tol_grad = 1e-08\n",
|
||
|
|
"tol_param = 1e-08\n",
|
||
|
|
"tol_rel_obj = 10000\n",
|
||
|
|
"tol_rel_grad = 1e+07\n",
|
||
|
|
"history_size = 5\n",
|
||
|
|
"seed = 1532635668\n",
|
||
|
|
"initial log joint probability = -27.5907\n",
|
||
|
|
"Error evaluating model log probability: Non-finite gradient.\n",
|
||
|
|
"Error evaluating model log probability: Non-finite gradient.\n",
|
||
|
|
"Optimization terminated normally: \n",
|
||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nb0VcUp/w4PYNAFHXw9X
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"df <- read.csv('../examples/example_wp_R_outliers2.csv')\n",
|
||
|
|
"df$y = log(df$y)\n",
|
||
|
|
"m <- prophet(df)\n",
|
||
|
|
"future <- make_future_dataframe(m, periods = 1096)\n",
|
||
|
|
"forecast <- predict(m, future)\n",
|
||
|
|
"plot(m, forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 8,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAGpCAYAAAB/KasqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmcHVWZ939Vd+l0Z18IECBhzR46IZ1Ag2IwoOgIjEBk\ndFxHRWccfedVZ1wYRQTB0XfcGBzZ1AEHhQCyC0qg2dKQ7pDO3kmAQJZOJ7337btV1Tnn/eMsdaru\nvZ1A0jYJz5dP6Hvrnjrn1P47Tz3neRwhhABBEARBEARBEAZ3uDtAEARBEARBEG83SCQTBEEQBEEQ\nRAwSyQRBEARBEAQRg0QyQRAEQRAEQcQgkUwQBEEQBEEQMUgkEwRBEARBEEQMEskEQRAEQRAEEYNE\nMkEQBEEQBEHEIJFMEARBEARBEDGSw90Bm0mTJuHEE08c7m4cUfi+j1QqNdzdIN4CdOwOT+i4Hb7Q\nsTs8oeN2+DJcx+71119HZ2fnfsu9rUTyiSeeiObm5uHuxhFFW1sbpkyZMtzdIN4CdOwOT+i4Hb7Q\nsTs8oeN2+DJcx66uru6AypG7BUEQBEEQBEHEIJFMEARBEARBEDFIJBMEQRAEQRBEDBLJBEEQBEEQ\nBBGDRDJBEARBEARBxCCRTBAEQRAEQRAxSCQTBEEQBEEQRAwSyQRBEARBEAQRg0QyQRAEQRAEQcQg\nkUwQBEEQBEEQMUgkEwRBEARBEEQMEskEQRAEQRAEEYNEMkEQBEEQBEHEIJFMEARBEIeIxsZG3HDD\nDWhsbBzurhAEcZAkh7sDBEEQBHEk0NjYiKVLl8LzPKTTaaxYsQL19fXD3S2CIN4iQ2pJ/vnPf465\nc+dizpw5+NnPfjaUTREEQRDEsNLQ0ADP88AYg+d5aGhoGO4uEQRxEAyZSN6wYQNuvfVWrFq1CmvX\nrsUjjzyCbdu2DVVzBEEQBDGsLFmyBOl0GolEAul0GkuWLBnuLhEEcRAMmUjevHkzzjrrLNTU1CCZ\nTOI973kP/vjHPw5VcwRBEAQxrNTX12PFihW49tprydWCII4Ahswnee7cubjqqqvQ1dWF6upqPPbY\nY6irqyspd8stt+CWW24BALS3t6OtrW2ouvSOpKOjY7i7QLxF6NgdntBxO3w5FMdu2rRp+NSnPgUA\n9Dz7K0HX3OHL2/3YDZlInjVrFr7xjW/gggsuwKhRo1BbW4tksrS5K6+8EldeeSUAoK6uDlOmTBmq\nLr1joX16+ELH7vCEjtvhCx27wxM6bocvb+djN6QT9z772c/i5ZdfxrPPPosJEybgtNNOG8rmCIIg\nCIIgCOKQMKQh4Pbt24fJkydjx44duP/++yluJEEQBPG2oLGxEQ0NDViyZAn5DhMEUZYhFcmXXXYZ\nurq6kEqlcNNNN2H8+PFD2RxBEARB7BeKZ0wQxIEwpCL5ueeeG8rqCYIgCOJNUy6eMYlkgiDiUFpq\ngiAI4h0FxTMmCOJAoLTUBEEQxDsKHc+YfJIJghgMEskEQRDEO476+noSxwRBDAq5WxAEQRAEQRBE\nDBLJBEEQBEEQBBGDRDJBEARBEARBxCCRTBAEQRAEQRAxSCQTBEEQBEEQRAwSyQRBEARBEAQRg0Qy\nQRAEQRAEQcQgkUwQBEEQBEEQMUgkEwRBEG+JYsCGuwsEQRBDBolkgiAI4k2zN1PEurb+4e4GQRDE\nkEEi+QinubkZN9xwAxobG4e7KwRBHEHsGyhioBiULA8YR/POnmHoEUEQxKElOdwdIIaOxsZGXHHF\nFfB9H+l0GitWrEB9ff1wd4sgiCOAsSOSaO8v4qU3enDmtPFmOReAFwhwLuC6zjD28OBgXCBxGPef\nIIiDhyzJRzANDQ3wfR+MMXieh4aGhuHuEkG8o/ACjv6CP9zdOORwLpD3OQSAgh/1S+ZCIOACTIjh\n6dwhoDvn4eVdvcPdDYIghhkSyUcwS5YsQSqVQiKRQDqdxpIlS4a7SwTxjmJHbx5b9g0MdzcOOe2Z\nIjqzRQghECgxzLlAphBAQAplxodHJB+KdosBh8f4IegNQRCHM+RucQRTX1+Pa665BitWrMBll11G\nrhYE8VdGCIEjUWsFnKMQcAgBcLV9PXkfr3VlAUihyofBktyd8/BaVxZ1J4zff+H94AUcPuNIJciW\nRBDvVEgkH8E0Njbi6quvhu/7eO655zBv3jwSygTxV4aJw1Ml9+V9pJMuqlOJsr8HTEBAQBtuXQcI\nuEDBZwh4uPyvSd5nh2xQwgWwZncfFk89eMFNEMThCQ2Rj2DIJ5kghp9gmNwODpatHQPY1J5BX77U\np5opn2PtWiGEnOSW9xl8JVLjhuQ1u/rKRsM4FOS8ABvbM9jdV0DAZX8Go3VvBr1ltksjhDxumWIQ\nqeuVziz4YXo8CYJ485BIPoIhn2SCGF6EECVicbjZn4DUcEsoxvG53C4hAAGgvxBgW0cWQgCMc3Ah\n0LovE0k24jGOLfsGkPNkffsyRWxuzxwSH+K9GQ8DxUBZkgWadw4+6a6vEKBjoFixbS6kK4kfRI9f\nd85DR9Y74H1IEMThDblbHMHU19fj7rvvxsaNG7FkyRJytSCIvzJcSFGa95lxWygGDLv7Cpg8qgqj\nqv66t+A9/QXs7ssj5bqoPW7soGU9xuE6DlynNAxawDikPAaEcLCxPYOE64ALaVl2HAc5j6F17wBO\nmTQS27tzysILdGY9nJBKYG+mgJ58gHxbP844fvC+7A/Xkf1lXMB1gEJQ2edi9c5eBFygO+djRLKA\nE8ZXR7c74OgY8CHU9hUZR7WbUNst8FpXFmNGJCu6oRAEceRAIvkIp66uDhdffPFwd4Mg3pFoS+X6\nPf3Gt7W/EKAz66FjwIvEF/5rkPMYAgbk/QAB40gOMimtGHCkEg4qhQrWxlTHkSHfBLT7BeBCLhvw\nAvQXAtku5wjUes07e+EzObkvcwhC5AnoyYKAgABjlS29TEXe8AKGMvof7ZkCcj6DUH3d2N6PuhPG\ny0mYQkBwIFMISCQTxDsAEskEQRBDQMdAEZkiAwfgM46dPXljteQcKDK2X6F6KHmjO4eevAefcwSM\no6Wtb9AoEAGTVtmsx+AFHOlk5X4yzhHw0JVD+/TqOgIu4DMBx5GCNuACeeWKcSDpOpp39qDvtQ1Y\ntfJ5nHHWOVjy7nPQ1leAx6QvdHfOk37SKgHIYC4cspzub+nvDhwUAma2RXuMMC4TpHAh8EZPDuNr\nUhT5giCOcEgkEwRBvEUGE7mvd+fgcw7GpShsz8hX+w6ghKq0tiYHMUh6gfTvHXEIrJZZj6EYSIHM\nBVAMRMWscnmfgUMg4FKACgCnThppfhfQzhZS5DLln8yVD7aAtNgGQmB3X0HWJwBHyHTWXACMy3Vd\nF9jelcNJE2sq9v3lVavwlY9/GIHvIZlK4w8PPIbJ009HOunAC4RqT/dB/u0YKOKoUVUldXGhLc7l\nYyq7rhwgAFrsS9eNtW398FV5Tx07MiYTxJENDYMJgiDeImt295WN/gBACVEOriyqUhgKvNGTRzHg\nYEK6YcQz1tls6RjA+j39B91PL+AY8AIUfG4EYsFnWF0hq9yGPf0qBrKoGJ3DTNwTMFZcKZ7Vf0KY\ngQBTESe4EMh5TIpmZZUVSjhXYmN7Bs2Nz8H3PDDG4PseXnj+GQgIBEwOOAqqPt2ugMDWjmzZCXaM\nw4Sn6857yr86xIFj/Kf1MQMAnwn4yu9ZW5VteJllBEEc3pBIJgiCeIt4TKBYYZJYVdJRwlEY/1Yd\nQzhgUsxlikEks5st6nzGUQwOTdzfXX1547PLtPgTUjzHyRYDeMqSypVvcSWXCD25TQhpORbajAzd\nhkDOC4yYBuQ+8xkHRyhE/UE2MucFmLf4bKTSaSQSCaRSKcw84ywVfUNa5JmQfdVWZC1um3b2Qggh\nreFCoC/vK0uy7OtAkaE7Fx3kcBFOSgTC7fI5N/UzzrGzN2/CyA0UA7y8uxdbO97+2RXzPsPr3Tm0\n9RWGuysE8baH3C0IgiD
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fe41def0310>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"df = pd.read_csv('../examples/example_wp_R_outliers2.csv')\n",
|
||
|
|
"df['y'] = np.log(df['y'])\n",
|
||
|
|
"m = Prophet()\n",
|
||
|
|
"m.fit(df)\n",
|
||
|
|
"future = m.make_future_dataframe(periods=1096)\n",
|
||
|
|
"forecast = m.predict(future)\n",
|
||
|
|
"m.plot(forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "markdown",
|
||
|
|
"metadata": {},
|
||
|
|
"source": [
|
||
|
|
"Here a group of extreme outliers in June 2015 mess up the seasonality estimate, so their effect reverberates into the future forever. Again the right approach is to remove them:"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 9,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false,
|
||
|
|
"output_hidden": true
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"text/plain": [
|
||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
||
|
|
"init = user\n",
|
||
|
|
"save_iterations = 1\n",
|
||
|
|
"init_alpha = 0.001\n",
|
||
|
|
"tol_obj = 1e-12\n",
|
||
|
|
"tol_grad = 1e-08\n",
|
||
|
|
"tol_param = 1e-08\n",
|
||
|
|
"tol_rel_obj = 10000\n",
|
||
|
|
"tol_rel_grad = 1e+07\n",
|
||
|
|
"history_size = 5\n",
|
||
|
|
"seed = 726908181\n",
|
||
|
|
"initial log joint probability = -24.7625\n",
|
||
|
|
"Optimization terminated normally: \n",
|
||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\nWoO3DWE7WIcDQRDEI8z
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"%%R -w 10 -h 6 -u in\n",
|
||
|
|
"outliers <- (as.Date(df$ds) > as.Date('2015-06-01')\n",
|
||
|
|
" & as.Date(df$ds) < as.Date('2015-06-30'))\n",
|
||
|
|
"df$y[outliers] = NA\n",
|
||
|
|
"m <- prophet(df)\n",
|
||
|
|
"forecast <- predict(m, future)\n",
|
||
|
|
"plot(m, forecast);"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"cell_type": "code",
|
||
|
|
"execution_count": 10,
|
||
|
|
"metadata": {
|
||
|
|
"collapsed": false
|
||
|
|
},
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"data": {
|
||
|
|
"image/png": "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\n9jHbG08rLQQRMLk0hlj
|
||
|
|
"text/plain": [
|
||
|
|
"<matplotlib.figure.Figure at 0x7fe44bba8750>"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"metadata": {},
|
||
|
|
"output_type": "display_data"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"source": [
|
||
|
|
"df.loc[(df['ds'] > '2015-06-01') & (df['ds'] < '2015-06-30'), 'y'] = None\n",
|
||
|
|
"m = Prophet().fit(df)\n",
|
||
|
|
"m.plot(m.predict(future));"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"metadata": {
|
||
|
|
"kernelspec": {
|
||
|
|
"display_name": "Python 2",
|
||
|
|
"language": "python",
|
||
|
|
"name": "python2"
|
||
|
|
},
|
||
|
|
"language_info": {
|
||
|
|
"codemirror_mode": {
|
||
|
|
"name": "ipython",
|
||
|
|
"version": 2
|
||
|
|
},
|
||
|
|
"file_extension": ".py",
|
||
|
|
"mimetype": "text/x-python",
|
||
|
|
"name": "python",
|
||
|
|
"nbconvert_exporter": "python",
|
||
|
|
"pygments_lexer": "ipython2",
|
||
|
|
"version": "2.7.13"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"nbformat": 4,
|
||
|
|
"nbformat_minor": 0
|
||
|
|
}
|