|
| 1 | +{ |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "markdown", |
| 5 | + "metadata": {}, |
| 6 | + "source": [ |
| 7 | + "1. Compute the marginal distributions P(X) and P(Y)." |
| 8 | + ] |
| 9 | + }, |
| 10 | + { |
| 11 | + "cell_type": "code", |
| 12 | + "execution_count": 1, |
| 13 | + "metadata": {}, |
| 14 | + "outputs": [], |
| 15 | + "source": [ |
| 16 | + "import numpy as np\n", |
| 17 | + "import matplotlib.pyplot as plt" |
| 18 | + ] |
| 19 | + }, |
| 20 | + { |
| 21 | + "cell_type": "code", |
| 22 | + "execution_count": 2, |
| 23 | + "metadata": {}, |
| 24 | + "outputs": [ |
| 25 | + { |
| 26 | + "name": "stdout", |
| 27 | + "output_type": "stream", |
| 28 | + "text": [ |
| 29 | + "[[0.1 0.2 0.05 0.05 0.1 ]\n", |
| 30 | + " [0.15 0.05 0. 0.1 0.2 ]]\n" |
| 31 | + ] |
| 32 | + } |
| 33 | + ], |
| 34 | + "source": [ |
| 35 | + "# Build the matrix M which will hold our joint probability distribution, and print M\n", |
| 36 | + "M = np.asarray([[0.1,0.2,0.05,0.05,0.1],[0.15,0.05,0,0.1,0.2]])\n", |
| 37 | + "print(M)" |
| 38 | + ] |
| 39 | + }, |
| 40 | + { |
| 41 | + "cell_type": "code", |
| 42 | + "execution_count": 3, |
| 43 | + "metadata": {}, |
| 44 | + "outputs": [ |
| 45 | + { |
| 46 | + "name": "stdout", |
| 47 | + "output_type": "stream", |
| 48 | + "text": [ |
| 49 | + "The distribution P(X) is [0.5 0.5].\n", |
| 50 | + "The distribution P(Y) is [0.25 0.25 0.05 0.15 0.3 ].\n" |
| 51 | + ] |
| 52 | + } |
| 53 | + ], |
| 54 | + "source": [ |
| 55 | + "# Compute the marginal probabilities\n", |
| 56 | + "P_Y = np.sum(M,axis=0)\n", |
| 57 | + "P_X = np.sum(M,axis=1)\n", |
| 58 | + "print('The distribution P(X) is '+str(P_X)+'.')\n", |
| 59 | + "print('The distribution P(Y) is '+str(P_Y)+'.')" |
| 60 | + ] |
| 61 | + }, |
| 62 | + { |
| 63 | + "cell_type": "code", |
| 64 | + "execution_count": 4, |
| 65 | + "metadata": {}, |
| 66 | + "outputs": [ |
| 67 | + { |
| 68 | + "data": { |
| 69 | + "image/png": "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\n", |
| 70 | + "text/plain": [ |
| 71 | + "<Figure size 432x288 with 2 Axes>" |
| 72 | + ] |
| 73 | + }, |
| 74 | + "metadata": { |
| 75 | + "needs_background": "light" |
| 76 | + }, |
| 77 | + "output_type": "display_data" |
| 78 | + } |
| 79 | + ], |
| 80 | + "source": [ |
| 81 | + "# Create a bar plot to show the distribution P(Y).\n", |
| 82 | + "# We use a bar plot here instead of a line plot because the distribution is discrete.\n", |
| 83 | + "\n", |
| 84 | + "# Plot of the marginal distribution P(Y)\n", |
| 85 | + "plt.subplot(1, 2, 1) # layout to make 1 row, 2 columns of plots, and create to the 1st location.\n", |
| 86 | + "dom_Y = [1,2,3,4,5]\n", |
| 87 | + "plt.bar(dom_Y,P_Y)\n", |
| 88 | + "plt.title('Marginal Distribution P(Y)');\n", |
| 89 | + "plt.xlabel('Y');\n", |
| 90 | + "plt.ylabel('Probablity');\n", |
| 91 | + "\n", |
| 92 | + "# Plot of the marginal distribution P(X)\n", |
| 93 | + "plt.subplot(1, 2, 2) # layout to make 1 row, 2 columns of plots, and create to the 2nd location.\n", |
| 94 | + "dom_X = ['A','B']\n", |
| 95 | + "plt.bar(dom_X,P_X)\n", |
| 96 | + "plt.title('Marginal Distribution P(X)');\n", |
| 97 | + "plt.xlabel('X');\n", |
| 98 | + "plt.ylabel('Probablity');\n", |
| 99 | + "plt.tight_layout() # this cleans up the spacing for plots and labels." |
| 100 | + ] |
| 101 | + }, |
| 102 | + { |
| 103 | + "cell_type": "markdown", |
| 104 | + "metadata": {}, |
| 105 | + "source": [ |
| 106 | + "2. What is the value of the conditional probability P(X = A|Y = 2)? Compute the distribution P(X|Y=2)." |
| 107 | + ] |
| 108 | + }, |
| 109 | + { |
| 110 | + "cell_type": "code", |
| 111 | + "execution_count": 5, |
| 112 | + "metadata": {}, |
| 113 | + "outputs": [ |
| 114 | + { |
| 115 | + "name": "stdout", |
| 116 | + "output_type": "stream", |
| 117 | + "text": [ |
| 118 | + "P(X = A|Y = 2) = 0.8\n" |
| 119 | + ] |
| 120 | + } |
| 121 | + ], |
| 122 | + "source": [ |
| 123 | + "cond_prob = M[0,1]/P_Y[1]\n", |
| 124 | + "print('P(X = A|Y = 2) = '+str(cond_prob))" |
| 125 | + ] |
| 126 | + }, |
| 127 | + { |
| 128 | + "cell_type": "code", |
| 129 | + "execution_count": 6, |
| 130 | + "metadata": {}, |
| 131 | + "outputs": [ |
| 132 | + { |
| 133 | + "name": "stdout", |
| 134 | + "output_type": "stream", |
| 135 | + "text": [ |
| 136 | + "P(X|Y = 2) = [0.8 0.2]\n" |
| 137 | + ] |
| 138 | + } |
| 139 | + ], |
| 140 | + "source": [ |
| 141 | + "cond_prob_dist = M[:,1]/P_Y[1]\n", |
| 142 | + "print('P(X|Y = 2) = '+str(cond_prob_dist))" |
| 143 | + ] |
| 144 | + }, |
| 145 | + { |
| 146 | + "cell_type": "markdown", |
| 147 | + "metadata": {}, |
| 148 | + "source": [ |
| 149 | + "3. Are the variables X and Y independent? Why or why not?" |
| 150 | + ] |
| 151 | + }, |
| 152 | + { |
| 153 | + "cell_type": "code", |
| 154 | + "execution_count": 7, |
| 155 | + "metadata": {}, |
| 156 | + "outputs": [ |
| 157 | + { |
| 158 | + "name": "stdout", |
| 159 | + "output_type": "stream", |
| 160 | + "text": [ |
| 161 | + "The are not independent because P(X=A|Y=2) = 0.8 while P(X=A) = 0.5.\n" |
| 162 | + ] |
| 163 | + } |
| 164 | + ], |
| 165 | + "source": [ |
| 166 | + "print('The are not independent because P(X=A|Y=2) = 0.8 while P(X=A) = 0.5.')" |
| 167 | + ] |
| 168 | + } |
| 169 | + ], |
| 170 | + "metadata": { |
| 171 | + "kernelspec": { |
| 172 | + "display_name": "Python 3", |
| 173 | + "language": "python", |
| 174 | + "name": "python3" |
| 175 | + }, |
| 176 | + "language_info": { |
| 177 | + "codemirror_mode": { |
| 178 | + "name": "ipython", |
| 179 | + "version": 3 |
| 180 | + }, |
| 181 | + "file_extension": ".py", |
| 182 | + "mimetype": "text/x-python", |
| 183 | + "name": "python", |
| 184 | + "nbconvert_exporter": "python", |
| 185 | + "pygments_lexer": "ipython3", |
| 186 | + "version": "3.7.0" |
| 187 | + } |
| 188 | + }, |
| 189 | + "nbformat": 4, |
| 190 | + "nbformat_minor": 4 |
| 191 | +} |
0 commit comments