prophet/notebooks/multiplicative_seasonality.ipynb

301 lines
355 KiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"block_hidden": true
},
"outputs": [],
"source": [
"%load_ext rpy2.ipython\n",
"%matplotlib inline\n",
2022-06-25 10:31:18 +00:00
"\n",
"from prophet import Prophet\n",
"from matplotlib import pyplot as plt\n",
"import logging\n",
2022-06-25 10:31:18 +00:00
"import pandas as pd\n",
"import numpy as np\n",
"import warnings\n",
"\n",
"logging.getLogger('prophet').setLevel(logging.ERROR)\n",
"logging.getLogger('numexpr').setLevel(logging.ERROR)\n",
"warnings.filterwarnings(\"ignore\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"block_hidden": true
},
"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"
]
}
],
"source": [
"%%R\n",
"library(prophet)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By default Prophet fits additive seasonalities, meaning the effect of the seasonality is added to the trend to get the forecast. This time series of the number of air passengers is an example of when additive seasonality does not work:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"output_hidden": true
},
"outputs": [
{
"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"
]
},
{
"data": {
"image/png": "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
},
"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_air_passengers.csv')\n",
"m <- prophet(df)\n",
"future <- make_future_dataframe(m, 50, freq = 'm')\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"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_air_passengers.csv')\n",
"m = Prophet()\n",
"m.fit(df)\n",
"future = m.make_future_dataframe(50, freq='MS')\n",
"forecast = m.predict(future)\n",
"fig = m.plot(forecast)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This time series has a clear yearly cycle, but the seasonality in the forecast is too large at the start of the time series and too small at the end. In this time series, the seasonality is not a constant additive factor as assumed by Prophet, rather it grows with the trend. This is multiplicative seasonality.\n",
"\n",
"Prophet can model multiplicative seasonality by setting `seasonality_mode='multiplicative'` in the input arguments:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"output_hidden": true
},
"outputs": [
{
"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"
]
},
{
"data": {
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"m <- prophet(df, seasonality.mode = 'multiplicative')\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet(seasonality_mode='multiplicative')\n",
"m.fit(df)\n",
"forecast = m.predict(future)\n",
"fig = m.plot(forecast)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The components figure will now show the seasonality as a percent of the trend:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAAGwCAIAAACl6gOwAAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nOzdd3wT990H8NNJp23Zlrz3HmDAZpu9wwgECCFkkzSjIQktzWyaNKtt2pBmEJI2ZDYLSBoIK4O9IZhhY/DGNt5DtvYe9/yhPJQY43nSaXzer+f1vCJXOn2PGx/d3W9waJomAAAAwDuQbBcAAAAA/4NgBgAA8CIIZgAAAC+CYAYAAPAiPFa+1WQyOZ1OVr56MCiKstvtAdtcjiRJmqYDefVJkrTb7WwXwhoul+twONiugjU4/HH4u+nwpyiKz+df/Rd2gtlsNvviES4SiYxGY8CemgUCgd1u98UNxwihUEiSpMlkYrsQ1kgkkkBefZFIZDAYAnb/FwgEDocjkM9+QqHQTfs/h8PpEsy4lQ0AAOBFEMwAAABeBMEMAADgRdh5xiwUCln53kHicDgikcgXm60xgsvlUhQVsK0/eDweSZISiYTtQlhDUVQgr77r8A/Y/Z/L5dI0HchnPy6X66b9nyS7XiGj8Vc/CAQCk8kUyM0fArzxF0VRBoOB7UJYI5FIAnn1XYd/wO7/aPzF4XDctP+LxeIuf8GtbAAAAC+CYAYAAPAiCGYAAIDeFTXri5r1Hvgidp4xAwAA+ISiZj2fb+XzLR77RgQzAABANzxzfXwtBDMAAMD/sJXHVyCYAQAACKK3SDbanD/Xa3MiJVyS49YyEMwAABDQes5jq5M+WaPeX60+VtuZphDdOjwiOojfw/sHD8EMAAABqodIdjjps836AzWaY5e1MTL+nMzw3+SFRUr57k5lAsEMAACBpoc8dtL0xTbTgWr1oVq1TMCbnhz8zo2paeFBfD5fr/fQs2cEMwAABIoeIrlCaTxQozlYo+ZwONOSgv8+JzldIfJkbVcgmAEAwM/1kMeX1eYD1ZoDNWqD1TE1OeRP0xKHhos57m3d1QsEMwAA+K3rRXKr3rqvWn2wWt1mtE9MCHpsfMzIaCnp5ubWfYRgBgAAf3O9PO402g7Vag/Uqqs7TPkJspUjo8bEBVF9yOORccEaDdNVXgeCGQAA/MT18lhrcRy9rDlQrb7YZhwVK12cpZiQIBPyep8tYkS0lCAIgUDAcKE9QjADAIDP6zaSTTbniXrt/mr12SZ9TqR4RkrIn2ckBvG5PS/KFcYsQjADAICv6jaPbU76VIPuQLX6ZL02RSGanhTyh4lxclFPecd6GF8NwQwAAL7n2kh2OOlzzfr91erj9boICW96csgDo6MipT2NB+JVeXwFghkAAHzGtXlM08TFduOBavWhGrWEz52RErJufmpCyHWfCntnGF8NwQwAAD7g2kiu7DAdqFEfrNEQNDE1Ofhvc5Izrj8kiPfn8RUIZgAA8F7X5nGdxnKwWn2gRqO12KcmhfxxSsLQCBHZ3ZggPhTGV0MwAwCAN+oSya1668Ea9f4adYvOPjFRtmpc9MhoabczMPpoHl+BYAYAAC/SJY9VJvuhGvWBWk1Vh2lcnOyuEVFj44P4/pjHVww8mGma/uCDD9ra2mQy2WOPPeZwONatW6fX6xMSElauXGm3269+yVzBAADgn66OZJ3VceyyZn+N5kKLPi86aGGmfEJCsJjqOiSI34Tx1QYezGfOnJHL5Q8++OCRI0daW1urqqoSEhKWLVu2du3ahoaG2traq1/GxcUxWDQAAPiNq/PYbHeeqNMeqNGcbtQNiRDPSAl5bmqCTNB1SBC/zOMrBh7MFy9elEgk69aty8rKioqK+uGHH/Lz8wmCyMnJqaysrK2tvfqlK5jLysoaGhoIghgxYoRQKGRoFTyKoigut5dRY/wVj8cjSdLpdLJdCDt4PB6Xy/XwyHxeJcBXn8Ph8Pn8QN7/SZJk/OxX2KQjCILP51vtzlMN2n2XVMdqVSly8az00CemJIZJftUFOTcmiNlv7zvX6rtp/yfJrrcBBh7Mer2+tbV15cqV77//fnh4uNFoFIvFBEGIRCKdTtflpesjhYWFhw8fJggiOzs7JCRkwF/NFg6HIxAIaJpmuxB2BHIqEwRBkiSHw/HRH5SM4HK5HHYnw2MVDn+appla/bMNv0wHweNRpxs0eyo7Dl3qCJcKZmcoHpmYFCP7Vf6NjAtm5EsHgyRJkiTddPhf+6868GCWSCT5+fkRERGTJ0++dOmSWCw2mUwEQZhMJqlU2uWl6yMrVqxYsWIFQRAqlUrjsXk6mCOXy/V6vd1uZ7sQdggEArvd7nA42C6EHUKhkKKoK78yA5BEIjEYDGxXwRq5XK7T6QJ2/xcIBA6HY/BnP9dda5omStuN+6vVh2vVQh53WkrwG/NSkkJdsWfT623EVTervSEsBAKBUCh0UyVisZjP/9W9gYEHc1paWlVV1ciRI2tqatLS0qKiokpLSzMzM8vKypYtW0ZR1NUvB105AAD4qitPkas7zftr1Aeq1Q6anpoU/PLMpKxw8dXv9O+Hx33EGfCtCbvd/sYbb6jV6pCQkMcff5ym6fXr19tstoiIiHvuucdut1/9sstnVSqVL/7wlMvlWq0WV8xsF8IOXDHjilmj0QTs/j/gK2ZXJDdorQeq1Qdq1GqzfUpi8IyUkJxI8ZUhQbw/jN19xex68nvFwIN5MBDMvgjBjGBGMAfs/t/fYHblcZveerBGc6BG3aizToyXTU8JGRkj4f1/Wyfvz+MrPBzMGGAEAACY4cpjtdl+qEZzoEZd2WEaFxt0+4jIcVcNCeJDecwWBDMAAAxWUbNeb3Ucr9Pur1adbzHkRksXZMonxgeL+SSBMO4nBDMAAAxQUbPeYneeqNcdqFEXNOiywsUzUkKenZIgE/II5PFAIZgBAKDfTjdqTzfoD9SqT9TpEkME01NCHhsfEyamCOTxoCGYAQCgr8416opaDQeq1Ucua8PEvOkpISvzomKC+ATymDkIZgAA6MW5Rt3FVt2eyo5DtRoBlzM9OeSNeSnJoUKEsTsgmAEA4Lq2ligP1mgOVKstDue0pOCXZiRmh4uRx26FYAYAgK5+KO90DdGlMtknJcmenpo4PFI8LFLc+ydh0BDMAADwiyad9V8/Nx2oVtdpLBMTZA+OiRoVIx0VK2NqrGzoCwQzAECg6zTZ3z3ZeLBaU95hHBMbdOuw8AfGRAt5XacjBM9AMAMABCidxfHvU00Hq9WFLfoRUdK56SFb7xwiEyAXWIYNAAAQWMx25+4q1adnWk81ajMUounJIZ/dkq0QIw68BbYEAEBAsDmcB2s1H59uOV6njQsWTE8OfmdhaqxMwHZd0BWCGQDAnzlp+nid9sPTLUcua0KFvOkpIQfuH5ESKmS7LrguBDMAgH8606TbWtLx3wvtPJKzYnjEU1Pih4Sjv5MPQDADAPiV0nbjlovKzcVtFgd989Cwz5dljY4N4nDYLgv6DMEMAOAPatXmrSUdXxW1dhrti7IV7y5KnxAv45IIZN+DYAYA8GEteut3pR1bS5Slbcb5mfK/zk6elhzM56ILsg9DMAMA+J5Oo21HeefWEmVBg25mWujDY2NuSAsVUchjf4BgBgDwGXqr4/uKzq0lysM16olJIbcOi/jPzZnBQpzJ/Qo2JwCAt7M46D1Vqi0X23dXqXKjpUuGhL1zY1qYmGK7LnALBDMAgJeyO+lDtZqtJcrvKzqTQ4VLh4S9PDMpLhhDgvg5doKZJH31QQhJklwul+0q2BHI604QBEmSHA4nkP8FsPoeW30nTZ+o024pad9e2iEX8ZYODd93X26aQuSZb+8WSZI0TQfsDuDKLDetPuearmzsBDOPx6NpmpWvHgwOh8Pj8Xz3V8UgcblcDocTyKtPkiRFBe7NwwBffYIgPHD4n2nU/be4dcvFNh7JWTo0YvvducOjpW79xj7C4e++/d9bgtlqtTocDla+ejDEYrHVag3YGUkFAoHdbvfFDccgs9nMdgms4XK5gbz6YrHYYrG4af8vazduLVVuudhhtDkWZSk+XJw+OuaXIUG85N88wOdjFggE7tv/xeKuw7HhGTMAADsuqy1bS5VbLiqbddb5GfLX5yZPSgzGkCC
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 9 -h 6 -u in\n",
"prophet_plot_components(m, forecast)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 648x432 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = m.plot_components(forecast)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With `seasonality_mode='multiplicative'`, holiday effects will also be modeled as multiplicative. Any added seasonalities or extra regressors will by default use whatever `seasonality_mode` is set to, but can be overriden by specifying `mode='additive'` or `mode='multiplicative'` as an argument when adding the seasonality or regressor.\n",
"\n",
"For example, this block sets the built-in seasonalities to multiplicative, but includes an additive quarterly seasonality and an additive regressor:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"%%R\n",
"m <- prophet(seasonality.mode = 'multiplicative')\n",
"m <- add_seasonality(m, 'quarterly', period = 91.25, fourier.order = 8, mode = 'additive')\n",
"m <- add_regressor(m, 'regressor', mode = 'additive')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"<prophet.forecaster.Prophet at 0x7fd258219d30>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m = Prophet(seasonality_mode='multiplicative')\n",
"m.add_seasonality('quarterly', period=91.25, fourier_order=8, mode='additive')\n",
"m.add_regressor('regressor', mode='additive')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Additive and multiplicative extra regressors will show up in separate panels on the components plot. Note, however, that it is pretty unlikely to have a mix of additive and multiplicative seasonalities, so this will generally only be used if there is a reason to expect that to be the case."
]
}
],
"metadata": {
"kernelspec": {
2022-06-25 10:31:18 +00:00
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
2023-10-14 12:22:04 +00:00
"version": "3.9.17"
}
},
"nbformat": 4,
2022-06-25 10:31:18 +00:00
"nbformat_minor": 4
}