prophet/notebooks/outliers.ipynb

333 lines
627 KiB
Text
Raw Normal View History

2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
2017-09-02 20:07:49 +00:00
"block_hidden": 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 numpy as np\n",
"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": {
2017-09-02 20:07:49 +00:00
"block_hidden": 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"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nxbVE4Fi0aFFFRQUAlUq
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_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,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nsls99qvD+eefz+LFi6m
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f8ef86aa750>"
2017-02-22 23:59:43 +00:00
]
},
"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": {
"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"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nQmvYcjO/OpeuIWTuJzA
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);"
]
},
{
"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": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nXkgYq2MJoCGRQ8Zi6M+
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f8ebcc4a0d0>"
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",
"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": {
"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"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nrfsaNmtlx87YnXs3tA0
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_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,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmcXUWZ93/n3KWXdJLOQkIWQwAhezohnUAHhCCoMzo6\nCgRkRkdnlOjMvM7rODNuOMgi6qjD5qtCAuKCCIRERUUQAs1iGpJO0p10dgJk63Sn97vfc05VvX/U\nqTp17r3dWZsm4fnyCX3vuedU1dl/9dRTz2MJIQQIgiAIgiAIggAA2EPdAIIgCIIgCIJ4O0ECmSAI\ngiAIgiAMSCATBEEQBEEQhAEJZIIgCIIgCIIwIIFMEARBEARBEAYkkAmCIAiCIAjCgAQyQRAEQRAE\nQRiQQCYIgiAIgiAIAxLIBEEQBEEQBGEQHeoGmIwdOxZTp04d6macVriui1gsNtTNII4ROm+nLnTu\nTk3ovJ260Lk7NRmq8/bmm2+is7PziOu9rQTy1KlT0djYONTNOK1obW3FxIkTh7oZxDFC5+3Uhc7d\nqQmdt1MXOnenJkN13mpra49qPXKxIAiCIAiCIAgDEsgEQRAEQRAEYUACmSAIgiAIgiAMSCATBEEQ\nBEEQhAEJZIIgCIIgCIIwIIFMEARBEARBEAYkkAmCIAiCIAjCgAQyQRAEQRAEQRiQQCYIgiAIgiAI\nAxLIBEEQBEEQBGFAApkgCIIgCIIgDEggEwRBEARBEIQBCWSCIAiCIAiCMCCBTBAEQRAngYaGBnzn\nO99BQ0PDUDeFIIgTJDrUDSAIgiCIU52GhgZcccUVcBwH8Xgca9asQV1d3VA3iyCI42RQLch33303\nZs+ejVmzZuGuu+4azKoIgiAIYsior6+H4zhgjMFxHNTX1w91kwiCOAEGTSC3tLRgxYoVWLduHZqb\nm/GHP/wBu3fvHqzqCIIgCGLIWLJkCeLxOCKRCOLxOJYsWTLUTSII4gQYNIG8fft2XHTRRaisrEQ0\nGsVll12G3/zmN4NVHUEQBEEMGXV1dVizZg1uu+02cq8giNOAQfNBnj17Nm688UZ0dXWhoqICTz75\nJGpra4vWW758OZYvXw4AaGtrQ2tr62A16R1JR0fHUDeBOA7ovJ260Lk7NTkZ5+2ss87Cpz71KQCg\nd9lbCN1zpyZv9/M2aAJ5xowZ+MpXvoL3ve99qKqqQk1NDaLR4uqWLVuGZcuWAQBqa2sxceLEwWrS\nOxY6pqcmdN5OXejcnZrQeTt1oXN3avJ2Pm+DOknvM5/5DDZu3IgXX3wRo0ePxnnnnTeY1REEQRDE\nEaFwbARBHIlBDfN2+PBhjBs3Dvv27cPq1avpYUQQBEEMKRSOjSCIo2FQBfLVV1+Nrq4uxGIx/OhH\nP8KoUaMGszqCIAiCGJBS4dhIIBMEUcigCuSXXnppMIsnCIIgiGNChWNTFmQKx0YQRCkokx5BEATx\njkGFY6uvr8eSJUvIekwQRElIIBMEQRDvKOrq6kgYEwQxIIMaxYIgCIIgCIIgTjVIIBMEQRAEQRCE\nAQlkgiAIgiAIgjAggUwQBEEQBEEQBiSQCYIgCIIgCMKABDJBEARBEARBGJBAJgiCIAiCIAgDEsgE\nQRAEQRAEYUACmSAIgiAIgiAMSCATBEEQx8y6vT3ozbpD3QyCIIhBgQQyQRAEccykHA85lw11MwiC\nIAYFEsinOY2NjfjOd76DhoaGoW4KQRCnEUIAh1MO8l5YJLuMI5X3hqhVBEEQJ4foUDeAGDwaGhpw\n3XXXwXVdxONxrFmzBnV1dUPdLIIgTgO4ABI5F11pFxNHRgAAvVkXezrTyHkcF589eohbSBAEcfyQ\nBfk0pr6+Hq7rgjEGx3FQX18/1E0iCOI0YHt7ElwI5D0OywqW7zycQs5jYFwMXeMIgiBOAiSQT2OW\nLFmCWCyGSCSCeDyOJUuWDHWTCII4DehKO+BCwOMChj4GEwI5j0NAIHsK+ydvOtCHzlR+qJtBEMQQ\nQgL5NKaurg633HILrrjiCtx1113kXkEQbzH8NLWkOoyDC+mHnHIYXMYBAEIIMC6XbzmUGOJWHj+J\nnIs9XRn0UZQOgnjHQj7IpzENDQ345je/Cdd18dJLL2HOnDkkkgniLWTjwV6cM2YYRlfGh7opx0xP\nxsHBvhxmTxgRWi6EgNT9AkxIa3LEslBdEYUQvkgWgMtE0XaW74+RcxksCyiLRk5ae7e1JVEZszGp\nugKxyInZfpgQyDge0g7DyIrYSWohQRCnEmRBPo0hH2SCGFo8BuQ9PtTNAACkjyGyRM5leK0zjbRT\n7CbBBUI+xjmPoTvjYFdHGkzI5ZxLQazIugwbDvTqdmw+lEBza6IoAsbxcqA3i66Mg4OJXMk2Hytc\nAKWM/8mcd0q7jhAEcfSQQD6NIR9kghhaPM7R2peDM8QiWQiB7YeTEEKgM5XXLhH9wbj0L/ZKqERp\nQVbLBRxPricEkHM5hAC4EBAF5TmeQNOBPmxtT8JlHI7Hsb8ne8JuKEIIHOzLwWEcHhfY3ZFCxxH8\nh4UQ/darLORMIDQBEQC2tSex83DqhNpLEMSpAblYnMbU1dXh0UcfxdatW7FkyRJyryCIt5DG/T3I\neRzxqI3erItxw8sASOts1LYQPUE3gGNBCIBxoCcrfWvfVV2BiSPL+11fWYmZKBaRyrqqfmJcwGEc\ntmXp9W1hgQuBRM5FxmEYFo/C5RxJR07qY0LAZQKHknlMGFGOYWXH9yp6oyuDrkweHudgHLAgI2uk\n8gxnVJXepjOVx5s9GXgMuGjqqJL7p6zfrX05VFfEUBGL+L8JZE6ChZogiLc/JJBPc2pra/GRj3xk\nqJtBEO84XCbgMQGXcezvzWqBvOVQAtUVMZzXn4IbBAQAjwvsPJwCFwIpx4PHeL8iXUWoEEKEfIdl\nWSLkPsEh9zFiWVo0c0talGV9wLRxVVJwI4h6wbjcrpSVuhDPnxQYj9qhZYd9S7HHpEWYWxZcxmFb\n/ZUEpB2GjMPh8dJW9De6M9pC7nGBdN7TAtm2LLj9bEcQxOkFuVgQBEEMAg7j4JBhzxQ5l8HjAr1Z\nFwd6M29ZW5J5D47HkHEZXCbQlXbQ3o8bghCyfdKCHFiKQ+sYf4VvUXa5UEsghBSXWZfDZRw7D6fA\nOOBx6brAfTcMxlHSSl3Iqqefx7/feHMoI2h3xoXLOHIegyektVvWC0Qj/SvkaESK3P68TA4lctr/\n2OMCe3uyaNzfg9e70uC++8Xe7rfu3BEEMTSQQCYIgjgOOBcDhgFjvgXW9QTGDpNRLJpbE1o4vtGd\nPWIdJ2NCmMs4dnekwIS0tHq+S0R/ujTtMLQl89IHmQm8XkIMChGIY0BIMe2rSlWutA5zMC4t1oxL\nK6/yb1YieU9nekAf7bVr1+JTV38Y9/7g27jiiivQ0NAAx+N4sycDJmQbVfQMKboFLFjYcihRdH6k\n77F0N1Hnp/D3rMsh7eTSh9zjUsh3pBy4TIBxjq6Mc3QHnyCIUxYSyARBEMdBV8bBro7SE7aCUGjS\nBaEtmUdPxvFFJ4fL+xeoCpdxbG1LnCSRLIWjEpBqUh0gXRUKhaKa8MYER2cqLAZLtZsbFlx/LSh7\nshKxTAhwCN8KK7SgzXvSCtwff3rmObiuA86DaDwd6Twcj2vrNReBG4mAwIG+LLIuQ9KI3JH3GLa3\np3CwLyfrhkB3plBAy45PcGykGwgXAmlHRrDgvj93aP+5QDJ39FFChpKM4x1TRBOCeKdCPsgEQRDH\ngW1ZRbF+FcIIhSaEFJyvd2V8IelbYG2BN7oyOHtMpd6OcYGIbSHnMrS0JeAxoC/rojxqh/yAjwbO\nBTYc6MXciSO0xVgKSYGICMpqau0DAFiwEIvYcBjzLbpSKBb63G5tS+r9kv7IFoQVWJXlj6oNgG0h\nFDVDeiFLAc19V4z+3JBdxnFOzSLEYnG4cBCNxTF1zkLs78npSYRcKAsyAEuACwsZh6EiFkEq72n/\n5S2HEsh73LA4A691pjF
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f8ef868ec90>"
2017-02-22 23:59:43 +00:00
]
},
"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": {
"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"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\n6MIso9AUFRWxd9f9+cv
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);"
]
},
{
"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": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nrF20VngL9OIRbZ7P2OC
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f8ebcc92310>"
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",
"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,
2017-09-02 20:07:49 +00:00
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}