{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Confounding Example: Finding causal effects from observed data\n", "\n", "Suppose you are given some data with treatment and outcome. Can you determine whether the treatment causes the outcome, or the correlation is purely due to another common cause?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os, sys\n", "sys.path.append(os.path.abspath(\"../../../\"))" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import math\n", "import dowhy\n", "from dowhy import CausalModel\n", "import dowhy.datasets, dowhy.plotter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's create a mystery dataset for which we need to determine whether there is a causal effect.\n", "\n", "Creating the dataset. It is generated from either one of two models:\n", "* **Model 1**: Treatment does cause outcome. \n", "* **Model 2**: Treatment does not cause outcome. All observed correlation is due to a common cause." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Treatment Outcome w0\n", "0 8.329680 16.546904 2.546634\n", "1 2.083811 4.096492 -3.995819\n", "2 6.138014 12.041800 0.041479\n", "3 8.874336 17.833621 2.988497\n", "4 5.282355 10.481077 -0.860686\n" ] } ], "source": [ "rvar = 1 if np.random.uniform() >0.5 else 0\n", "data_dict = dowhy.datasets.xy_dataset(10000, effect=rvar, sd_error=0.2) \n", "df = data_dict['df'] \n", "print(df[[\"Treatment\", \"Outcome\", \"w0\"]].head()) \n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No handles with labels found to put in legend.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAGTCAYAAAAiMsuiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzde3xU9Z0//tc7wyQEFMNFpUYQZCvdUjTRtOK6q67f39ZWq6Z4wSJetla7sl2xdtmNrVuxY1d2WVv3YtutrWAL24JWIxQVKVpRC+xiJ0ixokJRG46CQrgGEpLP748zhwxhLufyOdd5PR+PPJIwn3Pmw2TmvM/n9v6IUgpERESUfFVhV4CIiIiCwaBPRERUIRj0iYiIKgSDPhERUYVg0CciIqoQDPpEREQVYkDYFfBixIgRasyYMWFXg4iIKDCvvPLKB0qp490cG+ugP2bMGKxduzbsahAREQVGRN52eyy794mIiCoEgz4REVGFYNAnIiKqEAz6REREFYJBn4iIqEIw6BMREVUIBn0iIqIKwaBPRERUIRj0iYiIKgSDPhERkR8MAzj/fOC998KuyWEM+kRERH7IZICXXjK/R4QopcKug2tNTU2KufepkimlsGfPHuzevRv79+9HT0+P7WOrqqpQU1ODwYMHY8iQIaipqfGxpkQVxjCAU08FDhwAamuBzZuBkSO1nFpEXlFKNbk5NtYb7hBVMqUUtm3bhn379mHYsGEYOXIkUqkURMTWsb29vThw4AD27t2Lt99+GyNHjsSQIUMCqDlRBchkAOsm/NAh8/cHHwy3TmD3PlFs7dmzB/v27cMpp5yCuro6DBgwwFbABwARQSqVwuDBg3HiiSdi9OjReP/999HZ2elzrYkqgGEAc+cC3d3m793d5u8RGNtn0CeKqd27d2PYsGFIpVKezzVw4EAMHToUO3fu1FAzogqX38q3WK39kDHoE8XU/v37ccwxx2g733HHHYe9e/dqOx9RxVq1qq+Vb+nuBn7zm3Dqk4dBnyimenp6tLTyLQMGDHA0EZCIipg7t/C/P/JIsPUogEGfKMbsjuEHfS6iinbFFYX/ffLkYOtRAIM+ERGRTps3F/73TZuCrUcBDPpERERB0Dgc5xaDPhERkS5tbcUfGzo0uHoUwaBPRESky+c+V/yxAeHnw2PQJyIi0sEwgPb24o8zOQ8REVFCtLSEXYOyGPSJiIh0WLIk7BqUxaBPRESkQ29v6cfHjQumHiUw6BPFmM6tseO8zTZRJOzbV/rxYuv3A8SgTxRTqVRKa9rcQ4cOaU3rS1RxDh0q/XhNTTD1KIFBnyimBg0apHWDnF27dmndwIeoohhG+TIR2LqaQZ8opoYMGYIdO3Zoae0fOHAAO3bswNAIJA8hiqXrry9fhkv2iMitY489FoMHD8bbb7+Njo4OHDp0yPa4vFIKPT092LdvH95//3288847GDlyJGpra32uNVECGQbwq1+VLzdjhv91KSP89EBEYTAM4JprgIULgZEjw66NKyKCE044AXv27MHu3buxbds2R63+qqoq1NTUYPDgwTjllFNQE4HxRqJYymTslXvySX/rYQODPlWmlhZg5Urz+7x5YdfGNRHBkCFDMGTIkLCrQlS5VqywVy4C21eze58qj2EACxaYP8+fH4lxNiKKsXKz9gHg6qs5kY8oFC0tgNUN3tMTi9SZRBRhdtbft7b6Xw8bGPQpeQwDOP/8wi34tjbgJz858t/stPZLnZOIKpedpXoA0N3tbz1sYtCn5Mkfr7dYQfuKK44un9/aLxbcMxngpZfsT9ghospgZ6keEInEPAAgcU692dTUpNauXRt2NShKDAMYNaqv+/5XvwK+8Q1gyxbg/feLHzdiBLB9OzB9OvDf/w38zd8ADz7Yd85TTwUOHABqa82uvJjO+CcizexMzlu3Djj9dI1PKa8opZrcHGu7pS8itSLyeRH5gYi8IiIdItItIttFZIWITBeRsot8ReREEflXEXldRPaLyAci8oKI/LVIBKY2UjwZBjBpEvCJT/QFfAD49KeBNWtKB3zAnGDzq1+ZAb+3F/j+94GmJrPFn8n0baRx4ADnABCRqa3NXrmpU/2thwO2W/oishvAsWWKvQ7gMqXUm0XO0QRgKYATihz/DIBmpdRBO3ViS58Or7cfOxZ45BH956+rA3btAvI/J6kU8Mc/srVPVOnGjbM3iW/gQK0z9wNp6cMM+AcB/AzANQDGARgGoAHA9wEoAB8D8KyIHJXAW0RGAFgMM+B/CGAagI/kjsn1o+IzAP7TzX+EKpQ1fu9HwAeAjo4jAz5g9iTMmGH2LJxzDif3EVUiw7C/a14ElupZnAT9BwGcopSaqpRaqJTarJTaqZRap5SaDuDOXLkxAKYXOL4FZpDvBfA5pdQCpdR7SqmNSqmvwLxxAICbRGSiu/8OJZ5hmIH2nHPMbHr9Z+IH5cknzWGD1as5uY+oEtn93Eds50rbQV8p9RWlVKmB0fthtuAB4LP5D4hIGsCXcr8+qZRaXeD4uwF05+r0Zbv1ooSyZtGvW3fkbPpMxgy0q1eb3fphOZg3AvXww2ztE1WaVavslZsYrTastiV7SqlDAKyx/JP6PfwXAI7L/fxYkeO3A3gh9+tluupFMZXJAC++CPzZn5nfZ8wABg0yJ9hFTVcXcOaZDPxElWTu3PJlhgwBsln/6+KA7nX6J+a+7+7372fm/bymxPHWY6NycwCoErW1AT/4gTmWvn+/+X3RokiNix2ht9fsmTjjDAZ+okoxZUr5Mnv3+l8Ph7QFfRFpBDA292v/7vvxue+9AN4ucZo/FDiGKs20aUdPnouDbduAG25g5j6iSvBmwUVqR7KW+kaIzpb+nNx3BeCH/R6zWu07c8MAxWzL+3m4ropRjCxfDmzYEHYt3Hv2WXM1QSbD1L1ESWUY9homVdFLequlRiIyE8D/y/36faXU+n5FBue+Hyhzqvz+26OW/eWe6xYRWSsia7dv3+68shRdhgF89rPly8XBww8Dd97J1L1ESWT3Mz1smL/1cMFz0BeRiwDcl/t1PYC/93rOUpRSP1RKNSmlmo4//ng/n4qC1NZ2ZPrcuDtwwMwd0NtrTvh57z22/ImSYuVKe+VOPtnferjgKeiLyFkAHgWQAvAugEuUUoVmW+3LfR9Y5pT5aXyjNwOC9LMCYXNzcgJ+f4cOmS0DbtpDlAxjxtgrF7GZ+4CHoC8ipwF4Gmamvu0APq2UerdI8Q9y3+tEZECJ0+Y33T8sWorip1gr9+abzbvmt0vN74y57m5zqeHDD7PlT5QETz1VvkxEt5JxFfRFZBSA5TCD9G4An1FKvV7ikI257ykAo0uUG5v388aipSh+CrVy29qApUvDq1OQlOpL6NPZaeYdYMufKH6WL7c3ie/WW/2viwuOg76IHA8z4I+GOfHuUqXUb8sclv/42SXKWY+9q5T6oEQ5ihPDMFu3+a1cALj88nDrFaZFiwq/JkQUbVddZa/cb37jbz1cchT0RWQIgGUw19B3A7hSKWVnRsOLAHblfr6yyLlHADg/9+tiJ/WiiGtp6Wvl9vSYLdu2NuCdd8KtV9j6vyZEFG2GYe66aUcEx/MBB0FfRAYCWAKgEWaSneuUUjYGNgClVDeAH+V+vVxEPlWg2CwA1TDX+f+33XpRxBkGsGBBX3dYVxfwve8Bn/xkuPWKgvzXhK19ouhrabFXbuhQf+vhga2gLyIpAAsBnJf7p78HsFREjinyNajAaWYDMGCO6y8VkakicqKIfFRE/gPA3+bK/ajAOn+Kq5aWwrPyD5XK0VSB2Nonir4nn7RXLmI76+UrNZM+3ygcuQnOd3JfxbwNc4vdw5RSH4jIZQCWAjgBwIICxz0D4O9s1oniYMmSsGsQD11dkR0DJKKcA+Xyy+VEcH2+JdAcgUqptQBOB/BvAN6AORFwB8wx/y8CuFgpdbD4GShWDAPY3X/vJTrKihVmV39ExwCJKKe7u3yZ6dMj/Vm21dJXSm0BoGXRoVLqfQAzc1+UVIYBNDQkN+GOTldeCezYEXYtiKic6uryrf2I99hFbzcASoZMxtx1LmpEzFZ1/6+GhvDqtHMncPrpwDnncDIfUZTZ6d6PcCsfYNAnP1jr8qOioaEvuBfb6jKbLXwzMDygzR7XrwdWrzY36SGi6DGM8mVuvNH3anjFoE/65a/LD1ptbd+2l9aXlzvvUaP01c2OefPY2ieKohkzypexO7s/RAz6pFf/dflB0730zeoBmDBB3znLYWufKHqeeKJ8mQgv1bMw6JNexdbl+6FQ17sfS98MA3jtNb3nLGXePGDdOnOMn+P8ROEzDHu5RSK8VM9id50+UXnLlwM/+Ulwz7d/v/lhHDnS3+fJZIB02ryhCMo555gb81jP/+CDwT03ER3p5pvLl6mpifwkPoAtfdLFMIDPfCbY5wwqi92qVcEGfKAv4APmlrxs7ROFx85uoDfd5H89NGDQJz2uv774zHi/BJXFrv/M/q1bgYED/X9eS1cXU/QSheXnP7dX7oUX/K2HJgz65J1hAL/6lb/PUWhWflhZ7DKZYG9wenvZ2icKy3XX2St3/vnly0QAgz55N2WK/88RpQ1pinX3NzT4l+SHrX2i4NmdwAdEPhOfhRP5yJu2NuDFF/1/nihtSFOud6Gx0XxddOrtjc7/n6hS2JnAV1UVq3TjbOmTe4ZhzjL3m5VRLwYzYwGY9fRjXf8jj+g/JxEVZhj2JvD19sZq6I1Bn9wxDDNfvN2tJp3IT5sbp2Cf77zz9J/zssvKlyEiPW67zX7Zlhb/6qEZgz6509ICfPCB3nNWVUV+W0rbVq3Sf8633wZefVX/eYnoaIsX2y9rp0cgIhj0yTnDAObP13/eJI1bF9rAR8cyv099CjjzTGbqI/KTYTjLzRGDTHwWBn1yrqVF35K1AQPM1n2cu/Lt6uz0PtZ/8KD5Gq1ezdn8RH5x0l0/YUKsrlsM+mSfYQBnnaU31e6hQ8lp3dtx1ln6zsW1+0T+WLLEftlNm/yrhw8Y9Mm+TAb47W/1njOVitVdsifWDoS6HDjAHfmI/FBlMzSuWHFkyuwYYNAnewzDbFnqNnGi/nNGVSajfz3vvHmc3Eekm91NvK680t96+IBBn+zJZPRuOpOkmfp2+TGjHwCuusqf8xJVKrtBv6PD33r4gEGfijMMM5/0unVmK18pfedO0kx9u/rP6L/1VvvdiKW88QbH9ol0WrGifBnDCH6TMQ0Y9Km4TAZ46SXg2mvNWeNeDRwY/6Q7Oq1cqe+iwbF9Ij3sptCO6eoZBn0qzDCAuXPNoLRhg7dzWUvyYjbhxXfnnQdUV+s5109/ytY+kQ5XXGGvXEx7Khn0qTCdk85i+uHwXbHd+tzo6WFrn8grwwA2by5frqEhtj2VDPp0NKuV392t53wx/XD4Ln+MX8cGPfPmmXkA2OIncs4w7K0mivkyYwZ9OprOVr4Ig5Adujbo+e1vY7X5B1FktLQAH35Yvty4cf7XxUcM+nS0Vav0tfLT6dhOeAmUzuV8HN8ncsbJfiLptL918RmDPh1t7lx95+rq4pi+Hfld/Vu3AjU17s/V2wt8+cv66kaUdJmM/ZU0r70W65tqBn06UlubuYubVw0NXJrnVibjfYnk4sWxvjARBcZpttEBA2Lde8mgT0eaMsVbEp4RIxjovdLV1c/WPlF5mYyz4czu7lj3XjLoU5/ly83sbl7EaF/pyMrv6r/1VvfnWbpUX52IksppkqwYL9cDGPQpn5cc7la2vRh/GCLJS6u/p4eb8RCVc9559tNhJ2C/EAZ9Mi1fDuza5f54Ztvzx1NPeTt+6lQ99SBKovzMo3bEuFvfwqBPpilTwq4BFeJ1wtCbb+qpB1ESOc1J8vTT/tUlIAz6ZN7t7tzp7RycKe4Pr5P6vCz9I0o6pzlJYjxr38KgT3reyAn4MESS10l9e/YAzz2nv15ESeB0+CwB3fsDwq4ARcCyZd7PkYAPQ+StXOnuuM9/3tt8DaKksttYqakBDhzwty4BYUu/0hkGsGWLt3PEfAlLbJx3nrmXgVO7dwOPPgqcfz6HYYgsTpLy3HSTv3UJEIN+pZsxw9ka1f4Y8IOzapX7xElTpwIvvcRhGCJLJmN/a+sE9WQy6Fey5cvNFqAb48dzXX7QnnrKzIfgxqFD5s3d3Lls7RMBzm6iE3SdY9CvVIYBfPaz7o9/6y19dSF7nGwKUkxPD1v7RID9QJ6wFTAM+pVqyhRn61P7mzhRX13InlWr7HdHFtPVxdY+EQD8/Of2yiVoPB9g0K9MhgG8+KL74zmOHw5r+Z6XfPyA2dXP1j5Vuuuus1cuQeP5AIN+ZfKSfW/gQAb8sHlN2NPdDbzwgp66EMVRW5t581tOKpW46x2DfqXx0sq/4Qbm2I8CHS3+T35SX32I4uaKK+yVS+AwJoN+pbn5ZvfHcqvWaPHS4n/kEY7rU2UyDGDzZntlE9bKBxwEfTH9qYjcICIPisj/ichBEVEiUjZVkYjMy5Ut9/X33v5LVJKXXdtOPllfPcg7q8XvZnaxUsCdd+qvE1HUtbTYKzdsmL/1CImTlv4pAF4DMA/AdABNAKp9qBP5pa3NXXKXqiquyY+yL37R/n7g+djap0pjGMCCBfbKusl+GQNuu/f/COAJAG4Gh18CcGyJr393WScqx+44Vn9Dh+qtB+m1apW79ftK2W/1ECVBS4v9pcqjRvlbl5A4CfofAmgG8BGl1Cil1GQAbrbv6lFK7S3x5WCfQ7LNyThWfyNH6q0L6ZXNmsso3XjySb11IYqyJUvslVuxIrE9m7aDvlJqj1LqSaUU+wPjyO0Evupqc6MWijZrfN+pjg528VNlMAxg5057Za+80t+6hIiz9yuBYbifed/VlbjkFIk2fLjzY2bM4A58lHxOhrJ27kzs5yG0oC8iKRFJhfX8FeW229wdl0qZNwwJ7eZKJDfjkIsWAStXcjY/JdsTT9gvW12d2KyVYQT9iSKyCUA3gG4ReV9EnhCRi0OoS2VYvNjdcdycJX68jO//9KeJbd1QhTMMYM8e++UT3MMZRtAfBuBUAJL7OgHmBMGlIvKYiNSGUKfkWr7c2yYtCX3jJ5rbwN/Tw9Y+JZOTrv3p0xO9RDnIoP8egNkALgAwGkANgI8AmApz/T8AXAEzDwDpctVVzo+x3vQJfuMnntu/G1v7lEROVqkkvKETWNBXSrUope5USr2glHpXKdWllHpPKfUzAJ8E8HKu6NUickGx84jILSKyVkTWbt++PYiqx5dhALt2OT+Om7HEn2G4O46tfUqi/fvtl014QycSs/eVUvsB5K8pm1qi7A+VUk1Kqabjjz/e/8rFlWG46+JNp7lELwm8JN2xu5aZKC66mf7FEomgDwBKqd8DeCv3q8uZSHTYjBnAtm3Oj+vuBubOZRdv3HnZHCmhmcioQrnt9UqoyAT9HCtK1YVai7gzDOCxx9wfz1n78ec2cI8bl/juTaowTq5ltbWJb/BELehb+V47Qq1F3LW0uMvOZknwcpWKkc0CEyY4P27TJuDVV/XXhygsK1bYL1sBDZ7IBH0RmQhzKR8AsKnhlpNdpAody1n7ybFpk7vjzjgDeM7NthpEEZRO2y9bAQ2eQIK+iIwslX1PRI4B8FDeP7mMWuRoF6n+En6HW3E6O80buFtvdX7s5Mn660MUtLY2YMMGe2UbGiqiwTPASWER+TiAIXn/dHLfQzKpX/GsUupg7udrAHxFRH4K4AUAbwLYB2A4zHX7LQD+JFd2vlJqpZN6UR4vM68TfodbsVa6+Djt2mW29i+8UH99iIIybZq9coZRMbuJOgr6AL4HoNB6rmoAq/r921gAW/J+HwdgVpnzzwXwNw7rRBa36/JvuAGYN097dSgizjsP+P3vgd5eZ8ddeSWwY4c/dSIKwptv2is3YwawcKG/dYkIp0HfrScApACcA2ACgBEwZ+jvB/AuzMQ8P1ZK/W9A9UmmlhbnF3bA2/Iuir5Vq9y9L3buBP70T4Hnn6+YVhAlTE2NvTTkTjL2xZyjoK+UusDNkyil3gZwv5tjySbDMFOounHyyeXLUHzlj1HW1gIHDtg/9vXXzbkeDz6ov15EfjEM4POft7/Jjoi/9YmQyMzeJ4/cLNM77riKmLhCeTZvdn7Mww8nfu0yJUwmA6xZY6/shAnmpNcKwaCfBIYBzJ/v/DgnLT5KBjcrNLq6uLKD4sMwzKyidlVY2nEG/SRwO5ZfQV1alLOq/3xbG3p72dqn+MhknF0PK2zVEoN+EriZhFJTU1FdWpSTzQLXX+/8OLb2KQ6sVr6dyXuAuTa/woY3GfTjzjCA3budH8dWfuVys1qjt7fiWkQUQ05a+el0xQV8gEE//txM4Bs+nK38SuZmM55LL63ICyTFzKpV9lv5FbrdLoN+3LlptXHr1MqWzZqpeascfPyXLOGYPkXfU0/ZL1uhvZ0M+nE3fLjz8myxkZuEPS0t/tSFSJcpU+yXranxrx4RxqAfZ4YBbNni7Bi28gnoa+07MX8+W/sUXYYBvPiivbJVVRU7xMmgH2e33WZ//EqEiXjoSE6X7/X0sLVP0XXLLfbLDh3qXz0ijkE/rgwDeOwx++XdrOOnZMtmgdNOc3bM4sX+1IXIC8MAfvlL++WdDosmCIN+XN12m7Py7JalQtJpZ+V37gRefdWfuhC55aSVD1TsJD6AQT+e2tqctfIBJlahwjZtcn7M1Kn660HkhZNZ+wDw1lv+1CMGGPTjaNo058cwsQoV0tlpzvVwMqlvwwa29ik6DMP58OXEif7UJQYcba1LEWAY5kXXroEDK3aWKjngdFLf1KnA737nT12InHAyuTSVAg4d8q8uMcCWftw47ab/wx/8qQclSzYLbN1qv/xrr3GeCEXDkiX2y1ZwC9/CoB8nhgH8+MfOjuFYPtnl5L2iFN9bFD9cssygHyuZjP11+RaO5ZNdTrv4V6zwpx5EdjndcIy9Uwz6sbJypbPyIryzJfuy2YpNTUoxlcmYSaOclK9wDPpxYRjAjh3Ojqmu9qculEyG4awn6Y03/KsLkR1Oe5vY88mgHxstLeZF2YmbbvKnLpRMmYyzZD1KsbuUwtXRYa9cQwPTkOcw6MeBYQALFjg/jne15ISTvcgtM2b4UxeictragG3b7JV9+ml/6xIjDPpx0NLibNwKAG64gXe15Ew2a7aInFi0iK19CscVV9gvy42iDmPQj7q2NuAnP3F+3NKl+utCyedmy11eUClobW3A5s32y/N6eBiDftS5SbkLACefrLceVDmcLt2bP5+tfQqW0+sir4eHMehHmWGYmc+c4oQV8iKbNd9DdvX0sLVPwXGainzCBF4P8zDoR5nT2dSA+QYn8srpSpHWVn/qQdSfk7X2AwYA55/vX11iiEE/qgwDmDvX+WxqvsFJB6dJTPbt86ceRP0tW2a/7KFDXMXUD4N+VGUyzreLBPgGJz2cjusfOsTtdikYdpfpAeYuo+zaPwKDflS5WTMN8A1OerhZvjd5sj91IbIsXw7s3WuvLLcVL4hBP6qyWeDUU8OuBVUya0Lf9dfbK79pE2fxk7+crM3ntuIFMehHlWE4W4cKcLMU8oeTNc6cxU9+aWsD9uyxVzad5uY6RTDoR9Vttzk/hrn2yQ+jRtkvu3ixf/Wgyuakld/dzflNRTDoR5FhAI895vw4vsnJD089Zb/szp2c0Ef6Oe355Nr8ogaEXQEqwGkXaU0NcOCAP3UhymSAqir7q0kmTTIv0CNH+lsvqhxON3bi0uWi2NKPoiVLnJUX8aceRIC5ksTJ8tHOTu6+R/q46fmMQK9na7Yd585+DmNbluLc2c+hNdsedpUAMOhHj2HY3yMaMJdVcVkK+cmaxe+ku5S775EuLS3O0kJHIA15a7YddyxqQ3tHJxSA9o5O3LGoLRKBn0E/apy+wblPNAXF6SYnbO2TF4ZhDhXNn+/suAjcbP79o+vQ2+8y3quAf/xF+PNdGPSj5vHHnZXnshQKyqZNzsqztU9eZDLAmjXOM5OGfE28q3U9DvWP+DkHD7nIsqoZg36UGIb9bFOWCIxdUYXo7ASGDnV2DFv75Ia194gbIV4TW7PtWLD6ndCe3w4G/Si57jpn5WtqQh+7IiqJu++RG272HqmuBqZPD+2a2Jptx9cWrYODwdlQMOhHhWEAK1Y4O+aaa/ypC1ExVQ4vGV1dXLdPzrjdYbSrK7RWfmu2HXc+vh49TuZjhYRBPyrcpC91kh6VSAcn2fksV12lvx6UXJkM0NPj/Lhhw0Jr5c9ZthGd3S7qHAIG/SgwDOczVAHg5JP114WolGwW2LrV2TFvvMEJfWTfqlVmGl2nQsxXsrUjPsumGfSjwM34lWFwPJ/C4WZ2NFeZkF1O0j7nc9MLpclJdbWhPbdTDPphMwzg4YedH8eLqGtRzZQVG6tWOT/mhRf014OSyelmYxMmhJqQpzXbjvd3xycNOoN+2DIZ4OBB58dxqZ4r1oSb/ExZdz6+noHfiWwWuPVWZ8dMmOBPXShZ3KTcdZo/QqPWbDu+9ui6ouvyo8j2hjsiIgA+BuBTeV+nA6gGcFApNdDmeU4E8DUAlwEYDWA/gA0A5gGYp1QMpj/q9NxzzsrfcAMwb54vVYm71mw75izbiK0dnTiprhYzLxqP5sb6I8oUmnDT2d2DOcs2Hn681PGU47S1v2gR8O//zk14qDQ3W4qHmIZ8zrKN6IlRwAcAsRtjRWQMgD8UedhW0BeRJgBLAZxQpMgzAJqVUraavk1NTWrt2rV2ikbXJz4BbNhgv/yIEcD27f7VJ4Zas+2YtXgDOjoLT/6pzwvgY1qKr3ioTacKzsCt5w1AYY2NQFub/fJXXw0sXOhffSj+Bg501vM5YQLwu9/5V58yxrYsdbwuf8vsSzw/r4i8opRqcnWsy6D/RwD/B2AEgL+AjaAvIiMAvArgIwA+BDADwAoAxwH4OwB/myv6kFLqFjt1in3QNwygvt5Zrv2GBk7gy2nNtuOeJRuwc7+Lmb4e1NWmMeuyCbwJAMyb0A8/tF9+xQrgwgv9qw/Fl5vr4cCBobb0G7/1rOPrT9hB33b3PsxA3QxgjVLqvdwTz4IZ9O1ogRnwe3h9Y4oAACAASURBVAF8Tim1Ovfv7wH4iohUAbgVwE0i8p9KqfUO6hZPmQyQTttLQpFKAYcO+V+nCOjfTf+XHzsez7++He0dnUiJoEcpVAmO2tAiKB2d3bh9YRtmLd7A4D9qlLOg/1d/BbS3s5ufjuZ0cnLIAR8A9h4ItsGhg+2gr5TaA+BJN08iImkAX8r9+mRewM93d65MGsCXAXzFzXPFysqV9rNO9fSYa50TfrFszbZj5qPr0J2L6O0dnZifl8vayngVhWG0js5u3LGwDWvf3oHnX9+OrR2dOK42je6eXuzrMocJEt8rkM2aWfrsts56e818/Ozmp/5WrrT/Pgo54FtDit0OV1oPrk75UyEHgpq9/xcwu/EBoODUTKXUdgDWup7LgqhU6M47z37Z6upEL9Nrzbaj4Z5ncfvCtsMBPw56Acxf/c7h1QAdnd2HAz5yv898dF1yVwe0tTnrjgW4+x4V9pGP2C/705/6V48yrIZJsTlEpXz78xN9qJEzQQX9M/N+XlOinPXYqNwcgORyuj4/xLzSfvPyIYqD7l51eHVA4kyb5u447r5H+QwD+NWv7JefOtW/upQxZ9lGVw2TaZNGR6LHz8mYvhfjc997Abxdolz+6oDxAD7wrUZhc7I+v7ra3Vr+iMkfqz+uNo2uQz3Y77R/LKbaOzpx7uznkrcKwO0aaS7hI8AM9m42DnOTpleTdhcpd6dNGo17m8Nv5QPBtfStVvtOpVSp2Wjb8n4e7mN9wuW0lZ+ACXz9k+J0dHZXTMC3tHd04vaFbbirNUFzVDs7ze59p/n4gUQPV5FNmQzw4ovmeL4TNTX+1KcMt8N0UQn4QHBBf3Due7lchfm3UMcUKiAit4jIWhFZuz2u69UzGWfbRqbT/tUlANY+03HZhcpv81e/gzEtS5MV/N0EcCfduZQ81ha6bvKx3XST/vrY8PXHnW8TPXRQtK7fQXXva6OU+iGAHwLmOv2Qq+OOk1mqQKi7R7nRvxt/94HuSMy2j5r5q9/B/NXvJCP5j5t8/AkYsiIP3Gw0ZglpfpOb3sm7L41WCuqgWvr7ct/LZe3L36por091Cd9ZZzkrH/JaVCesSXn53fgM+KW1d3TGf4Z/NmveyA4dav+Yt98Gmpo4k78SWUOcTno8ATM5WYib6zglQORu5oMK+taEvDoRKdW7cHzezw4yfsTM0uKpYI/S0OBfPXxgrl1llHequ1dh1mIH6ZijqsrhJeWVVzi2X4kyGeeT8YYPD3UnvcZvPev4uO9Oid71O6igb61XSsHcZKeYsQWOSRbDAPbtK18OMGftx+SO1pLUZXdB6OjsjndrH3C3p/nDD7O1X2lWrnTete/mvaWBNQnZabrdB6Y0RK6VDwQX9H+b9/PZJcpZj72rlErmcr1MxsyuZ4fdchFg7VFP3ty+sA0TvvlMfIN/Nuu8d+rAAaClxZ/6UDQ5HeIcODC0BlChnTntiGLAB4IL+i8C2JX7+cpCBXLJeM7P/bo4iEoFzpqtardba2J0lnmUkr8cj7zb19WDmY/FeIz/qaecH/PII8CrzmdGUwwZhvOMeiHNa2rNtru6rkV57nUgQV8p1Q3gR7lfLxeRTxUoNgtANQAF4L+DqFfgMhn7a+4nTIhN177bO2EqrrtH4faFbRjTshQN9zwbrxuATMYcmnLqEu+7j1EMZDLOVi+NH1++jA+sScluXHt2qVHscDlasiciHwcwJO+fTu57SCb1K55VSuWvyZkNYCrMnfaWioi1te4QHLm17o8Su8PeqlX2g/4nP+lvXTS4q3U9frbm3cOb4JA/rF39/vEXr6I2ncKuzm6cFOVlfqtWOZ+VDQB//GNFbCpV8VascFY+pOuL20nJg9JVkUrG05/TdfrfQ18XfL5qAP0X6o4FsMX6RSn1gYhcBmApgBMALChwnmdg3gAk09y5QGOjvbJLlvhbF5esNfjsyg/ewUO9OHjInPzU3tGJOx83740jF/itHio3fZxf+ALw/PN660PR4jTDqNtUzx60ZttdT0rujHim0aDG9AEASqm1AE4H8G8A3oCZgW8HzDH/LwK4uF/vQLJMmWK/bEgzVUvJX4MfN3W16SO2taxNVyEd6Ltfv87unuRt5PPrX3Mmf5ItXw5s3uzsmBDmNt2zxP3y2ZPqassXCpGjlr5S6gKvT6iUeh/AzNxX5TAM4I037JW94QZg3jxfq+PG1x9/NdJr8Otq09jXdQjdPX11rE2ncN/kiUVbw/2zB4oAO/d3Q2BOLom6yN6AGYY54/pAuczbBdx4I/DMM9qrRCGxNtVZuBC44gpnx6ZSgc9tuqvV+fI8S206hZkXhTMHwa7YpeGNLSdLkpwk7wlIa7Y99A1y6vKCcr78wJ4fxO2Mezc31hd8vNh5xrYsjdzNwF9959dYfscFYVfjSF5SrC5bprcuFK5MBnjpJeCWW4A9e5wdG3ArvzXbjgWr33F17NBBadx96YToDbf1IyrGk7CamprU2rVrw66GPXV1wK5d5csB5jrniM3cb7jn2VAT76RTgjlXnuEqsOt07uznItu6jlQO/8ZGoK3N/fGGwQl9SWAYwKmnuuvxAQKfxNf4rWddtfIHpavwWuazPtSoMBF5RSnV5OZYtvSDstfmVgI33mhO+IsIK8CGGfD730EXa50HYeZF43Hn4+sjuUQxUpP7rJtWt8H/lluAxclM11FRvPT4TAh2o5rWbLvrbv1/nny65tr4h0E/CIZhP7teRGbtt2bbcc+SDa4/BF6VG4sPi1WfUisYatMpXHFWPX72v++iJ+A5EJ3dPZi1eEN0Xrds1lkvl+WXv/SnPhQcKxmZm+Wb1dXA+YUWivnHy6TYyHzebGDQD8Jtt9kvG/Ks/bCC/bnjhmHLh52hdNk71b+nodhwQ9Mpw0JZ3tjR2Y0xLUuj0d1vGM4DPmB26z73HHDhhfrrRMHw0srv6gp8+1y3n9PamC0DYtAPgt3We8hj+daSvCBn6NfVpjHrsuhPfiml2HBDoX+/q3U9Fqx5J5Chykh093vJqX/55c4nflF0uE3SFMJ10EvGy/ti1LUPcCKf/wwDOOmk8uWGDQM+DHc34Y//09OBztCvq02j7e5PB/Z8UdKabcftCz1MdHOgvq4WL7eE1GIeMcLb+5oT+uJt3Djn6/IDjkl3ta7HfJcz9gFgy+zg00d7mcgXr36JOLK7V3iIN1+t2XZM+OYzgQZ8ATDrsmAn6kRJc2N9YJtybA1ztYHX4aovf1lPPSh4huE84Ac8ec9rwB86KK2xNsFg0Peb3TX3qVT5Mj5ozbZj5mPrsK8r2Nno104aHesufR2C2pQj1Axh2ax5Q2t93Xqrs+MXL2aGvri65RbnxwSccnfBGvcBP50S3H1p/BouDPp+s3vBOvFEf+tRxJxlG4/IYKfbueOGoa6272546KA0HpjSEOkNKYJyb/NETJs0Gimfm/yH7K4cCcKq/lt02OBlXgAFzzDMmfduVmD84Q/661PEXa3rXXewpqQvb0jccEzfT3bH8wFg+nTgwQf9rU8BY1r8y/73wJSGWH4owtKabccdi9rgxzzKlAC9CtFYGeH0JkcEOOYYM6vb6fGaNFUR8tPsjhxpXsu+/33n50mngZtvDuQ66HVOTdjXNo7pR5WTFkqAy1Pual2PcXc+5WvAn8bue8eaG+vxnasbjtgYSJceZe4lYM3o9zJb2bOBA52VV8qcxX/OOezqjyIrzW4m07c2343u7sCug7MWu99QJ+7XNrb0/WIYQH29vQl6Af4Nrn1oFV7etMPX55g2aTS77z3ye3a/APhumK0Vt0MaV19ttigpGvLT7NbWmn+fBQucb58LmDeDnf5OOvW6NXhUrm1s6UdRJmMvmFdX+1+XnLta1/sW8AXmB2LL7Esi8aGIu+bGekybNBp+jfYrADMfXRdui9+NRYvY2o+S/AQ8PT3A/PnuAn5NTSAB/87H13tKlpWEaxuDvl9WrLBXLqBJVl52jypn6KA0/sBgr929zRPx3SkNR0yE1Km7V+GrC9vCCfxelmbNmKGvHuRe/zS7XV3ur2c33aSvXkXMWbbR054Zfn0Og8ag7xe7d7vV1YG0XOYs2+jLlrCpqnguW4mL5sZ6tN39aTwwpQH1Piy9UwBuX9iGMS1Lce7s54K7ATjvPPfHLlrE8f0o8JJmt78XXtBznhK8psNOSl4RBn0/OElK0dNjP4GPB37kf68ZUIX7r4rnspW4aW6sx8stF/qa/SvQSX5ulu7lW706kM8NleA2zW5/IWyu41TcJ+/lY9D3g5OLUQAbS9zVul7r+apgLlnZeO9nE/NBiBM/WvyWzu4eT7uN2ZbNAtdf7+0cc+eytR+m/MRLV17p/jwBXAO93MieO25YooYuGfT98Oyz5cucdlrfB8bHzSW8ppns79xxw7B59iUM9iGaedF41Kb9y+AYWNpeu9kqiwmol4zKMAzgscfcHx/ABjv3LHG3RC9dBSy4+RzNtQkXg74ftm0rX+att3yvRmu2XVvAH5SuwgNTGhL3AYij5sZ63Dd5om8tfgUEM77vNS9/Vxdb+1HgZOtwS0NDII0ei9utwudc1aC5JuHj1rq6LV9ubzvQoUN9q4LXtaiFvJb5rLZzkXf52/b6kXshkG15rYt9YyPQ5jInwaFDZms/hGyWBPPv5rSVX1MT6Na5bm9ezx03LJE9mmzp63bVVfbKeW3lFGDtlnf7wjatAX9Qmm+TKFtw8zn46AmDtZ83sPH9p55yf2yAWdyogClTnB/zhS/or0cRrdl23OEyyVVSezV5NdfJMIBdu8qXW7dO+52un7vl/fNk5juPuuV3XODLsj4/Vn0cxeu4/COP6KkH2WcYwKRJwBtvOD/2ySf116eIWYs3wM2iQj8ny4aNQV8nu7n2p07V/tR+7JZnZdlLYhdXEuUv69OVyc/nDQBNXpfvcc1+8DIZYM2asGtRVkenu7H8mReN11yT6GDQ18UwzBSUdrz5pvan1z3jOiWC73IL3Ni6dtJoLedRCmi451l/J/XlL/0aPtz58fv3A1/+sv56UWFtbe520bOk/Ft5YmnNtmOsyw3FBlenEt3QYdDXpaXFfnaqwXrHX/24IPcqleg3ftLd2zxRW2u/o7M7mKQ9hgHs2+fu2MWL2doPyrRp3o4/+WQ99Sji2odW4faFba4zkH7788lu6DDo6+JkzXFHh7anbc22Y+aj67Sn2D0pwWNaleK7U/QtNwpkUp/XtK433mjeOJx/Pm8AdLNe14ULgQ0ut6W1lun5nJfEy0qW2nRV4hs7DPq6jBxpr5yIvnzVyI3l9+oN+bXpVKLHtCpFc2M9ajWuvPB9Up/XtK7LlgF33gm8+CJw5pkM/Dq1tAArVwLXXefu+IEDfV+mpyMR2YFufdfmqGLQ18VO0D/tNK0BvzXbrv1CXF9Xi/smT0z83W6luG/y6UhX6ZuN5/vY/q23ettu+qc/NVuThsHd+HQxDGDBAvPnbhcT40aM8H3bXF2ZRyuhh5PJeXSxs5VuWt/WjK3Zdnzt0XVazlVfV4uZF41noE8g62/6tUXr0KO89wh944n1/r5PvLb282+qFy0C/v3f7ffCUWEzZnjbAnzIEH11KeJna971fI5K6eFkS18Hu9nENm3S9pT/+ItX0eOxW3/ooDS2zL4EL7dcyICfYM2N9ejVEPABYF9XTzAz+Rs0zUdga9+btjbg0Ue9nWPnTj11KcHrDW1KpGJ6OBn0dbCblUpDF1drth2N33oWBw95Hya4+9Jk7A9N5enstrxjYZv/M/l1jf8uWsSxfbesBDxeaZy4XIiOXUTvv7pytghn0NfBh3X3hVgz9d1uHpFPxMec6hQ5Onfm6wVwu8vUpo7o2p/CbtIsOlJLC3DwoLdzTJ+udR5TIQvWeBvLr7QEZAz6OthJW6YhIcWsxRu0zdS/9mw9yVsoHvzYme+vvvNrbecqSFcL0esWvpXISbKxUnzeF6E12w4vPft1temKS0DGoO/V8uX27mQ93u3e1bredUrJ/gZXpyrujU59aXp1Bf43t+1D47d8zNanq4V44ol6zlMpDAP4xCe8v/4ivi7Ts5LwuJWqEsy6rPKGOBn0vbK7q97Wra6f4tqHVmlZjmLZ78OmPBQfOrv6d+7vxszH1vkT+A1Dz3kmVN6F3ZMZM4AdHrdqTqV87dbXsZ30/VdVzjh+PgZ9L9ra7O2qB7jaSaw1246Ge57Vvld6JaxFpeJ0d/V39yjcs8RllrZSvO6+Z1m0CHj1VWbrs8MwvM/WB8xcCz68zq3Zdpw7+znP18QHpjRUZMAHGPS9cbKXtMOxLWurXF1d+pZKWYtKpVld/Q9MadDS6tcxufQoXnffy3f11eZNxEsv6buZSKJbbtFznp4e7a9za7Yddz6+3nNCsqGD0hUb8AEGfW/srrtvaHA8tvX1x1/VtlXu4OoUBMy2R0ezWv11td4TR2nv4s/ffc/r2PDGjcBDD5ldzj/4gdnyJ5NhmNsTn3468Mtf6jlnV5f2SXxzlm1EZ7e3ocl0lVT8UmVm5PNiyBB7iSeeftrRaVuz7divIQd0XW0asy6bwCBPJTU31qO5sd7zOOkdi9oOn087rzu7AcChQ+b33l5g6lTgd7/zfs44MwzgmmvMiY6rV+s5ZyrV9zpr5rWFX5uuwn2TT6/466EoTZm6wtDU1KTWrl0bzpMbBnDSSfbKTp8OPPig7VOfO/s5LTn1t8y+xPM5qLL86T89jU4PN5xVAgwZmMauzm6cpCu9s2EA9fXwtDarkHXrzNZtpZo+3ez10Pm6Tpig/WaqNduOOcs2er4mJul6KCKvKKWa3BzL7n23nIxXOejm0rWJztBB+vL8U+W4b/Lpnsb4exXQ0dkNBbNldufj6713+2cyWvetOOzqq/WfMy4MA5g7V2/Ar6oyJ0pq1Jptxx2L2jxfE6dNYl4SC4O+W8uWlS+TSjkaj7Qy7nmVTnHcitzRPbO/s7sHc5Zt9HYSr5vwFLNxo9nar8QZ/ZmM/iV1vb3mjYTG1/IfHlsHr/nIPnrCYOYlycOg71a7jdbLRGdvtDnLNnrOuJcSwZwrK3P9KemhO4nPVq89V/kT+vK/amq8V+7ss4EXX6ysGf1WK9+PGymNs/Zbs+3o0jCZefkdF3ivTIIw6LthGPZyUtucwGdtoqOjW7+SNo4gf+la2ulbXogvftH7OQ4eNG8gNLdQI01HTv1iNM3at7r1veIw59EY9N2wu5bVxkYfrdl2fE3TJjrnjhvGgE/aNDfWY3C19zX8vuWF0LmO/9ChymntL12qbyy/oeHoHhiPyyut9fg6thmJ8Tx13zDou2F3CZ6NjT7uWbIBPRre3eeOG4YFN5/j+TxE+b79ee9joV9d2IYxLUtx7uzn9K7lt7r9dezG191dGa39tjbvKXYB8zXXkT+hAB3r8S27NCc3S4LAgr6IjBERZeNrb1B1csUwzHErO04+uWwRHS38aZNGM+CTL5ob6z3PfLZuabXN5u+vStNlrLvb7J07//zkTPDrn3p42rTIN391DHNamHL8aGzpO2W3C3D6dF93mLKcO24YZ6aSr+5t1pOxDzBn82vP0z9qlJ7zHDoELF4MrFwJXHGF+d3GEF3kWIF+3TrgrLPMiYotLebE4g2aXvvdu325Ibqrdb22czHleGFhBf2LARxb5Cva+2DaWaoH2JrMoqPFwxY+BUFnN+nO/d1aL+5ab66tDbSsFNvz58evtW/tMXD11eYNgFLm/0Nn0hwfcusD0LKbKFOOlxZWGt5OpVS0u/GLef/90o8PHWp7zMzr+mUmnKCgnFRXq7Xb1bq4a+ml0rUFL3D02vWeHrOF/Cd/AjzxBDBypL7n8spKo7twYV+9rOV4vb3AG2/0lbU7JOmEptz6rdl23LNkg5ahzvq6WrzccqGGWiUXu/edMAxg3z5tp/N6EWW3PgVl5kXjkU6J1nMuWP2OnvF9v2fdf/CBmZu+//OEvVVvoV0DMxl/AjwA3HCD1ln6gN7VSwIfV4okCIO+E3aW6qXsLXHy2r2pK3EKkR3NjfWYc+UZWtc9K3jv7QKgd+leKT/+cV+AN4y+8fIwlvrlt+itVQeGATz8sDkh0Q82ViM5pWv1EmC+n9idX16oQV9EqsN8fsfsvOltzNhvzbZ7GrviBBUKQ3NjPbLf/DS2zL5E2+Yl7R2d3pfy5Wfsu/VWLfUq6OBBM8Abhrk+3Rov17XUz0nPQX4a3QMHzIl6mYw/WfYsNq5tTulo4VvYELInrKD/X7mleQdF5ICIZEUkIyInhFSf8pYvt7fUpUyXl9f8+pygQlGh6yKrdSmf363+H/3I3Jlv27a+f9OV2KdQd32hGwGrRW8FeGuinu4NdAAz1bHG7nygLwPpmBZ9PQdsCNkXVtCfAGBw7ucaAA0A7gLwuohcFFKdSrvqKnvlytyl3/n4q67z60+bNBovt1zIgE+RMPOi8UhX6Rnn7+zuwe0L27zP6s9mgeHDtdSpoK4uc4w/X3e3GYStLvb8IG239V6suz5/yZ11nkzm6C78nh6zxa9bV5fWOQut2XbMfEzPGL6FDSFnggz6vQCWAbgBwEQAdTAD/5kA/gNAD4ChAJ4QkTOLnUREbhGRtSKydvv27f7XGjA/fNZSnnJK3PHf1bre9V7lXI9PUdPcWI9jBupdADR/9TuY8M1n3Lf6NU+2tc3qYm9pOXJ9f37rvdQNQKHu+paWI5fcWfMHVq7Uv0NeMem01g10vrZoHbo1bKIDAOkqwQNTGtgQckhURLIziUgzgMdhTsJ8QSl1Qbljmpqa1Nq1a/2umjlr9Sc/sVe2oaFgN9hdres9jePrGkMl0mlsy1L4cQWpTafctd6mTzcn3Pk5tl1KKmW2ulMp4JVXgEmTzCA+cCAweDDw4YfAjTearXmLYQCnnnpkS93alrt/cK+pAY499ujeBj8VuaY5YeXT15VeN10FzLmqoWKDvYi8opRqcnNsZGbvK6VaASzK/Xq+iJwUZn2OYHfW6vDhBT8cXifuEUWVX2lOre5+x5P8Vq0KL+ADfcvlenqAyy/vC+QHD5oBHzAbEPmt/UJ72/f0FG7NHzwYXMCfMEHbWL7OfPrnjhuGN//5kooN+F5FJujnLMn7uSG0WvR3zDH2yhVJB+p1WdKgdNT+TESmmReNR23a+058xTie5Jc/k9/6GjjQt/qV9PbbfT/n96j29pqtZyvwr1wZ7o1KIdXV5lCEJroSOz0wpYFZSD2KWjTJmxKLutBq0d/WrfbKFdl9z+sb/p8nn+7peCK/NDfW477JE31dLtXZ3ePtxrmz0/wM28yhEYj33zcz/Z1zDtDkqpfWX11dWjLuXfvQKm2z9B+YUrnd+TpFLejn57jsCK0W+dra7Ce7KDDhxcsypNp0Fd/oFHnNjfV4ueVCPDClwbdW/1avLUU/M9W5ZWX6e+SRsGvSp6FB2xK9ax9ahZc3adjGFwz4OoWVe7+Yy/N+9n+LOjumTbNftsCdsdsdxfgmp7ix3q9zlm3Umqcf0DB3IKisfXElom1FQGu2Xet74Nxxw3gt1Ciwlr6IlPyricjVACbnfn1eKaVxFw2XDAN47TV7ZcePL3hn7GY96qB0Fd/kFEtWq3/L7Eu0bgi1Y99BfVn7GqIzXSgyamq0nMaapa/zpo9j+HoF2b3fJiKLRORaEfm4iAwXkeNF5M9F5IcAfg5zud4+AF8NsF7FZTJAlc2XaMDRnSbXPuSudcExfEoCnXklOrt79WXty2YZ+C0DB5qNm049QVrnLH0AWvd6IFOQQT8N4CoA8wFsAPABzIl7LwK4GWbA3wrgEqWU+zy1Oq1aZX8c0Np/O6c12+5qPKuWrXxKEJ0X7c7uHnzjCY8Z+yz5Lf9K1tWldcMg3cM6d186Qev5KNig/0UADwBYBeAdAPsBdAF4D2amvr8D8DGl1AsB1qm0p56yV2769CPulFuz7bh9YZurp7yPrXxKkLsvnaB1S959XT2ue9AKMsIfRQxVby/wgvtLbmu2HefOfg5jW5Zi/F2FVy+5NW3SaDaAfBDYRD6l1OMwM+7Fh9074LwJfF4y73HCCiWNH5P7Xt60A63Zdj2flUzGXJMetXXyQfGwHr9/lr2Dh/RMBByUrsI/Tz6d10KfRCYNrxu+p+E95RTgnTIBfMIE4He/A+CthT+kJoVX7/mMq2OJ4kLXMi6r7+CkulrMvGi8uwBRKP1tJXKZZvfc2c9p784HmHLcjkSk4Y0kO0l58sby3S7PA8CATxVhwc3noGaA98uOyn21d3Ri5mPr3E3wK5T+NumGDj06Y6HDgG916fsR8OtqOXHPb1Fbpx8dbW3mPtnlrFlz+Ee320UOro5QpjAin/3LFae77hErpLtH4faFbZizbCP+8mPH4/nXt2NrR2f5XoBiefoHDkxu699lVkLda++LmXUZJ+75jS39Yuwm5Zk6FYC3zHvf/jy3zKXK0dxYD31T+/q0d3Ri/up30N7RebgXoOQyv0J5+pUyJ+UOH+5DDSPg5JMdH3JX63p8dWGb7wGfE/eCwaBfzBtv2CuX696f+ajzlkt1Sph5jypSUDOJXOftL7J5Vqy5GLu3Jib7+feqGWCmG9eZ14GKY/d+MXYmOObK3NW6Ht0uhgbf+PbFzg8iSoD6ulrfW44WV3n7reDY2GgO9cVVbS2weTMwcmT5sv14WYlkhwD4Lhs9gWNLvxA74/njxgEwu/XdfDA4YYUqmd9b8ubzlLe//xDAaafpq1gQenocJd+xJumNaVnqa8AHzN4eBvzgsaVfyBVXlC+T69Z303VYBU5Yocrm5+Y8/Y0ZrnHb33TMbtYdbJHbf9293/zcjpmKY9AvZPPm8mVys2DdXLC+wy4tIjQ31h/+HPjZlfzyph0Y07IUKRF84exR7seOnWzAFZRU6uhU4dXVwJe+BDz4YNHDrNn4+ascdOfNLyVdJZh50fhAnouOxOQ8ablkigAAGK1JREFU/RkGcNJJZYsdrBuK0/92geMsVHW1abTd/Wm3tSNKLL/HkPPVu0nqM3068OMfxyN7X4mx/KBb9P3VpqtwHzPuecLkPDq1tNgqtiV1rKu0k+zWJyrs3uaJ2DL7EtSm/b8suUrqU2pdf5Cqq80bkFI7BZYYyw+yRd9fXW0av898lgE/RAz6+QwDmD+/bDEFYM3oTzg+/dBBab7ZicoIatOp7h7lLItmqXX9SgW3Xa81Tm/Vp9DzlhjLd7WaQYPadIqNnghg0M9nMy2nADir/XXHp+c2kUTlNTfWY9qk0YE8l9ssmgVls/oCf01N4RuMQqlzi92MFFmT72k1g0v1dbW4b/JENnoigEE/38qVtoptOOFUXPLX/+Ho1Cnh8hQiu+5tngjxI21fAWNaluLc2c95yqp5WKnWd3+lsv7ZSQHuwl2t62HsCq6lX5tO4YEpDXi55UJe/yKCQT/feeeVLaIAfO3irzo+9f1XB9T1R5QQ154dTGsfMMf4b1/Yho//09MYq+MmIJs1N+wqNd4/apR5g1CoXHU18N577p+/gGsfWoX5q99Bb0Bztwelq9i6jyAu2cv37LO2ij2wZA4+86Xv2T4tx/KJnLOW1v3PmuAC1f5cak3rJuDB59/E/q5eexv49FdouLDQcrpC5ayJeEWW3RVactfcWH/Ev9cNSkMpYFdnN46rTaOjU+NQRgkC4NpJo5lWN6IY9PPtKL/PtwA4pcP+HXhtOsWxfCKX7m2eeDh4hLHU7M1t+w7/3N7RiTtyuwPaCvyFZvsXmmBnt1xO/9fB2lho7ds78ItX2g//e/58haACfnVKmF484rhO39LWZubZLsPpeD431CHSJ6gtXu2qq03jc2d8pOh2vsVa5P3ZKVfu/14lCKxHpJBUleD+q87g9S4AXtbpM+hbPvEJYEPp5TtuJvBtmX2Jl1oRUQGt2XbcvjCaG+HUplO4b7LZO9G/Z8J6LD8wFurB6F8u7IQ65bhKdkSueQn67N63vPlmyYcV4DjgM7c0kT+aG+ux9u0dgWXwc6KzuwdfW7QOPQUaVNZWv/nBsVCynP7l7lmyIZIBf+igNLLfZIbROGHQt1RXl02vefzendh+zFBbp2NuaSJ/WWP9C3ze792NQgHf0t7RiTEtS1FXm8asyyYU7a63ykUV5yvFE5fsAeZ4/t69JYv0Avi73/zM1ukGpaswh2NbRL67t3kivjslnsthOzq7IztEUQ6T7cQXW/oAMGVK2SIp2M/C91rmsx4rRER2NTfW454lG/Rm16OjFJqPQPHDlj4AbNpUtojdSXx1tTHbb5soAe6+dALSqYBS+FUgtuyTgy19AKirAz78sOjDu6trbU/i44YSRMGzglGUlvMlQZUA37may46ThC19oHQObACDug7YOs2544bxw0EUkubGerzcciEemNKA2nQq7OrEnoABP4nY0rchZXNu8IKbz/G5JkRUTn6rf2tHZ+Rm9scBx++Ti0EfAN56q+TDB1Plx+mHDuJYPlFUNDfWHw5Yd7Wuj+R6/qhKiTDgJxi79wFg8OCiDykAi07/q7Kn4HpVomi6t3kipk0ajVRQe/XGWG06hfuv5nLjJGNLHyi5Rl8AnP3O70oenq6yuQEHEYWi/8Y9XOJnqqtNY3DNAHe7CFIsMegD5p7WRfQCWDP6EyUPn3NVPJODEFUiq+t/bMvSih7vT1cJZl02gUG+wrB7HwBqaoo+VIXSSXmGDkrzQ0MUQydV8N4YdbVpZg2tUGzpA0B38W6+Q1JVdI1+lXAsnyiuZl40PtI71+nE2fhkYUsfAIYW30Rn4/Fjij7GNaxE8dXcWI/7Jk+0NcEvzhfKoYPSDPh0GFv6AHbVDcdxBTLybRwxumQmPn6IiOLN+gzb2ff+rtb1kdzRrxjucU+FMOgDWDb0NFyFN5B/v68ArBlVfALftEmjfa8XEfmvfzKfYrPYrRUArdn2I8ru2HcQnd29gdd72qTRBevDQE+liCoxcz3qmpqa1Nq1az2f5w9DP4KxHe8d/e91I/GXX/5RwWO2zL7E8/MSUfy1Ztsx89F16O4N7lpqBXyqTCLyilKqyc2xbOkDqOvcAwUc1dKv6yy8fp8pPojIYrWqZy3egI5O/Wv/0ynB4OoB2NXZzZY8ecagD+C4g/uOCuQC4LiDhYP+tezaJ6I81tp/O+P+KRHcf/UZAI6eS2ARmA0PjsuTbgz6AE79x1/aLju4OsVuNSIq6N7miWg6ZdjhLX6t4G0pNEHQKpsSQY9SDPTkKwZ9h779eQZ8Iiouf7OfcpPs8ssSBYFB34G6WmbfIyL7GNQpauKccyJQVp5qIiKiuGLQt4l5qomIKO4Y9G2oTVcx4BMRUewx6NswMJ0KuwpERESehRL0RaRZRJ4RkfdF5ICIbBaR74nIuDDqU27DjY79+hNuEBERBS3QoC+mHwN4AsBFAE4AUANgLIBbAbSJyMVB1gkAesqkIq7kfbeJiCg5gm7p3wngi7mfFwE4A2bgvxzAFgDHAFgoIqcFWan6EkE9nRLMvGh8gLUhIiLyR2BBX0ROBPD13K9LAVyjlHpVKbVdKbUYwIUA9sEM/N8Oql4AMPOi8agtMG4/uDqFOVdy1j4RESVDkMl5rgcwOPfzN1S/7f2UUn8QkYcA3A5gsoicoJTaFkTF7G6tSUREFGdBBv1Lc9/fVEqtK1LmMZhBvwrA5wA8HETFAGbOIiKi5AtyTL8x931NiTJrAVhbTp3pb3WIiIgqSyBBX0TqYY7VA8DmYuWUUgcBGLlfOXuOiIhIo6Ba+iPyft5epqw1jj/cp7oQERFVpKCC/uC8nw+UKduZ+35MyVJERETkSOzS8IrILSKyVkTWbt9ertOAiIiILEEF/X15Pw8sU9bKlLO30INKqR8qpZqUUk3HH3+8lsoRERFVgqCC/gd5P5eL1NbjH/pUFyIioooUVNDfir6W+9hihUSkBsBJuV83+l0pIiKiShJI0M9l38vmfj27RNGzAFj5cH/ra6WIiIgqTJAT+Zbkvp8mIhOLlLky970XwC/9rxIREVHlEFVmW1ltT2RuuLMZwCAAS5RSl/V7fAyA38Fc3veYUuoqG+fcDuBtzVUdgSPnIFD4+DeJJv5dood/k+jx429yilLK1Uz2wII+AIjI19G3g97C3M/vwezy/w+Y4/17AZyllHojsIodWce1SqmmMJ6bCuPfJJr4d4ke/k2iJ2p/kyA33AGA+wCMA/BFAFNyX/n2ApgSVsAnIiJKskCT8yjTTQAmA1gGMyXvQQB/APADAA1KqaeCrBMREVGlCLqlDwBQSj0B4IkwntuGH4ZdAToK/ybRxL9L9PBvEj2R+psEOqZPRERE4Yld7n0iIiJyJ5FBX0SaReQZEXlfRA6IyGYR+Z6IjNNw7rSI3C4i/ysiHSKyR0ReFZFvisixOuqfFCJSKyKfF5EfiMgruderW0S2i8gKEZkuIrXlz1T0/LNERNn4+i+d/684E5ExNl+zgntfOHgefk5sEpEtNv8m1teNDs9/o83zVlRuFDH9qYjcICIPisj/icjB3GtRbjfY/POcKCL/KiKvi8h+EflARF4Qkb8WEdFU10YR+YmIvJOLaVtF5BcicoHjkymlEvMFQAD8GIAq8rUHwMUezj8UwNoS538LwNiwX4eofAHYXeK1sr5+D+CjLs8/y8b5FYD/Cvu1iMoXgDE2X7O9Hp6DnxNnr9cWm38T6+ssh+e/0eZ5fxn2axHw617qs3DA5jmaALxf4jxPA6jxWM+bAHQVOX8vgLudnC9pLf07YS4HBIBFAM4AcAKAy2F+sI4BsFBETnN5/oUwUwX3wgw4YwGcDODvAByAuRxxsYhUuzx/0hwLc3XGzwBcA/P1GQagAcD3Yb5pPwbgWRE5xsPzvJN7rmJfd3g4d5JdjOKv2YkezsvPiTMfR+n37xAA7bmyv1dKveLhuUo9z5Uljku6P8KcXP6i3QNEZASAxTBjzIcApgH4CMxr2oO5Yp8B8J9uKyUi5wH4bwBpAG0A/l/u+c4B8BzMhu4sEZlq+6Rh321pvGs7EeY6fwUzha/0e3xs3uOPujj/59B3dzWzwONX5z3+t2G/HlH4AvBfAE4s8fg/5r1m/+Di/LNyx24J+/8aly8c2bq5wIfz83Oi/zU9P+81u9PF8Tdax4f9f4nSF8wbncsBjMz7N+uaUralD+DfcmV7AEwq8Pj38h6f6LKO/5c7RzuAun6PVcO8EVAA3gUw0M45k9TSvx5mCl8A+IbKvSoWpdQfADyU+3WyiJzg8Py35r5vA/BA/weVUotg/gHyy1Y0pdRXlFLvlyhyP/q2UP5sAFUi//Fzot91ue8KwPwwK5IkSqk9SqknlVLvOT1WRNIAvpT79Uml1OoCxe4G0A1z7tyXXTzHJ2EOHwDAvyilOvIfV0p15Z4DMHvSPmfnvEkK+pfmvr+plFpXpMxjue9VsPkCAYCIDILZrQKYf+DuMuefICKn2j1/pVJKHQLwZu7Xk0qVpejj50Q/ERmIvm73Xyul3g2zPnTYXwA4LvfzY4UKKKW2A3gh9+tlhcqUcWnezwWfA8BTAPY7eY4kBf3G3Pc1JcqshdnVAgBnOjj3xwHU2Dh//mNOzl/JrLHj3V5PJCJVIhJKwqk40zi2zs+JfpehL7j8RMcJc7PW0zrOVcHy37d23uujcnMA3DzHH5VSWwsVyN1YZ/uVLykRQV9E6mFO0gPMnfwKUkodBGDkfh3v4CnyyxY9P8x0woWOoQJEpBHmXAsAKNQ9ZtcJIrIB5gzXbhH5UESeFpEviEjKc0WT679yS/MO5pYBZUUk42Loy8LPiX5W134ngF94PZmI/Bbm5NouEdktIs+LyN+ISE25Y+kI1vu2F6V3evXyXrfKl/os5T/Hn4hI2ZieiKAPc+tCy/YyZbflvg/34fzb8n52cv5KNSf3XcFbqspamK1MK8APgzlr9n8APOfiDrtSTEDfPJgamKsq7gLwuohc5OJ8/JxoJCLHw3wfA0CrUmqPhtM2wpwJDpgT2S6AuZJmLYdaHLHe6ztzw5TFeHmvW89hN6bVoK/xW1RSgv7gvJ/LJVXozH13skTM7vk78372sgQt8URkJvrGf7+vlFrv4jQdMJfDXATgVAADYX5QLgewKlfmPABPssV/WC/Mza5uADARQB3M9/eZMLe37oG5zv4JEXHa9c7PiV7XoG9/FC9d+50A5sEcKjgN5k1yHYD/D+aYMAB8AsAzIjLEw/NUEuu9bjfeAM7f6748B8c/KXC5VuR9uV/XA/h7N+dRSh01Oxxm1+ViEVkKMz/AVQD+DGY36Tw3z5MkSql30Nd6zJcFkBWR5wE8DjMwfAdmS5DCMS33/T0Ay92eRCm1EGbuhHwHAKwAsEJE7oeZy+Kjue+z3D4XRV9SWvr78n4eWKaslfbVSZpRu+fPTynrKY1pUonIWQAehdkV/y6AS5RSnaWPck4p1QNzSZg1s9V+8ooKppRqhZnYCgDOFxEnqyr4OdEkl0DsU7lf/yf3fvbLnTA/iwA/J3ZZ73W78QZw/l735TmSEvQ/yPv5+DJlrcc/LFnK3fnzH3Ny/oqQu5A9DXMscTuAT/u5BEkp9SGA3+R+bfDreRJoSd7PTl43fk70uS7v55/6+US59d7Lcr9+NLf0kkqz3ut1ZVYMeXmvW89hN6Z1oYKC/lb0/WfHFiuUm6FqtVw2Ojh/ftmi5+/3mJPzJ56IjILZRXk8zOV5n1FKvR7AU1uTXOoCeK6kyJ985OR14+dEg9wmLVbX/nqlVFup8pq4/ZtXKut9mwIwukQ5L+91q3ypz1L+428qpXrLnTQRQT+Xfc9aq3h2iaJnoW+G928dPMVrMMeKy50//zEn50+03Czk5TA/HJ0ALlVKBfX6jMx97yhZivKNzPvZyevGz4kefw4zXTLgcys/j9u/eaXKf9/aea+/q5T6oES5Us8xSkQ+UqhArpfhzH7lS0pE0M+xuiRPE5GJRcpYma16Yebnt0UptR/mpBcAuLxEd451/g1KqXJrKytCbjbwMphrTrsBXKmUWhnQcx8PcxIf0HdTSOVdnvez7deNnxNtrK79XgAL/H6yXA+oNbnzjdzfkUp7EcCu3M8FNyrKLRU+P/frYhfPkT/MVmwzpIsBWMMxtp4jSUH/J+ibtPXt/g+KyBgAt+R+fVwpta1/mTK+n/t+IoAZBc5/JfqyAn6//+OVKJdCdAnM16UXwHVKqadKH2X73CNKJRTJZRx7CH2TYHy/eMZBLpFVqcevBjA59+vzSimjVPkC+DnxIPeevir364pimdgcnO/YUsvwckMJ96Nv2JOfExtymfB+lPv1chH5VIFis2BuiqNg7pTn9Dn+D2YWWQD4BxE5Lv/x3DVuVu7XP8JuQzbsnY50fgH4Ovp2o/o5zHXIx8PMs7859+97AJxW4Nh51rElzv9srswhAP8E4BSYH5a/hXnDoQD8DkB12K9F2F8wh1GezPt7fBXmGtJiX4MKnOPXKLKLHoBmmHM5/hXAp2EOHRyX+34NgFfynvvXAKrCfk2i8AVzAuUiANfCTGg0PPcZ+XOYCZJ6c6/ZXgBnFDienxN//z5X5r1vr7N5TNG/CcyJmDtg7nj5OZjjv3W5v8elMHtmrOf7PYBjwn4NAn69Pw5gUt7Xj3KvxcF+/z4JQE2/Y0fkrkEq97maCvNm96Mwc15Yr+sPizz3mLwys4qUOS/3OVIwu+8vyD3vpwD8Ku/4qbb/z2G/6Jr/gALgx3kvRP+vPQAuLnKsnYvZMJh3XsXO/xaAsWG/DlH46veGtvO1pcA5fl3isWab5/0l+m1JWclfMMdry71m7QDOL3I8Pyf+/n2sG+W9AAbbPKbo3wRm0LfzOVkFYFTY//8QXu9f23x9FIAxBY5vAvB+iWOeRr+bhbxj86+Rs0rU8UswZ+YXOn8vgLud/J8TlZxHma/QTSLyS5hbGZ4JYAjMu7FlAP5NKbXJw/l3iMifwWyxTIWZ3SoFsxfhMQDfVXpSZVJ5LwP4Cswx+9MBnAAzk9xBmH/vNQB+qpRyndQkob4Ic4ewswHUw2w1DIDZGlwH8ybpES/vY35O3BGR4ejbYvpxpdS+UuVtegvAzTA/J2fC/JwMh9l6fB/mzdnPYe6K6GcugERSSq0VkdNhJhi7DMAomJOVNwCYC2BeLi55eY4ficgrMBMnXQDzb7gD5o3afyilfu3kfOKxPkRERBQTSZrIR0RERCUw6BMREVUIBn0iIqIKwaBPRERUIRj0iYiIKgSDPhERUYVg0CciIqoQDPpEREQVgkGfiIioQjDoE8WQiCgvX3nnmZX7ty0h/neIKCAM+kRERBWCQZ8ono4t8nVxXpm/KVGOiCpQonbZI6oUSqm9hf5dRDrzfj1YrFzeeWYBmKWvZkQUZWzpExERVQgGfaIKVmoin4hckDf5b4yIDBWRfxGRN+T/b+/+Qi0bwziOf380pJRp0GgcfxJNolBDaYqYRkoyUe6myY3IpLkm11JuqEnNxTDuiAuZxEwzF6ZEuJBcKU0pCXVkakzNjMfFWru21TnHOufEivf7qd1a513PWj375vz2u/be705OJ/k+ycEk18ydc2GSJ5N8luTXJL8lOZbk3hG9bOr7+TzJYpIzSU4meaP/zXJJ6+TtfUljXAscAq6fG1sAngB2JtkO/AS8Azw0OPd+4J4kj1TVB0tdPMlO4G1g4+DQdcAeYHeSvVX12nqfiNQyZ/qSxjgEbAB2A1v6x17gLF34vwS8COwAngNuAq4AHgZ+oJtgHEiyYXjhJNuAw3SB/ynwaH/Ny4HtwHt0/6v2J3nwH3uGUgOc6UsaYyNwR1WdnBvbn2Qz8ALweD+2q6ren6s5nGQPcBS4mu5FwYezg0kCvA5cRBfuj1XV+bnzPwF2JXmT7gXHy0k+qqpC0qo505c0xquDwJ95q99eAJwYBP7MMeCXfv+uwbH7gFuB88DTg8Cf93y/vQW4bWzTkv7K0Jc0xpFlxr+b2z+6VEE/K5/VXTU4vKPffg2cSnLpUg9gEfi5r922+vYlgbf3JY3z41KDVfV7d4d++ZrebP2ASwbjW/vt7cCpkb1cObJO0oAzfUljLHfbfbU1Gfx92Rp6uXgN50jCmb6kac1WDPy4qv72u/yS1seZvqQpzd7rv2HSLqRGGPqSpjT78N9Ckrsn7URqgKEvaUpHgG/6/QNJNq1UnGTrSsclrczQlzSZqvqDbpndM3Tf1/8qybNJbu7X+t+c5M4kzyQ5DnwxacPSf5wf5JM0qar6MskDdGvvLwCvrFC++O90Jf0/OdOXNLmqOgHcCOwDjtP9eM854DTwLfAu8FRfI2mN4hLWkiS1wZm+JEmNMPQlSWqEoS9JUiMMfUmSGmHoS5LUCENfkqRGGPqSJDXC0JckqRGGviRJjTD0JUlqhKEvSVIjDH1JkhrxJ+EfODesfrcGAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dowhy.plotter.plot_treatment_outcome(df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]],\n", " df[data_dict[\"time_val\"]]) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using DoWhy to resolve the mystery: *Does Treatment cause Outcome?*\n", "### STEP 1: Model the problem as a causal graph\n", "Initializing the causal model." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:dowhy.causal_model:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n", "INFO:dowhy.causal_graph:If this is observed data (not from a randomized experiment), there might always be missing confounders. Adding a node named \"Unobserved Confounders\" to reflect this.\n", "INFO:dowhy.causal_model:Model to find the causal effect of treatment ['Treatment'] on outcome ['Outcome']\n" ] } ], "source": [ "model= CausalModel( \n", " data=df, \n", " treatment=data_dict[\"treatment_name\"], \n", " outcome=data_dict[\"outcome_name\"], \n", " common_causes=data_dict[\"common_causes_names\"], \n", " instruments=data_dict[\"instrument_names\"]) \n", "model.view_model(layout=\"dot\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Showing the causal model stored in the local file \"causal_model.png\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import Image, display\n", "display(Image(filename=\"causal_model.png\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### STEP 2: Identify causal effect using properties of the formal causal graph\n", "Identify the causal effect using properties of the causal graph." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_identifier:Common causes of treatment and outcome:['w0', 'U']\n", "WARNING:dowhy.causal_identifier:If this is observed data (not from a randomized experiment), there might always be missing confounders. Causal effect cannot be identified perfectly.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARN: Do you want to continue by ignoring any unobserved confounders? (use proceed_when_unidentifiable=True to disable this prompt) [y/n] y\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_identifier:Instrumental variables for treatment and outcome:[]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Estimand type: nonparametric-ate\n", "### Estimand : 1\n", "Estimand name: backdoor\n", "Estimand expression:\n", " d \n", "────────────(Expectation(Outcome|w0))\n", "d[Treatment] \n", "Estimand assumption 1, Unconfoundedness: If U→{Treatment} and U→Outcome then P(Outcome|Treatment,w0,U) = P(Outcome|Treatment,w0)\n", "### Estimand : 2\n", "Estimand name: iv\n", "No such variable found!\n", "\n" ] } ], "source": [ "identified_estimand = model.identify_effect()\n", "print(identified_estimand)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### STEP 3: Estimate the causal effect\n", "\n", "Once we have identified the estimand, we can use any statistical method to estimate the causal effect. \n", "\n", "Let's use Linear Regression for simplicity." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_estimator:INFO: Using Linear Regression Estimator\n", "INFO:dowhy.causal_estimator:b: Outcome~Treatment+w0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Causal Estimate is 1.0154712956668286\n" ] }, { "data": { "image/png": "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mT59eonHUlJSSElJYfny5Tz44IM2f77yuHTpEnfffTdbtmwxP5abm0tycjLJycm88MILdo9ftmyZ1d/x+fPn2bhxIxs3buSbb75h9erVNG7c2Ok4d+3aRWRkZJnHL168yNatW9m6dStff/01q1evpm3btk5fx108pUaEv79/ie9Ncx9Kl+OWORHOkR4JUWNt3rzZfLPu3bt3uY9r1aoVrVq1AuCXX36x2e7tt9/m559/ZtKkSfz+++9kZmby008/ceeddwLwySef8MUXX5Q45sKFCzzxxBMUFhYSFRXFkiVLOHr0KBcuXCAtLY2VK1fyzDPPEBoaWuZ6S5cuZdy4cVy9epWBAweyatUqTp8+TUZGBmvWrCE6Oprc3FxGjx7Nrl27bMb99ddfs2DBAv72t7/x22+/kZmZyc6dO+nTpw+RkZF07NgRgG+//dbmOTZs2MCJEycAY/Jhafv27QwZMoSLFy/So0cPFi1axMmTJzl37hy//PILQ4cOpaioiCeffJJVq1aVOfdnn31mTiKio6NZt24dmZmZ7N27l4kTJ7Jhwwbefvttm7GVx8MPP2xOIh599FF27dpFZmYmv/zyCwMHDuSdd95h/fr1No/38fEhLi6Or776ik2bNpGWlkZGRgYpKSlMnTqV0NBQUlJSePzxx0scFx0dTXZ2Ni+++CJg/L+WnZ1d4sPy/4xSipiYGD799FN+/vlnDh8+TGZmJqmpqXz88ce0atWKtLQ0Ro8e7dGTFEtLTU3lo48+8pg5B9Z26wwPD2fChAm8+uqrTJgwQZKISlA16T+np4iKitIqOua3b98+OnToUEUR1U0zZswwv5B/9913jBo1qtzHDho0yHyTy8/PL/GO27J2wbvvvstzzz1X4thr164RHR3Ntm3bCAkJ4dSpU/j5+QHGd7JDhw7F29ubs2fPEhISUq54cnNzad26NRkZGTz11FN88sknZdoUFBTQv39/1q1bx6BBg1i5cmWJ58PCwjh27BgA//znP829LqW99dZbvPzyywQFBXH27Flz7JYef/xxZsyYwU033cShQ4fMj2uaRkREBHv27GHo0KEsXLjQah2A8ePHM2vWLDp16kRqaqr5d5qbm0uLFi3MScj69evx9fUtceybb77JP/7xjxLXrIjNmzdz++23A8bJtx988EGJ5wsLCxk8eDA//vgjYExC161bV6Fr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Xnf2mkII4QqlC0250+XLlwkODubll19m165ddtsqpbj77rvR6/UMHTrUXBpbCHeqTEGqzsAoQAe0AR4p56GSSAgh3MYTCk0VFBRw8OBBUlJSOHjwYIlVGda0a9cOvV7P2LFjueGGG6opSiHKx9mCVB2AdUADi4czkIJUQggPl5iY6JaJlZqmcfr0aVJSUkhNTXW45XhwcDAPPPAAer2e2267ze09J0LY4myPxOtAMJAFPAss0DTN/oCeEEK4WXlu4K52+fJldu/eTUpKisMlm15eXgwYMAC9Xs+9996Ln59fNUUphPOcTSR68r+CVN+5MB4hhHAZy7kQwcHBDveccJWCggL++OMP89CFo+GTDh06mIcuWrRoUS0xCuEqziYSQcWf17gqECGEcKXScyGqeomnpmn8+eefpKSksGfPHoc9Hw0bNjQPXURFRcnQhaixnE0kjgCdMFa3FEIIj1NdRaays7PNQxcZGRl22yqluOeee4iPjyc2NlaGLkSt4GwiMQ94AxgCfO66cIQQwjWqsgciPz/fPHRx6NAhh0MXjRs3plu3bkyePJm+fftWWVxCuIOzicQ0YATwplJqq6Zpv7kwJiGEqJQVK1a4/JyapnHq1Cl27dpFamoqV69etdve39+f8PBwIiMjad++PTExMYSHh7s8LiHczdlEojswBfgI2KSU+hbjfInyFKTa4OQ1hRDCqtIFplxZG+LSpUvmoYvMzEy7bZVStG3blsjISG655RZ8fHx49dVXXRaLEJ7I2URiHcZVGwAK454b8eU4TqvENYUQooyqKDCVn5/PgQMHSElJ4fDhww7P2aRJEyIjI4mIiCAwMND8eHBwcKVjEcLTVeamrmx8LYQQVaoqeiA0TePkyZPs2rWLPXv2lGvoIiIigsjISPMOnaX169ev0nEJ4emcTSTauDQKIYQoJ1f3QFy6dIldu3aRkpLCuXPn7Lb18vIyD120bdsWHx/bL6GmORJC1HbO7v55zNWBCCFEebhiWWd+fj779+8nJSWFI0eOOExGmjZtSmRkJOHh4SWGLuyp7gqaQriLzFcQQtQozi7rNA1dmApGXbt2zW77+vXrExERQefOnWnevLnVNjqdDh8fH6tJg8yPEHWFSxMJpZQPxqqX2ZqmFbjy3EKIus00L6KisrKyzEMX58+ft9vWy8uLW265hcjISG6++WabQxf+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ESMqBFQtWrTg5ptvBmDt2rWVzle4tEQiDi1fvpwNGzZUeP3kyZMUFBS4f9xPnToV8X1nZWUxbNiwiG+3qqWkpPCnP/2JtWvXMnfuXGbOnOm+4KdNm8aMGTNo0qQJEydOpG7duqxYsYJp06bx2muvsWrVKvdYFpdddhlgVWN4cj2/7LLLyMzMJD8/n08++YRzzz0XgB9++IENGzbQsGFDLrjgggr5+/LLL+nduzdnnXUW119/PQcPHmT+/PmMGjWKN954wx04dO3alYEDB7JmzRq2b99eoZrm7bffZuvWrVx11VW0bNky4HF57rnnmDJlCunp6YwcOZK2bduyY8cOnn32WZYuXcq7775Lu3btAHjmmWe46aabaNGiBSNGjKBJkybs3buXLVu28Pzzz3PLLbcAkJ2dTXFxMY8//jg///nPGT16tHt/PXr0CJinoqIi+vTpQ7du3XA4HBQVFbF48WKys7N55513GDx4MPXr1+eaa67h4MGDzJs3jyFDhrB9+3Z3XgF+9atfcd5559G/f39atmzJgQMHePXVV7n++uv57LPPuO+++9xpg8lzKMcqWHfddRczZszg/PPP5+abb+bIkSPMmzePu+++G2MMd999d8BtvPHGG9SoUYOLLrqowrJgz5k/oVwfLrt27eLiiy+me/fu3HTTTXz77bfMnz+fIUOGMGfOnApBTzjHtm/fvgC8/vrrXHnllQHfR3XiCowHDRpUITioV68effv2ZdWqVbz77rsBSzhdfyhr1ozdz7kGEnGmsLDQaxDh4lmdYYyJyD4jNUplrPXr14+aNWuyd+9eioqK6NixI++88w4zZsygbdu2vP/++7Ro0QKAGTNmMGbMGJYtW8Yjjzziroft1q0bLVu2ZOvWrezbt4+mTZsCVmlD3bp1ufDCC91tJ1avXu0OJNatW8fp06fJzs72Wgy7du1a7r33XncbD4CJEycyePBgHn744TIlELfccgtr1qzhmWee4ZFHHimznWeeeQaAm266KeDx2L59OzfffDMdOnRg3bp1tG7d2r2soKCAQYMGceutt7J48WIAnn76adLS0ti8eXOFqqH9+/e7H2dnZ9OhQwcef/xxevToUaG6qaioyG++1q1bx/33389dd93lfu2+++7jnnvuoU+fPowfP56nnnrKfRyvuOIKJk+ezMyZM5k5c6Z7na1bt3L22WeX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n332GcaYoHoCuTz22GN8+eWXQafPzc2NSSDh+iOyatWqCp+RI0eO8NZbb1G7du0KPXUeeughpk6dSo8ePXj99dcj2napMrSxZRzq3r07t912W5mGkOEMPhWpXh3xbu/evUyYMIG1a9fSrl27Mi3Mb7zxRsAalc7VABOsH5Pf//73lJaWVhhYCs5UY8ycOZNDhw55Hddh4MCBrF+/3t13PtKBRE5ODp07dyYvL48FCxbQpUuXkAbB+c1vfkNqaiq33367138+J06cYP369e7na9as8fqZ2bt3L0CZf9cNGzZEREJqCBdJrhKn8n3nX3vtNZ9zNPjLc6jHyp+NGzcCVkO5lStXlln2z3/+k/nz5zN48OAKA555IyL079+f/fv3u4MnT6GcM2/CvT4OHz7MX/7ylzKvbdiwgdmzZ5OZmcmYMWPcr4d7bN99912AkD7zRUVFGGOCvnmOIVIVdu7cybZt2yr8CTz77LMZNGgQRUVF/POf/yyzbPr06Rw9epTrr7++TE+d++67j6lTp9KrVy8KCgriJogALZGoNvy1nfC3TqJxddtzFXt+/PHHvPnmm5w4cYLevXsze/bsMhfYJZdcwp133snf/vY3fvaznzFu3Djq1KnDihUr2Lp1K/369eMPf/hDhf1cdtlliIh7ADBvjdEGDhzI3Llz2bVrF126dKnQIr2yRISbb76ZO+64AwjuH6ynrl278txzz3HjjTdy3nnnMXjwYDp37szJkyfZvXs369evp2nTpu6hfseMGUPdunW56KKL6NChA8YY1q9fzwcffECvXr3K9BSpW7cuffr0Yf369UyaNInOnTtTo0YNRo4cWemqgWDccsstPP/881x99dWMGzeOVq1asXXrVlauXMn48eOZP39+hXX85fn8888P6Vj54wokRowYwbhx45g4cSJNmzZl/fr1vPXWW2RlZTFnzpyg3+tVV13FokWLeO211zjnnHPKLAvlnHkT7vXRv39/nn32Wd577z369u3rHkeitLSUp59+usxnINTPocuqVauoUaMGo0aNCvpYVaUlS5a4e3m4qnDeeecdd9VakyZNKnTXzsnJ4csvv2TXrl3u4Nflqaee4pJLLuF3v/sdBQUFdOvWjffee481a9bQuXNndwkrWIOo3XPPPdSoUYNLL72UJ554okL+OnToELt5ZEKJ3vRm3Xr16mWibcuW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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "estimate = model.estimate_effect(identified_estimand,\n", " method_name=\"backdoor.linear_regression\")\n", "print(\"Causal Estimate is \" + str(estimate.value))\n", "\n", "# Plot Slope of line between treamtent and outcome =causal effect \n", "dowhy.plotter.plot_causal_effect(estimate, df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Checking if the estimate is correct" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DoWhy estimate is 1.0154712956668286\n", "Actual true causal effect was 1\n" ] } ], "source": [ "print(\"DoWhy estimate is \" + str(estimate.value)) \n", "print (\"Actual true causal effect was {0}\".format(rvar))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 4: Refuting the estimate\n", "\n", "We can also refute the estimate to check its robustness to assumptions (*aka* sensitivity analysis, but on steroids). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adding a random common cause variable" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_estimator:INFO: Using Linear Regression Estimator\n", "INFO:dowhy.causal_estimator:b: Outcome~Treatment+w0+w_random\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Refute: Add a Random Common Cause\n", "Estimated effect:(1.0154712956668286,)\n", "New effect:(1.01547620948807,)\n", "\n" ] } ], "source": [ "res_random=model.refute_estimate(identified_estimand, estimate, method_name=\"random_common_cause\")\n", "print(res_random)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Replacing treatment with a random (placebo) variable" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_estimator:INFO: Using Linear Regression Estimator\n", "INFO:dowhy.causal_estimator:b: Outcome~placebo+w0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Refute: Use a Placebo Treatment\n", "Estimated effect:(1.0154712956668286,)\n", "New effect:(-0.001212143363314766,)\n", "\n" ] } ], "source": [ "res_placebo=model.refute_estimate(identified_estimand, estimate,\n", " method_name=\"placebo_treatment_refuter\", placebo_type=\"permute\")\n", "print(res_placebo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Removing a random subset of the data" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:dowhy.causal_estimator:INFO: Using Linear Regression Estimator\n", "INFO:dowhy.causal_estimator:b: Outcome~Treatment+w0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Refute: Use a subset of data\n", "Estimated effect:(1.0154712956668286,)\n", "New effect:(1.02452210674865,)\n", "\n" ] } ], "source": [ "res_subset=model.refute_estimate(identified_estimand, estimate,\n", " method_name=\"data_subset_refuter\", subset_fraction=0.9)\n", "print(res_subset)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, our causal estimator is robust to simple refutations." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.9" } }, "nbformat": 4, "nbformat_minor": 2 }