prophet/notebooks/trend_changepoints.ipynb

410 lines
1.2 MiB
Text
Raw Normal View History

2017-02-22 23:59:43 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"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",
"from prophet import Prophet\n",
2017-02-22 23:59:43 +00:00
"from matplotlib import pyplot as plt\n",
2022-06-25 10:31:18 +00:00
"import pandas as pd\n",
2017-02-22 23:59:43 +00:00
"import numpy as np\n",
2017-09-02 20:07:49 +00:00
"import logging\n",
2022-06-25 10:31:18 +00:00
"import warnings\n",
"\n",
"logging.getLogger('prophet').setLevel(logging.ERROR)\n",
"logging.getLogger('numexpr').setLevel(logging.ERROR)\n",
2017-09-02 20:07:49 +00:00
"warnings.filterwarnings(\"ignore\")\n",
2022-06-25 10:31:18 +00:00
"\n",
"df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 2,
2017-02-22 23:59:43 +00:00
"metadata": {
"block_hidden": true
2017-02-22 23:59:43 +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]: Disabling daily seasonality. Run prophet with daily.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
}
],
"source": [
"%%R\n",
"library(prophet)\n",
2022-06-25 10:31:18 +00:00
"df <- read.csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')\n",
2017-02-22 23:59:43 +00:00
"m <- prophet(df)\n",
"future <- make_future_dataframe(m, periods=366)\n",
"m <- prophet(df)\n",
"forecast <- predict(m, future)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You may have noticed in the earlier examples in this documentation that real time series frequently have abrupt changes in their trajectories. By default, Prophet will automatically detect these changepoints and will allow the trend to adapt appropriately. However, if you wish to have finer control over this process (e.g., Prophet missed a rate change, or is overfitting rate changes in the history), then there are several input arguments you can use."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Automatic changepoint detection in Prophet\n",
"Prophet detects changepoints by first specifying a large number of *potential changepoints* at which the rate is allowed to change. It then puts a sparse prior on the magnitudes of the rate changes (equivalent to L1 regularization) - this essentially means that Prophet has a large number of *possible* places where the rate can change, but will use as few of them as possible. Consider the Peyton Manning forecast from the Quickstart. By default, Prophet specifies 25 potential changepoints which are uniformly placed in the first 80% of the time series. The vertical lines in this figure indicate where the potential changepoints were placed:"
]
},
{
"cell_type": "code",
"execution_count": 2,
2017-02-22 23:59:43 +00:00
"metadata": {
"input_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet()\n",
"m.fit(df)\n",
"future = m.make_future_dataframe(periods=366)\n",
"forecast = m.predict(future)\n",
"fig = m.plot(forecast)\n",
"for cp in m.changepoints:\n",
" plt.axvline(cp, c='gray', ls='--', lw=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Even though we have a lot of places where the rate can possibly change, because of the sparse prior, most of these changepoints go unused. We can see this by plotting the magnitude of the rate change at each changepoint:"
]
},
{
"cell_type": "code",
"execution_count": 3,
2017-02-22 23:59:43 +00:00
"metadata": {
"input_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"deltas = m.params['delta'].mean(0)\n",
"fig = plt.figure(facecolor='w', figsize=(10, 6))\n",
"ax = fig.add_subplot(111)\n",
"ax.bar(range(len(deltas)), deltas, facecolor='#0072B2', edgecolor='#0072B2')\n",
"ax.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)\n",
"ax.set_ylabel('Rate change')\n",
"ax.set_xlabel('Potential changepoint')\n",
"fig.tight_layout()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The number of potential changepoints can be set using the argument `n_changepoints`, but this is better tuned by adjusting the regularization. The locations of the signification changepoints can be visualized with:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R -w 10 -h 6 -u in\n",
"plot(m, forecast) + add_changepoints_to_plot(m)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from prophet.plot import add_changepoints_to_plot\n",
"fig = m.plot(forecast)\n",
"a = add_changepoints_to_plot(fig.gca(), m, forecast)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2020-08-19 20:41:16 +00:00
"By default changepoints are only inferred for the first 80% of the time series in order to have plenty of runway for projecting the trend forward and to avoid overfitting fluctuations at the end of the time series. This default works in many situations but not all, and can be changed using the `changepoint_range` argument. For example, `m = Prophet(changepoint_range=0.9)` in Python or `m <- prophet(changepoint.range = 0.9)` in R will place potential changepoints in the first 90% of the time series."
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Adjusting trend flexibility\n",
"If the trend changes are being overfit (too much flexibility) or underfit (not enough flexibility), you can adjust the strength of the sparse prior using the input argument `changepoint_prior_scale`. By default, this parameter is set to 0.05. Increasing it will make the trend *more* flexible:"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 4,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"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": {
"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",
"m <- prophet(df, changepoint.prior.scale = 0.5)\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOydd5wU5d3Av7Pt6F1URLFRD7he9kBFsUUNERtWNFgSY03RxPgaNWowmhixi8aCoqICisaOnsDdHlcpByI2ROntuL475Xn/mJ3Z3bu93vbg+eZjuJ2dnXnmmZnn+T2/qgghBBKJRCKRSCQSiQQAR1c3QCKRSCQSiUQiiSWkgCyRSCQSiUQikYQhBWSJRCKRSCQSiSQMKSBLJBKJRCKRSCRhSAFZIpFIJBKJRCIJw9XVDWgOQ4YM4eijj+7qZqCqKm63u6ubERPIvjCR/WAi+8FE9kMI2Rcmsh9MZD+EkH1hEiv9sGnTJnbv3l1ve7cQkI8++mgKCwu7uhls3bqVYcOGdXUzYgLZFyayH0xkP5jIfggh+8JE9oOJ7IcQsi9MYqUfUlNTo26XLhYSiUQikUgkEkkYUkCWSCQSiUQikUjCkAKyRCKRSCQSiUQShhSQJRKJRCKRSCSSMKSALJFIJBKJRCKRhCEFZIlEIpFIJBKJJIwOE5BnzZrF0KFDGT9+vL3trrvuYuLEiSQmJnL66aezdevWjjq9RCKRSCQSiUTSKjpMQL7qqqv46KOPIrbddtttrFmzhlWrVnHOOefw97//vaNOL5FIJBKJRCKRtIoOE5BPPPFEBg0aFLGtX79+9t9VVVUoitJRp5dIJBKJRCKRSFpFp1fSu/POO5k3bx79+/fniy++aHC/uXPnMnfuXAC2b98eE+4Yu3bt6uomxAyyL0xkP5jIfjCR/RBC9oWJ7AcT2Q8hZF+YxHo/KEII0VEH37RpE+eccw6lpaX1vps9eza1tbXce++9TR4nNTVVlpqOMWRfmMh+MJH9YCL7IYTsCxPZDyayH0LIvjCJlX5oSMbssiwWl112GQsXLuyq00skEolEIpFIJFHpVAH5m2++sf9+9913GTNmTGeeXiKRSCQSiUQiaZIO80G+5JJLyM7OZvfu3QwfPpx7772XDz74gK+//hqHw8GIESN45plnOur0EolEIpFIJBJJq+gwAfn111+vt+3qq6/uqNNJJBKJRNIt8Pl8ZGdnM2XKFLxeb1c3RyKRRKHTs1hIJBKJRHKw4vP5mDp1KoFAAI/Hw9KlS6WQLJHEILLUtEQikUgknUR2djaBQABd1wkEAmRnZ3d1kyQSSRSkgCyRSCQSSScxZcoUPB4PTqcTj8fDlClTurpJEokkCtLFQiKRSCSSTsLr9bJ06VLpgyyRxDhSQJZIJBKJpBPxer1SMJZIYhzpYiGRSCQSiUQikYQhBWSJRCLpYHw+H7Nnz8bn83V1UyQSiUTSDKSLhUQikXQgMq2XRCKRdD+kBlkikUg6EJnWSyKRSLofUkCWSCSSDkSm9ZJIJJLuh3SxkEgkkg5EpvWSSCSS7ocUkCUSiaSDkWm9JBKJpHshXSwkEolEIpFIJJIwpIAskUgkEolEIpGEIQVkiUQikUgkEokkDCkgSyQSiUQikUgkYUgBWSKRSCQSiUQiCUMKyBKJRCKRSCQSSRhSQJZIJBKJRCKRSMKQArJEIpFIJBKJRBKGFJAlEolEIpFIJJIwpIAskUgkEolEIpGEIQVkiUQikUgkEokkDCkgSyQSiUQikUgkYUgBWSKRSCQSiUQiCUMKyBKJRCKRSCQSSRhSQJZIJBKJRCKRSMKQArJEIpFIJBKJRBKGFJAlEolEIpFIJJIwpIAskUgkEolE0o74fD5mz56Nz+fr6qZIWomrqxsgkUgkEolEcqDg8/mYOnUqgUAAj8fD0qVL8Xq9Xd0sSQuRGuQ2IleJEolEIpFILLKzswkEAui6TiAQIDs7u6ubJGkFUoPcBuQqUSKRSCQSSThTpkzB4/HYssGUKVO6ukmSViAF5DYQbZUoBWSJRCKRSA5evF4vS5cuJTs7mylTpki5oJvSYS4Ws2bNYujQoYwfP97edttttzFmzBgmTpzI9OnTKSsr66jTdwrWKtHpdMpVokQikUgkEsAUku+44w4pHHdjOkxAvuqqq/joo48itp122mmUlpayZs0aRo0axezZszvq9J2CtUq87777pHuFRCKRSCQSyQFCh7lYnHjiiWzatCli2+mnn27/nZmZydtvv91Rp+80vF6vFIwlEolE0ig+n0+a3CWSbkSX+SC/8MILzJgxo8Hv586dy9y5cwHYvn07W7du7aymNciuXbu6ugkxg+wLE9kPJrIfTGQ/hJB9YbJr1y4KCwuZMWMGqqridrtZsGABqampXd20TkU+DyFkX5jEej90iYD8wAMP4HK5uOyyyxrc57rrruO6664DIDU1lWHDhnVW8xolVtoRC8i+MJH9YCL7wUT2QwjZFyYffPABqqqi6zoA69atY9q0aV3cqs5HPg8hZF+YxHI/dLqA/NJLL/H++++zdOlSFEXp7NNLJBKJRNKpyLRfEkn3o1MF5I8++oiHHnqIL7/8kl69enXmqSUSiUQi6RJk2i+JpPvRYQLyJZdcQnZ2Nrt372b48OHce++9zJ49G7/fz2mnnQaYgXrPPPNMRzVBIpFIJJKYQAZ0SyTdiw4TkF9//fV6266++uqOOp1EIpFIJBKJRNIudFgeZIlEIpFIJBKJpDsiBWSJRCKRSCQSiSQMKSBLJBKJRCKRSCRhSAFZIpFIJJJOxOfzMXv2bHw+X1c3RSKRNECXVdKTSCQSieRgw+fzMXXqVDsn8tKlS2V2C4kkBpEaZIlEIpFIOons7GwCgQC6rhMIBMjOzu7qJkkkkihIAVkikUgkkk7CqqrndDplVT2JJIaRLhYSiUQikXQSsqqeRNI9kAKyRCKRdAE+n08KSQcpsqqeRBL7SAFZIpFIOplYCtSSgrpEIpHURwrIEolE0slEC9TqCuE0lgR1iUQiiSVkkJ5EIpF0AI3luo2VQC2ZUUEikUiiIzXIEolE0s40pZmNlUAtS1C32ikzKkgkEomJFJAlEomknWmOC0UsBGrFiqAukRxoSN/+7o8UkCUSiaSd6U6a2Y4U1KWQEEL2xcGD9O0/MJACskTSTsgJUGIhNbNQWFjIxRdfLIUEpMB0sBErQbiStiEFZImkHZAToKQuseBC0ZX4fD4pJASRAtPBRXeyIEkaRmaxkEjage6WDaCxDAsSSXvg9XpjIlNHLBArWUsknYNlQbrvvvuksqQbIzXIEkk70J00BlLbLekMUlNTD3o3EwvpcnPwcbBbkA4EpIAskbQD3WkClOZeSWchhYQQsi8kku6FFJAlknaiu0yA3UnbfSAjgzolEokkdpECskRykNGdtN0HKtLNRSKRSGIbKSBLJAch3UXbfaAi3VwOLqS1QCLpfkgBWSKRSDoZ6eZy8CDzQUsk3ROZ5k0ikUg6GZkG6uAhWj7o7oxMESk5WJAaZIlEIukCpJvLwYGVD/pAsBZI33nJwYQUkCUSiUQi6SAOpHzQ0ndecjAhBWSJpAOQQTkSicTiQLEWSN95ycGEFJAlknZGmiElLUUuqCTdAZkiUnIwIQVkiaSdkWZISUuQCypJd+JA0YZLJE0hs1hIJO2MZYZ0Op3SDClpkmgLKolEIpF0LVKDLJG0M9IMKWkJ0q9TIpFIYg8pIEskHYA0Q0pawpVXXgnAzJkz5XMjkUgkMYAUkCUSiaQDEUKQm+tj2bIv61kU6vofz5w5swtbKpFIJBILKSBLJBJJB7L4k2wuPfdsNLV+EJ4M6Ow+yEwjEsnBRYcF6c2aNYuhQ4cyfvx4e9tbb71FfHw8DoeDwsLCjjq1RNLpyPKrkoZY/uWXqGr0IDwZ0Nk9sDT9d911F1OnTpXvuUTSjlT5NbaV13Z1M+rRYQLyVVddxUcffRSxbfz48SxatIgTTzyxo04rkXQ6cvKUNEb6pMm43dGFYCug87777pPp3WIYmWlEIuk4dlT62bK/pqubUY8Oc7E48cQT2bRpU8S2sWP
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet(changepoint_prior_scale=0.5)\n",
"forecast = m.fit(df).predict(future)\n",
"fig = m.plot(forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Decreasing it will make the trend *less* flexible:"
]
},
{
"cell_type": "code",
"execution_count": 5,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"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": {
"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",
"m <- prophet(df, changepoint.prior.scale = 0.001)\n",
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet(changepoint_prior_scale=0.001)\n",
"forecast = m.fit(df).predict(future)\n",
"fig = m.plot(forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2020-08-20 03:40:04 +00:00
"When visualizing the forecast, this parameter can be adjusted as needed if the trend seems to be over- or under-fit. In the fully-automated setting, see the documentation on cross validation for recommendations on how this parameter can be tuned."
]
},
2017-02-22 23:59:43 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Specifying the locations of the changepoints"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you wish, rather than using automatic changepoint detection you can manually specify the locations of potential changepoints with the `changepoints` argument. Slope changes will then be allowed only at these points, with the same sparse regularization as before. One could, for instance, create a grid of points as is done automatically, but then augment that grid with some specific dates that are known to be likely to have changes. As another example, the changepoints could be entirely limited to a small set of dates, as is done here:"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 6,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"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": {
"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",
"m <- prophet(df, changepoints = c('2014-01-01'))\n",
2017-02-22 23:59:43 +00:00
"forecast <- predict(m, future)\n",
"plot(m, forecast)"
2017-02-22 23:59:43 +00:00
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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
2017-02-22 23:59:43 +00:00
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
2017-02-22 23:59:43 +00:00
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = Prophet(changepoints=['2014-01-01'])\n",
"forecast = m.fit(df).predict(future)\n",
"fig = m.plot(forecast)"
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",
"name": "python3"
2017-02-22 23:59:43 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
2017-02-22 23:59:43 +00:00
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"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
}