prophet/notebooks/outliers.ipynb

330 lines
620 KiB
Text
Raw Normal View History

2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"block_hidden": true,
"collapsed": true
2017-02-22 23:59:43 +00:00
},
"outputs": [],
"source": [
"%load_ext rpy2.ipython\n",
"%matplotlib inline\n",
"from fbprophet import Prophet\n",
"import pandas as pd\n",
2017-09-02 20:07:49 +00:00
"import logging\n",
"logging.getLogger('fbprophet').setLevel(logging.ERROR)\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"block_hidden": true,
"collapsed": true
2017-02-22 23:59:43 +00:00
},
2017-09-02 20:07:49 +00:00
"outputs": [],
2017-02-22 23:59:43 +00:00
"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": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
2017-09-02 20:07:49 +00:00
"Initial log joint probability = -28.5336\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nQggxO+rDQQghpFGiio3
2017-02-22 23:59:43 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"df <- read.csv('../examples/example_wp_log_R_outliers1.csv')\n",
2017-02-22 23:59:43 +00:00
"m <- prophet(df)\n",
"future <- make_future_dataframe(m, periods = 1096)\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 4,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XecnFXd9/HPNW37JptsNr0ACUmA\nQIAECM1QYkVQUBRFQKqI3tZbsN3qo49iue8HLLcYlaYConQL3aBCgAQIgRQIJaRsSTZbZ6dd1znn\n+eOa3eymJ+xmtnzfrxcvdmeumTkz12b3O2d+53c855xDREREREQAiBR6ACIiIiIi/YkCsoiIiIhI\nNwrIIiIiIiLdKCCLiIiIiHSjgCwiIiIi0o0CsoiIiIhINwrIIiIiIiLdKCCLiIiIiHSjgCwiIiIi\n0k2s0APYG9XV1UyZMqXQwxhUfN8nHo8Xehiyh3S+Bh6ds4FH52zg0TkbeAp1ztauXUtjY+NujxtQ\nAXnKlCksXbq00MMYVGpraxk3blyhhyF7SOdr4NE5G3h0zgYenbOBp1DnbM6cOXt0nEosRERERES6\nUUAWEREREelGAVlEREREpBsFZBERERGRbhSQRURERES6UUAWEREREelGAVlEREREpBsFZBERERGR\nbhSQRURERES6UUAWEREREelGAVlEREREpBsFZBERERGRbhSQRURERES6UUAWEREREelGAVlERERE\npJtYoQcgIiIiIkPH0vXNVARBoYexSwrIIiIiItLn1jWn2JTMEhjI+LbQw9klBWQRERER6VMN7Vne\n2JICIBrxKHauwCPaNQVkEREREelTb2zpwDeObGBIxKLkUjmsdUQiXqGHtkNapCciIiIifcJax5J1\nzaR8QzYwGBuGZOegI2cKPbyd0gyyiIiIiPSJwDpaM0FXODaEoTlrLF7/nDwGFJBFREREpA/kAktD\ne5ZUzuDYGo6tg7h19ON83PclFuvXr+eUU07hkEMO4dBDD+X6668HoKmpiQULFjBt2jQWLFhAc3Nz\nXw9FRERERPaTZbWtrGtJ4QhDsbWOwDoCazG4fj2D3OcBORaL8d///d+sXLmSp59+ml/84hesXLmS\na6+9ltNOO401a9Zw2mmnce211/b1UERERERkP/GNpTUT4BxheYVzDCuOMawohnMQ6ccJuc8D8tix\n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\nERERkQHIOTAu3ELa2jA
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv('../examples/example_wp_log_R_outliers1.csv')\n",
2017-02-22 23:59:43 +00:00
"m = Prophet()\n",
"m.fit(df)\n",
"future = m.make_future_dataframe(periods=1096)\n",
"forecast = m.predict(future)\n",
"fig = m.plot(forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"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": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
2017-09-02 20:07:49 +00:00
"Initial log joint probability = -21.2638\n",
2017-02-22 23:59:43 +00:00
"Error evaluating model log probability: Non-finite gradient.\n",
"Error evaluating model log probability: Non-finite gradient.\n",
2017-09-02 20:07:49 +00:00
"\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nNWxIub/lM7bPvBbXoLo
2017-02-22 23:59:43 +00:00
},
"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)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 6,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nBsHTokS/N8lN+Ya1iK7
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"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",
"fig = model.plot(model.predict(future))"
2017-02-22 23:59:43 +00:00
]
},
{
"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": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
2017-09-02 20:07:49 +00:00
"Initial log joint probability = -27.5907\n",
2017-02-22 23:59:43 +00:00
"Error evaluating model log probability: Non-finite gradient.\n",
"Error evaluating model log probability: Non-finite gradient.\n",
2017-09-02 20:07:49 +00:00
"\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nKh8BROAgEGwCg84FZhx
2017-02-22 23:59:43 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"df <- read.csv('../examples/example_wp_log_R_outliers2.csv')\n",
2017-02-22 23:59:43 +00:00
"m <- prophet(df)\n",
"future <- make_future_dataframe(m, periods = 1096)\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 8,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nC8BxgPb+IkZVxTGhJlm
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv('../examples/example_wp_log_R_outliers2.csv')\n",
2017-02-22 23:59:43 +00:00
"m = Prophet()\n",
"m.fit(df)\n",
"future = m.make_future_dataframe(periods=1096)\n",
"forecast = m.predict(future)\n",
"fig = m.plot(forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"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": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
2017-09-02 20:07:49 +00:00
"Initial log joint probability = -24.7625\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n19k1cjmZmZn//fefj49
2017-02-22 23:59:43 +00:00
},
"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)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 10,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nQ6Q9xApOxNjtbheoQGF
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"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",
"fig = m.plot(m.predict(future))"
2017-02-22 23:59:43 +00:00
]
}
],
"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.14+"
2017-02-22 23:59:43 +00:00
}
},
"nbformat": 4,
2017-09-02 20:07:49 +00:00
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}