diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 95bfcb9..52fb66a 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -11,13 +11,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" ] }, { @@ -31,10 +32,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "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" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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", + "pv1=30/40\n", + "p1=1/2\n", + "pv=1/2*30/40+1/2*20/40\n", + "\n", + "\n", + "p_v_1=(pv1*p1)/pv\n", + "p_v_1" + ] }, { "cell_type": "markdown", @@ -45,10 +82,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.4" + ] + }, + "execution_count": 8, + "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 +120,65 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 9, + "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": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6666666666666666" + ] + }, + "execution_count": 10, + "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 +211,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bag 1 given yellow: 0.5882352941176471\n" + ] + } + ], + "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\n", + "\n", + "print('Bag 1 given yellow: ', p_y_1)" + ] }, { "cell_type": "markdown", @@ -109,10 +247,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bag 2 given yellow: 0.411764705882353\n" + ] + } + ], + "source": [ + "\n", + "#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", + "\n", + "\n", + "print('Bag 2 given yellow: ', p_y_2)" + ] }, { "cell_type": "markdown", @@ -123,10 +284,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bag 1 given Green: 0.3333333333333333\n" + ] + } + ], + "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\n", + "\n", + "print('Bag 1 given Green: ', p_g_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bag 2 given Green: 0.6666666666666666\n" + ] + } + ], + "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", + "\n", + "\n", + "print('Bag 2 given Green: ', p_g_2)" + ] }, { "cell_type": "markdown", @@ -141,10 +353,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "0.3333333333333333" + ] + }, + "execution_count": 15, + "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 +392,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "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", + "sns.histplot(posteriori, kde=True)\n", + "\n", + "\n", + "plt.show()" + ] }, { "cell_type": "markdown", @@ -171,10 +440,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "count 1011.000000\n", + "mean 0.145604\n", + "std 0.033704\n", + "min 0.059375\n", + "25% 0.122435\n", + "50% 0.143171\n", + "75% 0.166544\n", + "max 0.266472\n", + "dtype: float64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.describe()" + ] }, { "cell_type": "markdown", @@ -185,10 +475,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(0.0928636389966882,0.2048836265413594)\n" + ] + } + ], + "source": [ + "print(f'({posteriori.quantile(0.05)},{posteriori.quantile(0.95)})')" + ] }, { "cell_type": "markdown", @@ -197,6 +497,26 @@ "What is the Maximum Likelihood Estimate?" ] }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1456035112806974" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posteriori.mean()" + ] + }, { "cell_type": "code", "execution_count": null, @@ -207,7 +527,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -221,7 +541,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.9.6" } }, "nbformat": 4,