2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
2021-03-21 21:13:50 +00:00
"execution_count": 1,
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",
2022-06-25 10:31:18 +00:00
"\n",
2021-03-21 21:13:50 +00:00
"from prophet import Prophet\n",
2017-09-02 05:46:11 +00:00
"import pandas as pd\n",
"import logging\n",
2022-06-25 10:31:18 +00:00
"import warnings\n",
"\n",
2021-03-21 21:13:50 +00:00
"logging.getLogger('prophet').setLevel(logging.ERROR)\n",
2021-03-26 04:03:05 +00:00
"logging.getLogger('numexpr').setLevel(logging.ERROR)\n",
2017-09-02 05:46:11 +00:00
"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",
2021-12-25 10:12:46 +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/main/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": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling yearly seasonality. Run prophet with yearly.seasonality=TRUE to override this.\n",
"\n"
]
2017-07-11 05:57:13 +00:00
},
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
2017-07-11 05:57:13 +00:00
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
2022-06-25 10:31:18 +00:00
"df <- read.csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_yosemite_temps.csv')\n",
2017-07-11 05:57:13 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 2,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-07-05 03:03:21 +00:00
"outputs": [
{
"data": {
2021-12-25 10:12:46 +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": [
2022-06-25 10:31:18 +00:00
"df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_yosemite_temps.csv')\n",
2017-07-05 03:03:21 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 4,
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": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 3,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-07-05 05:39:57 +00:00
"outputs": [
{
"data": {
2021-12-25 10:12:46 +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",
2021-03-21 21:13:50 +00:00
"execution_count": 5,
2018-05-31 01:47:16 +00:00
"metadata": {
"output_hidden": true
},
2018-05-29 23:56:39 +00:00
"outputs": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling yearly seasonality. Run prophet with yearly.seasonality=TRUE to override this.\n",
"\n"
]
2018-05-29 23:56:39 +00:00
},
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 4,
2018-05-29 23:56:39 +00:00
"metadata": {},
"outputs": [
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 6,
2018-05-31 01:47:16 +00:00
"metadata": {
"output_hidden": true
},
2018-05-29 23:56:39 +00:00
"outputs": [
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 5,
2018-05-29 23:56:39 +00:00
"metadata": {},
"outputs": [
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 7,
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 weekly seasonality. Run prophet with weekly.seasonality=TRUE to override this.\n",
"\n",
"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-12-25 10:12:46 +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",
2022-06-25 10:31:18 +00:00
"df <- read.csv('https://raw.githubusercontent.com/facebook/prophet/main/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",
2021-03-21 21:13:50 +00:00
"execution_count": 6,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2021-12-25 10:12:46 +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": [
2022-06-25 10:31:18 +00:00
"df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/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",
2021-03-21 21:13:50 +00:00
"execution_count": 8,
2018-05-31 01:47:16 +00:00
"metadata": {
"output_hidden": true
},
2018-05-30 23:25:23 +00:00
"outputs": [
{
2021-03-21 21:13:50 +00:00
"name": "stderr",
"output_type": "stream",
"text": [
"R[write to console]: Disabling weekly seasonality. Run prophet with weekly.seasonality=TRUE to override this.\n",
"\n",
"R[write to console]: Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.\n",
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 1).\n",
"Chain 1: \n",
"Chain 1: Gradient evaluation took 0.000184 seconds\n",
"Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 1.84 seconds.\n",
"Chain 1: Adjust your expectations accordingly!\n",
"Chain 1: \n",
"Chain 1: \n",
"Chain 1: Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Chain 1: Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Chain 1: Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Chain 1: Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Chain 1: Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Chain 1: Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Chain 1: Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Chain 1: Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Chain 1: Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Chain 1: Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Chain 1: Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Chain 1: Iteration: 300 / 300 [100%] (Sampling)\n",
"Chain 1: \n",
"Chain 1: Elapsed Time: 11.649 seconds (Warm-up)\n",
"Chain 1: 17.3646 seconds (Sampling)\n",
"Chain 1: 29.0136 seconds (Total)\n",
"Chain 1: \n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 2).\n",
"Chain 2: \n",
"Chain 2: Gradient evaluation took 0.000176 seconds\n",
"Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 1.76 seconds.\n",
"Chain 2: Adjust your expectations accordingly!\n",
"Chain 2: \n",
"Chain 2: \n",
"Chain 2: Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Chain 2: Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Chain 2: Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Chain 2: Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Chain 2: Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Chain 2: Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Chain 2: Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Chain 2: Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Chain 2: Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Chain 2: Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Chain 2: Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Chain 2: Iteration: 300 / 300 [100%] (Sampling)\n",
"Chain 2: \n",
"Chain 2: Elapsed Time: 10.7148 seconds (Warm-up)\n",
"Chain 2: 14.0044 seconds (Sampling)\n",
"Chain 2: 24.7192 seconds (Total)\n",
"Chain 2: \n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 3).\n",
"Chain 3: \n",
"Chain 3: Gradient evaluation took 0.000114 seconds\n",
"Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 1.14 seconds.\n",
"Chain 3: Adjust your expectations accordingly!\n",
"Chain 3: \n",
"Chain 3: \n",
"Chain 3: Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Chain 3: Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Chain 3: Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Chain 3: Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Chain 3: Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Chain 3: Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Chain 3: Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Chain 3: Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Chain 3: Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Chain 3: Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Chain 3: Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Chain 3: Iteration: 300 / 300 [100%] (Sampling)\n",
"Chain 3: \n",
"Chain 3: Elapsed Time: 10.1486 seconds (Warm-up)\n",
"Chain 3: 14.4732 seconds (Sampling)\n",
"Chain 3: 24.6218 seconds (Total)\n",
"Chain 3: \n",
"\n",
"SAMPLING FOR MODEL 'prophet' NOW (CHAIN 4).\n",
"Chain 4: \n",
"Chain 4: Gradient evaluation took 0.00012 seconds\n",
"Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 1.2 seconds.\n",
"Chain 4: Adjust your expectations accordingly!\n",
"Chain 4: \n",
"Chain 4: \n",
"Chain 4: Iteration: 1 / 300 [ 0%] (Warmup)\n",
"Chain 4: Iteration: 30 / 300 [ 10%] (Warmup)\n",
"Chain 4: Iteration: 60 / 300 [ 20%] (Warmup)\n",
"Chain 4: Iteration: 90 / 300 [ 30%] (Warmup)\n",
"Chain 4: Iteration: 120 / 300 [ 40%] (Warmup)\n",
"Chain 4: Iteration: 150 / 300 [ 50%] (Warmup)\n",
"Chain 4: Iteration: 151 / 300 [ 50%] (Sampling)\n",
"Chain 4: Iteration: 180 / 300 [ 60%] (Sampling)\n",
"Chain 4: Iteration: 210 / 300 [ 70%] (Sampling)\n",
"Chain 4: Iteration: 240 / 300 [ 80%] (Sampling)\n",
"Chain 4: Iteration: 270 / 300 [ 90%] (Sampling)\n",
"Chain 4: Iteration: 300 / 300 [100%] (Sampling)\n",
"Chain 4: \n",
"Chain 4: Elapsed Time: 11.4876 seconds (Warm-up)\n",
"Chain 4: 16.2248 seconds (Sampling)\n",
"Chain 4: 27.7124 seconds (Total)\n",
"Chain 4: \n"
]
2018-05-30 23:25:23 +00:00
},
{
"data": {
2021-12-25 10:12:46 +00:00
"image/png": "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
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",
2021-03-21 21:13:50 +00:00
"execution_count": 7,
2018-05-30 23:25:23 +00:00
"metadata": {},
"outputs": [
2020-08-19 21:22:57 +00:00
{
"name": "stderr",
"output_type": "stream",
"text": [
2021-03-21 21:13:50 +00:00
"WARNING:pystan:481 of 600 iterations saturated the maximum tree depth of 10 (80.2 %)\n",
2020-08-19 21:22:57 +00:00
"WARNING:pystan:Run again with max_treedepth larger than 10 to avoid saturation\n"
]
},
2018-05-30 23:25:23 +00:00
{
"data": {
2021-12-25 10:12:46 +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": [
2022-06-25 10:31:18 +00:00
"m = Prophet(seasonality_mode='multiplicative', mcmc_samples=300).fit(df, show_progress=False)\n",
2018-05-30 23:25:23 +00:00
"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",
2021-03-21 21:13:50 +00:00
"execution_count": 9,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
2021-12-25 10:12:46 +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",
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",
2021-03-21 21:13:50 +00:00
"execution_count": 8,
2018-05-28 19:37:23 +00:00
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2021-12-25 10:12:46 +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": [
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": {
2022-06-25 10:31:18 +00:00
"display_name": "Python 3 (ipykernel)",
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",
2022-06-25 10:31:18 +00:00
"version": "3.8.10"
2017-02-22 23:59:43 +00:00
}
},
"nbformat": 4,
2022-06-25 10:31:18 +00:00
"nbformat_minor": 4
2017-02-22 23:59:43 +00:00
}