{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Probabilistic Programming 1: Introduction to Bayesian Machine Learning\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(\"./workspace/\")\n", "Pkg.instantiate();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "using Distributions\n", "using Plots\n", "pyplot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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": [ "## 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{align*}\n", "p(X = x \\mid \\theta) =&\\ \\text{Bernoulli}(x \\mid \\theta) \\\\\n", "=&\\ \\theta^x (1-\\theta)^{1-x}\n", "\\end{align*}\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{align*} \n", "p(\\theta) =&\\ \\text{Beta}(\\theta \\mid \\alpha, \\beta) \\\\\n", "=&\\ \\frac{\\Gamma(\\alpha + \\beta)}{\\Gamma(\\alpha) \\Gamma(\\beta)} \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\, .\n", "\\end{align*}\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" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = [1 2 3;\n", " 4 5 6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "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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" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "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", "#### $\\ast$ **Try for yourself**\n", "\n", "I want you to pick 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 = [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": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAEsCAYAAAA7Ldc6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcSUlEQVR4nO3df3DXhWH/8deHphM5RhwiZxFCpi6gWGtgR9t4q7+4Fe2mjjj/8LBmY4VuxvZaW+XWTtN2Mu7KreiwJ7VW2NF26wTP6eoUW7XiwIo5Tm2CsA4uSYWj/DA7prQGsz/4Ll9pMIAm708SHo9/yucHn88r1Mt9nvf5vN+fUnd3d3cAAAAKMKLcAwAAgBOHAAEAAAoz5ALk9ddfT3Nzc15//fVyTwEAAI7TkAuQzZs3Z8aMGdm8eXO5p/Sps7Oz3BMAhhS/NwFODEMuQIaKgwcPlnsCwJDi9ybAiUGAAAAAhREgAABAYSrKPaC/tLW1Zffu3eWe0aOzszOVlZXlnnFCGjduXKqqqso9AwCAIxgWAdLW1pZzzjnHmbFIkowaNSqtra0iBABgEBoWAbJ79+68/vrrWbVqVc4555xyz6GMWltbM3fu3OzevVuAwBCzc+fObN++vdwzAIaUofjJj2ERIP/nnHPOyfTp08s9A4DjtGPHjkybNq3cMwCGnJEnj8orm4fWJz+GVYAAMDTt2LHj0B+uvyepqi3vGIChYmdrDtzXMOQ++SFAABg8qmqTyQIEYDhzGl4AAKAwAgQAACiMAAEAAAojQAAAgMKcUAehD9S3pR/r+ZfXrFmTO+64IwcPHsyvfvWrTJgwIWvXrs2IEf3Xga+88kpqa2vzV3/1V1myZEmS5J//+Z+zePHivPnmmymVSpk/f35uuummoz7WU089lSuuuCI1NTU91y1atChXXHHFe975ne98J9/4xjfS2tqapUuXprGxsee2pqamfPOb38yECROSJNOmTct3v/vd9/ycAACU3wkTIG1tbZky9ZwceKP/vy39WM6/vHPnznz605/O888/n8mTJydJmpubUyqV+m3HwYMHs2DBglx99dWHXT9x4sQ8+uijOf3009PZ2ZkZM2Zk+vTpufDCC4/6mOeee242btzYbxv/z4wZM/KDH/wgf/d3f3fE2z/5yU/2BBQAAMNH4QHyla98JU1NTXnppZdy3nnnJUm2bt2aG264Ibt3784pp5ySFStW5Nxzz+3X5929e/eh+Ji3Ijm9H78t/RjPv7xjx45UVFTk1FNP7bmuv780cfHixfmjP/qj7N+/P/v37++5/u2hUVlZmalTp2bbtm3HFCAD5UMf+lCS9Ou7PwAADH6FBkhzc3M2bNjQ64X6ggULMn/+/DQ0NOSBBx7IvHnzsn79+oEZcfo5ZTnH/Ic+9KF89KMfTVVVVS666KLU1dXluuuuyxlnnNHrvi0tLbnuuuuO+Di1tbW5//77e13/4osv5rHHHsuTTz6Zr33ta++4o6WlJevXr8+3vvWtY9rd0tKSCy64oOfyCy+8kPe9732H3eeJJ57IF77whSP+/U984hO54447jum53u773/9+1q5dm1NPPTV/8zd/k0suueS4HwMAgMGnsAD51a9+lRtvvDHf+973DnsxuWvXrjQ3N+fxxx9PktTX16exsTHbt29PdXV1UfMG3IgRI7J69eps3rw5Tz/9dB599NHccccd2bhxY84+++zD7nvuuedm06ZNx/zYb775Zj71qU/l/vvv7xUHb9fR0ZGrrroq99xzT8/xFUdzLB/BmjVr1nHtPZpPf/rT+dKXvpT3v//9efbZZ/Mnf/Inh310DQCAoauwALntttsyd+7c/O7v/u5h17e3t2fChAmpqDg0pVQqpaqqKm1tbX0GSGNjYyorKzNnzpxeL+AHs6lTp2bq1KlZsGBBZs+enX/913/N5z//+cPuc7zvgOzYsSM///nPew4Of+2119Ld3Z19+/blvvvuS5K8+uqrmTVrVr785S/nT//0T/v1Z+rvd0BOP/30nj9feOGFqa2tzcaNG48rQDo7O7N3797jel6gfDo7O8s9AWDIGuyve8aOHXvY5UICZP369Xn++eezePHiI97+mwdid3d3H/Uxly1b1nMMRXNz83sfOcB+8YtfZPv27T3HXezbty/btm3LWWed1eu+x/sOSFVV1WFn92pqasr+/ft7DuLesWNHLrvsstx666254YYbeu267LLLsnnz5nfxUx3S3++AdHR0ZOLEiUkOHR+0adOmfPCDHzyux6isrOz1HzsweFVWVpZ7AsCQNdRe9xQSIE8//XQ2b97c8+5HR0dHPv7xj+fb3/52ZsyYkY6OjnR1daWioiLd3d1pb28/ptPavis7W8vyeF1dXfnqV7+abdu2ZdSoUenq6soNN9yQq666qn/3HMFtt92Wtra23HnnnbnzzjuTJJ/97GfzZ3/2Z3n11Vd73n0q0qpVq7Jw4cLs27cvDz30UBYvXpyHH344tbW1+dKXvpQXXnghFRUVed/73pe77777sFMBAwAwdBXyynPhwoVZuHBhz+Xq6uo88sgjPWfBqq2tzapVq9LQ0JDVq1enurq634//GDduXEaePCoH7mvo18dNDp2Gd9y4cX3eZ/LkyXnsscf6/bmPpKmp6bDL9957b+69994j3veZZ5457P+bt7v44osH5BS8STJ37tzMnTv3iLetXLlyQJ4TAIDyGxTfA7J8+fI0NDRk0aJFGTNmzIC8AK2qqsorm1vL+kWEg9FvHn8CAAADqSwBsn379sMuT5kyZeBOu/s2VVVVQzYUAABgOPAtcAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAUZlB8EWF/aW1tLfcEysx/AwAAg9uwCJBx48Zl1KhRmTt3brmnMAiMGjUq48aNK/cMAACOYFgESFVVVVpbW7N79+5yT+nR2dmZysrKcs84IY0bN8433gMADFLDIkCSQxEymF507t27N2PHji33DAAAGFQchA4AABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABSmsAD5wz/8w5x//vm54IIL8gd/8AfZtGlTz21bt25NXV1dampqMnPmzLS0tBQ1CwAAKFBhAfKDH/wgL774YjZt2pSbb745f/7nf95z24IFCzJ//vxs2bIlt9xyS+bNm1fULAAAoECFBcgpp5zS8+fOzs6MGHHoqXft2pXm5ubMnTs3SVJfX59t27Zl+/btRU0DAAAKUlHkk33yk5/Mk08+mST593//9yRJe3t7JkyYkIqKQ1NKpVKqqqrS1taW6urqd3ysxsbGVFZWZs6cOamvrx/w7cdr37595Z4AMGR0dnaWewLA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rq5OqVTKyy+/fNhtW7duTV1dXWpqajJz5sy0tLQUNQsAAChQYQFyzTXXZN26dZk8eXKv2xYsWJD58+dny5YtueWWWzJv3ryiZgEAAAUqLEA+9rGPZeLEib2u37VrV5qbmzN37twkSX19fbZt25bt27cXNQ0AAChIRbkHtLe3Z8KECamoODSlVCqlqqoqbW1tqa6ufse/19jYmMrKysyZMyf19fUFrT02nZ2d5Z4AAMAJorOzM3v37i33jHc0duzYwy6XPUCSQ9Hxdt3d3Uf9O8uWLcv06dMHatJ7UllZWe4JAACcICorK3u9yB/Myn4WrEmTJqWjoyNdXV1JDsVHe3t7qqqqyrwMAADob2UPkPHjx6e2tjarVq1KkqxevTrV1dV9fvwKAAAYmgoLkBtvvDETJ05MR0dHZs2albPPPrvntuXLl2f58uWpqanJ4sWLc9999xU1CwAAKFBhx4Dcfffdufvuu49425QpU7J+/fqipgAAAGVS9o9gAQAAJw4BAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhREgAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQIAABRGgAAAAIURIAAAQGEGTYBs3bo1dXV1qampycyZM9PS0lLuSQAAQD8bNAGyYMGCzJ8/P1u2bMktt9ySefPmlXsSAADQzyrKPSBJdu3alebm5jz++ONJkvr6+jQ2Nmb79u2prq4u77j3YmdruRcADA17th36X783AY7dEP2dOSgCpL29PRMmTEhFxaE5pVIpVVVVaWtre8cAaWxsTGVlZebMmZP6+voC1x5dRUVFThp5cn51X0O5pwAMHaURid+bAMflpJNHpaKiInv37i33lHc0duzYwy4PigBJDkXH23V3d/d5/2XLlmX69OkDOeldGzt2bH763IZ0dXWVewrAkPHLX/4yp512WrlnAAwp48aNS1VVVblnHJdBESCTJk1KR0dHurq6UlFRke7u7rS3tw+5f8y3mzhxYq/aA+Cd7d271+9NgBPAoDgIffz48amtrc2qVauSJKtXr051dfXQPv4DAADoZVC8A5Iky5cvT0NDQxYtWpQxY8Zk5cqV5Z4EAAD0s0HxDkiSTJkyJevXr8+WLVuycePGTJs2rdyT3pPVq1eXewLAkOL3JsCJYdAEyHCzZs2ack8AGFL83gQ4MQyaj2AdqzfeeCNJ0to6uM973NnZmebm5nLPABgy/N4EGL6mTp2aUaNGJUlK3Uc73+0g893vfjdz584t9wwAAOAYvfDCCz1foTHkAmT37t157LHHUl1dnZNPPrnccwAAgKMY0u+AAAAAQ5eD0AEAgMIIEAAAoDACBAAAKIwAAQAACiNA+tnWrVtTV1eXmpqazJw5My0tLeWeBDCofeYzn0l1dXVKpVJefvnlcs8BYIAJkH62YMGCzJ8/P1u2bMktt9ySefPmlXsSwKB2zTXXZN26dZk8eXK5pwBQAKfh7Ue7du1KTU1Ndu/enYqKinR3d+cDH/hANmzYkOrq6nLPAxjUqqur88gjj+S8884r9xQABpB3QPpRe3t7JkyYkIqKiiRJqVRKVVVV2trayrwMAAAGBwHSz0ql0mGXvcEEAAD/nwDpR5MmTUpHR0e6urqSHIqP9vb2VFVVlXkZAAAMDgKkH40fPz61tbVZtWpVkmT16tWprq52/AcAAPw/DkLvZ6+88koaGhqyZ8+ejBkzJitXrsy0adPKPQtg0Lrxxhvz0EMPZefOnRk3blxGjx6d//zP/yz3LAAGiAABAAAK4yNYAABAYQQIAABQGAECAAAURoAAAACFESAAAEBhBAgAAFAYAQJAWTQ1NaVUKqVUKmXEiBGprKzM+eefn8bGxrS2tpZ7HgADRIAAUDYnn3xy1q9fn//4j//IAw88kIaGhjzxxBO54IILsmrVqnLPA2AA+CJCAMqiqakpS5Ysyf79+w+7/sCBA/nEJz6RdevWpbW1NWeeeWaZFgIwELwDAsCgMnLkyPzDP/xDfv3rX+fb3/52uecA0M8ECACDzrnnnpszzjgj69evL/cUAPqZAAFgUJo0aVJ27txZ7hkA9DMBAsCg1N3dnVKpVO4ZAPQzAQLAoNTR0ZHTTz+93DMA6GcCBIBB52c/+1l+8YtfpK6urtxTAOhnAgSAQeXAgQO56aabctJJJ+Uv/uIvyj0HgH5WUe4BAJy43nrrrWzYsCFJsn///rz00kv51re+lf/6r//KihUrUl1dXd6BAPQ7AQJA2bzxxhv56Ec/mlKplNGjR2fy5Mm57LLL8uCDD2bq1KnlngfAAPBN6AAAQGEcAwIAABRGgAAAAIURIAAAQGEECAAAUBgBAgAAFEaAAAAAhflfXrLUtjB0CWIAAAAASUVORK5CYII=" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "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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" }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "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{align*} \n", "p(\\theta) =&\\ \\frac{\\Gamma(\\alpha + \\beta)}{\\Gamma(\\alpha) \\Gamma(\\beta)} \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\, .\n", "\\end{align*}\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{align*} \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} \\\\\n", "=&\\ \\ \\theta^{\\sum_{i=1}^{N} X_i} (1-\\theta)^{\\sum_{i=1}^{N} 1-X_i} \\cdot \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\\\\n", "=&\\ \\ \\theta^{S} (1-\\theta)^{F} \\cdot \\theta^{\\alpha-1} (1-\\theta)^{\\beta-1} \\\\\n", "=&\\ \\ \\theta^{S + \\alpha-1} (1-\\theta)^{F + \\beta-1} \\, ,\n", "\\end{align*}\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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RGQxTECIiIiIiMhimIAQEREREZHFMAEhIiIiIiKLYQJCREQWd/r0aXTo0AEeHh6oU6cOvvrqK7VDIiIiC3FSOwAiIipbbt26hS5duqBTp07YsmULTp48iUmTJsHV1RUvvfSS2uEREZGZcSFCIiKyqClTpuCXX35BVFQUHB0dAQDvvfcevvrqK8TGxubVERGRfWIXLCIisqhNmzahX79+ikSjX79+uHnzJg4dOqRiZEREZAlMQIiIyGLS0tIQHR2NRo0aITs7O6/UrVsXzs7OOHPmjNohEhGRmTEBISIii0lKSoIQAsOGDYOzs3NecXV1RVZWFu7cuaN2iEREZGYchE5ERBb3wQcfoGvXroq6sLAwlaIhIiJLYgJCREQW4+vrC41Gg8qVK6NFixZ59ZmZmcjKykLFihVVjI6IiCyBXbCIiMhi3NzcUK9ePVy6dElRf+HCBQghEBgYqFJkRERkKUxAiIjIonr37o2NGzciOzs7r+7HH39E9erVERoaqmJkRERkCVwHhIiILOr27dto2rQpwsLCMGHCBBw/fhzTp0/H119/jeHDh6sdHhERmRkTECIisrjTp09jwoQJOHz4MKpWrYqpU6fi1VdfVTssIiKyACYgRERERERkMRwDQkREREREFsMEhIiIiIiILIYJCBERERERWQwTECIiIiIishgmIEREREREZDFMQIiIiIiIyGL+H3rLVjWIYUh2AAAAAElFTkSuQmCC" }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "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", "#### $\\ast$ **Try for yourself** \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{align*}\n", "\\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}} \\, .\n", "\\end{align*}\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", "#### $\\ast$ **Try for yourself** \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", "---" ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "kernelspec": { "display_name": "Julia 1.6.3", "language": "julia", "name": "julia-1.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.6.3" } }, "nbformat": 4, "nbformat_minor": 4 }