From ce2a523d57dc50200f934cf11a39850c206226cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20P=C3=A9rez=20Ortega?= Date: Mon, 26 Jul 2021 15:57:29 -0500 Subject: [PATCH] Lab terminado --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 519 ++++++++++++++++++ your-code/main.ipynb | 354 ++++++++++-- 2 files changed, 841 insertions(+), 32 deletions(-) create mode 100644 your-code/.ipynb_checkpoints/main-checkpoint.ipynb diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..89edb39 --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,519 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Intro to Bayesian Statistics Lab\n", + "\n", + "Complete the following set of exercises to solidify your knowledge of Bayesian statistics and Bayesian data analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Cookie Problem\n", + "\n", + "Suppose we have two bowls of cookies. Bowl 1 contains 30 vanilla cookies and 10 chocolate cookies. Bowl 2 contains 20 of each. You randomly pick one cookie out of one of the bowls, and it is vanilla. Use Bayes Theorem to calculate the probability that the vanilla cookie you picked came from Bowl 1?" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bowl_1_vanilla = 30 \n", + "bowl_1_chocolate = 10\n", + "\n", + "bowl_2_vanilla = 20\n", + "bowl_2_chocolate = 20\n", + "\n", + "\n", + "(30/40)*(1/2)/((30/40)*(1/2) + (20/40)*(1/2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that it came from Bowl 2?" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.4" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(20/40)*(1/2)/((30/40)*(1/2) + (20/40)*(1/2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What if the cookie you had picked was chocolate? What are the probabilities that the chocolate cookie came from Bowl 1 and Bowl 2 respectively?" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a chocolate cookie is drawn from Bowl 1: 0.3333333333333333\n" + ] + } + ], + "source": [ + "chocolate_bowl_1 = (10/40)*(1/2)/((10/40)*(1/2) + (20/40)*(1/2))\n", + "print(f'Probability that a chocolate cookie is drawn from Bowl 1: {chocolate_bowl_1}')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a chocolate cookie is drawn from Bowl 2: 0.6666666666666666\n" + ] + } + ], + "source": [ + "chocolate_bowl_2 = (20/40)*(1/2)/((10/40)*(1/2) + (20/40)*(1/2))\n", + "print(f'Probability that a chocolate cookie is drawn from Bowl 2: {chocolate_bowl_2}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Candy Problem\n", + "\n", + "Suppose you have two bags of candies:\n", + "\n", + "- In Bag 1, the mix of colors is:\n", + " - Brown - 30%\n", + " - Yellow - 20%\n", + " - Red - 20%\n", + " - Green - 10%\n", + " - Orange - 10%\n", + " - Tan - 10%\n", + " \n", + "- In Bag 2, the mix of colors is:\n", + " - Blue - 24%\n", + " - Green - 20%\n", + " - Orange - 16%\n", + " - Yellow - 14%\n", + " - Red - 13%\n", + " - Brown - 13%\n", + " \n", + "Not knowing which bag is which, you randomly draw one candy from each bag. One is yellow and one is green. What is the probability that the yellow one came from the Bag 1?\n", + "\n", + "*Hint: For the likelihoods, you will need to multiply the probabilities of drawing yellow from one bag and green from the other bag and vice versa.*" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a yellow candy is drawn from Bag 1: 0.5882352941176471\n" + ] + } + ], + "source": [ + "yellow_bag_1 = (0.2)*(1/2)/((0.2)*(1/2) + (0.14)*(1/2))\n", + "print(f'Probability that a yellow candy is drawn from Bag 1: {yellow_bag_1}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that the yellow candy came from Bag 2?" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a yellow candy is drawn from Bag 2: 0.411764705882353\n" + ] + } + ], + "source": [ + "yellow_bag_2 = (0.14)*(1/2)/((0.2)*(1/2) + (0.14)*(1/2))\n", + "print(f'Probability that a yellow candy is drawn from Bag 2: {yellow_bag_2}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What are the probabilities that the green one came from Bag 1 and Bag 2 respectively?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a green candy is drawn from Bag 1: 0.3333333333333333\n" + ] + } + ], + "source": [ + "green_bag_1 = (0.1)*(1/2)/((0.1)*(1/2) + (0.2)*(1/2))\n", + "print(f'Probability that a green candy is drawn from Bag 1: {green_bag_1}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a green candy is drawn from Bag 2: 0.6666666666666666\n" + ] + } + ], + "source": [ + "green_bag_2 = (0.2)*(1/2)/((0.1)*(1/2) + (0.2)*(1/2))\n", + "print(f'Probability that a green candy is drawn from Bag 2: {green_bag_2}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Monty Hall Problem\n", + "\n", + "Suppose you are a contestant on the popular game show *Let's Make a Deal*. The host of the show (Monty Hall) presents you with three doors - Door A, Door B, and Door C. He tells you that there is a sports car behind one of them and if you choose the correct one, you win the car!\n", + "\n", + "You select Door A, but then Monty makes things a little more interesting. He opens Door B to reveal that there is no sports car behind it and asks you if you would like to stick with your choice of Door A or switch your choice to Door C. Given this new information, what are the probabilities of you winning the car if you stick with Door A versus if you switch to Door C?" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def bayes_rule(priors, likelihoods):\n", + " marg = sum(np.multiply(priors, likelihoods))\n", + " post = np.divide(np.multiply(priors, likelihoods), marg)\n", + " return post" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.33333333, 0.66666667, 0. ])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "doors = [1/3, 1/3, 1/3]\n", + "chance = [1/2, 1, 0]\n", + "bayes_rule(doors, chance)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Bayesian Analysis \n", + "\n", + "Suppose you work for a landscaping company, and they want to advertise their service online. They create an ad and sit back waiting for the money to roll in. On the first day, the ad sends 100 visitors to the site and 14 of them sign up for landscaping services. Create a generative model to come up with the posterior distribution and produce a visualization of what the posterior distribution would look like given the observed data." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "n_draws = 100000\n", + "prior = pd.Series(np.random.uniform(0, 1, size=n_draws))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "prior.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.608184\n", + "1 0.238457\n", + "2 0.648086\n", + "3 0.097690\n", + "4 0.331859\n", + "dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prior.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def generative_model(param):\n", + " result = np.random.binomial(100, param)\n", + " return result" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "compraron = []\n", + "\n", + "for x in prior:\n", + " compraron.append(generative_model(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Produce a set of descriptive statistics for the posterior distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "posterior = prior[list(map(lambda x: x == 14, compraron))]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "posterior.hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the 90% credible interval range?" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.0959084280239838, 0.21079239816561923)\n" + ] + } + ], + "source": [ + "print(f'({posterior.quantile(0.05)}, {posterior.quantile(0.95)})')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the Maximum Likelihood Estimate?" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.14726716158231123" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(posterior)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 95bfcb9..89edb39 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -31,10 +31,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.6" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bowl_1_vanilla = 30 \n", + "bowl_1_chocolate = 10\n", + "\n", + "bowl_2_vanilla = 20\n", + "bowl_2_chocolate = 20\n", + "\n", + "\n", + "(30/40)*(1/2)/((30/40)*(1/2) + (20/40)*(1/2))" + ] }, { "cell_type": "markdown", @@ -45,10 +65,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.4" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(20/40)*(1/2)/((30/40)*(1/2) + (20/40)*(1/2))" + ] }, { "cell_type": "markdown", @@ -59,10 +92,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a chocolate cookie is drawn from Bowl 1: 0.3333333333333333\n" + ] + } + ], + "source": [ + "chocolate_bowl_1 = (10/40)*(1/2)/((10/40)*(1/2) + (20/40)*(1/2))\n", + "print(f'Probability that a chocolate cookie is drawn from Bowl 1: {chocolate_bowl_1}')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a chocolate cookie is drawn from Bowl 2: 0.6666666666666666\n" + ] + } + ], + "source": [ + "chocolate_bowl_2 = (20/40)*(1/2)/((10/40)*(1/2) + (20/40)*(1/2))\n", + "print(f'Probability that a chocolate cookie is drawn from Bowl 2: {chocolate_bowl_2}')" + ] }, { "cell_type": "markdown", @@ -95,10 +157,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a yellow candy is drawn from Bag 1: 0.5882352941176471\n" + ] + } + ], + "source": [ + "yellow_bag_1 = (0.2)*(1/2)/((0.2)*(1/2) + (0.14)*(1/2))\n", + "print(f'Probability that a yellow candy is drawn from Bag 1: {yellow_bag_1}')" + ] }, { "cell_type": "markdown", @@ -109,10 +182,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a yellow candy is drawn from Bag 2: 0.411764705882353\n" + ] + } + ], + "source": [ + "yellow_bag_2 = (0.14)*(1/2)/((0.2)*(1/2) + (0.14)*(1/2))\n", + "print(f'Probability that a yellow candy is drawn from Bag 2: {yellow_bag_2}')" + ] }, { "cell_type": "markdown", @@ -123,10 +207,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a green candy is drawn from Bag 1: 0.3333333333333333\n" + ] + } + ], + "source": [ + "green_bag_1 = (0.1)*(1/2)/((0.1)*(1/2) + (0.2)*(1/2))\n", + "print(f'Probability that a green candy is drawn from Bag 1: {green_bag_1}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that a green candy is drawn from Bag 2: 0.6666666666666666\n" + ] + } + ], + "source": [ + "green_bag_2 = (0.2)*(1/2)/((0.1)*(1/2) + (0.2)*(1/2))\n", + "print(f'Probability that a green candy is drawn from Bag 2: {green_bag_2}')" + ] }, { "cell_type": "markdown", @@ -141,10 +254,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def bayes_rule(priors, likelihoods):\n", + " marg = sum(np.multiply(priors, likelihoods))\n", + " post = np.divide(np.multiply(priors, likelihoods), marg)\n", + " return post" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.33333333, 0.66666667, 0. ])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "doors = [1/3, 1/3, 1/3]\n", + "chance = [1/2, 1, 0]\n", + "bayes_rule(doors, chance)" + ] }, { "cell_type": "markdown", @@ -157,10 +297,103 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "n_draws = 100000\n", + "prior = pd.Series(np.random.uniform(0, 1, size=n_draws))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "prior.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.608184\n", + "1 0.238457\n", + "2 0.648086\n", + "3 0.097690\n", + "4 0.331859\n", + "dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prior.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def generative_model(param):\n", + " result = np.random.binomial(100, param)\n", + " return result" + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "compraron = []\n", + "\n", + "for x in prior:\n", + " compraron.append(generative_model(x))" + ] }, { "cell_type": "markdown", @@ -171,10 +404,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "posterior = prior[list(map(lambda x: x == 14, compraron))]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "posterior.hist()" + ] }, { "cell_type": "markdown", @@ -185,10 +452,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.0959084280239838, 0.21079239816561923)\n" + ] + } + ], + "source": [ + "print(f'({posterior.quantile(0.05)}, {posterior.quantile(0.95)})')" + ] }, { "cell_type": "markdown", @@ -199,10 +476,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.14726716158231123" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.mean(posterior)" + ] } ], "metadata": { @@ -221,7 +511,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.9.5" } }, "nbformat": 4,