{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "HkVS9fjiPPB6" }, "source": [ "# Probability Assignment" ] }, { "cell_type": "markdown", "metadata": { "id": "JmBODwG6PPB9" }, "source": [ "To get full credit in this assignment you need to use only `numpy` or `jax` libraries and include adequate explanation of the code in either markdown cells or code comments. Sometimes you need to type equations - type equations in latex math notation. \n", "\n", "PS: Please note that we run through chatGPT the questions and you will be referred to the Dean if we find that a robot answered your questions.\n", "\n", "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "S1k2jkcdPPB-" }, "source": [ "## Question 1a (10 points)\n", "\n", "In a private subreddit people are posting their opinions on the CEO of the company you work for. Lets assume that the employees that are posting are random logging in to that subreddit and that each post indicates whether the employee approves or not the job that the CEO is doing. Let $x_i$ be the binary random variable where $x_i=1$ indicates approval. You can assume that $x$ is distributed according to a Bernoulli distribution with parameter $p=1/2$.\n", "\n", "Your job is to sample $n=50$ posts and estimate the approval rate of the CEO by considering the statistics of $y=x_1+x_2+ \\dots + x_n$. What is the probability that 25 employees approve the CEO?\n", "\n", "## Question 1b (10 points)\n", "\n", "Following your findings in Q1a, read about the [Central Limit Theorem](https://en.wikipedia.org/wiki/Central_limit_theorem) and recognize that \n", "\n", "$$z=\\frac{y-\\mu_y}{\\sigma_y}$$ \n", "\n", "is normally distributed with mean 0 and variance 1.\n", "\n", "Can you find the probability that 25 employees approve the CEO using the Gaussian approximation?\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "XlTvVPAxPPCF" }, "source": [ "### 1a\n", "$P(x) = \\begin{pmatrix}n \\\\ x \\end{pmatrix} p^x (1 - p)^{n - x}$\n", "\n", "$n = 50 \\\\ p = 1/5 \\\\ x = 25$\n", "\n", "$P(25) = \\begin{pmatrix}50 \\\\ 25 \\end{pmatrix} (1/2)^{25} (1 - 1/2)^{50 - 25}$\n", "\n", "$ = {50! \\over 25!(50-25)!} (1/2)^{25} (1 - 1/2)^{50 - 25}$\n", "\n", "$ = 0.1123$\n" ] }, { "cell_type": "markdown", "source": [ "### 1b\n", "$\\mu_y = np = 50 (1/2) = 25$\n", "\n", "$\\sigma_y = \\sqrt{np(1-p)} = \\sqrt{50(1/2)(1/2)} = 3.5355$\n", "\n", "$Y \\sim \\mathcal{N}(25, 3.5355)$\n", "\n", "\n", "$ P(X=25) = P(24.5 < Y < 25.5)$\n", "\n", "$ = 0.1125 $\n" ], "metadata": { "id": "KM4GMZ2tPU5x" } }, { "cell_type": "markdown", "metadata": { "id": "pl3VkaUXPPCG" }, "source": [ "## Question 2 (20 points)\n", "\n", "A sequential experiment involves repeatedly drawing a ball from one of the two urns, noting the number on the ball and replacing the ball in the urn. Urn 0 contains a ball with the number 0 and two balls with the number 1. Urn 1 contains five balls with the number 0 and one ball with the number 1. \n", "\n", "The urn from which the first ball is drawn is selected by flipping a fair coin. Urn 0 is used if the outcome is H and urn 1 is used if the outcome is T. **The urn used in a subsequent draws corresponds to the number on the ball drawn in the previous draw.** \n", "\n", "What is the probability of a specific sequence of the numbers on drawn balls being 0011 ? \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "oGlxDQSvPPCH" }, "source": [ "Start with coin flip H:\n", "- 0: Drawing from urn 0, 0 is 1/3\n", "- 0: Drawing from urn 0, 0 is 1/3\n", "- 1: Drawing from urn 0, 1 is 2/3\n", "- 1: Drawing from urn 1, 1 is 1/6\n", "\n", "Start with coin flip T:\n", "- 0: Drawing from urn 1, 0 is 5/6\n", "- 0: Drawing from urn 0, 0 is 1/3\n", "- 1: Drawing from urn 0, 1 is 2/3\n", "- 1: Drawing from urn 1, 1 is 1/6\n", "\n", "\n", "$ = (1/2)((1/3 * 1/3 * 2/3 * 1/6) + (5/6 * 1/3 * 2/3 * 1/6))$\n", "\n", "$ = 0.0216$" ] }, { "cell_type": "markdown", "metadata": { "id": "Lhe8p7TXPPCH" }, "source": [ "## Question 3 (20 points) \n", "\n", "Referring to Example 6.6 of the [Math for ML book](https://mml-book.github.io/book/mml-book.pdf), simulate and plot the bivariate normal distribution with the shown parameters using the [Cholesky factorization](https://numpy.org/doc/stable/reference/generated/numpy.linalg.cholesky.html) for the simulation. \n" ] }, { "cell_type": "markdown", "source": [ "$p(x_1, x_2) = \\mathcal{N} = (\\begin{bmatrix}0 \\\\ 2 \\end{bmatrix}, \\begin{bmatrix} 0.3 & -1 \\\\ -1 & 5 \\end{bmatrix})$\n", "\n", "$y = Ax + \\mu$" ], "metadata": { "id": "DOn70il0YjOk" } }, { "cell_type": "code", "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "np.random.seed(0)\n", "sns.set_theme(style='whitegrid', palette='pastel')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ], "metadata": { "id": "WVPGNNzFbOkG" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "mean = [0, 2]\n", "cov = [[0.3, -1], [-1, 5]]\n", "\n", "L = np.linalg.cholesky(cov)\n", "\n", "samples = np.random.normal(size=(1000, 2))\n", "\n", "samples = np.dot(samples, L.T) + mean\n", "\n", "sns.scatterplot(x=samples[:, 0], y=samples[:, 1])\n", "\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 268 }, "id": "AvhnGPkUYHCj", "outputId": "123429ad-8292-41f4-de61-d01c789bef91" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "metadata": { "id": "sJvsuAwHPPCK" }, "source": [ "## Question 4 (20 points)\n", "\n", "Go through the provided links on [Poisson](https://dlsun.github.io/probability/poisson.html) and [exponential distributions](https://dlsun.github.io/probability/exponential.html) as the `Math for ML` textbook in your course site is not covering enough these important distributions.\n", "\n", "Watch this video https://www.youtube.com/watch?v=Asto3RS46ks where the author is explaining how to simulate a Poisson distribution from scratch. \n", "\n", "1. Using the Kaggle API download [this dataset](https://www.kaggle.com/datasets/new-york-city/nyc-east-river-bicycle-crossings) and plot the histogram of the number of cyclists that cross the Brooklyn bridge per day. \n", "2. Simulate the number of cyclists that cross the Brooklyn bridge per day using the Poisson distribution. Ensure that the simulated counts are similar distribution-wise to the observed counts.\n" ] }, { "cell_type": "markdown", "source": [ "### 4.1" ], "metadata": { "id": "0yrJ5MSpnTVL" } }, { "cell_type": "code", "source": [ "!mkdir ~/.kaggle\n", "!touch ~/.kaggle/kaggle.json\n", "\n", "# please don't steal my api key thanks\n", "api_token = {\"username\":\"andrehu\",\"key\":\"451234e9ec90cc4c721baae8c28a3d12\"}\n", "\n", "import json\n", "\n", "with open('/root/.kaggle/kaggle.json', 'w') as file:\n", " file.write(json.dumps(api_token))\n", "\n", "!chmod 600 ~/.kaggle/kaggle.json\n", "!kaggle datasets download -d new-york-city/nyc-east-river-bicycle-crossings" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ouA-V5Yzilou", "outputId": "f6fde1cd-a530-4ca7-c4d2-b56aca2b759b" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "mkdir: cannot create directory ‘/root/.kaggle’: File exists\n", "nyc-east-river-bicycle-crossings.zip: Skipping, found more recently modified local copy (use --force to force download)\n" ] } ] }, { "cell_type": "code", "source": [ "df = pd.read_csv('nyc-east-river-bicycle-crossings.zip')\n", "df.head()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "-H44zonDgtMm", "outputId": "9ecbb57c-b4e5-4692-e97d-1c98e790af4a" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Unnamed: 0 Date Day High Temp (°F) \\\n", "0 0 2016-04-01 00:00:00 2016-04-01 00:00:00 78.1 \n", "1 1 2016-04-02 00:00:00 2016-04-02 00:00:00 55.0 \n", "2 2 2016-04-03 00:00:00 2016-04-03 00:00:00 39.9 \n", "3 3 2016-04-04 00:00:00 2016-04-04 00:00:00 44.1 \n", "4 4 2016-04-05 00:00:00 2016-04-05 00:00:00 42.1 \n", "\n", " Low Temp (°F) Precipitation Brooklyn Bridge Manhattan Bridge \\\n", "0 66.0 0.01 1704.0 3126 \n", "1 48.9 0.15 827.0 1646 \n", "2 34.0 0.09 526.0 1232 \n", "3 33.1 0.47 (S) 521.0 1067 \n", "4 26.1 0 1416.0 2617 \n", "\n", " Williamsburg Bridge Queensboro Bridge Total \n", "0 4115.0 2552.0 11497 \n", "1 2565.0 1884.0 6922 \n", "2 1695.0 1306.0 4759 \n", "3 1440.0 1307.0 4335 \n", "4 3081.0 2357.0 9471 " ], "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", " \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", "
Unnamed: 0DateDayHigh Temp (°F)Low Temp (°F)PrecipitationBrooklyn BridgeManhattan BridgeWilliamsburg BridgeQueensboro BridgeTotal
002016-04-01 00:00:002016-04-01 00:00:0078.166.00.011704.031264115.02552.011497
112016-04-02 00:00:002016-04-02 00:00:0055.048.90.15827.016462565.01884.06922
222016-04-03 00:00:002016-04-03 00:00:0039.934.00.09526.012321695.01306.04759
332016-04-04 00:00:002016-04-04 00:00:0044.133.10.47 (S)521.010671440.01307.04335
442016-04-05 00:00:002016-04-05 00:00:0042.126.101416.026173081.02357.09471
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 217 } ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JSJx6hpAPPCL", "colab": { "base_uri": "https://localhost:8080/", "height": 285 }, "outputId": "cc27517e-12fd-4bb7-e7c2-86bd6f58b3d5" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "sns.histplot(df['Brooklyn Bridge'], kde=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "source": [ "### 4.2" ], "metadata": { "id": "_5BMe6AunU50" } }, { "cell_type": "code", "source": [ "# function from video\n", "def poisson(lam):\n", " el, n, u = np.exp(-lam), 0, np.random.uniform(0, 1)\n", " pp, fact, pow = el, 1, 1\n", " while u > pp:\n", " n = n + 1\n", " fact, pow = n * fact, lam * pow\n", " pp = pp + (pow / fact) * el\n", " return n" ], "metadata": { "id": "xE0pL_JFoQvX" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "def generate_samples(n, lam, scale):\n", " samples = []\n", " for i in range(n):\n", " val = poisson(lam)\n", " samples.append(val * scale)\n", " return samples\n", "\n", "# samples = np.random.poisson(2, size=(250)) * 500\n", "samples = generate_samples(200, 10, 200)\n", "\n", "sns.histplot(samples, kde=True)\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 268 }, "id": "GMpud99snaSD", "outputId": "06276185-98db-4a3b-ee42-7363f8462de2" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "metadata": { "id": "1SUeTeqFPPCM" }, "source": [ "# Question 5 (20 points)\n", "\n", "You are asked to stress test an cloud API endpoint and are told that the API exposes a database server that can be abstracted as an M/M/1 queue. Go through [this introductory](https://queue-it.com/blog/queuing-theory/) page to just understand the queuing domain and the notation M/M/1. Go also through the elements of the MM1 queue [here](https://en.wikipedia.org/wiki/M/M/1_queue). Make sure you click on the links and learn about the random process called Poisson process. \n", "\n", "\n", "Your task is to simulate the behavior of the queue and plot the number of requests that are waiting in the queue as a function of time. You are given three arrival rates of the API requests $\\lambda=[1, 3, 4]$ and the service time of the requests as an exponential random variable with rate $\\mu=4$. \n", "\n", " " ] }, { "cell_type": "code", "source": [ "def simulation(arrival_rate):\n", " df = pd.DataFrame()\n", " queue = []\n", " i, service_time, next_arrival = 0, 0, 0\n", " \n", " while i < 1000:\n", " while next_arrival < service_time:\n", " queue.append(next_arrival)\n", " next_arrival += np.random.poisson(arrival_rate)\n", "\n", " df = df.append({'time': next_arrival, 'waiting': len(queue)}, ignore_index=True)\n", " try:\n", " queue.pop()\n", " except Exception as e:\n", " pass\n", "\n", " if len(queue) == 0:\n", " service_time = next_arrival + np.random.exponential(4)\n", " else:\n", " service_time += np.random.exponential(4)\n", " i += 1\n", " return df\n", "\n", "sim1 = simulation(1)\n", "sim2 = simulation(3)\n", "sim3 = simulation(4)" ], "metadata": { "id": "l9X4rPs03ZAu" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# merging simulations\n", "df = pd.DataFrame()\n", "\n", "df['waiting1'] = sim1['waiting']\n", "df['waiting2'] = sim2['waiting']\n", "df['waiting3'] = sim3['waiting']" ], "metadata": { "id": "zDmo7r7fKbQP" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "plt.figure(figsize=(12, 6))\n", "sns.lineplot(data=df)\n", "\n", "plt.xlabel(\"Time\")\n", "plt.ylabel(\"Waiting\")\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 394 }, "id": "Chzo6DIOJ91N", "outputId": "6d40c572-c88a-47dc-fb48-4bcf576f2691" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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cOFC5s+fz3333YfP56Ouro7GxkamT5/OsmXLsCyLQ4cOsWjRIpqbmykqKgLg4osv5uabb2bevHn9bZ00aRLGGNrb2xk9enS8vmUiIiISQzuaorxXH8Gy+g7hKQq4uWS8H7dL4ftUKIifzLpfHvv63H/u+98ta6Dj0GfLp3weMkfD/r9B/d/6L6fYNrjdn7z+BObOncszzzzT14x165gxYwbr169n2rRprFu3joULF3LllVf275/+ox/9iBUrVnDPPfccdZ8lS5bw1a9+ldWrVx+3rp07d/LMM89gWRZf+cpXeOedd7jooot45JFHmD17NnfccQcHDhygsrKSiy+++DOvf/nllykuLlYIFxERGeIcY2jqdOgMOtTsD5OT5uLq81PoCRtSvJZC+GlQEE9gY8aMIRQK0djYyLp167jrrrtYvnw5lZWV/SPgK1eupKqqikgkQk9PDyUlJWdU1xVXXNF/yuiUKVPYt28fF110ERs2bOD+++8HoKCggLlz537mtRs3buTHP/4xv/jFL874vYqIiMjg8F59hC0NEQAy/BblxT4syyLdrwB+uhTET+ZkI9fnLzhxedEFff99JHiaR9zPmTOHN954g5aWFmbPns3DDz/M2rVrmT17NtXV1Tz33HOsWrWK7Oxsqqqqjrtf+8l8HMIB3G43tm2f0uvee+897r33Xn76059y3nnnnVHdIiIikpgOd9lsbYzgOBB1DMEotPU4jMl2M2Gkl9xhLo2AnwXtmpLg5syZw4oVK5gxYwYAM2fOZMWKFcydO5eOjg4yMjIIBAKEw2FefPHFY94jIyODYDBINBo97fpnzZrFb37zGwAaGhpYv359f9mmTZu46667+MlPfsL5559/Bu9OREREElVDh82abUEOtNt0BB16Iwa/G2YUern4PD/5mW6F8LOkEfEEN2fOHBYtWtQ/JWTOnDk8//zzzJkzh6ysLH7729+yYMECsrKyqKioYPPmzZ+5RyAQoLKyksrKSjIzM1m1atUp17948WIWLVpEVVUVhYWFTJs2jYyMDAD+8z//k2AwyJIlS/qf//jjjzNp0qSzfNciIiISD/vbomzcGyZiG8If7Xry+cmppHgVuAeCZYwx8W5ErIVCIWpraykrKztqSsa2bdsoLS0d0Lq7T3NqSrwFg0E8Hg8ej4empiauv/56nnnmmdOehhKL720iqamp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1arJxyaTSe69916uueYa3ve+9/Gtb30Lz/PK9a0IIcQZTYK4EEKIk1qxYgV33HEH69ato7u7m09/+tP4vs8LL7zAX/7lX/L3f//3k/e95557ME2T5cuX89hjj7F69WoeeeSRMq69EEKcuSSICyGEOKlLLrmE973vfZimyc0338zIyAif+9znsCyLW265hSNHjpBIJBgcHGTlypXce++9hMNh4vE4n/rUp6TnXAghpiEnawohhDipeDw+ed11XaqrqydP7nRdF4BMJkN/fz/FYpFrrrlm8v6+79PU1PTerrAQQswQEsSFEEKcFo2Njdi2zZo1azBN+fMihBBvR1pThBBCnBb19fVcffXVfOMb3yCVSuH7PgcPHuSVV14p96oJIcQZSYK4EEKI0+af//mfKRQK3HLLLVx66aXcfffdDAwMlHu1hBDijCTjiAshhBBCCFEGUhEXQgghhBCiDCSICyGEEEIIUQYSxIUQQgghhCgDCeJCCCGEEEKUgQRxIYQQQgghykCCuBBCCCGEEGUgQVwIIYQQQogykCAuhBBCCCFEGUgQF0IIIYQQogz+f0SY9zqa2GSvAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.4 64-bit", "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.10.6" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" } }, "colab": { "provenance": [] } }, "nbformat": 4, "nbformat_minor": 0 }