{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Probabilistic Programming 0: Introduction to Bayesian inference\n", "\n", "#### Goal \n", " - Familiarize yourself with basic concepts from Bayesian inference such as prior and posterior distributions.\n", " - Familiarize yourself with Jupyter notebooks and the basics of the Julia programming language.\n", "\n", "#### Materials \n", " - Mandatory\n", " - This notebook\n", " - Lecture notes on Probability Theory\n", " - Lecture notes on Bayesian Machine Learning\n", " - Optional\n", " - [Course installation guide](https://github.com/bertdv/BMLIP/blob/master/lessons/notebooks/files/WKouw-Mar2020-JuliaJupyterInstallGuide.pdf)\n", " - [Jupyter notebook tutorial](https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook)\n", " - [Intro to programming in Julia](https://youtu.be/8h8rQyEpiZA?t=233).\n", " - [Differences between Julia and Matlab / Python](https://docs.julialang.org/en/v1/manual/noteworthy-differences/index.html).\n", " - [Beer Tasting Experiment](https://journals.sagepub.com/doi/pdf/10.1177/1475725719848574)\n", " - [Savage-Dickey ratios](https://www.sciencedirect.com/science/article/pii/S0010028509000826?casa_token=AhA2bAAbOygAAAAA:3quBBzBv5PqTl0zdFo-_AKh2SmH_pH68FdXHMGGw0328wA1h0YGTdsOYkKwWBrwx84WVhselJA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "In 1937, one of the founders of the field of statistics, [Ronald Fisher](https://en.wikipedia.org/wiki/Ronald_Fisher), published a story of how he explained _inference_ to a friend. This story, called the \"Lady Tasting Tea\", has been re-told many times in different forms. In this notebook, we will re-tell one of its modern variants and introduce you to some important concepts along the way. Note that none of the material used below is new; you have all heard this in the theory lectures. The point of the Probabilistic Programming sessions is to solve practical problems so that concepts from theory become less abstract and you develop an intuition for them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "First, let's get started with activating a Julia workspace and importing some modules." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "using Pkg\n", "Pkg.activate(\"../../../lessons/\")\n", "Pkg.instantiate();\n", "IJulia.clear_output();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "Every once in a while, a cell with \"code notes\" is added to explain Julia-specific commands, symbols or procedures. We expect students to be proficient in at least one programming language, preferably Python, C(++) or MATLAB (most closely related to Julia), and we will not expain generic programming constructs such as control flows and data structures.\n", "\n", "Code notes:\n", "- The code cell above activates a specific Julia workspace (a virtual environment) that lists all packages you will need for the Probabilistic Programming sessions. The first time you run this cell, it will download and install all packages automatically." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "using Distributions\n", "using Plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "Code notes:\n", "- `using` is how you import libraries and modules in Julia. Here we have imported a library of probability distributions called [Distributions.jl](https://github.com/JuliaStats/Distributions.jl) and a library of plotting utilities called [Plots.jl](https://github.com/JuliaPlots/Plots.jl)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Beer Tasting Experiment\n", "\n", "In the summer of 2017, students of the University of Amsterdam participated in a \"Beer Tasting Experiment\" ([Doorn et al., 2019](https://journals.sagepub.com/doi/pdf/10.1177/1475725719848574)). Each participant was given two cups and were told that the cups contained [Hefeweissbier](https://www.bierenco.nl/product/weihenstephaner-hefeweissbier/), one with alcohol and one without. The participants had to taste each beer and guess which of the two contained alcohol.\n", "\n", "We are going to do a statistical analysis of the tasting experiment. We want to know to what degree participants are able to discriminate between the alcoholic and alcohol-free beers. The Bayesian approach is about 3 core steps: (1) specifying a model, (2) absorbing the data through inference (parameter estimation), and (3) evaluating the model. We are going to walk through these steps in detail below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Model Specification\n", "\n", "Model specification consists of two parts: a likelihood function and a prior distribution.\n", "\n", "#### Likelihood\n", "\n", "A [likelihood function](https://en.wikipedia.org/wiki/Likelihood_function) is a function of parameters given observed data. \n", "\n", "Here, we have an event variable $X$ that indicates that the choice was either \"correct\", which we will assign the number $1$, or \"incorrect\", which we will assign the number $0$. We can model this choice with what's known as a [_Bernoulli_ distribution](https://en.wikipedia.org/wiki/Bernoulli_distribution). The Bernoulli distribution is a formula to compute the probability of a binary event. It has a \"rate parameter\" $\\theta$, a number between $0$ and $1$, which governs the probability of the two events. If $\\theta = 1$, then the participant will always choose the right cup (\"always\" = \"with probability $1$\") and if $\\theta = 0$, then the participant will never choose the right cup (\"never\" = \"with probability $0$\"). Choosing at random, i.e. getting as many correct choices as incorrect choices, corresponds to $\\theta = 0.5$.\n", "\n", "As stated above, we are using the Bernoulli distribution in our tasting experiment. As the Bernoulli distribution's rate parameter $\\theta$ increases, the event $X=1$, i.e. the participant correctly guesses the alcoholic beverage, becomes more probable. The formula for the Bernoulli distribution is:\n", "\n", "$$\\begin{aligned} p(X = x \\mid \\theta) =&\\ \\text{Bernoulli}(x \\mid \\theta) \\\\ =&\\ \\theta^x (1-\\theta)^{1-x} \\end{aligned}$$\n", "\n", "If $X=1$, then the formula simplifies to $p(X = 1 \\mid \\theta) = \\theta^1 (1-\\theta)^{1-1} = \\theta$. For $X=0$, it simplifies to $p(X = 0 \\mid \\theta) = \\theta^0 (1-\\theta)^{1-0} = 1-\\theta$. If you have multiple _independent_ observations, e.g. a data set $\\mathcal{D} = \\{X_1, X_2, X_3\\}$, you can get the probability of all observations by taking the product of individual probabilities:\n", "\n", "$$p(\\mathcal{D} \\mid \\theta) = \\prod_{i=1}^{N} p(X_i \\mid \\theta)$$\n", "\n", "As an example, suppose the first two participants have correctly guessed the beverage and a third one incorrectly guessed it. Then, the probability under $\\theta = 0.8$ is $$p(\\mathcal{D} = \\{1,1,0\\} \\mid \\theta = 0.8) = 0.8 \\cdot 0.8 \\cdot 0.2 = 0.128 \\, .$$ \n", "\n", "That is larger than the probability under $\\theta = 0.4$, which is \n", "\n", "$$p(\\mathcal{D} = \\{1,1,0\\} \\mid \\theta = 0.4) = 0.4 \\cdot 0.4 \\cdot 0.6 = 0.096 \\, .$$ \n", "\n", "But it is not as large as the probability under $\\theta = 0.6$, which is \n", "\n", "$$p(\\mathcal{D} = \\{1,1,0\\} \\mid \\theta = 0.6) = 0.6 \\cdot 0.6 \\cdot 0.4 = 0.144 \\, .$$ \n", "\n", "As you can see, the likelihood function tells us how well each value of the parameter fits the observed data. In short, how \"likely\" each parameter value is." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Prior Distribution\n", "\n", "In Bayesian inference, it is important to think about what kind of _prior knowledge_ you have about your problem. In our tasting experiment, this corresponds to what you think the probability is that a participant will correctly choose the cup. In other words, you have some thoughts about what value $\\theta$ is in this scenario. You might think that the participants' choices are all going to be roughly random. Or, given that you have tasted other types of alcohol-free beers before, you might think that the participants are going to choose the right cup most of the time. This intuition, this \"prior knowledge\", needs to be quantified. We do that by specifying another probability distribution for it, in this case the [_Beta_ distribution](https://en.wikipedia.org/wiki/Beta_distribution):\n", "\n", "$$\\begin{aligned} p(\\theta) =&\\ \\text{Beta}(\\theta \\mid \\alpha, \\beta) \\\\ =&\\ \\frac{\\Gamma(\\alpha + \\beta)}{\\Gamma(\\alpha) \\Gamma(\\beta)} \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\, . \\end{aligned}$$\n", "\n", "We use a Beta distribution to describe our state of knowledge about appropriate values for $\\theta$. \n", "\n", "The Beta distribution computes the probability of an outcome in the interval $[0,1]$. Like any other other distribution, it has parameters: $\\alpha$ and $\\beta$. Both are \"shape parameters\", meaning the distribution has a different shape for each value of the parameters. Let's visualise this!" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2×3 Matrix{Int64}:\n", " 1 2 3\n", " 4 5 6" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = [1 2 3;\n", " 4 5 6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define shape parameters\n", "α = 2.0\n", "β = 2.0\n", "\n", "# Define probability distribution\n", "pθ = Beta(α, β)\n", "\n", "# Define range of values for θ\n", "θ = range(0.0, step=0.01, stop=1.0)\n", "\n", "# Visualize probability distribution function\n", "plot(θ, pdf.(pθ, θ), \n", " linewidth=3, \n", " color=\"red\", \n", " label=\"α = \"*string(α)*\", β = \"*string(β), \n", " xlabel=\"θ\", \n", " ylabel=\"p(θ)\",\n", " size=(800,300))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code notes:\n", "- You can use greek letters as variables (write them like in latex, e.g. \\alpha, and press `tab`)\n", "- Ranges of numbers work just like they do in Matlab (e.g. `0.0:0.1:1.0`) and Python (e.g. `range(0.0, stop=100., length=100)`). Note that Julia is strict about types, e.g. using integers vs floats.\n", "- There is a `.` after the command `pdf`. This refers to [\"broadcasting\"](https://julia.guide/broadcasting): the function is applied to each element of a list or array. Here we use the `pdf` command to compute the probability for each value of $\\theta$ in the array.\n", "- Many of the keyword arguments in the `plot` command should be familiar to you if you've worked with [Matplotlib](https://matplotlib.org/) (Python's plotting library).\n", "- In the `label=` argument to plots, we have performed \"string concatenation\". In Julia, you write a string with double-quote characters and concatenate two strings by \"multiplying\", i.e. using `*`.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note for the keen observers among you: since this is a continuous distribution, we are not actually plotting \"probability\", but rather [\"probability density\"](https://en.wikipedia.org/wiki/Probability_density_function#Link_between_discrete_and_continuous_distributions) (probability densities can be larger than $1$)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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um7dul27dh06dGh2h4yYQbq6up5++ulVq1b93d/9nc/nG/FsLBZ7cjhvv/02GFpo0hw/fnwOho7INYlE4re//e2XvvSlJ5980uPxjNknEol85StfaWhoeOKJJ27dupVuP3HixJ49e9auXfujH/2IYZh7HQrMP2iarqio+Pa3v93c3Lxv376nnnpqdJ/nnntu27Zt165d+8UvfqHT6cLhMITQ7XYrlcpf//rXV65cWbt27Xe+851ZHztiRvj5z39eV1d36dKl119/XS6X9/T0jOjw1a9+9Ve/+tX58+fffPNNpVL55ptvcu319fXf+9739u/fv3///iNHjsz6wBEzwqFDh3Q63eHDhw8fPqzT6Q4dOjSiQ1NTk0aj2T9Ee3s71/7LX/5y0aJFFy5ceOONN+RyeVtb26yPHZF7WJatra392te+1tzc/LGPfezRRx8d0SGVSqUnw29/+1scx0+ePAkhvHDhgtFoTD/V1dU1B6NH5Bq73f7oo49++9vfBgCMXiw4nn322QceeKCpqenFF1+0WCyJRAJC2NfXJ5fLX3311cuXL9fX1//kJz+5x5Hko8B69913rVYrd2y32/l8vs1my+wQjUZlMtnVq1e5h2vXrn3ppZcghD//+c937drFNZ48eVKv11MUNXvjRswY5eXl77zzDnfM2aKydH7uueeeeeYZ7ri+vv7o0aMzPj7E7PLoo4/+8z//M3f8wgsvPPbYYyM6NDU1FRUVjT5x0aJF+/fv544/+clPfv3rX5/RcSJmh8OHDxuNRoZhIIRer5fP53d3d4/X+dVXX62urmZZFkJ44cKFysrK2RsoYhaJRqPjCSyfzycUCtPfr+rq6t544w0I4fe///3HH3+ca3z//fdLSkrucQz56CJsbm5uaGjgjo1Go9lsvnnzZmaHrq6uVCq1bNky7mFDQ0NzczMAoKmpafXq1elGl8tlt9tnceCIGSESiXR2dqanxJo1a7i3ezyam5urq6vTD1944YVHHnnku9/9rt/vn9mBImaLzFvEmjVrmpqaRvfx+/2PPfbYxz72sd///vcQQgBAMplsaWmZ/ERCFArNzc2rV6/GcRwAoFary8vLr1+/Pl7nV1555dlnn01XaXO5XI8++ujHP/7x/fv3z9JwEXNNa2urRCJJFyJMS4jr169n3h96e3vvcdWYs1qEWXC5XEqlMv1QpVK5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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define shape parameters\n", "α = [2.0, 5.0]\n", "β = [1.0, 2.0]\n", "\n", "# Define initial distribution\n", "pθ = Beta(1.0, 1.0)\n", "\n", "# Start initial plot\n", "plot(θ, pdf.(pθ, θ), linewidth=3, label=\"α = 1.0, β = 1.0\", xlabel=\"θ\", ylabel=\"p(θ)\", legend=:topleft)\n", "\n", "# Loop over shape parameters\n", "for a in α\n", " for b in β\n", " plot!(θ, pdf.(Beta(a, b), θ), linewidth=3, label=\"α = \"*string(a)*\", β = \"*string(b))\n", " end\n", "end\n", "plot!(size=(800,300))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code notes:\n", "- Square brackets around numbers automatically creates an Array (in Python, they create lists).\n", "- The `:` in `:topleft` indicates a `Symbol` type. It has many uses, but here it is used synonymously with a string option (e.g. legend=\"topleft\").\n", "- `for` loops can be done by using a range, such as `for i = 1:10` (like in Matlab), or using a variable that iteratively takes a value in an array, such as `for i in [1,2.3]` (like in Python). More [here](https://www.tutorialkart.com/julia/julia-for-loop/).\n", "- The `!` at the end of the plot command means the function is performed [\"in-place\"](https://docs.julialang.org/en/v1/manual/style-guide/#bang-convention-1). In other words, it changes its input arguments. Here, we change the plot by adding lines.\n", "- The final `plot!` is there to ensure Jupyter actually plots the figure. If you end a cell on an `end` command, Jupyter will remain silent.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, the Beta distribution is quite flexible and can capture your belief about how often participants will correctly detect the alcoholic beverage. For example, the purple line indicates that you believe that it is very probable that participants will always get it right (peak lies on $\\theta=1.0$), but you still think there is some probability that the participants will guess at random ($p(\\theta = 1/2) \\approx 0.3$). The yellow-brown line indicates you believe that it is nearly impossible that the participants will always get it right ($p(\\theta = 1) \\approx 0.0$), but you still believe that they will get it right more often than not (peak lies around $\\theta \\approx 0.8$).\n", "\n", "In summary: a prior distribution $p(\\theta)$ reflects our beliefs about good values for parameter $\\theta$ _before_ data is observed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "#### Exercise\n", "\n", "Choose values for the shape parameters $\\alpha$ and $\\beta$ that reflect how often you think the participants will get it right.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Parameter estimation\n", "\n", "Now that we have specified our generative model, it is time to estimate unknown variables. We'll first look at the data and then the inference part.\n", "\n", "#### Data\n", "\n", "The data of the participants in Amsterdam is available online at the [Open Science Foundation](https://osf.io/428pb/?view_only=e3dc67dab9c54d23a92fb2e88465f428). We'll start by reading it in." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "using DataFrames\n", "using CSV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code notes:\n", "- [CSV.jl](https://github.com/JuliaData/CSV.jl) is a library for reading in data stored in tables.\n", "- [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) manipulates table data (like `pandas` in Python)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "D = " ] }, { "name": "stdout", "output_type": "stream", "text": [ "[1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1]\n" ] } ], "source": [ "# Read data from CSV file\n", "data = DataFrame(CSV.File(\"../datasets/TastingBeerResults.csv\"))\n", "\n", "# Extract variable indicating correctness of guess\n", "D = data[!, :CorrectIdentify];\n", "println(\"D = \", D)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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R48eDg4ONQd37do1efJkNzc3lUo1a9asXbt2SZkLAADAymka79SZmZnjx483b3fp0uXWrVvV1dW1SlgtlZWV3333XVpammWkR48eGk0jhgQAAJCuEbtLSUmJi4uLeVur1VZXV5eWlup0ujrecvPmzaNHj167ds0ysnnz5sDAwMYLaVFtrH4GswAAAClMQpSUlCgytVarVavr+QywEQuWl5fX/fv3zdsFBQVarbbudiWECAgIeO211zZs2NB4qR7FQV3XpTUAAGBVVEK4ubkpneKRGnGZhp49e547d868ffbs2Z49ezbeXAAAANZDzhWs48eP3717t6io6MyZM0ajMTw83MPDY9asWWFhYYMHD27Tps2KFSt4ihAAADQRcgpWWlra1atXo6KiiouLjxw50rNnTw8Pj+Dg4E8++WT9+vV6vX7ZsmXjxo2TMhcAAICVk1OwFi5c+NDxyMjIyMhIKVMAAADYCr6LEAAAQDIKFgAAgGQULAAAAMkoWAAAAJJRsAAAACSjYAEAAEhGwQIAAJCMggUAACAZBQsAAEAyChYAAIBkFCwAAADJKFgAAACSUbAAAAAko2ABAABIRsECAACQjIIFAAAgGQULAABAMgoWAACAZBQsAAAAyShYAAAAklGwAAAAJKNgAQAASEbBAgAAkIyCBQAAIBkFCwAAQDIKFgAAgGQULAAAAMkoWAAAAJJRsAAAACSjYAEAAEhGwQIAAJCMggUAACAZBQsAAEAyChYAAIBkFCwAAADJKFgAAACSUbAAAAAko2ABAABIRsECAACQjIIFAAAgGQULAABAMgoWAACAZBQsAAAAyShYAAAAklGwAAAAJKNgAQAASEbBAgAAkIyCBQAAIBkFCwAAQDIK1n8VFRcrHQFAozCZTEpHANDkNG7BOn/+/PTp08ePH5+SktKoEzVcbm6u0hEANAojBQvAM9eIBev69etDhw594YUXRo0a9cYbbxw4cKDx5gIAALAemsY7dXx8/KuvvhoXFyeE+O677/70pz+NGDGi8aYDAACwEo14Bev8+fODBg0ybw8cOPDcuXONNxcAAID1aMQrWPn5+e7u7uZtDw+PkpKSkpISNze3Ot5y6tSpPXv27Nq1yzISEBCg1WobL6SFoaxc8+8d6m+s/V4xAE+kKueSyWRy+mi20kEASGUSDq3bDR06VJHJY2Ji5s+fX/cxjViwXFxcysrKzNsGg0GtVjs7O9f9lvfee8/Pz0+n01lGgoKCnJycGi+kRW5urqenp6Oj4zOYC8AzYzAYiouLvby8lA4CQLpxSk3cuXPneo9pxILl4+OTlZVl3s7KymrXrp1GU890gYGBK1eubLxIAAAAz0Aj3oMVGxubmJhYUVEhhPjb3/4WGxvbeHMBAABYD1XjLcFXXl4eExOTlZXVsmXLoqKio0ePtm3btpHmAgAAsB6NWLDMLl26pNfrQ0JC6v18EAAAwD40esECAABoavguQgAAAMkoWAAAAJJRsERVVdXvfve7fv36RUVFnT59Wuk4AOS4efPmunXrpk2b9s477yidBUCTQ8ESq1evTk5Ojo+PHzt27MiRI/Py8pROBECC8+fPX7x4sby8/MiRI0pnAdDkNPWb3E0mU4cOHbZv3x4ZGSmEiImJ6dev37vvvqt0LgBy7Ny5889//vP58+eVDgKgaWnqV7Du3buXm5vbp08f827fvn2/+eYbZSMBAABb19QL1t27d1UqVYsWLcy7rVq1unPnjrKRAACArWvqBUun05lMJoPBYN4tKSlp2bKlspEAAICta+oFq23bts7OztevXzfvXr9+vWPHjspGAgAAtq6pFyxHR8fY2NgNGzYIIXJycvbs2TNx4kSlQwEAANvW1J8iFELk5OTExMR8//33hYWFcXFxy5cvVzoRAAkOHz5sfjrYbOTIkfv27VMwD4AmhYL1X7m5uTqdzs3NTekgAADA5lGwAAAAJGvq92ABAABIR8ECAACQjIIFAAAgGQULAABAMgoWAACAZBQsAAAAyShYAAAAklGwAAAAJNMoHQAAJBs6dGhmZqZ529nZ2dfXNzQ0dMqUKXyVO4BnhpXcAdibgIAAlUq1aNGiqqqqwsLCy5cvp6SklJeXf/jhh7Nnz1Y6HYAmgYIFwN4EBAS0b98+NTXVMlJQUDB69OgTJ04cOnQoIiJCwWwAmgjuwQJg/1q3bp2YmOjk5LR69WqlswBoEihYAJoEb2/vsLCwU6dOVVVVKZ0FgP2jYAFoKjp37lxWVlZQUKB0EAD2j4IFoKlQqVRCCKPRqHQQAPbv/wCYqUM0f5jlYAAAAABJRU5ErkJggg==", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Number of successes and failures\n", "S = sum(D .== 1)\n", "F = sum(D .== 0)\n", "\n", "# Visualize frequencies\n", "histogram(D, bins=[0,1,2], label=\"S = \"*string(S)*\", F = \"*string(F), xlabel=\"D\", xticks=[0,1], ylabel=\"Number\", legend=:topleft, size=(800,300))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code notes:\n", "- The `!` in `data[!, ` is specific to the DataFrames syntax.\n", "- The `.==` checks for each element of the array D whether it is equal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's visualize the likelihood of these observations." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define the Bernoulli likelihood function\n", "likelihood(θ) = prod([θ^X_i * (1-θ)^(1-X_i) for X_i in D])\n", "\n", "# Plot likelihood\n", "plot(θ, likelihood.(θ), linewidth=3, color=\"black\", label=\"\", xlabel=\"θ\", ylabel=\"p(D|θ)\", size=(800,300))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The likelihood has somewhat of a bell shape, peaking just below $\\theta = 0.75$. Note that the y-axis is very small. Indeed, the likelihood is not a proper probability distribution, because it doesn't integrate / sum to $1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Inference\n", "\n", "Using our generative model, we can estimate parameters for unknown variables. Remember Bayes' rule:\n", "\n", "$$ p(\\theta \\mid \\mathcal{D}) = \\frac{p(\\mathcal{D} \\mid \\theta) p(\\theta)}{p(\\mathcal{D})} \\, .$$\n", "\n", "The posterior $p(\\theta \\mid \\mathcal{D})$ equals the likelihood $p(\\mathcal{D} \\mid \\theta)$ times the prior $p(\\theta)$ divided by the evidence $p(\\mathcal{D})$. In our tasting experiment, we have a special thing going on: [conjugacy](https://en.wikipedia.org/wiki/Conjugate_prior). The Beta distribution is \"conjugate\" to the Bernoulli likelihood, meaning that the posterior distribution is also going to be a Beta distribution. Specifically with the Beta-Bernoulli combination, it is easy to see what conjugacy actually means. Recall the formula for the Beta distribution:\n", "\n", "$$\\begin{aligned} p(\\theta) =&\\ \\frac{\\Gamma(\\alpha + \\beta)}{\\Gamma(\\alpha) \\Gamma(\\beta)} \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\, . \\end{aligned}$$\n", "\n", "The term $\\Gamma(\\alpha + \\beta) / \\left( \\Gamma(\\alpha) \\Gamma(\\beta) \\right)$ normalises this distribution. If you ignore that and multiply it with the likelihood, you get something that simplifies beautifully:\n", "\n", "$$\\begin{aligned} \n", "p(\\mathcal{D} \\mid \\theta) p(\\theta) \\ \\propto&\\ \\ \\prod_{i=1}^{N} \\big[ \\theta^{X_i} (1-\\theta)^{1-X_i} \\big] \\cdot \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\\\ =&\\ \\ \\theta^{\\sum_{i=1}^{N} X_i} (1-\\theta)^{\\sum_{i=1}^{N} 1-X_i} \\cdot \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\\\ =&\\ \\ \\theta^{S} (1-\\theta)^{F} \\cdot \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\\\ =&\\ \\ \\theta^{S + \\alpha-1} (1-\\theta)^{F + \\beta-1} \\, , \\end{aligned}$$\n", "\n", "where $S = \\sum_{i=1}^{N} X_i$ is the number of successes (correct guesses) and $F = \\sum_{i=1}^{N} 1 - X_i$ is the number of failures (incorrect guesses). \n", "\n", "This last line is again the formula for the Beta distribution (except for a proper normalisation) but with different parameters ($S+\\alpha$ instead of $\\alpha$ and $F+\\beta$ instead of $\\beta$). This is what we mean by conjugacy: applying Bayes rule to a conjugate prior and likelihood pair yields a posterior distribution of the same family as the prior, which in this case is a Beta distribution.\n", "\n", "Let's now visualise the posterior after observing the data from Amsterdam." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define shape parameters of prior distribution\n", "α0 = 4.0\n", "β0 = 2.0\n", "\n", "# Define prior distribution\n", "pθ = Beta(α0, β0)\n", "\n", "# Update parameters for the posterior\n", "αN = α0 + sum(D .== 1)\n", "βN = β0 + sum(D .== 0)\n", "\n", "# Define posterior distribution\n", "pθD = Beta(αN, βN)\n", "\n", "# Mean of posterior\n", "mean_post = αN / (αN + βN)\n", "mode_post = (αN - 1) / (αN + βN - 2)\n", "\n", "# Visualize probability distribution function\n", "plot(θ, pdf.(pθ, θ), linewidth=3, color=\"red\", label=\"prior\", xlabel=\"θ\", ylabel=\"p(θ)\")\n", "plot!(θ, pdf.(pθD, θ), linewidth=3, color=\"blue\", label=\"posterior\", size=(800,300))\n", "vline!([mean_post], color=\"black\", linewidth=3, label=\"mean of posterior\", legend=:topleft)\n", "vline!([mode_post], color=\"black\", linewidth=3, linestyle=:dash, label=\"maximum a posteriori\", legend=:topleft)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Code notes:\n", "- `vline` draw a vertical line in the plot, at the specified point on the x-axis.\n", "- `mode()` extracts the [mode](https://en.wikipedia.org/wiki/Mode_(statistics)) of the supplied distribution, i.e. the point with the largest probability." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That looks great! We have updated our belief from a very broad prior to a much sharper posterior. \n", "\n", "The posterior contains a lot of information: it tells us something about every value for $\\theta$. Sometimes, we are interested in a point estimate, i.e. the probability of a single value for $\\theta$ under the posterior. Two well-known point estimators are the mean of the posterior and the mode (the value for $\\theta$ with the highest probability). I have plotted both point estimates in the figure above. In this case, they are nearly equal. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "#### Exercise\n", "\n", "Plug the shape parameters of your prior into a copy of the cell above and see how your posterior differs.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Model Evaluation\n", "\n", "Given our model assumptions and a posterior for theta, we can now make quantitative predictions about how well we think people can recognize alcoholic from non-alcoholic hefeweizen. But suppose you meet someone else who is absolutely sure that people can't tell the difference. Can you say something about the probability of his belief, given the experiment?\n", "\n", "Technically, this is a question about comparing the performance of different models. Model comparison is also known in the statistical literature as \"hypothesis testing\".\n", "\n", "In hypothesis testing, you start with a null hypothesis $\\mathcal{H}_0$, which is a particular choice for the detection parameter $\\theta$. In the question above, the other person's belief corresponds to $\\theta = 0.5$. We then have an alternative hypothesis $\\mathcal{H}_1$, namely that his belief is wrong, i.e. $\\theta \\neq 0.5$. From a Bayesian perspective, hypothesis testing is just about comparing the posterior beliefs about these two hypotheses:\n", "\n", "$$\\begin{aligned} \\underbrace{\\frac{p(\\mathcal{H}_1 | \\mathcal{D})}{p(\\mathcal{H}_0 | \\mathcal{D})}}_{\\text{Posterior belief over hypotheses}} = \\underbrace{\\frac{p(\\mathcal{H}_1)}{p(\\mathcal{H}_0)}}_{\\text{Prior belief over hypotheses}} \\times \\underbrace{\\frac{p(\\mathcal{D} | \\mathcal{H}_1)}{p(\\mathcal{D} | \\mathcal{H}_0)}}_{\\text{Likelihood of hypotheses}} \\, . \\end{aligned}$$\n", "\n", "Note that the evidence term $p(\\mathcal{D})$ is missing, because it appears in the posterior for both hypotheses and therefore cancels out. The hypothesis likelihood ratio is also called the **Bayes factor**. Bayes factors can be hard to compute, but in some cases we can simplify it: if the null hypothesis is a specific value of interest, for instance $\\theta = 0.5$, and the alternative hypothesis is not that specific value, e.g. $\\theta \\neq 0.5$, then the factor reduces to what's known as a Savage-Dickey Ratio (see Appendix A of [Wagemakers et al., 2010](https://www.sciencedirect.com/science/article/pii/S0010028509000826?casa_token=AhA2bAAbOygAAAAA:3quBBzBv5PqTl0zdFo-_AKh2SmH_pH68FdXHMGGw0328wA1h0YGTdsOYkKwWBrwx84WVhselJA)):\n", "\n", "$$ \\frac{p(\\mathcal{D} | \\mathcal{H}_1)}{p(\\mathcal{D} | \\mathcal{H}_0)} = \\frac{p(\\theta = 0.5)}{p(\\theta = 0.5 \\mid \\mathcal{D})} \\, .$$\n", "\n", "This compares the probability of $\\theta = 0.5$ under the prior versus $\\theta = 0.5$ under the posterior. It effectively tells you how much your belief changes after observing the data. Let's compute the Savage-Dickey ratio for our experiment:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The Bayes factor for H1 versus H0 = 229.23178145896927\n" ] } ], "source": [ "BF_10 = pdf(pθ, 0.5) / pdf(pθD, 0.5)\n", "println(\"The Bayes factor for H1 versus H0 = \"*string(BF_10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, in the experiment, the alternative hypothesis _\"students can discriminate alcoholic from non-alcoholic Hefeweissbier\"_ is more than 200 times more probable than the null hypothesis that _\"students cannot discriminate alcoholic from non-alcoholic Hefeweissbier\"_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#### Exercise\n", "\n", "Compute the Bayes factor for your prior and posterior distribution. How many times is the alternative hypothesis more probable than the null hypothesis?\n", "\n", "---" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "@webio": { "lastCommId": "e01e903ce62a43f081de0d927024457a", "lastKernelId": "d19f1b82-d2af-4ee2-8c82-2be824ae11d2" }, "kernelspec": { "display_name": "Julia 1.9.3", "language": "julia", "name": "julia-1.9" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.9.3" } }, "nbformat": 4, "nbformat_minor": 4 }