prophet/notebooks/trend_changepoints.ipynb

389 lines
947 KiB
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",
"df = pd.read_csv('../examples/example_wp_peyton_manning.csv')\n",
"df['y'] = np.log(df['y'])"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"block_hidden": true
2017-02-22 23:59:43 +00:00
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: Loading required package: Rcpp\n",
2017-02-22 23:59:43 +00:00
"\n",
" warnings.warn(x, RRuntimeWarning)\n"
]
},
{
"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"
}
],
"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)"
]
},
{
"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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:fbprophet.forecaster:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
]
},
2017-02-22 23:59:43 +00:00
{
"data": {
"image/png": "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\nBNHdoQQ5wuialOPHj4+
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc78a58eb10>"
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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\nky47tmTJkoavu3Tponf
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc7b858db10>"
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."
]
},
{
"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": {
"image/png": "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\n6A6kRpSVlYVCobRfTrq
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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:fbprophet.forecaster:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
]
},
2017-02-22 23:59:43 +00:00
{
"data": {
"image/png": "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\nl56ejg8//DDhh8np/aA
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc77ecab990>"
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": {
"image/png": "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\nUFVVNTU1lX4A169fJ9s
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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:fbprophet.forecaster:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
]
},
2017-02-22 23:59:43 +00:00
{
"data": {
"image/png": "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\nsIMDJETHvqQFyPPnz2/
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc77b1b8390>"
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",
"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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\nzwYGBqqrq1taWso+gKt
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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:fbprophet.forecaster:Disabling daily seasonality. Run prophet with daily_seasonality=True to override this.\n"
]
},
2017-02-22 23:59:43 +00:00
{
"data": {
"image/png": "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\nRxQRDAaxdetWNhbbYZ3
2017-02-22 23:59:43 +00:00
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc77ebdd0d0>"
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",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 1
2017-02-22 23:59:43 +00:00
}