└── Conditional Independence properties.ipynb /Conditional Independence properties.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "id": "72cd8b54", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Conditional Independence Properties:\n", 14 | "1. Independence of X and Y given Z:\n", 15 | "False\n", 16 | "\n", 17 | "2. Independence of X and Z given Y:\n", 18 | "False\n" 19 | ] 20 | } 21 | ], 22 | "source": [ 23 | "import numpy as np\n", 24 | "\n", 25 | "# Define random variables X, Y, and Z\n", 26 | "X = np.random.randint(0, 2, size=100) # Binary random variable\n", 27 | "Y = np.random.randint(0, 2, size=100) # Binary random variable\n", 28 | "Z = np.random.randint(0, 2, size=100) # Binary random variable\n", 29 | "\n", 30 | "# Calculate joint probabilities\n", 31 | "joint_prob_XYZ = np.mean((X == 1) & (Y == 1) & (Z == 1)) # P(X=1, Y=1, Z=1)\n", 32 | "joint_prob_XY = np.mean((X == 1) & (Y == 1)) # P(X=1, Y=1)\n", 33 | "joint_prob_XZ = np.mean((X == 1) & (Z == 1)) # P(X=1, Z=1)\n", 34 | "joint_prob_YZ = np.mean((Y == 1) & (Z == 1)) # P(Y=1, Z=1)\n", 35 | "\n", 36 | "# Calculate conditional probabilities\n", 37 | "conditional_prob_X_given_YZ = joint_prob_XYZ / joint_prob_YZ # P(X=1 | Y=1, Z=1)\n", 38 | "conditional_prob_X_given_Y = joint_prob_XY / np.mean(Y == 1) # P(X=1 | Y=1)\n", 39 | "conditional_prob_X_given_Z = joint_prob_XZ / np.mean(Z == 1) # P(X=1 | Z=1)\n", 40 | "\n", 41 | "# Check for conditional independence properties\n", 42 | "print(\"Conditional Independence Properties:\")\n", 43 | "print(\"1. Independence of X and Y given Z:\")\n", 44 | "print(np.isclose(conditional_prob_X_given_YZ, conditional_prob_X_given_Y, atol=1e-6)) # Check if P(X|Y,Z) ~= P(X|Y)\n", 45 | "print()\n", 46 | "print(\"2. Independence of X and Z given Y:\")\n", 47 | "print(np.isclose(conditional_prob_X_given_YZ, conditional_prob_X_given_Z, atol=1e-6)) # Check if P(X|Y,Z) ~= P(X|Z)\n" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 5, 53 | "id": "d29c5d90", 54 | "metadata": {}, 55 | "outputs": [ 56 | { 57 | "data": { 58 | "image/png": "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\n", 59 | "text/plain": [ 60 | "
" 61 | ] 62 | }, 63 | "metadata": { 64 | "needs_background": "light" 65 | }, 66 | "output_type": "display_data" 67 | } 68 | ], 69 | "source": [ 70 | "import matplotlib.pyplot as plt\n", 71 | "\n", 72 | "# Plotting the conditional probabilities\n", 73 | "labels = ['P(X=1 | Y=1, Z=1)', 'P(X=1 | Y=1)', 'P(X=1 | Z=1)']\n", 74 | "probabilities = [conditional_prob_X_given_YZ, conditional_prob_X_given_Y, conditional_prob_X_given_Z]\n", 75 | "\n", 76 | "plt.bar(labels, probabilities)\n", 77 | "plt.ylabel('Probability')\n", 78 | "plt.title('Conditional Probabilities of X given Y and Z')\n", 79 | "plt.ylim(0, 1) # Setting y-axis limits to [0, 1]\n", 80 | "plt.grid(True)\n", 81 | "plt.show()\n" 82 | ] 83 | } 84 | ], 85 | "metadata": { 86 | "kernelspec": { 87 | "display_name": "Python 3 (ipykernel)", 88 | "language": "python", 89 | "name": "python3" 90 | }, 91 | "language_info": { 92 | "codemirror_mode": { 93 | "name": "ipython", 94 | "version": 3 95 | }, 96 | "file_extension": ".py", 97 | "mimetype": "text/x-python", 98 | "name": "python", 99 | "nbconvert_exporter": "python", 100 | "pygments_lexer": "ipython3", 101 | "version": "3.9.12" 102 | } 103 | }, 104 | "nbformat": 4, 105 | "nbformat_minor": 5 106 | } 107 | --------------------------------------------------------------------------------