prophet/notebooks/trend_changepoints.ipynb

412 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",
"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",
2017-02-22 23:59:43 +00:00
"df = pd.read_csv('../examples/example_wp_peyton_manning.csv')\n",
"df['y'] = np.log(df['y'])"
]
},
{
"cell_type": "code",
"execution_count": 6,
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 = -67.4685\n",
"Error evaluating model log probability: Non-finite gradient.\n",
"\n",
"Optimization terminated normally: \n",
" Convergence detected: relative gradient magnitude is below tolerance\n",
"Initial log joint probability = -67.4685\n",
"Error evaluating model log probability: Non-finite gradient.\n",
"\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_peyton_manning.csv')\n",
"df$y = log(df$y)\n",
"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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\nLEMURZSVlcXbJIIguoA
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7f75733344a8>"
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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\nArIkTZ8+XdOnT7/m2Io
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7f756c20cb70>"
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": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nqytvq3z1QO7tzcoihap
},
"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": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXmcFNXV93/VG4s4DIsEEAUxyDp7\nz9ID4iiKa4iKskRFggnGPJigic8jRg0EdfIajahxw0QFZVMQRIOojI5hKZgNGBhwi1ExAzgMDLMw\n01Vddd8/qqu6e6Znrerp6urz9TOfxuruW3VO3b517rnnnsMxxhgIgiAIgiAIggAA2KJ9AQRBEARB\nEARhJshAJgiCIAiCIIggyEAmCIIgCIIgiCDIQCYIgiAIgiCIIMhAJgiCIAiCIIggyEAmCIIgCIIg\niCDIQCYIgiAIgiCIIMhAJgiCIAiCIIggyEAmCIIgCIIgiCAc0b6AjjBw4ECMGDEi2pcBURThdDqj\nfRn6+fxz5XX06C59XRRFOL/+WlcbpqMLOgnbH3TqNhZp83dhhD5iRKcdGh9iRBY9dHictJIuwshi\nmeeFTkgPCqQHBTPo4ZtvvsGJEyfa/VxMGMgjRoxASUlJtC8DlZWVGDp0aLQvQz95ecprYWGXvl5Z\nWYmhP/uZrjZMRxd0ErY/6NRtLNLm78IIfcSITjs0PsSILHro8DhpJV2EkcUyzwudkB4USA8KZtCD\n2+3u0OdiwkAmDObBB83RhpkwSh6r6UUv1NdCsZIserGSLqwkC0EQAMhAjk8uv9wcbZgJo+Sxml70\nQn0tFCvJohcr6cJKshAEAYA26cUn+/Ypf9Fuw0wYJY/V9KIX6muhWEkWvVhJF1aShSAIAORBjk8W\nLlRe9cT+GdGGmTBKHqvpRS/U10Kxkix6sZIurCQLQRAAyINMEARBEARBECFEzECeN28eBg0ahAkT\nJmjHHnroISQnJyM1NRVTp05FZWVlpE5PEARBEARBEF0iYgby3LlzsXXr1pBj9913H8rLy7Fv3z5c\nd911+NOf/hSp0xMEQRAEQRBEl4iYgTx58mT0798/5FhCQoL274aGBnAcF6nTEwRBEARBEESX6PZN\nen/4wx+wcuVK9O3bF5988kmrn1u+fDmWL18OADh27JgpwjGqqqqifQmG4LznHgCA2EWdVlVV6W7D\nbHRFnnD9wWp66Qht/S6M0Ees6LQj40OsyKKHjo6TVtJFOFms8rzQC+lBgfSgEEt64BhjLFKNf/PN\nN7juuutw8ODBFu/l5+ejqakJS5Ysabcdt9tNlfRMBOlBgfSgQHpQID0okB4USA8KpAcF0oOCGfTQ\nUZsyalksbrnlFmzYsCFap49vdu1S/qLdhpkwSh6r6UUv1NdCsZIserGSLqwkC0EQALo5xOLLL7/E\nqFGjAADvvPMOxowZ052nJ1QeeEB51ZOz04g2zIRR8lhNL3qhvhaKlWTRi5V0YSVZCIIAEEEDefbs\n2SgsLMSJEycwbNgwLFmyBFu2bMHnn38Om82G4cOH48UXX4zU6QmCIAiCIAiiS0TMQF6zZk2LY3fc\ncUekTkcQBEEQpobneRQWFiIvLw8ejyfal0MQRBtQqWmCIAiCiDA8z2PKlCkQBAEulwsFBQVkJBOE\niaFS0wRBEAQRYQoLCyEIAiRJgiAIKKR4ZYIwNeRBjkeWLTNHG2bCKHmsphe9UF8LxUqy6MVKuuiA\nLHl5eXC5XJoHOS8vL/LXRRBElyEDOR5JTTVHG2bCKHmsphe9UF8LxUqy6MVKuuiALB6PBwUFBRSD\nTBAxAhnI8ci2bcrr5ZdHtw0zYZQ8VtOLXqivhWIlWfRiJV10UBaPx0OGMUHECGQgxyOPPKK86nkw\nGdGGmTBKHqvpRS/U10Kxkix6sZIurCQLQRAAaJMeQRAEQRAEQYRABjJBEESE4Hke+fn54Hk+2pdC\nEARBdAIKsSAIgogAYfPeRvuiCIIgiA5BHmSCIIgIQHlvCYIgYhfyIMcjL71kjjbMhFHyWE0veonj\nvhY27+2NN0b7ssxDjN7XsFhJFoIgAJCBHJ+MHm2ONsyEUfJYTS96ieO+Rnlv2yFG72tYrCQLQRAA\nyECOT959V3n9yU+i24aZMEoeq+lFL3He11rkvY1hWQzHSrqwkiwEQQAgAzk+efJJ5VXPYG5EG2bC\nKHmsphe9UF8LxUqy6MVKurCSLARBAKBNegRBEARBEAQRAhnIBEEQBEEQBBEEGcgEQRAEQRAEEQQZ\nyARBEARBEAQRBG3Si0def90cbZgJo+Sxml70Qn0tFCvJohcr6cJKshAEAYAM5PjkvPPM0YaZMEoe\nq+lFL9TXQrGSLHqxki6sJAtBEAAoxCI+WbdO+Yt2G2bCKHmsphe9UF8LxUqy6MVKurCSLARBACAP\ncnzywgvK68yZ0W3DTBglj9X0ohfqa6FYSRa9WEkXVpKFIAgA5EEmCIIgCIIgiBDIQCYIgiAIgiCI\nIMhAJgiCIAiCIIggyEAmCIIgCIIgiCBok148sn69OdowE0bJYzW96IX6WihWkkUvVtKFlWQhCAIA\nGcjxycCB5mjDTBglj9X0ohfqa6FYSRa9WEkXVpKFIAgAFGIRn7z2mvIX7TbMhFHyWE0veqG+FoqV\nZNGLlXRhJVkIggBABnJ8QkZLS8hAjgzU10Kxkix6sZIurCQLQRAAyEAmCIIgCILQDc/zyM/PB8/z\n0b4UwgAoBpkgCIIgCEIHPM9jypQpEAQBLpcLBQUF8Hg80b4sQgfkQSYIgiAIgtBBYWEhBEGAJEkQ\nBAGFhYXRviRCJ2Qg64SWVAiCIAgivsnLy4PL5YLdbofL5UJeXl60L4nQCYVY6CBml1S2bDFHG2bC\nKHmsphe9UF8LxUqy6MVKurCSLESX8Hg8KCgoQGFhIfLy8mLDFiDahAxkHYRbUomJH0Xv3uZow0wY\nJY/V9KIX6muhWEkWvVhJF1aShegyHo8nNmwAokNELMRi3rx5GDRoECZMmKAdu++++zBmzBgkJyfj\nhhtuQE1NTaRO3y3E7JLK888rf9Fuw0wYJY/V9KIX6muhWEkWvVhJF1aShSAIABE0kOfOnYutW7eG\nHLviiitw8OBBlJeX46KLLkJ+fn6kTt8tqEsqS5cujZ3wCgB4803lL9ptmAmj5LGaXvRCfS0UK8mi\nFyvpwkqyEAQBIIIhFpMnT8Y333wTcmzq1Knav3NycrDeAvXraUmFIAiCaA2e5ykulSBikKjFIL/y\nyiuYOXNmq+8vX74cy5cvBwAcO3YMlZWV3XVprVJVVRXtSzCEAYIAAKjuok6rqqp0t2E2uiJPuP5g\nNb10hLZ+F0boI1Z02pHxIVZk0UNHx0kr6SKcLFVVVSgpKcHMmTMhiiKcTifWrVsHt9sdrcuMClZ5\nbuqF9KAQS3qIioH86KOPwuFw4JZbbmn1M/Pnz8f8+fMBAG63G0OHDu2uy2sTs1yHLlwuAPpk6WFA\nG6aii/K0+LzV9NJBWpXXCH3EkE7bvcYYkkUPHZLPSrpoRZYtW7ZAFEVIkgQAqKiowLRp07r98qKN\nJe6xAZAeFGJFD91uIL/22mt47733UFBQAI7juvv0BEEQBNEtqBu51VSgMbORmyCI7jWQt27discf\nfxyffvopelNanOhhRIUfq1UJMkoeq+lFL9TXQrGSLHqxki5akYVy4xJE7BIxA3n27NkoLCzEiRMn\nMGzYMCxZsgT5+fnwer244oorACgb9V588cVIXQJBEARBRBXayE0QsUnEDOQ1a9a0OHbHHXdE6nRE\nZ3jiCeX197+Pbhtmwih5rKYXvVBfC8VKsujFSrqwkiwEQQCIYB5kwsS8957yF+02zIRR8lhNL3qh\nvhaKlWTRi5V0YSVZCIIAQAYyQRAEQRAEQYRABjJBEARBEARBBEEGMkEQBEF0AzzPIz8/HzzPR/tS\nCIJoh6hV0iOiSK9e5mj
"text/plain": [
"<matplotlib.figure.Figure at 0x7f75267aaa58>"
]
},
"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": 5,
"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": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nrlzJ1LtL/Moq+veLlMT
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": 6,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nve5g9U1FzyLD5KI1a+u
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f9c72ae7610>"
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": 7,
"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": {
2017-09-02 20:07:49 +00:00
"image/png": "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\nVVVV+/TpI/0Abt68Sba
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": 8,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\n0J3BDg6QEJ384hYgL16
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f9c72c3ce90>"
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."
]
},
{
"cell_type": "code",
2017-09-02 20:07:49 +00:00
"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: relative gradient magnitude is below tolerance\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\naGh0795d/gFcv36daru
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": 10,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
2017-09-02 20:07:49 +00:00
"image/png": "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\n6xwnh/4MdnCAhOjEF7c
2017-02-22 23:59:43 +00:00
"text/plain": [
2017-09-02 20:07:49 +00:00
"<matplotlib.figure.Figure at 0x7f9c88814c50>"
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 3",
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",
"version": "3.5.3"
2017-02-22 23:59:43 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}