prophet/notebooks/trend_changepoints.ipynb

407 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,
"collapsed": true
2017-02-22 23:59:43 +00:00
},
"outputs": [],
"source": [
"%load_ext rpy2.ipython\n",
"%matplotlib inline\n",
"from fbprophet import Prophet\n",
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
2017-09-02 20:07:49 +00:00
"import logging\n",
"logging.getLogger('fbprophet').setLevel(logging.ERROR)\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"df = pd.read_csv('../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": [
{
"data": {
"text/plain": [
"Initial log joint probability = -19.4685\n",
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n",
"Initial log joint probability = -19.4685\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R\n",
"library(prophet)\n",
"df <- read.csv('../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": 3,
"metadata": {
"input_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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\nMgiCUKEIMkEQBEEQBEE
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": 4,
"metadata": {
"input_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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\nrmz8ulevXnr77bd9XRY
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": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nf65bMQKqalWlpydUFXW
},
"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": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nj8ETapPQoHb1FU11CVQ
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from fbprophet.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": [
"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 change 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": 7,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"Initial log joint probability = -19.4685\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\ngD0cSF6oq6uvXbuWqVe
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);"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nVqyAKIrwer1ISkrq8Of
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",
"m.plot(forecast);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Decreasing it will make the trend *less* flexible:"
]
},
{
"cell_type": "code",
"execution_count": 9,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"Initial log joint probability = -19.4685\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: absolute parameter change was below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nVVXVzMxM+gHcunWLbLu
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);"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nZQPkxYsXY/HixQAAt9u
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",
"m.plot(forecast);"
]
},
{
"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": 11,
2017-02-22 23:59:43 +00:00
"metadata": {
"output_hidden": true
},
"outputs": [
{
"data": {
"text/plain": [
"Initial log joint probability = -19.4685\n",
2017-02-22 23:59:43 +00:00
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nV+/evbvsA7h+/TrVdnV
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);"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nN6gdNNQOmnhqB8sGyLN
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",
"m.plot(forecast);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
2017-02-22 23:59:43 +00:00
"language": "python",
"name": "python2"
2017-02-22 23:59:43 +00:00
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
2017-02-22 23:59:43 +00:00
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14+"
2017-02-22 23:59:43 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}