prophet/notebooks/trend_changepoints.ipynb

409 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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\nKjSDTBAEQRAEQRAGyEE
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": {
"output_hidden": true
},
"outputs": [
{
"data": {
"image/png": "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\ncCDbrRiAumZNubs7VBV
},
"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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\napPwoHb1Fkt1CVYs9Q0
"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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\nMXXvHz9+pB+KRCKcRFL
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": 8,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nftifU286Dl0hx8Ehx8G
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": 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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\n11dVVdXMzEz6Ady6dYt
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": 10,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "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\nTBsgL126FEuXLgUAOJ1
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": [
"### 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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\nAQFqamqWlpayD+DatWt
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": 12,
"metadata": {},
2017-02-22 23:59:43 +00:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGoCAYAAABbtxOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8VNX9P/7XnZk7ARcQVJQUG+sC\nhOyTyTIJYBTFLha/llawWrS0pZ9+2v5K+6n91PqxYm1La1urrQtFq0JlUyKIG1rRKIQhK7trrdQF\nUAhLIMvc7fz+uHPvzCQTCMlM5g55PR+1wCSZe+fkzp33Oed93kcSQggQEREREREAwJXqEyAiIiIi\nchIGyEREREREURggExERERFFYYBMRERERBSFATIRERERURQGyEREREREURggExERERFFYYBMRERE\nRBSFATIRERERURRPqk+gN8466yycf/75qT4NqKoKWZZTfRopx3YwsR1MbAcT28HEdjCxHUxsBxPb\nweSEdti1axf2799/3O9LiwD5/PPPR2NjY6pPA7t370ZmZmaqTyPl2A4mtoOJ7WBiO5jYDia2g4nt\nYGI7mJzQDn6/v1ffxxQLIiIiIqIoDJCJiIiIiKIwQCYiIiIiisIAmYiIiIgoCgNkIiIiIqIoSQuQ\nZ8+ejVGjRiE3N9d+7LbbbkN+fj4KCwsxdepU7N69O1mHJyIiIiLqk6QFyDfddBPWrl0b89jNN9+M\nbdu2YcuWLbjqqqvwq1/9KlmHJyIiIiLqk6QFyJMnT8bIkSNjHhs2bJj997a2NkiSlKzDExERERH1\nyYBvFHLrrbdi8eLFGD58OF599dUev2/hwoVYuHAhAGDv3r2OSMfYt29fqk/BEdgOJraDie1gYjuY\n2A4mtoOJ7WBiO5jSqR0kIYRI1pPv2rULV111FXbs2NHta/Pnz0dnZyfuuOOO4z6P3+/nTnoOwnYw\nsR1MbAcT28HEdjCxHUxsBxPbweSEduhtTJmyKhbXX389qqurU3V4IiIiIqK4BjRAfvfdd+2/P/30\n0xg/fvxAHp6IiIiI6LiSloN83XXXoaamBvv378eYMWNwxx134Pnnn8fbb78Nl8uFrKwsLFiwIFmH\nJyIiIiLqk6QFyMuWLev22Le+9a1kHY6IiMjRgsEgampqUFVVhUAgkOrTIaJjGPAqFkRERINNMBjE\nlClToCgKvF4v1q1bxyCZyMG41TQREVGS1dTUQFEU6LoORVFQU1OT6lMiomNggExERJRkVVVV8Hq9\ncLvd8Hq9qKqqSvUpEdExMMWCiIgoyQKBANatW8ccZKI0wQCZiIhoAAQCAQbGRGmCKRZERERERFEY\nIBMRERERRWGATESUJMFgEPPnz0cwGEz1qRAR0QlgDjIRURKw7i0RUfriCDIRURKw7i0RUfpigExE\nlASse0tElL6YYkFElASse0tElL4YIBMRJQnr3hIRpSemWBARERERRWGATEREREQUhQEyEREREVEU\nBshERERERFEYIBMRERERRWGATEREREQUhQEyEREREVEUBshERERERFEYIBMRERERRWGATEREREQU\nhQEyEREREVEUBshERERERFEYIBMRERERRWGATEREREQUhQEyEREREVEUBshERERERFEYIBMRERER\nRWGATERERNRPwWAQ8+fPRzAYTPWpUAJ4Un0CREREROksGAxiypQpUBQFXq8X69atQyAQSPVpUT9w\nBJmIiIioH2pqaqAoCnRdh6IoqKmpSfUpUT8xQO4nTqkQERENblVVVfB6vXC73fB6vaiqqkr1KVE/\nMcWiHzilQkRERIFAAOvWrUNNTQ2qqqoYC5wEGCD3Q7wpFb4piIiIBp9AIMAY4CSStBSL2bNnY9So\nUcjNzbUfu/nmmzF+/Hjk5+fjmmuuwaFDh5J1+AHBKRUiIiKik0/SAuSbbroJa9eujXnsiiuuwI4d\nO7Bt2zaMHTsW8+fPT9bhB4Q1pXLnnXcyvYKIiIjoJJG0FIvJkydj165dMY9NnTrV/nt5eTlWrlyZ\nrMMPGE6pEBFRT4LBIPNSidJQynKQH3nkEcyYMaPHry9cuBALFy4EAOzduxe7d+8eqFPr0b59+1J9\nCo7AdjCxHUxsBxPbwcR2MO3btw+NjY2YMWMGVFWFLMtYsWIF/H5/qk9tQPF6MLEdTOnUDikJkH/z\nm9/A4/Hg+uuv7/F75syZgzlz5gAA/H4/MjMzB+r0jskp55FqbAcT28HEdjCxHUxsB9Pzzz8PVVWh\n6zoAYOfOnZg2bVqKz2rg8XowsR1M6dIOAx4gP/bYY3j22Wexbt06SJI00IcnIiIaENZCbqsUKBdy\nE6WPAQ2Q165di7vuuguvvfYaTjnllIE8NBER0YBibVyi9JW0APm6665DTU0N9u/fjzFjxuCOO+7A\n/PnzEQqFcMUVVwAwF+otWLAgWadARESUUlzITZSekhYgL1u2rNtj3/rWt5J1OCIiIiKihEhaHWQi\nIiIionTEAJmIiIiIKAoDZCIiIiKiKAyQiYiIBkAwGMT8+fMRDAZTfSpEdBwp20mPiIhosAgGg5gy\nZYpdE3ndunWsbkHkYBxBJiIiSrKamhooigJd16EoCmpqalJ9SkR0DAyQiYiIkszaVc/tdnNXPaI0\nwBQLIiKiJOOuekTphQEyEdEACwaDDJQGIe6qR5Q+GCATEQ0gpyzWYpBORNQzBshERAMo3mKtgQ5Q\nnRKkExE5FRfpEREl2LHq3TphsRYrKhARHRtHkImIEuh4o7NOWKxlBenWObKiAhFRLAbIREQJ1JsU\nilQv1nJCkE5E5GQMkImIEihdRmeTGaRzASANRrzuTy4MkIkSgDdGsgz20dnGxkbMnDmTCwDDeG8Y\nHLjw9eTDAJmon3hjpK5SnUKRSsFgMOVVOpyC94bBwwnVaSixWMWCqJ9YEYAoIhAIpLxKh1Pw3jB4\nOKE6DSUWR5CJ+ildck4tnPKlZPL7/YM6xSRaut0bqO8Ge2rVyYgBMlE/pdONkVO+NBAGc4pJtHS6\nN1D/8bo/uTBAJkqAdLkxMk+OaGCly72BiGIxB5loEGGenDMca6c9IiJKPY4gEw0inPJNPaa5EBE5\nHwNkokGGU76pxTSXwYMLYonSFwNkIqIBxMoGgwM3TCFKb8xBJiIaQFaay5133smg6SQWb8OUdMWc\neRqMOIJMRDTAmOZy8rM2TEn3mQLmzNNgxQCZiIgowU6WDVOYM0+DFQNkIiKiJDgZZgqYM0+DFQNk\nogTjynXqLV4r5HQsDUmDFQNkogRivh71Fq8VShcnw0g40YliFQuiBIqXr0cUD68VIiLnYoBMlEDc\nypl6i9cKEZFzMcWCKIGYr0e9FQgEcM8996C6uhrTp0/ntUJE5CAMkIkSjPl6ZDnWIrxgMIi5c+dC\nURSsX78eeXl5vG6IiByCATIRURIcbxEe68umB1YaIRqckpaDPHv2bIwaNQq5ubn2Y08++SRycnLg\ncrnQ2NiYrEMTEaXc8RbhMQfZ+axOzm233YYpU6Zwq2WiQSRpAfJNN92EtWvXxjyWm5uLp556CpMn\nT07WYYkGXDAYxPz58/nhSTGOFwBb+ep33nknS7w5FCuNEA1eSUuxmDx5Mnbt2hXzWHZ2drIOR5QS\nrGVLPenNgk3mqzsbd5EjGrwcm4O8cOFCLFy4EACwd+9e7N69O8VnBOzbty/Vp+AIbAfTvn37sGbN\nmpgRpjVr1iArKyvVpzageD2Y4rVDVlYWbrzxRgBwxD1sIJxM10NWVhaWL1+OYDCIQCCArKysXv8e\nT6Z26A+2g4ntYEqndnBsgDxnzhzMmTMHAOD3+5GZmZniMzI55TxSje1gmjZtGu699157hGnatGmD\nsm0G42uOh+1gOpnaYdq0aZg2bVqffvZkaof+YDuY2A6mdGkHxwbIROmAdY/pWFgBgYgoPTFA7iN+\n8JGFeaQUD/PTiYjSV9I
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": {
"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
}