{ "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\n", "import logging\n", "logging.getLogger(\"dowhy\").setLevel(logging.WARNING)" ] }, { "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": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Action Outcome w0\n", "0 3.113147 6.266040 -2.991157\n", "1 9.870317 20.009844 3.995410\n", "2 2.466091 6.030570 -3.130654\n", "3 8.648457 18.564791 3.077105\n", "4 5.903761 11.102452 -0.325468\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[[\"Action\", \"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": "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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": 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" ] } ], "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": [ "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", "Estimand type: nonparametric-ate\n", "\n", "### Estimand : 1\n", "Estimand name: backdoor1 (Default)\n", "Estimand expression:\n", " d \n", "─────────(Expectation(Outcome|w0))\n", "d[Action] \n", "Estimand assumption 1, Unconfoundedness: If U→{Action} and U→Outcome then P(Outcome|Action,w0,U) = P(Outcome|Action,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()\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": "stdout", "output_type": "stream", "text": [ "Causal Estimate is -0.010748140888287239\n" ] }, { "data": { "image/png": "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tns4zDYX+4gw98svv9jnU3fr1q1Cx1JK0atXL9544w1++OEHtm7dyoEDB8jOzmbixIkkJiaSk5PDkCFDKuVbzPPPP8/y5cuJjY3liSeeYPXq1ezfv599+/axcuVK3nzzTbp3715mmmao6h0XF8fgwYMB+Oyzz9we+8SJE/YPxmHDhpU5xoABA3j33Xf56aefyMnJYf/+/axevZrx48fToEEDVq9ezciRIz3WZePGjYwePZru3buTlZXF/v372bp1K/fff7/Xv4s/9ejWrRt5eXk8+uijACQmJpKXl1fq9s4773hVBzDG+pjX6sYbb2TZsmUcOHCA1atXc8cdRg9tVlYWN998s8fj/OMf/2Djxo289tpr/PHHHxw4cIDZs2dz7rnnAjB69OgquZJnpI2HcGS1WhkwYIA9UPBm6mowRUOLxEu2ew1MdtrW0HZ/2NYF4o7ju6pBoCrmq2ifyx/oD+Bt207Hfy1btqzQsdq0aWNv3XDUoEEDLr74Yq6//npat27NypUrycrKolevXhU6nzOzyfn+++/nqaeeKrWtUaNGtG/fnnvuuSes6j1s2DDeeustcnJy+Omnn+jSpUuZMjNnzuT48eMopRg6dGipbX379qVv375l9mnYsCFt27Zl4MCBtG3blhkzZrB582a3LSp79+6lZ8+efPfdd/YVdhs2bGj/4CyPv/WIjY2lVq1axMfHA8b7t1atMhPHvLJixQref/99AO68804mTz79r6xBgwb85z//oX79+rz44ovMnDmTOXPm0KdPH5fH2rlzJ0uWLKFz587259LT05kxYwZt2rThxIkT/O9//3P59xStsrOzI248hKOHH3641GN3U1edB2MGS0S3SCilHgLMtp5JLmZc1LTdnyznUI4doC7/EyilRiilliullu/fv9/3yoqAO3z4sP3nyu47bNKkif1D2Nvld31htqyceabzMJ+Kqcx6X3755TRvbjQGfvLJJy7LmN0aXbt2JTEx0afjt27dmvbt26O1ts/KcefFF1+0BxGB5ks9/GUGETVq1OCll15yWeapp56icWMjFc57773n9lhDhgwpFUSYkpOT7d1gy5Ytq2CNw5+ZTGrcuHFMmzYtYoMIKDvt013rSqhaXSI2kFBK9QbMjtls4J+VeT6t9WStdYrWOqUy+0lF6JSUlPDpp58yYMAAEhMT7aO6zduXX34J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srJCXY2gkUBCCCFEUERzd4azqvS7SteGEEKIgCgvwZRSqsrMyojmwaTOJJAQQghRYZ4STAHMnDmzygQRFoslqqZ3lkcCCSGEEBXmLsGUOVaguLg4FNUKGnPp82idmeGJBBJCCCEqzN2YgGgZKxAbG+s2GEpISGDUqFHBrVAYkcGWQgghKiwaxwSYv1NCQgL9+/d3mWCqqnVjuCItEkIIISosLS2NGTNmUFJSEuqqBIRSym0rQ7QnmPKVBBJCCCEqxJytES1BBLhf86MqJJjylQQSQggh/JKdnU1mZib5+fmhrkrARWNXTWWRMRIiqqxatYoHH3yQtm3b0rBhQ6pVq8bZZ59NWloar732GocPHy73GEoplFJMmTKl8issXJoyZYr9dagsw4cPRylFampqpZ0jmpnTPaMxiJBxD76RQEJEhRMnTjB8+HA6duzIq6++ytq1azl48CCFhYXs2rWL+fPn88ADD9CiRQv++9//hrq6IsqNHTsWpRRJSUmhrkqliaZ01zExMVitVsBoicjIyJDuCx9I14aIeEeOHKFPnz788ssvAHTq1In777+fzp07k5CQwK5du/j22295+eWXOXjwILfeeiu7d+/m//7v/0JccyEiVzRM61RK8eSTT4a6GhFPWiRExLvrrrvsQcTo0aP56aefGDp0KOeeey4NGjSgTZs2PProo6xfv56LLroIgEcffZTvvvsulNUWIiKcOHGCvXv3kpuby4QJE8jOzgawf4OPZFUl02Zlk0BCRLTvvvuOzz77DIB+/frx6quvEhPj+s+6SZMmZGZmUqtWLbTWjBgxglOnTgWzukJElBMnTnDkyBF7IqYjR44wY8YMnnvuuagYGyEDKgNDAgkR0V577TXAaKKcMGFCueXPOeccHnzwQQB27NjB//73P4/li4qKeOWVV2jfvj21a9embt26XHHFFUybNs3jfqtXr+a2226jRYsW1KhRA6vVSmJiIp07d+aRRx5h+fLlbvfduXMnDz30EG3atCEhIQGr1UqLFi2499572bZtm9v9kpKSUEoxduxYwBiw2KNHDxo2bGi/Pg899BBKKc4444xyUxb/3//9H0opGjdu7DLgOnToEGPHjuWSSy6hXr16VK9enaSkJIYPH87atWs9Hhvgq6++IjU1lbp161K7dm3at2/PK6+8ErB+98LCQl566SXatGlDjRo1aNiwIWlpaUyfPr3cfbXWLF26lMcee4xOnTpRr149LBYLDRo0oHv37kycONHlB+nChQtRSjFu3DgAtm/fbh80at6GDx9eap+1a9cyfvx4unfvTqNGjbBYLNSrV49OnToxfvx4cnNzA3E5fHbixAlyc3PLfGsvKSmhsLAwJHUKJBlQGThKmnZ8l5KSoj19ELiyYcMGWrVqVUk1qpry8vKoV68excXFpKamsmDBAq/227FjB82aNQNg8ODBfP7556W2mzMF3nnnHT7++GMWL17s8jh///vfmThxYpnnp06dyt/+9jePH9T9+/dnxowZZZ7/6KOPuPPOOzl58qTL/axWK5988gkDBgwosy0pKYnt27fz5JNPsmHDBr788stS21977TVSU1Np3749AHPmzKF3794uz6O1plmzZuzcuZP77ruP119/vdT277//nsGDB7v9kIuJieGNN97g7rvvdrn9nnvuYdKkSS639ejRg6FDhzJy5Eh7XXx19OhRrrrqKpYuXepy+yOPPMLu3bv58MMP6dGjBwsXLiy1febMmS6vsaN27doxd+5cGjVqZH9u4cKFXHHFFR73u/XWW+0zgtasWUO7du08lk9KSmLu3Lm0aNHCY7lAMlsiHK/99u3bmTt3btDqUBnM1UclkZR/lFIrtNYpzs9Li4SIWL/88ov9w7pHjx5e75eYmEhiYiIAP/74o9tyzz33HD/88AMPPvggv/32GwcOHGDBggV06dIFgNdff5133nmn1D6HDx/m7rvvpri4mJSUFGbMmMG2bds4fPgwOTk5zJ49m/vvv58GDRqUOd/MmTO5+eabOXnyJH369GHOnDns3r2b/fv38/3339OtWzfy8/MZMmQIa9ascVvv9957jy+//JK77rqLlStXcuDAAVatWkVqairt2rWjdevWAHzyySduj7F48WJ27twJwLBhw0ptW758Of369SM3N5fOnTszbdo0/vzzTw4ePMiPP/5I//79KSkp4d5772XOnDlljv3mm2/ag4hu3bqxcOFCDhw4wPr16xk9ejSLFy/mueeec1s3b9x+++32IOLOO+9kzZo1HDhwgB9//JE+ffrw/PPPs2jRIrf7x8XFMWDAAN59911++ukncnJy2L9/P6tXr2b8+PE0aNCA1atX24MdU7du3cjLy+PRRx8FjL+1vLy8UjfHvxmlFL169eKNN97g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Y8aMsd/atWtXbp1ycnLo1KkTe/fuZfjw4Vx11VXMmzeP1NRUNm/eTOfOnVm2bBk33HADgwcPZs2aNaSnp5eqK8Ddd9/N9u3b6d69O6NGjWLIkCFs376dm2++mSeeeKJUWW/q7Mu18tbjjz9O9+7dyc3N5a677uLOO+/k6NGjPPHEEzzzzDNeHWPevHnExsbSuXPnMtu8fc088eX9Ydq2bRuXXXYZhw4dYuTIkVx//fWsWLGC9PR0Pv/88zLl/bm2Xbp0AYiIQMJ8D1911VVlxq3Vrl2bLl26cOLECX755ZegHivcyBiJMGWOPzCzRAabOWYgISGBFi1asHnz5lJZNoM5U6Nr167ExcWxb98+cnJyaN68OT///DPPPfcc55xzDr/++itNmjQB4LnnnmPgwIF88803vPzyy/Z+2FatWtG0aVPWrVvH/v37adSoEWC0NtSqVYtLLrnEPnZi/vz5tG7dGoBFixZRXFxMamqqywGwCxcuZOzYsfYxHgBDhw6lT58+vPTSS6VaIO655x4WLFjA5MmTefnll0sdZ/LkyQCMHDmy3Ovx+++/c9ddd5GUlMSiRYs466yz7NuysrK46qqr+Mc//sH06dMBeOedd4iPj2fNmjU0bty41LEOHDhg/zk1NZWkpCT+/e9/065dO8aOHVuqbE5Ojsd6LVq0iPHjx5dqnn366ad58skn6dSpE4MHD+att96yX8crr7ySW265hddee43XXnvNvs+6des477zzSh27sLCQ9PR0nn/+ee666y7771xenX29Vt547bXXePbZZ3n44Yd5/vnn7d8UR4wYQYcOHXj11Vd5/PHHPeZ6OX78OKtXr6ZVq1YuB1l6+5q54+v7w7R48WL++c9/8tJLL9mfu++++7jsssu46667SE9Pt79P/L22l1xyif1c3powYQK5ublel2/Xrh0DBgzwurw7mzZtAnA7PqtFixbMnTuX33//vdwvV4E8VriRQCKMJScnk5yczIQJE4IaTFgslrCa1lmtWjUaNGjA3r172b9/P82bN+f9998H4F//+pf9nyQY+eVfeeUVZs+ezbvvvlvqH2VaWhofffQRCxYsYPDgwYDxLaFbt27ExcVx0UUX0bhxY+bPn899990HlN+t0axZM3uLial3794kJiby66+/lnp+wIABNG3alClTpvDMM8/YB27m5ubyxRdfcN55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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 -0.010748140888287239\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": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Refute: Add a Random Common Cause\n", "Estimated effect:-0.010748140888287239\n", "New effect:-0.010632355420572281\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": "stdout", "output_type": "stream", "text": [ "Refute: Use a Placebo Treatment\n", "Estimated effect:-0.010748140888287239\n", "New effect:5.139016302534216e-05\n", "p value:0.48\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": "stdout", "output_type": "stream", "text": [ "Refute: Use a subset of data\n", "Estimated effect:-0.010748140888287239\n", "New effect:-0.010887492865577003\n", "p value:0.5\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": 2 }