{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian approach to parameter estimation by optimization\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(\"eabccb05-b1e7-4844-baf9-a05e274347a1\");\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(\"eabccb05-b1e7-4844-baf9-a05e274347a1\")).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(\"eabccb05-b1e7-4844-baf9-a05e274347a1\");\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(\"eabccb05-b1e7-4844-baf9-a05e274347a1\")).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 warnings\n", "with warnings.catch_warnings():\n", " warnings.simplefilter('ignore')\n", "\n", " import numpy as np\n", " import scipy.stats as st\n", " import bebi103.viz\n", "\n", "import bokeh.io\n", "import bokeh.plotting\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have learned in previous lessons that the posterior distribution for a set of parameters $\\theta$ given a data set $y$ is given by the likelihood $f(y\\mid \\theta)$ and prior $g(\\theta)$ according to\n", "\n", "\\begin{align}\n", "g(\\theta\\mid y) \\propto f(y\\mid \\theta)\\,g(\\theta).\n", "\\end{align}\n", "\n", "The central goal of Bayesian inference is making sense of this posterior distribution; writing it down is the easy part." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summarizing the posterior near its maximum\n", "\n", "For many posteriors, there exists a set of parameters for which the posterior is maximal. This set of parameters, denoted $\\theta^*$, is referred to as the **maximal a posteriori** parameter set, abbreviated **MAP**. Given that $\\theta^*$ maximizes the posterior, it is of some importance (but certainly not paramount importance, as we will learn throughout the course), and may be useful in summarizing a posterior.\n", "\n", "Finding the MAP is an optimization problem. In some simple, rare cases, the optimization problem may be solved analytically. We will not dwell on these, because they are so seldom encountered. Instead, we will discuss numerical methods for finding $\\theta^*$ for continuous $\\theta$ as we proceed through this lesson. For now, we will proceed assuming we have found $\\theta^*$ and seek to approximate the posterior distribution near the MAP.\n", "\n", "Near the MAP, we can approximately express the log posterior as a Taylor expansion truncated to second order,\n", "\n", "\\begin{align}\n", "\\ln g(\\theta\\mid y) \\approx \\ln g(\\theta^*\\mid y) + \\frac{1}{2}\\left(\\theta - \\theta^*\\right)^\\mathsf{T} \\cdot \\mathsf{B} \\cdot \\left(\\theta - \\theta^*\\right),\n", "\\end{align}\n", "\n", "where $\\mathsf{B}$ is the symmetric **Hessian matrix** of second derivatives, with entries\n", "\n", "\\begin{align}\n", "B_{ij} = \\left.\\frac{\\partial^2\\,\\ln g(\\theta\\mid y)}{\\partial \\theta_i\\,\\partial \\theta_j}\\right|_{\\theta = \\theta^*}.\n", "\\end{align}\n", "\n", "In one dimension, this is\n", "\n", "\\begin{align}\n", "\\ln g(\\theta\\mid y) \\approx \\ln g(\\theta^*\\mid y) + \\frac{1}{2}\\left(\\left.\\frac{\\partial^2\\,\\ln g(\\theta\\mid y)}{\\partial \\theta^2}\\right|_{\\theta = \\theta^*}\\right) \\left(\\theta - \\theta^*\\right)^2 = \\ln g(\\theta^*\\mid y) - \\frac{\\left(\\theta - \\theta^*\\right)^2}{2\\sigma^2},\n", "\\end{align}\n", "\n", "where we have defined\n", "\n", "\\begin{align}\n", "\\sigma^2 = -\\left(\\left.\\frac{\\partial^2\\,\\ln g(\\theta\\mid y)}{\\partial \\theta^2}\\right|_{\\theta = \\theta^*}\\right)^{-1}.\n", "\\end{align}\n", "\n", "We note that the $-(\\theta-\\theta^*)^2/2\\sigma^2$ term is the $\\theta$-dependence of the logarithm of the PDF of a Normal distribution! We can therefore locally approximate the posterior distribution as Normal near the MAP;\n", "\n", "\\begin{align}\n", "g(\\theta\\mid y) \\approx \\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\,\\exp\\left[-\\frac{\\left(\\theta - \\theta^*\\right)^2}{2\\sigma^2}\\right].\n", "\\end{align}\n", "\n", "This generalizes to multiple dimensions, where the covariance matrix $\\mathsf{\\Sigma}$ of the approximate multivariate Normal distribution is related to the Hessian matrix by\n", "\n", "\\begin{align}\n", "\\mathsf{\\Sigma} = - \\mathsf{B}^{-1}.\n", "\\end{align}\n", "\n", "Note that the covariance matrix is **not** the inverse of every element of the Hessian; it is the inverse of the Hessian *matrix*. Note also that optimization theory tells us that because the Hessian is evaluated at $\\theta^*$, which maximizes the posterior, the Hessian must be negative definite. Therefore, the covariance matrix must be positive definite, which we already know must by the case for a multivariate Normal distribution. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Demonstration of the Normal approximation\n", "\n", "Actually, the probability density function of *any* continuous, peaked distribution can be approximated as Normal near a peak. We can demonstrate this fact by approximating a Gamma distribution locally as Normal. Recall that the PDF for a Gamma distribution is\n", "\n", "\\begin{align}\n", "f(x ; \\alpha, \\beta) = \\frac{1}{\\Gamma(\\alpha)}\\,\\frac{(\\beta x)^\\alpha}{x}\\,\\mathrm{e}^{-\\beta x}.\n", "\\end{align}\n", "\n", "We can analytically find the mode by setting\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}\\,\\ln f}{\\mathrm{d}x} = \\frac{\\mathrm{d}}{\\mathrm{d}x}\\left((\\alpha-1)\\ln x - \\beta x\\right) = \\frac{\\alpha-1}{x} - \\beta = 0,\n", "\\end{align}\n", "\n", "and solving to get $x^* = (\\alpha - 1) / \\beta$. We can also compute the second derivative as\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}^2\\,\\ln f}{\\mathrm{d}x^2} = -\\frac{\\alpha - 1}{x^2},\n", "\\end{align}\n", "\n", "which evaluated at $x^*$ is $-\\beta^2 / (\\alpha - 1)$. Therefore, the scale parameter for the approximate Normal distribution is $\\sigma = \\sqrt{\\alpha - 1} / \\beta$. We can plot the distribution and its Normal approximation as a visualization. We do this for $\\alpha = 50$ and $\\beta = 20$." ] }, { "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 = {\"d7ad4ed7-65fc-4dbb-a337-4559e7b2bd2a\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1002\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1011\",\"attributes\":{\"start\":1,\"end\":5}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1004\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1012\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1013\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1009\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1037\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1031\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1032\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1033\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1038\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1039\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1034\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1035\",\"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\":\"p1036\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1048\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1042\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1043\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1044\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1049\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1050\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1045\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1046\",\"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\":\"p1047\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1010\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1024\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1025\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1026\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1027\",\"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\":\"p1028\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1029\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1030\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1019\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1020\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1021\"},\"axis_label\":\"PDF\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1022\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1014\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1015\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1016\"},\"axis_label\":\"x\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1017\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1018\",\"attributes\":{\"axis\":{\"id\":\"p1014\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1023\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1019\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1040\",\"attributes\":{\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1041\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Gamma\"},\"renderers\":[{\"id\":\"p1037\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1051\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Normal\"},\"renderers\":[{\"id\":\"p1048\"}]}}]}}],\"frame_width\":400,\"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\":\"d7ad4ed7-65fc-4dbb-a337-4559e7b2bd2a\",\"roots\":{\"p1002\":\"f051ca4d-bfa5-4501-9c86-73b3d584a17e\"},\"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": [ "x = np.linspace(1, 5, 400)\n", "alpha = 50\n", "beta = 20\n", "y_gamma = st.gamma.pdf(x, alpha, loc=0, scale=1 / beta)\n", "y_norm = st.norm.pdf(x, (alpha - 1) / beta, np.sqrt(alpha - 1) / beta)\n", "\n", "p = bokeh.plotting.figure(\n", " frame_width=400,\n", " frame_height=200,\n", " x_range=[1, 5],\n", " x_axis_label=\"x\",\n", " y_axis_label=\"PDF\",\n", ")\n", "\n", "p.line(x, y_gamma, line_width=2, legend_label=\"Gamma\")\n", "p.line(x, y_norm, line_width=2, color=\"tomato\", legend_label=\"Normal\")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Credible intervals\n", "\n", "A $\\alpha$-percent Bayesian **credible interval** for a parameter is an an interval that contains $\\alpha$ percent of the posterior probability density. (This is different form a frequentist confidence interval, though a confidence interval is often erroneously interpreted as a credible interval.) For example, if $g(\\theta \\mid y)$ is the marginalized posterior probability density function for a single parameter $\\theta$ and $G(\\theta\\mid y)$ is the cumulative distribution function, then a 95% credible interval is $[G^{-1}(0.025),\\;G^{-1}(0.975)]$.\n", "\n", "If we approximate the posterior as a multivariate Normal distribution, we have *analytical* results for credible intervals for each parameter. This is the main benefit of using optimization; it affords us an approximate (Normal) expression for the posterior that has convenient, known analytical results. This enables us to make sense of the posterior. \n", "\n", "Specifically, if $\\Sigma_{ii}$ is a diagonal element in the covariance matrix $\\mathsf{\\Sigma}$, then, e.g., the 95% credible interval for parameter $\\theta_i$ is centered on the MAP estimate, $\\theta_i^*$ and is $[\\theta_i^* - 1.96\\sqrt{\\Sigma_{ii}},\\;\\theta_i^* + 1.96\\sqrt{\\Sigma_{ii}}]$. Because the credible intervals are symmetric under this approximation, we can report the estimates as the $\\theta_i^* \\pm 1.96 \\sqrt{\\Sigma_{ii}}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Credible intervals may be skewed\n", "\n", "We are approximating the *PDF* of a distribution close to its mode as Normal. However, for an asymmetric distribution, which posterior distributions can certainly be, the mode may not be all that relevant as far as credible regions go. As an extreme example, consider an Exponential distribution. It's mode is zero, which is also the minimal allowed value. If we were to compute a central 95% credible region for a posterior that happened to be Exponential, the mode would not be included. In cases like these, though the Normal distribution approximately describes the PDF of the posterior near the MAP, the Normal approximation can lead to rather flawed credible regions.\n", "\n", "To demonstrate this, let us again return to the Gamma example, this time with $\\alpha = 5$ and $\\beta = 2$. The mode of this Gamma distribution is 2, but the median is about 2.34. If we look graphically, we can see right away that the Normal approximation is not as good as the $\\alpha = 50$, $\\beta = 20$ case." ] }, { "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 = {\"53ec7d47-851c-4463-bd23-aec77d088bf6\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1056\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1065\",\"attributes\":{\"end\":8}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1058\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1066\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1067\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1063\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1091\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1085\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1086\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1087\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1092\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1093\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1088\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1089\",\"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\":\"p1090\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1102\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1096\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1097\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1098\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1103\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1104\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1099\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1100\",\"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\":\"p1101\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1064\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1078\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1079\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1080\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1081\",\"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\":\"p1082\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1083\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1084\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1073\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1074\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1075\"},\"axis_label\":\"PDF\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1076\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1068\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1069\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1070\"},\"axis_label\":\"x\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1071\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1072\",\"attributes\":{\"axis\":{\"id\":\"p1068\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1077\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1073\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1094\",\"attributes\":{\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1095\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Gamma\"},\"renderers\":[{\"id\":\"p1091\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1105\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"Normal\"},\"renderers\":[{\"id\":\"p1102\"}]}}]}}],\"frame_width\":400,\"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\":\"53ec7d47-851c-4463-bd23-aec77d088bf6\",\"roots\":{\"p1056\":\"f5b80e75-a464-41b5-9677-7dd1ffafef5f\"},\"root_ids\":[\"p1056\"]}];\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": "p1056" } }, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 8, 400)\n", "alpha = 5\n", "beta = 2\n", "y_gamma = st.gamma.pdf(x, alpha, loc=0, scale=1 / beta)\n", "y_norm = st.norm.pdf(x, (alpha - 1) / beta, np.sqrt(alpha - 1) / beta)\n", "\n", "p = bokeh.plotting.figure(\n", " frame_width=400,\n", " frame_height=200,\n", " x_range=[0, 8],\n", " x_axis_label=\"x\",\n", " y_axis_label=\"PDF\",\n", ")\n", "\n", "p.line(x, y_gamma, line_width=2, legend_label=\"Gamma\")\n", "p.line(x, y_norm, line_width=2, color=\"tomato\", legend_label=\"Normal\")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at how this will affect the credible intervals. We will compute the lower and upper bound to a credible interval directly from the Gamma distribution and from its Normal approximation. We can compute credible intervals using the `ppf()` method of distributions in `scipy.stats`, which returns the inverse of the CDF. We can then plot the 1%, ..., 99% credible intervals for the Gamma distribution and for its Normal approximation." ] }, { "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 = {\"43cb59f6-3c8a-45c9-a22c-624daf7c0143\":{\"version\":\"3.3.0\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1110\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1112\"},\"y_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1119\",\"attributes\":{\"end\":100}},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1120\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1121\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1117\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1145\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1139\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1140\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1141\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1146\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1147\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1142\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0,\"line_width\":0,\"fill_color\":\"#1f77b4\",\"fill_alpha\":0.5,\"hatch_alpha\":0.5}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1143\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.1,\"line_width\":0,\"fill_color\":\"#1f77b4\",\"fill_alpha\":0.1,\"hatch_alpha\":0.1}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1144\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":0,\"fill_color\":\"#1f77b4\",\"fill_alpha\":0.2,\"hatch_alpha\":0.2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1154\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1148\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1149\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1150\"},\"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\":\"p1155\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1156\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1151\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1152\",\"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\":\"p1153\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1163\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1157\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1158\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1159\"},\"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\":\"p1164\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1165\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1160\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1161\",\"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\":\"p1162\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#1f77b4\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1172\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1166\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1167\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1168\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[400],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1173\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1174\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1169\",\"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.5,\"hatch_color\":\"tomato\",\"hatch_alpha\":0.5}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Patch\",\"id\":\"p1170\",\"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\":\"p1171\",\"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\":\"p1181\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1175\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1176\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1177\"},\"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\":\"p1182\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1183\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1178\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1179\",\"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\":\"p1180\",\"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\":\"p1190\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1184\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1185\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1186\"},\"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\":\"p1191\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1192\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1187\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1188\",\"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\":\"p1189\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"tomato\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1118\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1132\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1133\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1134\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1135\",\"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\":\"p1136\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1137\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1138\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1127\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1128\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1129\"},\"axis_label\":\"percent credible interval\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1130\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1122\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1123\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1124\"},\"axis_label\":\"x\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1125\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1126\",\"attributes\":{\"axis\":{\"id\":\"p1122\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1131\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1127\"}}}],\"frame_width\":350,\"frame_height\":275}}],\"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\":\"43cb59f6-3c8a-45c9-a22c-624daf7c0143\",\"roots\":{\"p1110\":\"f4744ad5-4e11-4584-9209-2fc237aa06c5\"},\"root_ids\":[\"p1110\"]}];\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": "p1110" } }, "output_type": "display_data" } ], "source": [ "perc_cred_int = np.linspace(1, 99, 200)\n", "mu = (alpha - 1) / beta\n", "sigma = np.sqrt(alpha - 1) / beta\n", "\n", "gamma_low = st.gamma.ppf((50 - perc_cred_int / 2) / 100, alpha, loc=0, scale=1 / beta)\n", "gamma_high = st.gamma.ppf((50 + perc_cred_int / 2) / 100, alpha, loc=0, scale=1 / beta)\n", "norm_low = st.norm.ppf((50 - perc_cred_int / 2) / 100, mu, sigma)\n", "norm_high = st.norm.ppf((50 + perc_cred_int / 2) / 100, mu, sigma)\n", "\n", "p = bebi103.viz.fill_between(\n", " gamma_low,\n", " perc_cred_int,\n", " gamma_high,\n", " perc_cred_int,\n", " patch_kwargs=dict(alpha=0.5),\n", " x_axis_label=\"x\",\n", " y_axis_label=\"percent credible interval\",\n", " y_range=[0, 100],\n", ")\n", "p = bebi103.viz.fill_between(\n", " norm_low,\n", " perc_cred_int,\n", " norm_high,\n", " perc_cred_int,\n", " patch_kwargs=dict(alpha=0.5, color=\"tomato\"),\n", " line_kwargs=dict(color=\"tomato\"),\n", " p=p,\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For tiny credible intervals, the shift is clear. The median for a Gamma distribution with these parameters is shifted rightward from its mode, whereas the mode and median for a Normal distribution are equal. As we get broader credible intervals, the Normal approximation notably has the 99% credible interval containing negative values (not allowed for a Gamma distribution) and missing important values at the high end." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Why use the MAP for parameter estimation?\n", "\n", "Despite these drawbacks, using the MAP/Normal approximation for parameter estimation is still useful in Bayesian inference, at least for simple, well-behaved problems. Why? The most important reason is speed. For problems with simple models (which we will encountered in the next section of this lesson), optimization is *much* faster than other methods for characterizing the posterior, such as directly plotting it or using Markov chain Monte Carlo. If you have high-throughput data, you may not have the computational resources to do a full Bayesian treatment with other methods. Provided your model that is tractable by optimization method, finding the MAP and summarizing with an approximate Normal distribution is an attractive method.\n", "\n", "In many cases, the Normal approximation can also be a good approximation. But this is definitely not guaranteed! In real inference problems, it is very difficult to identify pathologies that would lead to breakdown of the Normal approximation, since comparing to the real posterior would involve computationally intensive methods to compute it.\n", "\n", "In the next sections of this lesson, we will work though the mechanics of finding the MAP and computing credible regions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 6, "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.3\n", "scipy : 1.11.4\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,scipy,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 }