mirror of
https://github.com/saymrwulf/prophet.git
synced 2026-09-07 20:50:31 +00:00
629 lines
170 KiB
Text
629 lines
170 KiB
Text
|
|
{
|
|||
|
|
"cells": [
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 1,
|
|||
|
|
"metadata": {
|
|||
|
|
"block_hidden": true,
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"%load_ext rpy2.ipython\n",
|
|||
|
|
"%matplotlib inline\n",
|
|||
|
|
"from fbprophet import Prophet\n",
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"import numpy as np\n",
|
|||
|
|
"from matplotlib import pyplot as plt\n",
|
|||
|
|
"df = pd.read_csv('../examples/example_wp_peyton_manning.csv')\n",
|
|||
|
|
"df['y'] = np.log(df['y'])\n",
|
|||
|
|
"m = Prophet()\n",
|
|||
|
|
"m.fit(df)\n",
|
|||
|
|
"future = m.make_future_dataframe(periods=366)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 2,
|
|||
|
|
"metadata": {
|
|||
|
|
"block_hidden": true,
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stderr",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: Loading required package: Rcpp\n",
|
|||
|
|
"\n",
|
|||
|
|
" warnings.warn(x, RRuntimeWarning)\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
|||
|
|
"init = user\n",
|
|||
|
|
"save_iterations = 1\n",
|
|||
|
|
"init_alpha = 0.001\n",
|
|||
|
|
"tol_obj = 1e-12\n",
|
|||
|
|
"tol_grad = 1e-08\n",
|
|||
|
|
"tol_param = 1e-08\n",
|
|||
|
|
"tol_rel_obj = 10000\n",
|
|||
|
|
"tol_rel_grad = 1e+07\n",
|
|||
|
|
"history_size = 5\n",
|
|||
|
|
"seed = 1107322390\n",
|
|||
|
|
"initial log joint probability = -19.4685\n",
|
|||
|
|
"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": [
|
|||
|
|
"### Modeling Holidays\n",
|
|||
|
|
"If you have holidays that you'd like to model, you must create a dataframe for them. It has two columns (`holiday` and `ds`) and a row for each occurrence of the holiday. It must include all occurrences of the holiday, both in the past (back as far as the historical data go) and in the future (out as far as the forecast is being made). If they won't repeat in the future, Prophet will model them and then not include them in the forecast.\n",
|
|||
|
|
"\n",
|
|||
|
|
"You can also include columns `lower_window` and `upper_window` which extend the holiday out to `[lower_window, upper_window]` days around the date. For instance, if you wanted to included Christmas Eve in addition to Christmas you'd include `lower_window=-1,upper_window=0`. If you wanted to use Black Friday in addition to Thanksgiving, you'd include `lower_window=0,upper_window=1`.\n",
|
|||
|
|
"\n",
|
|||
|
|
"Here we create a dataframe that includes the dates of all of Peyton Manning's playoff appearances:"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 3,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": true
|
|||
|
|
},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"playoffs = pd.DataFrame({\n",
|
|||
|
|
" 'holiday': 'playoff',\n",
|
|||
|
|
" 'ds': pd.to_datetime(['2008-01-13', '2009-01-03', '2010-01-16',\n",
|
|||
|
|
" '2010-01-24', '2010-02-07', '2011-01-08',\n",
|
|||
|
|
" '2013-01-12', '2014-01-12', '2014-01-19',\n",
|
|||
|
|
" '2014-02-02', '2015-01-11', '2016-01-17',\n",
|
|||
|
|
" '2016-01-24', '2016-02-07']),\n",
|
|||
|
|
" 'lower_window': 0,\n",
|
|||
|
|
" 'upper_window': 1,\n",
|
|||
|
|
"})\n",
|
|||
|
|
"superbowls = pd.DataFrame({\n",
|
|||
|
|
" 'holiday': 'superbowl',\n",
|
|||
|
|
" 'ds': pd.to_datetime(['2010-02-07', '2014-02-02', '2016-02-07']),\n",
|
|||
|
|
" 'lower_window': 0,\n",
|
|||
|
|
" 'upper_window': 1,\n",
|
|||
|
|
"})\n",
|
|||
|
|
"holidays = pd.concat((playoffs, superbowls))"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 4,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false,
|
|||
|
|
"output_hidden": true
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stderr",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: \n",
|
|||
|
|
"Attaching package: ‘dplyr’\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
" warnings.warn(x, RRuntimeWarning)\n",
|
|||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: The following objects are masked from ‘package:stats’:\n",
|
|||
|
|
"\n",
|
|||
|
|
" filter, lag\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
" warnings.warn(x, RRuntimeWarning)\n",
|
|||
|
|
"/usr/lib/python2.7/dist-packages/rpy2/rinterface/__init__.py:186: RRuntimeWarning: The following objects are masked from ‘package:base’:\n",
|
|||
|
|
"\n",
|
|||
|
|
" intersect, setdiff, setequal, union\n",
|
|||
|
|
"\n",
|
|||
|
|
"\n",
|
|||
|
|
" warnings.warn(x, RRuntimeWarning)\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"%%R\n",
|
|||
|
|
"library(dplyr)\n",
|
|||
|
|
"playoffs <- data_frame(\n",
|
|||
|
|
" holiday = 'playoff',\n",
|
|||
|
|
" ds = as.Date(c('2008-01-13', '2009-01-03', '2010-01-16',\n",
|
|||
|
|
" '2010-01-24', '2010-02-07', '2011-01-08',\n",
|
|||
|
|
" '2013-01-12', '2014-01-12', '2014-01-19',\n",
|
|||
|
|
" '2014-02-02', '2015-01-11', '2016-01-17',\n",
|
|||
|
|
" '2016-01-24', '2016-02-07')),\n",
|
|||
|
|
" lower_window = 0,\n",
|
|||
|
|
" upper_window = 1\n",
|
|||
|
|
")\n",
|
|||
|
|
"superbowls <- data_frame(\n",
|
|||
|
|
" holiday = 'superbowl',\n",
|
|||
|
|
" ds = as.Date(c('2010-02-07', '2014-02-02', '2016-02-07')),\n",
|
|||
|
|
" lower_window = 0,\n",
|
|||
|
|
" upper_window = 1\n",
|
|||
|
|
")\n",
|
|||
|
|
"holidays <- bind_rows(playoffs, superbowls)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"Above we have include the superbowl days as both playoff games and superbowl games. This means that the superbowl effect will be an additional additive bonus on top of the playoff effect.\n",
|
|||
|
|
"\n",
|
|||
|
|
"Once the table is created, holiday effects are included in the forecast by passing them in with the `holidays` argument. Here we do it with the Peyton Manning data from the Quickstart:"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 5,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"m = Prophet(holidays=holidays)\n",
|
|||
|
|
"forecast = m.fit(df).predict(future)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 6,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false,
|
|||
|
|
"output_hidden": true
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
|||
|
|
"init = user\n",
|
|||
|
|
"save_iterations = 1\n",
|
|||
|
|
"init_alpha = 0.001\n",
|
|||
|
|
"tol_obj = 1e-12\n",
|
|||
|
|
"tol_grad = 1e-08\n",
|
|||
|
|
"tol_param = 1e-08\n",
|
|||
|
|
"tol_rel_obj = 10000\n",
|
|||
|
|
"tol_rel_grad = 1e+07\n",
|
|||
|
|
"history_size = 5\n",
|
|||
|
|
"seed = 1071452747\n",
|
|||
|
|
"initial log joint probability = -19.4685\n",
|
|||
|
|
"Optimization terminated normally: \n",
|
|||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"%%R\n",
|
|||
|
|
"m <- prophet(df, holidays = holidays)\n",
|
|||
|
|
"forecast <- predict(m, future)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"The holiday effect can be seen in the `forecast` dataframe:"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 7,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false,
|
|||
|
|
"output_hidden": true
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
" ds playoff superbowl\n",
|
|||
|
|
"17 2014-02-02 1.219014 1.230508\n",
|
|||
|
|
"18 2014-02-03 1.908609 1.398806\n",
|
|||
|
|
"19 2015-01-11 1.219014 0.000000\n",
|
|||
|
|
"20 2015-01-12 1.908609 0.000000\n",
|
|||
|
|
"21 2016-01-17 1.219014 0.000000\n",
|
|||
|
|
"22 2016-01-18 1.908609 0.000000\n",
|
|||
|
|
"23 2016-01-24 1.219014 0.000000\n",
|
|||
|
|
"24 2016-01-25 1.908609 0.000000\n",
|
|||
|
|
"25 2016-02-07 1.219014 1.230508\n",
|
|||
|
|
"26 2016-02-08 1.908609 1.398806\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"%%R\n",
|
|||
|
|
"forecast %>% \n",
|
|||
|
|
" select(ds, playoff, superbowl) %>% \n",
|
|||
|
|
" filter(abs(playoff + superbowl) > 0) %>%\n",
|
|||
|
|
" tail(10)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 8,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/html": [
|
|||
|
|
"<div>\n",
|
|||
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|||
|
|
" <thead>\n",
|
|||
|
|
" <tr style=\"text-align: right;\">\n",
|
|||
|
|
" <th></th>\n",
|
|||
|
|
" <th>ds</th>\n",
|
|||
|
|
" <th>playoff</th>\n",
|
|||
|
|
" <th>superbowl</th>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </thead>\n",
|
|||
|
|
" <tbody>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2190</th>\n",
|
|||
|
|
" <td>2014-02-02</td>\n",
|
|||
|
|
" <td>1.220308</td>\n",
|
|||
|
|
" <td>1.204992</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2191</th>\n",
|
|||
|
|
" <td>2014-02-03</td>\n",
|
|||
|
|
" <td>1.900465</td>\n",
|
|||
|
|
" <td>1.444581</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2532</th>\n",
|
|||
|
|
" <td>2015-01-11</td>\n",
|
|||
|
|
" <td>1.220308</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2533</th>\n",
|
|||
|
|
" <td>2015-01-12</td>\n",
|
|||
|
|
" <td>1.900465</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2901</th>\n",
|
|||
|
|
" <td>2016-01-17</td>\n",
|
|||
|
|
" <td>1.220308</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2902</th>\n",
|
|||
|
|
" <td>2016-01-18</td>\n",
|
|||
|
|
" <td>1.900465</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2908</th>\n",
|
|||
|
|
" <td>2016-01-24</td>\n",
|
|||
|
|
" <td>1.220308</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2909</th>\n",
|
|||
|
|
" <td>2016-01-25</td>\n",
|
|||
|
|
" <td>1.900465</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2922</th>\n",
|
|||
|
|
" <td>2016-02-07</td>\n",
|
|||
|
|
" <td>1.220308</td>\n",
|
|||
|
|
" <td>1.204992</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2923</th>\n",
|
|||
|
|
" <td>2016-02-08</td>\n",
|
|||
|
|
" <td>1.900465</td>\n",
|
|||
|
|
" <td>1.444581</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" ds playoff superbowl\n",
|
|||
|
|
"2190 2014-02-02 1.220308 1.204992\n",
|
|||
|
|
"2191 2014-02-03 1.900465 1.444581\n",
|
|||
|
|
"2532 2015-01-11 1.220308 0.000000\n",
|
|||
|
|
"2533 2015-01-12 1.900465 0.000000\n",
|
|||
|
|
"2901 2016-01-17 1.220308 0.000000\n",
|
|||
|
|
"2902 2016-01-18 1.900465 0.000000\n",
|
|||
|
|
"2908 2016-01-24 1.220308 0.000000\n",
|
|||
|
|
"2909 2016-01-25 1.900465 0.000000\n",
|
|||
|
|
"2922 2016-02-07 1.220308 1.204992\n",
|
|||
|
|
"2923 2016-02-08 1.900465 1.444581"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 8,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"forecast[(forecast['playoff'] + forecast['superbowl']).abs() > 0][\n",
|
|||
|
|
" ['ds', 'playoff', 'superbowl']][-10:]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"The holiday effects will also show up in the components plot, where we see that there is a spike on the days around playoff appearances, with an especially large spike for the superbowl:"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 9,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false,
|
|||
|
|
"output_hidden": true
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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\n8sux7dlYgwraoijiWkU
|
|||
|
|
"text/plain": [
|
|||
|
|
"<matplotlib.figure.Figure at 0x7ff3bdc48290>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"m.plot_components(forecast);"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 10,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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\nqvJFhnesW9/GjVq0L+u
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"%%R -w 9 -h 12 -u in\n",
|
|||
|
|
"prophet_plot_components(m, forecast);"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"### Prior scale for holidays and seasonality\n",
|
|||
|
|
"If you find that the holidays are overfitting, you can adjust their prior scale to smooth them using the parameter `holidays_prior_scale`, which by default is 10:"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 11,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false,
|
|||
|
|
"output_hidden": true
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"STAN OPTIMIZATION COMMAND (LBFGS)\n",
|
|||
|
|
"init = user\n",
|
|||
|
|
"save_iterations = 1\n",
|
|||
|
|
"init_alpha = 0.001\n",
|
|||
|
|
"tol_obj = 1e-12\n",
|
|||
|
|
"tol_grad = 1e-08\n",
|
|||
|
|
"tol_param = 1e-08\n",
|
|||
|
|
"tol_rel_obj = 10000\n",
|
|||
|
|
"tol_rel_grad = 1e+07\n",
|
|||
|
|
"history_size = 5\n",
|
|||
|
|
"seed = 1982704938\n",
|
|||
|
|
"initial log joint probability = -19.4685\n",
|
|||
|
|
"Optimization terminated normally: \n",
|
|||
|
|
" Convergence detected: relative gradient magnitude is below tolerance\n",
|
|||
|
|
"\r",
|
|||
|
|
"|======================================================|100% ~0 s remaining ds playoff superbowl\n",
|
|||
|
|
"17 2014-02-02 1.322980 0.7580416\n",
|
|||
|
|
"18 2014-02-03 1.991028 0.6133796\n",
|
|||
|
|
"19 2015-01-11 1.322980 0.0000000\n",
|
|||
|
|
"20 2015-01-12 1.991028 0.0000000\n",
|
|||
|
|
"21 2016-01-17 1.322980 0.0000000\n",
|
|||
|
|
"22 2016-01-18 1.991028 0.0000000\n",
|
|||
|
|
"23 2016-01-24 1.322980 0.0000000\n",
|
|||
|
|
"24 2016-01-25 1.991028 0.0000000\n",
|
|||
|
|
"25 2016-02-07 1.322980 0.7580416\n",
|
|||
|
|
"26 2016-02-08 1.991028 0.6133796\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"%%R\n",
|
|||
|
|
"m <- prophet(df, holidays = holidays, holidays.prior.scale = 1)\n",
|
|||
|
|
"forecast <- predict(m, future)\n",
|
|||
|
|
"forecast %>% \n",
|
|||
|
|
" select(ds, playoff, superbowl) %>% \n",
|
|||
|
|
" filter(abs(playoff + superbowl) > 0) %>%\n",
|
|||
|
|
" tail(10)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 12,
|
|||
|
|
"metadata": {
|
|||
|
|
"collapsed": false
|
|||
|
|
},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/html": [
|
|||
|
|
"<div>\n",
|
|||
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|||
|
|
" <thead>\n",
|
|||
|
|
" <tr style=\"text-align: right;\">\n",
|
|||
|
|
" <th></th>\n",
|
|||
|
|
" <th>ds</th>\n",
|
|||
|
|
" <th>playoff</th>\n",
|
|||
|
|
" <th>superbowl</th>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </thead>\n",
|
|||
|
|
" <tbody>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2190</th>\n",
|
|||
|
|
" <td>2014-02-02</td>\n",
|
|||
|
|
" <td>1.362312</td>\n",
|
|||
|
|
" <td>0.693425</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2191</th>\n",
|
|||
|
|
" <td>2014-02-03</td>\n",
|
|||
|
|
" <td>2.033471</td>\n",
|
|||
|
|
" <td>0.542254</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2532</th>\n",
|
|||
|
|
" <td>2015-01-11</td>\n",
|
|||
|
|
" <td>1.362312</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2533</th>\n",
|
|||
|
|
" <td>2015-01-12</td>\n",
|
|||
|
|
" <td>2.033471</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2901</th>\n",
|
|||
|
|
" <td>2016-01-17</td>\n",
|
|||
|
|
" <td>1.362312</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2902</th>\n",
|
|||
|
|
" <td>2016-01-18</td>\n",
|
|||
|
|
" <td>2.033471</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2908</th>\n",
|
|||
|
|
" <td>2016-01-24</td>\n",
|
|||
|
|
" <td>1.362312</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2909</th>\n",
|
|||
|
|
" <td>2016-01-25</td>\n",
|
|||
|
|
" <td>2.033471</td>\n",
|
|||
|
|
" <td>0.000000</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2922</th>\n",
|
|||
|
|
" <td>2016-02-07</td>\n",
|
|||
|
|
" <td>1.362312</td>\n",
|
|||
|
|
" <td>0.693425</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2923</th>\n",
|
|||
|
|
" <td>2016-02-08</td>\n",
|
|||
|
|
" <td>2.033471</td>\n",
|
|||
|
|
" <td>0.542254</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" ds playoff superbowl\n",
|
|||
|
|
"2190 2014-02-02 1.362312 0.693425\n",
|
|||
|
|
"2191 2014-02-03 2.033471 0.542254\n",
|
|||
|
|
"2532 2015-01-11 1.362312 0.000000\n",
|
|||
|
|
"2533 2015-01-12 2.033471 0.000000\n",
|
|||
|
|
"2901 2016-01-17 1.362312 0.000000\n",
|
|||
|
|
"2902 2016-01-18 2.033471 0.000000\n",
|
|||
|
|
"2908 2016-01-24 1.362312 0.000000\n",
|
|||
|
|
"2909 2016-01-25 2.033471 0.000000\n",
|
|||
|
|
"2922 2016-02-07 1.362312 0.693425\n",
|
|||
|
|
"2923 2016-02-08 2.033471 0.542254"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 12,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"m = Prophet(holidays=holidays, holidays_prior_scale=1).fit(df)\n",
|
|||
|
|
"forecast = m.predict(future)\n",
|
|||
|
|
"forecast[(forecast['playoff'] + forecast['superbowl']).abs() > 0][\n",
|
|||
|
|
" ['ds', 'playoff', 'superbowl']][-10:]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"The magnitude of the holiday effect has been reduced compared to before, especially for superbowls, which had the fewest observations. There is a parameter `seasonality_prior_scale` which similarly adjusts the extent to which the seasonality model will fit the data."
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"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": 0
|
|||
|
|
}
|