{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Gaussian process hyperparameters by optimization\n", "\n", "[Data set download](https://s3.amazonaws.com/bebi103.caltech.edu/data/wolfenden_arrhenius.csv)\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "#| code-fold: true\n", "\n", "# Colab setup ------------------\n", "import os, shutil, sys, subprocess, urllib.request\n", "if \"google.colab\" in sys.modules:\n", " cmd = \"pip install --upgrade polars iqplot colorcet bebi103 arviz cmdstanpy watermark\"\n", " process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", " stdout, stderr = process.communicate()\n", " from cmdstanpy.install_cmdstan import latest_version\n", " cmdstan_version = latest_version()\n", " cmdstan_url = f\"https://github.com/stan-dev/cmdstan/releases/download/v{cmdstan_version}/\"\n", " fname = f\"colab-cmdstan-{cmdstan_version}.tgz\"\n", " urllib.request.urlretrieve(cmdstan_url + fname, fname)\n", " shutil.unpack_archive(fname)\n", " os.environ[\"CMDSTAN\"] = f\"./cmdstan-{cmdstan_version}\"\n", " data_path = \"https://s3.amazonaws.com/bebi103.caltech.edu/data/\"\n", "else:\n", " data_path = \"../data/\"\n", "# ------------------------------" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "'use strict';\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const 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", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const 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", " function drop(id) {\n", " const view = Bokeh.index.get_by_id(id)\n", " if (view != null) {\n", " view.model.document.clear()\n", " Bokeh.index.delete(view)\n", " }\n", " }\n", "\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", "\n", " // Clean up Bokeh references\n", " if (id != null) {\n", " drop(id)\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"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_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim()\n", " drop(id)\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const 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", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\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", " const 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", " const 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", " const events = require('base/js/events');\n", " const 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", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const 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", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded(error = null) {\n", " const el = document.getElementById(\"e86e46f2-10e9-46c9-bf5a-1024d0b1a105\");\n", " if (el != null) {\n", " const html = (() => {\n", " if (typeof root.Bokeh === \"undefined\") {\n", " if (error == null) {\n", " return \"BokehJS is loading ...\";\n", " } else {\n", " return \"BokehJS failed to load.\";\n", " }\n", " } else {\n", " const prefix = `BokehJS ${root.Bokeh.version}`;\n", " if (error == null) {\n", " return `${prefix} successfully loaded.`;\n", " } else {\n", " return `${prefix} encountered errors while loading and may not function as expected.`;\n", " }\n", " }\n", " })();\n", " el.innerHTML = html;\n", "\n", " if (error != null) {\n", " const wrapper = document.createElement(\"div\");\n", " wrapper.style.overflow = \"auto\";\n", " wrapper.style.height = \"5em\";\n", " wrapper.style.resize = \"vertical\";\n", " const content = document.createElement(\"div\");\n", " content.style.fontFamily = \"monospace\";\n", " content.style.whiteSpace = \"pre-wrap\";\n", " content.style.backgroundColor = \"rgb(255, 221, 221)\";\n", " content.textContent = error.stack ?? error.toString();\n", " wrapper.append(content);\n", " el.append(wrapper);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(() => display_loaded(error), 100);\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(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\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 (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\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", " };\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", " const js_urls = [\"static/extensions/panel/bundled/reactiveesm/es-module-shims@^1.10.0/dist/es-module-shims.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.6.0.min.js\", \"https://unpkg.com/@holoviz/panel@1.5.3/dist/panel.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " try {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "\n", " } catch (error) {display_loaded(error);throw error;\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", " const cell = $(document.getElementById(\"e86e46f2-10e9-46c9-bf5a-1024d0b1a105\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\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": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const 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 if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const 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 \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(\"e86e46f2-10e9-46c9-bf5a-1024d0b1a105\");\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\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(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\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 (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\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 };\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 const js_urls = [\"static/extensions/panel/bundled/reactiveesm/es-module-shims@^1.10.0/dist/es-module-shims.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.6.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.6.0.min.js\", \"https://unpkg.com/@holoviz/panel@1.5.3/dist/panel.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {display_loaded(error);throw error;\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 const cell = $(document.getElementById(\"e86e46f2-10e9-46c9-bf5a-1024d0b1a105\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\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 numpy as np\n", "import polars as pl\n", "import scipy.optimize\n", "import scipy.stats as st\n", "\n", "import cmdstanpy\n", "import arviz as az\n", "\n", "import bebi103\n", "\n", "import bokeh.io\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "In the previous lesson we introduced Gaussian processes (GPs) with particular emphasis on the following model where the data consist of centered-and-scaled measurements $\\mathbf{y}$ acquired at positions $\\mathbf{X} = (\\mathbf{x}_1, \\mathbf{x}_2, \\ldots)$.\n", "\n", "\\begin{align}\n", "&\\theta_k \\sim \\text{some hyperprior}\\\\[1em]\n", "&\\boldsymbol{\\sigma} \\sim \\text{some prior}\\\\[1em]\n", "&f \\mid \\mathbf{X}, \\theta_k \\sim \\text{GP}(\\mathbf{0}, k(\\mathbf{x}, \\mathbf{x}' ; \\theta_k)),\\\\[1em]\n", "&\\mathbf{y} \\mid \\mathbf{X}, f, \\boldsymbol{\\sigma} \\sim \\mathrm{MultiNorm}(f(\\mathbf{X}), \\mathrm{diag}(\\boldsymbol{\\sigma}^2)).\n", "\\end{align}\n", "\n", "We learned that we can marginalize out $f$, giving a simpler model\n", "\n", "\\begin{align}\n", "&\\theta_k \\sim \\text{some hyperprior}\\\\[1em]\n", "&\\boldsymbol{\\sigma} \\sim \\text{some prior}\\\\[1em]\n", "&\\mathbf{y} \\mid \\mathbf{X}, \\boldsymbol{\\sigma}, \\theta_k \\sim \\mathrm{MultiNorm}(\\mathbf{0}, \\mathsf{K}_\\mathbf{y}),\n", "\\end{align}\n", "\n", "where $\\mathsf{K}_\\mathbf{y} = \\mathsf{K}(\\mathbf{X}, \\mathbf{X}'; \\theta_k) + \\mathrm{diag}(\\boldsymbol{\\sigma}^2)$, where $\\mathsf{K}(\\mathbf{X}, \\mathbf{X}';\\theta_k)$ is the covariance matrix produced by the kernel $k(\\mathbf{x}, \\mathbf{x}' ; \\theta_k)$. This likelihood and prior together define the posterior distribution of this model. The parameters that remain to be determined are $\\theta_k$ and $\\boldsymbol{\\sigma}$. In this lesson, we will use an optimization approach to obtain MAP estimates for these parameters.\n", "\n", "To start with, we will use the same data set as last time from [Wolfenden and Snider](https://dx.doi.org/10.1021/ar000058i), which can be downloaded [here](https://s3.amazonaws.com/bebi103.caltech.edu/data/wolfenden_arrhenius.csv)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "df = pl.read_csv(os.path.join(data_path, 'wolfenden_arrhenius.csv'))\n", "df = df.with_columns(\n", " (1000 / pl.col('1000/T (1/K)')).alias('T (K)'),\n", " (pl.col('ln k (1/s)').exp()).alias('k (1/s)')\n", ")\n", "\n", "T = df[\"T (K)\"].to_numpy()\n", "k = df[\"k (1/s)\"].to_numpy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While we're at it, we should center and scale and also set up the points at which we want to evaluate the functions generated by the posterior Gaussian process." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "k_scaled = (k - k.mean()) / k.std()\n", "T_scaled = (T - T.mean()) / T.std()\n", "\n", "# Sample at 250 points\n", "Nstar = 250\n", "\n", "# Set up xstar\n", "T_range = T_scaled.max() - T_scaled.min()\n", "xstar = np.linspace(\n", " T_scaled.min() - 0.05 * T_range, T_scaled.max() + 0.05 * T_range, Nstar\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Priors for hyperparameters\n", "\n", "Before we can proceed with inference, we need to first stipulate which kernel we will use and the hyperpriors for its hyperparameters. We will use a squared exponential kernel, which has hyperparameters $\\rho$ (a length scale) and $\\alpha$ (a marginal deviation). That is, $\\theta_k = (\\alpha, \\rho)$.\n", "\n", "In choosing the priors for these hyperparameters, it is important to use domain knowledge about what kinds of functions might describe the data (remembering that the data are centered and scaled!). Specifically, $\\alpha$ quantifies how large of an amplitude the the function has and $\\rho$ quantifies how wiggly the function is.\n", "\n", "For $\\alpha$, a Half-Normal prior is usually reasonable, capturing functions that do not vary much and those that do. For centered and scaled data that I suspect are free of extreme outliers, I usually chose $\\alpha \\sim \\text{HalfNorm}(2)$, but you can be more generous on the tail of your prior if you suspect their may be outliers.\n", "\n", "Choosing a prior for the length scale $\\rho$ is a bit trickier. Specifically, we do not want $\\rho$ to be too small, since this would result in a very wiggly function that would just contort itself to go right through all of the data and leave the parameter $\\sigma$ to be irrelevant. So, it is wise to use a prior that pushes $\\rho$ away from zero. An [Inverse Gamma distribution](https://distribution-explorer.github.io/continuous/inverse_gamma.html) works well for this purpose. You can choose parametrizations for it that sufficiently push the length scale away from zero, and its heavy tail can readily encompass longer lengths scales. You should think carefully about your choice, keeping in mind whether or not you centered and scaled the x-data. As a generic Inverse Gamma prior for centered and scaled x-data that varied on a linear scale before I centered and scaled it, I use InvGamma(0.5, 2). But you should think carefully about your prior for your specific application every time and make sure you choose wise priors for *your* modeling problem.\n", "\n", "Finally, I will choose a Half-Normal prior for $\\sigma$, giving a complete model of\n", "\n", "\\begin{align}\n", "&\\alpha \\sim \\text{HalfNorm}(2)\\\\[1em]\n", "&\\rho \\sim \\text{InvGamma}(0.5, 2)\\\\[1em]\n", "&\\sigma \\sim \\text{HalfNorm}(0.1)\\\\[1em]\n", "&\\mathbf{y} \\mid \\mathbf{X}, \\sigma, \\alpha, \\rho \\sim \\mathrm{MultiNorm}(\\mathbf{0}, \\mathsf{K}_\\mathbf{y}),\n", "\\end{align}\n", "\n", "where $\\mathsf{K}_\\mathbf{y}$ is constructed from an SE kernel parametrized by $\\alpha$ and $\\rho$, with $\\sigma$ added to its diagonal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the MAP with SciPy\n", "\n", "As we did in early lessons, we can use SciPy to compute the maximal a posteriori probability parameter values of $\\alpha$, $\\rho$, and $\\sigma$. We proceed exactly as we did in the early lessons, first by coding up the log prior." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def log_prior(sigma, alpha, rho):\n", " \"\"\"Log prior for homoscedastic error and GP hyperparameters\"\"\"\n", " # Choose 1e-6 as upper bound for sigma to protect against\n", " # singular covariance matrix\n", " if sigma <= 1e-6 or alpha <= 0 or rho <= 0:\n", " return -np.inf\n", "\n", " lp = st.halfnorm.logpdf(sigma, 0, 1)\n", " lp += st.halfnorm.logpdf(alpha, 0, 2)\n", " lp += st.invgamma.logpdf(rho, 2, loc=0, scale=10)\n", "\n", " return lp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we define the log likelihood. To compute it, we first need to compute the covariance matrix $\\mathsf{K}_\\mathbf{y}$ using the SE kernel. This is accomplished using the `bebi103.gp.cov_exp_quad()` function. We then add $\\sigma^2$ to the diagonal of that matrix. The log likelihood is given by the log PDF of the Multinormal distribution with zero mean and covariance $\\mathsf{K}_\\mathbf{y}$ evaluated at the measured data points." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def log_likelihood(x, y, sigma, alpha, rho):\n", " \"\"\"Normal log likelihood for centered and scaled GP.\"\"\"\n", " diag_to_add = sigma ** 2 * np.eye(len(x))\n", " Ky = bebi103.gp.cov_exp_quad(x, alpha=alpha, rho=rho) + diag_to_add\n", " \n", " return st.multivariate_normal.logpdf(y, np.zeros_like(x), Ky)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we code up the log posterior and negative log posterior to enable optimization." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def log_posterior(params, x, y):\n", " \"\"\"Log posterior for GP with normal likelihood.\"\"\"\n", " sigma, alpha, rho = params\n", "\n", " lp = log_prior(sigma, alpha, rho)\n", " if lp == -np.inf:\n", " return lp\n", "\n", " return lp + log_likelihood(x, y, sigma, alpha, rho)\n", "\n", "\n", "def neg_log_posterior(params, x, y):\n", " return -log_posterior(params, x, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are now ready to optimize. We provide an initial guess for the parameters $\\sigma$, $\\alpha$, and $\\rho$, specify the centered-and-scaled temperature and rate constant values for arguments, and then minimize the log posterior." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "α = 1.5887, ρ = 2.5791, σ = 0.0886\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/bois/miniconda3/envs/bebi103_build/lib/python3.12/site-packages/scipy/optimize/_optimize.py:2472: RuntimeWarning: invalid value encountered in scalar multiply\n", " tmp2 = (x - v) * (fx - fw)\n" ] } ], "source": [ "# Initial guess\n", "params_0 = np.ones(3)\n", "\n", "# Perform optimization\n", "args = (T_scaled, k_scaled)\n", "res = scipy.optimize.minimize(neg_log_posterior, params_0, args=args, method=\"powell\")\n", "\n", "# Extract results\n", "sigma, alpha, rho = res.x\n", "\n", "# Show results\n", "print(\"α = {0:.4f}, ρ = {1:.4f}, σ = {2:.4f}\".format(alpha, rho, sigma))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Excellent! We can now make a plot of the nonparametric functions coming from the posterior GP with our optimal parameters. First, we compute $\\mathbf{m}_*$ and $\\mathsf{\\Sigma}_*$ for the values of temperature, $T_*$, that we want. We again use the `gp.posterior_mean_cov()` function." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "mstar, Sigmastar = bebi103.gp.posterior_mean_cov(\n", " T_scaled, k_scaled, xstar, sigma=sigma, rho=rho, alpha=rho\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, to make the plot, we compute the theoretical credible interval and then uncenter and unscale for plotting." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"a25d3544-648a-495a-a94a-431c15413e17\":{\"version\":\"3.6.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1002\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1003\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1004\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1011\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1012\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1009\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1042\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1036\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1037\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1038\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1043\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1044\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1039\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1040\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1041\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1051\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1045\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1046\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1047\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1052\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1053\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1048\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.3,\"hatch_color\":\"orange\",\"hatch_alpha\":0.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1049\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.1,\"hatch_color\":\"orange\",\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1050\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.2,\"hatch_color\":\"orange\",\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1063\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1054\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1055\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1056\"},\"data\":{\"type\":\"map\",\"entries\":[[\"1000/T (1/K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/vg27rJc/j87Aw6SI5r+PyHmj2/jLv8/ZhNUbNWc/z9mE1Rs1Zz/P1Zznq70TgBARzSNDj+RAEDWSZUxLOoAQOz+pST0IQFAoAjQ2l5wAUA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"ln k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oKpBtYqeEsAcGcsISvYSwOwePvKkURPAXR21T4YpFMBPOH+7rlgUwLLb/8QfoBXAJHeYwZfqFsDA+xW5w0wYwColYnwf8hjAAbGgH2XDGcA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"T (K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ks3HDMh3gEDEiyABuFaAQPUJEKjHCIBAUvlsXQeif0BS+WxdB6J/QIDotbO0qH5ACsWq5wcufkBPkdOgXY99QEjCMIUfL31Aud2lfuSrfEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4uhEBeZ8gz9Q0X9BM+OBP4q2XFxdXIA/WYQTmXmAej869/QGHk95P726YoXmYXI/jATFgMifaj/BO07l39ZiP6NiuGKxB2A//o+RalsiWj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1064\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1065\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1060\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1061\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1062\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1010\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1023\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1024\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1025\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1026\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1032\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1031\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1033\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1034\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1035\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1018\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1019\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1020\"},\"axis_label\":\"k (1/s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1021\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1013\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1014\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1015\"},\"axis_label\":\"T (K)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1016\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1017\",\"attributes\":{\"axis\":{\"id\":\"p1013\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1022\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1018\"}}}],\"frame_width\":350,\"frame_height\":250}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\"},{\"type\":\"model\",\"name\":\"JSComponent1\"},{\"type\":\"model\",\"name\":\"ReactComponent1\"},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\"},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"a25d3544-648a-495a-a94a-431c15413e17\",\"roots\":{\"p1002\":\"ede083d5-4832-4d5d-ba6e-6efc575a44d3\"},\"root_ids\":[\"p1002\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1002" } }, "output_type": "display_data" } ], "source": [ "# Bound of credible interval\n", "high = mstar + 1.96 * np.sqrt(np.diag(Sigmastar))\n", "low = mstar - 1.96 * np.sqrt(np.diag(Sigmastar))\n", "\n", "# Uncenter/scale\n", "Tstar = T.std() * xstar + T.mean()\n", "kstar = k.std() * mstar + k.mean()\n", "low = k.std() * low + k.mean()\n", "high = k.std() * high + k.mean()\n", "\n", "# Make plot\n", "p = bokeh.plotting.figure(\n", " frame_height=250, frame_width=350, x_axis_label=\"T (K)\", y_axis_label=\"k (1/s)\"\n", ")\n", "p.line(Tstar, kstar, line_width=2, color=\"orange\")\n", "p = bebi103.viz.fill_between(\n", " Tstar,\n", " high,\n", " Tstar,\n", " low,\n", " show_line=False,\n", " patch_kwargs=dict(color=\"orange\", alpha=0.3),\n", " p=p,\n", ")\n", "p.scatter(source=df.to_dict(), x=\"T (K)\", y=\"k (1/s)\")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, remember that the line in the plot is the most probable function *for the MAP values of the hyperparameters and* $\\sigma$. The envelope is *not* posterior predictive of data sets. However, we can sample out of the generative model for the posterior with fixed parameters $\\alpha$, $\\rho$, and $\\sigma$ specified by our MAP estimates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Posterior predictive samples\n", "\n", "To sample out of a posterior predictive distribution $f(\\tilde{y} \\mid y)$ for a fixed set of hyperparameters and $\\sigma$, we need to draw a sample of a function out of the posterior GP, and then draw samples from a Normal distribution that has a mean given by the function and a standard deviation of $\\sigma$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"f0fb3fb7-0b55-4e04-9e5b-0979136b0c3c\":{\"version\":\"3.6.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1002\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1003\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1004\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1011\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1012\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1009\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1042\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1036\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1037\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1038\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GGFNHU91fEBTvda1IXp8QI8ZYE70fnxAynXp5saDfEAG0nJ/mYh8QEEu/BdsjXxAfYqFsD6SfEC45g5JEZd8QPRCmOHjm3xAL58heragfEBr+6oSiaV8QKZXNKtbqnxA4rO9Qy6vfEAdEEfcALR8QFhs0HTTuHxAlMhZDaa9fEDQJOOleMJ8QAuBbD5Lx3xARt311h3MfECCOX9v8NB8QL6VCAjD1XxA+fGRoJXafEA0Ths5aN98QHCqpNE65HxArAYuag3pfEDnYrcC4O18QCK/QJuy8nxAXhvKM4X3fECZd1PMV/x8QNXT3GQqAX1AEDBm/fwFfUBMjO+Vzwp9QIjoeC6iD31Aw0QCx3QUfUD+oItfRxl9QDr9FPgZHn1AdVmekOwifUCxtScpvyd9QOwRscGRLH1AKG46WmQxfUBjysPyNjZ9QJ8mTYsJO31A2oLWI9w/fUAW31+8rkR9QFE76VSBSX1AjZdy7VNOfUDI8/uFJlN9QARQhR75V31AP6wOt8tcfUB7CJhPnmF9QLZkIehwZn1A8sCqgENrfUAtHTQZFnB9QGl5vbHodH1ApNVGSrt5fUDgMdDijX59QBuOWXtgg31AV+riEzOIfUCSRmysBY19QM6i9UTYkX1ACf9+3aqWfUBFWwh2fZt9QIC3kQ5QoH1AvBMbpyKlfUD3b6Q/9al9QDPMLdjHrn1Abii3cJqzfUCqhEAJbbh9QOXgyaE/vX1AIT1TOhLCfUBcmdzS5MZ9QJj1ZWu3y31A01HvA4rQfUAPrnicXNV9QEoKAjUv2n1AhmaLzQHffUDBwhRm1ON9QP0env6m6H1AOHsnl3ntfUB017AvTPJ9QK8zOsge931A64/DYPH7fUAm7Ez5wwB+QGJI1pGWBX5AnaRfKmkKfkDZAOnCOw9+QBRdclsOFH5AULn78+AYfkCLFYWMsx1+QMdxDiWGIn5AAs6XvVgnfkA+KiFWKyx+QHmGqu79MH5AteIzh9A1fkDwPr0fozp+QCybRrh1P35AZ/fPUEhEfkCjU1npGkl+QN6v4oHtTX5AGgxsGsBSfkBVaPWykld+QJHEfktlXH5AzCAI5DdhfkAHfZF8CmZ+QEPZGhXdan5AfjWkra9vfkC6kS1GgnR+QPXttt5UeX5AMUpAdyd+fkBspskP+oJ+QKgCU6jMh35A417cQJ+MfkAfu2XZcZF+QFoX73FEln5AlnN4ChebfkDRzwGj6Z9+QA0sizu8pH5ASIgU1I6pfkCE5J1sYa5+QL9AJwU0s35A+5ywnQa4fkA2+Tk22bx+QHJVw86rwX5ArbFMZ37GfkDpDdb/UMt+QCRqX5gj0H5AYMboMPbUfkCbInLJyNl+QNd++2Gb3n5AEtuE+m3jfkBONw6TQOh+QImTlysT7X5Axe8gxOXxfkAATKpcuPZ+QDyoM/WK+35AdwS9jV0Af0CzYEYmMAV/QO68z74CCn9AKhlZV9UOf0BldeLvpxN/QKHRa4h6GH9A3C31IE0df0AYin65HyJ/QFPmB1LyJn9Aj0KR6sQrf0DKnhqDlzB/QAb7oxtqNX9AQVcttDw6f0B9s7ZMDz9/QLgPQOXhQ39A9GvJfbRIf0AvyFIWh01/QGsk3K5ZUn9ApoBlRyxXf0Di3O7f/lt/QB05eHjRYH9AWZUBEaRlf0CU8Yqpdmp/QNBNFEJJb39AC6qd2ht0f0BHBidz7nh/QIJisAvBfX9Avr45pJOCf0D5GsM8Zod/QDV3TNU4jH9AcNPVbQuRf0CrL18G3pV/QOeL6J6wmn9AI+hxN4Off0BeRPvPVaR/QJqghGgoqX9A1fwNAfutf0AQWZeZzbJ/QEy1IDKgt39AhxGqynK8f0DDbTNjRcF/QP/JvPsXxn9AOiZGlOrKf0B2gs8svc9/QLHeWMWP1H9A7DriXWLZf0Aol2v2NN5/QGPz9I4H439An09+J9rnf0DaqwfArOx/QBYIkVh/8X9AUWQa8VH2f0CNwKOJJPt/QMgcLSL3/39Agjxb3WQCgECg6p8pzgSAQL2Y5HU3B4BA20YpwqAJgED59G0OCgyAQBejslpzDoBANFH3ptwQgEBS/zvzRROAQHCtgD+vFYBAjlvFixgYgECrCQrYgRqAQMm3TiTrHIBA52WTcFQfgEAFFNi8vSGAQCLCHAknJIBAQHBhVZAmgEBeHqah+SiAQHzM6u1iK4BAmXovOswtgEC3KHSGNTCAQNXWuNKeMoBA84T9Hgg1gEAQM0JrcTeAQC7hhrfaOYBATI/LA0Q8gEBqPRBQrT6AQIfrVJwWQYBApZmZ6H9DgEDDR9406UWAQOH1IoFSSIBA/qNnzbtKgEAcUqwZJU2AQDoA8WWOT4BAWK41svdRgEB1XHr+YFSAQJMKv0rKVoBAsbgDlzNZgEDPZkjjnFuAQOwUjS8GXoBACsPRe29ggEAocRbI2GKAQEYfWxRCZYBAY82fYKtngECBe+SsFGqAQJ8pKfl9bIBAvddtRedugEDahbKRUHGAQPgz9925c4BAFuI7KiN2gEA0kIB2jHiAQFE+xcL1eoBAb+wJD199gECNmk5byH+AQKpIk6cxgoBAyPbX85qEgEDmpBxABIeAQARTYYxtiYBAIgGm2NaLgEA/r+okQI6AQF1dL3GpkIBAewt0vRKTgEA=\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1043\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1044\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1039\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1040\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1041\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1051\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1045\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1046\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1047\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1052\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1053\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1048\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.3,\"hatch_color\":\"orange\",\"hatch_alpha\":0.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1049\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.1,\"hatch_color\":\"orange\",\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1050\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.2,\"hatch_color\":\"orange\",\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1063\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1054\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1055\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1056\"},\"data\":{\"type\":\"map\",\"entries\":[[\"1000/T (1/K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/vg27rJc/j87Aw6SI5r+PyHmj2/jLv8/ZhNUbNWc/z9mE1Rs1Zz/P1Zznq70TgBARzSNDj+RAEDWSZUxLOoAQOz+pST0IQFAoAjQ2l5wAUA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"ln k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oKpBtYqeEsAcGcsISvYSwOwePvKkURPAXR21T4YpFMBPOH+7rlgUwLLb/8QfoBXAJHeYwZfqFsDA+xW5w0wYwColYnwf8hjAAbGgH2XDGcA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"T (K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ks3HDMh3gEDEiyABuFaAQPUJEKjHCIBAUvlsXQeif0BS+WxdB6J/QIDotbO0qH5ACsWq5wcufkBPkdOgXY99QEjCMIUfL31Aud2lfuSrfEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4uhEBeZ8gz9Q0X9BM+OBP4q2XFxdXIA/WYQTmXmAej869/QGHk95P726YoXmYXI/jATFgMifaj/BO07l39ZiP6NiuGKxB2A//o+RalsiWj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1064\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1065\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1060\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1061\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1062\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1080\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1074\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1075\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1076\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GGFNHU91fEBTvda1IXp8QI8ZYE70fnxAynXp5saDfEAG0nJ/mYh8QEEu/BdsjXxAfYqFsD6SfEC45g5JEZd8QPRCmOHjm3xAL58heragfEBr+6oSiaV8QKZXNKtbqnxA4rO9Qy6vfEAdEEfcALR8QFhs0HTTuHxAlMhZDaa9fEDQJOOleMJ8QAuBbD5Lx3xARt311h3MfECCOX9v8NB8QL6VCAjD1XxA+fGRoJXafEA0Ths5aN98QHCqpNE65HxArAYuag3pfEDnYrcC4O18QCK/QJuy8nxAXhvKM4X3fECZd1PMV/x8QNXT3GQqAX1AEDBm/fwFfUBMjO+Vzwp9QIjoeC6iD31Aw0QCx3QUfUD+oItfRxl9QDr9FPgZHn1AdVmekOwifUCxtScpvyd9QOwRscGRLH1AKG46WmQxfUBjysPyNjZ9QJ8mTYsJO31A2oLWI9w/fUAW31+8rkR9QFE76VSBSX1AjZdy7VNOfUDI8/uFJlN9QARQhR75V31AP6wOt8tcfUB7CJhPnmF9QLZkIehwZn1A8sCqgENrfUAtHTQZFnB9QGl5vbHodH1ApNVGSrt5fUDgMdDijX59QBuOWXtgg31AV+riEzOIfUCSRmysBY19QM6i9UTYkX1ACf9+3aqWfUBFWwh2fZt9QIC3kQ5QoH1AvBMbpyKlfUD3b6Q/9al9QDPMLdjHrn1Abii3cJqzfUCqhEAJbbh9QOXgyaE/vX1AIT1TOhLCfUBcmdzS5MZ9QJj1ZWu3y31A01HvA4rQfUAPrnicXNV9QEoKAjUv2n1AhmaLzQHffUDBwhRm1ON9QP0env6m6H1AOHsnl3ntfUB017AvTPJ9QK8zOsge931A64/DYPH7fUAm7Ez5wwB+QGJI1pGWBX5AnaRfKmkKfkDZAOnCOw9+QBRdclsOFH5AULn78+AYfkCLFYWMsx1+QMdxDiWGIn5AAs6XvVgnfkA+KiFWKyx+QHmGqu79MH5AteIzh9A1fkDwPr0fozp+QCybRrh1P35AZ/fPUEhEfkCjU1npGkl+QN6v4oHtTX5AGgxsGsBSfkBVaPWykld+QJHEfktlXH5AzCAI5DdhfkAHfZF8CmZ+QEPZGhXdan5AfjWkra9vfkC6kS1GgnR+QPXttt5UeX5AMUpAdyd+fkBspskP+oJ+QKgCU6jMh35A417cQJ+MfkAfu2XZcZF+QFoX73FEln5AlnN4ChebfkDRzwGj6Z9+QA0sizu8pH5ASIgU1I6pfkCE5J1sYa5+QL9AJwU0s35A+5ywnQa4fkA2+Tk22bx+QHJVw86rwX5ArbFMZ37GfkDpDdb/UMt+QCRqX5gj0H5AYMboMPbUfkCbInLJyNl+QNd++2Gb3n5AEtuE+m3jfkBONw6TQOh+QImTlysT7X5Axe8gxOXxfkAATKpcuPZ+QDyoM/WK+35AdwS9jV0Af0CzYEYmMAV/QO68z74CCn9AKhlZV9UOf0BldeLvpxN/QKHRa4h6GH9A3C31IE0df0AYin65HyJ/QFPmB1LyJn9Aj0KR6sQrf0DKnhqDlzB/QAb7oxtqNX9AQVcttDw6f0B9s7ZMDz9/QLgPQOXhQ39A9GvJfbRIf0AvyFIWh01/QGsk3K5ZUn9ApoBlRyxXf0Di3O7f/lt/QB05eHjRYH9AWZUBEaRlf0CU8Yqpdmp/QNBNFEJJb39AC6qd2ht0f0BHBidz7nh/QIJisAvBfX9Avr45pJOCf0D5GsM8Zod/QDV3TNU4jH9AcNPVbQuRf0CrL18G3pV/QOeL6J6wmn9AI+hxN4Off0BeRPvPVaR/QJqghGgoqX9A1fwNAfutf0AQWZeZzbJ/QEy1IDKgt39AhxGqynK8f0DDbTNjRcF/QP/JvPsXxn9AOiZGlOrKf0B2gs8svc9/QLHeWMWP1H9A7DriXWLZf0Aol2v2NN5/QGPz9I4H439An09+J9rnf0DaqwfArOx/QBYIkVh/8X9AUWQa8VH2f0CNwKOJJPt/QMgcLSL3/39Agjxb3WQCgECg6p8pzgSAQL2Y5HU3B4BA20YpwqAJgED59G0OCgyAQBejslpzDoBANFH3ptwQgEBS/zvzRROAQHCtgD+vFYBAjlvFixgYgECrCQrYgRqAQMm3TiTrHIBA52WTcFQfgEAFFNi8vSGAQCLCHAknJIBAQHBhVZAmgEBeHqah+SiAQHzM6u1iK4BAmXovOswtgEC3KHSGNTCAQNXWuNKeMoBA84T9Hgg1gEAQM0JrcTeAQC7hhrfaOYBATI/LA0Q8gEBqPRBQrT6AQIfrVJwWQYBApZmZ6H9DgEDDR9406UWAQOH1IoFSSIBA/qNnzbtKgEAcUqwZJU2AQDoA8WWOT4BAWK41svdRgEB1XHr+YFSAQJMKv0rKVoBAsbgDlzNZgEDPZkjjnFuAQOwUjS8GXoBACsPRe29ggEAocRbI2GKAQEYfWxRCZYBAY82fYKtngECBe+SsFGqAQJ8pKfl9bIBAvddtRedugEDahbKRUHGAQPgz9925c4BAFuI7KiN2gEA0kIB2jHiAQFE+xcL1eoBAb+wJD199gECNmk5byH+AQKpIk6cxgoBAyPbX85qEgEDmpBxABIeAQARTYYxtiYBAIgGm2NaLgEA/r+okQI6AQF1dL3GpkIBAewt0vRKTgEA=\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1081\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1082\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1077\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":3},\"line_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.5},\"fill_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.5},\"hatch_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.5}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1078\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":3},\"line_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1079\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":3},\"line_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"tomato\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1010\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1023\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1024\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1025\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1026\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1032\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1031\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1033\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1034\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1035\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1018\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1019\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1020\"},\"axis_label\":\"k (1/s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1021\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1013\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1014\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1015\"},\"axis_label\":\"T (K)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1016\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1017\",\"attributes\":{\"axis\":{\"id\":\"p1013\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1022\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1018\"}}}],\"frame_width\":350,\"frame_height\":250}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\"},{\"type\":\"model\",\"name\":\"JSComponent1\"},{\"type\":\"model\",\"name\":\"ReactComponent1\"},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\"},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"f0fb3fb7-0b55-4e04-9e5b-0979136b0c3c\",\"roots\":{\"p1002\":\"a364d878-785e-4d28-a527-b4c24d704bfc\"},\"root_ids\":[\"p1002\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1002" } }, "output_type": "display_data" } ], "source": [ "# Sample function\n", "rng = np.random.default_rng()\n", "\n", "def draw_gp_ppc(mstar, Sigmastar, sigma, y_mean, y_std):\n", " \"\"\"Draw a GP posterior predictive sample of centered \n", " and scaled data that is then uncentered and unscaled.\"\"\"\n", " # Draw nonparametric function\n", " f = np.random.multivariate_normal(mstar, Sigmastar)\n", "\n", " # Draw data\n", " y = rng.normal(f, sigma)\n", " \n", " # Uncenter and unscale\n", " return y_std * y + y_mean\n", "\n", "k_ppc = draw_gp_ppc(mstar, Sigmastar, sigma, k.mean(), k.std())\n", "\n", "# Overlay new data on plot\n", "p.scatter(Tstar, k_ppc, color='tomato', alpha=0.5, size=3)\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can generate many of these samples and them make a posterior predictive plot. Note, though, that this is not a *full* posterior predictive plot. Rather, we are *fixing* $\\alpha$, $\\rho$, and $\\sigma$ to their MAP values and are then drawing the nonparameteric function that serves as the location parameter for the Normal likelihood." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"9ea66797-5a60-4d75-a435-84e6b1ac4341\":{\"version\":\"3.6.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1093\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1094\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1095\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1102\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1103\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1100\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1133\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1127\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1128\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1129\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1134\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1135\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1130\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"#9ecae1\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1131\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"#9ecae1\",\"fill_alpha\":0.1,\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1132\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"#9ecae1\",\"fill_alpha\":0.2,\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1142\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1136\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1137\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1138\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1143\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1144\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1139\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"#6baed6\"}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1140\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"#6baed6\",\"fill_alpha\":0.1,\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1141\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"#6baed6\",\"fill_alpha\":0.2,\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1151\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1145\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1146\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1147\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1152\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1153\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1148\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#084594\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1149\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#084594\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1150\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#084594\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1160\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1154\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1155\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1156\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ud2lfuSrfEBIwjCFHy99QE+R06Bdj31ACsWq5wcufkCA6LWztKh+QFL5bF0Hon9AUvlsXQeif0D1CRCoxwiAQMSLIAG4VoBAKs3HDMh3gEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/o+RalsiWj+jYrhisQdgP8E7TuXf1mI/jATFgMifaj+9umKF5mFyP1mEE5l5gHo/Ovf0Bh5PeT+KtlxcXVyAP1DRf0Ez44E/4uhEBeZ8gz8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1161\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1162\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1157\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":2},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1158\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":2},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1159\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"size\":{\"type\":\"value\",\"value\":2},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"orange\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_color\":{\"type\":\"value\",\"value\":\"orange\"},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1101\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1114\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1115\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1116\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1117\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1123\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1122\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1124\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1125\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1126\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1109\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1110\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1111\"},\"axis_label\":\"y\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1112\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1104\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1105\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1106\"},\"axis_label\":\"x\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1107\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1108\",\"attributes\":{\"axis\":{\"id\":\"p1104\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1113\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1109\"}}}],\"frame_width\":400,\"frame_height\":325}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\"},{\"type\":\"model\",\"name\":\"JSComponent1\"},{\"type\":\"model\",\"name\":\"ReactComponent1\"},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\"},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"9ea66797-5a60-4d75-a435-84e6b1ac4341\",\"roots\":{\"p1093\":\"e26a876c-557c-4907-8b90-9f0fdd64de25\"},\"root_ids\":[\"p1093\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1093" } }, "output_type": "display_data" } ], "source": [ "k_ppc = np.array(\n", " [draw_gp_ppc(mstar, Sigmastar, sigma, k.mean(), k.std()) for _ in range(1000)]\n", ")\n", "\n", "bokeh.io.show(\n", " bebi103.viz.predictive_regression(k_ppc, Tstar, data=np.stack((T, k)).transpose(),)\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior predictive plot looks good!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Obtaining hyperpriors by optimizing with Stan\n", "\n", "While we have not discussed it thus far, Stan does have functionality to find MAP parameters by optimization. It may be easier to code you model in Stan and then use its optimizer. This can be the case for GP-based models. The Stan code for the model we have been considering is\n", "\n", "```stan\n", "data {\n", " int N;\n", " array[N] real x;\n", " vector[N] y;\n", "}\n", "\n", "\n", "parameters {\n", " real alpha;\n", " real rho;\n", " real sigma;\n", "}\n", "\n", "\n", "model {\n", " alpha ~ normal(0.0, 2.0);\n", " rho ~ inv_gamma(0.5, 2.0);\n", " sigma ~ normal(0.0, 1.0);\n", "\n", " matrix[N, N] Ky = gp_exp_quad_cov(x, alpha, rho)\n", " + diag_matrix(rep_vector(square(sigma), N));\n", " matrix[N, N] Ly = cholesky_decompose(Ky);\n", "\n", " y ~ multi_normal_cholesky(rep_vector(0, N), Ly);\n", "}\n", "```\n", "\n", "Note that we use the Cholesky decomposition, as it is more numerically stable. Note also that the construction of the covariance matrix and its Cholesky decomposition are in the `model` block instead of `transformed parameters` because we do not need nor want them stored as output.\n", "\n", "To find the MAP parameters, we simple compile the model and then use the `optimize()` method." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "with bebi103.stan.disable_logging():\n", " sm = cmdstanpy.CmdStanModel(stan_file=\"gp_kinetics_no_ppc.stan\")\n", " \n", " data = dict(N=len(T_scaled), x=T_scaled, y=k_scaled)\n", "\n", " res = sm.optimize(data=data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The resulting object has the optimal parameters presented in a dictionary, Numpy array, or Pandas data frame. In this case, the dictionary is easiest to use." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([('lp__', 7.79106),\n", " ('alpha', 1.40338),\n", " ('rho', 2.25657),\n", " ('sigma', 0.0893158)])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.optimized_params_dict" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The \"parameter\" `lp__` is the value of the log posterior at the MAP. The remaining entries are the MAP parameter values, which you can see are close to what we got using SciPy, but differ slightly. This is because Stan does transformations of variables to handle constraints, and with the new transformed variables, the tolerance may be hit with different parameter values. We can verify that it gives the same result by again plotting the resulting nonparametric function." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"f43ee7bf-a77e-4c61-9152-8b88fee6b1c4\":{\"version\":\"3.6.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1171\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1172\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1173\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1180\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1181\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1178\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1211\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1205\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1206\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1207\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1212\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1213\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1208\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1209\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1210\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1220\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1214\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1215\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1216\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1221\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1222\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1217\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.3,\"hatch_color\":\"orange\",\"hatch_alpha\":0.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1218\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.1,\"hatch_color\":\"orange\",\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1219\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"orange\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"orange\",\"fill_alpha\":0.2,\"hatch_color\":\"orange\",\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1229\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1223\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1224\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1225\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[250],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1230\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1231\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1226\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1227\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1228\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1238\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1232\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1233\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1234\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[500],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1239\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1240\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1235\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"tomato\",\"fill_alpha\":0.3,\"hatch_color\":\"tomato\",\"hatch_alpha\":0.3}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1236\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"tomato\",\"fill_alpha\":0.1,\"hatch_color\":\"tomato\",\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1237\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"tomato\",\"fill_alpha\":0.2,\"hatch_color\":\"tomato\",\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1250\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1241\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1242\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1243\"},\"data\":{\"type\":\"map\",\"entries\":[[\"1000/T (1/K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/vg27rJc/j87Aw6SI5r+PyHmj2/jLv8/ZhNUbNWc/z9mE1Rs1Zz/P1Zznq70TgBARzSNDj+RAEDWSZUxLOoAQOz+pST0IQFAoAjQ2l5wAUA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"ln k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oKpBtYqeEsAcGcsISvYSwOwePvKkURPAXR21T4YpFMBPOH+7rlgUwLLb/8QfoBXAJHeYwZfqFsDA+xW5w0wYwColYnwf8hjAAbGgH2XDGcA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"T (K)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ks3HDMh3gEDEiyABuFaAQPUJEKjHCIBAUvlsXQeif0BS+WxdB6J/QIDotbO0qH5ACsWq5wcufkBPkdOgXY99QEjCMIUfL31Aud2lfuSrfEA=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}],[\"k (1/s)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4uhEBeZ8gz9Q0X9BM+OBP4q2XFxdXIA/WYQTmXmAej869/QGHk95P726YoXmYXI/jATFgMifaj/BO07l39ZiP6NiuGKxB2A//o+RalsiWj8=\"},\"shape\":[10],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1251\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1252\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1247\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1248\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1249\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"T (K)\"},\"y\":{\"type\":\"field\",\"field\":\"k (1/s)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1179\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1192\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1193\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1194\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1195\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1201\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1200\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1202\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1203\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1204\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1187\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1188\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1189\"},\"axis_label\":\"k (1/s)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1190\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1182\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1183\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1184\"},\"axis_label\":\"T (K)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1185\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1186\",\"attributes\":{\"axis\":{\"id\":\"p1182\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1191\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1187\"}}}],\"frame_width\":350,\"frame_height\":250}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"gap\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"TemplateEditor1\",\"properties\":[{\"name\":\"layout\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"ReactiveESM1\"},{\"type\":\"model\",\"name\":\"JSComponent1\"},{\"type\":\"model\",\"name\":\"ReactComponent1\"},{\"type\":\"model\",\"name\":\"AnyWidgetComponent1\"},{\"type\":\"model\",\"name\":\"request_value1\",\"properties\":[{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"},{\"name\":\"_synced\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_request_sync\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"f43ee7bf-a77e-4c61-9152-8b88fee6b1c4\",\"roots\":{\"p1171\":\"fe3a2a60-5f40-4000-a86e-9e797141cd0d\"},\"root_ids\":[\"p1171\"]}];\n", " void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1171" } }, "output_type": "display_data" } ], "source": [ "# Plot Numpy result\n", "p = bokeh.plotting.figure(\n", " frame_height=250, frame_width=350, x_axis_label=\"T (K)\", y_axis_label=\"k (1/s)\"\n", ")\n", "p.line(Tstar, kstar, line_width=2, color=\"orange\")\n", "p = bebi103.viz.fill_between(\n", " Tstar,\n", " high,\n", " Tstar,\n", " low,\n", " show_line=False,\n", " patch_kwargs=dict(color=\"orange\", alpha=0.3),\n", " p=p,\n", ")\n", "\n", "# Plot Stan result\n", "sigma, alpha, rho = res.optimized_params_pd[[\"sigma\", \"alpha\", \"rho\"]].values.flatten()\n", "mstar, Sigmastar = bebi103.gp.posterior_mean_cov(\n", " T_scaled, k_scaled, xstar, sigma=sigma, rho=rho, alpha=rho\n", ")\n", "\n", "high = mstar + 1.96 * np.sqrt(np.diag(Sigmastar))\n", "low = mstar - 1.96 * np.sqrt(np.diag(Sigmastar))\n", "\n", "Tstar = T.std() * xstar + T.mean()\n", "kstar = k.std() * mstar + k.mean()\n", "low = k.std() * low + k.mean()\n", "high = k.std() * high + k.mean()\n", "\n", "p.line(Tstar, kstar, line_width=2, color=\"tomato\")\n", "p = bebi103.viz.fill_between(\n", " Tstar,\n", " high,\n", " Tstar,\n", " low,\n", " show_line=False,\n", " patch_kwargs=dict(color=\"tomato\", alpha=0.3),\n", " p=p,\n", ")\n", "\n", "# Plot data\n", "p.scatter(source=df.to_dict(), x=\"T (K)\", y=\"k (1/s)\")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results almost exactly overlap." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "bebi103.stan.clean_cmdstan()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.12.8\n", "IPython version : 8.27.0\n", "\n", "numpy : 1.26.4\n", "scipy : 1.14.1\n", "polars : 1.17.1\n", "cmdstanpy : 1.2.5\n", "arviz : 0.20.0\n", "bokeh : 3.6.0\n", "bebi103 : 0.1.25\n", "jupyterlab: 4.2.6\n", "\n", "cmdstan : 2.36.0\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,scipy,polars,cmdstanpy,arviz,bokeh,bebi103,jupyterlab\n", "print(\"cmdstan :\", bebi103.stan.cmdstan_version())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.13.11" } }, "nbformat": 4, "nbformat_minor": 4 }