Statistics-and-Probability-.../Chapter 2 Special Discrete ...

4054 lines
1.1 MiB
Plaintext
Raw Normal View History

2025-02-14 11:38:34 +08:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "HpRtgWwprG72"
},
"source": [
"# **`Chapter 2: Special Discrete Random Variables`**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DHZIzu1stgEF"
},
"source": [
"**Table of Content:**\n",
"\n",
"- [Import Libraries](#Import_Libraries)\n",
"- [2.1. Bernoulli Distribution](#Bernoulli_Distribution)\n",
"- [2.2. Binomial Distribution](#Binomial_Distribution)\n",
"- [2.3. Negative Binomial (Pascal) Distribution](#Negative_Binomial_Distribution)\n",
"- [2.4. Geometric Distribution](#Geometric_Distribution)\n",
"- [2.5. Poisson Distribution](#Poisson_Distribution)\n",
"- [2.6. Discrete Uniform Distribution](#Discrete_Uniform_Distribution)\n",
"- [2.7. Hypergeometric Distribution](#Hypergeometric_Distribution)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WJhmgDxsVHEO"
},
"source": [
"<a name='Import_Libraries'></a>\n",
"\n",
"## **Import Libraries**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "vXStgb2JU6c0",
"outputId": "8195a0a1-6093-4e60-c038-e78e34aa0050"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: scipy in c:\\anaconda\\lib\\site-packages (1.11.2)\n",
"Requirement already satisfied: numpy<1.28.0,>=1.21.6 in c:\\anaconda\\lib\\site-packages (from scipy) (1.24.3)\n"
]
}
],
"source": [
"!pip install --upgrade scipy"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ZPuphzTmU-P8",
"outputId": "1bc3dbb9-3a13-42f3-e297-12dededee46b"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as mpatches\n",
"import seaborn as sns\n",
"import math\n",
"from scipy import stats\n",
"from scipy.stats import norm\n",
"from scipy.stats import chi2\n",
"from scipy.stats import t\n",
"from scipy.stats import f\n",
"from scipy.stats import bernoulli\n",
"from scipy.stats import binom\n",
"from scipy.stats import nbinom\n",
"from scipy.stats import geom\n",
"from scipy.stats import poisson\n",
"from scipy.stats import uniform\n",
"from scipy.stats import randint\n",
"from scipy.stats import nbinom\n",
"from scipy.stats import expon\n",
"from scipy.stats import gamma\n",
"from scipy.stats import beta\n",
"from scipy.stats import weibull_min\n",
"from scipy.stats import hypergeom\n",
"from scipy.stats import shapiro\n",
"from scipy.stats import pearsonr\n",
"from scipy.stats import normaltest\n",
"from scipy.stats import anderson\n",
"from scipy.stats import spearmanr\n",
"from scipy.stats import kendalltau\n",
"from scipy.stats import chi2_contingency\n",
"from scipy.stats import ttest_ind\n",
"from scipy.stats import ttest_rel\n",
"from scipy.stats import mannwhitneyu\n",
"from scipy.stats import wilcoxon\n",
"from scipy.stats import kruskal\n",
"from scipy.stats import friedmanchisquare\n",
"from statsmodels.tsa.stattools import adfuller\n",
"from statsmodels.tsa.stattools import kpss\n",
"from statsmodels.stats.weightstats import ztest\n",
"from scipy.integrate import quad\n",
"from IPython.display import display, Latex\n",
"\n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"warnings.simplefilter(action='ignore', category=FutureWarning)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5z2nOmnTrKxu"
},
"source": [
"<a name='Bernoulli_Distribution'></a>\n",
"\n",
"## **2.1. Bernoulli Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0riBQ6Kwr91-"
},
"source": [
"Suppose that an experiment, whose outcome can be classified as either a “success” or as a “failure” is performed. If we let $X = 1$ when the outcome is a success and $X = 0$ when it is a failure, then the probability mass function of $X$ is given by:\n",
"\n",
"$P(X=x) =\\begin{cases}p & x = 1\\\\1-p = q & x = 0\\end{cases}$\n",
"\n",
"or\n",
"\n",
"$P(X=x) = p^x(1-p)^{1-x} \\quad \\quad x = 0,1$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = p$\n",
"\n",
"$Var(X) = p(1-p)$\n",
"\n",
"$Median(X) = \\begin{cases}0 & p < \\frac{1}{2}\\\\{[0,1]} & p = \\frac{1}{2} \\\\1 & p > \\frac{1}{2}\\end{cases}$\n",
"\n",
"$Mode(X) = \\begin{cases}0 & p < \\frac{1}{2}\\\\{[0,1]} & p = \\frac{1}{2} \\\\1 & p > \\frac{1}{2}\\end{cases}$\n",
"\n",
"$Skewness(X) = \\frac{1-2p}{\\sqrt{p(1-p)}}$\n",
"\n",
"$Kurtosis(X) = \\frac{6p^2-6p+1}{p(1-p)} = \\frac{1-6pq}{p(1-p)}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = p\\ e^t + q$\n",
"\n",
"$\\\\ $\n",
"\n",
"$CDF = F(X=x) = \\begin{cases}0 & x < 0\\\\1-p & 0\\leq x< 1 \\\\1 & x > 0\\end{cases}$"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 290
},
"id": "l0MqQdPqrnPe",
"outputId": "2292e925-93dc-4677-8cf7-321e2dea23cd"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAG/CAYAAACtyFb8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxUElEQVR4nO3deXhUVZ7/8U8ppBIgCcRAFhNCEJBNwBbZ1CaApAmKYXGwRYGgMCjoyNBIC7YQHCHACI/YNDQuHUBWW4FWUSQCCTKgHZYIMkqDzRIgMRKysIQCwv39waR+FNlDSNWh36/nuc9T99xz7/1WotbHc07d2CzLsgQAAGCo29xdAAAAwI0gzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmgP+zePFi2Ww2l61hw4aKiorSZ5995u7yqp3NZlN8fLxzPzk5WTabTcnJyc62+Ph42Wy2cq9V1K9oq1OnjsLCwvSb3/xGf/zjH3XmzJli58TFxalJkyaVqvnkyZOKj49XWlpapc4r6V42m00vvPBCpa5TngULFmjx4sXF2o8cOSKbzVbisZryzDPPqE+fPsXa//jHP6ply5ay2+2KjIzUtGnTdOnSpQpd89ChQxo6dKgaN24sHx8f3XXXXRo/fryys7Nd+g0dOlT9+/evjrcBlMwCYFmWZSUmJlqSrMTERGvHjh3W9u3brTVr1lg9e/a0JFmffPKJu0usVpKsqVOnOve3bNliSbK2bNnibEtPT7d27NhR7rWmTp1qSbI2bNhg7dixw0pJSbFWrlxpjRw50vL29rbCw8OttLQ0l3MOHTpk7d69u1I1p6amOn9HlVHSvSRZY8eOrdR1ytOmTRure/fuxdovXLhg7dixw8rKyqrW+1XU7t27rdtuu81KTU11aX/jjTcsm81mTZo0ydqyZYs1e/Zsy8vLyxo1alS518zKyrLuuOMOKzIy0lq8eLG1efNma86cOVa9evWsDh06WIWFhc6+hw4dsmrVqmVt2rSp2t8bYFmWRZgB/k9RmLn+P/jnz5+37Ha79eSTT1bbvc6fP19t16qqioSZiioKM7/88kuxY2lpaZa/v7/VuHFj68KFCzdQceXDzLlz50o9VpNhxt0GDx5sdenSxaXt1KlTlre3t/Xv//7vLu3Tp0+3bDabtX///jKv+e6771qSrK+++sqlfcaMGZakYuHx0UcftXr37n0D7wIoHdNMQDm8vb3l5eWl2rVru7RfvHhRb7zxhnOIvmHDhhoxYoR++eUXl35NmjTRo48+qjVr1ujee++Vt7e3pk2b5pzWWblypV599VWFhobKz89PDz/8sA4cOFCsjr/85S9q3769vL29FRAQoAEDBuiHH35w6RMVFaWoqKhi51ZlSkeq+DRTWdq3b69XX31Vx44d0+rVq8us6a9//as6d+4sf39/1alTR02bNtUzzzwj6eo02P333y9JGjFihHNKq2iqLC4uTvXq1dO+ffsUHR0tX19f9erVq9R7FVm0aJFatGghu92u1q1ba9WqVRX6GRRNSx45ckTS1d/z/v37lZKS4qyt6J6lTTNt27ZNvXr1kq+vr+rUqaNu3bpp/fr1Jd5ny5Ytev755xUYGKg77rhDAwcO1MmTJ0t8T9f6+eeftXbtWg0dOtSlfcOGDbpw4YJGjBjh0j5ixAhZlqV169aVed2ifx/8/f1d2uvXry/p6r831xo6dKi++uor/fTTT+XWDFQWYQa4TmFhoS5fvqxLly7p+PHjGjdunM6dO6chQ4Y4+1y5ckWxsbGaOXOmhgwZovXr12vmzJlKSkpSVFSUCgoKXK65e/duvfzyy/qP//gPbdiwQYMGDXIemzx5so4ePar33ntP77zzjg4ePKh+/fqpsLDQ2SchIUHPPvus2rRpozVr1mjevHnau3evunbtqoMHD978H8oNeuyxxyRJW7duLbXPjh079MQTT6hp06ZatWqV1q9frylTpujy5cuSpF/96ldKTEyUJP3hD3/Qjh07tGPHDo0cOdJ5jYsXL+qxxx5Tz5499be//U3Tpk0rs65PPvlEb7/9tl5//XV99NFHioiI0JNPPqmPPvqo0u9x7dq1atq0qe69915nbWvXri21f0pKinr27Km8vDy9//77WrlypXx9fdWvXz+X0Fdk5MiRql27tlasWKHZs2crOTlZTz/9dLl1bdy4UZcuXVKPHj1c2r///ntJ0j333OPSHhISosDAQOfx0vTv31+NGzfW7373O+3fv19nz57V1q1bNXPmTPXr10+tWrVy6R8VFSXLsvT555+XWzNQWbXcXQDgabp06eKyb7fbNX/+fP3mN79xtn344YfasGGDPv74Yw0cONDZ3r59e91///1avHixnn/+eWd7VlaW/vd//1ctWrRwthUttG3durWWLVvmbL/99ts1ePBgpaamqkuXLsrNzdV//dd/qW/fvlqxYoWzX1RUlJo3b674+HgtX7682t7/zRARESFJZY4kbN++XZZl6c9//rPL/+3HxcVJkvz8/NS2bVtJ0l133VXs9yRJly5d0pQpU4qNNpTm1KlTSk1NVVBQkCSpb9++atu2rSZNmqTHH3+8Qtcocu+998rHx0d+fn4l1na9V155RQ0aNFBycrLq1asnSXr00UfVoUMHTZgwQYMHD3YZEerTp4/efvtt5/7p06c1ceJEZWZmKjg4uNT77NixQz4+PmrZsqVLe3Z2tux2u+rWrVvsnICAgGKLeK/n7++vb775RoMGDXL+XiTp3/7t3/TBBx8U69+oUSPdeeed+p//+R+9+OKLZV4bqCxGZoDrLF26VKmpqUpNTdUXX3yh4cOHa+zYsZo/f76zz2effab69eurX79+unz5snPr0KGDgoODXb4RJEnt2rVzCTLXKhq1uLavJB09elTS1Q+jgoIC54d6kfDwcPXs2VObNm26wXd881mWVW6foimkwYMH68MPP9SJEyeqdK9rR73K06tXL2eQka4GySeeeEKHDh3S8ePHq3T/ijh37py+/fZbPf74484gU3T/oUOH6vjx48WmGsv756Q0J0+eVMOGDUucKitrCrG86cWcnBzFxsYqPz9fy5cv19atW7VgwQJt27ZNjz32mHNE7VqNGjWq8u8VKAthBrhOq1at1LFjR3Xs2FF9+vTRokWLFB0drYkTJyo3N1fS1XUIubm5zrU0126ZmZk6deqUyzVDQkJKvd8dd9zhsm+32yXJOVVV9H/IJV0jNDS03P+D9gRFH7ihoaGl9vn1r3+tdevW6fLlyxo2bJjCwsLUtm1brVy5ssL3qVOnjvz8/Crcv6QRjaK2m/lzzcnJkWVZpf5OS7p/ef+clKagoKDY+pWi6124cEHnz58vduz06dMKCAgo87qzZs1SWlqakpKSNGTIED300EN6/vnntXz5cm3cuLHE0UJvb+9y6wWqgjADVEC7du1UUFCgf/zjH5LkXIRZNIJz/bZgwQKX829kEW3Rh1hGRkaxYydPnlRgYKBz39vbWw6Ho1i/68NVTfvkk08kqcTFydeKjY3Vpk2blJeXp+TkZIWFhWnIkCHasWNHhe5T2Z9zZmZmqW1FP/eiIHD9z/VGfqYNGjTQbbfdVurvVJLL7/VGBAYG6vTp08Xai9bK7Nu3z6W9KIxfO3VUkrS0NN15553FAlnRCFtJa25Onz5dbe8LuBZhBqiAooe0NWzYUNLVtQ3Z2dkqLCx0juJcu919993Vdu+uXbvKx8fHZV2NJB0/flybN292fmNHuvqNmn/84x8uH7zZ2dnavn17tdVTWd99951mzJihJk2aaPDgwRU6x263q3v37po1a5Ykac+ePc52qfzRiIratGmTfv75Z+d+YWGhVq9erbvuukthYWGS5PxG0t69e13O/fTTT0usuyK11a1bV507d9aaNWtc+l+5ckXLli1TWFhYqdOSldWyZUtlZ2crLy/Ppb1Pnz7y9vYu9g2rom9PlfeQu9DQUB0/frzYtFFR8Cz6+RW5fPmy0tPT1bp166q9EaAMLAAGrvP999875/uzs7O1Zs0aJSU
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 1000000\n",
"p = 0.8\n",
"\n",
"ber_data = np.random.binomial(n = 1, p = p, size = N)\n",
"\n",
"sns.histplot(ber_data, color='b', stat='density', bins=50)\n",
"plt.xlim(-0.1,1.1)\n",
"plt.xticks([0,1], fontsize=20, ha='center')\n",
"plt.title(f'Bernoulli Distribution ({p})');"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "zU4alj0sutS2",
"outputId": "157bdf0d-39d9-42b9-acb9-a922921adf60"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the Bernoulli(P=0.8) Distribution is: 0.8\n",
"The median of the Bernoulli(P=0.8) Distribution is: 1.0\n",
"The variance of the Bernoulli(P=0.8) Distribution is: 0.16\n",
"The standard deviation of the Bernoulli(P=0.8) Distribution is: 0.4\n",
"The skewness of the Bernoulli(P=0.8) Distribution is: -1.5\n",
"The kurtosis of the Bernoulli(P=0.8) Distribution is: 0.25\n"
]
}
],
"source": [
"p = 0.8\n",
"print(f'The mean of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.mean(p = p), 4))\n",
"print(f'The median of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.median(p = p), 4))\n",
"print(f'The variance of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.var(p = p), 4))\n",
"print(f'The standard deviation of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.std(p = p), 4))\n",
"print(f'The skewness of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.stats(p, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the Bernoulli(P={p}) Distribution is: ', np.round(bernoulli.stats(p, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NsyayQJ1J2Bj"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "r1BuJBNjaj0M",
"outputId": "424dcada-031b-46da-eb21-e9bf004ce730"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0, 1.99, 0.001)\n",
"x1 = np.arange(0, 2)\n",
"x2 = np.arange(0, 1) + 0.999\n",
"\n",
"plt.scatter(x, bernoulli.cdf(x, p=p), color = 'r')\n",
"plt.scatter(x2, bernoulli.cdf(x2, p=p), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, bernoulli.cdf(x1, p=p), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(-0.05,2);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4IAqcmYESSAS"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"bernoulli.cdf($X,P$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"bernoulli.sf($X,P$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Zm-zmsdNSa_z",
"outputId": "e64d5b74-f8f7-497e-9548-71a609c62de1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *0.5* in the B(0.2) Distribution is: 0.8\n",
"The Right probability of *0.5* in the B(0.2) Distribution is: 0.2\n"
]
}
],
"source": [
"X = 0.5\n",
"p = 0.2\n",
"print(f'The left probability of *{X}* in the B({p}) Distribution is: ', bernoulli.cdf(X, p=p))\n",
"print(f'The Right probability of *{X}* in the B({p}) Distribution is: ', bernoulli.sf(X, p=p))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jir0-E5gTNRb"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"bernoulli.pmf($X,P$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "srUdo4jMTPqT",
"outputId": "16ffcee6-ff7d-4200-c4f0-b51f4c5ae830"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=1* in the B(0.2) Distribution is: 0.2\n"
]
}
],
"source": [
"X = 1\n",
"p = 0.2\n",
"print(f'The probability of *X={X}* in the B({p}) Distribution is: ', bernoulli.pmf(X, p=p))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fFKKuULM2F16"
},
"source": [
"If $X \\sim Ber(P) \\quad$ then $\\quad Y_1 = X^n \\sim Ber(P)$\n",
"\n",
"If $X \\sim Ber(P) \\quad$ then $\\quad Y_2 = 1-X \\sim Ber(1-P)$\n",
"\n",
"If $X \\sim Ber(P) \\quad$ then $\\quad Y_3 = 1-X^n \\sim Ber(1-P)$\n",
"\n",
"If $X \\sim Ber(P) \\quad$ then $\\quad Y_4 = {(1-X)}^n \\sim Ber(1-P)$\n",
"\n",
"If $X_1, X_2, ..., X_n \\sim Ber(P) \\quad$ then $\\quad Y_5 = Min(X_1, X_2, ..., X_n) \\sim Ber(P^n)$\n",
"\n",
"If $X_1, X_2, ..., X_n \\sim Ber(P) \\quad$ then $\\quad Y_6 = Max(X_1, X_2, ..., X_n) \\sim Ber(1-q^n)$\n",
"\n",
"If $X_1, X_2, ..., X_n \\sim Ber(P) \\quad$ then $\\quad Y_7 = X_1 \\times X_2\\times ...\\times X_n \\sim Ber(P^n)$\n",
"\n",
"If $Y_1 = Min(X_1, X_2, ..., X_n), Y_2 = Max(X_1, X_2, ..., X_n) \\quad$ then $\\quad Y_8 = {Y_1}{Y_2} \\sim Ber(P^n)$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "c1_c9ACB5Q_j"
},
"source": [
"<a name='Binomial_Distribution'></a>\n",
"\n",
"## **2.2. Binomial Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8m2i2g8D5hvP"
},
"source": [
"Suppose now that $n$ independent trials, each of which results in a “success” with probability $p$ and in a “failure” with probability $1 p$, are to be performed. If $X$ represents the number of successes that occur in the $n$ trials, then $X$ is said to be a binomial random variable with parameters $(n, p)$.\n",
"\n",
"$P(X=i) = \\binom{i}{n} p^i (1-p)^{n-i} \\quad \\quad x = 0,1,...,n$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = np$\n",
"\n",
"$Var(X) = np(1-p)$\n",
"\n",
"$Skewness(X) = \\frac{q-p}{\\sqrt{npq}}$\n",
"\n",
"$Kurtosis(X) = \\frac{1-6pq}{npq}$\n",
"\n",
"$Mode(X) = \\begin{cases}(n+1)p,(n+1)p-1 & if(n+1)p \\in integer \\\\ [(n+1)p] & if(n+1)p \\not\\in integer \\end{cases}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = (pe^t + q)^n$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "MqmeyCON5Vjz",
"outputId": "d0a14a8e-2a0b-4809-e964-56218576dce6"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 1000000\n",
"n, p = [10, 0.5]\n",
"\n",
"binom_data = np.random.binomial(n = n, p = p, size = N)\n",
"\n",
"sns.histplot(binom_data, color='olive', stat='density', bins=50)\n",
"\n",
"plt.xlim(0,n)\n",
"plt.xticks(list(range(0,n+1)), fontsize=12, ha='center')\n",
"plt.title('Binomial Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"id": "EBZQYYcA5Jdb"
},
"outputs": [],
"source": [
"def mode_binom(n,p):\n",
" if math.modf((n+1)*p)[0] == 0.0:\n",
" return (n+1)*p, (n+1)*p-1\n",
" else:\n",
" return np.floor((n+1)*p)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "jj8DJCi2945b",
"outputId": "1027024c-1486-464f-cdad-2ed6805797eb"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the B(10,0.5) Distribution is: 5.0\n",
"The median of the B(10,0.5) Distribution is: 5.0\n",
"The variance of the B(10,0.5) Distribution is: 2.5\n",
"The standard deviation of the B(10,0.5) Distribution is: 1.5811\n",
"The mode of the B(10,0.5) Distribution is: 5.0\n",
"The skewness of the B(10,0.5) Distribution is: 0.0\n",
"The kurtosis of the B(10,0.5) Distribution is: -0.2\n"
]
}
],
"source": [
"n, p = [10, 0.5]\n",
"print(f'The mean of the B({n},{p}) Distribution is: ', np.round(binom.mean(p = p, n = n), 4))\n",
"print(f'The median of the B({n},{p}) Distribution is: ', np.round(binom.median(p = p, n = n), 4))\n",
"print(f'The variance of the B({n},{p}) Distribution is: ', np.round(binom.var(p = p, n = n), 4))\n",
"print(f'The standard deviation of the B({n},{p}) Distribution is: ', np.round(binom.std(p = p, n = n), 4))\n",
"print(f'The mode of the B({n},{p}) Distribution is: ', np.round(mode_binom(p = p, n = n), 4))\n",
"print(f'The skewness of the B({n},{p}) Distribution is: ', np.round(binom.stats(p = p, n = n, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the B({n},{p}) Distribution is: ', np.round(binom.stats(p = p, n = n, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6KM1kHTxJoHG"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "dzB3koSeKxkX",
"outputId": "0a116722-a611-4778-8467-6d63dcf98e5b"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0, n, 0.001)\n",
"x1 = np.arange(0, n)\n",
"x2 = np.arange(0, n-1) + 0.999\n",
"\n",
"plt.scatter(x, binom.cdf(x, p=p, n=n), color = 'r')\n",
"plt.scatter(x2, binom.cdf(x2, p=p, n=n), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, binom.cdf(x1, p=p, n=n), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(0,n);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "InSCdsjR9xEC"
},
"source": [
"The binomial distribution histogram depends on the $n$ and $p$."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 356
},
"id": "zk5PfeVlDJxh",
"outputId": "c29d8aad-c7d2-4f65-b27c-d205d7666eca"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABPEAAAHeCAYAAAD6n57cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYFklEQVR4nO3de1xVdb7/8TchbJBgByKXnddupKFZ2ChqaamoeansjBUjI5Wm45XQsbKZRM9JyxQ9B8qyTMtL9ptTzJQmSV7HUYxMSsxRS00MkFLaoCkort8fHnZtN6AguJfyej4e+/Fwf9dnr/XdS1wffbsuHoZhGAIAAAAAAABgWte4ewIAAAAAAAAAqkeIBwAAAAAAAJgcIR4AAAAAAABgcoR4AAAAAAAAgMkR4gEAAAAAAAAmR4gHAAAAAAAAmBwhHgAAAAAAAGByhHgAAAAAAACAyRHiAQAAAAAAACZHiAcAAK46ixcvloeHh9OradOm6tGjh1auXOlS7+HhoaSkpMs/0Rqo+E4HDx6st8+ev998fHwUFhame++9VzNnzlRhYaHLZ5KSkuTh4VGj+fzyyy9KSkrShg0bavS5yrbVqlUrDRgwoEbruZDly5dr3rx5lS67En5WAADA1amRuycAAABQXxYtWqRbb71VhmGooKBAqampGjhwoD766CMNHDjQUbd161Y1a9bMjTO9sP79+2vr1q0KDw+v921V7LfTp0+rsLBQmzdv1ssvv6zZs2fr/fffV69evRy1w4cPV9++fWu0/l9++UXTpk2TJPXo0eOiP1ebbdXG8uXLlZOTo4SEBJdlV8LPCgAAuDoR4gEAgKtWZGSkOnbs6Hjft29fBQYG6r333nMK8Tp37uyO6dVI06ZN1bRp08uyrfP328MPP6ynn35a3bp10+DBg7Vv3z6FhoZKkpo1a1bvodYvv/yixo0bX5ZtXciV8LMCAACuTlxOCwAAGgwfHx95e3vLy8vLafz8SyQrLitdv369/vSnPyk4OFhNmjTR4MGDlZeX5/TZs2fPatasWbr11ltlsVgUEhKiP/7xjzp8+LBTXY8ePRQZGamtW7eqS5cu8vX1VatWrbRo0SJJ0qpVq3TnnXeqcePGateundLT050+X9klsRkZGXrggQfUrFkz+fj46KabbtLIkSP1008/1cHectaiRQvNmTNHJSUleuONNxzjlV3ium7dOvXo0UNNmjSRr6+vWrRooYcffli//PKLDh486Agjp02b5rh0Nz4+3ml9X375pf7jP/5DgYGBuvHGG6vcVoW0tDS1b99ePj4+uuGGG/Q///M/TsuruqR4w4YN8vDwcFza26NHD61atUrff/+906XFFSq7nDYnJ0cPPPCAAgMD5ePjow4dOuidd96pdDvvvfeenn/+edlsNgUEBKhXr17as2dP1TseAADg/3AmHgAAuGqVl5frzJkzMgxDR44c0SuvvKITJ04oNjb2oj4/fPhw9e/fX8uXL1dubq7+/Oc/a+jQoVq3bp2j5k9/+pMWLFigsWPHasCAATp48KD++te/asOGDfryyy8VHBzsqC0oKNDjjz+uyZMnq1mzZkpJSdETTzyh3Nxc/e///q+mTJkiq9Wq6dOn68EHH9T+/ftls9mqnN93332n6OhoDR8+XFarVQcPHlRycrK6deumnTt3uoSVl+r++++Xp6enNm3aVGXNwYMH1b9/f9199916++23dd111+mHH35Qenq6ysrKFB4ervT0dPXt21dPPvmkhg8fLkkuZxkOHjxYjz76qEaNGqUTJ05UO6/s7GwlJCQoKSlJYWFhWrZsmSZMmKCysjJNmjSpRt/xtdde01NPPaXvvvtOaWlpF6zfs2ePunTpopCQEP3P//yPmjRpoqVLlyo+Pl5HjhzR5MmTneqnTJmirl276q233lJxcbGeeeYZDRw4ULt375anp2eN5goAABoWQjwAAHDVOv/SR4vFotTUVPXp0+eiPt+3b1+nM7qOHTumyZMnq6CgQGFhYfr3v/+tBQsWaPTo0UpJSXHU3XHHHerUqZPmzp2rF1980TF+9OhRffrpp4qKipIkdezYUSEhIXrppZf07bffOgI7m82mDh066IMPPtC4ceOqnN+oUaMcvzYMQ126dFGPHj3UsmVLrV69WoMGDbqo73mx/Pz8FBwc7HI24m9t375dp06d0iuvvKLbb7/dMf7b4LTi+zdr1qzKy1OHDRvmuG/eheTl5WnHjh2O7fXr10+FhYX6z//8T40ePVqNGze+qPVIUtu2bXXdddfJYrFc1KWzSUlJKisr0/r169W8eXNJ58LOn3/+WdOmTdPIkSNltVqd1r906VLHe09PTw0ZMkRZWVlcqgsAAKrF5bQAAOCq9e677yorK0tZWVlavXq1hg0bpjFjxig1NfWiPn9+CNa+fXtJ0vfffy9JWr9+vSQ5LgWt8Lvf/U5t2rTR2rVrncbDw8MdAZYkBQUFKSQkRB06dHA6465NmzZO26lKYWGhRo0apebNm6tRo0by8vJSy5YtJUm7d+++qO9YU4ZhVLu8Q4cO8vb21lNPPaV33nlH+/fvr9V2Hn744Yuuve2225wCQ+lcaFhcXKwvv/yyVtu/WOvWrVPPnj0dAV6F+Ph4/fLLL9q6davT+IV+pgAAAKrCmXgAAOCq1aZNG5cHW3z//feaPHmyhg4dquuuu67azzdp0sTpvcVikSSdPHlS0rkz6yRV+sRYm83mEswEBQW51Hl7e7uMe3t7S5JOnTpV5dzOnj2rmJgY5eXl6a9//avatWsnPz8/nT17Vp07d3bMsS6dOHFCR48eVbt27aqsufHGG/XZZ59p1qxZGjNmjE6cOKEbbrhB48eP14QJEy56WzV5Cm9YWFiVYxW/R/Xl6NGjVf7+V7b9C/1MAQAAVIUz8QAAQIPSvn17nTx5Unv37r3kdVUEMvn5+S7L8vLynO6HV9dycnL01Vdf6ZVXXtG4cePUo0cP3XXXXS4hUV1atWqVysvL1aNHj2rr7r77bn388cey2+3KzMxUdHS0EhIStGLFioveVlUPsKhMQUFBlWMV+8PHx0eSVFpa6lR3qQ8BadKkSZW//5Lq9WcAAAA0LIR4AACgQcnOzpbk+iCF2rjvvvskyekeZ5KUlZWl3bt3q2fPnpe8japUhFwVZ3JV+O2TY+vSoUOHNGnSJFmtVo0cOfKiPuPp6alOnTrp1VdflSTHpa11ffbZrl279NVXXzmNLV++XP7+/rrzzjslSa1atZIkff311051H330kcv6LBbLRc+tZ8+eWrdunct9At999101btyY+9wBAIA6w+W0AADgqpWTk6MzZ85IOndZ44cffqiMjAw99NBDat269SWvPyIiQk899ZRSUlJ0zTXXqF+/fo6n0zZv3lxPP/30JW+jKrfeeqtuvPFGPfvsszIMQ0FBQfr444+VkZFxyeuu2G9nzpxRYWGh/vnPf2rRokXy9PRUWlpatQHo66+/rnXr1ql///5q0aKFTp06pbfffluS1KtXL0mSv7+/WrZsqX/84x/q2bOngoKCFBwc7Ajaaspms2nQoEFKSkpSeHi4li5dqoyMDL388suOh1rcddddioiI0KRJk3TmzBkFBgYqLS1Nmzdvdllfu3bt9OGHH2r+/PmKiorSNddc43RZ9m9NnTpVK1eu1L333qsXXnhBQUFBWrZsmVatWqVZs2Y5PdQCAADgUhDiAQCAq9bjjz/u+LXValXr1q2VnJys0aNH19k25s+frxtvvFELFy7Uq6++KqvVqr59+2rmzJn1emmrl5eXPv74Y02YMEEjR45Uo0aN1KtXL3322Wdq0aLFJa27Yr95e3vruuuuU5s2bfTMM89o+PDhFzyDsUOHDlqzZo2mTp2qgoICXXvttYqMjNRHH32kmJgYR93ChQv15z//WYMGDVJpaamGDRumxYsX12q+HTp00OOPP66pU6dq3759stlsSk5OdgpRPT099fHHH2vs2LEaNWqULBaLHn30UaWmpqp///5O65swYYJ27dqlKVOmyG63yzCMKh/oERERoS1btmjKlCkaM2aMTp48qTZt2mjRokU
"text/plain": [
"<Figure size 1500x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n1, n2, n3 = [9, 10, 10]\n",
"p1, p2, p3 = [0.2, 0.8,0.5]\n",
"\n",
"fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)\n",
"fig.suptitle('Binomial Distribution')\n",
"\n",
"sns.histplot(ax=axes[0], x=np.random.binomial(n = n1, p = p1, size = N), bins=50, color = '#A1C935')\n",
"axes[0].set_title(f'B({n1},{p1})')\n",
"\n",
"sns.histplot(ax=axes[1], x=np.random.binomial(n = n2, p = p2, size = N), bins=50, color = '#1AEACD')\n",
"axes[1].set_title(f'B({n2},{p2})')\n",
"\n",
"sns.histplot(ax=axes[2], x=np.random.binomial(n = n3, p = p3, size = N), bins=50, color = '#F75D59')\n",
"axes[2].set_title(f'B({n3},{p3})');"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pszDBGvEUJD5"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"binom.cdf($X,P,n$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"binom.sf($X,P,n$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "uViuxJsKUJD6",
"outputId": "aed3bd6c-5d97-4dd1-de83-be2cafa4d784"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *2* in the B(10,0.2) Distribution is: 0.6777995263999997\n",
"The Right probability of *2* in the B(10,0.2) Distribution is: 0.32220047360000026\n"
]
}
],
"source": [
"X = 2\n",
"n, p = [10, 0.2]\n",
"print(f'The left probability of *{X}* in the B({n},{p}) Distribution is: ', binom.cdf(X, p=p, n=n))\n",
"print(f'The Right probability of *{X}* in the B({n},{p}) Distribution is: ', binom.sf(X, p=p, n=n))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-rESDu9IkKYS"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "h66sd6eZkLcF",
"outputId": "c3de1580-a02b-47fe-9e39-a7a8d90f2f8b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 4]* in the B(10,0.2) Distribution is: 0.5913968639999998\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"n, p = [10, 0.2]\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the B({n},{p}) Distribution is: ', np.sum([binom.pmf(xs, p=p, n=n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "Ryd4pcyI6BYE",
"outputId": "16010584-ecaf-43d6-98e8-849227385d36"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,n+1))\n",
"plt.bar(x1, binom.pmf(x1, p=p, n=n), color ='gray')\n",
"plt.bar(x2, binom.pmf(x2, p=p, n=n), color ='#DFFF00')\n",
"plt.bar(x3, binom.pmf(x3, p=p, n=n), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'B({n}, {p})')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([binom.pmf(xs, p=p, n=n) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MutW8yZGldq_"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "M0DxV4XjlnnT",
"outputId": "94091ac2-8e13-49d8-8883-04fb77c46c57"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 4)* in the B(10,0.2) Distribution is: 0.20132659199999992\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"n, p = [10, 0.2]\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the B({n},{p}) Distribution is: ', np.sum([binom.pmf(xs, p=p, n=n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "FQ-xBNM-_FdA",
"outputId": "69e00b8c-4bd3-4579-e1f4-77782f2d92b8"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,n+1))\n",
"plt.bar(x1, binom.pmf(x1, p=p, n=n), color ='gray')\n",
"plt.bar(x2, binom.pmf(x2, p=p, n=n), color ='#DFFF00')\n",
"plt.bar(x3, binom.pmf(x3, p=p, n=n), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'B({n}, {p})')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([binom.pmf(xs, p=p, n=n) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xAm4u-pExhO2"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ozUIQG8bxldK",
"outputId": "055f57c2-fe05-4ebb-c3ee-53b5c89f6b94"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 4)* in the B(10,0.2) Distribution is: 0.50331648\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"n, p = [10, 0.2]\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the B({n},{p}) Distribution is: ', np.sum([binom.pmf(xs, p=p, n=n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "cDfaDGznDL5I",
"outputId": "8708e1ec-2b75-4926-ddb0-fc17f76f3c94"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,n+1))\n",
"plt.bar(x1, binom.pmf(x1, p=p, n=n), color ='gray')\n",
"plt.bar(x2, binom.pmf(x2, p=p, n=n), color ='#DFFF00')\n",
"plt.bar(x3, binom.pmf(x3, p=p, n=n), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'B({n}, {p})')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([binom.pmf(xs, p=p, n=n) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TtKV1U-tyEBr"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "B6iatDGhyQLH",
"outputId": "5e33d902-cdeb-47fc-8a33-ae602462fd4b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 4]* in the B(10,0.2) Distribution is: 0.2894069759999998\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"n, p = [10, 0.2]\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the B({n},{p}) Distribution is: ', np.sum([binom.pmf(xs, p=p, n=n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "YlvUAe4MEXwK",
"outputId": "495aafa0-836a-40d9-a410-7319e0eb566a"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGyCAYAAADH859HAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABC+0lEQVR4nO3deVxV1f7/8feRUUFwwCAT0ayukpqKE/pzuiqm6c0sQy2yq6amlWgOkZVgg9mgWIlDWeSEpOatDDNyyIm6V4LKsnvNCUOIxBRBQYH9+8MH5+uRIQ6aZ2Ov5+OxHw/O2muv89lY8GbttfexGIZhCAAAwMRqOLoAAACAP0JgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAaDY2FhZLBabrUGDBurZs6c2btxY5jEHDx6Um5ubkpKSrG0//PCDJkyYoODgYHl4eMhisWj79u3lvu+aNWvUpk0bubu7q2HDhgoPD1dubu4Vncs333yjPn36yNPTU3Xq1NGQIUN06NChPzwuJydHL774onr27Ck/Pz95enqqVatWmjt3rvLz8236btmyRZ6enkpPT7+iWgFUHoEFgNV7772npKQk7dmzR0uXLpWTk5MGDRqkTz75pFTfqVOnqm/fvgoODra27d27V//6179Ur1499e7du8L3WrVqlYYPH64OHTpo06ZNmjVrlmJjYzVkyJAq1//TTz+pZ8+eOn/+vD744AO9++67+t///qdu3brpt99+q/DYtLQ0RUdHq127dlq6dKk+/vhj3XfffYqMjNTAgQN16aeY9O7dWx07dtTTTz9d5VoB2MkA8Jf33nvvGZKM//znPzbtZ8+eNdzc3Izhw4fbtP/444+GJOOzzz6zaS8qKrJ+vXbtWkOSsW3btlLvV1hYaNx4441GSEiITfuqVasMSUZCQkKVzmPo0KGGj4+Pcfr0aWvbkSNHDBcXF2P69OkVHpubm2vk5uaWan/11VcNScbOnTtt2tetW2c4OTkZaWlpVaoVgH2YYQFQLnd3d7m6usrFxcWmfdGiRfLz81Pfvn1t2mvUqNyPlK+++koZGRn65z//adM+dOhQeXp6asOGDXbXWlhYqI0bN+ree++Vl5eXtT0gIEC9evX6wzE9PDzk4eFRqr1jx46SpGPHjtm0Dxo0SJ6ennr77bftrhWA/QgsAKyKiopUWFioCxcu6JdfflF4eLjy8vI0YsQIm36ffvqpunfvXumAcrl9+/ZJklq3bm3T7uLioubNm1v32+PgwYM6d+5cqTFL3ufnn38utRalMrZu3SpJuv32223aXV1d1aVLF3366ad2jwnAfgQWAFadO3eWi4uLXF1d5e/vryVLluitt95Sv379rH2ysrJ06NAhtWvXrsrvk52dLUmqV69eqX316tWz7r+aYxqGod9//92uMb/77ju98soruueee8oMQu3atVNqaqry8vLsrheAfZwdXQAA81i+fLlatGghSTpx4oQ2bNigiRMnqqioSI899pgk6fjx45KkG2644Yrfz2Kx2NV+JWPaO+6RI0c0cOBA+fv765133imzzw033KDi4mJlZmaqWbNmdtcKoPIILACsWrRoofbt21tf33nnnTp69KimT5+uBx98UHXq1NG5c+ckXVzfUlX169eXdHFWxNfX12bfyZMny5wlsWfMy508eVIWi0V16tSp1FhHjx5Vr1695OzsrC1btpRbT8n3oOR7AuDPwyUhABVq3bq1zp07p//973+SJB8fH0kXQ0BVtWrVSpL0/fff27QXFhbqp59+UsuWLe0es1mzZqpZs2apMUve55ZbbqlUyDp69Kh69uwpwzC0bds2NWrUqNy+Jd+Dku8JgD8PgQVAhVJTUyVJDRo0kHTxrpuaNWvq4MGDVR6zU6dOuvHGGxUbG2vTvm7dOuXm5lbpWSzOzs4aNGiQPvzwQ505c8banpaWpm3btlVqzLS0NPXs2VNFRUXaunWrAgICKux/6NAh1a9fv9QsEYCrj0tCAKz27dunwsJCSRcvrXz44YdKTEzUPffco6ZNm0q6eHdMcHCwvvrqq1LHnz17VgkJCZJk3f/ll1/qxIkT8vDwUP/+/SVJTk5OeuWVVxQWFqZx48Zp+PDhOnDggKZPn66+ffvqzjvvtBnXYrGoR48eFT41V5KioqLUoUMHDRw4UE899ZTy8/P13HPPycfHR08++aRNX2dnZ/Xo0UNbtmyRdHExca9evZSRkaFly5YpKytLWVlZ1v6NGjUqNdvy1VdfqUePHle05gZAJTn6QTAAHK/kwXGXbt7e3kabNm2MefPmGfn5+Tb9ly1bZjg5ORnHjx+3aT98+HCpcUq2gICAUu+7evVqo3Xr1oarq6vh5+dnPPHEE8aZM2ds+pw5c8aQZAwbNqxS57J3716jd+/eRq1atQwvLy9j8ODBxs8//1yqnySjR48e1tfbtm0rt3ZJxqxZs2yO//nnnw1Jxvr16ytVF4ArYzGMS543DQCVkJ+fr8aNG+vJJ5/UjBkz/tT3SkhI0MCBA/Xtt99a176YwbPPPqvly5fr4MGDcnZmshr4s7GGBYDd3N3dFRUVpXnz5v3pzyDZtm2bhg0bZqqwcurUKS1cuFAvvfQSYQW4RphhAVAlRUVFeuWVVzRw4EBThYlrISUlRV988YWmTp3K+hXgGiGwAAAA0+OSEAAAMD0CCwAAMD0CCwAAML3rZnl7cXGxjh8/rtq1a7MIDgCAasIwDJ05c0YNGzZUjRrlz6NcN4Hl+PHj8vf3d3QZAACgCo4dO1bhZ3ddN4Gldu3aki6esJeXl4OrAQAAlZGTkyN/f3/r7/HyXDeBpeQykJeXF4EFAIBq5o+Wc7DoFgAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmB6BBQAAmF6VAktMTIyaNm0qd3d3BQUFaefOneX23bVrl7p27ar69eurZs2aat68uebPn1+q3/r16xUYGCg3NzcFBgZqw4YNVSkNAABch5ztPSA+Pl7h4eGKiYlR165dtWTJEvXv318//vijGjduXKq/h4eHHnvsMbVu3VoeHh7atWuXxo0bJw8PD40dO1aSlJSUpNDQUD3//PO65557tGHDBt1///3atWuXOnXqdOVnCdOJiopydAmaNWuWo0sAAFSSxTAMw54DOnXqpHbt2mnRokXWthYtWmjw4MGaM2dOpcYYMmSIPDw8tGLFCklSaGiocnJytGnTJmufO++8U3Xr1lVcXFylxszJyZG3t7dOnz4tLy8vO84IjkBgAQBIlf/9bdclofPnzys5OVkhISE27SEhIdqzZ0+lxkhJSdGePXvUo0cPa1tSUlKpMfv161fhmAUFBcrJybHZAADA9cmuwHLixAkVFRXJ19fXpt3X11eZmZkVHtuoUSO5ubmpffv2mjhxosaMGWPdl5mZafeYc+bMkbe3t3Xz9/e351QAAEA1UqVFtxaLxea1YRil2i63c+dO7d27V4sXL1Z0dHSpSz32jhkREaHTp09bt2PHjtl5FgAAoLqwa9Gtj4+PnJycSs18ZGVllZohuVzTpk0lSa1atdKvv/6qyMhIDR8+XJLk5+dn95hubm5yc3Ozp3wAAFBN2TXD4urqqqCgICUmJtq0JyYmqkuXLpUexzAMFRQUWF8HBweXGvPzzz+3a0wAAHD9svu25ilTpigsLEzt27dXcHCwli5dqrS0NI0fP17SxUs16enpWr58uSRp4cKFaty4sZo3by7p4nNZXnvtNT3++OPWMSdNmqTu3btr7ty5uvvuu/XRRx/piy++0K5du67GOQIAgGrO7sASGhqq7OxszZ49WxkZGWrZsqUSEhIUEBAgScrIyFBaWpq1f3FxsSIiInT48GE5OzurWbNmevnllzVu3Dhrny5dumjNmjV65pln9Oyzz6pZs2aKj4/nGSwAAEBSFZ7DYlY8h6V64TksAADpT3oOCwAAgCMQWAAAgOkRWAAAgOkRWAAAgOkRWAAAgOkRWAA
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,n+1))\n",
"plt.bar(x1, binom.pmf(x1, p=p, n=n), color ='gray')\n",
"plt.bar(x2, binom.pmf(x2, p=p, n=n), color ='#DFFF00')\n",
"plt.bar(x3, binom.pmf(x3, p=p, n=n), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'B({n}, {p})')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([binom.pmf(xs, p=p, n=n) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dHQOxQ-gU5KC"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"binom.pmf($X,P,n$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "d_KMq-YPU5KD",
"outputId": "6cd4d50a-6beb-41c3-f0cf-eafb90385721"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=2* in the B(10,0.2) Distribution is: 0.30198988800000004\n"
]
}
],
"source": [
"X = 2\n",
"n, p = [10, 0.2]\n",
"print(f'The probability of *X={X}* in the B({n},{p}) Distribution is: ', binom.pmf(X, p=p, n=n))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "gS2E38_2Esad",
"outputId": "7661a644-d418-412b-da56-47312017b3a5"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,n+1))\n",
"plt.bar(x1, binom.pmf(x1, p=p, n=n), color ='gray')\n",
"plt.bar(x2, binom.pmf(x2, p=p, n=n), color ='#DFFF00')\n",
"plt.bar(x3, binom.pmf(x3, p=p, n=n), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'B({n}, {p})')\n",
"prob = np.sum([binom.pmf(x2, p=p, n=n)])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HjmA0A0fFFme"
},
"source": [
"If $X_1, X_2, ..., X_n \\sim Ber(P) \\quad$ then $\\quad Y = \\sum_{i=1}^n X_i \\sim B(n,P)$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "eAUshqfZd-_d"
},
"source": [
"<a name='Negative_Binomial_Distribution'></a>\n",
"\n",
"## **2.3. Negative Binomial (Pascal) Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EVkoQpaXe9Ri"
},
"source": [
"Suppose now that $n$ independent trials, each of which results in a “success” with probability $p$ and in a “failure” with probability $1 p$, are to be performed. If $X$ represents the number of failures before rth success, then $X$ is said to be a negative binomial random variable with parameters $(r, p)$.\n",
"\n",
"$P(X=i) = \\binom{r+i-1}{r-1} p^r (1-p)^{i} \\quad \\quad i = 0,1,2,...$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = \\frac{r(1-p)}{p}$\n",
"\n",
"$Var(X) = \\frac{r(1-p)}{p^2}$\n",
"\n",
"$Skewness(X) = \\frac{2-p}{\\sqrt{r(1-p)}}$\n",
"\n",
"$Kurtosis(X) = \\frac{p^2-6p+6}{r(1-p)}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = p^r [1-(1-p)e^t]^{-r}$"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "HurSX6iaeUid",
"outputId": "07b47dd4-2a49-4e64-fca9-4a6bb2720884"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAGyCAYAAAAbCutwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+i0lEQVR4nO3deVxV1f7/8TeCDKLgAIIkIBmlpjngAHpxSMFwyLEsC4ccMq2bessky6mbZjmgpZalkpZGqc2YkhOaaGpggw1WGv7okFOKIyrs3x9ez7cjbGM8x/D1fDz249FZZ+21Plvt8Gbt4TgZhmEIAAAA+VRwdAEAAADXK4ISAACACYISAACACYISAACACYISAACACYISAACACYISAACACYISAACACYISAACACYISUA4kJCTIycnJurm4uKh27doaPHiwMjMzHV3e3xo0aJDq1KlTqH5/PU5PT0/VqVNHd999t5YuXaqcnJx8+7Rv317t27cvUj379u3T5MmTdfDgwSLtd/VcBw8elJOTk2bOnFmkcf7OtGnT9MEHH+Rr37x5s5ycnLR58+ZSnQ+4kbk4ugAApWfp0qWqV6+ezp07p5SUFE2fPl1btmzRN998I09PT0eXVyo8PDy0ceNGSdK5c+d06NAhrV27VsOGDdOsWbP02WefqXbt2tb+CxYsKPIc+/bt05QpU9S+fftCBbiSzFUc06ZNU9++fdWzZ0+b9mbNmik1NVUNGjSwSx3AjYCgBJQjDRs2VPPmzSVJHTp0UG5urp577jl98MEHeuCBBxxcXemoUKGCwsPDbdoGDBigwYMHq1u3burbt6927Nhhfc8eoeHs2bOqVKmSwwOKl5dXvj8bACXDqTegHLvyQ/O3336TJE2ZMkWtWrVS9erV5eXlpWbNmmnx4sW6+ruxN27cqPbt26tGjRry8PBQUFCQ+vTpo7Nnz1r75OTkaOrUqapfv77c3d1Vo0YNdejQQdu3b7f2mT9/vtq2bauaNWvK09NTjRo10osvvqiLFy+W+rFGR0dr2LBh2rlzp1JSUqztBZ16W7hwoRo3bqzKlSurSpUqqlevnp5++mlJl09j3nPPPZIuh80rp/kSEhKs4zVs2FApKSlq3bq1KlWqpIceesh0LknKy8vT888/r6CgILm7u6t58+basGGDTR+z04+TJ0+Wk5OT9bWTk5POnDmjN99801rblTnNTr199NFHioiIUKVKlVSlShVFRUUpNTW1wHm+++473X///fL29pafn58eeughnTx5ssA/c+BGwIoSUI79/PPPkiRfX19Jl6+ZefjhhxUUFCRJ2rFjhx577DFlZmZq4sSJ1j5du3ZVZGSklixZoqpVqyozM1OfffaZLly4oEqVKunSpUuKiYnR1q1bNXr0aN155526dOmSduzYoYyMDLVu3VqS9Msvv6h///4KCQmRq6ur9u7dq+eff14//PCDlixZUurHe/fdd2vBggVKSUlR27ZtC+zzzjvvaOTIkXrsscc0c+ZMVahQQT///LP27dsnSerataumTZump59+WvPnz1ezZs0kSXXr1rWOYbFY9OCDD2rcuHGaNm2aKlS49u+cr7zyioKDgxUfH6+8vDy9+OKLiomJ0ZYtWxQREVGkY0xNTdWdd96pDh066Nlnn5V0eSXJzIoVK/TAAw8oOjpaK1euVE5Ojl588UW1b99eGzZs0L/+9S+b/n369FG/fv00ZMgQffPNN4qLi5OkMvn7Av4RDAD/eEuXLjUkGTt27DAuXrxonDp1yvjkk08MX19fo0qVKkZWVla+fXJzc42LFy8aU6dONWrUqGHk5eUZhmEYq1atMiQZ6enppvMtW7bMkGS8/vrrha7xynzLli0znJ2djePHj1vfGzhwoBEcHPy3YwwcONDw9PQ0ff/77783JBmPPPKIta1du3ZGu3btrK8fffRRo2rVqtec57333jMkGZs2bcr3Xrt27QxJxoYNGwp8769zHThwwJBkBAQEGOfOnbO2Z2dnG9WrVzc6depkc2wF/RlMmjTJuPqj2tPT0xg4cGC+vps2bbKpOzc31wgICDAaNWpk5ObmWvudOnXKqFmzptG6det887z44os2Y44cOdJwd3e3/vsAbjScegPKkfDwcFWsWFFVqlRRt27d5O/vr7Vr18rPz0/S5VNqnTp1kre3t5ydnVWxYkVNnDhRx44d0+HDhyVJTZo0kaurq4YPH64333xTv/76a7551q5dK3d3d+spJzNpaWm6++67VaNGDet8AwYMUG5urn766adSP37jqlOIBWnZsqVOnDih+++/Xx9++KGOHj1a5HmqVaumO++8s9D9e/fuLXd3d+vrKlWqqHv37kpJSVFubm6R5y+sH3/8Ub///rtiY2NtVr0qV66sPn36aMeOHTanU6XLq3J/dccdd+j8+fPWfx/AjYagBJQjy5Yt065du5SWlqbff/9dX3/9tdq0aSNJ+vLLLxUdHS1Jev311/XFF19o165dmjBhgqTLd5BJl08xff7556pZs6ZGjRqlunXrqm7dupo7d651niNHjiggIOCap5wyMjIUGRmpzMxMzZ07V1u3btWuXbs0f/58m/lK05VrsQICAkz7xMbGasmSJfrtt9/Up08f1axZU61atVJycnKh56lVq1aR6vL39y+w7cKFCzp9+nSRxiqKY8eOSSq43oCAAOXl5enPP/+0aa9Ro4bNazc3N0ll8/cF/BNwjRJQjtSvX99619vV3nnnHVWsWFGffPKJzepGQc/jiYyMVGRkpHJzc7V79269/PLLGj16tPz8/HTffffJ19dX27ZtU15enmlY+uCDD3TmzBmtWbNGwcHB1vb09PQSHeO1fPTRR5L0t89NGjx4sAYPHqwzZ84oJSVFkyZNUrdu3fTTTz/Z1GrmrxdXF0ZWVlaBba6urqpcubIkyd3dvcDnQBVnxeuKK6HHYrHke+/3339XhQoVVK1atWKPD9wIWFECbhBXHkTp7OxsbTt37pyWL19uuo+zs7NatWplXQX66quvJEkxMTE6f/689U4ws/mk/1uRkC6fGnv99ddLchimkpOT9cYbb6h169b5LlA24+npqZiYGE2YMEEXLlzQd999Z1Nzaa2irFmzRufPn7e+PnXqlD7++GNFRkZa/z7q1Kmjw4cP648//rD2u3DhgtatW5dvPDc3t0LVdtttt+mmm27SihUrbE5LnjlzRqtXr7beCQfAHCtKwA2ia9eumj17tvr376/hw4fr2LFjmjlzpk2QkaRXX31VGzduVNeuXRUUFKTz589b73jq1KmTJOn+++/X0qVLNWLECP3444/q0KGD8vLytHPnTtWvX1/33XefoqKi5Orqqvvvv1/jxo3T+fPntXDhwnyneooqLy/P+pyknJwcZWRkaO3atXr33XdVv359vfvuu9fcf9iwYfLw8FCbNm1Uq1YtZWVlafr06fL29laLFi0kXX4elSQtWrRIVapUkbu7u0JCQvKdliosZ2dnRUVFaezYscrLy9OMGTOUnZ2tKVOmWPv069dPEydO1H333acnn3xS58+f17x58wq8hqlRo0bavHmzPv74Y9WqVUtVqlTRbbfdlq9fhQoV9OKLL+qBBx5Qt27d9PDDDysnJ0cvvfSSTpw4oRdeeKFYxwPcUBx8MTmAUnDlrrddu3Zds9+SJUuM2267zXBzczNuvvlmY/r06cbixYsNScaBAwcMwzCM1NRUo1evXkZwcLDh5uZm1KhRw2jXrp3x0Ucf2Yx17tw5Y+LEiUZoaKjh6upq1KhRw7jzzjuN7du3W/t8/PHHRuPGjQ13d3fjpptuMp588klj7dq1+e4oK8pdb5Ksm4eHhxEUFGR0797dWLJkiZGTk5Nvn6vvRHvzzTeNDh06GH5+foarq6sREBBg3HvvvcbXX39ts198fLwREhJiODs7G5KMpUuXWse7/fbbC6zP7K63GTNmGFOmTDFq165tuLq6Gk2bNjXWrVuXb/+kpCSjSZMmhoeHh3HzzTcbr7zySoF3vaWnpxtt2rQxKlWqZEiyznn1XW9XfPDBB0arVq0Md3d3w9PT0+jYsaPxxRd
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 10000000\n",
"n = 15\n",
"r, p = [4, 0.5]\n",
"\n",
"pas_data = nbinom.rvs(n = r, p = p, size = N)\n",
"\n",
"sns.histplot(pas_data, color='brown', stat='density', bins=68)\n",
"\n",
"plt.xlim(0,n)\n",
"plt.xticks(list(range(0,n+1)), fontsize=12, ha='center')\n",
"plt.title('Pascal Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "EM9m5Zim0oDM",
"outputId": "ae3df4a6-bdc4-4fd0-842d-43eba4727385"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the NB(4,0.5) Distribution is: 4.0\n",
"The median of the NB(4,0.5) Distribution is: 3.0\n",
"The variance of the NB(4,0.5) Distribution is: 8.0\n",
"The standard deviation of the NB(4,0.5) Distribution is: 2.8284\n",
"The skewness of the NB(4,0.5) Distribution is: 1.0607\n",
"The kurtosis of the NB(4,0.5) Distribution is: 1.625\n"
]
}
],
"source": [
"r, p = [4, 0.5]\n",
"print(f'The mean of the NB({r},{p}) Distribution is: ', np.round(nbinom.mean(p = p, n = r), 4))\n",
"print(f'The median of the NB({r},{p}) Distribution is: ', np.round(nbinom.median(p = p, n = r), 4))\n",
"print(f'The variance of the NB({r},{p}) Distribution is: ', np.round(nbinom.var(p = p, n = r), 4))\n",
"print(f'The standard deviation of the NB({r},{p}) Distribution is: ', np.round(nbinom.std(p = p, n = r), 4))\n",
"print(f'The skewness of the NB({r},{p}) Distribution is: ', np.round(nbinom.stats(p = p, n = r, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the NB({r},{p}) Distribution is: ', np.round(nbinom.stats(p = p, n = r, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CBx1cK6y14kn"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "X-jgGBzp14kn",
"outputId": "0c22fcee-8f8e-48af-c1e9-83c6bf2290a5"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0, n, 0.001)\n",
"x1 = np.arange(0, n)\n",
"x2 = np.arange(0, n-1) + 0.999\n",
"\n",
"plt.scatter(x, nbinom.cdf(x, p=p, n=r), color = 'r')\n",
"plt.scatter(x2, nbinom.cdf(x2, p=p, n=r), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, nbinom.cdf(x1, p=p, n=r), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(0,n);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RnHxI_n92VsO"
},
"source": [
"The binomial distribution histogram depends on the $n$ and $p$."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 356
},
"id": "ZZgaR6Ob2VsQ",
"outputId": "1c2cb41c-6030-4e79-c2a8-ce317e416468"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABNEAAAHeCAYAAAC1wp0MAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABR7ElEQVR4nO3deVhWdf7/8dctIKgB5gKCimK5a2piifuSGG41OZVLajY6WqYZU5Zamk0ulTZmueaCjpVOg5qVqZQiZdq4YJlrmqk/wCG1AE328/vDr/d0ewMH8Ib7Bp6P6zrX1f05n3PO+5xj98f75VkshmEYAgAAAAAAAJCnCs4uAAAAAAAAAHB1hGgAAAAAAACACUI0AAAAAAAAwAQhGgAAAAAAAGCCEA0AAAAAAAAwQYgGAAAAAAAAmCBEAwAAAAAAAEwQogEAAAAAAAAmCNEAAAAAAAAAE4RoAADAqSIjI2WxWKyTu7u76tSpo5EjRyo+Pt7Z5Zl6/PHHVb9+/QL1++N+VqlSRfXr19eAAQO0atUqpaen2y3TrVs3devWrVD1HD16VK+88op+/vnnQi1387Z+/vlnWSwWzZ07t1DrMTNr1ixt2rTJrj0mJkYWi0UxMTEO3R4AAICjuDu7AAAAAElatWqVmjRpomvXrik2NlazZ8/Wrl27dPjwYVWpUsXZ5TlEpUqVtGPHDknStWvXdP78eX3++ecaPXq05s2bp61bt6pOnTrW/osWLSr0No4ePaoZM2aoW7duBQr3bmVbRTFr1iz9+c9/1oMPPmjTfvfdd2vPnj1q1qxZidQBAABQWIRoAADAJbRo0UIhISGSpO7duys7O1t///vftWnTJg0dOtTJ1TlGhQoV1L59e5u24cOHa+TIkerXr5/+/Oc/a+/evdZ5JREo/f7776pcubLTwysfHx+7YwMAAOBKuJ0TAAC4pBuBytmzZyVJM2bM0L333qtq1arJx8dHd999t1asWCHDMGyW27Fjh7p166bq1aurUqVKCgoK0sCBA/X7779b+6Snp+vVV19V06ZN5eXlperVq6t79+765ptvrH0WLlyoLl26yM/PT1WqVFHLli31xhtvKDMz0+H7GhYWptGjR+vbb79VbGystT232zkXL16sVq1a6bbbbpO3t7eaNGmiKVOmSLp+a+zDDz8s6XoQeePW0cjISOv6WrRoodjYWHXo0EGVK1fWE088kee2JCknJ0czZ85UUFCQvLy8FBISoi+//NKmT163tL7yyiuyWCzWzxaLRVevXtXq1auttd3YZl63c27evFmhoaGqXLmyvL291atXL+3ZsyfX7Rw5ckSDBw+Wr6+v/P399cQTTyg5OTnXYw4AAFBYXIkGAABc0qlTpyRJNWvWlHT9GV1jxoxRUFCQJGnv3r0aP3684uPjNW3aNGufvn37qnPnzlq5cqWqVq2q+Ph4bd26VRkZGapcubKysrIUHh6ur776ShMnTlSPHj2UlZWlvXv36ty5c+rQoYMk6fTp0xoyZIiCg4NVsWJFfffdd5o5c6aOHz+ulStXOnx/BwwYoEWLFik2NlZdunTJtc+6dev01FNPafz48Zo7d64qVKigU6dO6ejRo5Kkvn37atasWZoyZYoWLlyou+++W5J0xx13WNeRmJioxx57TJMmTdKsWbNUoUL+/6b67rvvql69epo/f75ycnL0xhtvKDw8XLt27VJoaGih9nHPnj3q0aOHunfvrpdfflnS9SvQ8vLBBx9o6NChCgsL04cffqj09HS98cYb6tatm7788kt16tTJpv/AgQP16KOP6i9/+YsOHz6syZMnS1KxnC8AAFD+EKIBAACXkJ2draysLKWlpWnXrl167bXX5O3trQEDBki6/sy0G3JyctStWzcZhqG3335bL7/8siwWiw4cOKC0tDS9+eabatWqlbX/kCFDrP/94YcfaufOnXrvvfc0atQoa3v//v1t6nnrrbdstte5c2dVr15dI0eO1Lx583T77bc7dP/r1asnSUpISMizz+7du1W1alUtWLDA2tazZ0/rf9esWVMNGzaUdP1W0Nxuj7x8+bI++ugj9ejRo0B1ZWdnKzo6Wl5eXpKk3r17q379+po2bZqio6MLtI4b2rdvrwoVKqhmzZqmt27m5OTo+eefV8uWLfX5559bw74+ffrojjvu0AsvvKDdu3fbLPOXv/xFzz//vCTpvvvu06lTp7Ry5UqtWLHC5oo4AACAouB2TgAA4BLat28vDw8PeXt7q1+/fqpVq5Y+//xz+fv7S7p+m+Z9990nX19fubm5ycPDQ9OmTdOlS5eUlJQkSWrdurUqVqyov/71r1q9erV++uknu+18/vnn8vLyst7GmJe4uDgNGDBA1atXt25v+PDhys7O1smTJx2+/zfflpqbe+65R7/99psGDx6sjz/+WBcvXiz0dm6//fYCB2iS9NBDD1kDNEny9vZW//79FRsbq+zs7EJvv6BOnDihhIQEDRs2zOZqudtuu00DBw7U3r17bW7RlWQNXG+46667lJaWZv3zAQAAcCsI0QAAgEtYs2aN9u3bp7i4OCUkJOj7779Xx44dJUn/+c9/FBYWJkl67733tHv3bu3bt09Tp06VdP1Nl9L12xa/+OIL+fn5ady4cbrjjjt0xx136O2337Zu55dfflFgYGC+tzGeO3dOnTt3Vnx8vN5++2199dVX2rdvnxYuXGizPUe68ey3wMDAPPsMGzZMK1eu1NmzZzVw4ED5+fnp3nvvLdQVYQEBAYWqq1atWrm2ZWRk6MqVK4VaV2FcunRJUu71BgYGKicnR7/++qtNe/Xq1W0+e3p6Siqe8wUAAMofbucEAAAuoWnTpta3c95s3bp18vDw0KeffmpzVdSmTZvs+nbu3FmdO3dWdna29u/fr3feeUcTJ06Uv7+/Bg0apJo1a+rrr79WTk5OnkHapk2bdPXqVW3YsMF6m6UkHTp06Jb2MT+bN2+WpFwf7v9HI0eO1MiRI3X16lXFxsZq+vTp6tevn06ePGlTa14Ke1vjhQsXcm2rWLGibrvtNkmSl5eX0tPT7foV5Uq5G24EYomJiXbzEhISVKFCBYffUgsAAJAfrkQDAAAuz2KxyN3dXW5ubta2a9eu6Z///Geey7i5uenee++1Xj128OBBSVJ4eLjS0tKsb6zMa3vS/65kkq7fbvnee+/dym7kKTo6WsuXL1eHDh3sHpaflypVqig8PFxTp05VRkaGjhw5YlOzo66+2rBhg9LS0qyfU1NT9cknn6hz587W81G/fn0lJSXpv//9r7VfRkaGtm3bZrc+T0/PAtXWuHFj1a5dWx988IHNra5Xr15VVFSU9Y2dAAAAJYUr0QAAgMvr27ev3nrrLQ0ZMkR//etfdenSJc2dO9cm5JKkJUuWaMeOHerbt6+CgoKUlpZmfTPjfffdJ0kaPHiwVq1apbFjx+rEiRPq3r27cnJy9O2336pp06YaNGiQevXqpYoVK2rw4MGaNGmS0tLStHjxYrvbBwsrJydHe/fulSSlp6fr3Llz+vzzz/Wvf/1LTZs21b/+9a98lx89erQqVaqkjh07KiAgQBcuXNDs2bPl6+urdu3aSZJatGghSVq2bJm8vb3l5eWl4OBgu1sdC8rNzU29evVSRESEcnJy9PrrryslJUUzZsyw9nn00Uc1bdo0DRo0SM8//7zS0tK0YMGCXJ+Z1rJlS8XExOiTTz5RQECAvL291bhxY7t+FSpU0BtvvKGhQ4eqX79+GjNmjNLT0/Xmm2/qt99+05w5c4q0PwAAAEXFlWgAAMDl9ejRQytXrtThw4fVv39/TZ06VX/+85/14osv2vRr3bq1srKyNH36dIWHh2vYsGH65ZdftHnzZusz1dzd3bVlyxZNnjxZGzdu1AMPPKDhw4fr66+/tt4O2aRJE0VFRenXX3/VQw89pPHjx6t169Y2b8UsimvXrik0NFShoaEKDw/XSy+9pCtXrui9997TgQMHVLt27XyX79y5s3744Qc988wz6tWrl5599lk1atRIX331lWrWrClJCg4O1vz58/Xdd9+pW7duateunT755JMi1/z
"text/plain": [
"<Figure size 1500x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"r1, r2, r3 = [3, 4, 7]\n",
"p1, p2, p3 = [0.5, 0.3, 0.8]\n",
"\n",
"fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)\n",
"fig.suptitle('Pascal Distribution')\n",
"\n",
"sns.histplot(ax=axes[0], x=nbinom.rvs(n = r1, p = p1, size = N), bins=50, color = '#A1C935')\n",
"axes[0].set_title(f'NB({r1},{p1})')\n",
"\n",
"sns.histplot(ax=axes[1], x=nbinom.rvs(n = r2, p = p2, size = N), bins=50, color = '#1AEACD')\n",
"axes[1].set_title(f'NB({r2},{p2})')\n",
"\n",
"sns.histplot(ax=axes[2], x=nbinom.rvs(n = r3, p = p3, size = N), bins=50, color = '#F75D59')\n",
"axes[2].set_title(f'NB({r3},{p3})');"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rkcrQ1iv3GRw"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"nbinom.cdf($X,P,r$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"nbinom.sf($X,P,r$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "f5Z3jo_t3GRx",
"outputId": "fcf9d37f-17ef-47f2-df3e-ff42ef27c652"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *4* in the NB(4,0.6) Distribution is: 0.8263295999999999\n",
"The Right probability of *4* in the NB(4,0.6) Distribution is: 0.1736704000000001\n"
]
}
],
"source": [
"X = 4\n",
"r, p = [4, 0.6]\n",
"print(f'The left probability of *{X}* in the NB({r},{p}) Distribution is: ', nbinom.cdf(X, p=p, n=r))\n",
"print(f'The Right probability of *{X}* in the NB({r},{p}) Distribution is: ', nbinom.sf(X, p=p, n=r))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JbL3uCtF4H0d"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "emxN1gJN4H0e",
"outputId": "17bbd514-d8f3-4ae7-d161-3bdb468bd3dc"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 5]* in the NB(4,0.6) Distribution is: 0.5636874239999999\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"r, p = [4, 0.6]\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the NB({r},{p}) Distribution is: ', np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "-jQAIVGA5RHx",
"outputId": "9a60f609-9bb0-41a1-f670-4f5f38bc5948"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,n+1))\n",
"plt.bar(x1, nbinom.pmf(x1, p=p, n=r), color ='gray')\n",
"plt.bar(x2, nbinom.pmf(x2, p=p, n=r), color ='#DFFF00')\n",
"plt.bar(x3, nbinom.pmf(x3, p=p, n=r), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'NB({r}, {p})')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs])\n",
"plt.text(8, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tG_HoGyG5wR3"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3Oy7TX6C5wR4",
"outputId": "b7fb210f-6356-49cb-b484-eb4f80554a6e"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 5)* in the NB(4,0.6) Distribution is: 0.2820096000000001\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"r, p = [4, 0.6]\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the NB({r},{p}) Distribution is: ', np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "U-IGPmSm5wR5",
"outputId": "e038ec9c-05ad-4f6b-fff1-a45877c54b1e"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,n+1))\n",
"plt.bar(x1, nbinom.pmf(x1, p=p, n=r), color ='gray')\n",
"plt.bar(x2, nbinom.pmf(x2, p=p, n=r), color ='#DFFF00')\n",
"plt.bar(x3, nbinom.pmf(x3, p=p, n=r), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'NB({r}, {p})')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs])\n",
"plt.text(8, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nDTLBWPm81nz"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "mi58xHNj81n0",
"outputId": "fcb747ac-043c-4ab3-b856-7436fb921fff"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 5)* in the NB(4,0.6) Distribution is: 0.4893695999999999\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"r, p = [4, 0.6]\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the NB({r},{p}) Distribution is: ', np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "WLf_x_TF81n1",
"outputId": "2f846f58-c9a7-41a0-d8cb-b76427a874a4"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,n+1))\n",
"plt.bar(x1, nbinom.pmf(x1, p=p, n=r), color ='gray')\n",
"plt.bar(x2, nbinom.pmf(x2, p=p, n=r), color ='#DFFF00')\n",
"plt.bar(x3, nbinom.pmf(x3, p=p, n=r), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'NB({r}, {p})')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs])\n",
"plt.text(8, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5ioDU2wm9RS-"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "rLbOAAME9RS_",
"outputId": "b6b7ef15-1a1b-4a81-90e0-4c706765c427"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 5]* in the NB(4,0.6) Distribution is: 0.3563274240000001\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"r, p = [4, 0.6]\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the NB({r},{p}) Distribution is: ', np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "AvNavNRm9RTA",
"outputId": "71c92a29-780f-4ca0-cae8-2cb0e6cd69c6"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,n+1))\n",
"plt.bar(x1, nbinom.pmf(x1, p=p, n=r), color ='gray')\n",
"plt.bar(x2, nbinom.pmf(x2, p=p, n=r), color ='#DFFF00')\n",
"plt.bar(x3, nbinom.pmf(x3, p=p, n=r), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'NB({r}, {p})')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([nbinom.pmf(xs, p=p, n=r) for xs in xs])\n",
"plt.text(8, 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "O-3lH-zz9p8f"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"nbinom.pmf($X,P,r$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Nw2yekQQ9p8g",
"outputId": "592bd653-85f5-4c61-ff66-13afe27a2d6e"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=2* in the NB(4,0.6) Distribution is: 0.2073599999999998\n"
]
}
],
"source": [
"X = 2\n",
"r, p = [4, 0.6]\n",
"print(f'The probability of *X={X}* in the NB({r},{p}) Distribution is: ', nbinom.pmf(X, p=p, n=r))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "vi_a387B9p8h",
"outputId": "e5ae9032-f23b-47e9-b06a-ff736ce742fd"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGyCAYAAAAcSDVlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFUUlEQVR4nO39eVzU9f7//99HEFBUUiFwQSBbFDU1UAEPLkfFsPxkWbmU2XHpmLaQx0oij0uWpzTDyj16q5VKZb7rXZhiqblgpkFHy8pSwwhCcMEVRF6/P/wxX6cZlBkYl5e36+XyulzgOc/X8/GcEYc7z9cyFsMwDAEAAFzlalzuCQAAAFQHQg0AADAFQg0AADAFQg0AADAFQg0AADAFQg0AADAFQg0AADAFQg0AADAFQg0AADAFQg2Ai1q0aJEsFot8fHz022+/2T3erVs3tW7d2qYtNDRUFovFuvn4+OjGG2/U2LFjVVBQ4LDOsGHDdPvtt1c4jx9++EHe3t6yWCzavn17lZ7T2rVrFR0drdq1a8vf318PP/yw8vPzK71/QUGBnnzySYWGhsrb21uBgYGKj4/XoUOHrH1SUlLUpEkTnThxokpzBVA5hBoAlVZcXKznn3++0v07d+6sjIwMZWRkaNWqVfrnP/+p+fPnOwwumZmZWrx4saZOnepwrLNnz2rYsGHy9/d3ef7lNmzYoPj4eAUGBurjjz/WrFmztHbtWvXo0UPFxcUX3f+PP/5Qp06d9Pnnn2vChAlKT0/X3LlzdeONN6qkpMTab+jQofL19dUrr7xS5TkDqAQDAC7if/7nfwxJxu23327UqFHDyMrKsnm8a9euRqtWrWzaQkJCjDvuuMNurAkTJhiSjJ9++smm/f777zeioqIqnMP06dONJk2aGLNmzTIkGd98843Lz6dDhw5GeHi4cebMGWvb5s2bDUnGnDlzLrr/XXfdZTRp0sQ4dOjQRfvOmDHD8PPzM06cOOHyfAFUDis1ACrtmWeeUcOGDfXss8+6PIafn58kqWbNmta2P//8UytXrtSQIUMc7rNnzx79+9//1pw5c1SvXj2Xa0tSTk6OvvnmGw0ZMkSenp7W9piYGN18881auXLlBfffv3+/PvnkE40cOVL169e/aL0HHnhARUVFWr58eZXmDeDiCDUAKq1u3bp6/vnntXr1an355ZcX7W8YhkpLS1VaWqrjx49r3bp1Sk5OVufOnRUWFmbtt2bNGp05c0bdu3d3OMaIESN055136v/9v/9X5eewa9cuSdKtt95q99itt95qfbwiGzdulGEYaty4sQYNGqQ6derIx8dH3bp1U0ZGhl3/oKAgtWjRQp999lmV5w7gwgg1AJwyatQo3XDDDXr22WdlGMYF+6alpalmzZqqWbOm6tatq7///e9q3LixPvzwQ5t+GRkZqlWrllq0aGE3xuzZs7Vz50698cYb1TL/wsJCSVKDBg3sHmvQoIH18Yrk5ORIksaNG6dTp05pxYoVWrp0qQ4fPqy///3v+u9//2u3z2233abNmzdXw+wBXAihBoBTvLy8NHXqVG3fvl3vv//+Bfv+7W9/0zfffKNvvvlGmzdvVkpKig4ePKi///3vNldA/fHHHwoICJDFYrHZ/7ffflNiYqKmT5+uwMDAan0ef611sfZyZWVlkqSmTZtqxYoV6t27t+655x59/vnnqlGjhsOTgq+//nrl5+ertLS06hMHUCFCDQCnDRw4ULfddpuSkpJ05syZCvv5+fkpMjJSkZGRiomJ0bBhw7R06VLt3r1br776qrXfqVOn5OPjY7f/mDFj1Lp1a/Xv319HjhzRkSNHdPLkSUnS8ePHdfToUafn3rBhQ0lyuCJz6NAhhys4jvbv2bOnPDw8rO2NGjVS27Zt9e2339rt4+PjI8MwdPr0aafnC6DyPC/eBQBsWSwWvfzyy+rVq5cWLFjg1L7l57J899131jZ/f3+HYWDXrl367bffHJ6Q2717d/n5+enIkSNO1S+/n87OnTvVp08fm8d27txpd7+diubviGEYqlHD/m/FQ4cOydvbW3Xq1HFqrgCcw0oNAJf07NlTvXr10pQpU3T8+PFK75eVlSXp3CGZci1atFBhYaHdysvy5cu1bt06m638yqt58+bp008/dXreTZo0UceOHfXuu+/q7Nmz1vatW7fqp59+0j333HPB/Tt16qSmTZtqzZo1Nvv/8ccf+u677xQVFWW3z969exUeHu70XAE4h1ADwGUvv/yyDh48qB07djh8/MiRI9q6dau2bt2qjRs3asGCBRo8eLC8vb01ZswYa79u3brJMAx9/fXXNvtHRUWpW7duNlv5ycQRERH629/+Zu27f/9+WSwWPfzww5Wa948//qj77rtPa9eu1dKlS3X//ferdevW+sc//mHt99tvv8nT01PDhw+3ttWoUUOvvfaafvrpJ91111367LPP9P7776t3797y8vJSYmKiTa2ysjJt27bN4ZVdAKoXoQaAy9q3b69BgwZV+PjmzZsVHR2t6Ohode/eXS+++KI6dOigrVu3qkOHDtZ+nTt3VmhoqD7++GOX51K+WtSoUaOL9u3WrZvS0tKUm5urvn376vHHH1f37t31xRdfyNvb29rPMAydPXvWZkVGku69916tXLlS+fn5uvfee/XII4/ohhtu0JYtW9S8eXObvuvXr9fRo0f1wAMPuPzcAFSOxbjYNZkAcAm8+uqrevHFF5WTk6NatWo5vf+cOXP0zDPP6Ndff632K6WqYsiQIdq7dy+XdAOXACs1AK4IY8aMkZ+fn2bPnu3S/uvWrdMTTzxxRQWaX3/9VampqXr55Zcv91SAawIrNQCuGJs2bVJmZqYef/zxyz2VarFu3Trt2bNHjzzyyOWeCnBNINQAAABT4PATAAAwBUINAAAwBUINAAAwhWvqYxLKysr0xx9/qG7duhf90DoAAHBlMAxDx44dU+PGjR1+FEm5ayrU/PHHHwoODr7c0wAAAC44cOCAmjZtWuHj11SoqVu3rqRzL0q9evUu82wAAEBlFBUVKTg42Pp7vCLXVKgpP+RUr149Qg0AAFeZi506wonCAADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFDwv9wRQOZMnT3br+BMnTrRr268Lf8R7VYXKcOv4AIBrCys1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFAg1AADAFFwKNXPmzFFYWJh8fHwUERGhjRs3Vtj3o48+Uq9evRQQEKB69eopOjpaq1evtuu3YsUKhYeHy9vbW+Hh4Vq5cmWV6gIAgGuL06EmNTVVCQkJSkpKUmZmpmJjYxUfH6/s7GyH/b/66iv16tVLaWlp2rFjh7p3766+ffsqMzPT2icjI0MDBgzQkCFD9N1332nIkCG6//779fXXX7tcFwAAXFsshmE4da/6Tp066bbbbtPcuXOtbS1btlS/fv00bdq0So3RqlUrDRgwQP/+978lSQMGDFBRUZFWrVpl7XP77berfv36WrZsWbXVLSoqkp+fn44ePap69epVap8rBR+TAAC4VlX297dTKzUlJSXasWOH4uLibNrj4uK0ZcuWSo1RVlamY8eOqUGDBta2jIwMuzF79+5tHdPVusXFxSoqKrLZAACAOTkVagoKCnT27FkFBgbatAcGBiovL69SY7z66qs6ceKE7r//fmtbXl7eBcd0te60adPk5+dn3YKDgys1RwAAcPVx6URhi8X2sIRhGHZtjixbtkyTJk1Samqqrr/+eqfHdLZuYmKijh49at0OHDhw0TkCAICrk6cznf39/eXh4WG3OpKfn2+3ivJXqampGj58uD744AP17NnT5rGgoKALjulqXW9vb3l7e1/0eQEAgKufUys1Xl5eioiIUHp6uk17enq6YmJiKtxv2bJlevjhh7V06VLdcccddo9HR0fbjblmzRrrmK7WBQAA1w6nVmokaezYsRoyZIgiIyMVHR2tBQsWKDs
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,n+1))\n",
"plt.bar(x1, nbinom.pmf(x1, p=p, n=r), color ='gray')\n",
"plt.bar(x2, nbinom.pmf(x2, p=p, n=r), color ='#DFFF00')\n",
"plt.bar(x3, nbinom.pmf(x3, p=p, n=r), color ='gray')\n",
"plt.xlim(-1,n+1)\n",
"plt.xticks(np.arange(0,n+1), fontsize=12, ha='center')\n",
"plt.title(f'NB({r}, {p})')\n",
"prob = np.sum([nbinom.pmf(x2, p=p, n=r)])\n",
"plt.text(8, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XMMnBa5iJUpD"
},
"source": [
"<a name='Geometric_Distribution'></a>\n",
"\n",
"## **2.4. Geometric Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7v4WrQTfYtww"
},
"source": [
"The geometric distribution is a special case of the negative binomial distribution.\n",
"\n",
"Suppose now that $n$ independent trials, each of which results in a “success” with probability $p$ and in a “failure” with probability $1 p$, are to be performed. If $X$ represents the number of experiemnts to the occurrence of the fisrt success, then $X$ is said to be a geometric random variable with parameter $(p)$.\n",
"\n",
"$P(X=i) = (1-p)^{i-1}\\ p \\quad \\quad i = 1,2,...,\\infty$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = \\frac{1}{p}$\n",
"\n",
"$Var(X) = \\frac{1-p}{p^2} = \\frac{q}{P^2}$\n",
"\n",
"$Median(X) = \\lceil \\frac{-1}{log_2 (1-p)} \\rceil$\n",
"\n",
"$Skewness(X) = \\frac{2\\ -\\ p}{\\sqrt{1\\ -\\ p}}$\n",
"\n",
"$Kurtosis(X) = 6+ \\frac{p^2}{1\\ -\\ p}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = \\frac{p\\ e^t}{1\\ -\\ q\\ e^t}$\n",
"\n",
"$\\\\ $\n",
"\n",
"$CDF = F(X=x) = 1-q^x$"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "-zniiZHOJaki",
"outputId": "1ddba456-6ff0-49d8-dd52-3e822f762440"
},
"outputs": [
{
"data": {
"image/png": "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s2cNPz8/46GHHiqwLcCTOAUGlEGRkZGqVKmSc5o1a5Ykae/evfrll1903333SZJyc3OdU58+fWS327Vnzx5J0vr169WtWzcFBwe7rHv48OE6c+aMUlJSXMb79evnMt+0aVNJKnBBbtOmTXX8+HHnabBPP/1UFotF999/v0s/gYGBatGihTZu3Fjs/f7HP/5x2aMZZ86c0aZNmzR48GDVqlWr2OsuLsMwLlvTpk0bJSQk6Pnnn9fWrVv1559/XvF2irOvF8v/necbPHiwvLy8tGHDhive9pVYv369JDmPLOa7++67VaVKFX311Vcu4y1btlRISIhz3tvbW40aNdKBAwdKtU/gShGAAA/x9/eXj49PoR8M77//vr777jutWrXKZfzQoUOSpAkTJrgEpEqVKumRRx6RJOft0seOHSv01Fr+9UT5p2vy+fn5ucznX5NU1Pi5c+ecPRmGoYCAgAI9bd269Ypu3y7OqcATJ07owoULRZ6eulb5v4+/X3d1scTERA0bNkxvvfWWoqOj5efnp6FDhyozM7PY27mS056SFBgY6DLv5eWlmjVrFvg9lrRjx47Jy8urQNi0WCwKDAwssP2aNWsWWIfVatXZs2dLtU/gSnENEOAhFStW1G233aa1a9fKbre7fCCGh4dLUoHblP39/SVJcXFxuuOOOwpdb+PGjSX99UFkt9sLvP7HH3+4rOta+fv7y2Kx6Ouvvy702psruR4n/0LhS/Hz81PFihX1n//854r6LI6zZ8/qyy+/VP369S8ZsPz9/RUfH6/4+Hilp6dr1apVmjRpkg4fPqzPP/+8WNsqzr5eLDMzUzfeeKNzPjc3V8eOHXMJHFartdCLwK8lJNWsWVO5ubk6cuSISwgyDEOZmZlq3br1Va8b8CSOAAEeFBcXpwsXLmjMmDHFOo3SuHFjNWzYULt27VKrVq0KnapVqyZJ6tatm9avX+8MPPkWL16sG264ocRut+7Xr58Mw1BGRkah/dx8883O2pI4EuDj46POnTtr2bJlJfpwwAsXLujRRx/VsWPHNHHixGIvFxISokcffVQ9evTQzp07neMlfdTjvffec5n/8MMPlZubqy5dujjH6tWrp++//96lbv369QXu2ssPpcXpr1u3bpKkJUuWuIwnJSUpOzvb+TpQ3nAECPCg9u3ba968eXrsscd06623avTo0WrWrJkqVKggu92upKQkSZKvr69zmQULFqh3797q1auXhg8frhtvvFHHjx/Xzz//rJ07d2rZsmWSpKlTp+rTTz9V165dNWXKFPn5+em9997TZ599ppdfflk2m63E9mH06NEaMWKEtm/frk6dOqlKlSqy2+3avHmzbr75ZuczdW6++WYtX75c8+fPV2RkpCpUqKBWrVpd8TZnz56tDh06qG3btpo0aZIaNGigQ4cOadWqVVqwYIEzBBbl0KFD2rp1qwzD0KlTp/Tjjz9q8eLF2rVrl5544gk9+OCDRS6blZWlrl276p///KeaNGmiatWq6bvvvtPnn3/uclSupPY13/Lly+Xl5aUePXo47wJr0aKFBg8e7KyJiYnR5MmTNWXKFHXu3Fm7d+/W66+/XuB33bx5c0nSwoULVa1aNXl7eyssLKzQ01c9evRQr169NHHiRDkcDrVv3955F1hERIRiYmKuep8Aj/LoJdg
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 1000000\n",
"p = 0.6\n",
"\n",
"geo_data = np.random.geometric(p = p, size = N)\n",
"\n",
"sns.histplot(geo_data, color='orange', stat='density', bins=50)\n",
"\n",
"plt.xlim(1,15)\n",
"plt.xticks(list(range(1,15)), fontsize=12, ha='center')\n",
"plt.title('Geometric Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7n0s2hHUilT8",
"outputId": "ece50203-effb-4cad-d962-01c9b7c10feb"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the G(0.6) Distribution is: 1.6667\n",
"The median of the G(0.6) Distribution is: 1.0\n",
"The variance of the G(0.6) Distribution is: 1.1111\n",
"The standard deviation of the G(0.6) Distribution is: 1.0541\n",
"The skewness of the G(0.6) Distribution is: 2.2136\n",
"The kurtosis of the G(0.6) Distribution is: 6.9\n"
]
}
],
"source": [
"p = 0.6\n",
"print(f'The mean of the G({p}) Distribution is: ', np.round(geom.mean(p = p), 4))\n",
"print(f'The median of the G({p}) Distribution is: ', np.round(geom.median(p = p), 4))\n",
"print(f'The variance of the G({p}) Distribution is: ', np.round(geom.var(p = p), 4))\n",
"print(f'The standard deviation of the G({p}) Distribution is: ', np.round(geom.std(p = p), 4))\n",
"print(f'The skewness of the G({p}) Distribution is: ', np.round(geom.stats(p = p, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the G({p}) Distribution is: ', np.round(geom.stats(p = p, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ktPXTBJfItDJ"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "0HIc4gGnMmcY",
"outputId": "f7328e7f-52a0-498b-8ecf-484afbf3aa37"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = 6\n",
"x = np.arange(0, n, 0.001)\n",
"x1 = np.arange(0, n)\n",
"x2 = np.arange(0, n-1) + 0.999\n",
"\n",
"plt.scatter(x, geom.cdf(x, p=p), color = 'r')\n",
"plt.scatter(x2, geom.cdf(x2, p=p), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, geom.cdf(x1, p=p), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(-0.1,n);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QX0gpNAcjkxZ"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"geom.cdf($X,P$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"geom.sf($X,P$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TDv634j5jkxb",
"outputId": "4294f0ad-6d1a-4ad1-a8fc-d197da3da4e8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *3* in the G(0.6) Distribution is: 0.9359999999999999\n",
"The Right probability of *3* in the G(0.6) Distribution is: 0.06400000000000002\n"
]
}
],
"source": [
"X = 3\n",
"p = 0.6\n",
"print(f'The left probability of *{X}* in the G({p}) Distribution is: ', geom.cdf(X, p=p))\n",
"print(f'The Right probability of *{X}* in the G({p}) Distribution is: ', geom.sf(X, p=p))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Fyxvnvnokj0G"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "DOoHBL7-kj0G",
"outputId": "ee0d22b9-8b10-429a-e2dd-aec7a009169a"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 4]* in the G(0.6) Distribution is: 0.3744\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"p = 0.6\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the G({p}) Distribution is: ', np.sum([geom.pmf(xs, p=p) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "LByIeWG_kj0I",
"outputId": "eea9a2f3-8fce-4cb7-b214-4c132c0e1a7c"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(1,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, geom.pmf(x1, p=p), color ='gray')\n",
"plt.bar(x2, geom.pmf(x2, p=p), color ='#DFFF00')\n",
"plt.bar(x3, geom.pmf(x3, p=p), color ='gray')\n",
"plt.xlim(0,10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'G({p})')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([geom.pmf(xs, p=p) for xs in xs])\n",
"plt.text(8.5, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "u1GuWGA-mJrf"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1efpZjPNmJrg",
"outputId": "8c4351e2-ad4a-4c0d-d886-3017bd024401"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 4)* in the Normal Standard Distribution is: 0.09600000000000002\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"p = 0.6\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the Normal Standard Distribution is: ', np.sum([geom.pmf(xs, p=p) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "6n-Cnw9HmJrh",
"outputId": "202bb04a-ea53-4a10-a92d-a4ec6f5a0d76"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGyCAYAAADDBk96AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6cUlEQVR4nO3de1hVZf7//9cW5CAKqSCeAElNMW1U8Mh4ysSwvD5mn9I0dVTK80SmJWkBToUdNJomTEszj/E1s+mAKWOWx5zRcMq0LA9hiBKYIIoQsH5/+GN/3HGQjchm6fNxXeu62Pe+11rvBcp+ca+17mUxDMMQAACACdRxdAEAAACVRXABAACmQXABAACmQXABAACmQXABAACmQXABAACmQXABAACmQXABAACmQXABAACmQXABUGnffPONJk6cqNatW8vd3V3u7u5q27atJk2apH379pXqP2HCBN19992l2l9//XW1b99erq6uCgwMVGxsrH7//fdK13Hw4EE98MAD8vHxkaurq1q1aqWpU6fa9BkzZoyGDRtm9zECqN2cHV0AAHNYsmSJpk+frnbt2umxxx7T7bffLovFosOHD2vdunXq1q2bfvrpJ7Vu3VqSlJKSonfffVd79+612c7zzz+vZ555RnPmzFFYWJj+85//aN68eUpLS9PSpUuvWse2bdt0zz33qE+fPnrzzTfl7e2t1NRUpaSk2PSLiYlR+/bt9fnnn+vOO++svm8EAIey8KwiAFeza9cu9e3bV/fcc4/ef/99ubi4lOqzfv16hYaGqnnz5pKkESNGKDU1VXv27LH2ycrKUsuWLTV27FgtWbLE2v7CCy9o3rx5OnjwoDp06FBuHRcvXlSbNm3UtWtXffzxx7JYLBXWPXToUOXn52vLli32HjKAWopTRQCu6oUXXpCTk5OWLFlSZmiRpAceeMAaWs6cOaONGzdqzJgxNn0+++wzXbp0SePHj7dpHz9+vAzD0IcfflhhHevXr1d6erpmz5591dAiXT5d9K9//UtHjx69al8A5kBwAVChoqIibdu2TSEhIWrWrFml1tmyZYt+//13DRgwwKb94MGDkqROnTrZtDdr1kze3t7W98uzfft2a01//vOf5eLiooYNG+qhhx7SqVOnSvXv37+/DMNQUlJSpeoGUPsRXABUKDMzU3l5eQoICCj1XlFRkQoLC61LyZnnPXv2yN3dXe3bt7fpn5WVJVdXV3l4eJTaVqNGjZSVlVVhLWlpaZKk+++/X6Ghodq8ebMWLFig5ORk9evXTxcvXrTp36RJE7Vo0UK7du2y65gB1F4EFwBVFhwcrLp161qXhQsXSpJOnTolHx+fMk/nVHSK52qnf4qLiyVdvn7mxRdf1IABAzRp0iQtW7ZMP/30k9auXVtqnSZNmlgDDwDzI7gAqJC3t7fc3d31888/l3pv7dq1+s9//qOPPvrIpj0vL09ubm6l+jdu3FiXLl0qNTIiSWfPnlWjRo0qrKVx48aSpMGDB9u0Dx48WBaLRV9//XWpddzc3JSXl1fhdgGYB8EFQIWcnJx05513at++fUpPT7d5r0OHDgoJCSl1zYq3t7fOnj1balsl/b799lub9tOnTyszM1MdO3assJY77rijwvfr1Cn9K+3s2bPy9vaucD0A5kFwAXBVUVFRKioq0uTJkys1UVz79u2VlZWl7Oxsm/a7775bbm5uWrFihU37ihUrZLFYrjph3H333SeLxaJNmzbZtG/atEmGYahnz5427YWFhTp58mSFt1gDMBcmoANwVaGhoXrjjTc0Y8YMde3aVY8++qhuv/121alTR+np6dqwYYMkydPTU9L/3c2zd+9ehYWFWbfTqFEjzZs3T88884waNWpknYAuJiZGERERNgFj5cqVmjBhgpYvX66xY8dKuhyIpk2bpoSEBDVo0EDh4eE6cuSI5s2bpy5duujBBx+0qfubb77RxYsXS93dBMDEDACopAMHDhjjx483AgMDDVdXV8PNzc1o06aNMXbsWGPr1q3WfkVFRUarVq2MqVOnlrmd1157zbjtttsMFxcXw9/f34iOjjYKCgps+rzzzjuGJOOdd96xaS8sLDQWLFhgtGnTxqhbt67RrFkzY8qUKcZvv/1Waj/PPPOM4e3tbVy6dOmajx1A7cDMuQCui4ULF+r5559XWlqa3N3da3z/RUVFatOmjUaNGqXnn3++xvcP4PrgGhcA18W0adPk5eWlN954wyH7X716tXJzczV79myH7B/A9UFwAXBduLm5adWqVXJ1dXXI/ouLi7VmzRrdcsstDtk/gOuDU0UAAMA0GHEBAACmQXABAACmQXABAACmYYoJ6IqLi3Xq1Ck1aNDgqg9hAwAAtYNhGDp//ryaN29e5iM5qsIUweXUqVPy8/NzdBkAAKAKTp48qZYtW1bLtkwRXBo0aCDp8oGXTCkOAABqt5ycHPn5+Vk/x6uDKYJLyekhT09PggsAACZTnZd5cHEuAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwDYILAAAwjSoFl4SEBAUGBsrNzU3BwcHasWNHhf3z8/M1d+5cBQQEyNXVVa1bt9by5curVDAAALh52f2sosTEREVGRiohIUGhoaFasmSJwsPDdejQIfn7+5e5zoMPPqgzZ85o2bJlatOmjTIyMlRYWHjNxQMAgJuLxTAMw54VevTooa5du2rx4sXWtqCgIA0bNkxxcXGl+n/22WcaOXKkjh07pkaNGlWpyJycHHl5eSk7O5uHLAIAYBLX4/PbrlNFBQUF2r9/v8LCwmzaw8LCtHv37jLX+eijjxQSEqKXXnpJLVq00G233aZZs2YpLy+v3P3k5+crJyfHZgEAALDrVFFmZqaKiork6+tr0+7r66vTp0+Xuc6xY8e0c+dOubm5aePGjcrMzNTUqVN19uzZcq9ziYuLU2xsrD2lXZOa3NeVoqOjHbJfAADMqkoX51osFpvXhmGUaitRXFwsi8WiNWvWqHv37hoyZIgWLVqkFStWlDvqEhUVpezsbOty8uTJqpQJAABuMHaNuHh7e8vJyanU6EpGRkapUZgSzZo1U4sWLeTl5WVtCwoKkmEY+uWXX9S2bdtS67i6usrV1dWe0gAAwE3ArhEXFxcXBQcHKzk52aY9OTlZvXv3LnOd0NBQnTp1Srm5uda2I0eOqE6dOmrZsmUVSgYAADcru08VzZw5U2+//baWL1+uw4cP6/HHH1dqaqomT54s6fJpnrFjx1r7jxo1So0bN9b48eN16NAhbd++XbNnz9aECRPk7u5efUcCAABueHbP4zJixAhlZWVp/vz5Sk9PV8eOHZWUlKSAgABJUnp6ulJTU63969evr+TkZM2YMUMhISFq3LixHnzwQT333HPVdxQAAOCmYPc8Lo5wvedx4a4iAACqn8PncQEAAHAkggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADANggsAADCNKgWXhIQEBQYGys3NTcHBwdqxY0e5fb/44gtZLJZSy/fff1/logEAwM3J7uCSmJioyMhIzZ07VykpKerTp4/Cw8OVmppa4Xo//PCD0tPTrUvbtm2rXDQAALg52R1cFi1apIkTJyoiIkJBQUGKj4+Xn5+fFi9eXOF6TZo0UdOmTa2Lk5NTlYsGAAA3J7uCS0FBgfbv36+wsDCb9rCwMO3evbvCdbt06aJmzZpp4MCB2rZtW4V
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(1,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,Y+10))\n",
"plt.bar(x1, geom.pmf(x1, p=p), color ='gray')\n",
"plt.bar(x2, geom.pmf(x2, p=p), color ='#DFFF00')\n",
"plt.bar(x3, geom.pmf(x3, p=p), color ='gray')\n",
"plt.xlim(0,10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'G({p})')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([geom.pmf(xs, p=p) for xs in xs])\n",
"plt.text(8.5, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dY81LwTLnLIO"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "wADy_TTTnLIP",
"outputId": "a82d6b30-8091-48be-870f-3fbc351906cb"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 4)* in the G(0.6) Distribution is: 0.336\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"p = 0.6\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the G({p}) Distribution is: ', np.sum([geom.pmf(xs, p=p) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "WhrahEjanLIQ",
"outputId": "90d6ec58-b34c-4b33-e040-a8e850580e40"
},
"outputs": [
{
"data": {
"image/png": "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Z86cUc2aNUtlW6YILhUqVJB048DzphQHAABlW1pamgIDA62f46XBFMEl7/SQt7c3wQUAAJMpzcs8uDgXAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYBsEFAACYRomCS3R0tOrUqSMPDw+FhIRo7969RfbPzMzUjBkzFBQUJHd3d9WtW1fLly8vUcEAAODeZfezitavX6+JEycqOjpaHTp00OLFixUWFqbjx4+rVq1aBa7z+OOP67ffftOyZctUr149nT9/XtnZ2bdcPAAAuLdYDMMw7FmhTZs2atWqlRYuXGhtCw4OVp8+fTRnzpx8/bdu3aoBAwbol19+UeXKlUtUZFpamnx8fJSamspDFgEAMInb8flt16mirKwsHT58WKGhoTbtoaGhOnDgQIHrfPLJJ2rdurVee+011ahRQw0aNNDkyZOVkZFR6H4yMzOVlpZmswAAANh1qig5OVk5OTkKCAiwaQ8ICFBSUlKB6/zyyy/at2+fPDw8tHnzZiUnJ2vs2LG6cOFCode5zJkzR1FRUfaUdkvu5L7+KDIy0iH7BQDArEp0ca7FYrF5bRhGvrY8ubm5slgsWrNmjR588EGFh4dr/vz5WrFiRaGjLhEREUpNTbUuZ86cKUmZAADgLmPXiIufn5+cnZ3zja6cP38+3yhMnmrVqqlGjRry8fGxtgUHB8swDJ09e1b169fPt467u7vc3d3tKQ0AANwD7BpxcXNzU0hIiGJjY23aY2Nj1b59+wLX6dChg86dO6f09HRr248//ignJyfVrFmzBCUDAIB7ld2niiZNmqT33ntPy5cv14kTJ/Tss88qPj5eo0ePlnTjNM+QIUOs/QcOHChfX18NGzZMx48f1549ezRlyhQNHz5cnp6epXckAADgrmf3PC79+/dXSkqKZs+ercTERDVt2lQxMTEKCgqSJCUmJio+Pt7av3z58oqNjdWECRPUunVr+fr66vHHH9dLL71UekcBAADuCXbP4+IIt3seF+4qAgCg9Dl8HhcAAABHIrgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTKFFwiY6OVp06deTh4aGQkBDt3bu30L67d++WxWLJt3z//fclLhoAANyb7A4u69ev18SJEzVjxgzFxcWpY8eOCgsLU3x8fJHr/fDDD0pMTLQu9evXL3HRAADg3mR3cJk/f75GjBihkSNHKjg4WAsWLFBgYKAWLlxY5HpVqlRR1apVrYuzs3OJiwYAAPcmu4JLVlaWDh8+rNDQUJv20NBQHThwoMh1W7ZsqWrVqqlbt27atWtXkX0
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(1,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,n+1))\n",
"plt.bar(x1, geom.pmf(x1, p=p), color ='gray')\n",
"plt.bar(x2, geom.pmf(x2, p=p), color ='#DFFF00')\n",
"plt.bar(x3, geom.pmf(x3, p=p), color ='gray')\n",
"plt.xlim(0,10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'G({p})')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([geom.pmf(xs, p=p) for xs in xs])\n",
"plt.text(8.5, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qi58XxsXoJIS"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "dlEYv_COoJIT",
"outputId": "f926f92a-47ed-4b3a-8d54-9f4b85c89066"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 4]* in the G(0.6) Distribution is: 0.13440000000000002\n"
]
}
],
"source": [
"X = 2\n",
"Y = 4\n",
"p = 0.6\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the G({p}) Distribution is: ', np.sum([geom.pmf(xs, p=p) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "O4Hm6-OVoJIU",
"outputId": "b0185b1f-e393-40ec-cab7-8828ecefb138"
},
"outputs": [
{
"data": {
"image/png": "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DKdOnVKtWrVKZF+mCC4VK1aUdP2N504pDgAAyrbU1FT5+/tbP8dLgimCS+7pIS8vL4ILAAAmU5KXeXBxLgAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMA2CCwAAMI1iBZeoqCjVq1dP7u7uCgwM1O7duwvtn5GRoRkzZqhOnTpyc3NT/fr1tXTp0mIVDAAA7l52P6soOjpaEydOVFRUlNq3b69FixYpODhYR48eVe3atfPd5oknntDvv/+uJUuWqEGDBjp37pyysrJuuXgAAHB3sRiGYdizwUMPPaRWrVppwYIF1raAgAD17t1bkZGRefpv3rxZ/fv316+//qrKlSsXq8jU1FR5e3srJSWFhywCAGASt+Pz265TRZmZmTp48KCCgoJs2oOCgrRv3758t/nss8/UunVrvf7666pZs6buu+8+TZ48WVevXi3wOBkZGUpNTbVZAAAA7DpVlJSUpOzsbPn5+dm0+/n56ezZs/lu8+uvv2rPnj1yd3fXhg0blJSUpLFjx+r8+fMFXucSGRmpiIgIe0q7JaV5rBuFhYU55LgAAJhVsS7OtVgsNq8Nw8jTlisnJ0cWi0WrVq3Sgw8+qJCQEM2dO1fLli0rcNQlNDRUKSkp1uXUqVPFKRMAANxh7Bpx8fHxkbOzc57RlXPnzuUZhclVvXp11axZU97e3ta2gIAAGYah06dPq2HDhnm2cXNzk5ubmz2lAQCAu4BdIy6urq4KDAxUbGysTXtsbKzatWuX7zbt27fXmTNnlJaWZm376aef5OTkpFq1ahWjZAAAcLey+1TRpEmT9P7772vp0qU6duyYnnvuOcXHx2v06NGSrp/mGTx4sLX/gAEDVKVKFQ0dOlRHjx7Vrl27NGXKFA0bNkweHh4l904AAMAdz+55XPr166fk5GTNmjVLiYmJatasmWJiYlSnTh1JUmJiouLj4639K1SooNjYWE2YMEGtW7dWlSpV9MQTT+jll18uuXcBAADuCnbP4+IIt3seF+4qAgCg5Dl8HhcAAABHIrgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTKFZwiYqKUr169eTu7q7AwEDt3r27wL47d+6UxWLJs/zwww/FLhoAANyd7A4u0dHRmjhxombMmKG4uDh16NBBwcHBio+PL3S7H3/8UYmJidalYcOGxS4aAADcnewOLnPnztXw4cM1YsQIBQQEaN68efL399eCBQsK3a5q1aqqVq2adXF2di520QAA4O5kV3DJzMzUwYMHFRQUZNMeFBSkffv2Fbpty5YtVb16dXXr1k07duw
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(1,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, geom.pmf(x1, p=p), color ='gray')\n",
"plt.bar(x2, geom.pmf(x2, p=p), color ='#DFFF00')\n",
"plt.bar(x3, geom.pmf(x3, p=p), color ='gray')\n",
"plt.xlim(0,10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'G({p})')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([geom.pmf(xs, p=p) for xs in xs])\n",
"plt.text(8., 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6DDYvsknpDYv"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"geom.pmf($X,P$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QZwbC5rJpDYw",
"outputId": "7783f030-e27a-4ae6-cf02-4cc16dcc6dab"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=2* in the G(0.6) Distribution is: 0.24\n"
]
}
],
"source": [
"X = 2\n",
"p = 0.6\n",
"print(f'The probability of *X={X}* in the G({p}) Distribution is: ', geom.pmf(X, p=p))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "qeG0Ppa5pDYy",
"outputId": "1a4f3029-714b-4664-a4de-fe7c88fd0971"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGyCAYAAADDBk96AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2GUlEQVR4nO3de1hVZf7//9cWZIMoeADxBMioKR4aE/LEx1MqhuX1sbyKslFLLY9NZFo62gBOhTOTptOE4aSZx+Fj1kzTYMqYTqZOMxpOmXYyDUOUQAOPELB+f/hjf91xkI3o5pbn47rWdcG977XWe22R/eJea93LZlmWJQAAAAM0cHcBAAAA1UVwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABUG2ffPKJJk2apA4dOsjHx0c+Pj7q1KmTpkyZon379pXrP3HiRN15553l2l9++WV16dJFdrtdYWFhSkxM1I8//ljtOg4ePKj77rtPgYGBstvtat++vaZPn+7UZ9y4cRo9erTLxwigbvN0dwEAzJCSkqKZM2eqc+fOeuKJJ9StWzfZbDYdPnxYGzdu1O23366vv/5aHTp0kCRlZGTojTfe0EcffeS0neeff17PPvus5s6dq+joaP3nP//RggULlJWVpRUrVly1jh07duiuu+7SgAED9OqrryogIECZmZnKyMhw6peQkKAuXbro/fff1x133FF7bwQAt7LxrCIAV7N7924NHDhQd911l9588015eXmV67Np0yZFRUWpTZs2kqTY2FhlZmZq7969jj55eXlq166dxo8fr5SUFEf7Cy+8oAULFujgwYPq2rVrpXVcuHBBHTt2VK9evfS3v/1NNputyrpHjRqlwsJCbdu2zdVDBlBHcaoIwFW98MIL8vDwUEpKSoWhRZLuu+8+R2g5deqU3n77bY0bN86pz3vvvadLly7pkUcecWp/5JFHZFmW/vKXv1RZx6ZNm5Sdna05c+ZcNbRIl08X/eMf/9CRI0eu2heAGQguAKpUUlKiHTt2KDIyUq1bt67WOtu2bdOPP/6oIUOGOLUfPHhQktSjRw+n9tatWysgIMDxemU++OADR03/8z//Iy8vLzVr1kwPPvigTpw4Ua7/4MGDZVmW0tLSqlU3gLqP4AKgSrm5ubp48aJCQ0PLvVZSUqLi4mLHUnbmee/evfLx8VGXLl2c+ufl5clut8vX17fctpo3b668vLwqa8nKypIkjRkzRlFRUdq6dasWLVqk9PR0DRo0SBcuXHDq37JlS7Vt21a7d+926ZgB1F0EFwA1FhERoYYNGzqWxYsXS5JOnDihwMDACk/nVHWK52qnf0pLSyVdvn7mt7/9rYYMGaIpU6Zo5cqV+vrrr7Vhw4Zy67Rs2dIReACYj+ACoEoBAQHy8fHRt99+W+61DRs26D//+Y/eeecdp/aLFy/K29u7XP8WLVro0qVL5UZGJOn06dNq3rx5lbW0aNFCkjRixAin9hEjRshms+njjz8ut463t7cuXrxY5XYBmIPgAqBKHh4euuOOO7Rv3z5lZ2c7vda1a1dFRkaWu2YlICBAp0+fLretsn6ffvqpU/vJkyeVm5ur7t27V1nLrbfeWuXrDRqU/5V2+vRpBQQEVLkeAHMQXABc1bx581RSUqKpU6dWa6K4Ll26KC8vT/n5+U7td955p7y9vbV69Wqn9tWrV8tms111wrh77rlHNptNW7ZscWrfsmWLLMtS3759ndqLi4t1/PjxKm+xBmAWJqADcFVRUVF65ZVX9Pjjj6tXr1567LHH1K1bNzVo0EDZ2dnavHmzJMnPz0/S/7ub56OPPlJ0dLRjO82bN9eCBQv07LPPqnnz5o4J6BISEjR58mSngLFmzRpNnDhRq1at0vjx4yVdDkQzZsxQcnKymjRpopiYGH355ZdasGCBbrvtNt1///1OdX/yySe6cOFCububABjMAoBqOnDggPXII49YYWFhlt1ut7y9va2OHTta48ePt7Zv3+7oV1JSYrVv396aPn16hdtZtmyZdcstt1heXl5WSEiIFR8fbxUVFTn1ef311y1J1uuvv+7UXlxcbC1atMjq2LGj1bBhQ6t169bWtGnTrDNnzpTbz7PPPmsFBARYly5duuZjB1A3MHMugOti8eLFev7555WVlSUfH58bvv+SkhJ17NhRY8eO1fPPP3/D9w/g+uAaFwDXxYwZM+Tv769XXnnFLftft26dzp07pzlz5rhl/wCuD4ILgOvC29tba9euld1ud8v+S0tLtX79ejVt2tQt+wdwfXCqCAAAGIMRFwAAYAyCCwAAMAbBBQAAGMOICehKS0t14sQJNWnS5KoPYQMAAHWDZVk6e/as2rRpU+EjOWrCiOBy4sQJBQcHu7sMAABQA8ePH1e7du1qZVtGBJcmTZpIunzgZVOKAwCAuq2goEDBwcGOz/HaYERwKTs95OfnR3ABAMAwtXmZBxfnAgAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxahRckpOTFRYWJm9vb0VERGjXrl1V9i8sLNT8+fMVGhoqu92uDh06aNWqVTUqGAAA1F8uP6soNTVVcXFxSk5OVlRUlFJSUhQTE6NDhw4pJCSkwnXuv/9+nTp1SitXrlTHjh2Vk5Oj4uLiay4eAADULzbLsixXVujTp4969eql5cuXO9rCw8M1evRoJSUllev/3nvv6YEHHtA333yj5s2b16jIgoIC+fv7Kz8/n4csAgBgiOvx+e3SqaKioiLt379f0dHRTu3R0dHas2dPheu88847ioyM1O9+9zu1bdtWt9xyi2bPnq2LFy9Wup/CwkIVFBQ4LQAAAC6dKsrNzVVJSYmCgoKc2oOCgnTy5MkK1/nmm2/04YcfytvbW2+//bZyc3M1ffp0nT59utLrXJKSkpSYmOhKadfkRu7rSvHx8W7ZLwAApqrRxbk2m83pe8uyyrWVKS0tlc1m0/r169W7d2+NHDlSS5Ys0erVqysddZk3b57y8/Mdy/Hjx2tSJgAAuMm4NOISEBAgDw+PcqMrOTk55UZhyrRu3Vpt27aVv7+/oy08PFyWZem7775Tp06dyq1jt9tlt9tdKQ0AANQDLo24eHl5KSIiQunp6U7t6enp6t+/f4XrREVF6cSJEzp37pyj7csvv1SDBg3Url27GpQMAADqK5dPFc2aNUuvvfaaVq1apcOHD+vJJ59UZmampk6dKunyaZ7x48c7+o8dO1YtWrTQI488okOHDumDDz7QnDlzNHHiRPn4+NTekQAAgJuey/O4xMbGKi8vTwsXLlR2dra6d++utLQ0hYaGSpKys7OVmZnp6N+4cWOlp6fr8ccfV2RkpFq0aKH7779fzz33XO0dBQAAqBdcnsfFHa73PC7cVQQAQO1z+zwuAAAA7kRwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYAyCCwAAMAbBBQAAGIPgAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYAyCCwAAMAbBBQAAGKNGwSU5OVlhYWHy9vZWRESEdu3aVWnfnTt3ymazlVs+//zzGhcNAADqJ5eDS2pqquLi4jR//nxlZGRowIABiomJUWZmZpXrffHFF8rOznYsnTp1qnHRAACgfnI5uCxZskSTJk3S5MmTFR4erqVLlyo4OFjLly+vcr2WLVuqVatWjsXDw6PGRQMAgPrJpeBSVFSk/fv3Kzo62qk9Ojpae/bsqXLd2267Ta1bt9bQoUO1Y8eOKvs
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(1,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,Y+10))\n",
"plt.bar(x1, geom.pmf(x1, p=p), color ='gray')\n",
"plt.bar(x2, geom.pmf(x2, p=p), color ='#DFFF00')\n",
"plt.bar(x3, geom.pmf(x3, p=p), color ='gray')\n",
"plt.xlim(0,10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'G({p})')\n",
"prob = np.sum([geom.pmf(x2, p=p)])\n",
"plt.text(8.5, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wHfxrvvOyRiq"
},
"source": [
"$P(X>s+t\\ |\\ X>s) = P(X>t)$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Bl35Ww-5HNtN"
},
"source": [
"<a name='Poisson_Distribution'></a>\n",
"\n",
"## **2.5. Poisson Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Yv5EDsRSZbJO"
},
"source": [
"$P(X=x) = \\frac{e^{-\\lambda}\\lambda^x}{x!} \\quad \\quad x = 0,1,...,\\infty$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = \\lambda$\n",
"\n",
"$Var(X) = \\lambda$\n",
"\n",
"$Skewness(X) = \\lambda^{-\\frac{1}{2}}$\n",
"\n",
"$Kurtosis(X) = \\lambda^{-1}$\n",
"\n",
"$Mode(X) = \\begin{cases}\\lambda,\\lambda-1 & \\lambda \\in integer \\\\ [\\lambda] & \\lambda \\not\\in integer \\end{cases}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = e^{\\lambda(e^t-1)}$"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "f1pJM57IHM9n",
"outputId": "d9c61aba-d771-41b4-f4ed-3f187c2f59ad"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 1000000\n",
"lam = 3\n",
"\n",
"poi_data = np.random.poisson(lam = lam, size = N)\n",
"\n",
"sns.histplot(poi_data, color='Brown', stat='density', bins=50)\n",
"\n",
"plt.title('Poisson Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"id": "rSZc3xTyXLcW"
},
"outputs": [],
"source": [
"def mode_poisson(lam):\n",
" if math.modf(lam)[0] == 0.0:\n",
" return [lam, lam-1]\n",
" else:\n",
" return np.floor(lam)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "NVaPuaB8dKs3",
"outputId": "68a9fe60-8862-47f8-ab2c-e67d6b90c41f"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the P(3) Distribution is: 3.0\n",
"The median of the P(3) Distribution is: 3.0\n",
"The variance of the P(3) Distribution is: 3.0\n",
"The standard deviation of the P(3) Distribution is: 1.7321\n",
"The mode of the P(3) Distribution is: [3 2]\n",
"The skewness of the P(3) Distribution is: 0.5774\n",
"The kurtosis of the P(3) Distribution is: 0.3333\n"
]
}
],
"source": [
"lam = 3\n",
"print(f'The mean of the P({lam}) Distribution is: ', np.round(poisson.mean(lam), 4))\n",
"print(f'The median of the P({lam}) Distribution is: ', np.round(poisson.median(lam), 4))\n",
"print(f'The variance of the P({lam}) Distribution is: ', np.round(poisson.var(lam), 4))\n",
"print(f'The standard deviation of the P({lam}) Distribution is: ', np.round(poisson.std(lam), 4))\n",
"print(f'The mode of the P({lam}) Distribution is: ', np.round(mode_poisson(lam), 4))\n",
"print(f'The skewness of the P({lam}) Distribution is: ', np.round(poisson.stats(lam, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the P({lam}) Distribution is: ', np.round(poisson.stats(lam, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tuMbDMELNsM6"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "SYtrA-ETNhhd",
"outputId": "ab9870f5-c7fe-4cae-cdd1-b9ab0aa4e7c2"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = 8\n",
"x = np.arange(0, n, 0.001)\n",
"x1 = np.arange(0, n)\n",
"x2 = np.arange(0, n-1) + 0.999\n",
"\n",
"plt.scatter(x, poisson.cdf(x, lam), color = 'r')\n",
"plt.scatter(x2, poisson.cdf(x2, lam), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, poisson.cdf(x1, lam), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(-0.1,n);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "SJ5RowUaeXoj"
},
"source": [
"The poisson distribution histogram depends on the $\\lambda$."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 356
},
"id": "Oca3B_SaedDi",
"outputId": "8774d02f-6c9f-4c88-ae6b-af1f03a8e0e7"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABPEAAAHeCAYAAAD6n57cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTP0lEQVR4nO3deVxVdf7H8feVXUJCWa97TbmEOaWOa6mpqLnU2CqF0EL1c8vQVn9N1K+0MbfCtLFMME1nMZ3KUtFUxhQzk1HUUZs0NaVrhoAbKJzfHw13ul5AwAv3XHk9Hw8eD/me7znnc86B8728PYvFMAxDAAAAAAAAAEyrnrsLAAAAAAAAAFAxQjwAAAAAAADA5AjxAAAAAAAAAJMjxAMAAAAAAABMjhAPAAAAAAAAMDlCPAAAAAAAAMDkCPEAAAAAAAAAkyPEAwAAAAAAAEyOEA8AAAAAAAAwOUI8AABQJ6Smpspisdi/vL291aRJEz300EP64Ycfqry8Xr16qVevXq4vtJYkJCQ47I/AwEC1aNFCQ4cO1fz581VYWOg0T3W2effu3UpOTtbBgwerNN/F6zp48KAsFoumTp1apeVcyqRJk7R8+XKn9vXr18tisWj9+vUuXR8AAEB1ebu7AAAAgNo0f/58tW7dWmfPnlVGRoYmT56sDRs2aOfOnQoMDKz0cmbPnl2DVdaOgIAAffHFF5Kks2fP6vDhw/r888+VmJioadOmaeXKlWrSpIm9f3W2effu3Xr55ZfVq1cvtWjRotLz1db+nTRpku6++27deeedDu0333yzNm/erLZt29ZKHQAAAJdCiAcAAOqU6OhodezYUZLUu3dvFRcX6//+7/+0fPlyPfDAA5VezpUQ7tSrV09dunRxaBsxYoQeeughDR48WHfffbcyMzPt02pjm8+cOaP69eu7ff82aNDAad8AAAC4E7fTAgCAOq00qPn+++8lSefOndPzzz+vli1bytfXV40bN9aoUaN08uRJh/nKurV0zpw5at++va666ioFBQWpdevWeuGFF+zTz5w5owkTJqhly5by9/dXw4YN1bFjRy1evNhhOR9//LG6du2q+vXrKygoSP369dPmzZsd+iQnJ8tisWjXrl0aPny4goODFRERoYcfflh5eXmXtU9iYmKUmJioLVu2KCMjo9rbnJqaqnvuuUfSL4Fp6a27qamp9uVFR0crIyND3bp1U/369fXwww+Xuy5JKikp0WuvvaZmzZrJ399fHTt21Nq1ax36JCQklHnVX+k+K2WxWHT69GmlpaXZaytdZ3m307r72AAAgLqLEA8AANRp3377rSQpLCxMhmHozjvv1NSpUxUXF6cVK1YoKSlJaWlpuu2228p8TlypJUuWaOTIkerZs6eWLVum5cuX66mnntLp06ftfZKSkjRnzhyNHTtWK1eu1AcffKB77rlHJ06csPf58MMPdccdd6hBgwZavHix5s2bp9zcXPXq1UsbN250Wu9dd92l66+/XkuXLtVzzz2nDz/8UE899dRl75ehQ4dKkkOIV9VtHjRokCZNmiRJevvtt7V582Zt3rxZgwYNsi/j2LFjevDBBxUbG6vPPvtMI0eOrLCuWbNmaeXKlZo5c6YWLlyoevXqaeDAgU5BWmVs3rxZAQEBuv322+21VXQbr1mODQAAqJu4nRYAANQpxcXFunDhgs6dO6cNGzbo1VdfVVBQkIYOHarVq1dr1apVmjJlip5++mlJUr9+/dS0aVPdd999WrBggRITE8tc7pdffqmrr75ab731lr2tT58+Tn1iYmIcgpxfB1olJSV6+umn1a5dO33++eeqV++X/2+9/fbbde211+rZZ5/Vl19+6bDMRx55xF5r37599e233+r999/XvHnzHK46q6rmzZtLko4ePVpun0ttc1hYmK677jpJv9yKW9btqT///LP++te/6rbbbqtUXcXFxUpPT5e/v78kqX///mrRooX+8Ic/KD09vVLLKNWlSxfVq1dPYWFhl7x11kzHBgAA1E1ciQcAAOqULl26yMfHR0FBQRo8eLAiIyP1+eefKyIiwv6Sh4SEBId57rnnHgUGBjrdtvlrv/vd73Ty5EkNHz5cf//73/XTTz+V2efzzz/Xc889p/Xr1+vs2bMO0/fu3aujR48qLi7OHhJJ0lVXXaW77rpLmZmZOnPmjMM8pVfMlbrxxht17tw52Wy2Su2P8hiGcck+ldnmSwkJCal0gCdJw4YNswd4khQUFKQhQ4YoIyNDxcXFVV5/ZZnp2AAAgLqJEA8AANQpCxYs0NatW7V9+3YdPXpUO3bsUPfu3SVJJ06ckLe3t8LCwhzmsVgsioyMdLjt9WJxcXF6//339f333+uuu+5SeHi4Onfu7HB12FtvvaVnn31Wy5cvV+/evdWwYUPdeeed2r9/v339khQVFeW0fKvVqpKSEuXm5jq0N2rUyOF7Pz8/SXIKCKuq9BmBVqu13D6V2eZLKWtbKxIZGVlmW1FRkU6dOlWlZVWFmY4NAAComwjxAABAndKmTRt17NhRv/3tb50CmUaNGunChQs6fvy4Q7thGMrJyVFoaGiFy37ooYe0adMm5eXlacWKFTIMQ4MHD7YHYoGBgXr55Zf1r3/9Szk5OZozZ44yMzM1ZMgQ+/qlX54Td7GjR4+qXr16CgkJqfa2V8XHH38sSWW+XOLXLrXNl1LV20pzcnLKbPP19dVVV10lSfL39y/z+YXVuVKwlJmODQAAqJsI8QAAAP6j9HluCxcudGhfunSpTp8+7fSMu/IEBgZq4MCBmjhxooqKirRr1y6nPhEREUpISNDw4cO1d+9enTlzRq1atVLjxo314YcfOtzOevr0aS1dutT+VtSalp6ervfee0/dunVTjx49KjVPedvs6qvPPvroI507d87+fUFBgT755BPdcsst8vLykiS1aNFCNptNP/74o71fUVGRVq1a5bQ8Pz+/StVmlmMDAADqLl5sAQAA8B/9+vVT//799eyzzyo/P1/du3fXjh079NJLL+mmm25SXFxcufMmJiYqICBA3bt3V1RUlHJycjR58mQFBwerU6dOkqTOnTtr8ODBuvHGGxUSEqI9e/bogw8+cAiApkyZogceeECDBw/W448/rsLCQr3xxhs6efKkXn/9dZdub0lJiTIzMyVJhYWFOnTokD7//HP95S9/UZs2bfSXv/ylwvkrs83R0dGSpLlz5yooKEj+/v5q2bKl062mleXl5aV+/fopKSlJJSUl+uMf/6j8/Hy9/PLL9j733Xef/vCHP+j+++/X008/rXPnzumtt94q85l57dq10/r16/XJJ58oKipKQUFBatWqlVO/evXq1eqxAQAAuBghHgAAwH9YLBYtX75cycnJmj9/vl577TWFhoYqLi5OkyZNsl9VVpZbbrlFqamp+stf/qLc3FyFhoaqR48eWrBggf0Ze7fddps+/vhjzZgxQ2fOnFHjxo01YsQITZw40b6c2NhYBQYGavLkybrvvvvk5eWlLl26aN26derWrZtLt/fs2bPq2rWrJCkgIEBhYWFq37693n33XT3wwAPy9fWtcP7KbHPLli01c+ZMvfnmm+rVq5eKi4s1f/58p5eHVNbo0aN17tw5jR07VjabTTfccINWrFhhf65h6Tr//ve/64UXXtDdd9+tqKgoJSUl6fjx4w5hnyS9+eabGjVqlO6//36dOXNGPXv21Pr168tcd20eGwAAgItZjMq8egwAAAAAAACA2/BMPAAAAAAAAMDkCPEAAAAAAAAAkyPEAwAAAAAAAEyOEA8AAAAAAAAwOUI8AAAAAAAAwOQI8QAAAAAAAACTI8QDAAAAAAAATI4QDwAAAAAAADA5QjwAAAAAAADA5AjxAAAAAAAAAJMjxAMAAAAAAABMjhAPAAAAAAAAMDlCPAAAAAAAAMDkCPEAAAAAAAAAkyPEAwAAAAAAAEyOEA8AAAAAAAAwOUI8AAAAAAAAwOQI8YArWGpqqiwWi/3L29tbTZo00UMPPaQffvjBoe+CBQsUFhamgoICe9vEiRN10003qWHDhvL399c111yjxx57TN9//73DvGv
"text/plain": [
"<Figure size 1500x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"lam1, lam2, lam3 = [3, 4, 10]\n",
"\n",
"fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)\n",
"fig.suptitle('Poisson Distribution')\n",
"\n",
"sns.histplot(ax=axes[0], x=np.random.poisson(lam = lam1, size = N), bins=50, color = '#B4EA1A')\n",
"axes[0].set_title(f'P({lam1})')\n",
"\n",
"sns.histplot(ax=axes[1], x=np.random.poisson(lam = lam2, size = N), bins=50, color = '#6960EC')\n",
"axes[1].set_title(f'P({lam2})')\n",
"\n",
"sns.histplot(ax=axes[2], x=np.random.poisson(lam = lam3, size = N), bins=50, color = '#F75D59')\n",
"axes[2].set_title(f'P({lam3})');"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fndQ_A7BgO83"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"poisson.cdf($\\lambda$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"poisson.sf($\\lambda$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7ZIdi46ggO85",
"outputId": "d470add7-da35-4c3c-e91f-2f7c7583b229"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *3* in the P(3) Distribution is: 0.6472318887822313\n",
"The Right probability of *3* in the P(3) Distribution is: 0.3527681112177687\n"
]
}
],
"source": [
"X = 3\n",
"lam = 3\n",
"print(f'The left probability of *{X}* in the P({lam}) Distribution is: ', poisson.cdf(X, lam))\n",
"print(f'The Right probability of *{X}* in the P({lam}) Distribution is: ', poisson.sf(X, lam))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hqGdGmQVFws-"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Q5VYhhDBFws-",
"outputId": "fc083bb0-b61c-45d1-e009-04820d814c15"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 5]* in the P(3) Distribution is: 0.716933784497241\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"lam = 3\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the P({lam}) Distribution is: ', np.sum([poisson.pmf(xs, lam) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "k_b3ct93GOio",
"outputId": "1d247b32-7278-45b0-a76a-8c3370bb51d2"
},
"outputs": [
{
"data": {
"image/png": "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b29vAgsAANeZ4m7n4KZbAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgegQWAABgei4V3QGYR7yKfrV3WWgow3S1AQDmxwgLAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwPQILAAAwvVIFloULF6pRo0by8PBQcHCwvvzyy0Lbbty4Ub169VLt2rXl7e2tzp07KyoqKl+7DRs2KCgoSO7u7goKCtKmTZtK0zUAAFAJ2R1YIiIiNG7cOE2bNk0xMTEKCQlR3759lZCQUGD7PXv2qFevXoqMjNShQ4fUs2dPDRw4UDExMdY20dHRGjJkiMLCwvTtt98qLCxM999/vw4cOFD6MwMAAJWGxTAMw54dOnbsqLZt22rRokXWdYGBgRo0aJBmz55domPcfvvtGjJkiP71r39JkoYMGaLk5GRt2bLF2qZPnz6qUaOG1q5dW6JjJicny8fHRxcvXpS3t7cdZ4Q88bI4vEZDFfzPrSJrAwAqTkl/f9s1wpKZmalDhw4pNDTUZn1oaKj2799fomPk5OQoJSVFNWvWtK6Ljo7Od8zevXsXecyMjAwlJyfbLAAAoHKyK7CcPXtW2dnZ8vPzs1nv5+enpKSkEh1j7ty5SktL0/33329dl5SUZPcxZ8+eLR8fH+vi7+9vx5kAAIDrSaluurVYbIfvDcPIt64ga9eu1YwZMxQREaGbbrrpmo45depUXbx40bqcOHHCjjMAAADXExd7Gvv6+srZ2TnfyMfp06fzjZD8XUREhEaMGKF169bprrvustlWp04du4/p7u4ud3d3e7oPAACuU3aNsLi5uSk4OFjbtm2zWb9t2zZ16dKl0P3Wrl2rRx99VGvWrFH//v3zbe/cuXO+Y27durXIYwIAgBuHXSMskjRhwgSFhYWpXbt26ty5sxYvXqyEhASNHj1aUu6lmsTERK1cuVJSblh55JFHNH/+fHXq1Mk6klKlShX5+PhIkp599ll169ZNc+bM0d13363Nmzdr+/bt2rt3b1mdJwAAuI7ZfQ/LkCFDFB4erlmzZql169bas2ePIiMjFRAQIEk6deqUzZws7733nrKysjRmzBjdfPPN1uXZZ5+1tunSpYs++ugjvf/++2rZsqVWrFihiIgIdezYsQxOEQAAXO/snofFrJiH5doxDwsAoLw5ZB4WAACAikBgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkdgAQAApkd
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, poisson.pmf(x1, lam), color ='gray')\n",
"plt.bar(x2, poisson.pmf(x2, lam), color ='#DFFF00')\n",
"plt.bar(x3, poisson.pmf(x3, lam), color ='gray')\n",
"plt.xlim(-1,Y+10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'$P\\ (\\lambda = {lam})$')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([poisson.pmf(xs, lam) for xs in xs])\n",
"plt.text(9, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GAvzrWPEGo1l"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "e9iBud3qGo1l",
"outputId": "17d65f0d-df3c-4c0f-b315-b0ae3ec543f5"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 5)* in the P(3) Distribution is: 0.3920731633969286\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"lam = 3\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the P({lam1}) Distribution is: ', np.sum([poisson.pmf(xs, lam) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "0yfJR2TGGo1m",
"outputId": "25ea5192-ac1c-41a3-815e-7e72fcf6d3fb"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,Y+10))\n",
"plt.bar(x1, poisson.pmf(x1, lam), color ='gray')\n",
"plt.bar(x2, poisson.pmf(x2, lam), color ='#DFFF00')\n",
"plt.bar(x3, poisson.pmf(x3, lam), color ='gray')\n",
"plt.xlim(-1,Y+10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'$P\\ (\\lambda = {lam})$')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([poisson.pmf(xs, lam) for xs in xs])\n",
"plt.text(9, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yxIp1f3HHI0o"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "IqrF0QKUHI0p",
"outputId": "58c1953f-7e31-4052-e818-21d9e1390c50"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[2, 5)* in the P(3) Distribution is: 0.6161149710523164\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"lam = 3\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the P({lam1}) Distribution is: ', np.sum([poisson.pmf(xs, lam) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "CDe7D1R2HI0p",
"outputId": "66310c4b-9a14-45eb-afab-cebe2586b636"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,Y+10))\n",
"plt.bar(x1, poisson.pmf(x1, lam), color ='gray')\n",
"plt.bar(x2, poisson.pmf(x2, lam), color ='#DFFF00')\n",
"plt.bar(x3, poisson.pmf(x3, lam), color ='gray')\n",
"plt.xlim(-1,Y+10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'$P\\ (\\lambda = {lam})$')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([poisson.pmf(xs, lam) for xs in xs])\n",
"plt.text(9, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9-xTzF_IHvA3"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "mgkimrDrHvA3",
"outputId": "e5be5ea8-8a6f-4ed9-e3d2-c3c3c2147052"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(2, 5]* in the P(3) Distribution is: 0.49289197684185315\n"
]
}
],
"source": [
"X = 2\n",
"Y = 5\n",
"lam = 3\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the P({lam1}) Distribution is: ', np.sum([poisson.pmf(xs, lam) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "IZpr3BEHHvA4",
"outputId": "7db54a1d-e658-4cdf-f434-fe2e2230ba5e"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, poisson.pmf(x1, lam), color ='gray')\n",
"plt.bar(x2, poisson.pmf(x2, lam), color ='#DFFF00')\n",
"plt.bar(x3, poisson.pmf(x3, lam), color ='gray')\n",
"plt.xlim(-1,Y+10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'$P\\ (\\lambda = {lam})$')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([poisson.pmf(xs, lam) for xs in xs])\n",
"plt.text(9, 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ew39Mly0IJSg"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"poisson.pmf($X, \\lambda$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "iupFftiIIJSg",
"outputId": "7420ee3a-10ec-4e5e-e27c-6da8ff9338a1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=2* in the P(3) Distribution is: 0.22404180765538775\n"
]
}
],
"source": [
"X = 2\n",
"lam = 3\n",
"print(f'The probability of *X={X}* in the P({lam}) Distribution is: ', poisson.pmf(X, lam))"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "FVdZwFXTIJSg",
"outputId": "9c469f7b-0ec1-4257-adc9-d050df69c6b6"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,Y+10))\n",
"plt.bar(x1, poisson.pmf(x1, lam), color ='gray')\n",
"plt.bar(x2, poisson.pmf(x2, lam), color ='#DFFF00')\n",
"plt.bar(x3, poisson.pmf(x3, lam), color ='gray')\n",
"plt.xlim(-1,Y+10)\n",
"plt.xticks(np.arange(0,Y+10), fontsize=12, ha='center')\n",
"plt.title(f'$P\\ (\\lambda = {lam})$')\n",
"prob = poisson.pmf(x2, lam)\n",
"plt.text(9, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dtrIR0AZhZla"
},
"source": [
"<a name='Discrete_Uniform_Distribution'></a>\n",
"\n",
"## **2.6. Discrete Uniform Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "faSLp_qDiCBl"
},
"source": [
"$P(X=x) = \\frac{1}{n} \\quad \\quad x = a,a+1,...,b-1,b$\n",
"\n",
"$\\ \\qquad \\qquad \\qquad \\qquad n = b a + 1$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = \\frac{a+b}{2}$\n",
"\n",
"$Var(X) = \\frac{n^2-1}{12}$\n",
"\n",
"$Median(X) = \\frac{a+b}{2}$\n",
"\n",
"$Skewness(X) = 0$\n",
"\n",
"$Kurtosis(X) = -\\frac{6(n^2+1)}{5(n^2-1)}$\n",
"\n",
"$\\\\ $\n",
"\n",
"Moment-generating function:\n",
"\n",
"$M_{x}(t) = \\frac{e^{at}-e^{(b+1)t}}{n(1-e^t)}$"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 284
},
"id": "LRJzFFArhfGC",
"outputId": "219028fc-6ded-40e4-91cc-8cf3aacef0c7"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGyCAYAAAAYveVYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAy+0lEQVR4nO3dfVRVdd7//9cJ5BxMQUG5S1DMBgnzJqmkJEUKAzNTW1d3U2o5ZVmmDJeFzXjTzWBX6CLLRCeFHEq7QZtKMy1Fc4WzRNGcxrysVLgQxJuURIXQ/fujH+fbkQMCAgd2z8dae63Zn/357P3e5+yGl3t/zjkWwzAMAQAAmMQVri4AAACgKRFuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBu8LuTmZkpi8ViX2w2mwICAhQTE6OUlBSVlpbWGDN79mxZLBYXVHtphw8f1uzZs7Vr164m3e/BgwdlsViUmprqdHtqaqosFosOHjzY4H3n5OTIYrEoJyfHof31119Xr1695OHhIYvFopMnTza88BbSUtfRmTNnNHv27Bqv1aU4O1aPHj105513Nmg/l/Luu+8qLS3N6TaLxaLZs2c36fGA+iDc4HcrIyNDubm52rBhgxYuXKj+/fvrlVdeUXh4uL744guHvhMnTlRubq6LKq3b4cOHNWfOnCYPN83p+uuvV25urq6//np7265duzRlyhTFxMRo48aNys3NVceOHV1YZf0093V05swZzZkzp8HhpqWu2brCTW5uriZOnNjsNQAXc3d1AYCr9OnTR5GRkfb1sWPHatq0aRo8eLDGjBmj/fv3y9/fX5LUrVs3devWrUXqMgxD586dk6enZ4sczxW8vLw0aNAgh7Zvv/1WkvSnP/1JN954Y5Mc58yZM2rfvn2T7Ks2re06qj7nlrxma3Pxewy0FO7cAL8REhKiefPm6eeff9bixYvt7c5u8W/cuFFDhw6Vr6+vPD09FRISorFjx+rMmTP2PhUVFXrhhRcUHh4um80mX19fxcTE6Ouvv7b3sVgseuqpp5Senq7w8HBZrVa9/fbbkqT9+/frgQcekJ+fn6xWq8LDw7Vw4UL72JycHN1www2SpAkTJtgfkfz2UUBeXp7uuusu+fj4yGazacCAAXr//feb9HWrVv3YY926dbr++uvl6emp3r17a9myZQ79Ln4sNXToUP3xj3+UJN10002yWCwaP368vf+yZcvUr18/2Ww2+fj4aPTo0dq7d6/DPsePH68OHTpoz549iouLU8eOHRUbGyvp/73GGRkZCgsLk6enpyIjI7Vt2zYZhqFXX31VoaGh6tChg4YNG6bvv//+sl6HprqODh48qK5du0qS5syZY39/q1+b6v3t3LlT99xzjzp37qyrr7661mNVW716tfr27SubzaaePXtqwYIFDturH7ld/MjR2fu2Zs0aHTp0yOERXTVnj6X+/e9/a9SoUercubNsNpv69+9vv94vPs6KFSv0/PPPKygoSF5eXrrtttu0b9++2l944P/HnRvgIgkJCXJzc9OWLVtq7XPw4EGNGDFC0dHRWrZsmTp16qSioiKtW7dOlZWVat++vaqqqhQfH6+vvvpKU6dO1bBhw1RVVaVt27apoKBAN998s31/H330kb766ivNnDlTAQEB8vPz03/+8x/dfPPN9j+UAQEB+vzzzzVlyhQdO3ZMs2bN0vXXX6+MjAxNmDBBf/nLXzRixAhJsv+LfdOmTbrjjjt00003KT09Xd7e3lq5cqXuvfdenTlzxiFANJXdu3frz3/+s5577jn5+/vrrbfe0qOPPqpevXrp1ltvdTrmzTff1IoVK/TSSy8pIyNDvXv3tv9RT0lJ0YwZM3T//fcrJSVFx48f1+zZsxUVFaXt27frmmuuse+nsrJSd911lx5//HE999xzqqqqsm/79NNPlZ+fr7lz58pisejZZ5/ViBEjNG7cOP3444964403dOrUKSUmJmrs2LHatWvXZc2zaorrKDAwUOvWrdMdd9yhRx991P6Ip/q1qTZmzBjdd999mjRpksrLy+usa9euXZo6dapmz56tgIAAvfPOO3rmmWdUWVmppKSkBp3jm2++qccee0w//PCDVq9efcn++/bt08033yw/Pz8tWLBAvr6+ysrK0vjx43XkyBFNnz7dof+MGTN0yy236K233lJZWZmeffZZjRw5Unv37pWbm1uDasXvjAH8zmRkZBiSjO3bt9fax9/f3wgPD7evz5o1y/jtfy4ffvihIcnYtWtXrftYvny5Icn4+9//Xmc9kgxvb2/jxIkTDu3Dhw83unXrZpw6dcqh/amnnjJsNpu9//bt2w1JRkZGRo199+7d2xgwYIDxyy+/OLTfeeedRmBgoHH+/Pla6zpw4IAhyXj11Vedbn/11VcNScaBAwfsbd27dzdsNptx6NAhe9vZs2cNHx8f4/HHH7e3bdq0yZBkbNq0yd7m7H356aefDE9PTyMhIcHh2AUFBYbVajUeeOABe9u4ceMMScayZctq1CrJCAgIME6fPm1v++ijjwxJRv/+/Y0LFy7Y29PS0gxJxjfffFPra1NbvRdriuvo6NGjhiRj1qxZNbZV72/mzJm1bvut7t27GxaLpcbxbr/9dsPLy8soLy93OLffvreG4fx9GzFihNG9e3entV9c93333WdYrVajoKDAoV98fLzRvn174+TJkw7Hufh9f//99w1JRm5urtPjAdV4LAU4YRhGndv79+8vDw8PPfbYY3r77bf1448/1ujz2WefyWaz6ZFHHrnk8YYNG6bOnTvb18+dO6cvv/xSo0ePtt8Fql4SEhJ07tw5bdu2rc59fv/99/ruu+/04IMPSlKNfRQXFzfLLf7+/fsrJCTEvm6z2fSHP/xBhw4davC+cnNzdfbs2Rp3mIKDgzVs2DB9+eWXNcaMHTvW6b5iYmJ05ZVX2tfDw8MlSfHx8Q53aKrbG1PvxZriOqqP2s7ZmYiICPXr18+h7YEHHlBZWZl27tzZqOPX18aNGxUbG6vg4GCH9vHjx+vMmTM1JkDfddddDut9+/aV1DTvDcyNcANcpLy8XMePH1dQUFCtfa6++mp98cUX8vPz0+TJk3X11Vfr6quv1muvvWbvc/ToUQUFBemKKy79n1lgYKDD+vHjx1VVVaXXX39d7dq1c1gSEhIkSceOHatzn0eOHJEkJSUl1djHk08+ecl9uLv/+tT6/PnzTrdXP/Jp166dQ7uvr2+NvlarVWfPnq2zXmeOHz8uqebrI0lBQUH27dXat28vLy8vp/vy8fFxWPfw8Kiz/dy5cw2u97ea6jqqD2evT20CAgJqbbv49Wxqx48fr/W9dHb8i68lq9UqSY26lvD7wpwb4CJr1qzR+fPnNXTo0Dr7RUdHKzo6WufPn1deXp5ef/11TZ06Vf7+/rrvvvvUtWtXbd26VRcuXLhkwLl4bkfnzp3l5uamhx56SJMnT3Y6JjQ0tM59dunSRZKUnJysMWPGOO0TFhZW53g3NzcVFRU53V5UVCQ3NzenYaapVO+7uLi4xrbDhw/bz7Faa/ouoqa6juqjIeddUlJSa1v1622z2ST9OiH+ty4VqC/F19e31vdSUo33E2gs7twAv1FQUKCkpCR5e3vr8ccfr9cYNzc33XTTTfZPMVXf2o+Pj9e5c+eUmZnZ4Drat2+vmJgY5efnq2/fvoqMjKyxVP8hqu1fs2FhYbrmmmu0e/dup+MjIyPr/B4Zm82mW265RR9//HGNuxjnzp3Txx9/rMGDB9v/EDaHqKgoeXp6Kisry6H9//7v/+yPOFqjpryOmvpuxbfffqvdu3c7tL377rvq2LGj/XuHevToIUn65ptvHPp9/PHHNfbXkLtysbGx2rhxoz3MVFu+fLnat2/PR8fRZLhzg9+tf//73/Y5KKWlpfrqq6+UkZEhNzc3rV69usYnUn4rPT1dGzdu1IgRIxQSEqJz587ZP+582223SZLuv/9+ZWRkaNKkSdq3b59iYmJ04cIF/etf/1J4ePgl/1X+2muvafDgwYqOjtYTTzyhHj1
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"N = 1000000\n",
"a, b = [2,5]\n",
"\n",
"ud_data = np.random.randint(low = a, high = b+1, size = N)\n",
"\n",
"sns.histplot(ud_data, color='Silver', stat='density', bins=50)\n",
"\n",
"plt.xticks(list(range(a,b+1)), fontsize=12, ha='center')\n",
"plt.title('Discrete Uniform Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3WutY8pHnY9x",
"outputId": "edab00b6-2de4-4c14-f16e-93c80cb5a19f"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the U[2 3 4 5] Distribution is: 3.5\n",
"The median of the U[2 3 4 5] Distribution is: 3.0\n",
"The variance of the U[2 3 4 5] Distribution is: 1.25\n",
"The standard deviation of the U[2 3 4 5] Distribution is: 1.118\n",
"The skewness of the U[2 3 4 5] Distribution is: 0.0\n",
"The kurtosis of the U[2 3 4 5] Distribution is: -1.36\n"
]
}
],
"source": [
"a, b = [2,5]\n",
"r = np.arange(a, b+1)\n",
"print(f'The mean of the U{r} Distribution is: ', np.round(randint.mean(a, b+1), 4))\n",
"print(f'The median of the U{r} Distribution is: ', np.round(randint.median(a, b+1), 4))\n",
"print(f'The variance of the U{r} Distribution is: ', np.round(randint.var(a, b+1), 4))\n",
"print(f'The standard deviation of the U{r} Distribution is: ', np.round(randint.std(a, b+1), 4))\n",
"print(f'The skewness of the U{r} Distribution is: ', np.round(randint.stats(a, b+1, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the U{r} Distribution is: ', np.round(randint.stats(a, b+1, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CvfsH5z3qgnM"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "zyRpPYEHqgnU",
"outputId": "43ef8ddc-ac4a-48f5-f8ba-3b79a173da26"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = 6\n",
"x = np.arange(a-2, b+1, 0.001)\n",
"x1 = np.arange(a-2, b+1)\n",
"x2 = np.arange(a-2, b) + 0.999\n",
"\n",
"plt.scatter(x, randint.cdf(x, a, b+1), color = 'r')\n",
"plt.scatter(x2, randint.cdf(x2, a, b+1), color = 'white', edgecolor='black', s=100)\n",
"plt.scatter(x1, randint.cdf(x1, a, b+1), color = 'black', edgecolor='black', s=100)\n",
"plt.xlim(1,n);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yP7AtGPYr4nI"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"randint.cdf($a, b$)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"randint.sf($a, b$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YvF4qfAQr4nJ",
"outputId": "64337939-00e8-4d17-994e-2379a41a7cf8"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *4* in the U[2 3 4 5] Distribution is: 0.75\n",
"The Right probability of *4* in the U[2 3 4 5] Distribution is: 0.25\n"
]
}
],
"source": [
"X = 4\n",
"a, b = [2,5]\n",
"r = np.arange(a, b+1)\n",
"print(f'The left probability of *{X}* in the U{r} Distribution is: ', randint.cdf(X, a, b+1))\n",
"print(f'The Right probability of *{X}* in the U{r} Distribution is: ', randint.sf(X, a, b+1))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FDJNw20esgdN"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "o-kvkIDwsgdN",
"outputId": "7b9f9df3-2cdb-4c62-bf87-7a3cac22f69a"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[3, 5]* in the U[2, 3, 4, 5] Distribution is: 0.75\n"
]
}
],
"source": [
"X = 3\n",
"Y = 5\n",
"a, b = [2,5]\n",
"r = list(np.arange(a, b+1))\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the U{r} Distribution is: ', np.sum([randint.pmf(xs, a, b+1) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "yP01JTvYsgdO",
"outputId": "24c436fc-b75a-47c3-9b81-ea19470dfdc7"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, randint.pmf(x1, a, b+1), color ='gray')\n",
"plt.bar(x2, randint.pmf(x2, a, b+1), color ='#DFFF00')\n",
"plt.bar(x3, randint.pmf(x3, a, b+1), color ='gray')\n",
"plt.xlim(a-1,b+2)\n",
"plt.xticks(np.arange(a-1,b+2), fontsize=12, ha='center')\n",
"plt.title(f'$U\\ {r}$')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([randint.pmf(xs, a, b+1) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OEUvv9Xttzvx"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1BLkLtJEtzvy",
"outputId": "fb81075a-0db3-4946-c57b-f7dc40d2b243"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(3, 5)* in the U[2, 3, 4, 5] Distribution is: 0.25\n"
]
}
],
"source": [
"X = 3\n",
"Y = 5\n",
"a, b = [2,5]\n",
"r = list(np.arange(a, b+1))\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the U{r} Distribution is: ', np.sum([randint.pmf(xs, a, b+1) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "ESYmvv4dtzvz",
"outputId": "f53e941a-2a3a-46d1-8562-cf3193fbdb07"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,Y+10))\n",
"plt.bar(x1, randint.pmf(x1, a, b+1), color ='gray')\n",
"plt.bar(x2, randint.pmf(x2, a, b+1), color ='#DFFF00')\n",
"plt.bar(x3, randint.pmf(x3, a, b+1), color ='gray')\n",
"plt.xlim(a-1,b+2)\n",
"plt.xticks(np.arange(a-1,b+2), fontsize=12, ha='center')\n",
"plt.title(f'$U\\ {r}$')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([randint.pmf(xs, a, b+1) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "my_4el6yuxfx"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "trGE9TJauxfy",
"outputId": "814f19c5-f407-4248-d441-96eba7e07504"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[3, 5)* in the U[2, 3, 4, 5] Distribution is: 0.5\n"
]
}
],
"source": [
"X = 3\n",
"Y = 5\n",
"a, b = [2,5]\n",
"r = list(np.arange(a, b+1))\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the U{r} Distribution is: ', np.sum([randint.pmf(xs, a, b+1) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "ubM8k-W8uxfz",
"outputId": "76f861ac-77d1-45e8-c172-0bcdaabc26e4"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,Y+10))\n",
"plt.bar(x1, randint.pmf(x1, a, b+1), color ='gray')\n",
"plt.bar(x2, randint.pmf(x2, a, b+1), color ='#DFFF00')\n",
"plt.bar(x3, randint.pmf(x3, a, b+1), color ='gray')\n",
"plt.xlim(a-1,b+2)\n",
"plt.xticks(np.arange(a-1,b+2), fontsize=12, ha='center')\n",
"plt.title(f'$U\\ {r}$')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([randint.pmf(xs, a, b+1) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8n2NKgASvThs"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1V6w3MxivThs",
"outputId": "3c146a5d-9386-4862-dd19-be26a51371a2"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(3, 5]* in the U[2, 3, 4, 5] Distribution is: 0.5\n"
]
}
],
"source": [
"X = 3\n",
"Y = 5\n",
"a, b = [2,5]\n",
"r = list(np.arange(a, b+1))\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the U{r} Distribution is: ', np.sum([randint.pmf(xs, a, b+1) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "2gI6cwM-vTht",
"outputId": "505d6e04-21a7-4347-ffa0-99cbf99bf460"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,Y+10))\n",
"plt.bar(x1, randint.pmf(x1, a, b+1), color ='gray')\n",
"plt.bar(x2, randint.pmf(x2, a, b+1), color ='#DFFF00')\n",
"plt.bar(x3, randint.pmf(x3, a, b+1), color ='gray')\n",
"plt.xlim(a-1,b+2)\n",
"plt.xticks(np.arange(a-1,b+2), fontsize=12, ha='center')\n",
"plt.title(f'$U\\ {r}$')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([randint.pmf(xs, a, b+1) for xs in xs])\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WcMTHtMnvzer"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"randint.pmf($X, a, b+1$)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "dXbmT6Dqvzes",
"outputId": "8afc8446-9e98-451d-b0c1-767ce6781db2"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=3* in the U[2, 3, 4, 5] Distribution is: 0.25\n"
]
}
],
"source": [
"X = 3\n",
"a, b = [2,5]\n",
"print(f'The probability of *X={X}* in the U{r} Distribution is: ', randint.pmf(X, a, b+1))"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "_nYvQeMdvzet",
"outputId": "044590fc-2c04-4ba3-f420-0db3fa60b83c"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArsAAAGzCAYAAAAv2N9yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0K0lEQVR4nO3de1RV5b7G8WcBclGDRBS0EDXdKllqKIGGaSVeO7a7URbmSbcZlpJRbcTyVmmWSpqYni5kXiKzUtsWoXnrSJ5EcO/2sTMqNdgEKSYipLiFdf5gsIYrFspaUMjr9zPGHGOtd77znb+5sHx8edecFqvVahUAAABgILfGLgAAAAD4vRB2AQAAYCzCLgAAAIxF2AUAAICxCLsAAAAwFmEXAAAAxiLsAgAAwFiEXQAAABiLsAsAAABjEXYBAABgLMIucBmZPn26LBaLDh8+7HB/586d1b9//1qPHzdunCwWiywWi3r27Gm374svvtDDDz+s7t27q0WLFrrqqqs0evRoZWVlOV1nTk6ORo4cqQ4dOsjHx0f+/v6KjIzU6tWrnR7rt9544w1ZLBa1bNnS6WN37Nhhu/7fbl999ZVd348//thu/759++pdOwDAeR6NXQCAP87+/fvVqlUrderUqca+EydO6PDhwxo5cuQFxwgKCtJHH32k5s2b27UvX75cx48f19SpUxUaGqpjx45p4cKFioiIUHp6um655ZY611lcXKzg4GDdf//9uuqqq1RWVqY1a9YoNjZWR44c0YwZM+o81vny8/OVkJCg9u3b6+TJky6NIUkvvviiBg8ebNf22/B/8803KzMzU3/729/0/PPPu3wuAED9EHaBy8j+/fsVFhbmcF/1zGNt+6t5eXkpIiKiRvuyZcvUtm1bu7Zhw4apS5cuevHFF50Ku4MGDdKgQYPs2kaNGqXDhw9r5cqVLofdSZMmaeDAgfL399cHH3zg0hiS1LVrV4efwflatWqliIgIffvtty6fBwBQfyxjAC4Tubm5OnbsmPr27etwf/Vyg4uF3dr8NuhKUsuWLRUaGqq8vDyXxvytgIAAeXi49m/01atXa+fOnUpJSWmQWgAATQNhF7hMXCzM7tu3T97e3urRo0eDnfPkyZPav3+/rr32WpeOr6ys1Llz53Ts2DGlpKQoPT1dzzzzjNPjHD16VPHx8Zo/f76uvvpql2o53+TJk+Xh4SFfX18NHTpUX375Zb3HBAD8PljGAFwm9u/fL0kXnNnt1auXyzOnjkyePFllZWVKSkpy6fi4uDitWLFCkuTp6aklS5bokUcecWmcbt266dFHH3Wpjmp+fn6aOnWqBg0apNatW+v777/Xyy+/rEGDBulvf/ubhg4dWq/xAQANj7ALXCaysrLk7++vjh071tj3yy+/6MiRIxoxYkSDne/ZZ5/VmjVrtHTpUpeXRkyfPl0TJkzQ0aNHtXnzZj322GMqKytTQkJCncfYsGGDNm/erOzsbFksFpfqqNanTx/16dPH9j4qKkp//vOfdd111+npp58m7ALAJYiwC1wmsrOz1atXL4f7qm+bFR4e3iDnmj17tp5//nm98MILeuyxx1wep0OHDurQoYMk2YJ4YmKiHnroIbVp0+aix5eWlmry5Ml6/PHH1b59exUXF0uSzp49K6nqrg/NmjVTixYtXK7xyiuv1KhRo/T666/r9OnT8vHxcXksAEDDY80ucBmoqKhQYWGhWrdu7XD/xx9/LHd3d0VHR9f7XLNnz9asWbM0a9YsTZ8+vd7jnS88PFznzp3ToUOH6tS/qKhIP//8sxYuXKhWrVrZtnXr1qmsrEytWrXSAw88UO+6rFarJNV75hgA0PCY2QUuA+7u7goICFB2drb+/e9/q1mzZrZ92dnZeuedd3TfffepXbt29TrP3LlzNWvWLM2YMUMzZ86sb9k1bN++XW5uburcuXOd+gcFBWn79u012ufPn6+dO3fq008/VUBAQL1qOnHihD755BP17t1b3t7e9RoLANDwCLvAZSI+Pl4zZszQsGHDFBsbK09PT+3bt0/Lly9X586dlZycXK/xFy5cqOeee07Dhg3TyJEjazxR7Pz70losFt18883asWOHw7EmTpwoX19fhYeHKzAwUEVFRVq/fr3S0tL01FNP2S1huNBY3t7eNe7XK0mpqalyd3d3uO9C440ZM0YdOnRQ3759FRAQoO+++04LFy7Uzz//rNTUVIfXAgBoXIRd4DKRlJSkkJAQLVmyRFOnTtXZs2fVpUsXPf3000pISNAVV1xRr/E3b94sSfrss8/02Wef1dhf/av+0tJSSbrgLHJkZKTefvttvfPOOyouLlbLli3Vq1cvvfvuu3rwwQdt/eoyljMuNt7111+vtLQ0vf766yotLZW/v79uuukmvfvuu+rXr1+D1AAAaFgWa/XfQABwEePGjdOOHTv0/fffy2KxyN3d3ekxtmzZolGjRunAgQO67rrr6lVPQ47V0ONZrVZVVFRo1apVGj9+vL7++utab/sGAPj98AU1AE758ccf1axZs1rv7HAx27dv13333dcg4bQhx2ro8TZu3KhmzZpp/PjxDVAZAMBVzOwCqLMjR46oqKhIkuTj4+Pyk9EuB8XFxfr+++9t70NDQ9W8efNGrAgALk+EXQAAABiLZQwAAAAwFmEXAAAAxiLsAgAAwFjG3Ge3srJSP/30k6644goe2QkAQBNhtVp16tQptW/fXm5uzMGh4RkTdn/66ScFBwc3dhkAAMAFeXl5uvrqqxu7DBjImLBb/fSnvLw8+fr6NnI1AACgLkpKShQcHFzvpzgCtTEm7FYvXfD19SXsAgDQxLAEEb8XFscAAADAWIRdAAAAGIuwCwAAAGMRdgEAAGAswi4AAACMRdgFAACAsQi7AAAAMBZhFwAAAMYi7AIAAMBYhF0AAAAYi7ALAAAAY7kUdlNSUtSpUyd5e3srLCxMu3fvrrXvhx9+qCFDhqhNmzby9fVVZGSk0tPT7fqkpqbKYrHU2M6cOeNKeQAAAIAkF8JuWlqa4uPjlZSUpOzsbEVFRWn48OHKzc112H/Xrl0aMmSItmzZoqysLA0ePFi33367srOz7fr5+vqqoKDAbvP29nbtqgAAAABJFqvVanXmgBtvvFE33HCDli9fbmvr0aOH7rjjDs2bN69OY1x77bWKiYnRc889J6lqZjc+Pl7FxcV1rqO8vFzl5eW29yUlJQoODtbJkyfl6+tb53EAAEDjKSkpkZ+fH39/43fj4Uzns2fPKisrS3/961/t2qOjo7Vnz546jVFZWalTp07J39/frr20tFQhISGqqKhQ7969NXfuXPXp06fWcebNm6fZs2c7U36TYOI1uWLmzJn1HuOILA1QSdPXUU79e9Yh/lxWqe+fSz7HKg3x3zcA1JVTyxiKiopUUVGhwMBAu/bAwEAVFhbWaYyFCxeqrKxM9957r62te/fuSk1N1aZNm7Ru3Tp5e3trwIAB+u6772odJzExUSdPnrRteXl5zlwKAAAALgNOzexWs1jsZ8ysVmuNNkfWrVunWbNmaePGjWrbtq2tPSIiQhEREbb3AwYM0A033KClS5dqyZIlDsfy8vKSl5eXK+UDAADgMuFU2A0ICJC7u3uNWdyjR4/WmO39rbS0NI0fP17r16/XbbfddsG+bm5u6tev3wVndgEAAICLcWoZg6enp8LCwpSRkWHXnpGRof79+9d63Lp16zRu3DitXbtWI0eOvOh5rFarcnJy1K5dO2fKAwAAAOw4vYxh2rRpio2NVd++fRUZGamVK1cqNzdXkyZNklS1ljY/P1+rVq2SVBV0x44dq1dffVURERG2WWEfHx/5+flJqvrSRkREhLp27aqSkhItWbJEOTk5WrZsWUNdJwAAAC5DTofdmJgYHT9+XHPmzFFBQYF69uypLVu2KCQkRJJUUFBgd8/dFStW6Ny5c5o8ebImT55sa3/ooYeUmpoqSSouLtbEiRNVWFgoPz8/9enTR7t27VJ4eHg9Lw8AAACXM5e+oBYXF6e4uDiH+6oDbLUdO3ZcdLzFixdr8eLFrpQCAAAA1MqlxwUDAAAATQF
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,Y+10))\n",
"plt.bar(x1, randint.pmf(x1, a, b+1), color ='gray')\n",
"plt.bar(x2, randint.pmf(x2, a, b+1), color ='#DFFF00')\n",
"plt.bar(x3, randint.pmf(x3, a, b+1), color ='gray')\n",
"plt.xlim(a-1,b+2)\n",
"plt.xticks(np.arange(a-1,b+2), fontsize=12, ha='center')\n",
"plt.title(f'$U\\ {r}$')\n",
"prob = randint.pmf(x2, a, b+1)\n",
"plt.text(7, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tDQwSzWJeoz2"
},
"source": [
"<a name='Hypergeometric_Distribution'></a>\n",
"\n",
"## **2.7. Hypergeometric Distribution:**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "j_Ddl6KBeuif"
},
"source": [
"$P(X=i) = \\frac{\\binom{i}{m} \\binom{N-m}{n-i}}{\\binom{N}{n}} \\quad \\quad N = 0,1,2,...,\\infty$\n",
"\n",
"$\\ \\qquad \\qquad \\qquad \\qquad \\qquad \\quad m = 0,1,2,...,N$\n",
"\n",
"$\\ \\qquad \\qquad \\qquad \\qquad \\qquad \\quad n = 0,1,2,...,N$\n",
"\n",
"$\\\\ $\n",
"\n",
"$E(X) = \\frac{mn}{N}$\n",
"\n",
"$Var(X) = n \\frac{m}{N} (1-\\frac{m}{N}) \\frac{N-n}{N-1}$"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "zvp0BN9NgXxe",
"outputId": "536d2b8b-85e4-426a-80a8-419612cc5cc3"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGxCAYAAACKvAkXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA09ElEQVR4nO3de1RVdf7/8dcR4aAllKlcUhEtU9TUjhfA0NSksAtlLpmvK9TSKUebNMY138jKSxezbxlqojmVfJ0UqVHHLMuYMrGRGiOwZurrWKNicMhLo2glJnx+f/jjTMdzQEDgCPv5WGuv5fnsz/ns92e7lRf7co7NGGMEAABgIS18XQAAAEBjIwABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQAB1cjIyJDNZtOnn37qdf2tt96qLl26NG5R8Kq4uFhz585VQUFBrd43adKkevs7nDt3rmw2m2tp3bq1OnbsqJtuuklLly7ViRMn6mX79TlXm82mBx54oFbjnE96eroyMjI82vfv3y+bzeZ1HdDYCEAAmoXi4mLNmzev1qHgscce08aNG+u1lnfffVe5ubl699139dxzz6lz5876/e9/r169emn37t0XvP2Laa7eVBWAwsLClJubq1tuuaXBawDOp6WvCwDQcH7++WfZbDa1bMk/9XP9+OOPat26tbp161bvYzscDrVr1871+le/+pUeeOABDRs2TLfffrv++c9/ym63S1KDbP9cDTnX2rDb7YqOjvZpDUAlzgAB9WjkyJHq0aOHzv2OYWOMrrrqKtdvvpWXAp599lk99dRT6ty5swIDAzVgwAC9//77HuPu3btX48ePV4cOHWS329WzZ08tW7bMrc+HH34om82mP/7xj/rd736nK6+8Una7XV9//bUk6Q9/+IO6d+8uu92uqKgorV271uslkdOnT+vJJ59Ujx49ZLfb1b59e91zzz06fPiwW7+Kigo9++yzrn4dOnTQhAkT9O2337r1u+GGG9S7d2/l5uYqNjZWrVq1UpcuXbRq1SpJ0ttvv63rrrtOrVu3Vp8+ffTuu+/Wev4ffvihBg4cKEm65557XJeg5s6dK+nspZ9LL71UX3zxheLj49WmTRuNHDnSte7cfVBRUaGlS5eqX79+atWqlS677DJFR0frzTff9Kitpvr27avZs2ersLBQWVlZrnZv23/jjTc0ePBgBQcHq3Xr1uratavuvffeBplrpZdeesnt+Fi3bp3b+srLe+eqvEy8f/9+SVKXLl30j3/8Q9u3b3fVVrnNqi6BffTRRxo5cqTatGmj1q1bKzY2Vm+//bbX7Wzbtk2/+c1v1K5dO11xxRUaM2aMiouLvc4JqA4BCKiB8vJynTlzxmM5N+jMmDFDe/bs8Qgx77zzjr755htNnz7drf3FF1/Uu+++q7S0NL322mtq0aKFEhISlJub6+rz5ZdfauDAgfr73/+u559/Xm+99ZZuueUWPfjgg5o3b55HrampqSosLNSKFSu0efNmdejQQStXrtR9992na6+9Vhs2bNCjjz6qefPm6cMPP3R7b0VFhRITE/XMM89o/Pjxevvtt/XMM88oOztbN9xwg3766SdX39/85jf67//+b40aNUpvvvmmnnjiCb377ruKjY3VkSNH3MYtKSnRPffcoylTpmjTpk3q06eP7r33Xs2fP1+pqan6/e9/r/Xr1+vSSy/VHXfc4fYDrSbzv+6661yB6tFHH1Vubq5yc3M1ZcoU1zinT5/W7bffrhEjRmjTpk1e912lSZMmacaMGRo4cKCysrK0bt063X777a4f8nV1++23S5JycnKq7JObm6ukpCR17dpV69at09tvv63HH39cZ86caZC5StKbb76pJUuWaP78+frTn/6kiIgI/dd//Zf+9Kc/1XqOGzduVNeuXdW/f39XbdVddtu+fbtGjBih48eP65VXXlFmZqbatGmj2267zS0oVpoyZYr8/f21du1aPfvss/rwww91991317pOQAZAlVatWmUkVbtERES4+peXl5uuXbuaxMREt3ESEhJMt27dTEVFhTHGmH379hlJJjw83Pz000+ufqWlpaZt27bmxhtvdLXddNNNpmPHjub48eNuYz7wwAMmMDDQfP/998YYY7Zt22YkmaFDh7r1Ky8vN6GhoWbw4MFu7QcOHDD+/v5u9WdmZhpJZv369W59d+3aZSSZ9PR0Y4wxX331lZFkpk2b5tbvk08+MZLMI4884mobNmyYkWQ+/fRTV9vRo0eNn5+fadWqlSkqKnK1FxQUGElmyZIltZ5/ZY2rVq0y55o4caKRZF599VWv6365D3JycowkM3v2bI++5zNnzhwjyRw+fNjr+p9++slIMgkJCVVu/7nnnjOSzLFjx6rcTn3N1RhjJJlWrVqZkpISV9uZM2dMjx49zFVXXeUxt3NV/hvZt2+fq61Xr15m2LBhHn0rj/tf1h0dHW06dOhgTpw44bb93r17m44dO7r+zVRu59xj7tlnnzWSjNPp9NgeUB3OAAE1sHr1au3atctjuf766936tWjRQg888IDeeustFRYWSpK++eYbvfvuu5o2bZrHJYQxY8YoMDDQ9bryN9+cnByVl5fr1KlTev/993XnnXeqdevWbmefRo8erVOnTunjjz92G/Ouu+5ye71nzx6VlJRo3Lhxbu2dO3fWkCFD3NreeustXXbZZbrtttvcttWvXz+Fhoa6zhht27ZN0tkzJb80aNAg9ezZ0+MMWFhYmBwOh+t127Zt1aFDB/Xr10/h4eGu9p49e0qSDhw4IEl1mn91zt033rzzzjuS5HG2rj6Yc84YelN5eWvcuHF6/fXXVVRUVKdt1WSulUaOHKmQkBDXaz8/PyUlJenrr7/2uKRZn3744Qd98sknGjt2rC699FK37ScnJ+vbb7/Vnj173N5TeRat0rXXXivpP8cMUFMEIKAGevbsqQEDBngswcHBHn3vvfdetWrVSitWrJAkLVu2TK1atXLdw/FLoaGhXttOnz6tkydP6ujRozpz5oyWLl0qf39/t2X06NGS5HG5KSwszO310aNHJcntB1ylc9u+++47HTt2TAEBAR7bKykpcW2rcsxztyVJ4eHhrvWV2rZt69EvICDAoz0gIEDS2eBTuZ3azr8qrVu3VlBQ0Hn7HT58WH5+fl7/bi5U5Q/pX4a+cw0dOlR//vOfdebMGU2YMEEdO3ZU7969lZmZWePt1HSulao6DiV5/F3Wp3//+98yxlR5HHnb/hVXXOH2uvJm8l9engVqgkdDgHoWHBysiRMn6uWXX9asWbO0atUqjR8/XpdddplH35KSEq9tAQEBuvTSS+Xv7+/6bbiqMxKRkZFur889y1T5A+O777477/Yrbyz1diOydPYM1S/HdDqd6tixo1uf4uJityegLsTll19e6/lXxdsNvN60b99e5eXlKikp8fqD+UJU3kR9ww03VNsvMTFRiYmJKisr08cff6wFCxZo/Pjx6tKli2JiYs67nZrOtVJVx6H0n7/ryjOVZWVlrtAh1TyAenP55ZerRYsWcjqdHusq7wOrr2MJOBdngIAG8OCDD+rIkSMaO3asjh07VuUHzW3YsMF1tkOSTpw4oc2bNysuLk5+fn5q3bq1hg8frvz8fF177bVez0Kd+xvxua655hqFhobq9ddfd2svLCzUzp073dpuvfVWHT16VOXl5V63dc0110iSRowYIUl67bXX3N6/a9cuffXVV66nji5UbeZfX2cCEhISJEnLly+/sOLPsXv3bj399NPq0qWLx+XIqtjtdg0bNkwLFy6UJOXn57vapfo76/H++++7BeTy8nJlZWWpW7duroBb+STX559/7vbezZs3e627JrVdcsklGjx4sDZs2ODWv6KiQq+99po6duyo7t2712VKwHlxBghoAN27d9fNN9+sd955R9dff7369u3rtZ+fn59GjRqllJQUVVRUaOHChSotLXV7amfx4sW6/vrrFRcXp9/85jfq0qWLTpw4oa+//lqbN2/WBx98UG0tLVq00Lx583T//fdr7Nixuvf
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(1)\n",
"s = 1000000\n",
"m, N, n = [50, 500, 100]\n",
"\n",
"hg_data = np.random.hypergeometric(ngood = m, nbad = N-m, nsample = n, size=s)\n",
"\n",
"sns.histplot(hg_data, color='cyan', stat='density', bins=50)\n",
"\n",
"plt.title('Hypergeometric Distribution');"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "XapaJszTiRbx",
"outputId": "3f521894-3054-4e72-c4d5-af796a18e60b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the HG(500, 50, 100) Distribution is: 10.0\n",
"The median of the HG(500, 50, 100) Distribution is: 10.0\n",
"The variance of the HG(500, 50, 100) Distribution is: 7.2144\n",
"The standard deviation of the HG(500, 50, 100) Distribution is: 2.686\n",
"The skewness of the HG(500, 50, 100) Distribution is: 0.1794\n",
"The kurtosis of the HG(500, 50, 100) Distribution is: -0.0093\n"
]
}
],
"source": [
"m, N, n = [50, 500, 100]\n",
"print(f'The mean of the HG{N,m,n} Distribution is: ', np.round(hypergeom.mean(n = m, M = N, N = n), 4))\n",
"print(f'The median of the HG{N,m,n} Distribution is: ', np.round(hypergeom.median(n = m, M = N, N = n), 4))\n",
"print(f'The variance of the HG{N,m,n} Distribution is: ', np.round(hypergeom.var(n = m, M = N, N = n), 4))\n",
"print(f'The standard deviation of the HG{N,m,n} Distribution is: ', np.round(hypergeom.std(n = m, M = N, N = n), 4))\n",
"print(f'The skewness of the HG{N,m,n} Distribution is: ', np.round(hypergeom.stats(n = m, M = N, N = n, moments='mvsk')[2], 4))\n",
"print(f'The kurtosis of the HG{N,m,n} Distribution is: ', np.round(hypergeom.stats(n = m, M = N, N = n, moments='mvsk')[3], 4))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7hoHUIgXkKhe"
},
"source": [
"Integrating the PDF, gives us the cumulative distribution function (CDF) which is a function that maps values to their percentile rank in a distribution."
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "FXwHrJonkKhg",
"outputId": "6511b1b2-127c-4b5e-af9d-a1c86961ee9a"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m, N, n = [50, 500, 100]\n",
"x = np.arange(0, m+1, 0.001)\n",
"x1 = np.arange(0, m+1)\n",
"x2 = np.arange(0, m) + 0.999\n",
"\n",
"plt.scatter(x, hypergeom.cdf(x, n = m, M = N, N = n), color = 'r')\n",
"plt.scatter(x2, hypergeom.cdf(x2, n = m, M = N, N = n), color = 'white', edgecolor='black', s=80)\n",
"plt.scatter(x1, hypergeom.cdf(x1, n = m, M = N, N = n), color = 'black', edgecolor='black', s=80)\n",
"plt.xlim(1,16.5);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6RmpKhJXmP1p"
},
"source": [
"To find the left probability of a point use the code below:\n",
"\n",
"''\n",
"hypergeom.cdf(X, n = m, M = N, N = n)\n",
"''\n",
"\n",
"To find the right probability of a point use the code below:\n",
"\n",
"''\n",
"hypergeom.sf(X, n = m, M = N, N = n)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "DWf8ovrcmP1q",
"outputId": "190cb736-7980-4cda-ef12-bd70618e662c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left probability of *9* in the HG(500, 50, 100) Distribution is: 0.4377805207673867\n",
"The Right probability of *9* in the HG(500, 50, 100) Distribution is: 0.5622194792326133\n"
]
}
],
"source": [
"X = 9\n",
"m, N, n = [50, 500, 100]\n",
"print(f'The left probability of *{X}* in the HG{N,m,n} Distribution is: ', hypergeom.cdf(X, n = m, M = N, N = n))\n",
"print(f'The Right probability of *{X}* in the HG{N,m,n} Distribution is: ', hypergeom.sf(X, n = m, M = N, N = n))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FygbTGmJmvRn"
},
"source": [
"To find the probability between two points $[X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "SrXujRTcmvRq",
"outputId": "16093086-deb2-4d21-d548-cbd025aaa169"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[5, 8]* in the HG(500, 50, 100) Distribution is: 0.2812099969935373\n"
]
}
],
"source": [
"X = 5\n",
"Y = 8\n",
"m, N, n = [50, 500, 100]\n",
"xs = np.arange(X, Y+1)\n",
"print(f'The probability between *[{X}, {Y}]* in the HG{N,m,n} Distribution is: ', np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "VRV5t4temvRs",
"outputId": "a785d225-09bc-458c-c290-6dcd5d5f5404"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y+1))\n",
"x3 = list(np.arange(Y+1,22))\n",
"plt.bar(x1, hypergeom.pmf(x1, n = m, M = N, N = n), color ='gray')\n",
"plt.bar(x2, hypergeom.pmf(x2, n = m, M = N, N = n), color ='#DFFF00')\n",
"plt.bar(x3, hypergeom.pmf(x3, n = m, M = N, N = n), color ='gray')\n",
"plt.xlim(0, 22)\n",
"plt.xticks(np.arange(0,22), fontsize=12, ha='center')\n",
"plt.title(f'$HG{N,m,n}$')\n",
"xs = np.arange(X, Y+1)\n",
"prob = np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs])\n",
"plt.text(15, 0.02, f'$P({np.round(X, 3)} \\leq X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TKmPFkT-nmm3"
},
"source": [
"To find the probability between two points $(X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "eKlarBDmnmm6",
"outputId": "a247dca5-b8b0-46ae-da0d-40165a5cbede"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(5, 8)* in the HG(500, 50, 100) Distribution is: 0.13660350069991276\n"
]
}
],
"source": [
"X = 5\n",
"Y = 8\n",
"m, N, n = [50, 500, 100]\n",
"xs = np.arange(X+1, Y)\n",
"print(f'The probability between *({X}, {Y})* in the HG{N,m,n} Distribution is: ', np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "7NIq8laNnmm8",
"outputId": "9ac4e4b0-a12e-4b93-dd63-145abd0e34a6"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y))\n",
"x3 = list(np.arange(Y,22))\n",
"plt.bar(x1, hypergeom.pmf(x1, n = m, M = N, N = n), color ='gray')\n",
"plt.bar(x2, hypergeom.pmf(x2, n = m, M = N, N = n), color ='#DFFF00')\n",
"plt.bar(x3, hypergeom.pmf(x3, n = m, M = N, N = n), color ='gray')\n",
"plt.xlim(0,22)\n",
"plt.xticks(np.arange(0,22), fontsize=12, ha='center')\n",
"plt.title(f'$HG{N,m,n}$')\n",
"xs = np.arange(X+1, Y)\n",
"prob = np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs])\n",
"plt.text(15, 0.02, f'$P({np.round(X, 3)} < X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xwTO30WBoQCh"
},
"source": [
"To find the probability between two points $[X,Y)$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "t6Acq0cAoQCj",
"outputId": "f32a86f9-c1d7-4252-cdcb-b6b1044e9726"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *[5, 8)* in the HG(500, 50, 100) Distribution is: 0.1623105533635753\n"
]
}
],
"source": [
"X = 5\n",
"Y = 8\n",
"m, N, n = [50, 500, 100]\n",
"xs = np.arange(X, Y)\n",
"print(f'The probability between *[{X}, {Y})* in the HG{N,m,n} Distribution is: ', np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "4hoRiuhXoQCk",
"outputId": "4abeab49-b4a5-4fb2-9fcf-00f62b7aa14e"
},
"outputs": [
{
"data": {
"image/png": "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xo1DTk4OWrRogU2bNmHPnj1Yv3690ukmTdpKJBJ07doVBw8eVPs9qGofNdlnVfYLALt370Z+fj5yc3MBAJcuXcLWrVsBAL6+vqhTp06NfV9KS0tx8uRJlZ8l0X/Cy5wEhohUzZ8/XwAgnD59Wu3rjo6Ogqurq8r6CxcuCH5+fkLjxo0FqVQqmJiYCC4uLsK4ceOEw4cPKyY8e5qnp6fg6+urtC4yMlJwc3MTTE1NBX19fcHS0lLo37+/cPLkSbX9yc3NFSZMmCA0atRIMDQ0FFxdXYVNmzZp3TY3N1cAIAwdOlRtDU37WNX+VWW/giAI9vb2AgC1S3Jyco19XwRBEPbv3y8AEBITEyvtI9GrSCII//+kLxH952zbtg1DhgzBzZs3YWNj87K7A6DsGUq9e/fG2bNn0aZNm1d+v5oYMWIEbty4gaNHj77srhC9cAwsRP9hgiCgU6dOkMvl+OGHH152dwAAX3zxBdLS0rBx48b/xH6r6vr163BycsIff/yBt95662V3h+iFY2Ah+o+7cOECfv31V0ydOlXrKfqp5h04cABXr17FmDFjXnZXiF4KBhYiIiISPf45RURERKLHwEJERESix8BCREREovfKTBxXWlqKO3fuoF69ejX6QDMiIiLSHUEQkJubC2tr60ov/H9lAsudO3dga2v7srtBREREWrh16xaaNGlS4euvTGCpV68egLI3rO6ptURERCQ+OTk5sLW1VXyOV+SVCSzlp4Hq16/PwEJERFTLPO9yDl50S0RERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESiJ33ZHSCi2iE8PFwndUJDQ3VSh4j+WzjCQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREosfAQkRERKLHwEJERESix8BCREREoseHHxK9YviQQiJ6FWk1wrJkyRI0bdoUMpkMcrkchw8frrBteno6/Pz80KpVK+jp6SEwMLDS2ps3b4ZEIkG/fv206RoRERG9gjQOLLGxsQgMDERISAiSkpLg6ekJHx8fpKamqm1fUFAAS0tLhISEoG3btpXWvnnzJiZPngxPT09Nu0VERESvMI0Dy8KFCzF69Gj4+/vDyckJUVFRsLW1xdKlS9W2d3BwwHfffYeRI0fC1NS0wrolJSUYPnw4wsPD0axZM027RURERK8wjQJLYWEhEhMT4e3trbTe29sbx44dq1ZHIiIiYGlpidGjR1epfUFBAXJycpQWIiIiejVpFFiysrJQUlICKysrpfVWVlbIyMjQuhNHjx5FTEwMVqxYUeVtIiMjYWpqqlhsbW213j8RERGJm1YX3UokEqWvBUFQWVdVubm5eP/997FixQpYWFhUebvg4GA8fPhQsdy6dUur/RMREZH4aXRbs4WFBfT19VVGUzIzM1VGXarq+vXrSElJQZ8+fRTrSktLyzonleKff/5B8+bNVbYzMjKCkZGRVvskIiKi2kWjERZDQ0PI5XLEx8crrY+Pj0enTp206oCjoyPOnz+PM2fOKJZ3330X3bt3x5kzZ3iqh4iIiDS
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = list(np.arange(X,Y))\n",
"x3 = list(np.arange(Y,22))\n",
"plt.bar(x1, hypergeom.pmf(x1, n = m, M = N, N = n), color ='gray')\n",
"plt.bar(x2, hypergeom.pmf(x2, n = m, M = N, N = n), color ='#DFFF00')\n",
"plt.bar(x3, hypergeom.pmf(x3, n = m, M = N, N = n), color ='gray')\n",
"plt.xlim(0,22)\n",
"plt.xticks(np.arange(0,22), fontsize=12, ha='center')\n",
"plt.title(f'$HG{N,m,n}$')\n",
"xs = np.arange(X, Y)\n",
"prob = np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs])\n",
"plt.text(15, 0.02, f'$P({np.round(X, 3)} \\leq X < {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "mcOv4nPnoxCs"
},
"source": [
"To find the probability between two points $(X,Y]$ use the code below:"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_TK4upMwoxCt",
"outputId": "93eb8b12-f250-4a28-966e-c2872c2ce908"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability between *(5, 8]* in the HG(500, 50, 100) Distribution is: 0.25550294432987475\n"
]
}
],
"source": [
"X = 5\n",
"Y = 8\n",
"m, N, n = [50, 500, 100]\n",
"xs = np.arange(X+1, Y+1)\n",
"print(f'The probability between *({X}, {Y}]* in the HG{N,m,n} Distribution is: ', np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs]))"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "HWTyiIjcoxCu",
"outputId": "f405c9c5-2029-4056-a96b-08a0c246bbd6"
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X+1))\n",
"x2 = list(np.arange(X+1,Y+1))\n",
"x3 = list(np.arange(Y+1,22))\n",
"plt.bar(x1, hypergeom.pmf(x1, n = m, M = N, N = n), color ='gray')\n",
"plt.bar(x2, hypergeom.pmf(x2, n = m, M = N, N = n), color ='#DFFF00')\n",
"plt.bar(x3, hypergeom.pmf(x3, n = m, M = N, N = n), color ='gray')\n",
"plt.xlim(0,22)\n",
"plt.xticks(np.arange(0,22), fontsize=12, ha='center')\n",
"plt.title(f'$HG{N,m,n}$')\n",
"xs = np.arange(X+1, Y+1)\n",
"prob = np.sum([hypergeom.pmf(xs, n = m, M = N, N = n) for xs in xs])\n",
"plt.text(15, 0.02, f'$P({np.round(X, 3)} < X \\leq {np.round(Y, 3)})$ \\n {np.round(prob, 2)}', fontsize=18);"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "W-YEA62apQdT"
},
"source": [
"To find the probability of a point use the code below:\n",
"\n",
"''\n",
"hypergeom.pmf(X, n = m, M = N, N = n)\n",
"''"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Vjbq7iqgpQdT",
"outputId": "595cfe62-ef00-406d-b32a-aecb8b653a24"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The probability of *X=7* in the HG(500, 50, 100) Distribution is: 0.08515328996154319\n"
]
}
],
"source": [
"X = 7\n",
"m, N, n = [50, 500, 100]\n",
"print(f'The probability of *X={X}* in the HG{N,m,n} Distribution is: ', hypergeom.pmf(X, n = m, M = N, N = n))"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"id": "5S8stnBUpQdU",
"outputId": "b87502dc-db2c-4a9d-c975-4c245dbea743"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAG0CAYAAAARqnxaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGiUlEQVR4nO3deVyVZf7/8fcRBFQUFwjFwK0mYXALzKVwmRLTctKsNB2rSWoQyy0rCQ210qbMIb+lpuKouU5ZTQsuVOrXFHVUbLTMFkWMIAUXcAOB+/eHP87X4zkg53CwW3s9H4/78ZD7XPfnvs7R2/vNdd/3dSyGYRgCAAAwsRq/dQcAAACuhMACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACAABMj8ACmFRKSoosFouWLFni8PWHHnpItWvXVklJic36vXv3KiYmRq1atZKPj49q166t1q1b629/+5u2b99uV2fq1KkKCwtTaWmpJGnjxo2yWCwOl23bttltf/r0aY0ZM0ZBQUHy8fFR+/bttXLlSod9dqZtRZzpo7v2KUkFBQV67rnnFB0drYCAAFksFk2ePNlhW3d/LsnJyWratKnOnDnjUt+Ba54BwJReeuklQ5Kxd+9eh6+3atXK6NSpk826mTNnGp6enkZERITx1ltvGZ9//rmxbt0649VXXzVuuukmw8vLy7hw4YK1fVZWllGnTh3jvffes67bsGGDIcmYNm2akZaWZrMUFBTY9aNXr15G/fr1jblz5xpffvmlERMTY0gyli1bVqW2FXGmj+7ap2EYxqFDhww/Pz+jW7du1jqJiYkO27r7c7lw4YJx8803Gy+++KLT/QauBwQWwKQGDBhg1KpVyyguLrZ77eTJk4bFYjHi4uKs69544w1DkvHss88aJSUldtsUFRUZs2bNsln33HPPGU2bNrVpXxYGLg0x5fnss88MScby5ctt1vfq1csICgqy6bszba+ksn105z4NwzBKS0uN0tJSwzAM49ixY+UGlur6XGbMmGH4+fkZZ86ccarfwPWAS0KASe3atUtt27aVh4eH3Wvp6ekyDEO33nqrJOm7775TfHy8+vfvr9dee001atgf2jVr1tTTTz9t/bmoqEjJyckaMmSIw/aV8eGHH8rX11cPPvigzfq//vWv+uWXX2wuQTnT1l3cvc+yy07u3K8zbYcOHar8/HyXL2kB1zICC2BCeXl5yszMVFhYmE6ePGm3pKWlSZI1sEybNk0XLlzQjBkzKr2P7du3Ky8vTz179nT4+siRI+Xp6al69eqpd+/e+uqrr+za7Nu3T6GhofL09LRZ37ZtW+vrrrStrCv1sTr2WRnV9bk0btxYrVu31meffVYt/QbMzPPKTQBcbbt375Yk/fOf/9Q///lPh228vLwUHh6uwsJCffjhh+rcubNatWpl06a0tNR6M60k1ahRwzqacnnoKePn56fRo0erR48eatSokX788Ue9/vrr6tGjhz777DP17t3b2jYvL08tW7a061vDhg2tr7vS9koq20d37tMZ1fm53Hrrrfr888/d2V3gmkBgAUxo165dkqTFixcrJCTE7vWHH35YTZs2Vc2aNfX999/r9OnT6tixo127du3a2fyG/vLLLyshIUGS9Msvv8hiscjf399mmw4dOqhDhw7Wn6OiojRgwAC1adNGzz33nE1gkVThJZLLX3OmbUWc6aO79ums6vpcbrjhBh09elTFxcV2ozLA9Yx/7YAJ7d69Wz4+PhoyZIjdSamgoEC//vqr+vXrJ0nKzc2VJNWrV8+uzpIlS1RSUqK1a9dq0qRJ6tSpk/W1c+fOqWbNmg7vkblc/fr1de+992ru3Lk6d+6catWqJUlq1KiRw1GK48ePS/q/UQJn27rCUR+re5/lqc7PxcfHR4Zh6Pz58/L19XVntwFT4x4WwIR2796ttm3bOvwNuuyG24iICElSYGCgJOnw4cN2bTt06KDIyEidOHFCFovFZhTG399fRUVFlZ7XwzAMSba/8bdp00b79+9XcXGxTdu9e/dKksLDw11q66rL+3g19ulIdX4ux48fl7e3N2EFvzsEFsBkTp06pYMHD1oDyeXKLheV3XvSqlUrhYWF6aOPPtLPP//scJtt27apdevW8vPzs65r3bq1JOmnn366Yp9OnDihTz/9VO3bt5ePj491/YABA3T69GmtXr3apv3ixYsVFBRkM6LjTFtXOOpjde+zPNX5uRw8eFBhYWHV0m/AzLgkBJjM7t27bUZQLrdr1y55enpanyKRpLlz5yo6OlodO3bUM888ozZt2qhGjRr6+eef9dlnn2n79u0aPny4TZ0ePXpIuhhmLq01ZMgQhYSEKDIyUv7+/vrhhx/0xhtv6Ndff9WiRYtsavTp00e9evXSiBEjlJ+fr5tuukkrVqzQ2rVrtXTpUpvLTc60tVgs6t69uzZu3OjwM6hsH53ZZ2X2K0lr1qzRmTNnVFBQIEn69ttv9f7770uS+vbtq9q1a1fb51JaWqodO3bY/V0Cvwu/5SQwAOzNmDHDkGTs3r3b4eutW7c22rZta7d+3759xpAhQ4wmTZoYnp6ehq+vrxEeHm6MGDHC2Lx5s3XCs0tFRUUZffv2tVk3ffp0o3379oafn5/h4eFhBAQEGAMGDDB27NjhsD8FBQXGqFGjjMaNGxteXl5G27ZtjRUrVrjctqCgwJBkDB482GENZ/tY2f5VZr+GYRjNmjUzJDlcDh06VG2fi2EYxhdffGFIMnbt2lVhH4HrkcUw/v9FXwC/O6tXr9agQYN0+PBhNW3a9LfujqSL36F077336uuvv1abNm2u+/06Y9iwYTp48KC2bNnyW3cFuOoILMDvmGEY6tq1qyIiIvTWW2/91t2RJD377LPKysrS8uXLfxf7rayffvpJoaGh+vLLL3XHHXf81t0BrjoCC/A7t2/fPn388ceaMGGCy1P0o/pt2LBBP/zwg5588snfuivAb4LAAgAATI9fpwAAgOkRWAAAgOkRWAAAgOldNxPHlZaW6pdfflHdunWr9QvNAACA+xiGoYKCAgUFBVV44/91E1h++eUXBQcH/9bdAAAALjhy5IhuvPHGcl+/bgJL3bp1JV18w46+tRYAAJhPfn6+goODrefx8lw3gaXsMlC9evUILAAAXGOudDsHN90CAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADTI7AAAADT8/ytOwDg2jBlyhS31ElMTHRLHQC/L4ywAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0yOwAAAA0+PLD4HrDF9SCOB65NIIy+zZs9WiRQv5+PgoIiJCmzdvLrdtdna2hgwZoltuuUU1atTQmDFjKqy9cuVKWSwW9e/f35WuAQCA65DTgWXVqlUaM2aMEhISlJ6erqioKPXp00eZmZkO2xcWFiogIEAJCQlq165dhbUPHz6s8ePHKyoqytluAQCA65jTgWXmzJkaPny4YmJiFBoaqqSkJAUHB2vOnDkO2zdv3lxvvvmmHnnkEfn5+ZVbt6SkREOHDtWUKVPUsmVLZ7sFAACuY04FlqKiIu3atUvR0dE266Ojo7V169YqdWTq1KkKCAjQ8OHDK9W+sLBQ+fn5NgsAALg+ORVYcnNzVVJSosDAQJv1gYGBysnJcbkTW7ZsUXJysubPn1/pbaZPny4/Pz/rEhwc7PL+AQCAubl0063FYrH52TAMu3WVVVBQoL/85S+aP3++/P39K71dfHy8Tp06ZV2OHDni0v4BAID5OfVYs7+/vzw8POxGU44ePWo36lJZP/30kzIyMtSvXz/rutLS0oud8/TUgQMH1KpVK7vtvL295e3t7dI+AQDAtcWpERYvLy9FREQoNTXVZn1qaqq6du3qUgdat26tvXv3as+ePdblz3/+s3r27Kk9e/ZwqQcAADg
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x1 = list(np.arange(0,X))\n",
"x2 = X\n",
"x3 = list(np.arange(X+1,22))\n",
"plt.bar(x1, hypergeom.pmf(x1, n = m, M = N, N = n), color ='gray')\n",
"plt.bar(x2, hypergeom.pmf(x2, n = m, M = N, N = n), color ='#DFFF00')\n",
"plt.bar(x3, hypergeom.pmf(x3, n = m, M = N, N = n), color ='gray')\n",
"plt.xlim(0,22)\n",
"plt.xticks(np.arange(0,22), fontsize=12, ha='center')\n",
"plt.title(f'$HG{N,m,n}$')\n",
"prob = hypergeom.pmf(x2, n = m, M = N, N = n)\n",
"plt.text(15, 0.02, f'$P({np.round(X, 3)}) = $ {np.round(prob, 2)}', fontsize=18);"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [
"WJhmgDxsVHEO",
"5z2nOmnTrKxu",
"c1_c9ACB5Q_j",
"eAUshqfZd-_d",
"XMMnBa5iJUpD",
"Bl35Ww-5HNtN",
"dtrIR0AZhZla",
"tDQwSzWJeoz2"
],
"name": "Chapter 2: Special Discrete Random Variables.ipynb",
"provenance": []
},
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 1
}