2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
2018-05-30 22:34:41 +00:00
"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": {
2018-05-30 22:34:41 +00:00
"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",
2018-05-30 22:34:41 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n",
"\r",
"|======================================================|100% ~0 s remaining "
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-30 22:34:41 +00:00
"image/png": "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\nQ5sTQgi531DBhhWiEg5
2017-02-22 23:59:43 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
2018-05-30 22:34:41 +00:00
"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);"
]
},
{
"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": {
2018-05-30 22:34:41 +00:00
"image/png": "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\naOKZ5PJ0ggOGVVCRVoX
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-30 22:34:41 +00:00
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2018-05-30 22:34:41 +00:00
"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",
"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",
2018-05-30 22:34:41 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n",
"\r",
"|======================================================|100% ~0 s remaining "
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-30 22:34:41 +00:00
"image/png": "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\nG9dHd23Vr1+/xo0bnzx
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": {
2018-05-30 22:34:41 +00:00
"image/png": "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\nkrOZm+CmRKpbX1iL3ip
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-30 22:34:41 +00:00
"<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",
"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",
2018-05-30 22:34:41 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n",
"\r",
"|======================================================|100% ~0 s remaining "
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-30 22:34:41 +00:00
"image/png": "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\niooCEOh/5ff9x1u376x
2017-02-22 23:59:43 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
2018-05-30 22:34:41 +00:00
"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);"
]
},
{
"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": {
2018-05-30 22:34:41 +00:00
"image/png": "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\n68h5KPjS1Kf/gtAVoRh
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-30 22:34:41 +00:00
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2018-05-30 22:34:41 +00:00
"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",
"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",
2018-05-30 22:34:41 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n",
"\r",
"|======================================================|100% ~0 s remaining "
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-30 22:34:41 +00:00
"image/png": "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\naETknIU/sNu3y4Ay07t
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": {
2018-05-30 22:34:41 +00:00
"image/png": "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\njEDgKjR+DLGjFUpD0Xb
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-30 22:34:41 +00:00
"<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",
"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",
2018-05-30 22:34:41 +00:00
"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
}