From 39b197bd3b5bb6d090b963524670b685fb8c51f6 Mon Sep 17 00:00:00 2001 From: Sofia Bonilla Date: Wed, 6 Oct 2021 08:04:06 -0400 Subject: [PATCH] lab-bayesian_statistics [Sofia Bonilla] --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 565 ++++++++++++++++++ your-code/main.ipynb | 398 +++++++++++- 2 files changed, 932 insertions(+), 31 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..653442e --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,565 @@ +{ + "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": 3, + "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": null, + "metadata": {}, + "outputs": [], + "source": [ + "def bayes(priori, verosimilitud): \n", + " marginal=sum(np.multiply(priori, verosimilitud))\n", + " posteriori=np.divide(np.multiply(priori, verosimilitud), marginal)\n", + " return posteriori\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#p(tazon1/vainilla)=[p(vainilla/tazon1)*p(tazon1)]/p(vainilla)#\n", + "#p(vainilla/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(vainilla)=1/2 *30/40+1/2*20/40\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv1=30/40\n", + "p1=1/2\n", + "pv=1/2*30/40+1/2*20/40\n", + "\n", + "p_v_1=(pv1*p1)/pv\n", + "p_v_1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that it came from Bowl 2?" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.4" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/vainilla)=[p(vainilla/tazon2)*p(tazon2)]/p(vainilla)#\n", + "#p(vainilla/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(vainilla)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv2=20/40\n", + "p2=1/2\n", + "pv=1/2*30/40+1/2*20/40\n", + "\n", + "p_v_2=(pv2*p2)/pv\n", + "p_v_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": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/chocolaate)=[p(chocolate/tazon1)*p(tazon1)]/p(chocolate)#\n", + "#p(chocolate/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(chocolate)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv1=10/40\n", + "p1=1/2\n", + "pv=1/2*10/40+1/2*20/40\n", + "\n", + "p_c_1=(pv1*p1)/pv\n", + "p_c_1" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6666666666666666" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/chocolate)=[p(chocolate/tazon2)*p(tazon2)]/p(chocolate)#\n", + "#p(chocolate/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(chocolate)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv2=20/40\n", + "p2=1/2\n", + "pv=1/2*10/40+1/2*20/40\n", + "\n", + "p_c_2=(pv2*p2)/pv\n", + "p_c_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": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.5882352941176471" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/amarillo)=[p(amarillo/bolsa1)*p(bolsa1)]/p(amarillo)#\n", + "#p(amarillo/bolsa1)= 0,2#\n", + "#p(bolsa1)=1/2#\n", + "#p(amarillo)=1/2 *0,2+1/2*0,14\n", + "\n", + "py1=2/10\n", + "p1=1/2\n", + "py=(1/2*2/10)+(1/2*14/100)\n", + "\n", + "p_y_1=(py1*p1)/py\n", + "p_y_1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that the yellow candy came from Bag 2?" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.411764705882353" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa2/amarillo)=[p(amarillo/bolsa2)*p(bolsa2)]/p(amarillo)#\n", + "#p(amarillo/bolsa2)= 0,2#\n", + "#p(bolsa2)=1/2#\n", + "#p(amarillo)=1/2 *0,2+1/2*0,14\n", + "\n", + "py2=14/100\n", + "p2=1/2\n", + "py=(1/2*2/10)+(1/2*14/100)\n", + "\n", + "p_y_2=(py2*p2)/py\n", + "p_y_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": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/verde)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 0,1#\n", + "#p(bolsa1)=1/2#\n", + "#p(verde)=(1/2*1/10)+(1/2*2/10)#\n", + "\n", + "pg1=1/10\n", + "p1=1/2\n", + "pg=(1/2*1/10)+(1/2*2/10)\n", + "\n", + "p_g_1=(pg1*p1)/pg\n", + "p_g_1" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6666666666666666" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/verde)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 0,2#\n", + "#p(bolsa1)=1/2#\n", + "#p(verde)=(1/2*1/10)+(1/2*2/10)#\n", + "\n", + "pg2=2/10\n", + "p2=1/2\n", + "pg=(1/2*1/10)+(1/2*2/10)\n", + "\n", + "p_g_2=(pg2*p2)/pg\n", + "p_g_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": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(/puerta B)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 1/2#\n", + "#p(bolsa1)=1/3#\n", + "#p(verde)=(1/3*1/2)+(1/3*0)+(1/3*1)\n", + "\n", + "pg2=1/2\n", + "p2=1/3\n", + "pg=(1/3*1/2)+(1/3*0)+(1/3*1)\n", + "\n", + "p_g_2=(pg2*p2)/pg\n", + "p_g_2" + ] + }, + { + "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": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAQAElEQVR4nO3db4xldX3H8fe3oEhZI0vXTuiydSBZTYBtUabW1LSdDW1FaLuYGoKhuih1TIutxnnQVR9oakj2QdHEtMWsgbhG60rV1k3FWtw6JT6gukspy0IsKw6VzbpUJMAAoZn12wf34Nydnd25d+69c2e+834lN/ec3zm/e373u+d+9sy5f05kJpKkWn5u2AOQJPWf4S5JBRnuklSQ4S5JBRnuklTQmcMeAMCGDRtydHS0qz7PPvss55xzzmAGtMpYixbrMMdazKlciwMHDvw4M1+50LIVEe6jo6Ps37+/qz5TU1OMj48PZkCrjLVosQ5zrMWcyrWIiEdPtczTMpJU0KLhHhGbIuJbEfFgRByKiPc17R+NiCMRcV9zu6qtzwcj4nBEfC8i3jTIJyBJOlknp2VmgcnMvDciXg4ciIi7mmWfyMy/bl85Ii4GrgMuAX4J+GZEvDozj/dz4JKkU1v0yD0zj2bmvc30M8BDwMbTdNkG7MnMFzLzB8Bh4PX9GKwkqTPRzW/LRMQocDdwKfAB4AbgaWA/raP7JyPib4B7MvNzTZ/bgK9n5pfmPdYEMAEwMjJy+Z49e7oa+MzMDOvWreuqT1XWosU6zLEWcyrXYuvWrQcyc2yhZR1/WiYi1gFfBt6fmU9HxK3Ax4Bs7m8B3tXp42XmLmAXwNjYWHb7bnbld8C7ZS1arMMcazFnrdaio0/LRMRLaAX75zPzKwCZeSwzj2fmT4FPM3fq5Qiwqa37BU2bJGmZdPJpmQBuAx7KzI+3tZ/fttpbgAea6b3AdRFxVkRcCGwGvtO/IUuSFtPJaZk3Am8HDkbEfU3bh4C3RcRltE7LTAPvAcjMQxFxB/AgrU/a3OQnZSRpeS0a7pn5bSAWWHTnafrcDNzcw7i0Qo3u+NpQtju98+qhbFdarfyGqiQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQV1Mll9qSh6+QKUJNbZrlhAFeK8ipQWo08cpekggx3SSrIcJekggx3SSrIcJekggx3SSrIcJekggx3SSrIcJekggx3SSrIcJekggx3SSrIcJekggx3SSrIcJekggx3SSpo0XCPiE0R8a2IeDAiDkXE+5r28yLiroh4uLlf37RHRHwyIg5HxP0R8bpBPwlJ0ok6OXKfBSYz82LgDcBNEXExsAPYl5mbgX3NPMCbgc3NbQK4te+jliSd1qLhnplHM/PeZvoZ4CFgI7AN2N2sthu4ppneBnw2W+4Bzo2I8/s9cEnSqUVmdr5yxChwN3Ap8D+ZeW7THsCTmXluRPwzsDMzv90s2wf8ZWbun/dYE7SO7BkZGbl8z549XQ18ZmaGdevWddWnquWsxcEjTy3LdpZi5Gw49nz/H3fLxlf0/0EHzNfHnMq12Lp164HMHFtoWccXyI6IdcCXgfdn5tOtPG/JzIyIzv+XaPXZBewCGBsby/Hx8W66MzU1Rbd9qlrOWgziAtT9MrllllsO9v+a79PXj/f9MQfN18ectVqLjj4tExEvoRXsn8/MrzTNx1483dLcP960HwE2tXW/oGmTJC2TTj4tE8BtwEOZ+fG2RXuB7c30duCrbe3vaD418wbgqcw82scxS5IW0cnfsG8E3g4cjIj7mrYPATuBOyLiRuBR4Npm2Z3AVcBh4Dngnf0csCRpcYuGe/PGaJxi8RULrJ/ATT2OS5LUA7+hKkkFGe6SVJDhLkkFGe6SVJDhLkkFGe6SVJDhLkkFGe6SVJDhLkkFGe6SVJDhLkkFGe6SVJDhLkkF9f+yNRq40XlXQ5rcMruir5Akafl55C5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBRnuklSQ4S5JBS16DdWIuB34feDxzLy0afso8G7gf5vVPpSZdzbLPgjcCBwH/iIzvzGAcUvLZv41a5fL9M6rh7Jd1dDJkftngCsXaP9EZl7W3F4M9ouB64BLmj5/FxFn9GuwkqTOLBrumXk38JMOH28bsCczX8jMHwCHgdf3MD5J0hIselrmNN4bEe8A9gOTmfkksBG4p22dx5q2k0TEBDABMDIywtTUVFcbn5mZ6bpPFZNbZk+YHzn75La1qFodetm/1/LrY761WoulhvutwMeAbO5vAd7VzQNk5i5gF8DY2FiOj493NYCpqSm67VPFDfPOAU9umeWWg738P11DtTpMXz++5L5r+fUx31qtxZI+LZOZxzLzeGb+FPg0c6dejgCb2la9oGmTJC2jJYV7RJzfNvsW4IFmei9wXUScFREXApuB7/Q2RElStzr5KOQXgHFgQ0Q8BnwEGI+Iy2idlpkG3gOQmYci4g7gQWAWuCkzjw9k5JKkU1o03DPzbQs033aa9W8Gbu5lUJKk3vgNVUkqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqyHCXpIIMd0kqaNFwj4jbI+LxiHigre28iLgrIh5u7tc37RERn4yIwxFxf0S8bpCDlyQtrJMj988AV85r2wHsy8zNwL5mHuDNwObmNgHc2p9hSpK6sWi4Z+bdwE/mNW8DdjfTu4Fr2to/my33AOdGxPl9GqskqUNnLrHfSGYebaZ/BIw00xuBH7at91jTdpR5ImKC1tE9IyMjTE1NdTWAmZmZrvtUMbll9oT5kbNPbluLqtWhl/17Lb8+5lurtVhquP9MZmZE5BL67QJ2AYyNjeX4+HhX/aempui2TxU37PjaCfOTW2a55WDP/5SrXrU6TF8/vuS+a/n1Md9arcVSPy1z7MXTLc394037EWBT23oXNG2SpGW01HDfC2xvprcDX21rf0fzqZk3AE+1nb6RJC2TRf+GjYgvAOPAhoh4DPgIsBO4IyJuBB4Frm1WvxO4CjgMPAe8cwBjltaE0Xmn37oxuWX2pNN3nZreefWSt6uVY9Fwz8y3nWLRFQusm8BNvQ5KktQbv6EqSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQUZ7pJUkOEuSQWd2UvniJgGngGOA7OZORYR5wFfBEaBaeDazHyyt2FKkrrRjyP3rZl5WWaONfM7gH2ZuRnY18xLkpbRIE7LbAN2N9O7gWsGsA1J0mn0Gu4J/GtEHIiIiaZtJDOPNtM/AkZ63IYkqUuRmUvvHLExM49ExC8CdwF/DuzNzHPb1nkyM9cv0HcCmAAYGRm5fM+ePV1te2ZmhnXr1i157KvZwSNPnTA/cjYce35Ig1lBrMOcXmqxZeMr+juYIaucFVu3bj3Qdkr8BD2F+wkPFPFRYAZ4NzCemUcj4nxgKjNfc7q+Y2NjuX///q62NzU1xfj4+BJHu7qN7vjaCfOTW2a55WBP742XYB3m9FKL6Z1X93k0w1U5KyLilOG+5NMyEXFORLz8xWng94AHgL3A9ma17cBXl7oNSdLS9HKYMwL8Y0S8+Dh/n5n/EhHfBe6IiBuBR4Frex+mJKkbSw73zHwE+NUF2p8AruhlUJKk3niCsgfzz31L0krhzw9IUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQVZLhLUkGGuyQV5JeYJJ1gmF/Oq/ajZcPkkbskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFWS4S1JBhrskFbTqr6E6zOs9StJK5ZG7JBW06o/cJdUxiL/EJ7fMcsMijzu98+q+b3fYPHKXpIIMd0kqaGDhHhFXRsT3IuJwROwY1HYkSScbyDn3iDgD+Fvgd4HHgO9GxN7MfHAQ25OkXgzzU3eDOt8/qCP31wOHM/ORzPw/YA+wbUDbkiTNE5nZ/weNeCtwZWb+STP/duDXM/O9betMABPN7GuA73W5mQ3Aj/sw3AqsRYt1mGMt5lSuxasy85ULLRjaRyEzcxewa6n9I2J/Zo71cUirlrVosQ5zrMWctVqLQZ2WOQJsapu/oGmTJC2DQYX7d4HNEXFhRLwUuA7YO6BtSZLmGchpmcycjYj3At8AzgBuz8xDfd7Mkk/pFGQtWqzDHGsxZ03WYiBvqEqShstvqEpSQYa7JBW04sJ9sZ8tiIizIuKLzfL/iIjRpn00Ip6PiPua26eWffB91kEtfisi7o2I2ea7Be3LtkfEw81t+/KNejB6rMXxtv1i1b+x30EtPhARD0bE/RGxLyJe1baszH7RYx1K7RMLyswVc6P15uv3gYuAlwL/BVw8b50/Az7VTF8HfLGZHgUeGPZzWOZajAK/AnwWeGtb+3nAI839+mZ6/bCf0zBq0SybGfZzWOZabAV+vpn+07bXSJn9opc6VNsnTnVbaUfunfxswTZgdzP9JeCKiIhlHONyWbQWmTmdmfcDP53X903AXZn5k8x8ErgLuHI5Bj0gvdSimk5q8a3MfK6ZvYfW90yg1n7RSx3WhJUW7huBH7bNP9a0LbhOZs4CTwG/0Cy7MCL+MyL+PSJ+c9CDHbBOajGIvitRr8/nZRGxPyLuiYhr+jqy5ddtLW4Evr7EvitZL3WAWvvEgipdieko8MuZ+UREXA78U0RckplPD3tgGrpXZeaRiLgI+LeIOJiZ3x/2oAYtIv4YGAN+e9hjGaZT1KH8PrHSjtw7+dmCn60TEWcCrwCeyMwXMvMJgMw8QOt83KsHPuLB6eUnHKr9/ENPzyczjzT3jwBTwGv7Obhl1lEtIuJ3gA8Df5iZL3TTd5XopQ7V9omFDfukf/uN1l8SjwAXMvcmySXz1rmJE99QvaOZfiVwRjN9Ea1/6POG/ZwGWYu2dT/DyW+o/oDWm2brm+m1Wov1wFnN9AbgYea98baabh2+Rl5L6+Bm87z2MvtFj3UotU+cskbDHsAC/2hXAf/d/KN8uGn7K1r/8wK8DPgH4DDwHeCipv2PgEPAfcC9wB8M+7ksQy1+jda5xmeBJ4BDbX3f1dToMPDOYT+XYdUC+A3gYPPiPwjcOOznsgy1+CZwrHkt3AfsrbhfLLUOFfeJhW7+/IAkFbTSzrlLkvrAcJekggx3SSrIcJekggx3SSrIcJekggx3SSro/wF42ppUhnJokgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "n=100\n", + "p=14/50\n", + "\n", + "n_draws = 100_000\n", + "prior = pd.Series(np.random.uniform(0,1,size=n_draws))\n", + "\n", + "def generative_model(proba_visita):\n", + " visita = np.random.binomial(100, proba_visita)\n", + " return visita\n", + "\n", + "visita = list()\n", + "for j in prior:\n", + " visita.append(generative_model(j))\n", + " \n", + "\n", + "posteriori = prior[list(map(lambda x:x ==14, visita))]\n", + "posteriori.hist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Produce a set of descriptive statistics for the posterior distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 1051.000000\n", + "mean 0.146001\n", + "std 0.035728\n", + "min 0.058347\n", + "25% 0.120488\n", + "50% 0.144002\n", + "75% 0.168244\n", + "max 0.287743\n", + "dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the 90% credible interval range?" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.091468053063467,0.20978487978338178)\n" + ] + } + ], + "source": [ + "print(f'({posteriori.quantile(0.05)},{posteriori.quantile(0.95)})')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the Maximum Likelihood Estimate?" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.14801458502913187" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 95bfcb9..653442e 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,50 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def bayes(priori, verosimilitud): \n", + " marginal=sum(np.multiply(priori, verosimilitud))\n", + " posteriori=np.divide(np.multiply(priori, verosimilitud), marginal)\n", + " return posteriori\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#p(tazon1/vainilla)=[p(vainilla/tazon1)*p(tazon1)]/p(vainilla)#\n", + "#p(vainilla/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(vainilla)=1/2 *30/40+1/2*20/40\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv1=30/40\n", + "p1=1/2\n", + "pv=1/2*30/40+1/2*20/40\n", + "\n", + "p_v_1=(pv1*p1)/pv\n", + "p_v_1" + ] }, { "cell_type": "markdown", @@ -45,10 +88,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.4" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/vainilla)=[p(vainilla/tazon2)*p(tazon2)]/p(vainilla)#\n", + "#p(vainilla/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(vainilla)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv2=20/40\n", + "p2=1/2\n", + "pv=1/2*30/40+1/2*20/40\n", + "\n", + "p_v_2=(pv2*p2)/pv\n", + "p_v_2" + ] }, { "cell_type": "markdown", @@ -59,10 +126,65 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/chocolaate)=[p(chocolate/tazon1)*p(tazon1)]/p(chocolate)#\n", + "#p(chocolate/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(chocolate)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv1=10/40\n", + "p1=1/2\n", + "pv=1/2*10/40+1/2*20/40\n", + "\n", + "p_c_1=(pv1*p1)/pv\n", + "p_c_1" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6666666666666666" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(tazon1/chocolate)=[p(chocolate/tazon2)*p(tazon2)]/p(chocolate)#\n", + "#p(chocolate/tazon1)= 30/40#\n", + "#p(tazon1)=1/2#\n", + "#p(tazon1)=1/2#\n", + "#p(chocolate)=1/2 *30/40+1/2*20/40\n", + "\n", + "pv2=20/40\n", + "p2=1/2\n", + "pv=1/2*10/40+1/2*20/40\n", + "\n", + "p_c_2=(pv2*p2)/pv\n", + "p_c_2" + ] }, { "cell_type": "markdown", @@ -95,10 +217,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.5882352941176471" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/amarillo)=[p(amarillo/bolsa1)*p(bolsa1)]/p(amarillo)#\n", + "#p(amarillo/bolsa1)= 0,2#\n", + "#p(bolsa1)=1/2#\n", + "#p(amarillo)=1/2 *0,2+1/2*0,14\n", + "\n", + "py1=2/10\n", + "p1=1/2\n", + "py=(1/2*2/10)+(1/2*14/100)\n", + "\n", + "p_y_1=(py1*p1)/py\n", + "p_y_1" + ] }, { "cell_type": "markdown", @@ -109,10 +254,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.411764705882353" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa2/amarillo)=[p(amarillo/bolsa2)*p(bolsa2)]/p(amarillo)#\n", + "#p(amarillo/bolsa2)= 0,2#\n", + "#p(bolsa2)=1/2#\n", + "#p(amarillo)=1/2 *0,2+1/2*0,14\n", + "\n", + "py2=14/100\n", + "p2=1/2\n", + "py=(1/2*2/10)+(1/2*14/100)\n", + "\n", + "p_y_2=(py2*p2)/py\n", + "p_y_2" + ] }, { "cell_type": "markdown", @@ -123,10 +291,63 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/verde)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 0,1#\n", + "#p(bolsa1)=1/2#\n", + "#p(verde)=(1/2*1/10)+(1/2*2/10)#\n", + "\n", + "pg1=1/10\n", + "p1=1/2\n", + "pg=(1/2*1/10)+(1/2*2/10)\n", + "\n", + "p_g_1=(pg1*p1)/pg\n", + "p_g_1" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6666666666666666" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(bolsa1/verde)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 0,2#\n", + "#p(bolsa1)=1/2#\n", + "#p(verde)=(1/2*1/10)+(1/2*2/10)#\n", + "\n", + "pg2=2/10\n", + "p2=1/2\n", + "pg=(1/2*1/10)+(1/2*2/10)\n", + "\n", + "p_g_2=(pg2*p2)/pg\n", + "p_g_2" + ] }, { "cell_type": "markdown", @@ -141,10 +362,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#p(/puerta B)=[p(verde/bolsa1)*p(bolsa1)]/p(verde)#\n", + "#p(verde/bolsa1)= 1/2#\n", + "#p(bolsa1)=1/3#\n", + "#p(verde)=(1/3*1/2)+(1/3*0)+(1/3*1)\n", + "\n", + "pg2=1/2\n", + "p2=1/3\n", + "pg=(1/3*1/2)+(1/3*0)+(1/3*1)\n", + "\n", + "p_g_2=(pg2*p2)/pg\n", + "p_g_2" + ] }, { "cell_type": "markdown", @@ -157,10 +401,51 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "n=100\n", + "p=14/50\n", + "\n", + "n_draws = 100_000\n", + "prior = pd.Series(np.random.uniform(0,1,size=n_draws))\n", + "\n", + "def generative_model(proba_visita):\n", + " visita = np.random.binomial(100, proba_visita)\n", + " return visita\n", + "\n", + "visita = list()\n", + "for j in prior:\n", + " visita.append(generative_model(j))\n", + " \n", + "\n", + "posteriori = prior[list(map(lambda x:x ==14, visita))]\n", + "posteriori.hist()" + ] }, { "cell_type": "markdown", @@ -171,10 +456,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "count 1051.000000\n", + "mean 0.146001\n", + "std 0.035728\n", + "min 0.058347\n", + "25% 0.120488\n", + "50% 0.144002\n", + "75% 0.168244\n", + "max 0.287743\n", + "dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.describe()" + ] }, { "cell_type": "markdown", @@ -185,10 +491,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.091468053063467,0.20978487978338178)\n" + ] + } + ], + "source": [ + "print(f'({posteriori.quantile(0.05)},{posteriori.quantile(0.95)})')" + ] }, { "cell_type": "markdown", @@ -197,6 +513,26 @@ "What is the Maximum Likelihood Estimate?" ] }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.14801458502913187" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.mean()" + ] + }, { "cell_type": "code", "execution_count": null, @@ -207,7 +543,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -221,7 +557,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.9.6" } }, "nbformat": 4,