Skip to content

Instantly share code, notes, and snippets.

@akelleh
Created January 25, 2019 03:49
Show Gist options
  • Save akelleh/353442a2b7adb0092a5122281efeab25 to your computer and use it in GitHub Desktop.
Save akelleh/353442a2b7adb0092a5122281efeab25 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from dowhy.do_why import CausalModel\n",
"import dowhy.datasets\n",
"import dowhy.api.causal_data_frame\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"data = dowhy.datasets.linear_dataset(beta=10,\n",
" num_common_causes=5,\n",
" num_instruments = 2,\n",
" num_samples=1000,\n",
" treatment_is_binary=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error: Pygraphviz cannot be loaded. No module named 'pygraphviz'\n",
"Trying pydot ...\n",
"['X1', 'X3', 'X0', 'Z1', 'Z0', 'X2', 'X4', 'U']\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"no\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"Model to find the causal effect of treatment v on outcome y\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"There are unobserved common causes. Causal effect cannot be identified.\n",
"WARN: Do you want to continue by ignoring these unobserved confounders? [y/n] yes\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data['df'].causal.plot(x='v', y='y', dot_graph=data['dot_graph'], kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data['df'].causal.mean(x='v', y='y', common_causes=['X0', 'X1', 'X2', 'X3', 'X4'])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error: Pygraphviz cannot be loaded. No module named 'pygraphviz'\n",
"Trying pydot ...\n",
"['X1', 'X3', 'X0', 'Z1', 'Z0', 'X2', 'X4', 'U']\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"no\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"Model to find the causal effect of treatment v on outcome y\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"There are unobserved common causes. Causal effect cannot be identified.\n",
"WARN: Do you want to continue by ignoring these unobserved confounders? [y/n] yes\n"
]
}
],
"source": [
"model= CausalModel(\n",
" data=data[\"df\"],\n",
" treatment=data[\"treatment_name\"],\n",
" outcome=data[\"outcome_name\"],\n",
" graph=data[\"dot_graph\"])\n",
"\n",
"identified_estimand = model.identify_effect()\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error: Pygraphviz cannot be loaded. No module named 'pygraphviz'\n",
"Trying pydot ...\n",
"['X1', 'X3', 'X0', 'Z1', 'Z0', 'X2', 'X4', 'U']\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"yes\n",
"{'observed': 'yes'}\n",
"no\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"Model to find the causal effect of treatment v on outcome y\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'observed': 'yes'}\n",
"{'label': '\"Unobserved Confounders\"', 'observed': 'no'}\n",
"There are unobserved common causes. Causal effect cannot be identified.\n",
"WARN: Do you want to continue by ignoring these unobserved confounders? [y/n] yes\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data['df'].causal.plot(x='v', y='y', dot_graph=data['dot_graph'], kind='bar')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"model.do(1., \n",
" identified_estimand=identified_estimand,\n",
" method_name=\"backdoor.linear_regression\") - \\\n",
"model.do(0., \n",
" identified_estimand=identified_estimand,\n",
" method_name=\"backdoor.linear_regression\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment