Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Forecasting SEO traffic with SARIMAX</h1>\n",
"<ul>\n",
"<li>source: <a href=\"https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python/\">https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python/</a></li>\n",
"<li>learn more: <a href=\"https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python/\"> https://www.datacamp.com/courses/forecasting-using-arima-models-in-python</a></li>\n",
"</ul>"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from pandas.plotting import register_matplotlib_converters\n",
"register_matplotlib_converters()\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import figure\n",
"from statsmodels.tsa.seasonal import seasonal_decompose\n",
"from dateutil.parser import parse\n",
"import pmdarima as pm\n",
"import httplib2 as lib2\n",
"import google.oauth2.credentials\n",
"from google_auth_httplib2 import AuthorizedHttp\n",
"from googleapiclient.discovery import build as google_build\n",
"from datetime import datetime, timedelta\n",
"from IPython.display import display"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"access_token = ''\n",
"refresh_token = ''\n",
"client_id = ''\n",
"client_secret = ''"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"token_uri = 'https://accounts.google.com/o/oauth2/token'\n",
"credentials = google.oauth2.credentials.Credentials(access_token,refresh_token=refresh_token,token_uri='https://accounts.google.com/o/oauth2/token',client_id=client_id,client_secret=client_secret)\n",
"authorized = AuthorizedHttp(credentials=credentials)\n",
"api_name = 'analyticsreporting'\n",
"api_version = 'v4'\n",
"api_client = google_build(serviceName=api_name, version=api_version, http=authorized)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"sample_request = {\n",
"\n",
" 'viewId': '', \n",
" 'dateRanges': {\n",
" 'startDate': '2017-01-01',\n",
" 'endDate': '2019-09-30'\n",
" },\n",
" 'filtersExpression': 'ga:medium==organic',\n",
" 'dimensions': [{'name': 'ga:yearMonth'}],\n",
" 'metrics': [{'expression': 'ga:sessions'}]\n",
"}\n",
"\n",
"response = api_client.reports().batchGet(body={'reportRequests': sample_request}).execute()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#Parse the response of API\n",
"def parse_response(report):\n",
"\n",
" \"\"\"Parses and prints the Analytics Reporting API V4 response\"\"\"\n",
" result_list = []\n",
" data_csv = []\n",
" data_csv2 = []\n",
" header_row = []\n",
"\n",
" #Get column headers, metric headers, and dimension headers.\n",
" columnHeader = report.get('columnHeader', {})\n",
" metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])\n",
" dimensionHeaders = columnHeader.get('dimensions', [])\n",
"\n",
" #Combine all of those headers into the header_row, which is in a list format\n",
" for dheader in dimensionHeaders:\n",
" header_row.append(dheader)\n",
" for mheader in metricHeaders:\n",
" header_row.append(mheader['name'])\n",
"\n",
" #Get data from each of the rows, and append them into a list\n",
" rows = report.get('data', {}).get('rows', [])\n",
" for row in rows:\n",
" row_temp = []\n",
" dimensions = row.get('dimensions', [])\n",
" metrics = row.get('metrics', [])\n",
" for d in dimensions:\n",
" row_temp.append(d)\n",
" for m in metrics[0]['values']:\n",
" row_temp.append(m)\n",
" data_csv.append(row_temp)\n",
"\n",
" #In case of a second date range, do the same thing for the second request\n",
" if len(metrics) == 2:\n",
" row_temp2 = []\n",
" for d in dimensions:\n",
" row_temp2.append(d)\n",
" for m in metrics[1]['values']:\n",
" row_temp2.append(m)\n",
" data_csv2.append(row_temp2)\n",
"\n",
" #Putting those list formats into pandas dataframe, and append them into the final result\n",
" result_df = pd.DataFrame(data_csv, columns=header_row)\n",
" result_list.append(result_df)\n",
" if data_csv2 != []:\n",
" result_list.append(pd.DataFrame(data_csv2, columns=header_row))\n",
"\n",
" return result_list"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sessions</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>2017-01-01</td>\n",
" <td>1342969.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-02-01</td>\n",
" <td>1296475.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-03-01</td>\n",
" <td>1403092.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-04-01</td>\n",
" <td>1232753.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-05-01</td>\n",
" <td>1520374.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-06-01</td>\n",
" <td>1325609.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-07-01</td>\n",
" <td>1305322.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-08-01</td>\n",
" <td>1337536.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-09-01</td>\n",
" <td>1586250.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-10-01</td>\n",
" <td>1209167.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-11-01</td>\n",
" <td>974457.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-12-01</td>\n",
" <td>710145.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-01-01</td>\n",
" <td>1153235.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-02-01</td>\n",
" <td>1104458.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-03-01</td>\n",
" <td>1450249.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-04-01</td>\n",
" <td>1495710.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-05-01</td>\n",
" <td>1667230.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-06-01</td>\n",
" <td>1516385.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-07-01</td>\n",
" <td>1578198.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-08-01</td>\n",
" <td>1760822.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-09-01</td>\n",
" <td>1882409.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-10-01</td>\n",
" <td>1806018.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-11-01</td>\n",
" <td>1563445.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-12-01</td>\n",
" <td>1312395.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-01-01</td>\n",
" <td>1955384.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-02-01</td>\n",
" <td>1607146.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-03-01</td>\n",
" <td>1734098.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-04-01</td>\n",
" <td>1814595.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-05-01</td>\n",
" <td>2201069.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-06-01</td>\n",
" <td>2225785.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-07-01</td>\n",
" <td>2423516.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-08-01</td>\n",
" <td>2433128.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-09-01</td>\n",
" <td>2626340.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sessions\n",
"date \n",
"2017-01-01 1342969.0\n",
"2017-02-01 1296475.0\n",
"2017-03-01 1403092.0\n",
"2017-04-01 1232753.0\n",
"2017-05-01 1520374.0\n",
"2017-06-01 1325609.0\n",
"2017-07-01 1305322.0\n",
"2017-08-01 1337536.0\n",
"2017-09-01 1586250.0\n",
"2017-10-01 1209167.0\n",
"2017-11-01 974457.0\n",
"2017-12-01 710145.0\n",
"2018-01-01 1153235.0\n",
"2018-02-01 1104458.0\n",
"2018-03-01 1450249.0\n",
"2018-04-01 1495710.0\n",
"2018-05-01 1667230.0\n",
"2018-06-01 1516385.0\n",
"2018-07-01 1578198.0\n",
"2018-08-01 1760822.0\n",
"2018-09-01 1882409.0\n",
"2018-10-01 1806018.0\n",
"2018-11-01 1563445.0\n",
"2018-12-01 1312395.0\n",
"2019-01-01 1955384.0\n",
"2019-02-01 1607146.0\n",
"2019-03-01 1734098.0\n",
"2019-04-01 1814595.0\n",
"2019-05-01 2201069.0\n",
"2019-06-01 2225785.0\n",
"2019-07-01 2423516.0\n",
"2019-08-01 2433128.0\n",
"2019-09-01 2626340.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"response_data = response.get('reports', [])[0]\n",
"data = parse_response(response_data)[0]\n",
"data.columns = ['date','sessions']\n",
"data['date'] = pd.to_datetime(data['date'], format='%Y%m', errors='coerce').dropna()\n",
"data.set_index('date',inplace=True)\n",
"data['sessions'] = data['sessions'].astype('float64')\n",
"display(data)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sessions</th>\n",
" <th>month</th>\n",
" <th>seasonal_index</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>2017-01-01</td>\n",
" <td>1342969.0</td>\n",
" <td>1</td>\n",
" <td>0.993317</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-02-01</td>\n",
" <td>1296475.0</td>\n",
" <td>2</td>\n",
" <td>0.848214</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-03-01</td>\n",
" <td>1403092.0</td>\n",
" <td>3</td>\n",
" <td>0.981127</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-04-01</td>\n",
" <td>1232753.0</td>\n",
" <td>4</td>\n",
" <td>1.000268</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-05-01</td>\n",
" <td>1520374.0</td>\n",
" <td>5</td>\n",
" <td>1.127406</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-06-01</td>\n",
" <td>1325609.0</td>\n",
" <td>6</td>\n",
" <td>1.051593</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-07-01</td>\n",
" <td>1305322.0</td>\n",
" <td>7</td>\n",
" <td>1.087834</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-08-01</td>\n",
" <td>1337536.0</td>\n",
" <td>8</td>\n",
" <td>1.117329</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-09-01</td>\n",
" <td>1586250.0</td>\n",
" <td>9</td>\n",
" <td>1.175824</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-10-01</td>\n",
" <td>1209167.0</td>\n",
" <td>10</td>\n",
" <td>1.077561</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-11-01</td>\n",
" <td>974457.0</td>\n",
" <td>11</td>\n",
" <td>0.874246</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2017-12-01</td>\n",
" <td>710145.0</td>\n",
" <td>12</td>\n",
" <td>0.665283</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-01-01</td>\n",
" <td>1153235.0</td>\n",
" <td>1</td>\n",
" <td>0.993317</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-02-01</td>\n",
" <td>1104458.0</td>\n",
" <td>2</td>\n",
" <td>0.848214</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-03-01</td>\n",
" <td>1450249.0</td>\n",
" <td>3</td>\n",
" <td>0.981127</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-04-01</td>\n",
" <td>1495710.0</td>\n",
" <td>4</td>\n",
" <td>1.000268</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-05-01</td>\n",
" <td>1667230.0</td>\n",
" <td>5</td>\n",
" <td>1.127406</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-06-01</td>\n",
" <td>1516385.0</td>\n",
" <td>6</td>\n",
" <td>1.051593</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-07-01</td>\n",
" <td>1578198.0</td>\n",
" <td>7</td>\n",
" <td>1.087834</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-08-01</td>\n",
" <td>1760822.0</td>\n",
" <td>8</td>\n",
" <td>1.117329</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-09-01</td>\n",
" <td>1882409.0</td>\n",
" <td>9</td>\n",
" <td>1.175824</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-10-01</td>\n",
" <td>1806018.0</td>\n",
" <td>10</td>\n",
" <td>1.077561</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-11-01</td>\n",
" <td>1563445.0</td>\n",
" <td>11</td>\n",
" <td>0.874246</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2018-12-01</td>\n",
" <td>1312395.0</td>\n",
" <td>12</td>\n",
" <td>0.665283</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-01-01</td>\n",
" <td>1955384.0</td>\n",
" <td>1</td>\n",
" <td>0.993317</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-02-01</td>\n",
" <td>1607146.0</td>\n",
" <td>2</td>\n",
" <td>0.848214</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-03-01</td>\n",
" <td>1734098.0</td>\n",
" <td>3</td>\n",
" <td>0.981127</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-04-01</td>\n",
" <td>1814595.0</td>\n",
" <td>4</td>\n",
" <td>1.000268</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-05-01</td>\n",
" <td>2201069.0</td>\n",
" <td>5</td>\n",
" <td>1.127406</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-06-01</td>\n",
" <td>2225785.0</td>\n",
" <td>6</td>\n",
" <td>1.051593</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-07-01</td>\n",
" <td>2423516.0</td>\n",
" <td>7</td>\n",
" <td>1.087834</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-08-01</td>\n",
" <td>2433128.0</td>\n",
" <td>8</td>\n",
" <td>1.117329</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2019-09-01</td>\n",
" <td>2626340.0</td>\n",
" <td>9</td>\n",
" <td>1.175824</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sessions month seasonal_index\n",
"date \n",
"2017-01-01 1342969.0 1 0.993317\n",
"2017-02-01 1296475.0 2 0.848214\n",
"2017-03-01 1403092.0 3 0.981127\n",
"2017-04-01 1232753.0 4 1.000268\n",
"2017-05-01 1520374.0 5 1.127406\n",
"2017-06-01 1325609.0 6 1.051593\n",
"2017-07-01 1305322.0 7 1.087834\n",
"2017-08-01 1337536.0 8 1.117329\n",
"2017-09-01 1586250.0 9 1.175824\n",
"2017-10-01 1209167.0 10 1.077561\n",
"2017-11-01 974457.0 11 0.874246\n",
"2017-12-01 710145.0 12 0.665283\n",
"2018-01-01 1153235.0 1 0.993317\n",
"2018-02-01 1104458.0 2 0.848214\n",
"2018-03-01 1450249.0 3 0.981127\n",
"2018-04-01 1495710.0 4 1.000268\n",
"2018-05-01 1667230.0 5 1.127406\n",
"2018-06-01 1516385.0 6 1.051593\n",
"2018-07-01 1578198.0 7 1.087834\n",
"2018-08-01 1760822.0 8 1.117329\n",
"2018-09-01 1882409.0 9 1.175824\n",
"2018-10-01 1806018.0 10 1.077561\n",
"2018-11-01 1563445.0 11 0.874246\n",
"2018-12-01 1312395.0 12 0.665283\n",
"2019-01-01 1955384.0 1 0.993317\n",
"2019-02-01 1607146.0 2 0.848214\n",
"2019-03-01 1734098.0 3 0.981127\n",
"2019-04-01 1814595.0 4 1.000268\n",
"2019-05-01 2201069.0 5 1.127406\n",
"2019-06-01 2225785.0 6 1.051593\n",
"2019-07-01 2423516.0 7 1.087834\n",
"2019-08-01 2433128.0 8 1.117329\n",
"2019-09-01 2626340.0 9 1.175824"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# multiplicative seasonal component\n",
"result_mul = seasonal_decompose(data['sessions'][-24:], # 2 years\n",
" model='multiplicative', \n",
" extrapolate_trend='freq')\n",
"\n",
"seasonal_index = result_mul.seasonal[-12:].to_frame()\n",
"seasonal_index['month'] = pd.to_datetime(seasonal_index.index).month\n",
"\n",
"# merge with the base data\n",
"data['month'] = data.index.month\n",
"df = pd.merge(data, seasonal_index, how='left', on='month')\n",
"df.columns = ['sessions', 'month', 'seasonal_index']\n",
"df.index = data.index # reassign the index.\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fit ARIMA: order=(1, 1, 1) seasonal_order=(0, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(0, 1, 0) seasonal_order=(0, 1, 0, 12); AIC=542.427, BIC=545.414, Fit time=0.013 seconds\n",
"Fit ARIMA: order=(1, 1, 0) seasonal_order=(1, 1, 0, 12); AIC=540.982, BIC=545.961, Fit time=0.098 seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(0, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(1, 1, 0) seasonal_order=(0, 1, 0, 12); AIC=544.460, BIC=548.443, Fit time=0.022 seconds\n",
"Fit ARIMA: order=(1, 1, 0) seasonal_order=(2, 1, 0, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(1, 1, 0) seasonal_order=(1, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(1, 1, 0) seasonal_order=(2, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(0, 1, 0) seasonal_order=(1, 1, 0, 12); AIC=539.970, BIC=543.953, Fit time=0.081 seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(1, 1, 0, 12); AIC=539.121, BIC=544.100, Fit time=0.080 seconds\n",
"Fit ARIMA: order=(1, 1, 2) seasonal_order=(1, 1, 0, 12); AIC=543.085, BIC=550.056, Fit time=0.344 seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(0, 1, 0, 12); AIC=544.547, BIC=548.530, Fit time=0.031 seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(2, 1, 0, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(1, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(0, 1, 1) seasonal_order=(2, 1, 1, 12); AIC=nan, BIC=nan, Fit time=nan seconds\n",
"Fit ARIMA: order=(1, 1, 1) seasonal_order=(1, 1, 0, 12); AIC=541.016, BIC=546.990, Fit time=0.133 seconds\n",
"Fit ARIMA: order=(0, 1, 2) seasonal_order=(1, 1, 0, 12); AIC=542.466, BIC=548.440, Fit time=0.100 seconds\n",
"Total fit time: 0.932 seconds\n"
]
},
{
"data": {
"text/html": [
"<table class=\"simpletable\">\n",
"<caption>Statespace Model Results</caption>\n",
"<tr>\n",
" <th>Dep. Variable:</th> <td>y</td> <th> No. Observations: </th> <td>33</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>SARIMAX(0, 1, 1)x(1, 1, 0, 12)</td> <th> Log Likelihood </th> <td>-264.560</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Date:</th> <td>Tue, 08 Oct 2019</td> <th> AIC </th> <td>539.121</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Time:</th> <td>09:50:46</td> <th> BIC </th> <td>544.100</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Sample:</th> <td>0</td> <th> HQIC </th> <td>540.093</td>\n",
"</tr>\n",
"<tr>\n",
" <th></th> <td> - 33</td> <th> </th> <td> </td> \n",
"</tr>\n",
"<tr>\n",
" <th>Covariance Type:</th> <td>opg</td> <th> </th> <td> </td> \n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n",
"</tr>\n",
"<tr>\n",
" <th>intercept</th> <td> 3.415e+04</td> <td> 7.36e+04</td> <td> 0.464</td> <td> 0.643</td> <td> -1.1e+05</td> <td> 1.78e+05</td>\n",
"</tr>\n",
"<tr>\n",
" <th>x1</th> <td> 1.423e-06</td> <td> 1.2e+06</td> <td> 1.19e-12</td> <td> 1.000</td> <td>-2.35e+06</td> <td> 2.35e+06</td>\n",
"</tr>\n",
"<tr>\n",
" <th>ma.L1</th> <td> 0.5135</td> <td> 0.454</td> <td> 1.132</td> <td> 0.258</td> <td> -0.376</td> <td> 1.403</td>\n",
"</tr>\n",
"<tr>\n",
" <th>ar.S.L12</th> <td> -0.4481</td> <td> 0.282</td> <td> -1.591</td> <td> 0.112</td> <td> -1.000</td> <td> 0.104</td>\n",
"</tr>\n",
"<tr>\n",
" <th>sigma2</th> <td> 2.649e+10</td> <td> 8.290</td> <td> 3.2e+09</td> <td> 0.000</td> <td> 2.65e+10</td> <td> 2.65e+10</td>\n",
"</tr>\n",
"</table>\n",
"<table class=\"simpletable\">\n",
"<tr>\n",
" <th>Ljung-Box (Q):</th> <td>nan</td> <th> Jarque-Bera (JB): </th> <td>1.61</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Prob(Q):</th> <td>nan</td> <th> Prob(JB): </th> <td>0.45</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Heteroskedasticity (H):</th> <td>1.11</td> <th> Skew: </th> <td>-0.52</td>\n",
"</tr>\n",
"<tr>\n",
" <th>Prob(H) (two-sided):</th> <td>0.89</td> <th> Kurtosis: </th> <td>2.08</td> \n",
"</tr>\n",
"</table><br/><br/>Warnings:<br/>[1] Covariance matrix calculated using the outer product of gradients (complex-step).<br/>[2] Covariance matrix is singular or near-singular, with condition number 4.41e+28. Standard errors may be unstable."
],
"text/plain": [
"<class 'statsmodels.iolib.summary.Summary'>\n",
"\"\"\"\n",
" Statespace Model Results \n",
"==========================================================================================\n",
"Dep. Variable: y No. Observations: 33\n",
"Model: SARIMAX(0, 1, 1)x(1, 1, 0, 12) Log Likelihood -264.560\n",
"Date: Tue, 08 Oct 2019 AIC 539.121\n",
"Time: 09:50:46 BIC 544.100\n",
"Sample: 0 HQIC 540.093\n",
" - 33 \n",
"Covariance Type: opg \n",
"==============================================================================\n",
" coef std err z P>|z| [0.025 0.975]\n",
"------------------------------------------------------------------------------\n",
"intercept 3.415e+04 7.36e+04 0.464 0.643 -1.1e+05 1.78e+05\n",
"x1 1.423e-06 1.2e+06 1.19e-12 1.000 -2.35e+06 2.35e+06\n",
"ma.L1 0.5135 0.454 1.132 0.258 -0.376 1.403\n",
"ar.S.L12 -0.4481 0.282 -1.591 0.112 -1.000 0.104\n",
"sigma2 2.649e+10 8.290 3.2e+09 0.000 2.65e+10 2.65e+10\n",
"===================================================================================\n",
"Ljung-Box (Q): nan Jarque-Bera (JB): 1.61\n",
"Prob(Q): nan Prob(JB): 0.45\n",
"Heteroskedasticity (H): 1.11 Skew: -0.52\n",
"Prob(H) (two-sided): 0.89 Kurtosis: 2.08\n",
"===================================================================================\n",
"\n",
"Warnings:\n",
"[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n",
"[2] Covariance matrix is singular or near-singular, with condition number 4.41e+28. Standard errors may be unstable.\n",
"\"\"\""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# SARIMAX Model\n",
"sxmodel = pm.auto_arima(df[['sessions']], exogenous=df[['seasonal_index']],\n",
" start_p=1, start_q=1,\n",
" test='adf',\n",
" max_p=3, max_q=3, m=12,\n",
" start_P=0, seasonal=True,\n",
" d=None, D=1, trace=True,\n",
" error_action='ignore', \n",
" suppress_warnings=True, \n",
" stepwise=True)\n",
"sxmodel.summary()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1080x840 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Forecast\n",
"n_periods = 24\n",
"fitted, confint = sxmodel.predict(n_periods=n_periods,exogenous=np.tile(seasonal_index.sessions, 2).reshape(-1,1),return_conf_int=True)\n",
"\n",
"index_of_fc = pd.date_range(data.index[-1], periods = n_periods, freq='MS')\n",
"\n",
"# make series for plotting purpose\n",
"fitted_series = pd.Series(fitted, index=index_of_fc)\n",
"lower_series = pd.Series(confint[:, 0], index=index_of_fc)\n",
"upper_series = pd.Series(confint[:, 1], index=index_of_fc)\n",
"\n",
"# Plot\n",
"plt.rcParams.update({'figure.figsize':(9,7), 'figure.dpi':120})\n",
"plt.plot(data['sessions'])\n",
"plt.plot(fitted_series, color='darkgreen')\n",
"plt.fill_between(lower_series.index, \n",
" lower_series, \n",
" upper_series, \n",
" color='k', alpha=.15)\n",
"plt.title(\"SARIMAX Forecast of Organic Sessions\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Last predicted: 4905849.335369831 organic sessions.\n",
"Last upper CI: 7951796.403447588 Last lower CI: 1859902.267292074\n"
]
}
],
"source": [
"print('Last predicted: ', fitted_series[-1], 'organic sessions.')\n",
"print('Last upper CI: ', upper_series[-1], 'Last lower CI: ', lower_series[-1])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment