diff --git a/Ocean Two Time series Gaussian Process Regression.ipynb b/Ocean Two Time series Gaussian Process Regression.ipynb
new file mode 100644
index 0000000..2a33621
--- /dev/null
+++ b/Ocean Two Time series Gaussian Process Regression.ipynb
@@ -0,0 +1,1055 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Time Series Forecasting using Gaussian Process Regression\n",
+ "\n",
+ "The following analysis were largely borrowed from [this tutorial](https://docs.pymc.io/notebooks/GP-MaunaLoa.html).\n",
+ "\n",
+ "Gaussian processes, timeseries analysis, Bayesian modelling"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING (theano.configdefaults): install mkl with `conda install mkl-service`: No module named 'mkl'\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "
Loading BokehJS ...\n",
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "\n",
+ "(function(root) {\n",
+ " function now() {\n",
+ " return new Date();\n",
+ " }\n",
+ "\n",
+ " var force = true;\n",
+ "\n",
+ " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
+ " root._bokeh_onload_callbacks = [];\n",
+ " root._bokeh_is_loading = undefined;\n",
+ " }\n",
+ "\n",
+ " var JS_MIME_TYPE = 'application/javascript';\n",
+ " var HTML_MIME_TYPE = 'text/html';\n",
+ " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
+ " var CLASS_NAME = 'output_bokeh rendered_html';\n",
+ "\n",
+ " /**\n",
+ " * Render data to the DOM node\n",
+ " */\n",
+ " function render(props, node) {\n",
+ " var script = document.createElement(\"script\");\n",
+ " node.appendChild(script);\n",
+ " }\n",
+ "\n",
+ " /**\n",
+ " * Handle when an output is cleared or removed\n",
+ " */\n",
+ " function handleClearOutput(event, handle) {\n",
+ " var cell = handle.cell;\n",
+ "\n",
+ " var id = cell.output_area._bokeh_element_id;\n",
+ " var server_id = cell.output_area._bokeh_server_id;\n",
+ " // Clean up Bokeh references\n",
+ " if (id != null && id in Bokeh.index) {\n",
+ " Bokeh.index[id].model.document.clear();\n",
+ " delete Bokeh.index[id];\n",
+ " }\n",
+ "\n",
+ " if (server_id !== undefined) {\n",
+ " // Clean up Bokeh references\n",
+ " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
+ " cell.notebook.kernel.execute(cmd, {\n",
+ " iopub: {\n",
+ " output: function(msg) {\n",
+ " var id = msg.content.text.trim();\n",
+ " if (id in Bokeh.index) {\n",
+ " Bokeh.index[id].model.document.clear();\n",
+ " delete Bokeh.index[id];\n",
+ " }\n",
+ " }\n",
+ " }\n",
+ " });\n",
+ " // Destroy server and session\n",
+ " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
+ " cell.notebook.kernel.execute(cmd);\n",
+ " }\n",
+ " }\n",
+ "\n",
+ " /**\n",
+ " * Handle when a new output is added\n",
+ " */\n",
+ " function handleAddOutput(event, handle) {\n",
+ " var output_area = handle.output_area;\n",
+ " var output = handle.output;\n",
+ "\n",
+ " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
+ " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n",
+ " return\n",
+ " }\n",
+ "\n",
+ " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
+ "\n",
+ " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
+ " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
+ " // store reference to embed id on output_area\n",
+ " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
+ " }\n",
+ " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
+ " var bk_div = document.createElement(\"div\");\n",
+ " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
+ " var script_attrs = bk_div.children[0].attributes;\n",
+ " for (var i = 0; i < script_attrs.length; i++) {\n",
+ " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
+ " }\n",
+ " // store reference to server id on output_area\n",
+ " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
+ " }\n",
+ " }\n",
+ "\n",
+ " function register_renderer(events, OutputArea) {\n",
+ "\n",
+ " function append_mime(data, metadata, element) {\n",
+ " // create a DOM node to render to\n",
+ " var toinsert = this.create_output_subarea(\n",
+ " metadata,\n",
+ " CLASS_NAME,\n",
+ " EXEC_MIME_TYPE\n",
+ " );\n",
+ " this.keyboard_manager.register_events(toinsert);\n",
+ " // Render to node\n",
+ " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
+ " render(props, toinsert[toinsert.length - 1]);\n",
+ " element.append(toinsert);\n",
+ " return toinsert\n",
+ " }\n",
+ "\n",
+ " /* Handle when an output is cleared or removed */\n",
+ " events.on('clear_output.CodeCell', handleClearOutput);\n",
+ " events.on('delete.Cell', handleClearOutput);\n",
+ "\n",
+ " /* Handle when a new output is added */\n",
+ " events.on('output_added.OutputArea', handleAddOutput);\n",
+ "\n",
+ " /**\n",
+ " * Register the mime type and append_mime function with output_area\n",
+ " */\n",
+ " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
+ " /* Is output safe? */\n",
+ " safe: true,\n",
+ " /* Index of renderer in `output_area.display_order` */\n",
+ " index: 0\n",
+ " });\n",
+ " }\n",
+ "\n",
+ " // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
+ " if (root.Jupyter !== undefined) {\n",
+ " var events = require('base/js/events');\n",
+ " var OutputArea = require('notebook/js/outputarea').OutputArea;\n",
+ "\n",
+ " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
+ " register_renderer(events, OutputArea);\n",
+ " }\n",
+ " }\n",
+ "\n",
+ " \n",
+ " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
+ " root._bokeh_timeout = Date.now() + 5000;\n",
+ " root._bokeh_failed_load = false;\n",
+ " }\n",
+ "\n",
+ " var NB_LOAD_WARNING = {'data': {'text/html':\n",
+ " \"\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
+ " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"- re-rerun `output_notebook()` to attempt to load from CDN again, or
\\n\"+\n",
+ " \"- use INLINE resources instead, as so:
\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"from bokeh.resources import INLINE\\n\"+\n",
+ " \"output_notebook(resources=INLINE)\\n\"+\n",
+ " \"
\\n\"+\n",
+ " \"
\"}};\n",
+ "\n",
+ " function display_loaded() {\n",
+ " var el = document.getElementById(\"1001\");\n",
+ " if (el != null) {\n",
+ " el.textContent = \"BokehJS is loading...\";\n",
+ " }\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " if (el != null) {\n",
+ " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
+ " }\n",
+ " } else if (Date.now() < root._bokeh_timeout) {\n",
+ " setTimeout(display_loaded, 100)\n",
+ " }\n",
+ " }\n",
+ "\n",
+ "\n",
+ " function run_callbacks() {\n",
+ " try {\n",
+ " root._bokeh_onload_callbacks.forEach(function(callback) {\n",
+ " if (callback != null)\n",
+ " callback();\n",
+ " });\n",
+ " } finally {\n",
+ " delete root._bokeh_onload_callbacks\n",
+ " }\n",
+ " console.debug(\"Bokeh: all callbacks have finished\");\n",
+ " }\n",
+ "\n",
+ " function load_libs(css_urls, js_urls, callback) {\n",
+ " if (css_urls == null) css_urls = [];\n",
+ " if (js_urls == null) js_urls = [];\n",
+ "\n",
+ " root._bokeh_onload_callbacks.push(callback);\n",
+ " if (root._bokeh_is_loading > 0) {\n",
+ " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
+ " return null;\n",
+ " }\n",
+ " if (js_urls == null || js_urls.length === 0) {\n",
+ " run_callbacks();\n",
+ " return null;\n",
+ " }\n",
+ " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
+ " root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
+ "\n",
+ " function on_load() {\n",
+ " root._bokeh_is_loading--;\n",
+ " if (root._bokeh_is_loading === 0) {\n",
+ " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
+ " run_callbacks()\n",
+ " }\n",
+ " }\n",
+ "\n",
+ " function on_error() {\n",
+ " console.error(\"failed to load \" + url);\n",
+ " }\n",
+ "\n",
+ " for (var i = 0; i < css_urls.length; i++) {\n",
+ " var url = css_urls[i];\n",
+ " const element = document.createElement(\"link\");\n",
+ " element.onload = on_load;\n",
+ " element.onerror = on_error;\n",
+ " element.rel = \"stylesheet\";\n",
+ " element.type = \"text/css\";\n",
+ " element.href = url;\n",
+ " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
+ " document.body.appendChild(element);\n",
+ " }\n",
+ "\n",
+ " for (var i = 0; i < js_urls.length; i++) {\n",
+ " var url = js_urls[i];\n",
+ " var element = document.createElement('script');\n",
+ " element.onload = on_load;\n",
+ " element.onerror = on_error;\n",
+ " element.async = false;\n",
+ " element.src = url;\n",
+ " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
+ " document.head.appendChild(element);\n",
+ " }\n",
+ " };var element = document.getElementById(\"1001\");\n",
+ " if (element == null) {\n",
+ " console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1001' but no matching script tag was found. \")\n",
+ " return false;\n",
+ " }\n",
+ "\n",
+ " function inject_raw_css(css) {\n",
+ " const element = document.createElement(\"style\");\n",
+ " element.appendChild(document.createTextNode(css));\n",
+ " document.body.appendChild(element);\n",
+ " }\n",
+ "\n",
+ " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.3.4.min.js\"];\n",
+ " var css_urls = [];\n",
+ "\n",
+ " var inline_js = [\n",
+ " function(Bokeh) {\n",
+ " Bokeh.set_log_level(\"info\");\n",
+ " },\n",
+ " \n",
+ " function(Bokeh) {\n",
+ " \n",
+ " },\n",
+ " function(Bokeh) {} // ensure no trailing comma for IE\n",
+ " ];\n",
+ "\n",
+ " function run_inline_js() {\n",
+ " \n",
+ " if ((root.Bokeh !== undefined) || (force === true)) {\n",
+ " for (var i = 0; i < inline_js.length; i++) {\n",
+ " inline_js[i].call(root, root.Bokeh);\n",
+ " }if (force === true) {\n",
+ " display_loaded();\n",
+ " }} else if (Date.now() < root._bokeh_timeout) {\n",
+ " setTimeout(run_inline_js, 100);\n",
+ " } else if (!root._bokeh_failed_load) {\n",
+ " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
+ " root._bokeh_failed_load = true;\n",
+ " } else if (force !== true) {\n",
+ " var cell = $(document.getElementById(\"1001\")).parents('.cell').data().cell;\n",
+ " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
+ " }\n",
+ "\n",
+ " }\n",
+ "\n",
+ " if (root._bokeh_is_loading === 0) {\n",
+ " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
+ " run_inline_js();\n",
+ " } else {\n",
+ " load_libs(css_urls, js_urls, function() {\n",
+ " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
+ " run_inline_js();\n",
+ " });\n",
+ " }\n",
+ "}(window));"
+ ],
+ "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"\\n\"+\n \"
\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"
\\n\"+\n \"
\\n\"+\n \"- re-rerun `output_notebook()` to attempt to load from CDN again, or
\\n\"+\n \"- use INLINE resources instead, as so:
\\n\"+\n \"
\\n\"+\n \"
\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"
\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1001\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };var element = document.getElementById(\"1001\");\n if (element == null) {\n console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1001' but no matching script tag was found. \")\n return false;\n }\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.3.4.min.js\"];\n var css_urls = [];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1001\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));"
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import pymc3 as pm\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import theano.tensor as tt\n",
+ "\n",
+ "from bokeh.plotting import figure, show\n",
+ "from bokeh.models import BoxAnnotation, Span, Label, Legend\n",
+ "from bokeh.io import output_notebook\n",
+ "from bokeh.palettes import brewer\n",
+ "output_notebook()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Preprocess"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df = pd.read_excel('concat_raw_o2.xlsx')\n",
+ "df[['DATE', 'DAY_OF_WEEK']] = df['DATE'].str.split(' ', n=1, expand=True)\n",
+ "df['DATE'] = pd.to_datetime(df['DATE'])\n",
+ "df = df.sort_values('DATE')\n",
+ "df.set_index('DATE', inplace=True)\n",
+ "df = df['2016-01-01':'2019-08-04']\n",
+ "df = df.loc[df['IND REV'] >=0]\n",
+ "df = df.loc[~df.index.duplicated(keep='first')]\n",
+ "data_columns = ['OCC %', 'REVENUE', 'AVE RATE']\n",
+ "# Resample to monthly frequency, aggregating with mean\n",
+ "monthly_mean = df[data_columns].resample('M').mean()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def dates_to_idx(timelist):\n",
+ " reference_time = pd.to_datetime('2016-01-31')\n",
+ " t = (timelist - reference_time) / pd.Timedelta(1, \"Y\")\n",
+ " return np.asarray(t)\n",
+ "\n",
+ "t = dates_to_idx(monthly_mean.index)\n",
+ "\n",
+ "# normalize CO2 levels\n",
+ "y = monthly_mean[\"REVENUE\"].values\n",
+ "first_rev = y[0]\n",
+ "std_rev = np.std(y)\n",
+ "y_n = (y - first_rev) / std_rev\n",
+ "\n",
+ "monthly_mean = monthly_mean.assign(t = t)\n",
+ "monthly_mean = monthly_mean.assign(y_n = y_n)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# split into training and test set\n",
+ "sep_idx = monthly_mean.index.searchsorted(pd.to_datetime(\"2019-01-01\"))\n",
+ "data_early = monthly_mean.iloc[:sep_idx+1, :]\n",
+ "data_later = monthly_mean.iloc[sep_idx:, :]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "(function(root) {\n",
+ " function embed_document(root) {\n",
+ " \n",
+ " var docs_json = {\"4c858d26-abcd-4f41-b728-5d5df9068418\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1215\",\"type\":\"DatetimeAxis\"}],\"center\":[{\"id\":\"1219\",\"type\":\"Grid\"},{\"id\":\"1224\",\"type\":\"Grid\"},{\"id\":\"1238\",\"type\":\"BoxAnnotation\"},{\"id\":\"1239\",\"type\":\"Span\"},{\"id\":\"1250\",\"type\":\"Label\"},{\"id\":\"1251\",\"type\":\"Label\"}],\"left\":[{\"id\":\"1220\",\"type\":\"LinearAxis\"}],\"plot_height\":350,\"plot_width\":550,\"renderers\":[{\"id\":\"1243\",\"type\":\"GlyphRenderer\"},{\"id\":\"1248\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1205\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1231\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1207\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1211\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1209\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1213\",\"type\":\"LinearScale\"}},\"id\":\"1204\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1295\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"ticker\":{\"id\":\"1216\",\"type\":\"DatetimeTicker\"}},\"id\":\"1219\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AABAqk8pdUIAAAAxpTJ1QgAAQIOfPHVCAADAb0dGdUIAAADCQVB1QgAAgK7pWXVCAADAAORjdUIAAABT3m11QgAAgD+Gd3VCAADAkYCBdUIAAEB+KIt1QgAAgNAilXVCAADAIh2fdUIAAMBDIKh1QgAAAJYasnVCAACAgsK7dUIAAMDUvMV1QgAAQMFkz3VCAACAE1/ZdUIAAMBlWeN1QgAAQFIB7XVCAACApPv2dUIAAACRowB2QgAAQOOdCnZCAACANZgUdkIAAIBWmx12QgAAwKiVJ3ZCAABAlT0xdkIAAIDnNzt2QgAAANTfRHZCAABAJtpOdkIAAIB41Fh2QgAAAGV8YnZCAABAt3ZsdkIAAMCjHnZ2QgAAAPYYgHZCAABASBOKdkIAAEBpFpN2QgAAgLsQnXZCAAAAqLimdkIAAED6srB2QgAAwOZaunZCAAAAOVXEdkIAAECLT852Qg==\",\"dtype\":\"float64\",\"shape\":[44]},\"y\":{\"__ndarray__\":\"VCReRZI35UA21IukxtrkQONUSU4ll+JAf2q8dIPk3ECnJYJa0q7VQJ7vp8aDctZApQFtGpBE1UB0PC/H84vUQH2GXQG6I9JAinumuAey0kBVVVVVtWLZQJ+808nDPeNAWJF4FWkC40CYmZmZP+PlQAWQVABpCOJAtvP91Ixq4EAPZ/hwdhjVQByhjN4O0dZA2ceFfRw/0UDhMQ8ec4nXQLdlrY5pTdVAdIU0V6iR0kBnHz7DNqfZQBj2cWEPu99AF9JcIeXd40AvIDaV7oDlQARIKoDUY+FA6t8IZSTM20DVf1v9xzvYQEZvy1rNCtVA2qG6HYr60kAhzvDhTMjVQNyyVsfMjtBA5BW6rcQgxkBlZmZmlovYQBz0u0G/JOBABrRpQBvl4kB3AbGptovkQE4n73Sq2OJANl66Scg84EC4sWobm+7XQBTK6G3pO9ZAGhqHobEv10DrUbgeURjgQA==\",\"dtype\":\"float64\",\"shape\":[44]}},\"selected\":{\"id\":\"1294\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1293\",\"type\":\"UnionRenderers\"}},\"id\":\"1245\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1213\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1221\",\"type\":\"BasicTicker\"}},\"id\":\"1224\",\"type\":\"Grid\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1279\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"red\"},\"line_dash\":[6],\"line_width\":{\"value\":2},\"location\":400},\"id\":\"1239\",\"type\":\"Span\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1225\",\"type\":\"PanTool\"},{\"id\":\"1226\",\"type\":\"WheelZoomTool\"},{\"id\":\"1227\",\"type\":\"BoxZoomTool\"},{\"id\":\"1228\",\"type\":\"SaveTool\"},{\"id\":\"1229\",\"type\":\"ResetTool\"},{\"id\":\"1230\",\"type\":\"HelpTool\"}]},\"id\":\"1231\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1247\",\"type\":\"Circle\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1280\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1225\",\"type\":\"PanTool\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1281\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"background_fill_alpha\":{\"value\":0.0},\"border_line_alpha\":{\"value\":0.0},\"render_mode\":\"css\",\"text\":\"Test Set\",\"x\":510,\"x_units\":\"screen\",\"y\":80,\"y_units\":\"screen\"},\"id\":\"1251\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"1221\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1245\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1246\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1247\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1249\",\"type\":\"CDSView\"}},\"id\":\"1248\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1245\",\"type\":\"ColumnDataSource\"}},\"id\":\"1249\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"firebrick\"},\"left\":1546300800000.0},\"id\":\"1238\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"days\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},\"id\":\"1282\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1211\",\"type\":\"LinearScale\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1283\",\"type\":\"DaysTicker\"},{\"attributes\":{\"callback\":null},\"id\":\"1209\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AABAqk8pdUIAAAAxpTJ1QgAAQIOfPHVCAADAb0dGdUIAAADCQVB1QgAAgK7pWXVCAADAAORjdUIAAABT3m11QgAAgD+Gd3VCAADAkYCBdUIAAEB+KIt1QgAAgNAilXVCAADAIh2fdUIAAMBDIKh1QgAAAJYasnVCAACAgsK7dUIAAMDUvMV1QgAAQMFkz3VCAACAE1/ZdUIAAMBlWeN1QgAAQFIB7XVCAACApPv2dUIAAACRowB2QgAAQOOdCnZCAACANZgUdkIAAIBWmx12QgAAwKiVJ3ZCAABAlT0xdkIAAIDnNzt2QgAAANTfRHZCAABAJtpOdkIAAIB41Fh2QgAAAGV8YnZCAABAt3ZsdkIAAMCjHnZ2QgAAAPYYgHZCAABASBOKdkIAAEBpFpN2QgAAgLsQnXZCAAAAqLimdkIAAED6srB2QgAAwOZaunZCAAAAOVXEdkIAAECLT852Qg==\",\"dtype\":\"float64\",\"shape\":[44]},\"y\":{\"__ndarray__\":\"VCReRZI35UA21IukxtrkQONUSU4ll+JAf2q8dIPk3ECnJYJa0q7VQJ7vp8aDctZApQFtGpBE1UB0PC/H84vUQH2GXQG6I9JAinumuAey0kBVVVVVtWLZQJ+808nDPeNAWJF4FWkC40CYmZmZP+PlQAWQVABpCOJAtvP91Ixq4EAPZ/hwdhjVQByhjN4O0dZA2ceFfRw/0UDhMQ8ec4nXQLdlrY5pTdVAdIU0V6iR0kBnHz7DNqfZQBj2cWEPu99AF9JcIeXd40AvIDaV7oDlQARIKoDUY+FA6t8IZSTM20DVf1v9xzvYQEZvy1rNCtVA2qG6HYr60kAhzvDhTMjVQNyyVsfMjtBA5BW6rcQgxkBlZmZmlovYQBz0u0G/JOBABrRpQBvl4kB3AbGptovkQE4n73Sq2OJANl66Scg84EC4sWobm+7XQBTK6G3pO9ZAGhqHobEv10DrUbgeURjgQA==\",\"dtype\":\"float64\",\"shape\":[44]}},\"selected\":{\"id\":\"1292\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1291\",\"type\":\"UnionRenderers\"}},\"id\":\"1240\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1284\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1229\",\"type\":\"ResetTool\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1285\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1226\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1228\",\"type\":\"SaveTool\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1286\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"background_fill_alpha\":{\"value\":0.0},\"border_line_alpha\":{\"value\":0.0},\"render_mode\":\"css\",\"text\":\"Training Set\",\"x\":100,\"x_units\":\"screen\",\"y\":30,\"y_units\":\"screen\"},\"id\":\"1250\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"1230\",\"type\":\"HelpTool\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1287\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis_label\":\"Revenue\",\"formatter\":{\"id\":\"1278\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1221\",\"type\":\"BasicTicker\"}},\"id\":\"1220\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"Monthly Average Revenue of Ocean Two\"},\"id\":\"1205\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"1207\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1240\",\"type\":\"ColumnDataSource\"}},\"id\":\"1244\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1276\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1288\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"line_alpha\":0.5,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1241\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"1295\",\"type\":\"BoxAnnotation\"}},\"id\":\"1227\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1289\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1279\",\"type\":\"AdaptiveTicker\"},{\"id\":\"1280\",\"type\":\"AdaptiveTicker\"},{\"id\":\"1281\",\"type\":\"AdaptiveTicker\"},{\"id\":\"1282\",\"type\":\"DaysTicker\"},{\"id\":\"1283\",\"type\":\"DaysTicker\"},{\"id\":\"1284\",\"type\":\"DaysTicker\"},{\"id\":\"1285\",\"type\":\"DaysTicker\"},{\"id\":\"1286\",\"type\":\"MonthsTicker\"},{\"id\":\"1287\",\"type\":\"MonthsTicker\"},{\"id\":\"1288\",\"type\":\"MonthsTicker\"},{\"id\":\"1289\",\"type\":\"MonthsTicker\"},{\"id\":\"1290\",\"type\":\"YearsTicker\"}]},\"id\":\"1216\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1242\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"size\":{\"units\":\"screen\",\"value\":2},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1246\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1240\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1241\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1242\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1244\",\"type\":\"CDSView\"}},\"id\":\"1243\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"Date\",\"formatter\":{\"id\":\"1276\",\"type\":\"DatetimeTickFormatter\"},\"ticker\":{\"id\":\"1216\",\"type\":\"DatetimeTicker\"}},\"id\":\"1215\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"1290\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"1291\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1292\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1293\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1294\",\"type\":\"Selection\"}],\"root_ids\":[\"1204\"]},\"title\":\"Bokeh Application\",\"version\":\"1.3.4\"}};\n",
+ " var render_items = [{\"docid\":\"4c858d26-abcd-4f41-b728-5d5df9068418\",\"roots\":{\"1204\":\"e9626bdd-7362-4755-a07c-f125ff10e492\"}}];\n",
+ " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
+ "\n",
+ " }\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " } else {\n",
+ " var attempts = 0;\n",
+ " var timer = setInterval(function(root) {\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " attempts++;\n",
+ " if (attempts > 100) {\n",
+ " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " }, 10, root)\n",
+ " }\n",
+ "})(window);"
+ ],
+ "application/vnd.bokehjs_exec.v0+json": ""
+ },
+ "metadata": {
+ "application/vnd.bokehjs_exec.v0+json": {
+ "id": "1204"
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# make plot\n",
+ "\n",
+ "p = figure(x_axis_type='datetime', title='Monthly Average Revenue of Ocean Two',\n",
+ " plot_width=550, plot_height=350)\n",
+ "p.yaxis.axis_label = 'Revenue'\n",
+ "p.xaxis.axis_label = 'Date'\n",
+ "# Predict 2019-01-01 onwards\n",
+ "predict_region = BoxAnnotation(left=pd.to_datetime(\"2019-01-01\"),\n",
+ " fill_alpha=0.1, fill_color=\"firebrick\")\n",
+ "p.add_layout(predict_region)\n",
+ "ppm400 = Span(location=400,\n",
+ " dimension='width', line_color='red',\n",
+ " line_dash='dashed', line_width=2)\n",
+ "p.add_layout(ppm400)\n",
+ "\n",
+ "p.line(monthly_mean.index, monthly_mean['REVENUE'],\n",
+ " line_width=2, line_color=\"black\", alpha=0.5)\n",
+ "p.circle(monthly_mean.index, monthly_mean['REVENUE'],\n",
+ " line_color=\"black\", alpha=0.1, size=2)\n",
+ "\n",
+ "train_label = Label(x=100, y=30, x_units='screen', y_units='screen',\n",
+ " text='Training Set', render_mode='css', border_line_alpha=0.0,\n",
+ " background_fill_alpha=0.0)\n",
+ "test_label = Label(x=510, y=80, x_units='screen', y_units='screen',\n",
+ " text='Test Set', render_mode='css', border_line_alpha=0.0,\n",
+ " background_fill_alpha=0.0)\n",
+ "\n",
+ "p.add_layout(train_label)\n",
+ "p.add_layout(test_label)\n",
+ "show(p)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The Gaussian Process (GP) model in PyMC3\n",
+ "\n",
+ "Below is the actual model. Each of the three component GPs is constructed separately. Since we are doing maximum a-posteriori (MAP), we use Marginal GPs and lastly call the .marginal_likelihood method to specify the marginal posterior."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/pymc3/tuning/starting.py:61: UserWarning: find_MAP should not be used to initialize the NUTS sampler, simply call pymc3.sample() and it will automatically initialize NUTS in a better way.\n",
+ " warnings.warn('find_MAP should not be used to initialize the NUTS sampler, simply call pymc3.sample() and it will automatically initialize NUTS in a better way.')\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ " 0%| | 0/5000 [00:00, ?it/s]/opt/tljh/user/lib/python3.6/site-packages/theano/tensor/basic.py:6611: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
+ " result[diagonal_slice] = x\n",
+ "logp = -27.723, ||grad|| = 0.017829: 100%|██████████| 300/300 [00:00<00:00, 444.67it/s] \n"
+ ]
+ }
+ ],
+ "source": [
+ "# pull out normalized data\n",
+ "t = data_early[\"t\"].values[:,None]\n",
+ "y = data_early[\"y_n\"].values\n",
+ "\n",
+ "with pm.Model() as model:\n",
+ " # yearly periodic component x long term trend\n",
+ " η_per = pm.HalfCauchy(\"η_per\", beta=2, testval=1.0)\n",
+ " ℓ_pdecay = pm.Gamma(\"ℓ_pdecay\", alpha=10, beta=0.075)\n",
+ " period = pm.Normal(\"period\", mu=1, sigma=0.05)\n",
+ " ℓ_psmooth = pm.Gamma(\"ℓ_psmooth \", alpha=4, beta=3)\n",
+ " cov_seasonal = η_per**2 * pm.gp.cov.Periodic(1, period, ℓ_psmooth) \\\n",
+ " * pm.gp.cov.Matern52(1, ℓ_pdecay)\n",
+ " gp_seasonal = pm.gp.Marginal(cov_func=cov_seasonal)\n",
+ "\n",
+ " # small/medium term irregularities\n",
+ " η_med = pm.HalfCauchy(\"η_med\", beta=0.5, testval=0.1)\n",
+ " ℓ_med = pm.Gamma(\"ℓ_med\", alpha=2, beta=0.75)\n",
+ " α = pm.Gamma(\"α\", alpha=5, beta=2)\n",
+ " cov_medium = η_med**2 * pm.gp.cov.RatQuad(1, ℓ_med, α)\n",
+ " gp_medium = pm.gp.Marginal(cov_func=cov_medium)\n",
+ "\n",
+ " # long term trend\n",
+ " η_trend = pm.HalfCauchy(\"η_trend\", beta=2, testval=2.0)\n",
+ " ℓ_trend = pm.Gamma(\"ℓ_trend\", alpha=4, beta=0.1)\n",
+ " cov_trend = η_trend**2 * pm.gp.cov.ExpQuad(1, ℓ_trend)\n",
+ " gp_trend = pm.gp.Marginal(cov_func=cov_trend)\n",
+ "\n",
+ " # noise model\n",
+ " η_noise = pm.HalfNormal(\"η_noise\", sigma=0.5, testval=0.05)\n",
+ " ℓ_noise = pm.Gamma(\"ℓ_noise\", alpha=2, beta=4)\n",
+ " σ = pm.HalfNormal(\"σ\", sigma=0.25, testval=0.05)\n",
+ " cov_noise = η_noise**2 * pm.gp.cov.Matern32(1, ℓ_noise) +\\\n",
+ " pm.gp.cov.WhiteNoise(σ)\n",
+ "\n",
+ " # The Gaussian process is a sum of these three components\n",
+ " gp = gp_seasonal + gp_medium + gp_trend\n",
+ "\n",
+ " # Since the normal noise model and the GP are conjugates, we use `Marginal` with the `.marginal_likelihood` method\n",
+ " y_ = gp.marginal_likelihood(\"y\", X=t, y=y, noise=cov_noise)\n",
+ "\n",
+ " # this line calls an optimizer to find the MAP\n",
+ " mp = pm.find_MAP(include_transformed=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['period:1.0085245409766752',\n",
+ " 'α:1.988373307058695',\n",
+ " 'η_med:0.1636945535018351',\n",
+ " 'η_noise:0.00016401151534963817',\n",
+ " 'η_per:1.7700970160225573',\n",
+ " 'η_trend:0.002701133481886187',\n",
+ " 'σ:0.2598854046366373',\n",
+ " 'ℓ_med:1.3671454433337313',\n",
+ " 'ℓ_noise:0.25012334444737233',\n",
+ " 'ℓ_pdecay:120.15043410643221',\n",
+ " 'ℓ_psmooth :0.808197481374807',\n",
+ " 'ℓ_trend:30.004234056607558']"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# display the results, dont show transformed parameter values\n",
+ "sorted([name+\":\"+str(mp[name]) for name in mp.keys() if not name.endswith(\"_\")])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Predicting with gp ...\n",
+ "Predicting with gp_trend ...\n",
+ "Predicting with gp_medium ...\n",
+ "Predicting with gp_seasonal ...\n",
+ "Done\n"
+ ]
+ }
+ ],
+ "source": [
+ "# predict at a 10 day granularity\n",
+ "dates = pd.date_range(start='01/01/2016', end=\"01/01/2019\", freq=\"10D\")\n",
+ "tnew = dates_to_idx(dates)[:,None]\n",
+ "\n",
+ "print(\"Predicting with gp ...\")\n",
+ "mu, var = gp.predict(tnew, point=mp, diag=True)\n",
+ "mean_pred = mu*std_rev + first_rev\n",
+ "var_pred = var*std_rev**2\n",
+ "\n",
+ "# make dataframe to store fit results\n",
+ "fit = pd.DataFrame({\"t\": tnew.flatten(),\n",
+ " \"mu_total\": mean_pred,\n",
+ " \"sd_total\": np.sqrt(var_pred)},\n",
+ " index=dates)\n",
+ "\n",
+ "print(\"Predicting with gp_trend ...\")\n",
+ "mu, var = gp_trend.predict(tnew, point=mp,\n",
+ " given={\"gp\": gp, \"X\": t, \"y\": y, \"noise\": cov_noise},\n",
+ " diag=True)\n",
+ "fit = fit.assign(mu_trend = mu*std_rev + first_rev,\n",
+ " sd_trend = np.sqrt(var*std_rev**2))\n",
+ "\n",
+ "print(\"Predicting with gp_medium ...\")\n",
+ "mu, var = gp_medium.predict(tnew, point=mp,\n",
+ " given={\"gp\": gp, \"X\": t, \"y\": y, \"noise\": cov_noise},\n",
+ " diag=True)\n",
+ "fit = fit.assign(mu_medium = mu*std_rev + first_rev,\n",
+ " sd_medium = np.sqrt(var*std_rev**2))\n",
+ "\n",
+ "print(\"Predicting with gp_seasonal ...\")\n",
+ "mu, var = gp_seasonal.predict(tnew, point=mp,\n",
+ " given={\"gp\": gp, \"X\": t, \"y\": y, \"noise\": cov_noise},\n",
+ " diag=True)\n",
+ "fit = fit.assign(mu_seasonal = mu*std_rev + first_rev,\n",
+ " sd_seasonal = np.sqrt(var*std_rev**2))\n",
+ "print(\"Done\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "(function(root) {\n",
+ " function embed_document(root) {\n",
+ " \n",
+ " var docs_json = {\"97371637-55ba-4f86-9185-70366bfaa1e9\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2967\",\"type\":\"DatetimeAxis\"}],\"center\":[{\"id\":\"2971\",\"type\":\"Grid\"},{\"id\":\"2976\",\"type\":\"Grid\"},{\"id\":\"3013\",\"type\":\"Legend\"}],\"left\":[{\"id\":\"2972\",\"type\":\"LinearAxis\"}],\"plot_height\":550,\"plot_width\":750,\"renderers\":[{\"id\":\"2993\",\"type\":\"GlyphRenderer\"},{\"id\":\"3018\",\"type\":\"GlyphRenderer\"},{\"id\":\"3023\",\"type\":\"GlyphRenderer\"},{\"id\":\"3051\",\"type\":\"GlyphRenderer\"},{\"id\":\"3081\",\"type\":\"GlyphRenderer\"},{\"id\":\"3113\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2957\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"2983\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"2959\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"2963\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"2961\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"2965\",\"type\":\"LinearScale\"}},\"id\":\"2956\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2965\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"3015\",\"type\":\"ColumnDataSource\"}},\"id\":\"3019\",\"type\":\"CDSView\"},{\"attributes\":{\"text\":\"Decomposition of the Revenue\"},\"id\":\"2957\",\"type\":\"Title\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"3000\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3001\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3002\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3003\",\"type\":\"DaysTicker\"},{\"id\":\"3004\",\"type\":\"DaysTicker\"},{\"id\":\"3005\",\"type\":\"DaysTicker\"},{\"id\":\"3006\",\"type\":\"DaysTicker\"},{\"id\":\"3007\",\"type\":\"MonthsTicker\"},{\"id\":\"3008\",\"type\":\"MonthsTicker\"},{\"id\":\"3009\",\"type\":\"MonthsTicker\"},{\"id\":\"3010\",\"type\":\"MonthsTicker\"},{\"id\":\"3011\",\"type\":\"YearsTicker\"}]},\"id\":\"2968\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3080\",\"type\":\"Line\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"3007\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"3008\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3043\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Date\",\"formatter\":{\"id\":\"2997\",\"type\":\"DatetimeTickFormatter\"},\"ticker\":{\"id\":\"2968\",\"type\":\"DatetimeTicker\"}},\"id\":\"2967\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"3015\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3016\",\"type\":\"Patch\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3017\",\"type\":\"Patch\"},\"selection_glyph\":null,\"view\":{\"id\":\"3019\",\"type\":\"CDSView\"}},\"id\":\"3018\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"Medium range variation\"},\"renderers\":[{\"id\":\"3051\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3077\",\"type\":\"LegendItem\"},{\"attributes\":{\"source\":{\"id\":\"3078\",\"type\":\"ColumnDataSource\"}},\"id\":\"3082\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"3110\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3111\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3112\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"3114\",\"type\":\"CDSView\"}},\"id\":\"3113\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"Observed data\"},\"renderers\":[{\"id\":\"3113\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3143\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2978\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"3106\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3012\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3045\",\"type\":\"Selection\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"2973\",\"type\":\"BasicTicker\"}},\"id\":\"2976\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"3048\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3049\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3050\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"3052\",\"type\":\"CDSView\"}},\"id\":\"3051\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"3005\",\"type\":\"DaysTicker\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3017\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"2981\",\"type\":\"ResetTool\"},{\"attributes\":{\"fill_alpha\":0.6,\"fill_color\":\"firebrick\",\"line_alpha\":0.6,\"line_color\":\"white\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3016\",\"type\":\"Patch\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3022\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2982\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52Qg==\",\"dtype\":\"float64\",\"shape\":[110]},\"y\":{\"__ndarray__\":\"zd4dtZA35UCnYNu0kDflQGj2mLSQN+VAGqBWtJA35UDJXRS0kDflQH4v0rOQN+VARRWQs5A35UApD06zkDflQDQdDLOQN+VAcT/KspA35UDrdYiykDflQK3ARrKQN+VAwR8FspA35UAxk8OxkDflQAobgrGQN+VAVbdAsZA35UAdaP+wkDflQGwtvrCQN+VATgd9sJA35UDN9TuwkDflQPP4+q+QN+VAzBC6r5A35UBiPXmvkDflQL5+OK+QN+VA7dT3rpA35UD5P7eukDflQOu/dq6QN+VAz1Q2rpA35UCv/vWtkDflQJa9ta2QN+VAjpF1rZA35UChejWtkDflQNt49ayQN+VARYy1rJA35UDqtHWskDflQNXyNayQN+VAD0b2q5A35UCkrrarkDflQJ4sd6uQN+VABsA3q5A35UDoaPiqkDflQE4nuaqQN+VAQft5qpA35UDN5DqqkDflQPzj+6mQN+VA2Pi8qZA35UBsI36pkDflQMFjP6mQN+VA4rkAqZA35UDZJcKokDflQLCng6iQN+VAcj9FqJA35UAp7QaokDflQN6wyKeQN+VAnYqKp5A35UBwekynkDflQF+ADqeQN+VAd5zQppA35UDAzpKmkDflQEUXVaaQN+VAEHYXppA35UAr69mlkDflQKB2nKWQN+VAeRhfpZA35UDB0CGlkDflQIGf5KSQN+VAw4SnpJA35UCRgGqkkDflQPaSLaSQN+VA+rvwo5A35UCp+7OjkDflQAxSd6OQN+VALb86o5A35UAWQ/6ikDflQNHdwaKQN+VAaI+FopA35UDkV0mikDflQFA3DaKQN+VAtS3RoZA35UAdO5WhkDflQJJfWaGQN+VAHpsdoZA35UDK7eGgkDflQKBXpqCQN+VAq9hqoJA35UDzcC+gkDflQIMg9J+QN+VAZOe4n5A35UCfxX2fkDflQEC7Qp+QN+VATsgHn5A35UDU7MyekDflQNwokp6QN+VAb3xXnpA35UCX5xyekDflQF1q4p2QN+VAygSonZA35UDptm2dkDflQMOAM52QN+VAYmL5nJA35UDOW7+ckDflQBJthZyQN+VAN5ZLnJA35UBG1xGckDflQEkw2JuQN+VASaGem5A35UBQKmWbkDflQGfLK5uQN+VAl4TympA35UDqVbmakDflQA==\",\"dtype\":\"float64\",\"shape\":[110]}},\"selected\":{\"id\":\"3075\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3074\",\"type\":\"UnionRenderers\"}},\"id\":\"3020\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3140\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3315\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3141\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"3075\",\"type\":\"Selection\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"3004\",\"type\":\"DaysTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"3012\",\"type\":\"BoxAnnotation\"}},\"id\":\"2979\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3050\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"3110\",\"type\":\"ColumnDataSource\"}},\"id\":\"3114\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2980\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2973\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3107\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2963\",\"type\":\"LinearScale\"},{\"attributes\":{\"data_source\":{\"id\":\"3020\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3021\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3022\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"3024\",\"type\":\"CDSView\"}},\"id\":\"3023\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3112\",\"type\":\"Circle\"},{\"attributes\":{\"days\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},\"id\":\"3003\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"3044\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null},\"id\":\"2961\",\"type\":\"DataRange1d\"},{\"attributes\":{\"label\":{\"value\":\"Long term trend\"},\"renderers\":[{\"id\":\"3023\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3047\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"Total fit\"},\"renderers\":[{\"id\":\"2993\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3014\",\"type\":\"LegendItem\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52Qg==\",\"dtype\":\"float64\",\"shape\":[110]},\"y\":{\"__ndarray__\":\"6USZY8nH4UBOO5rnuPjiQMplEGHj5eNAlc38GjiF5EDI/sjFg9HkQDR5BxXlyeRAjfskpYdx5EChMha8k8/jQNhazu8V7+JAcQz+ZZ7e4UC5UFPnc6/gQB3iN32+6N5ALrmgIGeA3ECcAhani0jaQFpc12kBXthAOv9AAmbV1kBDjMgDULnVQAwEix8oCdVA/g+rxM+41EA2f4J2XbHUQE9e869S09RAi4TZyJ761ECL2U3TaQTVQLOLUwoF1tRAHmFhd6tj1EDajatxRbXTQCGpc5Vz59JAw7HnCeQn0kBKg1jnOK3RQAlkf8gmrNFAUtN4tWpM0kCWol+ZYKDTQNiYZCxGodVAtOd+4NIw2EBcI3kbRR/bQBnh1BTjM95AshD3U8ea4ED6ajOOvfjhQAt1ioOHH+NAsFDCi4kA5EAQDAIqi5LkQAz8cBMX0eRAkJEBlvm75EAeabvjBlfkQBp0GSkOquNAtUoxKbnA4kDmPMoJG6rhQJ0v4/PQd+BAVpIzk3553kAKURx+JxfcQCr58p196tlA3IAhfh8P2EDdMnoiHZjWQBAbIS1DjtVAC2AupBLv1EA9/SNlj6zUQO+Dk3wzrtRAvsX+jWzT1EAwmzCW7ffUQNB+nyO6+dRAcQ5ixyrA1EBS5Tw0e0LUQNIbGHAMjNNAJW8pNLO80kBI7zGOQwTSQB2VvBzcmdFAmEh0Y8uw0UBl4UlaxW3SQHer/JAi39NABosR6AL61UA0JPSAupzYQEJ2hxdvldtAtd03mcWq3kA8WHMnItLgQHQTKHtNKOJA/QKWA4VE40Chox1KGRnkQECAMM2lneRAxGW62G/O5ECPyhHX76vkQMUdUDWiOuRA/+3F+/uC40DNbKaoQJHiQCV1n77/dOFAXD/jTSNA4EBA/sliQAveQMTmAsHmr9tA9wXGPD2P2UDCj8nQmsPXQKVnIp51XtZAkaWzCslm1UBzxqVDLdjUQMOOEqPPotRACWfR1Z+s1EDSbAvgFtTUQGx7cwbX9NRA8wsbBvLt1EALBc8z96jUQLURltJBINRABE1M861i00D4NHxUJJPSQFiF+/9f49FAervLwKuK0UCEvKTdobrRQHjqiA21lNJAEA1zuyUj1ECXJmt9B1fWQBk4QBR7C9lAPq+jgswM3EAcmF1MPCHfQA==\",\"dtype\":\"float64\",\"shape\":[110]}},\"selected\":{\"id\":\"3141\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3140\",\"type\":\"UnionRenderers\"}},\"id\":\"3078\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"items\":[{\"id\":\"3014\",\"type\":\"LegendItem\"},{\"id\":\"3047\",\"type\":\"LegendItem\"},{\"id\":\"3077\",\"type\":\"LegendItem\"},{\"id\":\"3109\",\"type\":\"LegendItem\"},{\"id\":\"3143\",\"type\":\"LegendItem\"}],\"location\":\"bottom_left\"},\"id\":\"3013\",\"type\":\"Legend\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"3002\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"3009\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"line_color\":\"green\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3049\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3021\",\"type\":\"Line\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"3000\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"3001\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"3010\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3316\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2990\",\"type\":\"ColumnDataSource\"}},\"id\":\"2994\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"2959\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"3074\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"3078\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3079\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3080\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"3082\",\"type\":\"CDSView\"}},\"id\":\"3081\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"firebrick\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2991\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3011\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"3042\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"orange\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3079\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52Qg==\",\"dtype\":\"float64\",\"shape\":[110]},\"y\":{\"__ndarray__\":\"qS1t8kWH5UAR1dIdR4flQJqbXSxBh+VAGydO7TOH5UB4v+8vH4flQL8SqMMCh+VAosUHeN6G5UB509scsoblQEnAP4J9huVAc56weECG5UAR6SDR+oXlQPUyDV2sheVASKmR7lSF5UDeZ4BY9ITlQA2ceG6KhOVArnH+BBeE5UDKxJPxmYPlQPuQ0QoTg+VASxaCKIKC5UDrqbsj54HlQJIn/NZBgeVABfdEHpKA5UCclzfX13/lQC+iMuESf+VAPzBvHUN+5UDNlR5vaH3lQJdZiLuCfOVASFYo6pF75UB07czklXrlQBk0tZeOeeVA2f6u8Xt45UAUszTkXXflQM/AimM0duVASajcZv905UBBbVnovnPlQBdZT+VycuVARuxGXhtx5UAz3xxXuG/lQOsRG9dJbuVAK0oQ6c9s5UAHn2abSmvlQKRxOAC6aeVAwNJjLR5o5UBANZw8d2blQKxOekvFZOVAVgeKewhj5UD3XFbyQGHlQMobc9luX+VAk1OEXpJd5UCkb0Ozq1vlQKragQ27WeVAHhkpp8BX5UAlRzi+vFXlQCrpvpSvU+VAwADVcJlR5UDxWZCcek/lQOsH92VTTeVApwrvHiRL5UAZGisd7UjlQICWFLquRuVAaaCyUmlE5UAUXo5HHULlQBh3lPzKP+VARdLz2HI95UDepPlGFTvlQHvl6rOyOOVA6Tfbj0s25UBqaoFN4DPlQLyfCWJxMeVAFUTlRP8u5UAN7phviizlQBlPiF0TKuVApVnAi5on5UAwxb94ICXlQAUbPqSlIuVA/Hfxjiog5UCcMVO6rx3lQFSOY6g1G+VA9cFs27wY5UCfYMXVRRblQBp7khnRE+VAWpiJKF8R5UAGwLKD8A7lQD3KKquFDOVAXCjmHR8K5UBjWnRZvQflQMhDxNlgBeVAmZHpGAoD5UDLYuOOuQDlQABiZLFv/uRAoX6c8yz85EAocQTG8fnkQJE0K5a+9+RAlpyFzpP15ED/LUDWcfPkQKtbExFZ8eRAXkga30nv5EBTKqycRO3kQNhqOKJJ6+RA5ZglRFnp5ECsQrPSc+fkQODG3pmZ5eRADStL4crj5EBWASzsB+LkQGhkM/lQ4ORAWQ2DQqbe5EDXg6D9B93kQPRlbFt22+RAoMEciPHZ5EABdzqredjkQA==\",\"dtype\":\"float64\",\"shape\":[110]}},\"selected\":{\"id\":\"3107\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3106\",\"type\":\"UnionRenderers\"}},\"id\":\"3048\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3111\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2977\",\"type\":\"PanTool\"},{\"attributes\":{\"ticker\":{\"id\":\"2968\",\"type\":\"DatetimeTicker\"}},\"id\":\"2971\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2990\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2991\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2992\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2994\",\"type\":\"CDSView\"}},\"id\":\"2993\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2992\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AABAqk8pdUIAAAAxpTJ1QgAAQIOfPHVCAADAb0dGdUIAAADCQVB1QgAAgK7pWXVCAADAAORjdUIAAABT3m11QgAAgD+Gd3VCAADAkYCBdUIAAEB+KIt1QgAAgNAilXVCAADAIh2fdUIAAMBDIKh1QgAAAJYasnVCAACAgsK7dUIAAMDUvMV1QgAAQMFkz3VCAACAE1/ZdUIAAMBlWeN1QgAAQFIB7XVCAACApPv2dUIAAACRowB2QgAAQOOdCnZCAACANZgUdkIAAIBWmx12QgAAwKiVJ3ZCAABAlT0xdkIAAIDnNzt2QgAAANTfRHZCAABAJtpOdkIAAIB41Fh2QgAAAGV8YnZCAABAt3ZsdkIAAMCjHnZ2QgAAAPYYgHZCAABASBOKdkI=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"VCReRZI35UA21IukxtrkQONUSU4ll+JAf2q8dIPk3ECnJYJa0q7VQJ7vp8aDctZApQFtGpBE1UB0PC/H84vUQH2GXQG6I9JAinumuAey0kBVVVVVtWLZQJ+808nDPeNAWJF4FWkC40CYmZmZP+PlQAWQVABpCOJAtvP91Ixq4EAPZ/hwdhjVQByhjN4O0dZA2ceFfRw/0UDhMQ8ec4nXQLdlrY5pTdVAdIU0V6iR0kBnHz7DNqfZQBj2cWEPu99AF9JcIeXd40AvIDaV7oDlQARIKoDUY+FA6t8IZSTM20DVf1v9xzvYQEZvy1rNCtVA2qG6HYr60kAhzvDhTMjVQNyyVsfMjtBA5BW6rcQgxkBlZmZmlovYQBz0u0G/JOBABrRpQBvl4kA=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"3316\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3315\",\"type\":\"UnionRenderers\"}},\"id\":\"3110\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"3006\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"2999\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"3020\",\"type\":\"ColumnDataSource\"}},\"id\":\"3024\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"3048\",\"type\":\"ColumnDataSource\"}},\"id\":\"3052\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52Qg==\",\"dtype\":\"float64\",\"shape\":[110]},\"y\":{\"__ndarray__\":\"xQhogHsX4kBWKIwvbEjjQC6vSreQNeRAH0zlMdjU5EBr0xAfDyHlQOlyxQFUGeVA1I0ARtLA5EClzIMBsh7kQKPvXZr/PeNAq6G8Bkst4kAWZ0Dg2v3gQD44Z4bvhN9AGbpVTOkb3UBaZyWmTOPaQFs5VJTu99hA+L9GWWxu10DvVHYzXFHWQMTvMYEmoNVAFrowYaxO1UBOLfkIBEbVQA0OaaiuZtVA8AJfT5uM1UBF8jbL8ZTVQGQ8sRUDZdVALNq2+gnx1EAEqN6X7kDUQKRK+VNRcdNAxnYsJeCv0kA2ymX3PDPSQEy23D0cMNJAwmJJ3jrO0kC5bLum9B/UQLR67DeHHtZAl78q8qmr2EBX1p4vm5fbQLrnZiKhqd5Aa/p3007U4EAesEoG4jDiQA5rYHs9VuNAMhJOlcU15EBHy6TlQcbkQF1MpjM9A+VA/RYj44Ps5ECPOtY/6oXkQBhe05M/1+NATAK8wy3s4kCMdOIayNPhQIZm2eurn+BA+BvFjHvF3kCl6q4gV1/cQJZshfTLLtpAn6CFB3lP2EAbCoDZbtTWQOG9t5B6xtVAfeV0vx0j1UDCFGXXXNzUQDIDJoGy2dRAxIIFBI361ECS2zMIoBrVQOhI+s7vF9VA9ql9o9XZ1ECr5pT5jVfUQBlmAZ96nNNAS7NWG3HI0kBpSfBQRgvSQLwN47gZnNFAwjABtzqu0UAiJqkoXmbSQHV/8ofd0tNAB/pEpNno1UBnZhWSp4bYQCgnDgRuettA7X214dKK3kDZF3W4rr/gQK7DazdfE+JAn8FQqhst40B45P0bNf/jQDn95IxHgeRA0Aw8y5iv5EChHbDDoYrkQOSvf2XfFuRA0NiwOsdc40Dp0X5CnWjiQFBOtH/xSeFAs/d3ga4S4ECcA5lAk6vdQBwe+56AS9tAcmaSmCkm2UCPTxMY5lXXQMkQ+Ckt7NVAJqKDGvvv1EA78c/36FzUQIm4FPckI9RAmgcTmp8o1ECdBk2z0kvUQPl15k5haNRA8BQn6l1d1EAaNoqSWBTUQMhX9Tuth9NARrIRoDjG0kDR4Ogd5PLRQPFbS1drP9FAoKyAphnj0ECB3KfYiQ/RQImCJyIv5tFAKtk9Ykpx00An8f2Z76HVQIoJ+Os/U9hATKpJs4dR20DCoMzCB2PeQA==\",\"dtype\":\"float64\",\"shape\":[110]}},\"selected\":{\"id\":\"3043\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3042\",\"type\":\"UnionRenderers\"}},\"id\":\"2990\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"Revenue\",\"formatter\":{\"id\":\"2999\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2973\",\"type\":\"BasicTicker\"}},\"id\":\"2972\",\"type\":\"LinearAxis\"},{\"attributes\":{\"label\":{\"value\":\"Seasonal process\"},\"renderers\":[{\"id\":\"3081\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3109\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2997\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52QgAAQPl8fnZCAADA/0R7dkIAAEAGDXh2QgAAwAzVdHZCAABAE51xdkIAAMAZZW52QgAAQCAta3ZCAADAJvVndkIAAEAtvWR2QgAAwDOFYXZCAABAOk1edkIAAMBAFVt2QgAAQEfdV3ZCAADATaVUdkIAAEBUbVF2QgAAwFo1TnZCAABAYf1KdkIAAMBnxUd2QgAAQG6NRHZCAADAdFVBdkIAAEB7HT52QgAAwIHlOnZCAABAiK03dkIAAMCOdTR2QgAAQJU9MXZCAADAmwUudkIAAECizSp2QgAAwKiVJ3ZCAABAr10kdkIAAMC1JSF2QgAAQLztHXZCAADAwrUadkIAAEDJfRd2QgAAwM9FFHZCAABA1g0RdkIAAMDc1Q12QgAAQOOdCnZCAADA6WUHdkIAAEDwLQR2QgAAwPb1AHZCAABA/b39dUIAAMADhvp1QgAAQApO93VCAADAEBb0dUIAAEAX3vB1QgAAwB2m7XVCAABAJG7qdUIAAMAqNud1QgAAQDH+43VCAADAN8bgdUIAAEA+jt11QgAAwERW2nVCAABASx7XdUIAAMBR5tN1QgAAQFiu0HVCAADAXnbNdUIAAEBlPsp1QgAAwGsGx3VCAABAcs7DdUIAAMB4lsB1QgAAQH9evXVCAADAhSa6dUIAAECM7rZ1QgAAwJK2s3VCAABAmX6wdUIAAMCfRq11QgAAQKYOqnVCAADArNamdUIAAECznqN1QgAAwLlmoHVCAABAwC6ddUIAAMDG9pl1QgAAQM2+lnVCAADA04aTdUIAAEDaTpB1QgAAwOAWjXVCAABA596JdUIAAMDtpoZ1QgAAQPRug3VCAADA+jaAdUIAAEAB/3x1QgAAwAfHeXVCAABADo92dUIAAMAUV3N1QgAAQBsfcHVCAADAIedsdUIAAEAor2l1QgAAwC53ZnVCAABANT9jdUIAAMA7B2B1QgAAQELPXHVCAADASJdZdUIAAEBPX1Z1QgAAwFUnU3VCAABAXO9PdUIAAMBit0x1QgAAQGl/SXVCAADAb0dGdUIAAEB2D0N1QgAAwHzXP3VCAABAg588dUIAAMCJZzl1QgAAQJAvNnVCAADAlvcydUIAAECdvy91QgAAwKOHLHVCAABAqk8pdUIAAMCwFyZ1QgAAQLffInVCAADAvacfdUI=\",\"dtype\":\"float64\",\"shape\":[220]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]}},\"selected\":{\"id\":\"3045\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3044\",\"type\":\"UnionRenderers\"}},\"id\":\"3015\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2977\",\"type\":\"PanTool\"},{\"id\":\"2978\",\"type\":\"WheelZoomTool\"},{\"id\":\"2979\",\"type\":\"BoxZoomTool\"},{\"id\":\"2980\",\"type\":\"SaveTool\"},{\"id\":\"2981\",\"type\":\"ResetTool\"},{\"id\":\"2982\",\"type\":\"HelpTool\"}]},\"id\":\"2983\",\"type\":\"Toolbar\"}],\"root_ids\":[\"2956\"]},\"title\":\"Bokeh Application\",\"version\":\"1.3.4\"}};\n",
+ " var render_items = [{\"docid\":\"97371637-55ba-4f86-9185-70366bfaa1e9\",\"roots\":{\"2956\":\"b9ac3d83-189b-4fa1-bcd2-afb31b35965e\"}}];\n",
+ " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
+ "\n",
+ " }\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " } else {\n",
+ " var attempts = 0;\n",
+ " var timer = setInterval(function(root) {\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " attempts++;\n",
+ " if (attempts > 100) {\n",
+ " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " }, 10, root)\n",
+ " }\n",
+ "})(window);"
+ ],
+ "application/vnd.bokehjs_exec.v0+json": ""
+ },
+ "metadata": {
+ "application/vnd.bokehjs_exec.v0+json": {
+ "id": "2956"
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## plot the components\n",
+ "p = figure(title=\"Decomposition of the Revenue\",\n",
+ " x_axis_type='datetime', plot_width=750, plot_height=550)\n",
+ "p.yaxis.axis_label = 'Revenue'\n",
+ "p.xaxis.axis_label = 'Date'\n",
+ "\n",
+ "# plot mean and 2σ region of total prediction\n",
+ "upper = fit.mu_total + 2*fit.sd_total\n",
+ "lower = fit.mu_total - 2*fit.sd_total\n",
+ "band_x = np.append(fit.index.values, fit.index.values[::-1])\n",
+ "band_y = np.append(lower, upper[::-1])\n",
+ "\n",
+ "# total fit\n",
+ "p.line(fit.index, fit.mu_total,\n",
+ " line_width=1, line_color=\"firebrick\", legend=\"Total fit\")\n",
+ "p.patch(band_x, band_y,\n",
+ " color=\"firebrick\", alpha=0.6, line_color=\"white\")\n",
+ "\n",
+ "# trend\n",
+ "p.line(fit.index, fit.mu_trend,\n",
+ " line_width=1, line_color=\"blue\", legend=\"Long term trend\")\n",
+ "\n",
+ "# medium\n",
+ "p.line(fit.index, fit.mu_medium,\n",
+ " line_width=1, line_color=\"green\", legend=\"Medium range variation\")\n",
+ "\n",
+ "# seasonal\n",
+ "p.line(fit.index, fit.mu_seasonal,\n",
+ " line_width=1, line_color=\"orange\", legend=\"Seasonal process\")\n",
+ "\n",
+ "# true value\n",
+ "p.circle(data_early.index, data_early['REVENUE'],\n",
+ " color=\"black\", legend=\"Observed data\")\n",
+ "p.legend.location = \"bottom_left\"\n",
+ "show(p)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Predicting year 2019\n",
+ "Predicting year 2020\n",
+ "Predicting year 2021\n",
+ "Predicting year 2023\n",
+ "Predicting year 2025\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "(function(root) {\n",
+ " function embed_document(root) {\n",
+ " \n",
+ " var docs_json = {\"ecad61b0-e4d8-450d-8eaa-1a75620eaf12\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"4389\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"4393\",\"type\":\"Grid\"},{\"id\":\"4398\",\"type\":\"Grid\"},{\"id\":\"4423\",\"type\":\"Legend\"}],\"left\":[{\"id\":\"4394\",\"type\":\"LinearAxis\"}],\"plot_height\":350,\"plot_width\":550,\"renderers\":[{\"id\":\"4415\",\"type\":\"GlyphRenderer\"},{\"id\":\"4428\",\"type\":\"GlyphRenderer\"},{\"id\":\"4442\",\"type\":\"GlyphRenderer\"},{\"id\":\"4458\",\"type\":\"GlyphRenderer\"},{\"id\":\"4476\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"4379\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"4405\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"4381\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"4385\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"4383\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"4387\",\"type\":\"LinearScale\"}},\"id\":\"4378\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"4400\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"4470\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"4425\",\"type\":\"ColumnDataSource\"}},\"id\":\"4429\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAA8D8+puhtvEH1P3tM0dt4g/o/uPK5STXF/z97TNHbeIMCQJqfxRJXJAVAuPK5STXFB0DXRa6AE2YKQPaYorfxBg1AFeyW7s+nD0Can8USVyQRQCrJPy7GdBJAuPK5STXFE0BIHDRlpBUVQNdFroATZhZAZ28onIK2F0D2mKK38QYZQIbCHNNgVxpAFeyW7s+nG0CkFREKP/gcQDQ/iyWuSB5Aw2gFQR2ZH0AqyT8uxnQgQPHd/Lv9HCFAuPK5STXFIUCAB3fXbG0iQEgcNGWkFSNAEDHx8tu9I0DXRa6AE2YkQJ9aaw5LDiVAZ28onIK2JUAvhOUpul4mQPaYorfxBidAvq1fRSmvJ0CGwhzTYFcoQE3X2WCY/yhAFeyW7s+nKUA=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"LJbkXCeVxsAUKtQzp7nAwAl9k9TXEbfAu0kJnwMwrcClCGwRS9WgwPOgffjzFJPAcYEmjNn2jcAQUw6A0TWVwPufUOH+jaLAsNDmUa/DrsAUsmjLeja3wGAcjl8iIsDA/NAvZM/8xMCT5HEadN/JwL715UlTgc7A1pQNglxR0cB/eBG8GwnTwBenlwtqWNTAEHDlgHw61cD2vQeg+7XVwOY1nZXW3NXA4Hxqtc7K1cBsr8Y2WKLVwBxfxCShh9XA0UH1BA+a1cAufRbaNO3VwBX8ajLigtbAjtNZxiNI18DG/6M0ohbYwId9tc29utjA3Or7t2P92MCsjjInX6/YwGiKynJUs9fAgwJqduUD1sDsIgDWn7TTwE8TSmDe7dDAzSsr81HKy8A=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"4470\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4469\",\"type\":\"UnionRenderers\"}},\"id\":\"4439\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"4422\",\"type\":\"BoxAnnotation\"}},\"id\":\"4401\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_color\":\"#b2df8a\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4440\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"4435\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"4439\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4440\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4441\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4443\",\"type\":\"CDSView\"}},\"id\":\"4442\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"4402\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"4436\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4441\",\"type\":\"Line\"},{\"attributes\":{\"label\":{\"value\":\"2023\"},\"renderers\":[{\"id\":\"4458\",\"type\":\"GlyphRenderer\"}]},\"id\":\"4472\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"4403\",\"type\":\"ResetTool\"},{\"attributes\":{\"label\":{\"value\":\"2020\"},\"renderers\":[{\"id\":\"4428\",\"type\":\"GlyphRenderer\"}]},\"id\":\"4438\",\"type\":\"LegendItem\"},{\"attributes\":{\"text\":\"Several years of the seasonal component\"},\"id\":\"4379\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"4439\",\"type\":\"ColumnDataSource\"}},\"id\":\"4443\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"4404\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null},\"id\":\"4381\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"4452\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"4723\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null},\"id\":\"4383\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"4451\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"2019\"},\"renderers\":[{\"id\":\"4415\",\"type\":\"GlyphRenderer\"}]},\"id\":\"4424\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"4385\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"4387\",\"type\":\"LinearScale\"},{\"attributes\":{\"label\":{\"value\":\"2021\"},\"renderers\":[{\"id\":\"4442\",\"type\":\"GlyphRenderer\"}]},\"id\":\"4454\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"4419\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":\"#fb9a99\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4474\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"4399\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"4422\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"Month\",\"formatter\":{\"id\":\"4419\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"4390\",\"type\":\"BasicTicker\"}},\"id\":\"4389\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAA8D8+puhtvEH1P3tM0dt4g/o/uPK5STXF/z97TNHbeIMCQJqfxRJXJAVAuPK5STXFB0DXRa6AE2YKQPaYorfxBg1AFeyW7s+nD0Can8USVyQRQCrJPy7GdBJAuPK5STXFE0BIHDRlpBUVQNdFroATZhZAZ28onIK2F0D2mKK38QYZQIbCHNNgVxpAFeyW7s+nG0CkFREKP/gcQDQ/iyWuSB5Aw2gFQR2ZH0AqyT8uxnQgQPHd/Lv9HCFAuPK5STXFIUCAB3fXbG0iQEgcNGWkFSNAEDHx8tu9I0DXRa6AE2YkQJ9aaw5LDiVAZ28onIK2JUAvhOUpul4mQPaYorfxBidAvq1fRSmvJ0CGwhzTYFcoQE3X2WCY/yhAFeyW7s+nKUA=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"CZkEiALXysDn4A8ScL7EwGymLg7ZJb7AGyl299NYtMCbQNfvZzGpwMUl7UEz8JzADlHG1jbHkcAwExTFeBeRwIrBp+mMjprA1zmhdletpsCv/wApSwuywMiDo3EyUbrA5ptjN6jQwcDHYZRBgrPGwLVW6P7NhcvAI2Ra6KMA0MAr8EDcQvXRwEXGmmbvitPASKggK5m11MDBVBU2M3TVwABl7D8u0dXA+l9cXuvh1cDeqxmbxcTVwIKydXNYndXASpFIJvaO1cAgS0yK1bXVwErAzTQzINbAk4SWySfJ1sDJ9NN0+5bXwFgkKZgZXtjA24CMtZLo2MDFpk7etgDZwBww4wJEfNjAq2u9TVdF18DmmcOH7V7VwKhfnuIP5NLATWQb8FUC0MA=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"4490\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4489\",\"type\":\"UnionRenderers\"}},\"id\":\"4455\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAA8D8+puhtvEH1P3tM0dt4g/o/uPK5STXF/z97TNHbeIMCQJqfxRJXJAVAuPK5STXFB0DXRa6AE2YKQPaYorfxBg1AFeyW7s+nD0Can8USVyQRQCrJPy7GdBJAuPK5STXFE0BIHDRlpBUVQNdFroATZhZAZ28onIK2F0D2mKK38QYZQIbCHNNgVxpAFeyW7s+nG0CkFREKP/gcQDQ/iyWuSB5Aw2gFQR2ZH0AqyT8uxnQgQPHd/Lv9HCFAuPK5STXFIUCAB3fXbG0iQEgcNGWkFSNAEDHx8tu9I0DXRa6AE2YkQJ9aaw5LDiVAZ28onIK2JUAvhOUpul4mQPaYorfxBidAvq1fRSmvJ0CGwhzTYFcoQE3X2WCY/yhAFeyW7s+nKUA=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"dE4ilTQGw8COSDNhyAK7wElXv3M4qLHAY/3u6JLppMCZP0ZFhNSWwLWdbpiDe4zAMAYhwpgekMAxDD1BkwWcwLXy2bTrgKjAC4GwGrFps8D66aaYTQa8wLccEKhOxcLAlLAkcvmvx8C9bElrPXjMwKJbp03dbNDAyFMXxBtO0sAATqHrJczTwHLJrbhv3dTAujaiRaqD1cCE8Gp+BszVwHv2n8xZztXAFN2b/L+q1cBfFv7Ra4XVwKwtbnu3gNXAbvf8Jyi21cAS8QooyS/WwBNO6hSx49bA5iS+0mGz18BbObWt5m/YwFFABe1H4tjASUcFKY/W2MB+SBV0rybYwJ6eMmqQwtbAQS5wJEyz1MBCFpb4HBnSwKarmWT4Sc7A3mqj/QogyMA=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"4436\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4435\",\"type\":\"UnionRenderers\"}},\"id\":\"4412\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAA8D8+puhtvEH1P3tM0dt4g/o/uPK5STXF/z97TNHbeIMCQJqfxRJXJAVAuPK5STXFB0DXRa6AE2YKQPaYorfxBg1AFeyW7s+nD0Can8USVyQRQCrJPy7GdBJAuPK5STXFE0BIHDRlpBUVQNdFroATZhZAZ28onIK2F0D2mKK38QYZQIbCHNNgVxpAFeyW7s+nG0CkFREKP/gcQDQ/iyWuSB5Aw2gFQR2ZH0AqyT8uxnQgQPHd/Lv9HCFAuPK5STXFIUCAB3fXbG0iQEgcNGWkFSNAEDHx8tu9I0DXRa6AE2YkQJ9aaw5LDiVAZ28onIK2JUAvhOUpul4mQPaYorfxBidAvq1fRSmvJ0CGwhzTYFcoQE3X2WCY/yhAFeyW7s+nKUA=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"yCqcgD14zsAMbPFBp1LIwFXPIwPgXsLARUXGo1IAusDYIOx/wAmxwApjaLGkkqTAyIgLvV8PmMAcMpZQymKRwOGgFRGiFpXAt/lBW/ZQocC8ngvtk36swBfup6DOqbXASjQzJUdtvsDfqNSs6P3DwG7BxiRg38jAcepeCkyRzcB72sG/x+jQwKHG2kaOtdLAE3hLPTEd1MCKPs1dRRjVwKHeQy2sqtXAnC/lT6fj1cCDeFOEvdzVwEYH6zUMt9XADHDsLMOW1cDDFZ6H9ZzVwHUXhbSU4NXAGMKg5xRo1sBaXoFUkiXXwFtw+OwM99fAlq/xI2ar2MA57DqWdAvZwHS6J24y5djAXzTBG0YW2MAVG7daPZPWwBz369jHadTA/Z7UAbq90cA=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"4724\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4723\",\"type\":\"UnionRenderers\"}},\"id\":\"4473\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"4390\",\"type\":\"BasicTicker\"},{\"attributes\":{\"items\":[{\"id\":\"4424\",\"type\":\"LegendItem\"},{\"id\":\"4438\",\"type\":\"LegendItem\"},{\"id\":\"4454\",\"type\":\"LegendItem\"},{\"id\":\"4472\",\"type\":\"LegendItem\"},{\"id\":\"4492\",\"type\":\"LegendItem\"}],\"location\":\"bottom_left\"},\"id\":\"4423\",\"type\":\"Legend\"},{\"attributes\":{\"data_source\":{\"id\":\"4473\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4474\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4475\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4477\",\"type\":\"CDSView\"}},\"id\":\"4476\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"4412\",\"type\":\"ColumnDataSource\"}},\"id\":\"4416\",\"type\":\"CDSView\"},{\"attributes\":{\"ticker\":{\"id\":\"4390\",\"type\":\"BasicTicker\"}},\"id\":\"4393\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"4421\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"4489\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"\\u0394 Revenue\",\"formatter\":{\"id\":\"4421\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"4395\",\"type\":\"BasicTicker\"}},\"id\":\"4394\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"4473\",\"type\":\"ColumnDataSource\"}},\"id\":\"4477\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"4395\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":\"#a6cee3\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4413\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4457\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"4425\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4426\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4427\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4429\",\"type\":\"CDSView\"}},\"id\":\"4428\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#33a02c\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4456\",\"type\":\"Line\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"4395\",\"type\":\"BasicTicker\"}},\"id\":\"4398\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4475\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"4412\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4413\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4414\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4416\",\"type\":\"CDSView\"}},\"id\":\"4415\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4427\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"4490\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"4455\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"4456\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"4457\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"4459\",\"type\":\"CDSView\"}},\"id\":\"4458\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4414\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#1f78b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"4426\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"4724\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAA8D8+puhtvEH1P3tM0dt4g/o/uPK5STXF/z97TNHbeIMCQJqfxRJXJAVAuPK5STXFB0DXRa6AE2YKQPaYorfxBg1AFeyW7s+nD0Can8USVyQRQCrJPy7GdBJAuPK5STXFE0BIHDRlpBUVQNdFroATZhZAZ28onIK2F0D2mKK38QYZQIbCHNNgVxpAFeyW7s+nG0CkFREKP/gcQDQ/iyWuSB5Aw2gFQR2ZH0AqyT8uxnQgQPHd/Lv9HCFAuPK5STXFIUCAB3fXbG0iQEgcNGWkFSNAEDHx8tu9I0DXRa6AE2YkQJ9aaw5LDiVAZ28onIK2JUAvhOUpul4mQPaYorfxBidAvq1fRSmvJ0CGwhzTYFcoQE3X2WCY/yhAFeyW7s+nKUA=\",\"dtype\":\"float64\",\"shape\":[37]},\"y\":{\"__ndarray__\":\"Fvnh6FkWxcBaB/ZrybW+wBd3tDgvu7TAs7bvtHqIqcDOt68mjq6cwLcSm5GWj5DAhdPO4MPgjcDZuKh7c4qXwBi4+xrNy6TAZ5Js3f70sMBuwE672iG5wMnd4TN0M8HACf8J//4XxsBNXsHJ2vLKwEFm/oXYfM/AskHY8ZG80cB1qfVqI13TwDZMqFMIk9TA/CgB3htc1cBucW1fvMHVwPc1RIJa2NXApgapSKi91cAAJPmACpXVwBMbohY1gtXA6qSL+2mi1cB5FeamhgXWwMgVlG6aqNbALTFX5dRz18A0IktNBj3YwKMH2ArBztjAcC3orsXy2MD7gjV+Rn3YwAs+ecktVtfAYvazdBp+1cBPMJxfCw7TwKwWkA0/MtDAhOAEQSVEysA=\",\"dtype\":\"float64\",\"shape\":[37]}},\"selected\":{\"id\":\"4452\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4451\",\"type\":\"UnionRenderers\"}},\"id\":\"4425\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"4469\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"label\":{\"value\":\"2025\"},\"renderers\":[{\"id\":\"4476\",\"type\":\"GlyphRenderer\"}]},\"id\":\"4492\",\"type\":\"LegendItem\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"4399\",\"type\":\"PanTool\"},{\"id\":\"4400\",\"type\":\"WheelZoomTool\"},{\"id\":\"4401\",\"type\":\"BoxZoomTool\"},{\"id\":\"4402\",\"type\":\"SaveTool\"},{\"id\":\"4403\",\"type\":\"ResetTool\"},{\"id\":\"4404\",\"type\":\"HelpTool\"}]},\"id\":\"4405\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"4455\",\"type\":\"ColumnDataSource\"}},\"id\":\"4459\",\"type\":\"CDSView\"}],\"root_ids\":[\"4378\"]},\"title\":\"Bokeh Application\",\"version\":\"1.3.4\"}};\n",
+ " var render_items = [{\"docid\":\"ecad61b0-e4d8-450d-8eaa-1a75620eaf12\",\"roots\":{\"4378\":\"6abe4e2f-7d74-496c-8045-f41597152f23\"}}];\n",
+ " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
+ "\n",
+ " }\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " } else {\n",
+ " var attempts = 0;\n",
+ " var timer = setInterval(function(root) {\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " attempts++;\n",
+ " if (attempts > 100) {\n",
+ " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " }, 10, root)\n",
+ " }\n",
+ "})(window);"
+ ],
+ "application/vnd.bokehjs_exec.v0+json": ""
+ },
+ "metadata": {
+ "application/vnd.bokehjs_exec.v0+json": {
+ "id": "4378"
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# plot several years \n",
+ "\n",
+ "p = figure(title=\"Several years of the seasonal component\",\n",
+ " plot_width=550, plot_height=350)\n",
+ "p.yaxis.axis_label = 'Δ Revenue'\n",
+ "p.xaxis.axis_label = 'Month'\n",
+ "\n",
+ "colors = brewer['Paired'][5]\n",
+ "years = [\"2019\", \"2020\", \"2021\", \"2023\", \"2025\"]\n",
+ "\n",
+ "for i, year in enumerate(years):\n",
+ " dates = pd.date_range(start=\"1/1/\"+year, end=\"12/31/\"+year, freq=\"10D\")\n",
+ " tnew = dates_to_idx(dates)[:,None]\n",
+ "\n",
+ " print(\"Predicting year\", year)\n",
+ " mu, var = gp_seasonal.predict(tnew, point=mp, diag=True,\n",
+ " given={\"gp\": gp, \"X\": t, \"y\": y, \"noise\": cov_noise})\n",
+ " mu_pred = mu*std_rev\n",
+ "\n",
+ " # plot mean\n",
+ " x = np.asarray((dates - dates[0])/pd.Timedelta(1, \"M\")) + 1\n",
+ " p.line(x, mu_pred,\n",
+ " line_width=1, line_color=colors[i], legend=year)\n",
+ "\n",
+ "p.legend.location = \"bottom_left\"\n",
+ "show(p)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Forecast into future years"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Sampling gp predictions ...\n"
+ ]
+ }
+ ],
+ "source": [
+ "dates = pd.date_range(start=\"01/01/2016\", end=\"12/31/2021\", freq=\"10D\")\n",
+ "tnew = dates_to_idx(dates)[:,None]\n",
+ "\n",
+ "print(\"Sampling gp predictions ...\")\n",
+ "mu_pred, cov_pred = gp.predict(tnew, point=mp)\n",
+ "\n",
+ "# draw samples, and rescale\n",
+ "n_samples = 2000\n",
+ "samples = pm.MvNormal.dist(mu=mu_pred, cov=cov_pred).random(size=n_samples)\n",
+ "samples = samples * std_rev + first_rev"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data_total = pd.concat([data_early, data_later], axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "(function(root) {\n",
+ " function embed_document(root) {\n",
+ " \n",
+ " var docs_json = {\"1219d239-026d-42b4-bf76-854f0536e960\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"3908\",\"type\":\"DatetimeAxis\"}],\"center\":[{\"id\":\"3912\",\"type\":\"Grid\"},{\"id\":\"3917\",\"type\":\"Grid\"},{\"id\":\"3955\",\"type\":\"Legend\"},{\"id\":\"3998\",\"type\":\"Span\"}],\"left\":[{\"id\":\"3913\",\"type\":\"LinearAxis\"}],\"plot_height\":400,\"plot_width\":700,\"renderers\":[{\"id\":\"3934\",\"type\":\"GlyphRenderer\"},{\"id\":\"3960\",\"type\":\"GlyphRenderer\"},{\"id\":\"3965\",\"type\":\"GlyphRenderer\"},{\"id\":\"3970\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"3936\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"3924\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"3900\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"3904\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"3902\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"3906\",\"type\":\"LinearScale\"}},\"id\":\"3899\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"3947\",\"type\":\"DaysTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"3931\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3932\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3933\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"3935\",\"type\":\"CDSView\"}},\"id\":\"3934\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"3950\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"3942\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"3951\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"3957\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3958\",\"type\":\"Patch\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3959\",\"type\":\"Patch\"},\"selection_glyph\":null,\"view\":{\"id\":\"3961\",\"type\":\"CDSView\"}},\"id\":\"3960\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3933\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"3918\",\"type\":\"PanTool\"},{\"id\":\"3919\",\"type\":\"WheelZoomTool\"},{\"id\":\"3920\",\"type\":\"BoxZoomTool\"},{\"id\":\"3921\",\"type\":\"SaveTool\"},{\"id\":\"3922\",\"type\":\"ResetTool\"},{\"id\":\"3923\",\"type\":\"HelpTool\"}]},\"id\":\"3924\",\"type\":\"Toolbar\"},{\"attributes\":{\"data_source\":{\"id\":\"3962\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3963\",\"type\":\"MultiLine\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3964\",\"type\":\"MultiLine\"},\"selection_glyph\":null,\"view\":{\"id\":\"3966\",\"type\":\"CDSView\"}},\"id\":\"3965\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3918\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"4214\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AABAqk8pdUIAAAAxpTJ1QgAAQIOfPHVCAADAb0dGdUIAAADCQVB1QgAAgK7pWXVCAADAAORjdUIAAABT3m11QgAAgD+Gd3VCAADAkYCBdUIAAEB+KIt1QgAAgNAilXVCAADAIh2fdUIAAMBDIKh1QgAAAJYasnVCAACAgsK7dUIAAMDUvMV1QgAAQMFkz3VCAACAE1/ZdUIAAMBlWeN1QgAAQFIB7XVCAACApPv2dUIAAACRowB2QgAAQOOdCnZCAACANZgUdkIAAIBWmx12QgAAwKiVJ3ZCAABAlT0xdkIAAIDnNzt2QgAAANTfRHZCAABAJtpOdkIAAIB41Fh2QgAAAGV8YnZCAABAt3ZsdkIAAMCjHnZ2QgAAAPYYgHZCAABASBOKdkIAAEBIE4p2QgAAQGkWk3ZCAACAuxCddkIAAACouKZ2QgAAQPqysHZCAADA5lq6dkIAAAA5VcR2QgAAQItPznZC\",\"dtype\":\"float64\",\"shape\":[45]},\"y\":{\"__ndarray__\":\"VCReRZI35UA21IukxtrkQONUSU4ll+JAf2q8dIPk3ECnJYJa0q7VQJ7vp8aDctZApQFtGpBE1UB0PC/H84vUQH2GXQG6I9JAinumuAey0kBVVVVVtWLZQJ+808nDPeNAWJF4FWkC40CYmZmZP+PlQAWQVABpCOJAtvP91Ixq4EAPZ/hwdhjVQByhjN4O0dZA2ceFfRw/0UDhMQ8ec4nXQLdlrY5pTdVAdIU0V6iR0kBnHz7DNqfZQBj2cWEPu99AF9JcIeXd40AvIDaV7oDlQARIKoDUY+FA6t8IZSTM20DVf1v9xzvYQEZvy1rNCtVA2qG6HYr60kAhzvDhTMjVQNyyVsfMjtBA5BW6rcQgxkBlZmZmlovYQBz0u0G/JOBABrRpQBvl4kAGtGlAG+XiQHcBsam2i+RATifvdKrY4kA2XrpJyDzgQLixahub7tdAFMrobek71kAaGoehsS/XQOtRuB5RGOBA\",\"dtype\":\"float64\",\"shape\":[45]}},\"selected\":{\"id\":\"4214\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"4213\",\"type\":\"UnionRenderers\"}},\"id\":\"3967\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3919\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"3954\",\"type\":\"BoxAnnotation\"}},\"id\":\"3920\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"3967\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"3968\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3969\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"3971\",\"type\":\"CDSView\"}},\"id\":\"3970\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"firebrick\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3932\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3921\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"firebrick\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"3963\",\"type\":\"MultiLine\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"3948\",\"type\":\"DaysTicker\"},{\"attributes\":{\"callback\":null,\"data\":{\"xs\":[[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0],[1451606400000.0,1452470400000.0,1453334400000.0,1454198400000.0,1455062400000.0,1455926400000.0,1456790400000.0,1457654400000.0,1458518400000.0,1459382400000.0,1460246400000.0,1461110400000.0,1461974400000.0,1462838400000.0,1463702400000.0,1464566400000.0,1465430400000.0,1466294400000.0,1467158400000.0,1468022400000.0,1468886400000.0,1469750400000.0,1470614400000.0,1471478400000.0,1472342400000.0,1473206400000.0,1474070400000.0,1474934400000.0,1475798400000.0,1476662400000.0,1477526400000.0,1478390400000.0,1479254400000.0,1480118400000.0,1480982400000.0,1481846400000.0,1482710400000.0,1483574400000.0,1484438400000.0,1485302400000.0,1486166400000.0,1487030400000.0,1487894400000.0,1488758400000.0,1489622400000.0,1490486400000.0,1491350400000.0,1492214400000.0,1493078400000.0,1493942400000.0,1494806400000.0,1495670400000.0,1496534400000.0,1497398400000.0,1498262400000.0,1499126400000.0,1499990400000.0,1500854400000.0,1501718400000.0,1502582400000.0,1503446400000.0,1504310400000.0,1505174400000.0,1506038400000.0,1506902400000.0,1507766400000.0,1508630400000.0,1509494400000.0,1510358400000.0,1511222400000.0,1512086400000.0,1512950400000.0,1513814400000.0,1514678400000.0,1515542400000.0,1516406400000.0,1517270400000.0,1518134400000.0,1518998400000.0,1519862400000.0,1520726400000.0,1521590400000.0,1522454400000.0,1523318400000.0,1524182400000.0,1525046400000.0,1525910400000.0,1526774400000.0,1527638400000.0,1528502400000.0,1529366400000.0,1530230400000.0,1531094400000.0,1531958400000.0,1532822400000.0,1533686400000.0,1534550400000.0,1535414400000.0,1536278400000.0,1537142400000.0,1538006400000.0,1538870400000.0,1539734400000.0,1540598400000.0,1541462400000.0,1542326400000.0,1543190400000.0,1544054400000.0,1544918400000.0,1545782400000.0,1546646400000.0,1547510400000.0,1548374400000.0,1549238400000.0,1550102400000.0,1550966400000.0,1551830400000.0,1552694400000.0,1553558400000.0,1554422400000.0,1555286400000.0,1556150400000.0,1557014400000.0,1557878400000.0,1558742400000.0,1559606400000.0,1560470400000.0,1561334400000.0,1562198400000.0,1563062400000.0,1563926400000.0,1564790400000.0,1565654400000.0,1566518400000.0,1567382400000.0,1568246400000.0,1569110400000.0,1569974400000.0,1570838400000.0,1571702400000.0,1572566400000.0,1573430400000.0,1574294400000.0,1575158400000.0,1576022400000.0,1576886400000.0,1577750400000.0,1578614400000.0,1579478400000.0,1580342400000.0,1581206400000.0,1582070400000.0,1582934400000.0,1583798400000.0,1584662400000.0,1585526400000.0,1586390400000.0,1587254400000.0,1588118400000.0,1588982400000.0,1589846400000.0,1590710400000.0,1591574400000.0,1592438400000.0,1593302400000.0,1594166400000.0,1595030400000.0,1595894400000.0,1596758400000.0,1597622400000.0,1598486400000.0,1599350400000.0,1600214400000.0,1601078400000.0,1601942400000.0,1602806400000.0,1603670400000.0,1604534400000.0,1605398400000.0,1606262400000.0,1607126400000.0,1607990400000.0,1608854400000.0,1609718400000.0,1610582400000.0,1611446400000.0,1612310400000.0,1613174400000.0,1614038400000.0,1614902400000.0,1615766400000.0,1616630400000.0,1617494400000.0,1618358400000.0,1619222400000.0,1620086400000.0,1620950400000.0,1621814400000.0,1622678400000.0,1623542400000.0,1624406400000.0,1625270400000.0,1626134400000.0,1626998400000.0,1627862400000.0,1628726400000.0,1629590400000.0,1630454400000.0,1631318400000.0,1632182400000.0,1633046400000.0,1633910400000.0,1634774400000.0,1635638400000.0,1636502400000.0,1637366400000.0,1638230400000.0,1639094400000.0,1639958400000.0,1640822400000.0]],\"ys\":[{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"iv/wkafT4kAGSuSs6wfkQJRpYvtO5ORAlVjpo3Bh5UDo+YCKuHrlQIQTrMCvOeVAY5hZTwOz5EA5+dZdXvPjQHwKrX9iCeNA2covdln84UD2ypMUXtPgQFAHwrmxOt9ALGCnqafA3EDwZu0hi1PaQHpr4J+SINhAsFOZOkRM1kCygABsvvrUQNh68n+7OtRAVWTtD5oM1ECyQWBbSFfUQCA2vJuo6dRA1Y2/KJSA1UCQrkHPpOnVQHAM/0w48NVA7KL2I5yI1UBiyKNlw6/UQHzZS+bBlNNAnfSq7+560kDP6AtPArfRQL777QNoj9FAfMlR4+hA0kCA5p6i9L7TQCsOS0QuB9ZAv0bIFY3e2EDCLEx7oxjcQJBI552Mb99AwP1PGxhT4UCJ0LFRacTiQEHctoGQ7ONAY+7uR/m55EBXFEFPkiPlQFN8Z9wDMOVAbs8TmBLl5EAE0Q4lt1TkQCgELUU+jeNASQl7e3Oe4kCzAc4qDY3hQGE4BnkaZeBAKJ5SLtpT3kC0k1mgbN7bQADWYOUvd9lAS8KS/LtY10BI2CJHcp3VQN8VHzPlYNRAkcWxVy3D00CcqCTBJK/TQG8aZp+cCdRAOyufl+Ce1EB2+zp1AjrVQPF1jqwgmNVATjvtKruS1UCZDXus5hDVQNt/DxP/KNRATeg9ingK00BaGz5wUPXRQKFLwH5KR9FAThR+jmU60UDN3DxVggPSQKKOd8IHotNAN77cdw361UAodQzZBOXYQOLiNQDLJdxAzhl3zbp030D43lR4RVDhQNE2Lqw9teJAEME7V5zR40CiZlkIGZHkQOEdiGIL7eRAsV5cf47q5EC6RzWUV5bkQAxCZz02/eNAl8ejggoy40D85yc+WT/iQLM9cz9KLuFAbbRMO0MD4EAAAraNyo7dQCrD8l7mHdtAWWN/AjTL2EBbxfRwcb/WQCECoznaHNVAHiqBn+gE1ED2D61Zd4nTQLgJgp2JkNNAGrMnwwkF1EB57H1gaqPUQHWbQt2oQtVAhnow2fCY1UDOjeRTyIjVQNLsUpNA9tRAgfAy8rIF1EAG+AdYKefSQCxwTiOp5NFAMgQKtlxH0UC2v6PFdWHRQOx9A7XnUNJAdZ7WN3wO1ECRa3JaIobWQFQUD05RfdlAHAld4rPG3ED/pzPV9w7gQCwMBxEaoOFAwrdMByT+4kA8i4m7Ng/kQP8F9XwZxORAL9kkWsgW5UDRs7E0FQvlQHSpOqcvr+RAV7GO3hAW5EBPhXetq0vjQIr29aqfVuJAOwAyhvJC4UA88Zalmx7gQAuSuRUV091AGvm8Zapw20CRKMqW1jTZQI38/dDKRddANrEExwzM1UAtyzvBCd7UQBQ9jl88hNRAbJ69mQqx1ECOOZV0pT3VQCn/rYJR9NVA5QTE10yU1kDLETi5eefWQPT6OqyEy9ZAy5GJTII81kDcwnvZeEbVQHzk5ZuUL9RAnnSdpyU000BoIWJZWrnSQJo3Xtp++dJAfqKJLxIH1EBeDKiW5u7VQH4F7IK2fdhAdoM4+2WK20DCibYMN9reQBgGPf0lFuFAEsl8oTei4kCkD49scvjjQH1YcluU/eRATISboLqj5UC6cl15AenlQCP3iHh51eVAlJJoAwFy5UDT/MeWFc7kQAHJXKrL/ONAmMVrOKsE40A3Jp6ba/HhQGNevLgtx+BA8xUn+9wn30Dods+xEcXcQOylp+nxmNpAiM6pKX+62EBR8CYSfF3XQLmNXWjTjdZA0BcVaxVK1kAQQU1VDY3WQDGLsLO5INdA6Ec0nQjZ10DIk26B3WnYQGkTc96KrNhAL99F9Wp32EAWMrG3/8nXQDYjtnhZv9ZAFBz1idWa1UB4EK6G06zUQOji/cejO9RA0A97cSeQ1EBeWh1DQ7rVQPuAxW7FqNdAZ0ss8Hw+2kB5MRqqf07dQGoRFji5R+BAl5hnpx/n4UDlT9STkmfjQDc8I+pGquRArraf1zqe5UAOuqmyIy/mQAvYVWFzYeZAdKdeIlI55kC9cP5hOcblQOrPRt7OF+VAA926w4I75ED+zyk8mDrjQDp6UUo+G+JA7w3tvhnp4EBPaJAGQmDfQFIJ9DDm/txAqsqkl5TW2kDFGRx37wbZQDdxnwNMt9dAUe+hBtb41kCYjVAqssbWQEssljlpFtdAdGkB1oev10BgE4hehWDYQEBnvSjD5NhAXZ36MhsK2UCZ9A7/WbfYQN2kY5B579dAUz/NjPvS1kCIk6tzSaHVQGx8MAIVsdRAuFETG71W1EAJbUTj3rbUQIYP7q+I69VAzNo6HP3x10B+YNFik5TaQHTG2gQ7od1A9F8vGRdv4EA=\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]}]},\"selected\":{\"id\":\"3995\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3994\",\"type\":\"UnionRenderers\"}},\"id\":\"3962\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3922\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":0.5},\"xs\":{\"field\":\"xs\"},\"ys\":{\"field\":\"ys\"}},\"id\":\"3964\",\"type\":\"MultiLine\"},{\"attributes\":{},\"id\":\"3923\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[220]}},\"selected\":{\"id\":\"3991\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3990\",\"type\":\"UnionRenderers\"}},\"id\":\"3931\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"3962\",\"type\":\"ColumnDataSource\"}},\"id\":\"3966\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"3900\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3959\",\"type\":\"Patch\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3936\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"3931\",\"type\":\"ColumnDataSource\"}},\"id\":\"3935\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"3957\",\"type\":\"ColumnDataSource\"}},\"id\":\"3961\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"3902\",\"type\":\"DataRange1d\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"3949\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"3944\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"3952\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"3904\",\"type\":\"LinearScale\"},{\"attributes\":{\"days\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},\"id\":\"3945\",\"type\":\"DaysTicker\"},{\"attributes\":{\"label\":{\"value\":\"Observed data\"},\"renderers\":[{\"id\":\"3970\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3997\",\"type\":\"LegendItem\"},{\"attributes\":{\"fill_alpha\":0.6,\"fill_color\":\"firebrick\",\"line_alpha\":0.6,\"line_color\":\"white\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3958\",\"type\":\"Patch\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AADAvacfdUIAAEC33yJ1QgAAwLAXJnVCAABAqk8pdUIAAMCjhyx1QgAAQJ2/L3VCAADAlvcydUIAAECQLzZ1QgAAwIlnOXVCAABAg588dUIAAMB81z91QgAAQHYPQ3VCAADAb0dGdUIAAEBpf0l1QgAAwGK3THVCAABAXO9PdUIAAMBVJ1N1QgAAQE9fVnVCAADASJdZdUIAAEBCz1x1QgAAwDsHYHVCAABANT9jdUIAAMAud2Z1QgAAQCivaXVCAADAIedsdUIAAEAbH3B1QgAAwBRXc3VCAABADo92dUIAAMAHx3l1QgAAQAH/fHVCAADA+jaAdUIAAED0boN1QgAAwO2mhnVCAABA596JdUIAAMDgFo11QgAAQNpOkHVCAADA04aTdUIAAEDNvpZ1QgAAwMb2mXVCAABAwC6ddUIAAMC5ZqB1QgAAQLOeo3VCAADArNamdUIAAECmDqp1QgAAwJ9GrXVCAABAmX6wdUIAAMCStrN1QgAAQIzutnVCAADAhSa6dUIAAEB/Xr11QgAAwHiWwHVCAABAcs7DdUIAAMBrBsd1QgAAQGU+ynVCAADAXnbNdUIAAEBYrtB1QgAAwFHm03VCAABASx7XdUIAAMBEVtp1QgAAQD6O3XVCAADAN8bgdUIAAEAx/uN1QgAAwCo253VCAABAJG7qdUIAAMAdpu11QgAAQBfe8HVCAADAEBb0dUIAAEAKTvd1QgAAwAOG+nVCAABA/b39dUIAAMD29QB2QgAAQPAtBHZCAADA6WUHdkIAAEDjnQp2QgAAwNzVDXZCAABA1g0RdkIAAMDPRRR2QgAAQMl9F3ZCAADAwrUadkIAAEC87R12QgAAwLUlIXZCAABAr10kdkIAAMColSd2QgAAQKLNKnZCAADAmwUudkIAAECVPTF2QgAAwI51NHZCAABAiK03dkIAAMCB5Tp2QgAAQHsdPnZCAADAdFVBdkIAAEBujUR2QgAAwGfFR3ZCAABAYf1KdkIAAMBaNU52QgAAQFRtUXZCAADATaVUdkIAAEBH3Vd2QgAAwEAVW3ZCAABAOk1edkIAAMAzhWF2QgAAQC29ZHZCAADAJvVndkIAAEAgLWt2QgAAwBllbnZCAABAE51xdkIAAMAM1XR2QgAAQAYNeHZCAADA/0R7dkIAAED5fH52QgAAwPK0gXZCAABA7OyEdkIAAMDlJIh2QgAAQN9ci3ZCAADA2JSOdkIAAEDSzJF2QgAAwMsElXZCAABAxTyYdkIAAMC+dJt2QgAAQLisnnZCAADAseShdkIAAECrHKV2QgAAwKRUqHZCAABAnoyrdkIAAMCXxK52QgAAQJH8sXZCAADAijS1dkIAAECEbLh2QgAAwH2ku3ZCAABAd9y+dkIAAMBwFMJ2QgAAQGpMxXZCAADAY4TIdkIAAEBdvMt2QgAAwFb0znZCAABAUCzSdkIAAMBJZNV2QgAAQEOc2HZCAADAPNTbdkIAAEA2DN92QgAAwC9E4nZCAABAKXzldkIAAMAitOh2QgAAQBzs63ZCAADAFSTvdkIAAEAPXPJ2QgAAwAiU9XZCAABAAsz4dkIAAMD7A/x2QgAAQPU7/3ZCAADA7nMCd0IAAEDoqwV3QgAAwOHjCHdCAABA2xsMd0IAAMDUUw93QgAAQM6LEndCAADAx8MVd0IAAEDB+xh3QgAAwLozHHdCAABAtGsfd0IAAMCtoyJ3QgAAQKfbJXdCAADAoBMpd0IAAECaSyx3QgAAwJODL3dCAABAjbsyd0IAAMCG8zV3QgAAQIArOXdCAADAeWM8d0IAAEBzmz93QgAAwGzTQndCAABAZgtGd0IAAMBfQ0l3QgAAQFl7THdCAADAUrNPd0IAAEBM61J3QgAAwEUjVndCAABAP1tZd0IAAMA4k1x3QgAAQDLLX3dCAADAKwNjd0IAAEAlO2Z3QgAAwB5zaXdCAABAGKtsd0IAAMAR4293QgAAQAsbc3dCAADABFN2d0IAAED+inl3QgAAwPfCfHdCAABA8fp/d0IAAMDqMoN3QgAAQORqhndCAADA3aKJd0IAAEDX2ox3QgAAwNASkHdCAABAykqTd0IAAMDDgpZ3QgAAQL26mXdCAADAtvKcd0IAAECwKqB3QgAAwKlio3dCAABAo5qmd0IAAMCc0ql3QgAAQJYKrXdCAADAj0Kwd0IAAECJerN3QgAAwIKytndCAABAfOq5d0IAAMB1Ir13QgAAQG9awHdCAADAaJLDd0IAAEBiysZ3QgAAwFsCyndCAABAVTrNd0IAAMBOctB3QgAAQEiq03dCAADAQeLWd0IAAEA7Gtp3QgAAwDRS3XdCAABALorgd0IAAEAuiuB3QgAAwDRS3XdCAABAOxrad0IAAMBB4tZ3QgAAQEiq03dCAADATnLQd0IAAEBVOs13QgAAwFsCyndCAABAYsrGd0IAAMBoksN3QgAAQG9awHdCAADAdSK9d0IAAEB86rl3QgAAwIKytndCAABAiXqzd0IAAMCPQrB3QgAAQJYKrXdCAADAnNKpd0IAAECjmqZ3QgAAwKlio3dCAABAsCqgd0IAAMC28px3QgAAQL26mXdCAADAw4KWd0IAAEDKSpN3QgAAwNASkHdCAABA19qMd0IAAMDdool3QgAAQORqhndCAADA6jKDd0IAAEDx+n93QgAAwPfCfHdCAABA/op5d0IAAMAEU3Z3QgAAQAsbc3dCAADAEeNvd0IAAEAYq2x3QgAAwB5zaXdCAABAJTtmd0IAAMArA2N3QgAAQDLLX3dCAADAOJNcd0IAAEA/W1l3QgAAwEUjVndCAABATOtSd0IAAMBSs093QgAAQFl7THdCAADAX0NJd0IAAEBmC0Z3QgAAwGzTQndCAABAc5s/d0IAAMB5Yzx3QgAAQIArOXdCAADAhvM1d0IAAECNuzJ3QgAAwJODL3dCAABAmkssd0IAAMCgEyl3QgAAQKfbJXdCAADAraMid0IAAEC0ax93QgAAwLozHHdCAABAwfsYd0IAAMDHwxV3QgAAQM6LEndCAADA1FMPd0IAAEDbGwx3QgAAwOHjCHdCAABA6KsFd0IAAMDucwJ3QgAAQPU7/3ZCAADA+wP8dkIAAEACzPh2QgAAwAiU9XZCAABAD1zydkIAAMAVJO92QgAAQBzs63ZCAADAIrTodkIAAEApfOV2QgAAwC9E4nZCAABANgzfdkIAAMA81Nt2QgAAQEOc2HZCAADASWTVdkIAAEBQLNJ2QgAAwFb0znZCAABAXbzLdkIAAMBjhMh2QgAAQGpMxXZCAADAcBTCdkIAAEB33L52QgAAwH2ku3ZCAABAhGy4dkIAAMCKNLV2QgAAQJH8sXZCAADAl8SudkIAAECejKt2QgAAwKRUqHZCAABAqxyldkIAAMCx5KF2QgAAQLisnnZCAADAvnSbdkIAAEDFPJh2QgAAwMsElXZCAABA0syRdkIAAMDYlI52QgAAQN9ci3ZCAADA5SSIdkIAAEDs7IR2QgAAwPK0gXZCAABA+Xx+dkIAAMD/RHt2QgAAQAYNeHZCAADADNV0dkIAAEATnXF2QgAAwBllbnZCAABAIC1rdkIAAMAm9Wd2QgAAQC29ZHZCAADAM4VhdkIAAEA6TV52QgAAwEAVW3ZCAABAR91XdkIAAMBNpVR2QgAAQFRtUXZCAADAWjVOdkIAAEBh/Up2QgAAwGfFR3ZCAABAbo1EdkIAAMB0VUF2QgAAQHsdPnZCAADAgeU6dkIAAECIrTd2QgAAwI51NHZCAABAlT0xdkIAAMCbBS52QgAAQKLNKnZCAADAqJUndkIAAECvXSR2QgAAwLUlIXZCAABAvO0ddkIAAMDCtRp2QgAAQMl9F3ZCAADAz0UUdkIAAEDWDRF2QgAAwNzVDXZCAABA450KdkIAAMDpZQd2QgAAQPAtBHZCAADA9vUAdkIAAED9vf11QgAAwAOG+nVCAABACk73dUIAAMAQFvR1QgAAQBfe8HVCAADAHabtdUIAAEAkbup1QgAAwCo253VCAABAMf7jdUIAAMA3xuB1QgAAQD6O3XVCAADARFbadUIAAEBLHtd1QgAAwFHm03VCAABAWK7QdUIAAMBeds11QgAAQGU+ynVCAADAawbHdUIAAEByzsN1QgAAwHiWwHVCAABAf169dUIAAMCFJrp1QgAAQIzutnVCAADAkrazdUIAAECZfrB1QgAAwJ9GrXVCAABApg6qdUIAAMCs1qZ1QgAAQLOeo3VCAADAuWagdUIAAEDALp11QgAAwMb2mXVCAABAzb6WdUIAAMDThpN1QgAAQNpOkHVCAADA4BaNdUIAAEDn3ol1QgAAwO2mhnVCAABA9G6DdUIAAMD6NoB1QgAAQAH/fHVCAADAB8d5dUIAAEAOj3Z1QgAAwBRXc3VCAABAGx9wdUIAAMAh52x1QgAAQCivaXVCAADALndmdUIAAEA1P2N1QgAAwDsHYHVCAABAQs9cdUIAAMBIl1l1QgAAQE9fVnVCAADAVSdTdUIAAEBc7091QgAAwGK3THVCAABAaX9JdUIAAMBvR0Z1QgAAQHYPQ3VCAADAfNc/dUIAAECDnzx1QgAAwIlnOXVCAABAkC82dUIAAMCW9zJ1QgAAQJ2/L3VCAADAo4csdUIAAECqTyl1QgAAwLAXJnVCAABAt98idUIAAMC9px91Qg==\",\"dtype\":\"float64\",\"shape\":[440]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[440]}},\"selected\":{\"id\":\"3993\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"3992\",\"type\":\"UnionRenderers\"}},\"id\":\"3957\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"4213\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3906\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3969\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"3995\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Date\",\"formatter\":{\"id\":\"3939\",\"type\":\"DatetimeTickFormatter\"},\"ticker\":{\"id\":\"3909\",\"type\":\"DatetimeTicker\"}},\"id\":\"3908\",\"type\":\"DatetimeAxis\"},{\"attributes\":{},\"id\":\"3992\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"3942\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3943\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3944\",\"type\":\"AdaptiveTicker\"},{\"id\":\"3945\",\"type\":\"DaysTicker\"},{\"id\":\"3946\",\"type\":\"DaysTicker\"},{\"id\":\"3947\",\"type\":\"DaysTicker\"},{\"id\":\"3948\",\"type\":\"DaysTicker\"},{\"id\":\"3949\",\"type\":\"MonthsTicker\"},{\"id\":\"3950\",\"type\":\"MonthsTicker\"},{\"id\":\"3951\",\"type\":\"MonthsTicker\"},{\"id\":\"3952\",\"type\":\"MonthsTicker\"},{\"id\":\"3953\",\"type\":\"YearsTicker\"}]},\"id\":\"3909\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"items\":[{\"id\":\"3956\",\"type\":\"LegendItem\"},{\"id\":\"3997\",\"type\":\"LegendItem\"}],\"location\":\"bottom_right\"},\"id\":\"3955\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"3990\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"3993\",\"type\":\"Selection\"},{\"attributes\":{\"ticker\":{\"id\":\"3909\",\"type\":\"DatetimeTicker\"}},\"id\":\"3912\",\"type\":\"Grid\"},{\"attributes\":{\"line_dash\":[6],\"location\":400},\"id\":\"3998\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"3991\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Revenue\",\"formatter\":{\"id\":\"3941\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"3914\",\"type\":\"BasicTicker\"}},\"id\":\"3913\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3954\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"3943\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"3968\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"3953\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"3914\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3939\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"Total fit\"},\"renderers\":[{\"id\":\"3934\",\"type\":\"GlyphRenderer\"}]},\"id\":\"3956\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"3994\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"3946\",\"type\":\"DaysTicker\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"3914\",\"type\":\"BasicTicker\"}},\"id\":\"3917\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"3967\",\"type\":\"ColumnDataSource\"}},\"id\":\"3971\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"3941\",\"type\":\"BasicTickFormatter\"}],\"root_ids\":[\"3899\"]},\"title\":\"Bokeh Application\",\"version\":\"1.3.4\"}};\n",
+ " var render_items = [{\"docid\":\"1219d239-026d-42b4-bf76-854f0536e960\",\"roots\":{\"3899\":\"ccedd4d4-1f8e-411a-83f7-7e22c75c8f08\"}}];\n",
+ " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
+ "\n",
+ " }\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " } else {\n",
+ " var attempts = 0;\n",
+ " var timer = setInterval(function(root) {\n",
+ " if (root.Bokeh !== undefined) {\n",
+ " embed_document(root);\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " attempts++;\n",
+ " if (attempts > 100) {\n",
+ " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
+ " clearInterval(timer);\n",
+ " }\n",
+ " }, 10, root)\n",
+ " }\n",
+ "})(window);"
+ ],
+ "application/vnd.bokehjs_exec.v0+json": ""
+ },
+ "metadata": {
+ "application/vnd.bokehjs_exec.v0+json": {
+ "id": "3899"
+ }
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "### make plot\n",
+ "p = figure(x_axis_type='datetime', plot_width=700, plot_height=400)\n",
+ "p.yaxis.axis_label = 'Revenue'\n",
+ "p.xaxis.axis_label = 'Date'\n",
+ "\n",
+ "### plot mean and 2σ region of total prediction\n",
+ "# scale mean and var\n",
+ "mu_pred_sc = mu_pred * std_rev + first_rev\n",
+ "sd_pred_sc = np.sqrt(np.diag(cov_pred) * std_rev**2 )\n",
+ "\n",
+ "upper = mu_pred_sc + 2*sd_pred_sc\n",
+ "lower = mu_pred_sc - 2*sd_pred_sc\n",
+ "band_x = np.append(dates, dates[::-1])\n",
+ "band_y = np.append(lower, upper[::-1])\n",
+ "\n",
+ "p.line(dates, mu_pred_sc,\n",
+ " line_width=2, line_color=\"firebrick\", legend=\"Total fit\")\n",
+ "p.patch(band_x, band_y,\n",
+ " color=\"firebrick\", alpha=0.6, line_color=\"white\")\n",
+ "\n",
+ "# some predictions\n",
+ "idx = np.random.randint(0, samples.shape[0], 10)\n",
+ "p.multi_line([dates]*len(idx), [samples[i,:] for i in idx],\n",
+ " color=\"firebrick\", alpha=0.5, line_width=0.5)\n",
+ "# true value\n",
+ "#p.line(data_later.index, data_later['CO2'],\n",
+ "# line_width=2, line_color=\"black\", legend=\"Observed data\")\n",
+ "p.circle(data_total.index, data_total['REVENUE'],\n",
+ " color=\"black\", legend=\"Observed data\")\n",
+ "\n",
+ "ppm400 = Span(location=400,\n",
+ " dimension='width', line_color='black',\n",
+ " line_dash='dashed', line_width=1)\n",
+ "p.add_layout(ppm400)\n",
+ "p.legend.location = \"bottom_right\"\n",
+ "show(p)"
+ ]
+ },
+ {
+ "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.6.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}