{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Parameter estimation by optimization case study: Normal likelihood\n", "\n", "[Data set download](https://s3.amazonaws.com/bebi103.caltech.edu/data/good_invitro_droplet_data.csv)\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "# Colab setup ------------------\n", "import os, sys, subprocess\n", "if \"google.colab\" in sys.modules:\n", " cmd = \"pip install --upgrade bebi103 watermark\"\n", " process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", " stdout, stderr = process.communicate()\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": [ "(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() {\n", " const el = document.getElementById(\"a809643d-e832-412f-89b8-16c7dc1a703b\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", " 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 = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.3.0.min.js\", \"https://unpkg.com/@holoviz/panel@1.3.1/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", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\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(\"a809643d-e832-412f-89b8-16c7dc1a703b\")).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": "(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() {\n const el = document.getElementById(\"a809643d-e832-412f-89b8-16c7dc1a703b\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n 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 = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.0.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.3.0.min.js\", \"https://unpkg.com/@holoviz/panel@1.3.1/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 for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (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(\"a809643d-e832-412f-89b8-16c7dc1a703b\")).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 pandas as pd\n", "import scipy.optimize\n", "import scipy.stats as st\n", "import statsmodels.tools.numdiff as smnd\n", "\n", "import tqdm\n", "\n", "import bebi103\n", "\n", "import bokeh.io\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "We will begin our exploration of methods of parameter estimation by optimization again using the data set from [Good, et al., \n", " *Science*, **342**, 856-860, 2013](https://doi.org/10.1126/science.1243147). You should [refamiliarize yourself](https://bebi103a.github.io/lessons/20/model_building.html) with the data set if you need to." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploratory data analysis\n", "\n", "To start, let's make a quick plot of the spindle length versus droplet data, which you can download here: [https://s3.amazonaws.com/bebi103.caltech.edu/data/good_invitro_droplet_data.csv](https://s3.amazonaws.com/bebi103.caltech.edu/data/good_invitro_droplet_data.csv)." ] }, { "cell_type": "code", "execution_count": 3, "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 = {\"baf613d6-1f74-4b53-aeba-79373a04ae9c\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1002\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1011\",\"attributes\":{\"end\":250}},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1012\",\"attributes\":{\"end\":50}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1013\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1014\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1009\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1041\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1032\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1033\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1034\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"int32\",\"order\":\"little\"}],[\"Droplet Diameter (um)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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MzMzMzPTUEAzMzMzM9NQQDMzMzMz01BAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQDMzMzMz81BAMzMzMzPzUEAzMzMzM/NQQDMzMzMz81BAMzMzMzPzUEAzMzMzM/NQQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUCamZmZmRlRQJqZmZmZGVFAmpmZmZkZUUCamZmZmRlRQJqZmZmZGVFAmpmZmZkZUUCamZmZmRlRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQJqZmZmZOVFAmpmZmZk5UUCamZmZmTlRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUBmZmZmZoZRQGZmZmZmhlFAZmZmZmaGUUBmZmZmZoZRQGZmZmZmhlFAZmZmZmaGUUBmZmZmZoZRQGZmZmZmhlFAmpmZmZmZUUCamZmZmZlRQJqZmZmZmVFAmpmZmZmZUUCamZmZmZlRQJqZmZmZmVFAmpmZmZmZUUCamZmZmZlRQM3MzMzMrFFAzczMzMysUUDNzMzMzKxRQM3MzMzMrFFAzczMzMysUUDNzMzMzKxRQM3MzMzMrFFAzczMzMysUUCamZmZmblRQJqZmZmZuVFAmpmZmZm5UUDNzMzMzMxRQM3MzMzMzFFAzczMzMzMUUDNzMzMzMxRQM3MzMzMzFFAzczMzMzMUUDNzMzMzMxRQJqZmZmZ2VFAmpmZmZnZUUCamZmZmdlRQJqZmZmZ2VFAmpmZmZnZUUCamZmZmdlRQM3MzMzM7FFAzczMzMzsUUDNzMzMzOxRQM3MzMzM7FFAmpmZmZn5UUCamZmZmflRQJqZmZmZ+VFAzczMzMwMUkDNzMzMzAxSQM3MzMzMDFJAzczMzMwMUkDNzMzMzAxSQM3MzMzMDFJAmpmZmZkZUkCamZmZmRlSQJqZmZmZGVJAmpmZmZkZUkCamZmZmRlSQM3MzMzMLFJAzczMzMwsUkAAAAAAAEBSQAAAAAAAQFJAAAAAAABAUkDNzMzMzExSQM3MzMzMTFJAzczMzMxMUkDNzMzMzExSQM3MzMzMTFJAAAAAAABgUkAAAAAAAGBSQAAAAAAAYFJAAAAAAABgUkAAAAAAAGBSQM3MzMzMbFJAAAAAAACAUkAAAAAAAIBSQAAAAAAAgFJAzczMzMyMUkAAAAAAAKBSQAAAAAAAoFJAMzMzMzOzUkAAAAAAAMBSQDMzMzMz81JAAAAAAAAAU0AAAAAAACBTQDMzMzMzM1NAMzMzMzNTU0AzMzMzM1NTQGZmZmZmZlNAZmZmZmZmU0AzMzMzM7NTQGZmZmZmxlNAmpmZmZkZVEDNzMzMzExUQJqZmZmZeVRAzczMzMyMVECamZmZmZlUQJqZmZmZmVRAAAAAAAAgVUAAAAAAAIBVQGZmZmZmBlZAZmZmZmbmVkCamZmZmflWQAAAAAAAgFdAzczMzMysV0AAAAAAACBYQAAAAAAAIFhAMzMzMzNTWEAAAAAAAGBYQDMzMzMzk1hAmpmZmZkZWUDNzMzMzKxZQJqZmZmZ+VlAmpmZmZl5XEDNzMzMzAxdQM3MzMzMLF1AAAAAAABgXUAAAAAAAMBdQGZmZmZmJl5AZmZmZmZGXkCamZmZmZleQJqZmZmZuV5AZmZmZmbGXkAzMzMzM2NgQJqZmZmZeWFAmpmZmZmJYUCamZmZmalhQAAAAAAAAGRAMzMzMzPDZEDNzMzMzDxnQAAAAAAA0GdAzczMzMysa0A=\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Droplet Volume (uL)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Spindle Length (um)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Spindle Width (um)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"Spindle Area (um2)\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1042\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1043\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1038\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"Droplet Diameter (um)\"},\"y\":{\"type\":\"field\",\"field\":\"Spindle Length (um)\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.3},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.3},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.3}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1039\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"Droplet Diameter (um)\"},\"y\":{\"type\":\"field\",\"field\":\"Spindle Length (um)\"},\"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\":\"Circle\",\"id\":\"p1040\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"Droplet Diameter (um)\"},\"y\":{\"type\":\"field\",\"field\":\"Spindle Length (um)\"},\"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\":\"p1025\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1026\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1027\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1028\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1029\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1030\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1031\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1020\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1021\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1022\"},\"axis_label\":\"spindle length (\\u00b5m)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1023\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1015\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1016\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1017\"},\"axis_label\":\"droplet diameter (\\u00b5m)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1018\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1019\",\"attributes\":{\"axis\":{\"id\":\"p1015\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1024\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1020\"}}}],\"frame_width\":300,\"frame_height\":200}}],\"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\":\"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\":\"toggle_value1\",\"properties\":[{\"name\":\"active_icons\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"options\",\"kind\":\"Any\",\"default\":{\"type\":\"map\",\"entries\":[[\"favorite\",\"heart\"]]}},{\"name\":\"value\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_reactions\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_base_url\",\"kind\":\"Any\",\"default\":\"https://tabler-icons.io/static/tabler-icons/icons/\"}]},{\"type\":\"model\",\"name\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"value\",\"kind\":\"Any\",\"default\":null},{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"}]},{\"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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"baf613d6-1f74-4b53-aeba-79373a04ae9c\",\"roots\":{\"p1002\":\"a86e2cda-13c0-4228-8741-b6614e9d693d\"},\"root_ids\":[\"p1002\"]}];\n", " 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": [ "# Load in Data Frame\n", "df = pd.read_csv(os.path.join(data_path, \"good_invitro_droplet_data.csv\"), comment=\"#\")\n", "\n", "# Pull out numpy arrays\n", "ell = df[\"Spindle Length (um)\"].values\n", "d = df[\"Droplet Diameter (um)\"].values\n", "\n", "# Make a plot\n", "p = bokeh.plotting.figure(\n", " frame_height=200,\n", " frame_width=300,\n", " x_axis_label=\"droplet diameter (µm)\",\n", " y_axis_label=\"spindle length (µm)\",\n", " x_range=[0, 250],\n", " y_range=[0, 50],\n", ")\n", "\n", "p.circle(\n", " source=df,\n", " x=\"Droplet Diameter (um)\",\n", " y=\"Spindle Length (um)\",\n", " alpha=0.3,\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our goal is to get parameter estimates for models describing how spindle length varies with droplet size. We will start with the independent size model, in which we assume that spindle length is independent of droplet diameter." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Independent size model\n", "\n", "We choose a Normal likelihood for the spindle size. We assume all spindles are distributed about the same location parameter $\\phi$. In our updated model, we will again use a Normal likelihood.\n", "\n", "\\begin{align}\n", "l_i \\sim \\text{Norm}(\\phi, \\sigma) \\;\\forall i.\n", "\\end{align}\n", "\n", "In specifying this likelihood, we see that there are two parameters to estimate, $\\phi$ and $\\sigma$. Now that we have thought a bit more about Bayesian modeling, we will abandon using Jeffreys priors and instead use weakly informative priors. The parameter $\\phi$ is necessarily positive and is the characteristic length of a spindle. Using the bet-the-farm approach, I do not think the spindle would be smaller than 100 nm, and not bigger than 1 mm (the size scale of a *Xenopus* egg). Thus, for my prior for $\\phi$ in units of microns, I have\n", "\n", "\\begin{align}\n", "&\\log_{10} \\phi \\sim \\text{Norm}(1, 1), \\\\[1em]\n", "&\\phi = 10^{\\log_{10}\\phi}.\n", "\\end{align}\n", "\n", "Alternatively, we could write this as\n", "\n", "\\begin{align}\n", "&\\phi \\sim \\text{LogNorm}(2.3, 2.3).\n", "\\end{align}\n", "\n", "Note that for brevity, I do not include the units of the parameters in the likelihood definition, and units of microns are assumed.\n", "\n", "To understand the prior, here is a plot of its CDF." ] }, { "cell_type": "code", "execution_count": 4, "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 = {\"597678f2-400f-46d4-8917-f6fc7d916065\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1050\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1059\",\"attributes\":{\"start\":0.001,\"end\":100000.0}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1052\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LogScale\",\"id\":\"p1060\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1061\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1057\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1085\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1079\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1080\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1081\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1086\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1087\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1082\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1083\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1084\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1058\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1072\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1073\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1074\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1075\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1076\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1077\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1078\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1067\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1068\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1069\"},\"axis_label\":\"g(\\u03d5)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1070\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LogAxis\",\"id\":\"p1062\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"LogTicker\",\"id\":\"p1063\",\"attributes\":{\"num_minor_ticks\":10,\"mantissas\":[1,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"LogTickFormatter\",\"id\":\"p1064\"},\"axis_label\":\"'\\u03d5 [\\u00b5m]'\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1065\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1066\",\"attributes\":{\"axis\":{\"id\":\"p1062\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1071\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1067\"}}}],\"frame_width\":300,\"frame_height\":200}}],\"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\":\"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\":\"toggle_value1\",\"properties\":[{\"name\":\"active_icons\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"options\",\"kind\":\"Any\",\"default\":{\"type\":\"map\",\"entries\":[[\"favorite\",\"heart\"]]}},{\"name\":\"value\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_reactions\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_base_url\",\"kind\":\"Any\",\"default\":\"https://tabler-icons.io/static/tabler-icons/icons/\"}]},{\"type\":\"model\",\"name\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"value\",\"kind\":\"Any\",\"default\":null},{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"}]},{\"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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"597678f2-400f-46d4-8917-f6fc7d916065\",\"roots\":{\"p1050\":\"f00e7aaa-a797-4e75-a96e-ec93263ef284\"},\"root_ids\":[\"p1050\"]}];\n", " 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": "p1050" } }, "output_type": "display_data" } ], "source": [ "phi = np.logspace(-3, 5, 200)\n", "cdf = st.lognorm.cdf(phi, s=2.3, loc=0, scale=np.exp(2.3))\n", "\n", "p = bokeh.plotting.figure(\n", " frame_height=200,\n", " frame_width=300,\n", " x_axis_label=\"'ϕ [µm]'\",\n", " y_axis_label=\"g(ϕ)\",\n", " x_range=[1e-3, 1e5],\n", " x_axis_type='log',\n", ")\n", "\n", "p.line(phi, cdf, line_width=2);\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now on to our next prior. The parameter $\\sigma$ describes how the data vary off of the characteristic value of $\\phi$. I am not really sure how variable spindle length is, so I will choose a weakly informative Half-Normal prior.\n", "\n", "\\begin{align}\n", "\\sigma \\sim \\text{HalfNorm}(20).\n", "\\end{align}\n", "\n", "Here is a plot of this prior PDF." ] }, { "cell_type": "code", "execution_count": 5, "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 = {\"d3c28ba9-5f50-4ffc-969b-b6be93bccf4b\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1090\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1099\",\"attributes\":{\"end\":100}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1092\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1100\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1101\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1097\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1125\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1119\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1120\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1121\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAAAADQsuM5lRTgP9Cy4zmVFPA/OIzV1t8e+D/QsuM5lRQAQISfXIi6GQRAOIzV1t8eCEDseE4lBSQMQNCy4zmVFBBAKikg4ScXEkCEn1yIuhkUQN4VmS9NHBZAOIzV1t8eGECSAhJ+ciEaQOx4TiUFJBxARu+KzJcmHkDQsuM5lRQgQP3tgY3eFSFAKikg4ScXIkBXZL40cRgjQISfXIi6GSRAsdr62wMbJUDeFZkvTRwmQAtRN4OWHSdAOIzV1t8eKEBlx3MqKSApQJICEn5yISpAvz2w0bsiK0DseE4lBSQsQBm07HhOJS1ARu+KzJcmLkBzKikg4ScvQNCy4zmVFDBAZtCy4zmVMED97YGN3hUxQJQLUTeDljFAKikg4ScXMkDARu+KzJcyQFdkvjRxGDNA7oGN3hWZM0CEn1yIuhk0QBq9KzJfmjRAsdr62wMbNUBI+MmFqJs1QN4VmS9NHDZAdDNo2fGcNkALUTeDlh03QKJuBi07njdAOIzV1t8eOEDOqaSAhJ84QGXHcyopIDlA/ORC1M2gOUCSAhJ+ciE6QCgg4ScXojpAvz2w0bsiO0BWW397YKM7QOx4TiUFJDxAgpYdz6mkPEAZtOx4TiU9QLDRuyLzpT1ARu+KzJcmPkDcDFp2PKc+QHMqKSDhJz9ACkj4yYWoP0DQsuM5lRRAQJtBy47nVEBAZtCy4zmVQEAyX5o4jNVAQP3tgY3eFUFAyHxp4jBWQUCUC1E3g5ZBQF+aOIzV1kFAKikg4ScXQkD1twc2eldCQMBG74rMl0JAjNXW3x7YQkBXZL40cRhDQCLzpYnDWENA7oGN3hWZQ0C5EHUzaNlDQISfXIi6GURATy5E3QxaREAavSsyX5pEQOZLE4ex2kRAsdr62wMbRUB8aeIwVltFQEj4yYWom0VAE4ex2vrbRUDeFZkvTRxGQKmkgISfXEZAdDNo2fGcRkBAwk8uRN1GQAtRN4OWHUdA1t8e2OhdR0CibgYtO55HQG397YGN3kdAOIzV1t8eSEADG70rMl9IQM6ppICEn0hAmjiM1dbfSEBlx3MqKSBJQDBWW397YElA/ORC1M2gSUDHcyopIOFJQJICEn5yIUpAXZH50sRhSkAoIOEnF6JKQPSuyHxp4kpAvz2w0bsiS0CKzJcmDmNLQFZbf3tgo0tAIepm0LLjS0DseE4lBSRMQLcHNnpXZExAgpYdz6mkTEBOJQUk/ORMQBm07HhOJU1A5ELUzaBlTUCw0bsi86VNQHtgo3dF5k1ARu+KzJcmTkARfnIh6mZOQNwMWnY8p05AqJtBy47nTkBzKikg4SdPQD65EHUzaE9ACkj4yYWoT0DV1t8e2OhPQNCy4zmVFFBANnpXZL40UECbQcuO51RQQAEJP7kQdVBAZtCy4zmVUEDMlyYOY7VQQDJfmjiM1VBAlyYOY7X1UED97YGN3hVRQGO19bcHNlFAyHxp4jBWUUAuRN0MWnZRQJQLUTeDllFA+dLEYay2UUBfmjiM1dZRQMRhrLb+9lFAKikg4ScXUkCQ8JMLUTdSQPW3BzZ6V1JAW397YKN3UkDARu+KzJdSQCYOY7X1t1JAjNXW3x7YUkDxnEoKSPhSQFdkvjRxGFNAvSsyX5o4U0Ai86WJw1hTQIi6GbTseFNA7oGN3hWZU0BTSQEJP7lTQLkQdTNo2VNAHtjoXZH5U0CEn1yIuhlUQOpm0LLjOVRATy5E3QxaVEC19bcHNnpUQBq9KzJfmlRAgISfXIi6VEDmSxOHsdpUQEsTh7Ha+lRAsdr62wMbVUAXom4GLTtVQHxp4jBWW1VA4jBWW397VUBI+MmFqJtVQK2/PbDRu1VAE4ex2vrbVUB4TiUFJPxVQN4VmS9NHFZARN0MWnY8VkCppICEn1xWQA9s9K7IfFZAdDNo2fGcVkDa+tsDG71WQEDCTy5E3VZApYnDWG39VkALUTeDlh1XQHEYq62/PVdA1t8e2OhdV0A8p5ICEn5XQKJuBi07nldABzZ6V2S+V0Bt/e2Bjd5XQNLEYay2/ldAOIzV1t8eWECeU0kBCT9YQAMbvSsyX1hAaeIwVlt/WEDOqaSAhJ9YQDRxGKutv1hAmjiM1dbfWEAAAAAAAABZQA==\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1126\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1127\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1122\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1123\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1124\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1098\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1112\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1113\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1114\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1115\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1116\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1117\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1118\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1107\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1108\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1109\"},\"axis_label\":\"g(\\u03d5)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1110\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1102\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1103\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1104\"},\"axis_label\":\"'\\u03d5 [\\u00b5m]'\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1105\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1106\",\"attributes\":{\"axis\":{\"id\":\"p1102\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1111\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1107\"}}}],\"frame_width\":300,\"frame_height\":200}}],\"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\":\"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\":\"toggle_value1\",\"properties\":[{\"name\":\"active_icons\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"options\",\"kind\":\"Any\",\"default\":{\"type\":\"map\",\"entries\":[[\"favorite\",\"heart\"]]}},{\"name\":\"value\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_reactions\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_base_url\",\"kind\":\"Any\",\"default\":\"https://tabler-icons.io/static/tabler-icons/icons/\"}]},{\"type\":\"model\",\"name\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"value\",\"kind\":\"Any\",\"default\":null},{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"}]},{\"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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"d3c28ba9-5f50-4ffc-969b-b6be93bccf4b\",\"roots\":{\"p1090\":\"b25fb88a-4b24-4bb0-a49d-030262b23ed9\"},\"root_ids\":[\"p1090\"]}];\n", " 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": "p1090" } }, "output_type": "display_data" } ], "source": [ "sigma = np.linspace(0, 100, 200)\n", "pdf = st.halfnorm.pdf(sigma, 0, 20)\n", "\n", "p = bokeh.plotting.figure(\n", " frame_height=200,\n", " frame_width=300,\n", " x_axis_label=\"'ϕ [µm]'\",\n", " y_axis_label=\"g(ϕ)\",\n", " x_range=[0, 100],\n", ")\n", "\n", "p.line(sigma, pdf, line_width=2);\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that zero is the most probable value of $\\sigma$, and I don't really believe this. Nonetheless, there is not much probability *mass* near zero, and the prior is very broad, so these details will have little effect on the posterior.\n", "\n", "Thus, my complete generative model for the independent spindle size model is\n", "\n", "\\begin{align}\n", "&\\phi \\sim \\text{Norm}(2.3, 2.3), \\\\[1em]\n", "&\\sigma \\sim \\text{HalfNorm}(20),\\\\[1em]\n", "&l_i \\sim \\text{Norm}(\\phi, \\sigma) \\;\\forall i.\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Estimation of the MAP parameters\n", "\n", "We could plot the entire posterior distribution (and in fact we did, albeit with different priors, in a previous lesson) to get a full understanding of the posterior. Instead, we will compute the MAP and approximate the posterior as Normal near the MAP.\n", "\n", "Finding the MAP amounts to an **optimization problem** in which we find the arguments (parameters) for which a function (the posterior distribution) is maximal. It is almost always much easier to find the maximum for the *logarithm* of the posterior. In fact, in the fast majority of Bayesian inference problems, we work with log posteriors instead of the posteriors themselves. Since the logarithm function is monotonic, a maximum of the log posterior is also a maximum of the posterior. So, our first step is code up a function that returns the log posterior. \n", "\n", "In considering a log posterior, it is useful to know that\n", "\n", "\\begin{align}\n", "\\ln g(\\theta \\mid y) = \\text{constant} + \\ln f(y \\mid \\theta) + \\ln g(\\theta).\n", "\\end{align}\n", "\n", "Furthermore, if the priors for each parameter are independent, such that\n", "\n", "\\begin{align}\n", "g(\\theta) = g(\\theta_1)\\, g(\\theta_2)\\cdots,\n", "\\end{align}\n", "\n", "and the measurements are independent and identically distributed (i.i.d.), such that\n", "\n", "\\begin{align}\n", "f(y\\mid \\theta) = f(y_1 \\mid \\theta)\\,f(y_2 \\mid \\theta)\\,f(y_3 \\mid \\theta)\\cdots,\n", "\\end{align}\n", "\n", "then\n", "\n", "\\begin{align}\n", "\\ln g(\\theta \\mid y) = \\text{constant} + \\sum_i \\ln f(y_i \\mid \\theta) + \\sum_j \\ln g(\\theta_j).\n", "\\end{align}\n", "\n", "This means that we can construct the log posterior by summing up all of the terms in the log likelihood and log prior.\n", "\n", "Fortunately, we do not have to hand-code any of the mathematical expressions for the log PDFs; we can use the built-in `scipy.stats` functions." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def log_prior(phi, sigma):\n", " \"\"\"Log prior for independent size model\"\"\"\n", " lp = st.lognorm.logpdf(phi, 2.3, loc=0, scale=np.exp(2.3))\n", " lp += st.halfnorm.logpdf(sigma, 0, 20)\n", "\n", " return lp\n", "\n", "\n", "def log_likelihood(ell, phi, sigma):\n", " \"\"\"Log likelihood for independent size model\"\"\"\n", " return np.sum(st.norm.logpdf(ell, phi, sigma))\n", "\n", "\n", "def log_posterior(params, ell):\n", " \"\"\"Log posterior of indpendent size model.\"\"\"\n", " phi, sigma = params\n", "\n", " lp = log_prior(phi, sigma)\n", " if lp == -np.inf:\n", " return lp\n", " \n", " return lp + log_likelihood(ell, phi, sigma)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have the log posterior, we can perform numerical optimization. The function `scipy.optimize.minimize()` offers many options for algorithms, which you can read about in the [documentation](http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html). I find that [Powell's method](https://en.wikipedia.org/wiki/Powell%27s_method) tends to work well. It does not rely on derivative information, so discontinuities don't hurt, nor do the $-\\infty$ values we get in the log posterior for parameter values that are out of bounds. That is particularly important for the present example because we have hard bounds on $\\sigma$ and $\\phi$; they must be positive. We could use constrained optimizers such as L-BFGS-B or COBYLA, but Powell's method generally suffices. It is sometimes slow, though.\n", "\n", "The optimizers offered by `scipy.optimize.minimize()` find *minimizers*, so we need to define our objective function as the *negative* log posterior." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def neg_log_posterior(params, ell):\n", " return -log_posterior(params, ell)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we have to provide an initial guess for parameter values. The optimization routine only finds a *local* maximum and is not in general guaranteed to converge. Therefore, the initial guess can be very important. Looking at the data, we would expect $\\phi$ to be somewhere around 35 µm and for $\\sigma$ to be 7 µm." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "params_0 = np.array([35, 7])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are now ready to use `scipy.optimize.minimze()` to compute the MAP. We use the `args` kwarg to pass in the other arguments to the `neg_log_posterior()` function. In our case, these arguments are the data points. The `scipy.optimzie.minimize()` function returns an object that has several attributes about the resulting optimization. Most important is `x`, the optimal parameter values." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Most probable parameters\n", "------------------------\n", "φ = 32.86 µm\n", "σ = 4.784 µm\n", "\n" ] } ], "source": [ "# Specify extra arguments into posterior function\n", "args = (ell,)\n", "\n", "# Compute the MAP\n", "res = scipy.optimize.minimize(\n", " neg_log_posterior, params_0, args=args, method=\"powell\"\n", ")\n", "\n", "# Extract optimal parameters\n", "popt = res.x\n", "\n", "# For convenience...\n", "phi_MAP, sigma_MAP = popt\n", "\n", "# Print results\n", "print(\n", " \"\"\"\n", "Most probable parameters\n", "------------------------\n", "φ = {0:.2f} µm\n", "σ = {1:.3f} µm\n", "\"\"\".format(\n", " phi_MAP, sigma_MAP\n", " )\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have successfully found the MAP which provides just that; the maximally probable parameter values. This tells us only one piece of information about the posterior; where it is maximal. So we know where all of the first derivatives of the posterior are zero. We want to learn more about it, at least near the MAP. To that end, we can compute all of the second derivatives of the log posterior near the MAP. Using the second derivatives (the Hessian), we can start to understand the posterior, at least locally, by approximating it as Normal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normal approximation of the posterior\n", "\n", "To compute the Normal approximation of the posterior, our task is two-fold. First, find the parameter values that give the maximal posterior probability, which we have already done. Second, compute the Hessian of the log posterior at the MAP and invert it to get your covariance matrix. Note that the covariance matrix is **not** the inverse of every element of the Hessian; it is the inverse of the Hessian *matrix*. The credible interval for each parameter can then be calculated from the diagonal elements of the covariance matrix.\n", "\n", "To compute the covariance matrix, we need to compute the Hessian of the log of the posterior at the MAP. We will do this numerically using the `statsmodels.tools.numdiff` module, which we imported as `smnd`. We use the function `smnd.approx_hess()` to compute the Hessian at the optimal parameter values. Note that since we already have the log posterior coded up and the MAP parameter values, we can just directly shove these into the numerical Hessian calculator." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "hes = smnd.approx_hess(popt, log_posterior, args=args)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have the Hessian, we take its negative inverse to get the covariance matrix." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3.41668904e-02, -9.09388085e-06],\n", " [-9.09388085e-06, 1.70799615e-02]])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compute the covariance matrix\n", "cov = -np.linalg.inv(hes)\n", "\n", "# Look at it\n", "cov" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The diagonal terms give the approximate variance in the parameters in the posterior. The off-diagonal terms give the covariance, which describes how the parameters relate to each other. Nonzero covariance indicates that they are not completely independent." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Credible intervals\n", "\n", "We can compute the approximate 95% credible intervals for the parameters by multiplying the diagonal terms of the posterior covariance matrix $\\mathsf{\\Sigma}$ by 1.96." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Results for conserved tubulin model (≈ 95% of total probability density)\n", "------------------------------------------------------------------------\n", "ϕ = 32.86 ± 0.36 µm\n", "σ = 4.784 ± 0.256 µm\n", "\n" ] } ], "source": [ "# Report results\n", "print(\"\"\"\n", "Results for conserved tubulin model (≈ 95% of total probability density)\n", "------------------------------------------------------------------------\n", "ϕ = {0:.2f} ± {1:.2f} µm\n", "σ = {2:.3f} ± {3:.3f} µm\n", "\"\"\".format(phi_MAP, 1.96*np.sqrt(cov[0,0]), sigma_MAP, 1.96*np.sqrt(cov[1,1])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### How good is the approximation?\n", "\n", "To assess how close the Normal approximation is to the posterior, let's plot the Normal approximation and the exact marginalized posterior on the same contour plot. We can use `scipy.stats.multivariate_normal.pdf()` function to generate the PDF for the Normal approximation.\n", "\n", "The calculation will take a while, since we have to compute the whole posterior in the neighborhood of the MAP to plot it. The whole reason we used optimization in the first place was to avoid this calculation! But we are doing it here to visualize the Normal approximation." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████████| 200/200 [00:24<00:00, 8.22it/s]\n" ] } ], "source": [ "# Set up ranges for plots; should be near MAP\n", "phi = np.linspace(32.4, 33.5, 200)\n", "sigma = np.linspace(4.4, 5.2, 200)\n", "\n", "# Compute posteriors\n", "post_norm = np.empty((len(phi), len(sigma)))\n", "log_post_exact = np.empty((len(phi), len(sigma)))\n", "for i in tqdm.tqdm(range(len(phi))):\n", " for j in range(len(sigma)):\n", " post_norm[i, j] = st.multivariate_normal.pdf(\n", " (phi[i], sigma[j]), popt, cov\n", " )\n", " log_post_exact[i, j] = log_posterior((phi[i], sigma[j]), args)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's plot the contours, overlaying the exact posterior with the Normal approximation." ] }, { "cell_type": "code", "execution_count": 14, "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 = {\"17b3e7c4-4ed7-420e-ad40-b9abbb77a9d2\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1130\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1131\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1132\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1139\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1140\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1137\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1164\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1158\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1159\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1160\"},\"data\":{\"type\":\"map\",\"entries\":[[\"xs\",[{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[521],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[395],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[265],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YpqzVTpzQED0RHz/lXNAQIDlrCBLdEBADIbdQQB1QECYJg5jtXVAQCTHPoRqdkBAsGdvpR93QEA8CKDG1HdAQMio0OeJeEBAVEkBCT95QEDf6TEq9HlAQGuKYkupekBAuToDcdJ6QED3KpNsXntAQIPLw40TfEBANFYJ7mJ8QEAPbPSuyHxAQJsMJdB9fUBAjD9ZOoZ9QEAnrVXxMn5AQF1jI2BqfkBAs02GEuh+QECQ9vMCKH9AQD/utjOdf0BA6aV3WMh/QEA53AeqUYBAQMuO51RSgEBAu0ko/MSAQEBXLxh2B4FAQL6TiOIogUBAzsCBzHyBQEDjz0iXvIFAQH0NjirEgUBAUMa2H/2BQECH7rrqKoJAQF2crbFNgkBAdHR0kWWCQEBvcHm4cYJAQONWB5RygkBAUgocv3SCQEBvcHm4cYJAQEsi0l9sgkBAfheAEFmCQECWS13kOoJAQLy3u8IRgkBAhj3Tid2BQEDjz0iXvIFAQPmoKYWcgUBAdLXcy02BQEBXLxh2B4FAQAie05nxgEBAmn2nH4SAQEDLjudUUoBAQCKnBVMEgEBAP+62M51/QEBih+FUb39AQLNNhhLofkBAPbkOY79+QEAnrVXxMn5AQFgSPRnsfUBAmwwl0H19QEBcLqLi6HxAQA9s9K7IfEBAg8vDjRN8QEB8a5RYkntAQPcqk2xee0BAa4piS6l6QEDf6TEq9HlAQILfZwZveUBAVEkBCT95QEDIqNDniXhAQDwIoMbUd0BAsGdvpR93QEAkxz6EanZAQJgmDmO1dUBADIbdQQB1QEB7QBeDmnRAQIDlrCBLdEBA9ER8/5VzQEBopEve4HJAQCizAvN0ckBA3AMbvStyQEBQY+qbdnFAQGaDl6sdcUBAxMK5esFwQECcHs+eFnBAQDgiiVkMcEBArIFYOFdvQEDnZgw4Q29AQCDhJxeibkBAp7FEHpJuQEBTn0zy+21AQJRA9/XsbUBA1hEjmXxtQEAIoMbUN21AQM1Yd4MObUBA4rKjKbFsQEB8/5WzgmxAQOgpzBpibEBATOPhKCFsQEB2iYao62tAQPBeZZLNa0BARBCCFcJrQEAAcZiupGtAQJzdGOaRa0BAmE9qsYlrQEDAs9ILjGtAQH6zcfaYa0BAAQxCeLBrQEDwXmWSzWtAQDstZOHSa0BAHUqpEwJsQECuenKkPGxAQHz/lbOCbEBAfP+Vs4JsQEBYw1Ia2WxAQAigxtQ3bUBAFlPrQDxtQEB5MInvsm1AQJRA9/XsbUBAIM0RmzxuQEAg4ScXom5AQOGCrrLdbkBArIFYOFdvQEDrhH/hnG9AQDgiiVkMcEBAujik0YNwQEDEwrl6wXBAQFBj6pt2cUBAwLa5cqZxQEDcAxu9K3JAQGikS97gckBAYpqzVTpzQEA=\"},\"shape\":[133],\"dtype\":\"float64\",\"order\":\"little\"}]],[\"ys\",[{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[521],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[395],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[265],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RuZLE4exEkB158Dvy7ASQHCPAN+frxJAu40KWrmuEkBeJnXHF64SQMWtQMG6rRJA53//E6KtEkBZQz2+za0SQJ7UI/A9rhJAraRcC/OuEkDHxi2j7a8SQCU/0nwusRJARuZLE4exEkDNDXILxrISQGXHSjqutBJAo6Os66S1EkD7x28D9rYSQDQm63ufuRJAAGENxMK5EkCkXeGqzLwSQFwebpzgvRJAo9vr34XAEkC52850/sESQIK69/HvxBJAFpkvTRzGEkBzVpAlOsoSQLxU49U/yhJA0BPx/VfOEkAcFYBdBtESQC3RUdZ10hJAio6yrpPWEkDk6MkGPNoSQOdLE4ex2hJARAl0X8/eEkCgxtQ37eISQP2DNRAL5xJAWkGW6CjrEkB6pC9J/u4SQLf+9sBG7xJAFLxXmWTzEkBbPVl07PQSQHF5uHGC9xJAzjYZSqD7EkAr9Hkivv8SQIex2vrbAxNA5G470/kHE0CqLo5AHgoTQEAsnKsXDBNAnun8gzUQE0ALQRgpZRMTQPumXVxTFBNAWGS+NHEYE0CRfZ2iHRoTQLUhHw2PHBNAVMaB5XkfE0AS33/lrCATQD0k1TXnIxNAbpzgvcokE0BOB7wtnicTQMtZQZboKBNAriNAIcYqE0AoF6JuBi0TQJOXv/J6LRNAGIeqk74vE0CF1AJHJDETQDHpYqyrMRNAnlaOxzwzE0BKWdgvhTQTQOKRYx9CNRNA45YtxYI1E0D+X+UCNDYTQIRwLiGiNhNAcLqgfM02E0AB0Z5BtjYTQO76NGxcNhNA9WK9x781E0DikWMfQjUTQCLdMzrbNBNAoWa4nakzE0CWWTYkMDITQIXUAkckMRNAq85RFmQwE0DGGR3AOy4TQCgXom4GLRNAl9nXzrArE0DLWUGW6CgTQAAH9aS6KBNAE8lgyTclE0BunOC9yiQTQLbIAJATIRNAEt9/5awgE0C1IR8NjxwTQPjsdiQbHBNAWGS+NHEYE0BUNMcO8BUTQPumXVxTFBNAnun8gzUQE0DEQFr52Q0TQEEsnKsXDBNA5G470/kHE0CHsdr62wMTQMCpwNLsABNAK/R5Ir7/EkDONhlKoPsSQHF5uHGC9xJAFLxXmWTzEkC3/vbARu8SQFpBlugo6xJA/YM1EAvnEkC9YFKXiOMSQKDG1Dft4hJARAl0X8/eEkDnSxOHsdoSQIqOsq6T1hJAio6yrpPWEkAu0VHWddISQP1i2ASEzhJA0BPx/VfOEkBzVpAlOsoSQN6tCTlqyBJAFpkvTRzGEkCw9CrYb8MSQLjbznT+wRJAAOox9Um/EkBcHm6c4L0SQCb9w1PIuxJAAGENxMK5EkB9jH8gybgSQDLFcUE8thJAo6Os66S1EkBqR1PNF7QSQE4yoqRHshJARuZLE4exEkA=\"},\"shape\":[133],\"dtype\":\"float64\",\"order\":\"little\"}]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1165\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1166\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1161\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_width\":{\"type\":\"value\",\"value\":2}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1162\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"line_width\":{\"type\":\"value\",\"value\":2}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1163\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":2}}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1173\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1167\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1168\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1169\"},\"data\":{\"type\":\"map\",\"entries\":[[\"xs\",[{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[521],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[395],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[261],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w9ehKRdzQED0RHz/lXNAQIDlrCBLdEBADIbdQQB1QECYJg5jtXVAQCTHPoRqdkBAsGdvpR93QEA8CKDG1HdAQMio0OeJeEBAVEkBCT95QEDf6TEq9HlAQGuKYkupekBAa4piS6l6QED3KpNsXntAQIPLw40TfEBAqGZC6Tl8QEAPbPSuyHxAQDxxBqlcfUBAmwwl0H19QEAnrVXxMn5AQE/LZrJDfkBAs02GEuh+QEC8sRnfAX9AQD/utjOdf0BAbS2HG6N/QECkkQwuK4BAQMuO51RSgEBAeZIm4Z+AQECyLQwCBYFAQFcvGHYHgUBAiGHjh1iBQEBt9insn4FAQOPPSJe8gUBA4RGU/NmBQEDIQBGSB4JAQJcURjYqgkBAjC5EAUKCQEAYDJwDT4JAQMYHcEZRgkBACtF+y0iCQEAJbCWNNYJAQEO8WH4XgkBABJCWiu6BQEDjz0iXvIFAQKKOLXu6gUBA9XX+G3iBQEDHKFPWKYFAQFcvGHYHgUBAF+yQOcyAQECMvaKPX4BAQMuO51RSgEBAcsOOjN5/QEA/7rYznX9AQHYdtnBIf0BAs02GEuh+QECSnVmdl35AQCetVfEyfkBAMQ9W+sN9QECbDCXQfX1AQA9s9K7IfEBAimkRusB8QECDy8ONE3xAQLUvh4hpe0BA9yqTbF57QEBrimJLqXpAQN/pMSr0eUBA8rCxbER5QEBUSQEJP3lAQMio0OeJeEBAPAigxtR3QECwZ2+lH3dAQCTHPoRqdkBAmCYOY7V1QEAMht1BAHVAQCD6w4l4dEBAgOWsIEt0QED0RHz/lXNAQGikS97gckBAmZMLyVByQEDcAxu9K3JAQFBj6pt2cUBAguexDPpwQEDEwrl6wXBAQDgiiVkMcEBA+zA1JPRvQECsgVg4V29AQEIqnWAhb0BAIOEnF6JuQEC8XbKhcG5AQJRA9/XsbUBAzKLHKtptQEBiRVKeWm1AQAigxtQ3bUBAIZ+8sO1sQECRx02vj2xAQHz/lbOCbEBAzxdo7kFsQEADLMebAGxAQPBeZZLNa0BAnbby+sprQECLDfOromtAQMsnhR+Fa0BA5sIfQXJrQEAjO5kDamtAQMJzGGFsa0BAqiMOW3lrQEDJezb6kGtAQM8po06za0BA8F5lks1rQEDbaUJj4WtAQKrHdUMcbEBAOr/XxGJsQEB8/5WzgmxAQPnQu+q3bEBAcN1GkhttQEAIoMbUN21AQODWa3mRbUBAlED39extQED4dsg0Gm5AQCDhJxeibkBAGcCnkbpuQECsgVg4V29AQJwrUnN5b0BAOCKJWQxwQEAIq8/2YHBAQMTCuXrBcEBAUGPqm3ZxQEDXZrO5gXFAQNwDG70rckBAaKRL3uByQEDD16EpF3NAQA==\"},\"shape\":[131],\"dtype\":\"float64\",\"order\":\"little\"}]],[\"ys\",[{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[521],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[395],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[261],\"dtype\":\"float64\",\"order\":\"little\"},{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RuZLE4exEkAu5ihqjrASQM1BeTdxrxJAnObnoZmuEkCANYENB64SQEqO0BC5rRJA0E5gdK+tEkAsk3Yy6q0SQOpEDndprhJAYG0MoC2vEkC5JbI9N7ASQEbmSxOHsRJARuZLE4exEkBYjTjLMrMSQCKiTY0qtRJAo6Os66S1EkDvejCsibcSQABhDcTCuRJAXCBUY0u6EkAToz3Ei70SQFwebpzgvRJAYbY2OmTBEkC52850/sESQJPPoaTyxRJAFpkvTRzGEkBzVpAlOsoSQEznWlaLyxJA0BPx/VfOEkAt0VHWddISQBDOjveS0hJAio6yrpPWEkDnSxOHsdoSQKYLhE2r3BJARAl0X8/eEkCgxtQ37eISQP2DNRAL5xJAWkGW6CjrEkC3/vbARu8SQBS8V5lk8xJAcXm4cYL3EkDONhlKoPsSQCr0eSK+/xJAh7Ha+tsDE0CJC7lO0QcTQORuO9P5BxNAQSycqxcME0Ce6fyDNRATQKNslAzIERNA+6ZdXFMUE0BYZL40cRgTQAAIaVjkGBNAtSEfDY8cE0DqENJUbh4TQBLff+WsIBNAUjpEDwIjE0BunOC9yiQTQG6UgtzZJhNAy1lBlugoE0DzOCNIHioTQK4biYnqLBNAKBeibgYtE0Cuc2aJPy8TQIXUAkckMRNA79uBKEIxE0B4c6d84jITQEjBtys6NBNA4pFjH0I1E0A0EYzRSTUTQLKmKbsJNhNAW+3fiIY2E0CUlVaUwDYTQCrSlQa4NhNAaBc42Gw2E0DiI2HR3jUTQOKRYx9CNRNAmqthAws1E0Bz6WWT6DMTQMPF8zB+MhNAhdQCRyQxE0DYFWcPxjATQAIBt1etLhNAKBeibgYtE0AlZjN2OSwTQP5YfUpWKRNAy1lBlugoE0AtEoqO6yUTQG6c4L3KJBNAmSiNT+YhE0AS33/lrCATQIotN80bHRNAtSEfDY8cE0BYZL40cRgTQFRffx0wFxNA+6ZdXFMUE0Ce6fyDNRATQOrASECODxNAQSycqxcME0DkbjvT+QcTQCarOJARBBNAh7Ha+tsDE0Ar9Hkivv8SQM42GUqg+xJAcHm4cYL3EkAUvFeZZPMSQLb+9sBG7xJAWkGW6CjrEkD9gzUQC+cSQKDG1Dft4hJAQI1S74bgEkBECXRfz94SQOhLE4ex2hJAio6yrpPWEkBvcctN+dQSQC3RUdZ10hJA0BPx/VfOEkBU+8D5Tc0SQHNWkCU6yhJAYzzec2fHEkAWmS9NHMYSQH/zvxOUwhJAudvOdP7BEkCwmKNSj74SQFwebpzgvRJAHVLqSiq7EkAAYQ3EwrkSQMiK2h1EuBJAjh7dLce1EkCjo6zrpLUSQNJe0jy4sxJAYjAKefexEkBG5ksTh7ESQA==\"},\"shape\":[131],\"dtype\":\"float64\",\"order\":\"little\"}]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1174\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1175\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1170\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_width\":{\"type\":\"value\",\"value\":2}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1171\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"line_width\":{\"type\":\"value\",\"value\":2}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1172\",\"attributes\":{\"xs\":{\"type\":\"field\",\"field\":\"xs\"},\"ys\":{\"type\":\"field\",\"field\":\"ys\"},\"line_color\":{\"type\":\"value\",\"value\":\"orange\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"line_width\":{\"type\":\"value\",\"value\":2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1138\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1151\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1152\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1153\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1154\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1155\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1156\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1157\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1146\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1147\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1148\"},\"axis_label\":\"\\u03c3 [\\u00b5m]\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1149\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1141\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1142\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1143\"},\"axis_label\":\"\\u03d5 [\\u00b5m]\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1144\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1145\",\"attributes\":{\"axis\":{\"id\":\"p1141\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1150\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1146\"}}}],\"frame_width\":300,\"frame_height\":300}}],\"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\":\"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\":\"toggle_value1\",\"properties\":[{\"name\":\"active_icons\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"options\",\"kind\":\"Any\",\"default\":{\"type\":\"map\",\"entries\":[[\"favorite\",\"heart\"]]}},{\"name\":\"value\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_reactions\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"_base_url\",\"kind\":\"Any\",\"default\":\"https://tabler-icons.io/static/tabler-icons/icons/\"}]},{\"type\":\"model\",\"name\":\"copy_to_clipboard1\",\"properties\":[{\"name\":\"value\",\"kind\":\"Any\",\"default\":null},{\"name\":\"fill\",\"kind\":\"Any\",\"default\":\"none\"}]},{\"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\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"17b3e7c4-4ed7-420e-ad40-b9abbb77a9d2\",\"roots\":{\"p1130\":\"d62696a6-5a02-43e7-8d1e-08197b41028d\"},\"root_ids\":[\"p1130\"]}];\n", " 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": "p1130" } }, "output_type": "display_data" } ], "source": [ "# Scale exact to about underflow\n", "post_exact = np.exp(log_post_exact - log_post_exact.max())\n", "\n", "# Make contours\n", "p = bebi103.viz.contour(\n", " phi, sigma, post_exact, x_axis_label=\"ϕ [µm]\", y_axis_label=\"σ [µm]\"\n", ")\n", "p = bebi103.viz.contour(\n", " phi, sigma, post_norm, line_kwargs=dict(line_color=\"orange\"), p=p\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Normal approximation, shown in orange, is not that far off from the posterior, especially at the peak. **This is not always the case!** This is one of the main dangers of using optimization, you are using *very* local information to summarize a posterior that may have relevant features away from the MAP." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.11.5\n", "IPython version : 8.15.0\n", "\n", "numpy : 1.26.2\n", "pandas : 2.1.4\n", "scipy : 1.11.4\n", "tqdm : 4.65.0\n", "statsmodels: 0.14.0\n", "bokeh : 3.3.0\n", "bebi103 : 0.1.19\n", "jupyterlab : 4.0.10\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,pandas,scipy,tqdm,statsmodels,bokeh,bebi103,jupyterlab" ] } ], "metadata": { "anaconda-cloud": {}, "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.11.5" } }, "nbformat": 4, "nbformat_minor": 4 }