{ "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 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\n", "\n", "# Config dict to set the logging level\n", "import logging.config\n", "DEFAULT_LOGGING = {\n", " 'version': 1,\n", " 'disable_existing_loggers': False,\n", " 'loggers': {\n", " '': {\n", " 'level': 'INFO',\n", " },\n", " }\n", "}\n", "\n", "logging.config.dictConfig(DEFAULT_LOGGING)" ] }, { "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": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Treatment Outcome w0\n", "0 10.362613 21.104370 4.505220\n", "1 2.263830 4.294143 -3.798739\n", "2 2.626503 4.822208 -3.550164\n", "3 8.196241 16.881973 2.401275\n", "4 3.094419 6.385033 -2.857286\n" ] } ], "source": [ "rvar = 1 if np.random.uniform() >0.5 else 0\n", "data_dict = dowhy.datasets.xy_dataset(10000, effect=rvar, \n", " num_common_causes=1, \n", " sd_error=0.2) \n", "df = data_dict['df'] \n", "print(df[[\"Treatment\", \"Outcome\", \"w0\"]].head())\n", " " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvYAAAGTCAYAAABDMFZUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB2KUlEQVR4nO3deXxTVfo/8M9pmrZhbUuLQNmVRbHQArLoKO64QgEBR3H0q6OOzIiOI2MRHXHqwoij/twddXAUnGEZqCAiorgwWNRiChWlLCJouUBZChTSNm3P74+bQChZbpJ7c7N83q9XXm2Tc+89TZvkuec+5zlCSgkiIiIiIoptSWZ3gIiIiIiIwsfAnoiIiIgoDjCwJyIiIiKKAwzsiYiIiIjiAAN7IiIiIqI4wMCeiIiIiCgOJJvdgXBkZWXJ7t27m90NIiKiiFm3bt0+KWW22f0gougT04F99+7dUVpaanY3iIiIIkYIscPsPhBRdGIqDhERERFRHGBgT0REREQUBxjYExERERHFAQb2RERERERxgIE9EREREVEcYGBPRERERBQHGNgTEREREcUBBvZERERERHGAgT0RERERURxgYE9ERGQERQFGjAB27za7J0SUIBjYExERGaGwEPjiC2DaNLN7QkQJQkgpze5DyAYPHixLS0vN7gYREdHJFAXIyQGkBIQAdu0COnTQZddCiHVSysG67CwE69atEwAuSk5OHi+EOF9K2cqsvhAlAiFEjZRydUNDwwIAnw4aNMhn8J4cwX4RERElhsJCNagH1K/TpgGzZ5vbJx2sW7dOJCUlPWCz2X6bnZ0t27RpU5OcnLxPCGF214jikpQSDQ0NlsOHD19aVVV1mcPheGPdunV/8xXcMxWHiIhIT4oCvP32yff961/xkmt/kc1m++0ZZ5xxuF27doesVmsjg3oi4wghYLVaG9u1a3fojDPOOGyz2X4L4CJf7RnYExER6amw8NT73KP2MS45OXl8dna2TE5ObjK7L0SJJjk5uSk7OxvJycnjfbVhYE9ERKSn+fO9379gQWT7YQAhxPlt2rSpMbsfRImqTZs2NUKI8309zsCeiIhIT7W13u8/ejSy/TCAlLJVcnJyo9n9IEpUycnJDf4mrDOwJyIi0ktZmdk9MBxz6onME+j1x8CeiIhIL+PGmd0DIkpgDOyJiIj08uOPvh+zWiPXDyJKSAzsiYiIIsHpNLsHRBTnGNgTEREREcUBrjxLRESkh1deMbsHFEOEEIPC2V5KuU6vvlD84Ig9ERGRHv7wB/+Ps5oMJZDnn3++nRBiULgnMPGioqIixf18vP/++62NOg5H7ImIiMKlKEBTgMVY77orMn2hmFBdXW33dv+KFStaTZw4sRcAPPXUUzvuuOOOA5HtGcUyBvZEREThKioK3ObLL43vB8WMtm3bej0TbNGihXR/n5qaKn21I/KGqThERETh+uSTwG3sXgdoiYh0w8CeiIgoXIcP+388Kysy/aC4d99993USQgzKycnJBYCSkhLbmDFjunfs2DHXarUO7Nu371me7ZuamvD6669nXHzxxWe0b9++v9VqHZienp43fPjw3i+88EK7xsZGn8f66quvbH/+8587Dh48uE9GRsaA5OTkgW3atMnr379/3z//+c8d9+3bZ2m+jTuX/J577unuvs+dW+6+DRkypI/7sffff7+1+/6KioqUqqoqy1133ZXTvXv3s202W36HDh36jx8/vvvWrVuPLwTR0NCAp59+Oqt///59W7dundeqVav84cOH9162bFmrQM/fnj17LPfdd1+ns88++8w2bdrkpaamDszJyckdN25c96+++srma7shQ4b0EUIMGjduXHcAWLx4cZsLLrigV0ZGxoDU1NSBPXv27Hf//fd3rKmpOWUyTU5OTm7fvn1z3T9fe+21vZs/J4H6rRVTcYiIiMKhKMDu3f7bnHZaZPpCCeWtt95Kv/POO3vW19d7nZm9e/duy7XXXntGaWnpSQHvoUOHLGvXrm29du3a1v/5z38yP/jgg23NU35KSkps55577llo5siRI5by8vKW5eXlLefOnZv14Ycfbs7Nza3T4/f58ccfUy6++OIeu3btSnHfV1tbm7Rw4cJ2q1evbrN69epNOTk5zquvvvr0zz77rK3ntmvXrm09evTo3nPnzt02ceLEQ972v3jx4jY333xzzyNHjpx0QrJr166URYsWtSsuLm73xBNP7HzggQeq/PXzwQcf7DBz5swcKY9nTWH79u1pf//73zt9/vnnbb788ssKq0kL0nHEnoiIKBxTpgRuc845xvcjgcxZuyNzyOMf5/YoXDZoyOMf585ZuyPT7D5F2uHDhy2///3ve/To0aN27ty5W3/55Zf1W7Zs2fDXv/71FwCoq6sTl19+ea/S0tJWbdq0aXz44Yd/Wbdu3ca9e/eWbdiw4btp06ZVpqWlNX355ZdtJk2a1K35/pOSkjB8+PDDTzzxxM4VK1Zs2rhxY7miKGVff/31xscee+znjh071u/atSvl+uuv79nkMXG8V69e9dXV1fannnpqh/u+6upqu+dt1apVm739Tr/97W97NDQ0iJdeemn7Tz/9tOGnn37a8MQTT+xMTk6We/bssd533305d999d+eSkpI2hYWFleXl5d8pilL27rvvbs3OznY2NjaKKVOmdKurqzvlROeLL75oMXHixDOOHDliGTBgwNF//etf23788ccNu3fvLvvoo482XXLJJdVNTU2YNm1a14ULF7bx9byvXbu29cyZM3OuueaaA5999tkPu3fvListLd147bXXHgCA0tLSVk8//XS25zabNm3aWFpautH987x587Y0f078/rGDwBF7Im8UBbj+emDePKBDB7N7Q0TRrLg4cJulSw3vRqKYs3ZHZtH733era2hKAoC9R+pSit7/vhsATBrWLWEqyNTU1FhOP/302q+++mqT52j7GWec4QSAxx9/vH15eXnLtm3bNn7xxRc/9O/f//ioenZ2dmNubu7uIUOGHB0zZkzv999/P/PTTz/dc9FFFx1ztxk6dKjjyy+/3NL8uB06dGg855xzam+66aYDubm5Z3///fctlixZ0rqgoOAIoJ4QtG3btik1NfX4cLbWCcBHjhyxfPPNN9/36dOn3n3ftGnTqvbs2WP9f//v/3X84IMPMgHgnXfe2XrDDTccH5X/9a9/fchms20fM2ZM771791qXLl3a+rrrrjueH9fU1ITf/va33Z1Op7jkkkuqP/zww23JySdC4Msuu+zoZZddtm3MmDHdi4uL202bNq3L2LFjNyYlnTr+vWvXrpSbbrqp6u23397pvu+0005rLC4u3t6/f/+0jRs3tnj33Xezpk2bdnzUv3Xr1k2tWrU6/hy0aNHCsEnRHLGnxKUowIgR3i+hFxUB//uftkoXRJTYGhoCt+nSxfh+JIjnP9mS4w7q3eoampKe/2RLjll9MstDDz1U6StAfOONN9oDwN133614BvWeCgoKjgwbNuwIALzzzjvtgjl2165dG84777zDALBy5UqfI9zBuO222/Z6BvVukyZNOgCoAfqgQYNqPIN6t1GjRh1JT09vAIC1a9e29Hzs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zMlatmzZ1oyMDJ+XxKqrqy2DBw/u+8MPP7Rw31dbW5u0YsWKjDVr1rT58MMPK4YPH+644YYbus2bNy/Lc9v169e3vOWWW06vqqracf/99+/ztv8vv/zSNnbs2F579uyxet5fVVVlXb58ecby5cszJk+evPull16qDPRcRQpH7Ck0RUVqxZZwLgFOnhx9i07praRE3ysahYX67YuIfFMUYOFCbW2//NLYvpB3O3ZYcc45fbBzZ8wOUn722WetGhsbAQDnnXdejdbtevXqVd+xY8d6ACgtLdVl1LhXr1711dXV9qeeemqH+77q6mq7523VqlWb3Y81NTVh1KhRPd1B/eWXX1793nvvbd65c+f6ysrK9R9//PGm+++/f1enTp1O+RC85ZZburqD+muuuebA559//oOiKGVffvnl9xMnTtwHACUlJa3Hjx/fw1+fH3jggS6//PJL6hNPPLFz8+bN5ZWVletfeeWV7a1atWqsqamx/OEPf+j2+OOPt1+wYEHWnXfeuae0tHTj7t27yz744IOK008/vRYA/vKXv3RRFOWU/6HNmzenXHnllX327Nlj7dmzZ+1LL720vaKionzv3r1lq1ev/mHChAn7AODll1/uMGvWrKzm25slZl8MZCJFAWbPDn8/ifBh6FnZJz9frfMfjv/+F3jrrfD2QUSBaT2JTkuL3QpesW769I5Yt64Vpk/vhHfe2Wl2d0Kxbdu247VSzzzzzKBGuc4444xaRVFS9u7da3U6nbBarYE38iMpKQlt27ZtSk1NPT5prm3btj5Hy1999dXMzz//vC0A3Hvvvcqzzz67y/PxTp06NVxyySVHn3jiiZNy2lavXt1iwYIFWQBw/fXX7/v3v/99/ESiQ4cOjuHDh+/IyMhoePXVVzt88skn6QsXLmxz3XXXeZ0gvHfvXuvHH3+8acSIEcfc9/3ud787UFtbK/74xz92Lysra1leXt7ir3/968/Tp0/f625z5ZVX1ixatGhrXl7e2Q6HI+mdd97J+POf/1zlue8777yz6+HDhy25ublH16xZs7l169bHn4vs7Oxjv/rVr3Z06NDB+fzzz3d84okncu666679rVq1Mn2lOo7YU/AKC8Or9OKu955oH4aete779QttHzWaB3SIKBxaquFkZcX3FcdotmOHFQsXZkFKYMGCrFgdtT948ODxfmdmZjYGs23b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\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": 4, "metadata": {}, "outputs": [], "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": 5, "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": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimand type: nonparametric-ate\n", "\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", "\n", "### Estimand : 2\n", "Estimand name: iv\n", "No such variable found!\n", "\n", "### Estimand : 3\n", "Estimand name: frontdoor\n", "No such variable found!\n", "\n" ] } ], "source": [ "identified_estimand = model.identify_effect(proceed_when_unidentifiable=True)\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": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Causal Estimate is 0.00469169526948221\n" ] }, { "data": { "image/png": "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C3FxcRw4cICPP7Zi8ffeew9jDA0aNHD363vyTEzlq+6FhYVVNiYh0uph50DZsGGD33J290vLli29dmvUBL6yVtrPxXoQEYndUhEdSIhIPPA+0M/11N+BuSJS38etrpfDPA5sxxonMVdERovIcSLSQUSmADe7yr2qK39Gn7//3Zr1W1xczK233hrwft9//737Z/vDGI7Nnijt22+/5aeffvJ5vJYtWwLWN1xf/8i8TdMMRKdOnfjLX/4ClOzCCUW9Q6F169bu7JL2LA37fsSIEV6bYgOp+8yZM6v8n2Yo6mHnK/C1fyD69OkDwOeff87+/aUz/VsOHz7MnDlzSpSviWKtq6K0lJQUJkyY4HPQbSTOPonoQAI4AWshLduzQL6f2/elD+Aa83AhVvbKZsA7WEuI/wjYnzzzPX5WUWTgwIHuBD1z5szhhhtu8JtD/8iRIzz66KNceeWV7uc8M2La/6g9HTp0qNw592eeeSZgZUOcP39+me1btmzxm8K7vDEedjDQtOmxxKuhqHeo2N0Xn376KYsXL3a3gviareE5vsVb3Xft2sXdd99dBTUNfT3s1yQ3NzfoMRT2kvYHDx7knnvu8Vpm4sSJ7tkW11xzTVDniQWR+EEaKgkJCe6cJr5W99Q8EmFijMkCugJPYwUQBcAerDEUVwPnG2MO+z6CimRTp06lf39rmMsrr7xC586d+de//sXatWvJzc1l+/btLF++nH/+85+ccsop3H///SX+4bdq1cr9De/RRx/l0UcfZfPmzeTk5DBv3jz69OnDd999xymn+F6G5dxzz3XngBg7diwffvghubm5/Pbbb0yfPp0+ffqUCAJK69y5M+eeey4vv/wy3333nTur5fLly7nmmmv45JNPACtHQCjrHSoXX3wxtWvXprCw0L2+RMuWLRkwYIDX8ikpKbRt2xawknBNnTqVrVu3smPHDt5//33OPvtscnJy3GWqSijq0aOHtTbgH3/8wcMPP8yOHTs4evQoR48eDXgab48ePdzBxNSpU7niiitYuXIle/bsYe3atVx//fU8/vjjAFx44YU+k1HVBJH4QRoq9vgnsPJgpKenuwOnpKQk0tPTI2KRrtIierClMSYbCEm6R2PMTuAu103FkHr16rFgwQLuuusupk6dyubNmxk/frzP8scddxx33nlnieemTp1K3759ycvL4/777+f+++93bxMRnn76adauXcsPP3ifHexwOPj3v//N8OHD2bVrV5n+9pNPPpk33njDa/ZHsPp1P//8cz7//HOf9R40aBAPPPBASOsdKklJSQwdOpSPPvrIPVZl1KhRPmcQ1KpVi1dffZWhQ4eyf//+Mi0nCQkJ/Oc//3F/sFeVUNTjrLPOolevXnzzzTf885//LDGO5aqrrnKvTlueF198kT179jBr1izeeecdd/eQp7S0NPcA25rI6XTG7MJjCQkJZYKESFndszw1okVCxb6EhAT+9a9/8cMPP/DQQw/Rp08fWrVqRUJCAvXr1+ekk07isssu4+233yY7O7vMegWnnXYaWVlZjBkzhpYtW+JwOGjVqhXDhw9n4cKF3HHHHeXW4fzzz2fp0qWkp6fTpEkTateuTYcOHbjvvvvIysrym7Vy5cqVPP744wwaNIgOHTq4Uy+3adOG9PR03n//fTIyMsqMNwhFvUOldDdG6ZTYpQ0cOJCvv/6aiy66iCZNmpCQkMAJJ5zAFVdcwTfffMNll11WldUNaT3mzZvHHXfcQceOHd0DbyuqTp06zJw5k//9739ccMEFHHfccTgcDpo3b865557LW2+9xWeffVajZ2vMmjUrIgcbhkIg03YjlcT6CNeqkJKSYkqv0lieDRs20KlTpyqqkVJKVa1w/w+bPHlyzA+0nDBhQrir4JeIrDTGpJR+XlsklFJKRbxYDyKieRCpBhJKKaUiXjR/0IKVkdLXdOhInY0RqIgebKmUUqpm8FwXIykpyf3Baj9XeipkNBERhgwZ4h486e13jYZBlb5oIKGUUiqsvKW9njVrFiLiTvTlLz9MpDPGuFOx28FENAcOpWkgoZRSKqy8pb0ONAdHtNi3b5876VksBRGgYySUUkqFWawPpLQVFha6WyZiiQYSSimlwioSl8auKIfDQUpKmZmRZcRi0KRdG0oppaqdnaUyVhJM2emrk5OT3QMpvYn22SfeaCChlFKqWjmdTmbPnl2pFVMjSUpKinvcg+fMDM8BpBD90zx90UBCKaVUtcrMzIyZIGLEiBFeB0/az8XSNE9fNJBQSilVrWJlnEBSUpLfwCDWpnn6ooMtlVJKVRun04lISBZ1Dqv4+PiY7KYIhrZIKKWUCkpFMzTaYyNiYbHIYcOG1YjWhkBoIKGUUqrCvGWjLC/hUkZGRkyMjSivS6Om0a4NpZRSFeYtG6W/hEtOpzMmpnpql0ZZGkgopZSqMF8DJr09b3dpxIJY6JYJNe3aUEopVWGJiYk+WxicTidwbOqjiMTMB3BxcTGZmZnateFBAwmllFIV4nQ6+eOPP3xuL52IKVaCCFusTF8NFe3aUDHlu+++48477+T000+nWbNm1K5dm+OPP560tDSee+459u7dW+4xRAQRYfr06VVfYeXV9OnT3a9DVRk7diwiQmpqapWdIxbZgyz9BQfRvOS3LTEx0Wc661hMc10ZGkiomHDo0CHGjh3LGWecwbPPPsvatWvZvXs3R44c4bfffmPhwoXccccddOjQgf/85z/hrq6KcRMnTkREaNeuXbirEnLeBlnGmri4OIYMGUJaWhoOh6PEtlhNc10Z2rWhot6+ffsYPHgw33zzDQA9e/bktttuo1evXiQlJfHbb78xd+5cnn76aXbv3s1VV13F9u3b+b//+78w11yp6BPrzfre8mHUhDTXlaGBhIp6N9xwgzuIuP3223n66aeJizvW2Na0aVO6du3KX//6VwYOHMj69eu599576datG4MGDQpXtZWKKgUFBTz88MPhrkaV8bdmhgYO/mnXhopqn376Kf/9738BGDp0KM8++2yJIMJTy5YtycjIoH79+hhjGDduHEePHq3O6ioVlfLy8jh8+HDMDZq0ea7eqSpOAwkV1Z577jnAGiA5efLkcsufcMIJ3HnnnQBs27aN//3vf37LFxYW8swzz9C9e3caNGhAo0aNOOecc5gxY4bf/VavXs3VV19Nhw4dqFu3LomJiSQnJ9OrVy/uuecesrKyfO77yy+/cNddd9G1a1eSkpJITEykQ4cO3HzzzWzZssXnfu3atUNEmDhxImANWOzfvz/NmjVzX5+77roLEeG4444rN8Pg//3f/yEitGjRwmvAtWfPHiZOnMiZZ55J48aNqVOnDu3atWPs2LGsXbvW77EBPvroI1JTU2nUqBENGjSge/fuPPPMMyHrfz9y5AhPPfUUXbt2pW7dujRr1oy0tDRmzpxZ7r7GGJYvX859991Hz549ady4MQ6Hg6ZNm9KvXz+mTJniderj4sWLEREeeughALZu3eoeNGrfxo4dW2KftWvXMmnSJPr160fz5s1xOBw0btyYnj17MmnSJPLy8kJxOSrl0KFD4a5CSNmDeEWElJQULrjggjDXKLpJrEaYVSklJcX4+yDwZsOGDXTq1KmKalQz5efn07hxY4qKikhNTWXRokUB7bdt2zbatm0LwMiRI3n//fdLbLf/ybzyyiu88847LF261Otxbr31VqZMmVLm+bfeeou//vWvfj+ohw0bxqxZs8o8//bbb3Pdddf5nFqXmJjIu+++y/Dhw8tsa9euHVu3buXBBx9kw4YNfPjhhyW2P/fcc6SmptK9e3cA5s+f77NrxxhD27Zt+eWXX7jlllt4/vnnS2z/7LPPGDlypM8Pubi4OF544QVuvPFGr9tvuukmpk6d6nVb//79GT16NNdff727LhW1f/9+zjvvPJYvX+51+z333MP27dt588036d+/P4sXLy6xffbs2V6vsadu3bqxYMECmjdv7n5u8eLFnHPOOX73u+qqq9wzgtasWUO3bt38lm/Xrh0LFiygQ4cOfstVhUOHDpGfn09RURFbt25lwYIF1V6HUEtMTOTuu+8OdzWikoisNMaklH5eWyRU1Prmm2/cH9b9+/cPeL/k5GSSk5MB+PLLL32We+yxx/jiiy+48847+f7778nNzWXRokX07t0bgOeff55XXnmlxD579+7lxhtvpKioiJSUFGbNmsWWLVvYu3cv2dnZzJs3j9tuu42mTZuWOd/s2bMZM2YMf/zxB4MHD2b+/Pls376dnJwcPvvsM/r27UtBQQGjRo1izZo1Puv92muv8eGHH3LDDTewatUqcnNz+e6770hNTaVbt2507twZgHfffdfnMZYuXcovv/wCwOWXX15iW1ZWFkOHDiUvL49evXoxY8YMfv31V3bv3s2XX37JsGHDKC4u5uabb2b+/Plljv3iiy+6g4i+ffuyePFicnNzWb9+PbfffjtLly7lscce81m3QFxzzTXuIOK6665jzZo15Obm8uWXXzJ48GAef/xxlixZ4nP/WrVqMXz4cF599VW++uorsrOzycnJYfXq1UyaNImmTZuyevVqd7Bj69u3L/n5+dx7772A9beWn59f4ub5NyMiDBw4kBdeeIEvvviCn376idzcXJxOJ1OmTCE5OZns7GxGjRoV8m6FQ4cOsXPnTn7//Xd27txZptUhLy+PvLy8mFgbw1MspOmONNoiEQRtkYgM06ZNc/8j/+9//8tll10W8L5Dhgxxf8gVFhZSq9axcceeuQueeOKJMt9eDh8+TN++fVmxYgVNmjTh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55/7/Da/YcMGn+MjPLtifL3+dsuNL3aw7i8HQyDn+fbbb/npp598HsOX8nJEAD4HEkeraGxVjRUaSNRAXbp0Yfz48UyYMIHx48dHbRABVj6ISy+9FLAGKt51110+v2nt2rWL888/n/z8fESEadOmlcgfUdovv/zCM888U+b5w4cPu3NLNGnShPT0dPe2LVu2cOTIEZ/H9PxQ8ExKNWbMGJo1a8bRo0f561//Wm7SHF8fghVRt25dd4vMu+++y/vvv09RURF16tRhxIgRXvc577zzOPXUUwEYN26cz6mzvup54YUXugd2/t///Z/Xa/Xkk0/y22+/VfTXcbvqqqsAa7zHAw88UGZ7UVERd9xxh8/9PQerepseu2vXrnIzI9qvbW5urs+xDZ5jfLyd59ChQ9x0001+z+ONnSPCDk6KiorYt29fmWAi0MGykWbEiBEx06oaKzSQUFFv2rRpnHnmmQA8/fTT9O7dm/fee48tW7awe/dunE4njz/+OJ07d3Y3Wz/22GPlrvzZrl077r33Xu666y42btzI7t27WbJkCQMHDnRP/Xv00UdLJHR68803adu2Lbfffjvz5s1j69at5OXl8fPPP/Pmm2+6P6AbNGhQYlBYvXr1eP311xERFi5cSI8ePXjttdfYvHkzeXl5bN++na+++oqnn36as846i4svvjgk185ueVi1apU7aEpPT6dhw4Zey8fFxfHmm29Sp04d1q1bx+mnn86UKVPYsGEDe/fuZefOnaxYsYIXX3yRAQMGkJJSMndNYmIikyZNAqzWl3PPPZelS5eye/duNmzYwB133ME//vGPEh+yFdWrVy93S9Nzzz3H9ddfj9PpZM+ePXz99dekp6czf/58n+dISUlxd1fddtttTJ06la1bt7Jjxw7ef/99zj77bHJycvx2afXo0QOAP/74g4cffpgdO3Zw9OhRjh496g50W7VqRZ8+fQDr7+jRRx9l8+bN5OTkMG/ePPr06cN3331X7jTV0srLEWGrW7duhY4bCZKSkmKuVTUWaGbLIGhmy8hz4MABbrzxRt555x2/fe9NmjTh2WefdX9r9caelvjyyy/zzjvv+GyC95aB0s5o6E/dunV5//33veZKmDFjBmPHji3zT7+07t27s2rVqhLP2ZktJ0yY4F64qzxFRUW0adOGnTt3up+bNWsWw4YN87vfsmXLGDlyJDt27PBbrnHjxl5bLfyttdG3b1+uuOKKKl1r4+6772bnzp0+19r4/PPPGTp0qNeZMQkJCfznP/9h6tSpLFmypMTaGZ7OPvts9/L2njzLr1u3jr59+3qdviwiPP3006xdu9ZnPb2xx7t407p164DLlhbuzJYOh0MDhjDTzJYqptWvX5+33nqLrKwsd3dN48aNSUhIoFWrVpxzzjk888wzbN682W8Q4al27dpkZmby+OOP07VrV+rVq0fDhg1JTU3lo48+8prGevz48XzwwQeMGzeOHj160KpVK2rVqkWDBg3o1q2bu3XDV8KlESNGsGXLFiZNmkTv3r1p2rQptWrVon79+nTq1InLL7+ct956K6C8A4GIj48vkVq8cePGAU2f69u3L5s3b2by5MkMGDCAFi1aUKtWLerWrUuHDh24+OKLefnll0uk1/b00ksv8eGHH9K/f38aNmxIvXr16Nq1K48//jiZmZl+E2oFomHDhixdupQnnniCLl26UKdOHZo0aUJqaioffPCBOzOpLwMHDuTrr7/moosuokmTJiQkJHDCCSdwxRVX8M033wSUjn3evHnccccddOzY0WsacoDTTjuNrKwsxowZQ8uWLXE4HLRq1Yrhw4ezcOFCv10wvvga+2A/7zl+Ilpoq0Nk0xaJIGiLhFIqUuXl5XkdXJmQkEDdunXLrLERqHC2SEyYMCEs51Ul+WqR0DwSSikVQ3wlKjty5IjfgcCRqvQ4GxV5tGtDKaViSCwt+52SksIFF1wQ7mqocmiLhFJKxRARCarrIlKICGeccYYGEFFEAwmllIoyhw4dIj8/n6KiIuLj42nQoAF169bl0KFDUR1EACWStqnooIGEUkpFETvhlB0w2AmngKhecEtFLw0klFIqivhKOOUtF0W00TTX0UkHWyqlVBSJpcGUnjTNdfTSQEIppaKEt/wQsUBENOFUFNOuDaWUihLlpU6PRpr6OvppIFGNjDHudRyUUqqiwtWtEYqZIImJie7065mZmezbt4+kpCTS0tI0iIhyGkhUk/j4eI4ePVpm+VullIp0xphKBTEjRowoESxo4BBbIn6MhFg6ichVIvKiiKwQkcMiYkTkjwD2n+4qW97t71X5e9SvX1+nZimlgmIvtBUuR44cITc3N6h9HQ6HBg4xLhpaJNoC34e7EpXVuHFjfv31V+rVq+dzJUCllDp0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pk1+gwVfXS+B5o7Iz88nPz+f448/vlL1VEqpmqJFixYYY9i9ezfNmjUL+fG1RSKMvHVLzJkzB6fTGfAxIm1woR0seGMHSqX76SqSOyI/P59GjRqV6TpRSinlnYjQqFEj8vPzq+T4+t84jEIxXqCqmqqCVV6w0KVLF9LT093BRlJSUoXW0Dh69Ci1amlDmlJKVYSdTbgq6H/kMKrseIGKtFxUB89gAXwnmqps7gillFKRQwOJMKrMeAGn08nMmTOroloV4mtZbw0WlFKqZtCujTAKdryAPbYiEro1LrroIiZMmMD48eM1cAiB7OxsRISxY8eGuyrVpib+ztXhqquuokWLFhw8eLDC+0bTa7Jy5UpEhFdffTXcVamxNJAIo2DHC0TKlM/ExMSIDR5EpMStdu3aNG/enB49enDttdeSkZFBUVFRpc5h/wPr2bOn1+3vvfee+/xbtmwps72goIA6depQt25dDh8+XKm6RLpo+mCyRWOdbStWrOCtt97innvuoV69euGuTpU644wzGD58OA888AAHDhwId3VK+PXXX7n66qtp3bo1tWvXpl27dowfP569e/dGxPFCRbs2wiyYLoBImPLpcDgYMmRIuKtRrgkTJgBWNsy8vDzWr1/PW2+9xWuvvUZKSgrvvPMOJ598clDH7t69O40bN2blypXs37+fhg0bltiemZnp7vpZuHAh11xzTYntX375JYcPH+bcc8+ldu3awf2CMaBNmzZs2LBBl48Pofvvv5+GDRty4403hrsq1eLee++lZ8+eTJkyhfvuuy/c1QHgp59+4s9//jO7du1i2LBhdOzYkW+//ZZ//etfzJ8/ny+//JKmTZuG7XihpIFEhKhIPgn7wylUKnq8aFqlc+LEiWWe27lzJ7feeisffvghAwcOJCsrixYtWlT42HFxcaSmpjJz5kyWLFniXhrdtnDhQlJTU1m7dq3XQGLhwoUANX7ZdIfDQceOHcNdjZjx448/8vnnn3PttdeSmJgY7upUi7POOouOHTvyyiuvcM8990TE9PCbbrqJXbt2MWXKFG699Vb383fccQfPPfcc999/Py+//HLYjhdK4b/aqkL5JJxOZ8jHRgR6vKSkpJgYD3Hcccfx3//+l9TUVH755RceffTRMmU++OAD+vXrR1JSkrsL57HHHivTBWEHAXZQYMvOzmbLli2kpaXRv39/Fi1aVOYc5QUS2dnZjBo1imbNmlGnTh1SUlL45JNPSpTZuHEjIsI555zj8/ft0qULDoeD7du3+yzjafny5VxyySW0bNmShIQETjjhBK6//np+//33MmU//vhj0tLSaNWqFbVr16Z169b079+fl156yV1m4sSJtG/fHoA333yzRJfT9OnTfXYheD7/008/cckll9C0aVMaNGjAeeedx7p16wDIyclh3LhxtGrVijp16nDmmWd6vd7Tp0/n4osv5k9/+hOJiYk0bNiQ3r178/bbb5cpW16dg7lWgfriiy9ITU2lYcOG1KpVi7Zt2zJp0qQy2WJ9ef311zHGcNlll3ndHshrVp5A3x+er+HGjRsZPnw4TZo0oV69evTp04cFCxb4PEdFr+2oUaPYtm0bn332WcC/R1X56aefWLBgAe3atePmm28use2hhx6iXr16vPXWWwGPXwn18UJNA4kIEGg+CTvgCIeKJI2KBnFxcfzjH/8ArLEMnsHUfffdx2WXXcaGDRsYPXo0t9xyC8YY7rvvPgYNGlRiufIBAwYAlHmt7McDBgzgnHPOYfv27Xz//ffu7fv37ycrK4vGjRvTo0ePMvXbunUrZ511FtnZ2YwZM4bLLruMdevWMWzYsBIfkh07duScc85h8eLF/Pjjj2WO89VXX7n3a9WqVbnX5fXXX6d3795kZGRwzjnnMH78eFJSUnj11VdJSUlh27Zt7rLTpk1j2LBhfP/996Snp3PnnXdy/vnnU1BQwBtvvOEul5qayt/+9jfASqE+YcIE961bt27l1ik7O5uePXuyc+dOxo4dy3nnncfnn39OamoqmzZtolevXqxYsYLLLruMkSNHsmbNGoYMGVKirgA33ngjW7dupV+/fowfP55Ro0axdetWxowZwwMPPFCibCB1rsi1CtT9999Pv379yMvL44YbbuC6665j//79PPDAAzzyyCMBHePzzz8nPj6eXr16ldkW6GvmT0XeH7YtW7Zw9tlns2fPHq6//nouvfRSVq5cyZAhQ3j//ffLlA/m2vbu3RsgIgIJ+z163nnnlWkdadCgAb179+bQoUN88803YTleqGnXRgQINJ9EuAZZRlNXRkX06dOHWrVqsWvXLrKzs2nfvj1ff/01jz32GCeccALffvstLVu2BOCxxx7joosu4pNPPuHpp59298N26tSJVq1asW7dOnJycmjevDlgtTbUr1+fM8880z12YuHChXTu3BmAJUuWUFRURGpqqtdm2MWLFzNx4kT3GA+A0aNHM3jwYJ566qkSLRA33XQTixYtYtq0aTz99NMljjNt2jQArr/++nKvx48//sgNN9xAu3btWLJkCW3atHFvy8zM5LzzzuNvf/ube9rxK6+8QkJCAmvWrCnTNZSbm+v+OTU1lXbt2vGvf/2Lbt26leluys7O9luvJUuWMGnSJO6//373c//85z958MEH6dmzJyNHjuSll15yX8dzzz2XK6+8kueee47nnnvOvc+6des48cQTSxz7yJEjDBkyhMcff5wbbrjB/TuXV+eKXqtAPPfcczz66KPcfffdPP744+6stePGjaNHjx48++yz3H///X6b7Q8ePMjq1avp1KmT10GWgb5mvlT0/WFbunQpf//733nqqafcz91yyy2cffbZ3HDDDQwZMsT9Pgn22p555pnucwVq8uTJ5OXlBVy+W7duDB8+vNxyP/zwA4DP8VcdOnRgwYIF/PjjjwF9QQv18UJNA4kIEGg+iVAMsnQ4HIiI128NCQkJJCYmBr3uR7SpXbs2TZs2ZefOneTk5NC+fXtef/11AP7xj3+4/0kC1KpVi2eeeYZ58+bx6quvlvhHmZaWxttvv82iRYsYOXIkYH2D6Nu3L7Vq1eLUU0+lRYsWLFy4kFtuuQUov1ujbdu27hYT26BBg0hOTubbb78t8fzw4cNp1aoV06dP55FHHnEP3MzLy+ODDz7gxBNPZODAgeVej6lTp1JYWMi//vWvEv+87XpeeOGFzJkzh/z8fBo0aOC+Lt6WJg5lPv927dpxzz33lHjuqquu4sEHH+Tw4cM89dRTJT5cR48ezdVXX83q1atL7FM6iADrb/7mm29m4cKFZGZmcuWVVwZUp2CulT+///47DzzwAGeffTaPPfZYidT33bt3p2PHjmzcuJFffvmFtm3b+jzOb7/9RlFRkd/Wp8q8ZsG8P8D6X/bggw+WeC4lJYXLL7+cN998k5kzZ3LVVVcBwV/bpKQk6tSpU6GWoMmTJ7N169aAy1911VUBBRL2/2p/ywUAAQcxoT5eqGkgEQHS0tKYM2dOidYGb10JvgIOfxITE0lISCgRHGRkZHgtGx8fz/jx4ytc/2hmd2nY/7hXrVoFHOuy8HTyySdz/PHHs2XLlhJrigwYMIC3336bhQsXMnLkSDZs2MD27du5/fbb3fumpqby2WefUVxcTFxcXLmBRLdu3byubnrCCSfw9ddfl3iuVq1aXHfddTz88MN89NFHjB49GoC33nqLgoICxo0bF9CaLPZxlyxZwooVK8ps37VrF0VFRfz444+cccYZXH755dx555107tyZUaNG0b9/f3r37u1ulQkVb9eidevWgPWalP6gjo+P57jjjuPXX38t8fy2bdt44oknyMzMZNu2bRQUFJTY/ttvvwVcp4peq/K89957HDx4kDvuuMNri4PdulDeire7d+8GoHHjxl63V/Y1C+b9AdCjRw+vAVVqaipvvvkm3333nTuQqMy1bdKkCTt37gzod4HyW8NUYDSQiADlpZS2eQs4ylNQUMDdd99d4rkZM2b4LFuT/PHHH+zZswfA/Y/UDtR8faNr1aoV27ZtIy8vz/2P0g4G7HERnuMjbKmpqXzwwQd89913JCcn43Q6adOmjc/ZCo0aNfL6fK1atbwOuhs3bhyPPPIIr7zyijuQmDZtGgkJCfz1r3/1fRE82B9Cns3P3thz9e+44w6aNWvGSy+9xJQpU5g8eTIiQv/+/XnqqadISUkJ6Lzl8fYtzF5vxdc3tFq1apV4n/z888+cddZZ7N27l759+3LeeeeRlJREfHw82dnZvPnmmxXK5VHRa1We2bNnExcXx/nnn+91+2+//Ua9evXcAZQv9iyNP/74w+v2yr5mwbw/wBrg7I3dquH5Baky17agoCAiZqrYv3t53da+3udVfbxQ00AiQgSST8JbwNGhQwfWrFnjM7jw9o+2skt5x4ovvviCo0ePctxxx9GuXTvg2DXYsWOH16Zwe+aD57VKTk7mxBNPZPPmzfzyyy8sXLiQRo0a0b17d3cZe0zDwoULadu2LcaYkPZltmnThgsvvJCZM2eyceNG9uzZw7p167jssssC/rbp+c+qdE4MX6688kquvPJK8vLy+Oqrr5g5cyavv/46gwYNYuPGjSFvnQjWs88+y+7du3njjTfKzA557733ePPNNyt0vGCulS9Hjx7l22+/pVmzZtStW7fM9hUrVrBjxw6GDh1a7rRGe9yD/WHsTWVes2DeH4DPVoIdO3aUKR/stS0uLiYvL8892yYQVTVG4pRTTgHwOgAaYNOmTYDvMQ9VfbxQ00AiyngLOJKTk8nIyCjTouBrpkWgXSmxrLi42D0K3v4GD1Z/9KpVq1i8eHGZf5SbN2/m119/pX379mUi/7S0NH766Sc+//xzFi9eTP/+/Uv80+/YsSMtW7Z0BxL2PqF00003MXPmTF555RV3prtABlnaevXqxcqVK1m2bBkXXHBBhc7dqFEjzj//fM4//3yKi4t5/fXXWbp0KRdffDFwrEm+stlEg7V582YAd308LVmyxOs+/upcmWtV2vr16zl8+DBHjhxxd315euaZZwCr1ak8rVq1onnz5u7Bef6U95p5E+z7Y9WqVV7HiyxevNh9XFuw1/aHH37AGBPQTCBbVY2RsL84LFiwoMxrmp+fz5dffkndunW9zqypjuOFmk7/jAFdunTh7rvvZsSIEQGl267sUt7RbteuXYwaNYrFixeTnJxcYmDY1VdfDcCkSZPIyclxP19UVMTf//53iouLyySWgmPdGM899xx79+71mtfhnHPOYdmyZe6586EOJNLS0jj55JN58803+eCDDzjllFP85pco7ZZbbsHhcHD77bd7/eZz5MgRli1b5n68aNEirzlIdu3aBVDi23Xjxo0RkaCmRIaC3eJkf3DZPv30U59rNPirc0WvlT8rV64ErIFy8+fPL7HtxRdf5P3332fw4MFlEp55IyL069eP3Nxcd/DkqSKvmTfBvj/27dvHww8/XOK5rKws3nnnHZKSkrjooovczwd7be2pjxX5m8/OzsYYE/DNM4eIPyeeeCLnnXce2dnZvPjiiyW2TZgwgYMHDzJmzJgyM2t++uknNm7cWKaFOdjjVRdtkYghFUm3XVNW57Sn7dnNnuvXr+eLL77gyJEjnHXWWbzzzjslRqv/+c9/5u677+bJJ5/ktNNO45JLLqFevXpkZGSwbt06+vTpw1133VXmPAMGDEBE3EnEvA1GO+ecc3jvvffYsmULp5xySpkR6ZUlItxwww3ccccdQGDfYD117NiR119/nauvvppTTz2VwYMHc/LJJ1NYWMi2bdtYtmwZzZs3Z+PGjYC1YFv9+vXp1asX7dq1wxjDsmXLWLFiBWeccUaJmSL169enZ8+eLFu2jMsvv5yTTz6Z+Ph4Lrzwwkp3DQTipptu4o033uDSSy/lkksuoXXr1qxbt4758+czcuRIr7kM/NW5a9euFbpW/tiBRHp6OpdccgmjR4+mefPmLFu2jC+//JKUlBTefffdgH/X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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": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DoWhy estimate is 0.00469169526948221\n", "Actual true causal effect was 0\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": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Refute: Add a Random Common Cause\n", "Estimated effect:0.00469169526948221\n", "New effect:0.004663014187681114\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": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Refute: Use a Placebo Treatment\n", "Estimated effect:0.00469169526948221\n", "New effect:-7.444932894999923e-05\n", "p value:0.47\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": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Refute: Use a subset of data\n", "Estimated effect:0.00469169526948221\n", "New effect:0.004670042418977669\n", "p value:0.45\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.8.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }