2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
2021-03-21 21:13:50 +00:00
"block_hidden": true
2017-02-22 23:59:43 +00:00
},
"outputs": [],
"source": [
"%load_ext rpy2.ipython\n",
"%matplotlib inline\n",
2021-03-21 21:13:50 +00:00
"from prophet import Prophet\n",
2017-02-22 23:59:43 +00:00
"import pandas as pd\n",
2017-09-02 20:07:49 +00:00
"import logging\n",
2021-03-21 21:13:50 +00:00
"logging.getLogger('prophet').setLevel(logging.ERROR)\n",
2017-09-02 20:07:49 +00:00
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
2021-03-21 21:13:50 +00:00
"block_hidden": true
2017-02-22 23:59:43 +00:00
},
2021-03-21 21:13:50 +00:00
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Loading required package: Rcpp\n",
"\n",
"R[write to console]: Loading required package: rlang\n",
"\n"
]
}
],
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": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.\n",
"\n"
]
2017-02-22 23:59:43 +00:00
},
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGwCAIAAAAPKcUMAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nOzdZ2AUdf4G8Gdme0kvpCckJCG00HsH6Ui1ABZOBfXsBRFB/pbzOEVBPVFURARURDkEQZBi6B1CSAESSEJI78lutu/O/8Uum03ZJCRZsoHv59WWmdlfJsnMs7/KcBwHQgghhBBHYtu6AIQQQgi5+1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw/HbugA1aLVag8HQ6ofl8XgMwzjiyK2FYRiWZY1GY1sXxC6WZXk8nl6vb+uCNITH4znzOWQYhs/n0zlsIaFQqNPp2roUDaFz2HLOfw4FAoHBYHDmUReOO4cymax5OzpX4NDpdFqtttUPK5FIeDyeWq1u9SO3FpZlRSKRM5dQIBDIZDJnLiEAJy+hQCAQiUSVlZVtXZCGOPk5ZBhGJpNVVlY684Xeyc8hADqHLScSifR6vTN/f5BIJBqNxhG/5WYHDmpSIYQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEEKIw1HgIIQQQojDUeAghBBCiMNR4CCEEELuHgl5yrYuQv0ocBBCCCF3FefMHBQ4CCGEkLuENWrE51S2bUnqosBBCCGE3A2cs2LDigIHIYQQQhyOAgchhBDS7jl59QYocBBCCCHkDqDAQQghhBCHo8BBCCGEtG/O354CChyEEEJIu9Yu0gYAvqM/QKVSrVixwmAwyGSyN954g2XZzz//XKlUhoSEzJ8/39GfTgghhBBn4PAajri4uJ49e65YsSIiIuLIkSOnTp0KCQlZvnx5UVFRdna2oz+dEEIIIc7A4TUckZGRXl5eAORyuUAgSEtLGzRoEIBu3bqlpaUFBQU5ugCEEELI3aq9tKfgDgSOqKgoAGfPnj1x4sTbb7+dlJQklUoBSCQShUJh3iYlJeXgwYMARowYERkZ2epl4PP5LMvKZLJWP3JrYRiGx+OxrPN2qWFZ1snPIQCBQODMJaRz2FrM1xCn1S7OoUwm4ziurUthl/OfQ5ZlxWKxUChs22LE51RKJJJ63+LxeM72n+LwwAHg22+/VSqVy5Ytk0qlUqlUrVYDUKvVcrn8Dnw6IYQQQtqcwwPH8ePH+Xz+K6+8Yn4aGRl5+fLl6OjoK1euzJ492/xily5dunTpAkChUFRVVbV6GSQSCY/Hc8SRWwvLsiKRyBzFnJNAIHDycwhAJpM5cwkFAgGfz3fmEsLpzyHDMBKJRKVSOfO3cyc/hwAkEklVVRWdw5YQCAQajUav17dtMRq4a4hEIgf9p9irU2mUwwNHYmLi5cuX33zzTQCTJ08eNGjQF198sXLlSl9f3+DgYEd/OiGEEEKcgcMDxzPPPFPrlZdfftnRH0oIIYTc3dpRd1Ez5+2lSAghhJB6tbu0AQochBBCSPvSHtMGKHAQQggh7Ug7TRugwEEIIYS0F+03bYACByGEEELuAAochBBCSDvQrqs3cGdmGiWEEEJIs7X3qGFGNRyEEEIIcTgKHIQQQghxOAochBBCCHE4ChyEEEKI87o7OnCAAgchhBDitO6atAEKHIQQQgi5AyhwEEIIIcThKHAQQgghzuhuak8BBQ5CCCHECd1laQMUOAghhBBnc/elDVDgIIQQQpzKXZk2QIGDEEIIIXcABQ5CCCHEWdyt1RugwEEIIYSQO4CWpyeEEELa2F1csWFFNRyEEEJIW7oX0gYocBBCCCHkDqDAQQghhBCHo8BBCCGEtJl7pD0FFDgIIYQQcgdQ4CCEEEKIw1HgIIQQQtrGvdOeAgochBBCCLkDKHAQQgghxOEocBBCCCFt4J5qTwEFDkIIIYTcARQ4CCGEEOJwFDgIIYSQO+1ea08BBQ5CCCGE3AEUOAghhJA76h6s3gAFDkIIIeROujfTBihwEEIIIXfMPZs2QIGDEEIIIXcAv60LQAghhNz97uW6DTOq4SCEEEKIw1HgIIQQQhyLqjdAgYMQQghxKEobZhQ4CCGEEOJwFDgIIYQQ4nAUOAghhBBHofYUKwochBBCCHE4moeDEEIIaX1Ut1EL1XAQQgghxOGohoMQQghpTVS3US+q4SCEEEKIw1HgIIQQQloNVW/YQ4GDEEIIaR2UNhpAgYMQQgghDkeBgxBCCGkFVL3RMAochBBCCHE4GhZLCCGEtAjVbTQF1XAQQgghxOEocBBCCCHE4ShwEEIIIc1H7SlN5Fx9OPh8Psu2fgYSCAQsy0okklY/cmthGIbPd67fRS08Hs/JzyEAPp/vzCVkWZZhGGcuIZz+HJqJxeK2LkJD2sU5lEgkHMe1dSnscv5zyLKsSCQyX7dFIn1bF6ce5nPoVL9l57rJGQwGrVbriCPzeDy1Wu2II7cK89+uM5dQIBDw+XxnLiEAlmWduYQCgUAoFDpzCeH055BhGJlMptFonOoyWouTn0MAMplMrVbTOWwJkUik1Wr1er0zV2846Lcsk8matyM1qRBCCCHE4ShwEEIIIcThKHAQQgghzeHM7SlOiAIHIYQQQhyOAgchhBBCHI4CByGEEEIcjgIHIYQQ0iQJeUrqt9FsFDgIIYSQxtWKGhdzFW1VknbKuSb+IoQQQpxcQp7SRcm0dSnaH6rhIIQQQhpBLSktR4GDEEIIIQ5HgYMQQghpCFVvtAoKHIQQQghxOAochBBCiF1UvdFaKHAQQgghxOFoWCwhhBBSD6rbaF1Uw0EIIYTURmmj1VHgIIQQQojDUZMKIYQQYkEVG45DgYMQQgihqOFw1KRCCCGEEIejwEEIIYQQh6PAQQgh5F5H7Sl3AAUOQggh9zRKG3cGBQ5CCCH3LkobdwwFDkIIIfcoSht3EgUOQgghhDgcBQ5CCCGEOBxN/EUIIeTeQi0pbYJqOAghhBDicFTDQQgh5F5BdRttiGo4CCGEEOJwFDgIIYQQ4nAUOAghhBDicBQ4CCGE3BOoA0fbok6jhBBC7loUMpwH1XAQQgghxOEocBBCCCHE4ShwEEIIuTtRe4pTocBBCCGEEIejwEEIIYQQh6PAQQgh5C5E7SnOhgIHIYQQQhyOAgchhBBCHI4CByGEEEIcjmYaJYQQcvegrhtOiwIHIYSQuwFFDSdHTSqEEEIIcTgKHIQQQto9qt5wfhQ4CCGEtG+UNtoFChyEEELaJcoZ7Qt1GiWEENJeUeZoRyhwEEIIaU8oZLRT1KRCCCGk3aC00X5R4CCEENI+UNpo1yhwEEIIaQcobbR3FDgIIYQQ4nDUaZQQQojzooqNuwbVcBBCCHFSlDbuJhQ4CCGEEOJwdyhwfPLJJxqNBoDBYFi1atV77723YcOGO/PRhBBC2iOq3rjLODxwVFVVvf3220eOHDE/PXXqVEhIyPLly4uKirKzsx396YQQQghxBg4PHDKZ7N133+3evbv5aVpaWrdu3QB069YtLS3N0Z9OCCGkvaAqjbvbnRilwrIswzDmxyqVSiqVApBIJAqFwvzikSNHvv32WwALFiwYPHiwIwoAwN3dvdWP3IpYlhWJRG1dCrsYhmFZ1vnPoUAgaOtS2EXnsLW4ubm1dREaQueweS5kV7i4uKQr0TvIjWXZxAKVi4tLWxfKLpZlpVIpx3FtXRC7GIZxc3Nt61LUcKeHxUqlUrVaDUCtVsvlcvOLMTExL7zwAgB/f/+qqqpW/1CRSMSyrPlznZP5CqXVatu6IHbx+XyxWOyI304rEovF5q5CzonH40mlUjqHLcEwjKurK53DFnJzc1OpVE51s7yYq7A+Pp6mFgqFOp2uDcvTKKlUqtVqjUZjWxfELqFQ6KDfcrPT6p0OHJGRkZcvX46Ojr5y5crs2bPNL/r4+Pj4+ABQKBSOuOny+XwAer2+1Y/cWliWZVnWmUsIgOM4Jy+hUCh08hLSOWwhc12pwWBwqptlLU5+Ds30er1TnUODwWD7VCAQ1HrF2XAcZzQ
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",
2018-05-31 01:47:16 +00:00
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2021-03-21 21:13:50 +00:00
"execution_count": 2,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
2021-03-21 21:13:50 +00:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:numexpr.utils:NumExpr defaulting to 8 threads.\n"
]
},
2017-02-22 23:59:43 +00:00
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 4,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.\n",
"\n"
]
2017-02-22 23:59:43 +00:00
},
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2021-03-21 21:13:50 +00:00
"execution_count": 3,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 5,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.\n",
"\n"
]
2017-02-22 23:59:43 +00:00
},
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2021-03-21 21:13:50 +00:00
"execution_count": 4,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 6,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.\n",
"\n"
]
2017-02-22 23:59:43 +00:00
},
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2021-03-21 21:13:50 +00:00
"execution_count": 5,
2017-09-02 20:07:49 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2021-03-21 21:13:50 +00:00
"image/png": "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
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",
2018-05-31 01:47:16 +00:00
"fig = m.plot(m.predict(future))"
2017-02-22 23:59:43 +00:00
]
}
],
"metadata": {
"kernelspec": {
2021-03-21 21:13:50 +00:00
"display_name": "Python 3",
2017-02-22 23:59:43 +00:00
"language": "python",
2021-03-21 21:13:50 +00:00
"name": "python3"
2017-02-22 23:59:43 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
2021-03-21 21:13:50 +00:00
"version": 3
2017-02-22 23:59:43 +00:00
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
2021-03-21 21:13:50 +00:00
"pygments_lexer": "ipython3",
"version": "3.8.3"
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
}