{ "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 seaborn as sns\n", "import math\n", "import dowhy\n", "from dowhy.do_why 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 9.226765 17.942530 3.064244\n", "1 5.627733 11.675522 -0.379016\n", "2 9.593378 19.594728 3.692605\n", "3 6.347941 12.917889 0.480172\n", "4 2.806808 5.247733 -3.304526\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": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAGXCAYAAAC5o4m0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzsnXl8VOX1/z9PwmRhM4SgQFi1gkiBRGLBLy1YN1QQI6sFFKsFNVp32tBSoUZLvqUuX5cfLlWUxQUUgxQQESybQInMhDQoKpsaLksIIYEMZEie3x83N0ySWZ67zb135rxfr3klmTnPvSeTyT33nOcsjHMOgiAIgiCinzirFSAIgiAIIjKQ0ScIgiCIGIGMPkEQBEHECGT0CYIgCCJGIKNPEARBEDECGX2CIAiCiBHI6BMEQRBEjEBGnyAIgiBiBDL6BEEQBBEjkNEnCIIgiBihhdUK6CEtLY336NHDajUIgiAIImJ89dVXZZzzDlrWOtro9+jRA4WFhVarQRAEQRARgzF2UOtaCu8TBEEQRIxARp8gCIIgYgQy+gRBEAQRI5DRJwiCIIgYgYw+QRAEQcQIZPQJgiAIIkYgo08QBEEQMQIZfYIgCIKIEcjoEwRBEESMQEafIAiCIMxAkoBhw4DDh63WpAEy+gRBEARhBnl5wObN8lebwDjnVuugmaysLE6994lYhnOOqqoqVFZWorq6GrW1tVarRBAxRVxcHBITE9GqVSu0bdsWiYmJ8guSBPTsCZw9CyQlAfv3Ax07GnJOxthXnPMsLWsdPXCHIGIZzjmOHj2K06dPIzU1FR07dkR8fDwYY1arRhAxAeccdXV1OHPmDE6dOoWDBw+iY8eOaNu2rezdnz0rC545I//8yivWKgzy9AnCsVRWVqKsrAzdu3dHfHy81eoQRMxz5swZ/Pjjj+iSmIjkSy8FamrOv2igt6/H06c9fYJwKJWVlUhNTSWDTxA2ISkpCe3atcOJ9esbG3zgvLdvMWT0CcKhVFdXo3Xr1larQRCEHxdccAFOpaYGfnHDhsgqEwAy+gThUGpra8nLJwib0aJFC9QqyXxNadMmssoEgIw+QTgYStojCHvBfD4gWK7ctm2RVSYAZPQJgiAIwih+/NFqDUJCRp8gCIIgjKKiwmoNQkJGnyAIgiCMwuZl8NSchyCImEdvboST+50QsQV5+gRBEDFIWloaGGP4xz/+YbUqtmDs2LFgjGHkyJHaD1JdHfr1tm21H9sgyOgTBBHzVFVVBXysWrWqQebVV18NKkcQAIC9e0O/XlkZGT1CQOF9giBinmBNjpKTkxu+T0xMpGZIRHCqq8/32g+GDUpsydMnCIIgCL3s2xdexuUyX48wkNEnCIIwiKb7wp9//jluvfVWdO7cGS1atMDkyZObrdm/fz8effRR9O3bF23btkXLli3Ru3dvPPzww/jpp5+CnuvkyZN47733MHHiRFx66aVo2bIlkpKS0KNHD0ycOBFffvllSB2PHz8OAJg+fToYY40e/oPMsrKywBjDgw8+CABYvnw5rrvuOqSlpaFNmzYYPHgwli5d2ugcxcXFuOOOO9CtWzckJSXhZz/7GZ588kmcOXMm7Hu4YsUKjB07Fl26dEFiYiJSU1MxdOhQvPrqqzh37lzANf/6178adC8rK0N5eTn+8Ic/4NJLL0VSUhI6dOiA2267DTt37my29uWXXwZjDB999BEAYOXKlc3eD6G8B4HfDT5feBmz4Zw79jFw4EBOELHK7t27rVYh6vniiy84AA6Az58/P6z8mDFjOAA+YsQIPmfOHM4Ya1gPgE+aNKmR/GuvvcYTEhIayfg/WrduzT/99NOA57ruuuuCrlMezzzzTFAdQz127NjRID9w4EAOgD/wwAN8+vTpQdf8/e9/55xzvmzZMp6UlBRQZvjw4byuri7g71NVVcVHjhwZUq/BgwfzsrKyZmtXrFjRILN9+3bevXv3gOsTExP5+vXrG6196aWXwr4fc+fODf2H55zzwkLOd+zgfMcOvnv1as7l4r3Gj6Sk8McRAEAh12g3LTfceh5k9IlYhoy++Wg1+p06deKMMT58+HC+YcMGfuzYMf7dd9/xf//73w2yixYtajj2rbfeyteuXcsPHz7Mjx07xletWsUHDRrEAfBWrVrxb775ptm57rzzTv7EE0/wFStW8KKiIn706FF+4MAB/tlnn/HRo0c3HPvzzz9vtM7r9fKqqirevn37hhuDqqqqRo/a2toGecXo9+jRgwPg9913H/d4PPz48eN869at/Be/+AUHwF0uF//ss894y5Yt+a9//Wv+xRdf8LKyMr5nzx5+5513NuizYMGCZr9LXV0dv+GGGxp+36eeeorv2rWLl5eX83379vH/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P986ozh0qHllOTU1wKRJ8o0Sef22wO124/HHH8eAAQOQlpaGxMREdOnSBddeey2ef/55nDhxwmoViUgQLifJIWXIZPQJ41EG6Vx1FfDWW/qOlZEhh9ObGtnaWuuM4tat5iYllpTIZX1W3tgQqK6uxl133YWBAwfiueeew65du3D8+HHU1NSgtLQU69evx2OPPYZLL70UCxYsME2Pt99+G4wxMId4klFJdbVjjHo4yOgTxpObK2ejb9um/Rj+yXSBjGxNDfDll/r01Ip/Up9ZWf2AtTc2Mc7Jkydx7bXX4p133gHnHIMGDcLixYuxd+9elJWVoaioCH/729+QmpqK48ePY8qUKfjf//1fq9UmzOK778LLOCCJDyCjTxiNJAGLFhl7TJHseqtoqpuRSX41NeTtW8R9992HbfU3rY8++ii+/PJLTJw4ERdffDHat2+P/v37Y8aMGSgpKUHfvn0BADNmzMCaNWusVJswg5oasal6DkjiA8joE0YzbVroCVThMLsszkzMmBx45gwwY4axxyRCsmbNGrz//vsAgJEjR+K5555DXFzgS2XHjh2xevVqtG7dGpxzTJs2DedicaZENBMFrXf9IaNPGIckAf/6l/b1DvrHCUhenr4bnkBwDqxYYewxiZA8//zzAADGGF544YWw8l27dsXjjz8OAPjhhx/woV9PigMHDjTsx//73/8Oeoy77roLjDFcffXVzdb+9re/bXhOOZby8Jf3Z+3atZg0aRJ69uyJ5ORkpKamon///rjrrrvw6aefBtXjo48+wi233IKOHTsiMTERF154IYYPH45FixaBB7kZb/o7njlzBs888wz69euHVq1aoWPHjhg7dix27248h23JkiW4+uqrkZaWhlatWuGqq67CsmXLguqmcPr0aTz77LP41a9+1ZBYmZ6ejvHjx2PTpk1h16tGpPWumTk+RsM5d+xj4MCBnLAR110XKAgv/oiLs/o30EdGhr7fP9gjOZlzSWp2ut27d1vwS0Y3lZWVPD4+ngPgV199tfC6gwcPcgAcAB8/fnzD8/v37294/osvvgi6fsqUKRwAHzZsWMC1wR7+8pxzfurUKT569Oiw65ri9Xp5dnZ2yDXXXnstr6ysbLbWX8+CggKemZkZcP0FF1zAd+7cyevq6vjvfve7oOd57bXXgr5Pbrebd+nSJaSeubm5wf9QWti5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\n", "text/plain": [ "" ] }, "metadata": {}, "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.do_why:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n", "INFO:dowhy.do_why: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:There are unobserved common causes. Causal effect cannot be identified.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARN: Do you want to continue by ignoring these unobserved confounders? [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: ate\n", "### Estimand : 1\n", "Estimand name: backdoor\n", "Estimand expression:\n", " d \n", "──────────(Expectation(Outcome|w0))\n", "dTreatment \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": [ "Treatment\n", "Causal Estimate is 0.0051827863049\n" ] }, { "data": { "image/png": "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AFHWzbhx44BfXmtOTk6tXmsooj6x0FrfVUOT53AMcSQDmXgkFkopC3CT8+4cj6TC0zhnGwuOHpCarieiSH5+PjNmzAAgKyuLV199NWD7+Ph4HnnkEYYNG9YA0QkhopV3ZUzPstq+PnCNlEy4uIY4avta68oIcywC0lqfAr513j3D6+neOIY8AD7yc3wBsNR597KwByjq1eTJkwFHGdqpU6cGfVznzp2rPbZ582b3xM/WrVtjsVho2bIlPXr0YMKECRw5csTv+UaPHo1Sin79+vlts2vXLvfkPV/foMvKynjxxRfp06cPycnJWCwWWrVqRadOnbjyyit5/fXXfU48rUvcoZo3b577tdRUTCcvL8/ddvPmze7HtdasWrWKRx55hB49etCyZUssFgvJycn06dOHqVOnBnwT9/6bL1u2jCuuuIIzzzyTuLi4KsljoMmbocbhmoz5xBNPALB7927363T9eF4v2MmbH3/8MVlZWbRt25aEhATatGnDoEGDmDVrlt8eD+//t06ePMkzzzxDly5daNasGaeddhoZGRnk5eX5vW5j42sYw7OGg+ekzEmTJpGbm2uopMJzEmZNrzXcor7HIkinO2+Pej1+ocfvqwIcvwoYAJyllGqltS4MZ3CifhQXF/P5558D0L9//zpNntu0aRMXXHBBtcePHDnC6tWrWb16NW+88QYLFy4kNdXvPOGQFRcX079//2rjsgcPHuTgwYNs27aNjz/+mPT09CpxRiruQYMG0apVKwoLC3n33Xf5xz/+4bftO++8A8D5559Ply5d3I9/8sknPnuODh06xPLly1m+fDlvvfUWCxcurHGfnRdffJExY8ZQWVlZ69cSzjjq4sSJE1x99dXk5uZWebygoICFCxeycOFCZsyYwezZs0lMTPR7nuLiYvr06cPq1aurPL548WIWL17Ma6+9xi23yHQyf7UaioqKmDdvXpV/i0ZKKMCRVHhOwgz0WuuD4XsslFLdgLOdd72HOjo6byuB3QFOs9PHMSLKrVy50r2cq3fv3nU6l1KKAQMG8NJLL/Hll1/y3XffUVhYiN1uZ+rUqaSkpLBr1y5GjBhRL+PkEydOZO3atcTGxvLYY4+xceNGCgoKOHDgAOvXr+fll1+mT58+1ZaFRiruuLg4hg8fDsB//vMfv+cuKSlxf1COHDmy2jmGDRvG66+/zooVK9i1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l7+43/hnz57NiBEjfLYrKytjwIABLFu2rMrjS5YsYcmSJdx9991MnTq12nEzZ87khhtuqPbBvXfvXvbu3cuqVavYtm0bubm51Y6dNWsWN998MydOnKjy+I4dO9ixYwdvvfUW7777LsOGDfP7+rTWDB8+nA8//LDacyNHjmTy5MkcOHCARYsW+R0K0lrz3nvvAXDVVVcRF1f1reLzzz9n+PDh1T70du/ezdtvv83MmTN56aWXuP32232e/4477mDatGlVHtu4cSMbN25k7ty5XHPNNX5fXzCOHj3Kn/70J1atWuV+rLS0lMWLF7N48WIeeuihgMd/8sknPv/Ghw4dYvny5Sxfvpy33nqLhQsX0rp165Dj3LRpExdccEG1x48cOcLq1atZvXo1b7zxBgsXLiQ1NTXk6zQkV70Ks7BYLH6T3cay0qW2pMdCGNbKlSvdH959+/YN+riUlBRSUlIA+Oqrr/y2+8c//sGXX37J/fffz9dff01hYSFffPEFF110EQAvvvgir732WpVjDh8+zO23305FRQXp6enk5uayc+dODh8+zK5du5g/fz733HMPycnJ1a43Z84cRo0axYkTJ7jkkktYsGABP/30EwUFBXz++ef07t2b0tJSRowYwaZNm/zG/cYbb/Dhhx9y2223sX79egoLC9mwYQP9+vXjggsuoHPnzgC8++67fs+xbNky9u7dCziSEU9r165lyJAhHDlyhJ49e5KTk8MPP/zAwYMH+eqrrxg6dCiVlZXceeedLFiwoNq5X375ZXdS0bt3b5YsWUJhYSFbt27l3nvvZdmyZfzjH//wG1swbrzxRndScfPNN7Np0yYKCwv56quvuOSSS5g4cSJLly71e3xcXBzDhg3j9ddfZ8WKFezatYuCggI2btzIhAkTSE5OZuPGjdx6661VjuvduzfFxcU8/PDDgOP/teLi4io/nv/PKKUYMGAAL730El9++SXfffcdhYWF2O12pk6dSkpKCrt27WLEiBFR2QNgt9uZMmUKTzzxBJMmTWLSpEnk5OSYpl6FUoqsrCy/FTLNWjmzrlQ0/s8a7dLT03VtJyV98803dOrUqZ4iapymT5/ufmP/z3/+w1VXXRX0sZmZme4PvfLy8irfyD1rJzzzzDM88MADVY49efIkvXv3Zs2aNSQlJbFv3z6aNGkCOL7pDh06lNjYWA4cOEBS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+GCprt4HHniA++67j969ezN27Fief/754nq87LLLuP7665kzZw5z5swpPmf79u106NChlO6CggIGDx7MI488wpQpU4p/c0Vl9reufGHOnDk8/PDD3H333TzyyCPFb5qTJ0+mR48ePPXUU8yYMcPrgnvHjx/n888/p0uXLm6dNn29Zp7wt304fPjhh9x55508/vjjxcduvfVWLrzwQqZMmcLgwYOL20mgdXvBBRcU5+Urc+fOJTc312f57t27M2LEiArlvvzySwCP/ltnn302K1euZPfu3T71+oZaX1WjPRbVgG7dupGSkhIyff4MaVTX4Q931KxZs9jZ6fDhw4D1pgTwl7/8pfhPE6wQt08++SQ1atQoN60tLS0NY0ypnoQ1a9Zw8cUXEx8fzznnnEPz5s1LDZdUNAzSrl274h4Vh8svv5y2bdvy6aefljo+YsQIWrVqxcsvv1yqKzo3N5clS5bQoUMHLr300grr44UXXuDUqVM8/fTTpf7MnXJeddVVvPvuu6Wi8cXHx5ebVgzQtGnTCvPzleTkZO65555SxyZOnAhYkVgff/zxUg/bCRMmEB8fz+eff17qnLJGBUBiYiK33HILp0+frnC9HVcCqStvfPvtt9x7771ceOGFzJ49u1T39fnnn0/nzp3Jzc3lwIEDXvV88803FBYWeu2dCuaaBdI+wHoZue+++0odS0lJ4ZprriE3N7eUkRBo3TZo0IBatWr51VPkzKzzdVu2bJlPep2XtIoiJftq1IRaX1WjPRbVhCuvvJK2bduWC5SVk5PD5s2bfZ4p4rqMuaegVu5kowWnnpw/8i1btgAlQxyudOzYkTPOOIOsrKziOndkX3nlFTIyMhg7diw7d+7k4MGD3H777cXnpqam8sEHH1BUVESNGjUqNCy6d+9OXFxcueNnnnkmH3/8calj8fHx3HTTTfz1r3/lzTffZMKECQAsWrSI/Px8Jk+e7NM4q6N33bp1bNy4sVz6oUOHKCwsZPfu3fTs2ZNrrrmGP/3pT3Tt2pXx48czYMAA+vXrV9xrEyrc1UXr1q0B65rUq1evVFpcXBwtWrTg66+/LnU8JyeHRx99lNWrV5OTk1PuXv/mm298LpO/dVURixcv5vjx49xxxx1ueySc3gd394QrR44cAaBRo0Zu04O9ZoG0D4AePXqUu05gtYuFCxfy2WefFRuLwdRt48aN+f777336LVBxb5kSGtSwqEaUnc6ZmZnJli1bfDIq4uLiGD58eKnzBw8e7HGIJVqGP1z55ZdfOHr0KEDxH6vzZuDpja9Vq1bk5OSQm5tb/MfpGAfOG6+rf4VDamoqS5Ys4bPPPqNt27ZkZmbSpk0bOnfu7Dafhg0buj0eHx/v1olv8uTJPPTQQ8ybN6/YsJg/fz6JiYn89re/9VILJTgPJdfuanc4sQLuuOMOmjZtyvPPP88zzzzD3LlzEREGDBjA448/HrJeNXdvac7sJU9vcPHx8aVmTn311Vf06tWLH3/8kYsvvphBgwbRoEED4uLiyM7OZuHChX7FEvG3riri7bffpkaNGgwZMsRt+jfffEOdOnWKDSpPOLNAfvnlF7fpwV6zQNoHWA7T7nB6PVyHYYOp2/z8/IiYCeP89ooWjfTUzitbX1WjhkU1Jj093e1DJyEhgfj4+OI3tKSkJAYPHlyu56Fbt24eDYtIXNAsWD766CNOnz5NixYtSE5OBkoa8Hfffee269yZWeH6p9m2bVs6dOjA3r17OXDgABkZGTRs2JDzzz+/WMbxicjIyKBdu3YYY0I6pNSmTRuuuuoqli5dyq5duzh69Cjbt29n3LhxPr+Nuv55lY3J4Ynrr7+e66+/ntzcXP773/+ydOlSFixYwOWXX86uXbtC3nsRKE899RRHjhzhpZdeKjf7ZPHixSxcuNAvfYHUlSdOnz7Np59+StOmTaldu3a59I0bN/Ldd98xdOhQr/4VQLHfhPNwdkcw1yyQ9gF47EX47rvvyskHWrdFRUXk5uYWz+bxhcrysejUqROAW4dqgD179gCefSYqW19Vo4ZFNcbTMMapU6d8DhrjzxLm1ZmioqJiL3vnDR+s8ewtW7awdu3acn+ce/fu5euvv6Z9+/bl3gzS0tLYt28fq1atYu3atQwYMKDUQ6Bz5860bNmy2LBwzgklU6dOZenSpcybN684Ep8vTpsOffr0YfPmzaxfv54rr7zSr7wbNmzIkCFDGDJkCEVFRSxYsIAPP/yQUaNGASVd+MFGOw2UvXv3AhSXxxV3MUjAe5mDqauyfPHFF5w8eZKCgoLioTJXnnzyScDqlaqIVq1a0axZs2JnP29UdM3cEWj72LJlC8eOHSs3HLJ27dpivQ6B1u2XX36JMcanmUYOc+fOZf/+/T7LT5w40SfDwnmRWLlyZblreuzYMTZs2EDt2rXdztypCn1VjTpvxjj+LGFeXTl06BDjx49n7dq1tG3btpTRdcMNNwBW1DrHoROsh8udd95JUVFRuQiaUDLsMWfOHH788Ue3cSUGDhzI+vXri+fuh7pO09LS6NixIwsXLmTJkiV06tTJa3yLstx6660kJCRw++23u30zKigoYP369cX7a9ascTvs5gQcc337btSoESIS0BTMUOD0SDkPMof333/f4xoT3srsb115Y/PmzYDleLdixYpSac899xyvv/46V1xxBcOGDatQl4jQv39/fvjhh2JjyhV/rpk7Am0fP/30E3/9619LHdu0aROvvvoqDRo0YOTIkcXHA61bZ6qlP/d8dnY2xhifN9cYJt7o0KEDgwYNIjs7m+eee65U2syZMzl+/DjXXXdduZk7+/btY9euXeUCIAaqL1LQHotqTFJSktteC3/GHD2tnlpdHTadaYJON+kXX3zBRx99REFBAb169eLVV18t5Q3ft29f7r77bh577DF+/etfM3r0aOrUqUN6ejrbt2/noosu4q677iqXzyWXXFIcZMzZL8vAgQNZvHgxWVlZdOrUqZzHHefGBQAAGaRJREFUe7CICFOmTOGOO+4AfHvDdaVz584sWLCAG264gXPOOYcrrriCjh07curUKXJycli/fj3NmjUrDg08cuRI6tatS58+fUhOTsYYw/r169m4cSM9e/YsNROlbt269O7dm/Xr13PNNdfQsWNH4uLiuOqqq4IeSvCFqVOn8tJLLzFmzBhGjx5N69at2b59OytWrGDs2LFuYyl4K/O5557rV115wzEshg0bxujRo5kwYQLNmjVj/fr1bNiwgZSUFP7973/7/FtHjRrFm2++yfvvv8+vfvWrUmn+XDN3BNo++vfvz4svvsgnn3xCv379OHjwIK+//jpFRUXMmzev1D3g733osHLlymLfsUjg+eefp2/fvvzxj39k9erVdOnShU8++YQ1a9bQsWNHt3FJ0tLS2L9/P1lZWcXGcKD6li1bVjyLxRly+vjjj4uHAps2bVpuenql4Y/1ppu19ezZ00QC27ZtMw888ICZNWtW8fbAAw+Ybdu2hbtoISMvL8/MmzevQjmg1JaYmGiaNGlievToYW688UaTnp5uCgsLPZ6/ePFi069fP1O3bl1Ts2ZN07VrV/Pggw+a/Px8j+ece+65BjBNmzY1RUVF5dL37NlTXJ6pU6e61ZGVlWUAM3HiRLfpAwYMMFYzdc/Ro0dNjRo1TK1atcwPP/zgUc4b27ZtMxMnTjRt27Y1iYmJplGjRuacc84xkydPNqtXry6We+GFF8yIESNM+/btTVJSkmnUqJHp3r27efTRR01eXl45vXv27DFDhw41jRs3NiJiAPPSSy95/M0V1QVgBgwY4DatXbt2pl27dqWObdiwwQwcONA0bNjQ1K1b1/Tr188sXbrUrFmzxgBm5syZPpfZ37ryRu/evU1iYqI5ceKEueeee0zr1q1NYmKi6dSpU4X3nDtOnjxpmjdvbnr16lUuzddrVlHd+9o+XPXs2LHDXHXVVaZhw4YmKSnJ9O3b16xYscLj7/CnbnNzc02tWrXM8OHD/aipyicnJ8dMmjTJtGzZ0iQkJJi2bdua2267zRw9etStfLt27QxgsrKygtY3c+bMcv+DrlvZ9lGWTZs2mYyMDK8ywCbjwzNSTAgXtIoVUlJSzKZNm8JdDMCaGRItvQ3uOHbsGIsXL/b7bTxWWLt2LQMHDuTaa69l0aJF4S6OUgGFhYXUq1ePLl26FPdchILZs2czffp0tmzZUsp/oapxAs9NnDjR52GEQHj22Wf54x//yPr167nooosqLZ9Ywllc0dvQkohsNsZUOP1Lh0KqOZGwoqgSPh577DHAGqdWIp8dO3aQn5/vNqx7MNx+++38/e9/57777uPdd98Nqe5IIz8/n9mzZzNq1Cg1KiIUNSwUpZqRmZnJ8uXL2bx5M+np6QwdOpTevXuHu1iKDzi9FKHuVahVqxaLFi1izZo1HD9+PGKd+kJBdnY2kydPLjeNWIkc1LBQlGrG5s2bmT59OvXr12fMmDF+rVKphBfHsAh1jwVYDpP9+/cPud5Io0uXLuXWclEiCzUsFKWaMWnSJH1bq6Y8++yzPPvss+EuRqXhzDxRYhuNY6EoiqIoSshQw0KJaGrUqBG26I2KoiixQmFhYYWL3vmKGhZKRFOrVi0KCgo4ffp0uIuiKIoStRw7dixkC7qpYaFENHFxcbRu3ZqsrKxwF0VRFCUqMcbw1VdflYv+GShqWCgRT8eOHdm2bZvblVwVRVGU4MjOziY+Pr7UcgfBoIaFEvF07dqVwsJCVq5cqf4WiqIoISQnJ4f09HTS0tIQkZDojKmQ3iIyApgCnA80AL4FVgBPGmP2+aonkkJ6xwqnTp3ivffe48CBA3To0IFWrVqRmJgYsoagKIoSKxQWFpKXl8fevXvJz8/niiuuoF27dhWe52tI75gwLMR6+rwI3OBB5GdgnDHmPV/0qWERPn7++Wf27NnDkSNHOHnyZLiLoyiKUu2Ii4ujdu3anHXWWbRp08bnFzRdK6Q0f6bEqFgCPAQcBC4EngaSgddFpKcxZndYSqj4RN26dcO6yJKiKIrinaj3sRCRFsB0e/f/gPHGmG3GmMPGmHeAS4DjQF0sg0NRFEVRlACJesMCuB5wVuSZYcqM/RhjsoB/2LtXi0jzqiycoiiKokQTsWBYDLM/9xhjtnqQecP+rAEMrfwiKYqiKEp0EguGhTMg/4kXmU2AM48x9MsOKoqiKEqMENWGhYi0wfKdAPjKk5wx5iSWMydAp8oul6IoiqJEK1FtWACuYcQOVyB7yP5sUkllURRFUZSoJ9oNizou33+pQDbf/qzrVUpRFEVRFI/EShyLoBGRycBke/ekiGwPZ3mUUjQFfgh3IZRS6DWJLPR6RBbV9XpUHJ6T6Dcsjrt8r1WBrLNe7M/uEo0x84H5ACKyyZfoY0rVoNcj8tBrElno9Ygsov16RPtQiKtF2KwCWSf9SCWVRVEURVGinmg3LL6lpAeivSchEakJtLZ3v6zsQimKoihKtBLVhoUdZfMze7e3F9GeQJz9fYsPqucHUy4l5Oj1iDz0mkQWej0ii6i+HlG/uqmI3AU8Zu+ea4zJdCPzFHA7UAS0MsYcKiujKIqiKErFRHWPhc2/gBP293KLjIlIMiWzPd5So0JRFEVRAifqDQtjzPeUGBTDROQ1EekmIteLyGZgL1a8CwMUiEiHYPMUkQQRmSYin4pIrogcE5FtInKfiNQLVn80ISJJIjJSRP4uIpvt+jolIodFZLWITBWRpIo1edQ/S0SMD9vfQvm7qiMikuxjXbmdOeVHPto+fEBEsn28Hs42yU/9k3zUu7ySfmLEIRZdRGSiiDwnIhtF5KRdDxXFQnLV00JEHhORXSJyQkR+EJF1IvJbEZEQlfV8EfmXiOSIyC8i8q2IvCkiqaHQHxTGmKjfAAH+iWU8VLQdA4YEkVcjrLVHPOnfC7QPd51Eygbk+XBNdgJnB6h/lo/X/W/hrotwb0Cyj3X1cxB5aPvwva6yfbweztbTT/2TfNS7PNx1UYV17q0N/OKjjhTgey960oGaQZbzd0CBB/1FwMxw1mPU91iA5cRpjPkdcDWwxyXpOLAE6AUMx2rIdYHXRaRjgNm9juUMWoT1UGsPnAH8ASv6ZwfgHRFJDFB/tFEPOAksBsZj1U9joDvwAlZD6QysFJFgoqLm2Hl52u4IQnc0MgTPddUiCL3aPnynK97v2frAN7bsTmPM5iDy8pbP6CD0Vme+BpYC6309QUSaAu8AzbFCF1wLtML6D3vOFrsCeDbQQolIf2AekAB8DqTZ+V0IZGC9SM8SkQmB5hE04bYQq9gabYE1/dQAy7GdV13S27uk/ycA/UMpsRrvcpM+1iX9lnDXRyRswN+AFl7S/59Lnd0dgP5Z9rnZ4f6tkb5R+m0ttRL0a/sIbX0OcKmvPwdw/iTn/HD/lkjZsAyp4UBLl2POf0iFPRbAE7ZsIdDHTfrzLundAizjRlvHN0DDMmmJWMaGAQ4AtcJRjzHRY+HC9ZSsHzLD2FfCwRiTBfzD3r1aRJr7qf/39uchYG7ZRGPMEqyL7iob0xhjbjWWH4wnnqQkaNngKiiSUnlo+wgt19mfBnglnAWJFowxx4wxbxtjvvP3XBFJAG60d982xvzPjdhM4BSWf+PNAeRxAdZQC8Cjxphc13RjTIGdB1g9gUP9zSMUxJphMcz+3GOM2epB5g37swZ+XBQRqY3VJQXWTXWqAv3niMhZvuqPVYwxpykZvmrtTVaJXLR9hBYRqUXJEMVaY8yBcJZHAeBioIH9/Q13AsaYw8A6e/eqAPIY5vLdbR7Ae5TMhAwkj6CJNcPifPvzEy8ym7C6qQB6+KG7K1DTB/2uaf7oj2WcMf28YBWJSA0RifY1ckJGCH0dtH2ElqsoeYj9KxQK7RkRCaHQFaO43q++3ONn2j4ZgeTxtTHmW3cCttH+WRn5KiVmDAsRaUPJkuhfeZIzxpwEDtq7nfzIwlXWo34gy8M5ihtE5HxKwrG761r0leYi8gWWJ/UpETkiIuki8hsRiavo5Bjkb/a00pP2VLbPROSBAIYHHbR9hBZnGCQfeDNYZSKyBcuJukBE8kRkjYhMEWu5A8U3nPu1CNjvRS6Ye9yR99aGXPP4lYhU+XM+ZgwLrGVqHQ5XIOsEyWpSCfpdA3D5oz9Wedz+NAQXBjcJ663ZMSIaY3ln/xvICODNIdo5hxJ/pJpYs3T+AuwSkcsD0KftI0SISDOsexdgmTHmWAjUno81ywAsB8ZUrFlZm3RIymece/xHewjXE8Hc404evj7DalLyQl1lxJJhUcfle0WBTvLtT38uiK/6812+V/kFr06IFY7dGZd/wbgJx+4DuVhTuy4HzgJqYTXO4cDHtkx/4G3tuaAIeB+YCHQDGmLd1z2AZ7CGCBsBS0XE3y5WbR+hYzzgDOcFMwySD7yMNazSEcv4bghcijVOD/BrYIWI1A8in1jBucd9fb6A//d4VeQRNDrWrEQk9lvxbHs3E7gzED3GmHKzD7C6fN8Rkf/Dip8xBuiL1b38ciD5RAPGmBxK3oRd+Qz4TETWAG9hPYCewnqrVaqea+3P74APAlVijHkdK66IK78Aq4HVIvIkVnyXs+3PWYHmpcQWsdRjcdzle60KZJ0Q0v6ELvZVv2t46qBCI0crItIT+A/WsMUB4EpjTL73s/zHGFOINa3R8aAOX0CZaoAxZhlWQDmAASLizywdbR8hwA7c18ve/bd9D1cWf8Zqf6Btwxece9zX5wv4f49XRR5BE0uGxQ8u35tVIOukH/EqFZh+1zR/9McE9h9nOtY472FgUGVOpTPGHAH+a+92r6x8ooh3Xb77U1/aPkLDdS7fF1VmRnZMhPft3bPtKcOKZ5x7vGEFM8+CucedPHx9hhWghkWl8i0lFdzek5DtBe28iX3ph35XWY/6y6T5oz/qEZEzsbp2m2FNLb3CGLOrCrJ2HJ0aVkFe1R1XxzN/6kvbR5DYi1c5wyCZxpjPvcmHiECvdyzi3K9xQFsvcsHc4468tzbkmr7HGFPkZx5BEzOGhR1l05nb29uLaE9KZg5s8SOLHVhj9xXpd03zR39UY3u6f4DVIPOBYcaYqqqflvZnrlcpBUrqCvyrL20fwXMRVth1qOTeChcCvd6xiOv96ss9fsAY84MXOW95nCkirdwJ2L0lPcrIVykxY1jYON24HUWkmwcZJ5pdEdZ6Ij5hjDmB5fQEMNxLV5ij/wtjTEVzkWMC2+P8faw52qeA0caYD6so72ZYjptQYngqnhnu8t3n+tL2ERKcYZAi4NXKzszuvXWceXfb11DxzHrgJ/u724Xb7GntA+zddwLIw3Uo0tPicEMAZ9gqkDyCJtYMi39R4qj3UNlEEUkGJtu7bxljDpWVqYAX7M8WwG1u9I+mJPrnC2XTYxE7NPG7WPVSBFxnjHnP+1k+627qLcCPHWXwH5Q4QlX6n3UkYweR85Y+FmuFYIA1xpiD3uTdoO0jQOz7eIy9u9pT1EU/9NXzNoXUHnZ5kpJh4ZhuG75gR7x80d4dLiK93IjNwloozGCtUOpvHhuxokMD3C0iDVzT7f+0Wfbu1/jxchxSwrHyWTg3YDolKwK+hjVfvxnWuiBf2cePAR3dnPuyc64X/SttmdPAvUA7rMZ5C5ZRY4DtQGK46yLcG9aQ09su1+N2rDnXnrbabnSsxcPqpcAILN+ax4BBWMMsDezP8cBml7zXAjXCXSdhvh6HsWZ9XIMVTKyJ3TYuwgpOVmTX1c/AeW7O1/ZReddmtMu9ep2P53i8HliOt0exVhceijUm39C+FsOwepec/HYCdcNdB1VY112BPi7bi3Y9nCxzvA9Qs8y5Te3/HGO3pwlYhvTZWLFgnDqd7yHvZBeZWR5k+tvtx2ANdaTa+fYCVrmcPyFsdRjuixiGm0aAf7pUftntGDDEw7m+/HE2xrIoPenfC7QPdz1EwlamEfmyZbvRsdZL2ggf9S6nzPLDsbhhjaFXVFffAAM8nK/to/KujWOA/wzU8fEcj9cDy7DwpW18DJwZ7t9fxXW91se6MUCym/NTgO+9nJNOGYPE5VzX/8RZXsp4I9aMD3f6i4CZ4azDmAuQZayr8jsRWY61bG0PoD6Wlfk+8IQxZl8Q+o+KSF+sN7AJWBHt4rB6Q94A5pjQhOBVKmYDcCuWD8W5QHOsyJEnsa73J8AiY0zAQYaijBuwVmjsDbTBeguKx3qz3YplgC0M5v7V9uE/ItIEGGzvvmWMOe5N3kf2AjdhtY0eWG2jCdab8PdYxt9rWCvRVmasjKjDGLNJRM7FCup3FXAmlkP6F8BLwMv2cyiYPF4Ukc1YgctSsa7fUSxD8BljzNpg9AeLBPn7FEVRFEVRiok1501FURRFUSoRNSwURVEURQkZalgoiqIoihIy1LBQFEVRFCVkqGGhKIqiKErIUMNCURRFUZSQoYaFoiiKoighQw0LRVEURVFChhoWiqIoiqKEjJgL6a0o1QkRCTb0r4SqLIqiKL6gPRaKokQUIvKDiBgRuTPcZYkEROQNuz7CswS2oviJGhaKEtnU87ANcZGZ4kVOURSlStGhEEWJYIwxP7s7LiL5LrsnPckpiqJUNdpjoSiKoihKyFDDQlFigLLj9CJyqYi8LSLfishpEXnFzTntRWSOiHwhInkickJEvhSRp0XkDC95NRCR34jIv0Vkj33eLyKSbR/r662MQBP70ON2mV23FBf5Tfaxv9n7w0Vkle2jcUxE/iciY8rk0U1EFolIjl2mvSLyVxGp5UMdDrPL+LWInBSRoyLyoYhMERG3vb8iMtSl7E1FpLGIPGbXyy8iclhElopIDzfn3mrXxyj70JVu6kP9UJSIQ4dCFCXGEJF7gIcBjzNGRGQy8CyQWCapo73dICKjjTHvuzn9DeBSN8fb2dtvRGSGMebhQMrvobyPAXeVOdwbWCIidxtjHheRkcC/AVcjogNwL9BLRAYbY8rNwhGRusBiYGiZpETgYnubKCJDjTFHvBTzLGAJVh041ARGAIPt/NdU9FsVJdLRHgtFiS16YBkVK4EBQDPgbOAfjoCIXAPMw3pwvg1cBrS0ZYcAnwB1gTdFpJObPL4FngCGAecBzYFkYBDwli3zkIiklTnvWiyHU+fhPIPyzqhb3OR3JZZR8XegO1aPx4XApy55XQa8AnwMDASaAp2Af9kyl9v5l0JEBHgTy6g4DtwHnAs0xjIUbgPygD7AYlveE69h/edeD5wBtLC//4RlYLwoIq7/yfPs37zM3l/hpj6e9pKfooQHY4xuuulWzTYgFTD2NskH+Tdc5N8FaniQawDk2nKzPcgkAv+zZZYEUPZn7HNXeEj/wU6/swI9m1x+0wNu0lsAJ+z0U8AqIL6MjGAZKwZY5UbHJDvtOHC+h3KkAAW23JAyaUNdyngYOMPN+eNdZPp7uXbLw33f6aabL5v2WChK7HGXMabIQ9pELOPiG6y383IYYwqA++3dESKS5Gf+jj9Hf0++CX5yFHio7EFjzPfAOns3HrjHGHO6jIzBGp4AuMCN7j/an38zxnzmLnNjzCZgqb07wUs5nzDGfO3m+JuAM8vHXRkUpVqhhoWixBZZxphdXtKd4Yl1QE0RqetuA3bacglYwx2lEJGOIvKUiGwRkVwRKXQcDrGGUgCSgDND8Js+NMb84iHtK/sz1zYA3LHP/qwvIrWdgyLSGGtoBWCtp7qw6yPTlkvBM+78UTDGnAKy7d0WXs5XlGqBOm8qSmyRVUG64zMxAe9v3640c90Rkd9i+TuUdfx0RwMf8/DGd17S8v2QAcvYOWF/70iJg+t7PpalmZe0g17SnDz97f1RlIhDeywUJbbIryA9kAd9TeeLiJyD5QiaiNWrMZkSB876WA6HfVzODcXLTWGIZKD0TJmg6iLAMujaLkq1R3ssFEVxxYng+bwx5pYAzr8JiAMOAX2NMbllBUQkIYjyVSWu0Ux7GWM2hq0kilKN0B4LRVFccXwSzgrw/HPtz5XujAqbXweou6r5yuV7oPWhKDGHGhaKorjygf05QESaB3C+MxQQ50WmIt+NUz7oqHSMMQeBL+zdsWEsSkTUh6L4ihoWiqK48k+sgE9JwD9FxKsDppsAWY5z6AARKbe6qoj8DitSpTecAFmtKi5upfOU/Xm1HTjMIyJSW0RCMculLJFUH4pSIWpYKIpSjDHmRyyHS7CCO20SkYki0kFEGopIaxG5WETuEZHPgIVlVPzH/mwNvGfLNhWRrnbY7XmUTFX1hBNdc4yI9BeReiISH6KYF/7yMiUzQhaJyEIRuUREWopII7tehovI80AOVhTQUOPURzf7WjRx6qOCSJ+KEhbUeVNRlFIYY163H+LzgW5YD1dPrC9z7tsi8hpWNMmLgA/LyG8D/kBJ4Cp3PIc1XNK6rJyIXOAlHkXIMcYU2QuZ/cMu0/X25omCSijGG8CDWD0WL5dJuwsrfLqiRAzaY6EoSjmMMa9iOSzejxW++yjWdMljWH4Hi7AetJe7Of0arIiVW4Ff7HO2Yq390cfW5S3vT7AWMVuONbvktDf5ysYYc8IYcw2WofQSsBcrxPdprDDdG4BHgT7GmAWVkH8e0M/OO5vKMV4UJWSIFdFWURRFURQleLTHQlEURVGUkKGGhaIoiqIoIUMNC0VRFEVRQoYaFoqiKIqihAw1LBRFURRFCRlqWCiKoiiKEjLUsFAURVEUJWSoYaEoiqIoSshQw0JRFEVRlJChhoWiKIqiKCFDDQtFURRFUUKGGhaKoiiKooSM/w9kQYs0pMk3bwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "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.0051827863049\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": "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": [ "['Treatment']\n", "Treatment\n", "Refute: Add a Random Common Cause\n", "Estimated effect:(0.0051827863049019127,)\n", "New effect:(0.0052748828365418695,)\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": [ "['Treatment']\n", "placebo\n", "Refute: Use a Placebo Treatment\n", "Estimated effect:(0.0051827863049019127,)\n", "New effect:(0.0013214086372636913,)\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": [ "['Treatment']\n", "Treatment\n", "*** Causal Estimate ***\n", "\n", "## Target estimand\n", "Estimand type: ate\n", "### Estimand : 1\n", "Estimand name: backdoor\n", "Estimand expression:\n", " d \n", "──────────(Expectation(Outcome|w0))\n", "dTreatment \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", "## Realized estimand\n", "b: Outcome~Treatment+w0\n", "## Estimate\n", "Value: 0.0032596514859678217\n", "\n", "Refute: Use a subset of data\n", "Estimated effect:(0.0051827863049019127,)\n", "New effect:(0.0032596514859678217,)\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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }