2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
2020-08-19 21:22:57 +00:00
"execution_count": 2,
2017-02-22 23:59:43 +00:00
"metadata": {
2020-08-19 21:13:57 +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",
2017-09-02 05:46:11 +00:00
"import pandas as pd\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": {
2020-08-19 21:13:57 +00:00
"block_hidden": true
2017-02-22 23:59:43 +00:00
},
2020-08-19 21:13:57 +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",
"R[write to console]: \n",
"Attaching package: ‘ dplyr’ \n",
"\n",
"\n",
"R[write to console]: The following objects are masked from ‘ package:stats’ :\n",
"\n",
" filter, lag\n",
"\n",
"\n",
"R[write to console]: The following objects are masked from ‘ package:base’ :\n",
"\n",
" intersect, setdiff, setequal, union\n",
"\n",
"\n"
]
}
],
2017-02-22 23:59:43 +00:00
"source": [
"%%R\n",
2018-05-29 23:56:39 +00:00
"library(prophet)\n",
"library(dplyr)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2017-07-05 03:03:21 +00:00
"## Sub-daily data\n",
"\n",
2018-05-30 04:55:26 +00:00
"Prophet can make forecasts for time series with sub-daily observations by passing in a dataframe with timestamps in the `ds` column. The format of the timestamps should be YYYY-MM-DD HH:MM:SS - see the example csv [here](https://github.com/facebook/prophet/blob/master/examples/example_yosemite_temps.csv). When sub-daily data are used, daily seasonality will automatically be fit. Here we fit Prophet to data with 5-minute resolution (daily temperatures at Yosemite):"
2017-07-05 03:03:21 +00:00
]
},
{
"cell_type": "code",
2017-07-11 05:57:13 +00:00
"execution_count": 3,
2017-09-02 05:46:11 +00:00
"metadata": {
2017-09-02 20:07:49 +00:00
"output_hidden": true
2017-09-02 05:46:11 +00:00
},
2017-07-11 05:57:13 +00:00
"outputs": [
{
"data": {
"text/plain": [
2018-05-29 23:56:39 +00:00
"Initial log joint probability = -1444.46\n",
2017-07-11 05:57:13 +00:00
"Optimization terminated normally: \n",
2018-05-28 19:37:23 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-07-11 05:57:13 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\nO7VQo1UO3jtGOriE6tW
2017-07-11 05:57:13 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"df <- read.csv('../examples/example_yosemite_temps.csv')\n",
"m <- prophet(df, changepoint.prior.scale=0.01)\n",
"future <- make_future_dataframe(m, periods = 300, freq = 60 * 60)\n",
"fcst <- predict(m, future)\n",
2018-05-31 01:47:16 +00:00
"plot(m, fcst)"
2017-07-11 05:57:13 +00:00
]
},
{
"cell_type": "code",
2020-08-19 21:13:57 +00:00
"execution_count": 3,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-07-05 03:03:21 +00:00
"outputs": [
{
"data": {
2020-08-19 21:13:57 +00:00
"image/png": "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
2017-07-05 03:03:21 +00:00
"text/plain": [
2018-05-30 23:25:23 +00:00
"<Figure size 720x432 with 1 Axes>"
2017-07-05 03:03:21 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv('../examples/example_yosemite_temps.csv')\n",
"m = Prophet(changepoint_prior_scale=0.01).fit(df)\n",
"future = m.make_future_dataframe(periods=300, freq='H')\n",
"fcst = m.predict(future)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot(fcst)"
2017-07-05 03:03:21 +00:00
]
},
2017-09-02 05:46:11 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The daily seasonality will show up in the components plot:"
]
},
2017-07-05 05:39:57 +00:00
{
"cell_type": "code",
2017-07-11 05:57:13 +00:00
"execution_count": 5,
2017-09-02 05:46:11 +00:00
"metadata": {
2017-09-02 20:07:49 +00:00
"output_hidden": true
2017-09-02 05:46:11 +00:00
},
2017-07-11 05:57:13 +00:00
"outputs": [
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\nmMxny5uOlTTuvFS7cN8
2017-07-11 05:57:13 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 9 -h 9 -u in\n",
"prophet_plot_components(m, fcst)"
]
},
{
"cell_type": "code",
2020-08-19 21:13:57 +00:00
"execution_count": 4,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-07-05 05:39:57 +00:00
"outputs": [
{
"data": {
2020-08-19 21:13:57 +00:00
"image/png": "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
2017-07-05 05:39:57 +00:00
"text/plain": [
2018-05-30 23:25:23 +00:00
"<Figure size 648x648 with 3 Axes>"
2017-07-05 05:39:57 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2018-05-31 01:47:16 +00:00
"fig = m.plot_components(fcst)"
2017-07-05 05:39:57 +00:00
]
},
2017-07-05 03:03:21 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2018-05-29 23:56:39 +00:00
"## Data with regular gaps\n",
"\n",
"Suppose the dataset above only had observations from 12a to 6a:"
]
},
{
"cell_type": "code",
"execution_count": 7,
2018-05-31 01:47:16 +00:00
"metadata": {
"output_hidden": true
},
2018-05-29 23:56:39 +00:00
"outputs": [
{
"data": {
"text/plain": [
"Initial log joint probability = -467.044\n",
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGwCAIAAAAPKcUMAAAACXBIWXMAAAsSAAALEgHS3X78AAAg\nAElEQVR4nOy9eXxkVZn//7n3VlVSSzpJZeklvdELTTe9QtMsstsgIouDfG1QmNZRmdFxgZ86Ds7w\ncxalFQRGRGe+Ai4vQcBhVJBBEGhAkb3pDnvv0EvSnaSqstSWusv5/nFuPXXq1q0QoCsJ4Xn/AbdP\nbs49devmns95tqMJIcAwDMMwDFNL9PEeAMMwDMMwkx8WHAzDMAzD1BwWHAzDMAzD1BwWHAzDMAzD\n1JzAeA/ASyaTqUW3oVCoUCjUomdGxTAM27bHexSTHF3XDcMwTXO8BzI54We4RmiaFggE+LkdA8b+\nGY5Go6M5bcIJjlwud8j71DQtGo0ODAwc8p4ZD9FotBbfIKMSDAb5PtcOvrc1IhgM1tXVDQ4OjvdA\nJjmaptXX14/xMzxKwcEuFYZhGIZhag4LDoZhGIZhag4LDoZhGIZhas5YxHDcfffdzzzzDIB0Or1m\nzZpzzz33q1/9ant7O4ArrrhixowZYzAGhmEYhmHGkbEQHBdeeOGFF14I4Ec/+tGHP/zh3t7es88+\ne926dWNwaYZhGIZhJgJj51LZs2dPOByeNm3awYMHu7q6brrppscee2zMrs4wDMMwzDgydmmxd999\n9+c+9zkAkUhk6dKlq1at+sEPfhCPx5cvX759+/Z/+7d/A3D++ed/9KMfrdEAmpqaatQzQ+i6HgwG\nx3sUkxxN03Rd5+e5RvAzXCP4uR0zdF2vq6sbs8s5jjPKM8dIcGQymVwu19DQAGDNmjWy8fTTT9+2\nbdvy5cvb29vXr18P4LDDDqtRHY5YLMa59WNAXV3d8PDweI9ikhMIBEKhED/PNYKf4RphGMbY14d4\nfzLGhS6FEKFQaDRnjpHg2LRp0/Lly+XxHXfcsWTJkhUrVuzZs2fBggUAGhsb165dK3/a19d3yK8u\nBQe/RMaAQCDA97nWOI4TDAb5PtcIfoZrhCz8xfe21khL0sS8z2MUw/Hcc8+tXLlSHq9du/bOO++8\n6qqrUqnU8ccfPzYDYBiGYRhmHNGEEOM9hjJqZOFoaWmpRc+Mh2g0WqPdcBhCljbv7+8f74FMTvgZ\nrhHBYDAWi6VSqfEeyCRnXEqbt7a2juY0LvzFMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzD\nMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzN\nYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMEzNYcHBMAzDMO9JOrvT4z2EtwELDoZh\nGIaZVExMIcKCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EY\nhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGY\nmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmsOCg2EYhmGYmhMY7wF4iUaj77meGSIYDPJ9rjW6\nruu6zve5RvAzXCP4ua0F4bDtuaWaphmGEQ6Hx+xWCyFGeeaEExyZTOaQ96lpWjgcrkXPjIdoNMr3\nudYEg0HDMPg+1wh+hmtEMBgMBAJ8bw8tuVwukzHUFk3T6uvrK9trSiQSGc1p7FJhGIZhGKbmsOBg\nGIZhGKbmsOBgGIZhmLGmszs93kMYa1hwMAzDMAxTc1hwMAzDMAxTc1hwMAzDMAxTc1hwMAzDMEyt\neB/GalSDBQfDMAzDMDWHBQfDMAzDMDWHBQfDMAzDMDWHBQfDMAzDTGgmRyAICw6GYRiGYWoOCw6G\nYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiG\nYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoOCw6GYRiGYWoO\nCw6GYRjmfc3k2Px94sOCg2EYhmF8YCFyaGHBwTAMw0wqdqfym1krTDxYcDAMwzCTivu2Jn76wsHx\nHgXjhQUHwzAMM6mwHZEZtsZ7FIwXFhwMwzDMpEJAy5rOeI+C8cKCg2EYhplUCIGMaVe25y1HCJ/z\n9w0Waj4mBgiMwTX6+vq++tWvtre3A7jiiiva29tvvPHGdDo9e/bsT33qU2MwAIZhGOb9g4DIFHws\nHJ/73faLlrV9ZFHc0/7Z3217+UurWyJjMSG+nxmL+9vb23v22WevW7dO/vOJJ56YMWPGRRddtGHD\nhn379s2cOXMMxsAwDMO8T7AdkfWzcGRNO5X3ie2wHJEu2Cw4as1YuFQOHjzY1dV10003PfbYYwC2\nb98+b948APPmzdu+ffsYDIBhGIZ5/yAAXwuHEMgUvEJEOll8XTDvHssR1z+5r9KPsyuVv+f1xDvo\n8D1dGmQsBF0kElm6dOmqVat+8IMfxOPxbDbb2toKoKWlJZ1OA3jllVe+9KUvAbjkkks+/elP12gY\nLS0tNeqZUamvrx/vIUx+NE3j57l28DNcI8bsua0P9w3bovJaRiAgAnWedtsRAIz6aEuL19XSmDVa\nWprezUgG89b921L1DY2xurLZ9vGu7sfeGPrBqO8GjcQzpGojbGxsfJcjHz2OM9r43LEQHGvWrJEH\np59++rZt2yKRSCKRmDdvXiKRkIEdCxcu/OUvfwmgoaGhv7//kA9A07SmpqZa9Mx4CIfDuVxuvEcx\nyQkGg+FweHBwcLwHMjnhZ7hGBAKBSCQyNs9tLpe3HVH5zjctKzGY8bSbtgOgJzXY3+Q1+Q8NDY1+\n3rj75d6TD2tqjwbVxoG8BWB/b3JqLKS2pzPZzLA1+lmJRuIZUuUINU0LhUJva+TvEiFEPO7Var6M\nheC44447lixZsmLFij179ixYsGDatGlvvPHGMcccs2fPnhNOOAFAKBTq6OiQJ/f19R3yAWiaBsC2\na2IxY1SEEHyfa42u63yfawff2xqh6zrG6j1sO0LA53u0HSddsD3tlu0AGMyZnvY9A8M3P99940ci\no7zofz27PxzAWQvLpl7TsgEM5c3WsFE2EtvOmt6RjIDjOPJkOvC0E5qmCSEq2ycCYxHDsXbt2jvv\nvPOqq65KpVLHH3/8cccdt3///muvvba9vX3WrFljMACGYRjm/YMjhG/6qyOQrigIJqABqAwyfbM/\n/8SbA5Wd3NbZc8vz3b6dVwaOyHFUtjsCecvHE7FvYLgva1a2P7V3aBJUFhkLC0dbW9uGDRvon7qu\nX3755WNwXYZhGOZ9iCOEb8ENAeQqpnnHEajSnveLJH2zf3jAL9XFEaIy8lSqmcp2RwhfwfGjZ7tb\nwoGvnehN3vy/z3WtnB47blZD5a9IOrvTK6bHqv10gsCFvxiGYZhJhSPgZ+CA47jyovxkIX9U2Une\n8unGEf45t44QlUYIx7VwVAoODNtOpSqyHMc3X0b42WBGw4TKamHBwTAMw0wqRBWXioCQJofyRvdH\n3rM1rdLsAcARIl0hIFAl59YVHBVCRI4w59OON/vzfp1rlZ2852DBwTAMw0wqHAFfxeEIH2HhWjgq\nTneEsBxRsH00gW+RD/8YDgDFuFTPyQCGbZ/BVKoQ2V6pZt5zsOBgGIZhJhWO8LFkwI3tqGwE4CNQ\nnKrxnj6xGpDVxnxiNdwfVZ6MYs0xz/m+gkNAVIa7vudgwcEwDMNMKoSAf9Co8JvjpSjQvAJFRnVU\nRk44Aulh/xiOQpWIVD9hIeDnx6kWTOoIH79Mf976/O93+I7ErLCdTARYcDAMwzCTCuFnsYBr+fCJ\n1QB8BIo8s+Dn9fCN3xTCxy8jir9S0Yn7K5Wd+AaOwO+i6WF7RzJf2clvXu757hN7fToZb1hwMAzD\nMJMKR8Dxd6n4ZqNUM0I
2018-05-29 23:56:39 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"df2 <- df %>%\n",
" mutate(ds = as.POSIXct(ds, tz=\"GMT\")) %>%\n",
" filter(as.numeric(format(ds, \"%H\")) < 6)\n",
"m <- prophet(df2)\n",
"future <- make_future_dataframe(m, periods = 300, freq = 60 * 60)\n",
"fcst <- predict(m, future)\n",
2018-05-31 01:47:16 +00:00
"plot(m, fcst)"
2018-05-29 23:56:39 +00:00
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\ncUwQBEFMAAqFAq666io
2018-05-29 23:56:39 +00:00
"text/plain": [
2018-05-30 23:25:23 +00:00
"<Figure size 720x432 with 1 Axes>"
2018-05-29 23:56:39 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df2 = df.copy()\n",
"df2['ds'] = pd.to_datetime(df2['ds'])\n",
"df2 = df2[df2['ds'].dt.hour < 6]\n",
"m = Prophet().fit(df2)\n",
"future = m.make_future_dataframe(periods=300, freq='H')\n",
"fcst = m.predict(future)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot(fcst)"
2018-05-29 23:56:39 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The forecast seems quite poor, with much larger fluctuations in the future than were seen in the history. The issue here is that we have fit a daily cycle to a time series that only has data for part of the day (12a to 6a). The daily seasonality is thus unconstrained for the remainder of the day and is not estimated well. The solution is to only make predictions for the time windows for which there are historical data. Here, that means to limit the `future` dataframe to have times from 12a to 6a:"
]
},
{
"cell_type": "code",
"execution_count": 9,
2018-05-31 01:47:16 +00:00
"metadata": {
"output_hidden": true
},
2018-05-29 23:56:39 +00:00
"outputs": [
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\n40Ycz5kzB+MVsmfP3qJ
2018-05-29 23:56:39 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"future2 <- future %>% \n",
" filter(as.numeric(format(ds, \"%H\")) < 6)\n",
"fcst <- predict(m, future2)\n",
2018-05-31 01:47:16 +00:00
"plot(m, fcst)"
2018-05-29 23:56:39 +00:00
]
},
{
"cell_type": "code",
2018-05-30 23:25:23 +00:00
"execution_count": 10,
2018-05-29 23:56:39 +00:00
"metadata": {},
"outputs": [
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\nd9d04tnRNPAxLmAYBgw
2018-05-29 23:56:39 +00:00
"text/plain": [
2018-05-30 23:25:23 +00:00
"<Figure size 720x432 with 1 Axes>"
2018-05-29 23:56:39 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"future2 = future.copy()\n",
"future2 = future2[future2['ds'].dt.hour < 6]\n",
"fcst = m.predict(future2)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot(fcst)"
2018-05-29 23:56:39 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The same principle applies to other datasets with regular gaps in the data. For example, if the history contains only weekdays, then predictions should only be made for weekdays since the weekly seasonality will not be well estimated for the weekends.\n",
"\n",
2017-07-05 03:03:21 +00:00
"## Monthly data\n",
"\n",
"You can use Prophet to fit monthly data. However, the underlying model is continuous-time, which means that you can get strange results if you fit the model to monthly data and then ask for daily forecasts. Here we forecast US retail sales volume for the next 10 years:"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2018-05-30 23:25:23 +00:00
"execution_count": 11,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
2018-05-30 23:25:23 +00:00
"Initial log joint probability = -2.41173\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
2018-05-28 19:37:23 +00:00
" Convergence detected: relative gradient magnitude is below tolerance\n"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGwCAIAAAAPKcUMAAAACXBIWXMAAAsSAAALEgHS3X78AAAg\nAElEQVR4nOzdeZxlZ1kv+t/zvmvYQ1V19TxkgiSEQEI6MQxJNAQ5KBi9cgVFrvccyedz/HCMhov5\n5HLxKqjH4xE/RkVywuF6yVGOgqBEvYDicFA4BEPCFJpMkA5Jp5PuTk817NrTWut93+f+8a61ateu\noVeFqtrp7uf7R9Jdvdfeq3Y6vZ9+3mcgZoYQQgghxHpSo74BIYQQQpz5JOAQQgghxLqTgEMIIYQQ\n604CDiGEEEKsu2DUN3BqnU5n1Lew0ZRSzHyW1/MqpZRSxphR38iIaa2ttaO+ixELgsA555wb9Y2M\nEhERkbwJQRBkWTbqGxmx5/8fC81mc/EXT4OAo9frjfoWNlqtVkvT9Cz/kyWO4ziOz8L/+kOazaa8\nCZs2bUrTNEmSUd/IKGmtgyCQN6Fer7darVHfyIg9//9YWDLgkCMVIYQQQqw7CTiEEEIIse4k4BBC\nCCHEupOAQwghhBDrTgIOIYQQQqw7CTiEEEIIse4k4BBCCCHEupOAQwghhBDrTgIOIYQQQqw7CTiE\nEEIIse4k4BBCCCHEupOAQwghhBDrTgIOIYQQQqw7CTiEEEIIse4k4BBCCCHEupOAQwghhBDrTgIO\nIYQQQqw7CTiEEEIIse4k4BBCCCHEupOAQwghhBDrTgIOIYQQQqw7CTiEEEIIse4k4BBCCCHEupOA\nQwghhDiT7TvSHvUtABJwCCGEEGIDSMAhhBBCiHUnAYcQQggh1p0EHEIIIYRYdxJwCCGEEGLdScAh\nhBBCiHUnAYcQQggh1p0EHEIIIYRYdxJwCCGEEGLdScAhhBBCiHUnAYcQQggh1p0EHEIIIYRYdxJw\nCCGEEGLdScAhhBBCnGaeJwtgV0UCDiGEEEKsOwk4hBBCCLHuJOAQQgghxLoL1uqJut3u7/zO71hr\nt2/f/s53vpOIVniwMeaOO+5ot9vnn3/+TTfddOLEidtuu23Hjh0Abr311j179qzVXQkhhBBi0L4j\n7b27xzb+ddcs4LjnnnuuvPLKN73pTe9///v3799/ySWXrPDg++67b8+ePW9961vf9773PfPMM3Nz\nczfeeONP//RPr9XNCCGEEOJ5Zc0Cju3btz/66KPT09MnTpyYnJzsdDrvf//7syzbunXrLbfcotSC\ns5v9+/dfdtllAC688ML9+/cT0eHDh++8887LL7/8Na95DYCpqakvfOELAC699NLzzz9/rW7ydBGG\nIREx86hvZJSCINBa12q1Ud/IiAVBIG+CUsr/TzHqGxklpZRSSt4EAPJ/RBAEURRVfx+iKB188NBP\n19xyH15rFnBcfPHFH/nIR373d383iqLNmzf/zd/8zQ033HD99dfffffd99xzzw033ADgQx/60M03\n3wyg2+1u27YNwNatW9vt9s6dOy+//PKrrrrqAx/4wJYtW6644oq5ubmvfOUrAMbGxi666KK1usnT\nhdZaAg7/JoRhOOobGTH/WTvquxgxIvK/H0Z9I6NERBJwEJH8sQBAKRUEQfX3YejBq7r2OVjuw2vN\nPtXuuuuuK6+88uUvf/lf//Vfj4+PP/LII71eb2xsDMA111xTr9e/+MUvPvTQQz6wePTRRy+//PJX\nvOIVf/EXf7Fjx44f/MEf9E/y+c9//uTJkz/5kz85+MwnTpxYkzs8jdRqtTRNnXOjvpFRiuM4juNW\nqzXqGxmxZrPZ6XRGfRcjtmnTpn6/nyTJqG9klLTWQRDImzA5OXny5MlR38iINZvNex8/Wr0OY6ho\nYwNqOHxOYciaZTiyLPOxi3POGLNnz57Jyckf+qEfuvfee/fs2bNnz57LLruszHAYYw4cOPCKV7zi\n4MGD11133cc//vGXvvSle/fuPXjw4MUXX7xWtySEEEKI54k1Czje/OY3f+ADH/jMZz5Tq9Vuu+02\nY8zv/d7v3X///du3b7/uuuuGHnzNNdfceeedt99++44dO84777zXve51f/AHf3D33Xdv3br12muv\nXatbEkIIIcTzxGlQKCBHKmcnOVLx5EgFcqQCQI5UAMiRSuE0PVKRwV9CCCGEWHcScAghhBBi3UnA\nIYQQQoh1JwGHEEIIIdadBBxCCCGEWHcScAghhBBi3UnAIYQQQoh1JwGHEEIIIdadBBxCCCGEWHcS\ncAghhBBnl31H2vuOtDf4RSXgEEIIIcS6k4BDCCGEEOtOAg4hhBBCrDsJOIQQQgix7iTgEEIIIUbg\nuZVt7jvSfuBQa81vZgNIwCGEEEKIdScBhxBCCCHWnQQcQgghxOlh44dnrCEJOIQQQogz3EgmfQ2R\ngEMIIYQQ604CDiGEEEKsOwk4hBBCCLHuJOAQQgghxLqTgEMIIYQQ6y4Y9Q0IIYQQ4nvlm1D27h5b\n/MXnCclwCCGEEGLdScAhhBBCnN6eV5mM5UjAIYQQQoh1JwGHEEIIIdadBBxCCCHE2vhejjZOi2OR\n74UEHEIIIcQZ5fkZu0hbrBBCCHG6WlVsMdpARDIcQgghhFh3EnAIIYQQYt1JwCGEEEKIdScBhxBC\nCCHWnQQcQgghxPPIOpV2GsfG8Xo8c0UScAghhBDPL/uOtNc87PjTB4792TePre1zroq0xQohhBBn\niBXClNnEbOSdLCYZDiGEEOJM5k9SUusyOVIRQgghxHpIrPvJTzw6l1jjMNoaDjlSEUIIIZ6P/PnI\n3t1jgz9drVbftlM73TPGsaK1vL3VkoBDCCGEOGP1MgegZ5xlHmV+QwIOIYQQ4gyWWAcgtWwdIBkO\nIYQQ4rS2Jl2s6zGBIzEOQGaddQ5qlIWbp0HA0Ww2R30LGy0IgiAIRp39GjGttdb6LPyvPyQMQ3kT\ntNZxHAfBafDn1fohIqWUvAl4vn4o1OvW/6D67dXrdvDB5TMMKR9TPiAIgnq97r++8lX1ulVhBkAF\nESkNQr1eX/zMa2u5D6/T4Pdup9MZ9S1stFqtlqapc27UNzJKcRzHcXwW/tcf0mw25U0IgiBJkiRJ\nRn0jo6S19u/DqG9klHzo+fz8P6LX6/kfdDq6+iWDDy6fYUj5mPIBca1262ce/av/7bJGqFa+qtfr\ntXt9AJ1+P7NW0YJXqX6rq9VoNBZ/UdpihRBCiNNJL3NfO9Q+0c2qPNhYBmAcO8c80r/GngYZDiGE\nEOIsN1je4csy9h1uT1eIOfywL+vYAoAM/hJCCCHEqfzT49Mf3XfMMFBEEqdkfcDBcI6dDP4SQggh\nzlrVm1P2T/WOzmXGOhSRxCn56aLGOmZ2NMq+WMlwCCGEEPPWaTv8muhl3MtckbRYKeAo9836dIhl\nOMZoazgk4BBCCCFOD4lxiXM+1LDVjkescwAcs2M4qeEQQgghxCkl1mWW/SlJxYIMYwHAOjge8XQn\nCTiEEEKI00NmObPsfIajWrrCOAfAMvskxwhJwCGEEEKMzANH2l89NFfxwZlj45x1AFBxNqQ/eXEM\nBrmRpjgk4BBCCCHWS1m8uZx/enz6Hx+frvhsmWPj4OOGitFDHp3kGQ4JOIQQQoizUi9zfpBXFcY6\n6/IulaoBB/seWjjHPNJ1sRJwCCGEEN+T59ZJe+f9h2f6JrUuW7HhZDBHYhwbzms3HFeKHvKiUWYG\nMXgutb/6uaeew91+7yTgEEIIITbUviPtrx+a+9S3T+4/0csc28rjMYyDcXntZ8UMh+GyLZaZcayd\n3f9MK63YU7umJOAQQgghNlo3tcxop9ZYXnmE1yBjnWVe3ZFKUWHqwM6xP77pZ0svtV9XEnAIIYQQ\n62KFo5bEMoCecYarjvBCvhIF/lClYo+rj2YcfMko+Q0s6SgaZCXgEEIIITaaDzgS4+xqdqoZx2WG\no2JaxBYtLY7JcT40zEjAIYQQQpypBhMemXUAUsvGccURXvABhwMzAVXnlFvLgSLrwGBGHnCsXKa6\nTiTgEEIIIdbGvQdbWbU
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_retail_sales.csv')\n",
2018-05-28 19:37:23 +00:00
"m <- prophet(df, seasonality.mode = 'multiplicative')\n",
2017-02-22 23:59:43 +00:00
"future <- make_future_dataframe(m, periods = 3652)\n",
"fcst <- predict(m, future)\n",
2018-05-31 01:47:16 +00:00
"plot(m, fcst)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2020-08-19 21:22:57 +00:00
"execution_count": 3,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2020-08-19 21:22:57 +00:00
"image/png": "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
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-28 19:37:23 +00:00
"<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_retail_sales.csv')\n",
2018-05-28 19:37:23 +00:00
"m = Prophet(seasonality_mode='multiplicative').fit(df)\n",
2017-02-22 23:59:43 +00:00
"future = m.make_future_dataframe(periods=3652)\n",
"fcst = m.predict(future)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot(fcst)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2018-05-30 23:25:23 +00:00
"This is the same issue from above where the dataset has regular gaps. When we fit the yearly seasonality, it only has data for the first of each month and the seasonality components for the remaining days are unidentifiable and overfit. This can be clearly seen by doing MCMC to see uncertainty in the seasonality:"
]
},
{
"cell_type": "code",
2018-05-31 01:47:16 +00:00
"execution_count": 13,
"metadata": {
"output_hidden": true
},
2018-05-30 23:25:23 +00:00
"outputs": [
{
"data": {
"text/plain": [
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 1).\n",
"\n",
2018-05-31 01:47:16 +00:00
"Gradient evaluation took 0.000295 seconds\n",
"1000 transitions using 10 leapfrog steps per transition would take 2.95 seconds.\n",
2018-05-30 23:25:23 +00:00
"Adjust your expectations accordingly!\n",
"\n",
"\n",
"Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Iteration: 300 / 300 [100%] (Sampling)\n",
"\n",
2018-05-31 01:47:16 +00:00
" Elapsed Time: 8.34305 seconds (Warm-up)\n",
" 11.9261 seconds (Sampling)\n",
" 20.2691 seconds (Total)\n",
2018-05-30 23:25:23 +00:00
"\n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 2).\n",
"\n",
2018-05-31 01:47:16 +00:00
"Gradient evaluation took 8.8e-05 seconds\n",
"1000 transitions using 10 leapfrog steps per transition would take 0.88 seconds.\n",
2018-05-30 23:25:23 +00:00
"Adjust your expectations accordingly!\n",
"\n",
"\n",
"Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Iteration: 300 / 300 [100%] (Sampling)\n",
"\n",
2018-05-31 01:47:16 +00:00
" Elapsed Time: 8.03362 seconds (Warm-up)\n",
" 12.053 seconds (Sampling)\n",
" 20.0867 seconds (Total)\n",
2018-05-30 23:25:23 +00:00
"\n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 3).\n",
"\n",
2018-05-31 01:47:16 +00:00
"Gradient evaluation took 9e-05 seconds\n",
"1000 transitions using 10 leapfrog steps per transition would take 0.9 seconds.\n",
2018-05-30 23:25:23 +00:00
"Adjust your expectations accordingly!\n",
"\n",
"\n",
"Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Iteration: 300 / 300 [100%] (Sampling)\n",
"\n",
2018-05-31 01:47:16 +00:00
" Elapsed Time: 7.93548 seconds (Warm-up)\n",
" 11.498 seconds (Sampling)\n",
" 19.4335 seconds (Total)\n",
2018-05-30 23:25:23 +00:00
"\n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 4).\n",
"\n",
2018-05-31 01:47:16 +00:00
"Gradient evaluation took 8.9e-05 seconds\n",
"1000 transitions using 10 leapfrog steps per transition would take 0.89 seconds.\n",
2018-05-30 23:25:23 +00:00
"Adjust your expectations accordingly!\n",
"\n",
"\n",
"Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Iteration: 300 / 300 [100%] (Sampling)\n",
"\n",
2018-05-31 01:47:16 +00:00
" Elapsed Time: 8.28209 seconds (Warm-up)\n",
" 11.0983 seconds (Sampling)\n",
" 19.3804 seconds (Total)\n",
2018-05-30 23:25:23 +00:00
"\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "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\nx5gp2eKkTmm/H6nWmZ3
2018-05-30 23:25:23 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 9 -h 6 -u in\n",
"m <- prophet(df, seasonality.mode = 'multiplicative', mcmc.samples = 300)\n",
"fcst <- predict(m, future)\n",
"prophet_plot_components(m, fcst)"
]
},
{
"cell_type": "code",
2020-08-19 21:22:57 +00:00
"execution_count": 4,
2018-05-30 23:25:23 +00:00
"metadata": {},
"outputs": [
2020-08-19 21:22:57 +00:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:pystan:403 of 600 iterations saturated the maximum tree depth of 10 (67.2 %)\n",
"WARNING:pystan:Run again with max_treedepth larger than 10 to avoid saturation\n"
]
},
2018-05-30 23:25:23 +00:00
{
"data": {
2020-08-19 21:22:57 +00:00
"image/png": "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
2018-05-30 23:25:23 +00:00
"text/plain": [
"<Figure size 648x432 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet(seasonality_mode='multiplicative', mcmc_samples=300).fit(df)\n",
"fcst = m.predict(future)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot_components(fcst)"
2018-05-30 23:25:23 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2018-05-31 05:43:52 +00:00
"The seasonality has low uncertainty at the start of each month where there are data points, but has very high posterior variance in between. When fitting Prophet to monthly data, only make monthly forecasts, which can be done by passing the frequency into `make_future_dataframe`:"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
2018-05-31 01:47:16 +00:00
"execution_count": 15,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
2018-05-31 01:47:16 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAGwCAIAAAAPKcUMAAAACXBIWXMAAAsSAAALEgHS3X78AAAg\nAElEQVR4nOzdeZxcZZU//vPc595bW3f13kk6e0gCISEkQCCgIayC4AYuwDgojs53hp+4IDqO/nRw\n1BFXEET5qrgxOqLoqCzqjAaFKItAIBASQiAr6U7Se3Utd3mW7x+3urq6ekndprurO/15/8Erqa6n\n7u1K6Do5z3nOYVprAgAAAJhIRqVvAAAAAI59CDgAAABgwiHgAAAAgAmHgAMAAAAmnFnpGzi6TCZT\n6VuYbIZhaK1neD2vYRiGYQghKn0jFcY5l1JW+i4qzDRNpZRSqtI3UkmMMcYY3gTTNH3fr/SNVNjU\n/7GQSCSGPjgNAo5cLlfpW5hs0WjU87wZ/pMlEolEIpEZ+KdfIpFI4E2oqanxPM913UrfSCVxzk3T\nxJsQi8VSqVSlb6TCpv6PhWEDDmypAAAAwIRDwAEAAAATDgEHAAAATDgEHAAAADDhEHAAAADAhEPA\nAQAAABMOAQcAAABMOAQcAAAAMOEQcAAAAMCEQ8ABAAAAEw4BBwAAAEw4BBwAAAAw4RBwAAAAwIRD\nwAEAAAATDgEHAAAATDgEHAAAADDhEHAAAADAhEPAAQAAABMOAQcAAABMOAQcAAAAMOEQcAAAAMCE\nQ8ABAAAAEw4BBwAAAEw4BBwAAAAw4RBwAAAAwIRDwAEAAHAs29qWrvQtECHgAAAAgEmAgAMAAAAm\nHAIOAAAAmHAIOAAAAGDCIeAAAACACYeAAwAAACYcAg4AAACYcAg4AAAAYMIh4AAAAIAJh4ADAAAA\nJhwCDgAAAJhwCDgAAABgwpnj9ULZbPaLX/yilLKpqelDH/oQY2yUJwshbrvttnQ6vWDBgmuuuaaj\no+OGG25obm4mouuvv76lpWW87goAAACmgnELODZv3rxmzZrLL7/8lltu2bVr1/Lly0d58mOPPdbS\n0nLllVfedNNNr7zySl9f3yWXXHLFFVeM180AAADAlDJuAUdTU9OOHTu6u7s7Ojpqa2szmcwtt9zi\n+35DQ8N1111nGIP2bnbt2rVy5UoiWrJkya5duxhjra2tt99++6pVq84555zxuiUAAACYIsYt4Fi6\ndOkPf/jDL3/5y7Zt19XV/epXv9q4ceOGDRt+8YtfbN68eePGjUR0xx13XHvttUSUzWYbGxuJqKGh\nIZ1Oz5o1a9WqVWvXrr311lvr6+tXr169a9euz372s0T05je/+S1vect43eR0YRhGNBqt9F1UGGPM\nMIza2tpK30iFGYZhWVal76LCOOfxeDwWi1X6Riop2KfGm8AYw4+FsD8WqtOstrZm4u6nhFJq2MeZ\n1npcLnDnnXeuWbPmtNNO++///u/q6urt27fncrmqqioiWr9+fSwWe/jhh7dt2xYEFjt27Fi1atW6\ndet+9rOfNTc3n3vuucGL/OlPf+rs7Hzb296WTqe3b99ORC0tLdXV1eNyh9OIbdtCiJH+zGYIy7Js\n285kMpW+kQqLRqOO41T6LioskUh4nuf7fqVvpJI454ZhzPA3wTCMqqqqVCpV6RupsLA/Fp5p7VvT\nMqmfpDU1w8Q345bh8H0/iF2UUkKIlpaW2traCy+88JFHHmlpaWlpaVm5cmUhwyGE2Lt377p16/bv\n33/WWWf99Kc/PfHEE08++eT9+/cvXbqUiKqqqk4//fTglTs6OsbrJqcLzrnv+zM84DAMQyk1w3+8\nEpFt23gTtNZSyhn+PiilTNOc4W8C55yIZvibQOF/LAghpsKbNm4Bx1vf+tZbb731vvvui0ajN9xw\ngxDiq1/96uOPP97U1HTWWWeVPHn9+vW33377V77ylebm5vnz519wwQU333zzL37xi4aGhjPPPHO8\nbgkAAACmiHHbUpk4MzDDEY1GPc+b4RmOSCQSiUSQO00kEthXqqmpcRzHdd1K30glcc5N08SbUFtb\n29nZWekbqbCwPxa2tqVPnlM1cfczVFCmWQKNvwAAAGDCIeAAAACACYeAAwAAACYcAg4AAACYcAg4\nAAAApo2tbelK38IYIeAAAACACYeAAwAAACYcAg4AAIAZZ/K3ZhBwAAAAwIRDwAEAAAATDgEHAAAA\nTDgEHAAAADDhEHAAAADAhEPAAQAAABMOAQcAAABMOAQcAAAAMOEQcAAAAMCEQ8ABAAAAEw4BBwAA\nAEw4BBwAAADHrGBmSvHklK1t6YrMuEfAAQAAUAFj+NSvSKAwXhBwAAAAwIRDwAEAADC9leyYVPBO\nRoGAAwAAACYcAg4AAACYcAg4AAAAYMIh4AAAAIAJh4ADAADgGDFlK0aJyKz0DQAAAMCrNZVDjQAy\nHAAAADDhEHAAAADAhEPAAQAAcEwpbK9MqX0WBBwAAAAw4RBwAAAAwITDKRUAAIDpKuymSQU3WZDh\nAAAAgAmHDAcAAMC0NEq6YkqViwaQ4QAAAIAJh4ADAAAAJhwCDgAAgClqCu6MjBkCDgAAAJhwCDgA\nAABerWMpFTFBEHAAAAAcy36w5fCRtF/pu0DAAQAAMJWMe7Lkob09rX3u+L7mGCDgAAAAmIrGK/Lw\nlJZ6XF7pVZkGjb9Mcxrc5PjinJumqZSq9I1UEuecMTYD//RL4E0gIsZY8D9FpW+kkjjneBMMw6Cp\n+qEwhj+dkZYUHuec0+DvN3ik8GMh+O1R+VJrGmbJJL+TU/GPrUSZb+ixJPjxyhir9I1UkmEYwftQ\n6RupMMMw8CZQ//8Ulb6LSjIMA38ZgoBjar4JQUQ4LksKjxf/t/AlKvqxUOYVPakVsZFebdxpPXw6\nZRoEHK5b+Z2nScYY8zxvhmc4iMgwjBn4p1/CNE28CdFoVAgxw9+H4F+9eBPi8fjUfBM8zwt7Y8Mu\nCbZRgsc9z6OiD8HCDouUsvgJR+VL5fhi6JJJfienQcABAAAwo4xv3aivtJgC/4JF0SgAAMAxy5da\na5KVjzcQcAAAAEx5Y855eEoRkZgCEQcCDgAAgGljpJLMkfhSE5EIuWoiIOAAAACYHrYdznzsf/eG\nWpIPOOSE3E8oCDgAAAAqo3ijZGtb+qj7Jr2u7PNEqEt4ShORRIYDAAAAyuRLLUPmKjyhiEgoBBwA\nAABQHk8qP2T5Z7ClMgVqRtGHAwAAYAor3mfxZOipKMGWitCVjziQ4QAAAJgePKXCbo4EGRFR+XgD\nAQcAAMCkG1tfDU/osAGHJxURSXQaBQAAOFaVHEJ59S/oSS1DBxw4FgsAAHBMGFsw8bk/799+JBtq\nia+0H3ZLRaHxFwAAwNQzvoPTRtHa53U74Zpq+DJ0DUf/sVhVTp+PCYWAAwAAoAI8OYaCDC21fvpg\nqvwlQYYDx2IBAACOZaMkFTypxlCQoXW4tqH5Gg40/gIAAJiZfBm6ICM4cuKLEKt8qRlDDQcAAMBM\n5anwXbxk6MEonlQ2N8KmUiYCAg4AAIDJULK94gkVtj1GfxevcFsqccvAlgoAAMCME0QentRh22N4\nInRBhi91zOQibC5lAiDgAAAAmGxSa6W16M9wlHlg1dNBF69wGY6YzabCKRUEHAAAAK+KUPrFjlyo\nJWPIVRCRLxQR+WE2YnylY9zA8DYAAIBpb2dH9gsP7w+1ZGwz1frPuIZaomIWx/A2AACACTQ5vTVd\noYd+oo9+aVcRhTxvQoVTKmEyHJ7UMZNNhVMqaPwFAADwqpTfM7QQhfhS0hi2VPKrQgRSvtR1MS6U\nV/J4R9ZPuSIZmbwwABkOAACAV8VTOlRdBY21AagnNWNMhMtwqJhlDC0zveOJtl9t7wx19VcJAQcA\nAEA4w3XUGO0JQ42hhRcRuVLHTBbyWKyKcS6GHFPpzonGuBXq6q8SAg4AAIBXxRvzENeQfTh8qWIm\nD9f4S+mYxYZmOHod2ZRAwAEAADB9jGHua/8Q1xCbI1JrqSluh2sb6ksds4aJUXpyfgMyHAAAAFPN\nqHNfdfHmSDkVnfkajjB
2017-02-22 23:59:43 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
2017-07-11 05:57:13 +00:00
"future <- make_future_dataframe(m, periods = 120, freq = 'month')\n",
2017-02-22 23:59:43 +00:00
"fcst <- predict(m, future)\n",
"plot(m, fcst)"
]
},
{
"cell_type": "code",
2020-08-19 21:22:57 +00:00
"execution_count": 5,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2020-08-19 21:22:57 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XmUXdV9J/rvPucONU+aJySgBAYMZhBGuJM8O4qCsdPyix8Bu9ORCF6tbpK38PN7SdvdK3Yv1ntvWX7DihMbr45o4hYZII47DzlpI3BwiIcgFInJIIRLIDRUlVSque50hr33+2Of6VbdKtU9F4mq0vezVtqoqs65p07c3T/9+O7fT2itNYiIiIiICABgvd8PQERERES0kLBAJiIiIiJKYIFMRERERJTAApmIiIiIKIEFMhERERFRAgtkIiIiIqIEFshERERERAkskImIiIiIElggExERERElZN7vB1goli9fjk2bNl2yz/M8D9ls9pJ93kLGd2HwPcT4Lgy+hxjfhcH3EOO7MPgeYp7nob+/H8PDww3fiwVyYNOmTTh8+PAl+7yBgQGsXbv2kn3eQsZ3YfA9xPguDL6HGN+FwfcQ47sw+B5iAwMD2LFjx3tyL0YsiIiIiIgSWCATERERESWwQCYiIiIiSmCBTERERESUwAKZiIiIiCiBBTIRERERUQILZCIiIiKiBBbIREREREQJLJCJiIiIiBJYIBMRERERJbBAJiIiIiJKYIFMRERERJTAApmIiIiIKIEFMhERERFRAgtkIiIiIqIEFshERERElMo7I0WUXP/9foz3HAtkIiIiIkql4in4Sr/fj/GeY4FMRERERKlIpd7vR7goWCATERERUSpKA3rpNZBZIBMRERFROr7SWIL1MQtkIiIiIkpHag29BFvILJCJiIiIKBXJDjIRERERUUwqzQwyEREREVFILsERbwALZCIiIiJKSWowg0xEREREFFKaGWQiIiIiIgCmc8w5yEREREREAR3EK5ZgfcwCmYiIiIjqp7Q2EYsl2EJmgUxEREREddMwq6aXIhbIRERERFQ3RiyIiIiIiBI0zCE9tQTbyCyQiYiIiKhuSpsieSn2kFkgExEREVHdtDZrppV6v5/kvccCmYiIiOgyVHB8nJtyUl+vdXBQ7717pAXjohbIf/iHf4gbbrgB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
2017-02-22 23:59:43 +00:00
"text/plain": [
2018-05-28 19:37:23 +00:00
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2020-08-19 21:22:57 +00:00
"future = m.make_future_dataframe(periods=120, freq='MS')\n",
2017-02-22 23:59:43 +00:00
"fcst = m.predict(future)\n",
2018-05-31 01:47:16 +00:00
"fig = m.plot(fcst)"
2017-02-22 23:59:43 +00:00
]
2020-08-19 21:08:16 +00:00
},
2020-08-19 21:22:57 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2020-08-19 21:27:20 +00:00
"In Python, the frequency can be anything from the pandas list of frequency strings here: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases . Note that `MS` used here is month-start, meaning the data point is placed on the start of each month.\n",
"\n",
"In monthly data, yearly seasonality can also be modeled with binary extra regressors. In particular, the model can use 12 extra regressors like `is_jan`, `is_feb`, etc. where `is_jan` is 1 if the date is in Jan and 0 otherwise. This approach would avoid the within-month unidentifiability seen above. Be sure to use `yearly_seasonality=False` if monthly extra regressors are being added."
2020-08-19 21:22:57 +00:00
]
},
2020-08-19 21:08:16 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Holidays with aggregated data\n",
"\n",
"Holiday effects are applied to the particular date on which the holiday was specified. With data that has been aggregated to weekly or monthly frequency, holidays that don't fall on the particular date used in the data will be ignored: for example, a Monday holiday in a weekly time series where each data point is on a Sunday. To include holiday effects in the model, the holiday will need to be moved to the date in the history dataframe for which the effect is desired. Note that with weekly or monthly aggregated data, many holiday effects will be well-captured by the yearly seasonality, so added holidays may only be necessary for holidays that occur in different weeks throughout the time series."
]
2017-02-22 23:59:43 +00:00
}
],
"metadata": {
"kernelspec": {
2020-08-19 21:08:16 +00:00
"display_name": "Python 3",
2017-02-22 23:59:43 +00:00
"language": "python",
2020-08-19 21:08:16 +00:00
"name": "python3"
2017-02-22 23:59:43 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
2020-08-19 21:08:16 +00:00
"version": 3
2017-02-22 23:59:43 +00:00
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
2020-08-19 21:08:16 +00:00
"pygments_lexer": "ipython3",
"version": "3.7.8"
2017-02-22 23:59:43 +00:00
}
},
"nbformat": 4,
2017-07-05 03:03:21 +00:00
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}