From 9258cbb78b1faf55aa496da2f69c3f89968309e5 Mon Sep 17 00:00:00 2001 From: Amit Sharma Date: Fri, 1 Dec 2023 22:07:40 +0530 Subject: [PATCH] removed deepiv and updated flaky test Signed-off-by: Amit Sharma --- .../dowhy-conditional-treatment-effects.ipynb | 1511 +---------------- .../test_econml_estimator.py | 20 +- 2 files changed, 60 insertions(+), 1471 deletions(-) diff --git a/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb b/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb index 8071f56498..5080f7a434 100644 --- a/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb +++ b/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -47,30 +47,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " X0 X1 Z0 Z1 W0 W1 W2 W3 v0 \\\n", - "0 1.025165 1.245504 1.0 0.158014 -0.646130 1.585682 0 2 20.257835 \n", - "1 -0.565363 -0.509983 1.0 0.719249 -0.528081 -0.126231 1 1 25.621852 \n", - "2 -1.066614 0.258180 1.0 0.117570 -1.291546 1.744535 3 2 21.305156 \n", - "3 -1.997311 0.759307 1.0 0.092892 1.002630 1.813077 2 0 15.028699 \n", - "4 -0.827012 0.411718 1.0 0.979072 -1.223523 -0.505201 3 2 32.457489 \n", - "\n", - " y \n", - "0 293.381658 \n", - "1 206.815987 \n", - "2 204.213489 \n", - "3 148.346209 \n", - "4 329.822796 \n", - "True causal estimate is 11.21529604289463\n" - ] - } - ], + "outputs": [], "source": [ "data = dowhy.datasets.linear_dataset(BETA, num_common_causes=4, num_samples=10000,\n", " num_instruments=2, num_effect_modifiers=2,\n", @@ -86,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -97,30 +76,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "model.view_model()\n", "from IPython.display import Image, display\n", @@ -129,42 +87,11 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "### Estimand : 2\n", - "Estimand name: iv\n", - "Estimand expression:\n", - " ⎡ -1⎤\n", - " ⎢ d ⎛ d ⎞ ⎥\n", - "E⎢─────────(y)⋅⎜─────────([v₀])⎟ ⎥\n", - " ⎣d[Z₁ Z₀] ⎝d[Z₁ Z₀] ⎠ ⎦\n", - "Estimand assumption 1, As-if-random: If U→→y then ¬(U →→{Z1,Z0})\n", - "Estimand assumption 2, Exclusion: If we remove {Z1,Z0}→{v0}, then ¬({Z1,Z0}→y)\n", - "\n", - "### Estimand : 3\n", - "Estimand name: frontdoor\n", - "No such variable(s) found!\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "identified_estimand= model.identify_effect(proceed_when_unidentifiable=True)\n", "print(identified_estimand)" @@ -182,36 +109,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1+v0*X0+v0*X1\n", - "Target units: ate\n", - "\n", - "## Estimate\n", - "Mean value: 11.215317388184836\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "linear_estimate = model.estimate_effect(identified_estimand, \n", " method_name=\"backdoor.linear_regression\",\n", @@ -236,757 +136,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1 | X0,X1\n", - "Target units: Data subset defined by a function\n", - "\n", - "## Estimate\n", - "Mean value: 13.400085811212945\n", - "Effect estimates: [[14.41337741]\n", - " [13.45208362]\n", - " [ 9.67842125]\n", - " [15.84879707]\n", - " [16.39074825]\n", - " [16.16546261]\n", - " [10.04173632]\n", - " [12.392637 ]\n", - " [16.00831856]\n", - " [13.11585615]\n", - " [14.21585079]\n", - " [13.34411671]\n", - " [13.38717392]\n", - " [10.18190179]\n", - " [ 8.83985949]\n", - " [12.51638494]\n", - " [15.11784384]\n", - " [15.09097619]\n", - " [14.76175268]\n", - " [15.07356089]\n", - " [12.58452803]\n", - " [13.64744088]\n", - " [15.48955572]\n", - " [10.18803306]\n", - " [14.17902343]\n", - " [12.79548303]\n", - " [10.51628739]\n", - " [11.46554612]\n", - " [15.87878077]\n", - " [18.0918523 ]\n", - " [ 8.74436303]\n", - " [14.98557437]\n", - " [15.09756584]\n", - " [15.20404112]\n", - " [14.54767731]\n", - " [ 9.14285816]\n", - " [11.99663704]\n", - " [13.31068132]\n", - " [16.43717315]\n", - " [11.94656252]\n", - " [17.44163277]\n", - " [13.56318253]\n", - " [14.90106202]\n", - " [13.44628869]\n", - " [14.31036337]\n", - " [14.63223487]\n", - " [ 8.47988136]\n", - " [11.0825666 ]\n", - " [10.57322194]\n", - " [10.3972848 ]\n", - " [10.86568551]\n", - " [20.53428459]\n", - " [13.73907379]\n", - " [14.50174931]\n", - " [13.84980577]\n", - " [14.15233793]\n", - " [18.33282276]\n", - " [11.13899534]\n", - " [17.06769622]\n", - " [13.00898853]\n", - " [15.15009375]\n", - " [13.15481617]\n", - " [12.50464437]\n", - " [16.93122746]\n", - " [11.27981141]\n", - " [12.39248457]\n", - " [12.91086842]\n", - " [15.5281245 ]\n", - " [12.07124884]\n", - " [12.90627641]\n", - " [12.84591485]\n", - " [15.18726478]\n", - " [11.20822412]\n", - " [14.14073065]\n", - " [ 8.81790682]\n", - " [14.06859984]\n", - " [13.02120845]\n", - " [11.50668069]\n", - " [14.95256833]\n", - " [ 6.78712459]\n", - " [13.03812017]\n", - " [14.41052934]\n", - " [14.07226912]\n", - " [14.68199158]\n", - " [12.64864438]\n", - " [13.31401499]\n", - " [13.89272844]\n", - " [12.18193531]\n", - " [14.5529627 ]\n", - " [13.98380899]\n", - " [13.78405183]\n", - " [11.40377371]\n", - " [12.42506699]\n", - " [ 9.83484561]\n", - " [16.02691817]\n", - " [13.15026407]\n", - " [16.46287275]\n", - " [11.67117284]\n", - " [13.37407643]\n", - " [13.61615908]\n", - " [18.36646545]\n", - " [10.95921876]\n", - " [13.80927697]\n", - " [16.73315899]\n", - " [17.17030005]\n", - " [13.50096417]\n", - " [12.74199303]\n", - " [16.47474752]\n", - " [13.542255 ]\n", - " [ 9.10791634]\n", - " [11.2593795 ]\n", - " [10.09279146]\n", - " [16.88948602]\n", - " [14.96335132]\n", - " [15.07874318]\n", - " [13.6301459 ]\n", - " [15.32550901]\n", - " [ 9.93667041]\n", - " [14.43707102]\n", - " [15.5669185 ]\n", - " [18.14320223]\n", - " [14.6346842 ]\n", - " [ 9.82085651]\n", - " [12.71803559]\n", - " [16.54207524]\n", - " [12.31964009]\n", - " [13.50705806]\n", - " [10.45574637]\n", - " [21.5592788 ]\n", - " [10.42703168]\n", - " [11.69387669]\n", - " [11.81551553]\n", - " [12.80492439]\n", - " [14.72744379]\n", - " [ 9.9063668 ]\n", - " [16.48767018]\n", - " [14.60812153]\n", - " [11.90293374]\n", - " [13.41045863]\n", - " [17.85508012]\n", - " [13.87815302]\n", - " [15.89064232]\n", - " [17.90918121]\n", - " [13.57726308]\n", - " [14.38815135]\n", - " [12.89338549]\n", - " [14.3686385 ]\n", - " [18.59858583]\n", - " [12.54476323]\n", - " [12.69905901]\n", - " [12.65343849]\n", - " [14.82416735]\n", - " [16.3352138 ]\n", - " [15.5470543 ]\n", - " [16.09051742]\n", - " [17.385081 ]\n", - " [12.58742314]\n", - " [14.2053103 ]\n", - " [10.0437625 ]\n", - " [ 9.69335775]\n", - " [11.51676228]\n", - " [13.19689822]\n", - " [15.31093056]\n", - " [ 8.4481793 ]\n", - " [12.38172618]\n", - " [13.25988639]\n", - " [10.50491595]\n", - " [14.8305913 ]\n", - " [ 9.56029413]\n", - " [16.04675916]\n", - " [15.09160654]\n", - " [12.56965812]\n", - " [ 8.3232272 ]\n", - " [12.92282259]\n", - " [14.51566664]\n", - " [14.18262536]\n", - " [12.09914092]\n", - " [14.33119745]\n", - " [20.04525352]\n", - " [10.99669971]\n", - " [10.55409654]\n", - " [11.67120367]\n", - " [12.53018791]\n", - " [16.47125356]\n", - " [11.52567171]\n", - " [13.90812103]\n", - " [16.78956482]\n", - " [11.20783788]\n", - " [16.61042455]\n", - " [11.97521923]\n", - " [13.52271377]\n", - " [15.49385039]\n", - " [12.56346108]\n", - " [13.0530413 ]\n", - " [10.60052805]\n", - " [ 9.72603956]\n", - " [ 9.03875646]\n", - " [11.06586262]\n", - " [15.55278984]\n", - " [13.71442026]\n", - " [19.52101051]\n", - " [11.9109374 ]\n", - " [15.92200957]\n", - " [10.49165631]\n", - " [14.37346364]\n", - " [14.27997062]\n", - " [10.02911428]\n", - " [11.34525411]\n", - " [14.92627595]\n", - " [14.91296044]\n", - " [13.72963782]\n", - " [17.7199091 ]\n", - " [13.18320546]\n", - " [10.8968137 ]\n", - " [10.96409634]\n", - " [14.51651115]\n", - " [14.79094898]\n", - " [16.72584023]\n", - " [12.69836832]\n", - " [16.48931119]\n", - " [14.13513952]\n", - " [15.73944018]\n", - " [14.68572758]\n", - " [15.46309336]\n", - " [14.58933741]\n", - " [16.76432502]\n", - " [13.51774498]\n", - " [14.6287051 ]\n", - " [ 9.78612228]\n", - " [ 9.40106032]\n", - " [15.04742566]\n", - " [15.89985993]\n", - " [ 9.58863793]\n", - " [16.34138122]\n", - " [13.03252799]\n", - " [14.5297528 ]\n", - " [11.86024631]\n", - " [12.47160356]\n", - " [12.29749863]\n", - " [13.97385837]\n", - " [10.48923826]\n", - " [13.45809414]\n", - " [12.38237918]\n", - " [13.11799869]\n", - " [13.57485752]\n", - " [13.40024798]\n", - " [ 9.28424025]\n", - " [12.91042994]\n", - " [12.7289918 ]\n", - " [12.48521919]\n", - " [14.66183582]\n", - " [16.51920076]\n", - " [12.64208517]\n", - " [16.36460441]\n", - " [ 8.41660125]\n", - " [14.76368849]\n", - " [15.83509106]\n", - " [17.04390988]\n", - " [14.91573496]\n", - " [21.47961509]\n", - " [16.50403127]\n", - " [17.15679147]\n", - " [16.70374265]\n", - " [15.52951657]\n", - " [ 9.99020825]\n", - " [ 9.77055498]\n", - " [13.56787276]\n", - " [ 9.88344095]\n", - " [12.15491401]\n", - " [16.4902649 ]\n", - " [11.95517911]\n", - " [10.57286709]\n", - " [17.10950069]\n", - " [15.56326679]\n", - " [17.53730905]\n", - " [13.80063482]\n", - " [15.90565141]\n", - " [13.88400631]\n", - " [14.21087964]\n", - " [15.80127732]\n", - " [13.61175948]\n", - " [11.65852426]\n", - " [ 8.25773812]\n", - " [15.11814908]\n", - " [15.68103653]\n", - " [17.72805424]\n", - " [ 6.32178689]\n", - " [15.70834008]\n", - " [14.57717647]\n", - " [12.17371891]\n", - " [14.33186331]\n", - " [16.43440738]\n", - " [11.52771966]\n", - " [11.29647228]\n", - " [11.6056564 ]\n", - " [ 6.8630355 ]\n", - " [14.41492587]\n", - " [17.08958415]\n", - " [13.94961749]\n", - " [13.40886211]\n", - " [16.54486727]\n", - " [14.75960015]\n", - " [11.89227108]\n", - " [16.82178666]\n", - " [12.35864393]\n", - " [ 9.82946438]\n", - " [14.7816892 ]\n", - " [13.03667245]\n", - " [14.30183343]\n", - " [10.63765727]\n", - " [11.45832266]\n", - " [12.64146284]\n", - " [13.58928047]\n", - " [17.62304795]\n", - " [15.38949 ]\n", - " [14.29218421]\n", - " [15.27531557]\n", - " [19.66501184]\n", - " [11.80225157]\n", - " [15.54483666]\n", - " [12.50204528]\n", - " [15.5437396 ]\n", - " [12.28643236]\n", - " [15.87359038]\n", - " [13.73245908]\n", - " [15.68021167]\n", - " [10.65071122]\n", - " [14.52491257]\n", - " [11.30059346]\n", - " [11.77867074]\n", - " [13.11114145]\n", - " [14.06740672]\n", - " [12.51908156]\n", - " [11.71672037]\n", - " [15.89180044]\n", - " [ 9.1963344 ]\n", - " [15.55308372]\n", - " [10.55174686]\n", - " [12.54730035]\n", - " [17.28753057]\n", - " [16.69954967]\n", - " [15.29824505]\n", - " [13.26437242]\n", - " [15.76296939]\n", - " [13.76209767]\n", - " [12.84431516]\n", - " [11.0749699 ]\n", - " [17.63205085]\n", - " [10.78509038]\n", - " [ 7.38817402]\n", - " [ 9.22912571]\n", - " [12.59340671]\n", - " [17.31689913]\n", - " [11.67668535]\n", - " [16.23071242]\n", - " [ 7.78490401]\n", - " [12.81883579]\n", - " [16.53504483]\n", - " [13.41794654]\n", - " [12.23674308]\n", - " [12.66953706]\n", - " [13.26388278]\n", - " [12.00506621]\n", - " [11.02455723]\n", - " [12.93963959]\n", - " [10.64586103]\n", - " [14.56912265]\n", - " [13.32454351]\n", - " [13.94956744]\n", - " [15.07847568]\n", - " [15.23535075]\n", - " [18.11264864]\n", - " [ 8.93184698]\n", - " [12.32715505]\n", - " [13.1272663 ]\n", - " [12.43301045]\n", - " [11.95663602]\n", - " [10.81584565]\n", - " [11.98783773]\n", - " [11.81567241]\n", - " [12.99614168]\n", - " [16.36865701]\n", - " [10.71955364]\n", - " [16.8742704 ]\n", - " [17.66425513]\n", - " [10.92596272]\n", - " [13.09021751]\n", - " [11.73653821]\n", - " [10.42387188]\n", - " [11.70665676]\n", - " [13.52916276]\n", - " [16.07179482]\n", - " [19.38342031]\n", - " [19.61045803]\n", - " [14.20121463]\n", - " [ 9.13172703]\n", - " [10.04600339]\n", - " [12.75382271]\n", - " [10.72172365]\n", - " [15.00272697]\n", - " [15.66468479]\n", - " [ 9.88368608]\n", - " [12.2277181 ]\n", - " [14.38938764]\n", - " [12.15231012]\n", - " [10.24137184]\n", - " [10.57926107]\n", - " [14.73141485]\n", - " [14.20050238]\n", - " [ 8.34009195]\n", - " [13.0077434 ]\n", - " [13.4300423 ]\n", - " [13.65538326]\n", - " [10.07857839]\n", - " [13.59044222]\n", - " [12.24857957]\n", - " [12.28191666]\n", - " [15.43694785]\n", - " [17.12399905]\n", - " [17.03071137]\n", - " [ 8.87991817]\n", - " [14.01978119]\n", - " [14.19531736]\n", - " [16.83964542]\n", - " [14.45899868]\n", - " [10.64353334]\n", - " [14.42719519]\n", - " [15.33177051]\n", - " [11.18547155]\n", - " [11.32399982]\n", - " [14.14648562]\n", - " [15.55969888]\n", - " [12.15754117]\n", - " [11.64281513]\n", - " [14.7362755 ]\n", - " [15.54775826]\n", - " [14.20715003]\n", - " [13.66860734]\n", - " [13.8545196 ]\n", - " [10.23843195]\n", - " [14.14110912]\n", - " [14.26059522]\n", - " [12.99035918]\n", - " [14.88705697]\n", - " [15.59890373]\n", - " [14.72828859]\n", - " [ 9.40664138]\n", - " [13.43811157]\n", - " [ 8.98659448]\n", - " [14.23736189]\n", - " [15.65105117]\n", - " [13.80532108]\n", - " [11.99448378]\n", - " [11.559723 ]\n", - " [14.8227962 ]\n", - " [11.15762993]\n", - " [ 7.7040367 ]\n", - " [ 8.9651855 ]\n", - " [11.60828231]\n", - " [10.37424201]\n", - " [ 8.54916209]\n", - " [12.54416794]\n", - " [11.2945863 ]\n", - " [13.64565189]\n", - " [17.36416223]\n", - " [11.54416661]\n", - " [15.31478916]\n", - " [14.61696206]\n", - " [15.16171365]\n", - " [12.99637801]\n", - " [14.11921869]\n", - " [13.68676579]\n", - " [15.98757357]\n", - " [14.29337105]\n", - " [12.78573241]\n", - " [15.7691394 ]\n", - " [12.12278592]\n", - " [14.7159923 ]\n", - " [10.31779145]\n", - " [13.80711542]\n", - " [12.1530812 ]\n", - " [15.62998765]\n", - " [12.82376356]\n", - " [14.34071579]\n", - " [13.5571853 ]\n", - " [ 9.03121804]\n", - " [11.26409457]\n", - " [ 7.80334612]\n", - " [ 9.90253608]\n", - " [13.37312509]\n", - " [12.13791745]\n", - " [10.19848748]\n", - " [13.02156751]\n", - " [15.15583573]\n", - " [17.83052497]\n", - " [ 9.95227128]\n", - " [13.20782227]\n", - " [12.18237725]\n", - " [14.36022382]\n", - " [11.57270217]\n", - " [13.44747548]\n", - " [14.68849842]\n", - " [13.50440349]\n", - " [10.60567806]\n", - " [10.10526632]\n", - " [14.17294076]\n", - " [15.26874475]\n", - " [ 8.33837568]\n", - " [17.81027082]\n", - " [12.11534181]\n", - " [17.77908922]\n", - " [19.10270947]\n", - " [12.55044394]\n", - " [13.93420608]\n", - " [11.96810962]\n", - " [12.23690006]\n", - " [16.25397553]\n", - " [10.61408696]\n", - " [13.06746808]\n", - " [12.16803144]\n", - " [12.1301011 ]\n", - " [17.3297622 ]\n", - " [16.29287197]\n", - " [15.80419423]\n", - " [13.04916257]\n", - " [12.10471603]\n", - " [17.31305511]\n", - " [14.7103978 ]\n", - " [12.32687932]\n", - " [12.10986615]\n", - " [10.5009043 ]\n", - " [10.43027054]\n", - " [12.20285153]\n", - " [19.27365767]\n", - " [16.39704661]\n", - " [11.86382007]\n", - " [11.46814026]\n", - " [ 9.73225714]\n", - " [12.41385482]\n", - " [15.1499059 ]\n", - " [11.08946565]\n", - " [13.48541279]\n", - " [13.6545257 ]\n", - " [11.46785545]\n", - " [10.29439998]\n", - " [19.01404704]\n", - " [12.07670189]\n", - " [12.45038295]\n", - " [12.13498606]\n", - " [14.6452182 ]\n", - " [10.6858466 ]\n", - " [16.168307 ]\n", - " [13.77711932]\n", - " [11.03356534]\n", - " [13.58148925]\n", - " [11.31211836]\n", - " [17.66434127]\n", - " [ 9.92729955]\n", - " [13.5760964 ]\n", - " [11.61328219]\n", - " [14.05883886]\n", - " [12.80848236]\n", - " [15.98071689]\n", - " [11.03891186]\n", - " [18.68169078]\n", - " [15.35633881]\n", - " [15.16474001]\n", - " [14.52428934]\n", - " [13.63749592]\n", - " [10.69688929]\n", - " [10.93690752]\n", - " [17.20480859]\n", - " [18.22717916]\n", - " [18.68358608]\n", - " [13.60975082]\n", - " [12.14405794]\n", - " [12.4415014 ]\n", - " [ 6.61346856]\n", - " [11.89760027]\n", - " [13.02954377]\n", - " [ 9.46145992]\n", - " [13.86837999]\n", - " [14.76916954]\n", - " [10.47120922]\n", - " [11.62289438]\n", - " [16.14079144]\n", - " [17.8635965 ]\n", - " [ 8.75193039]\n", - " [17.04616381]\n", - " [10.77364687]\n", - " [13.51779684]\n", - " [12.59315588]\n", - " [13.86311994]\n", - " [13.64664501]\n", - " [13.08024746]\n", - " [10.922825 ]\n", - " [ 7.47358032]\n", - " [18.05240905]\n", - " [16.97682375]\n", - " [15.55569866]\n", - " [11.398238 ]\n", - " [17.25116913]\n", - " [15.67343553]\n", - " [11.3153447 ]\n", - " [13.33560757]\n", - " [15.09788587]\n", - " [12.51103348]\n", - " [11.78627279]\n", - " [11.52242422]\n", - " [14.92402541]\n", - " [12.85373111]\n", - " [15.66977428]\n", - " [11.63174234]\n", - " [12.29265154]\n", - " [12.92775592]\n", - " [13.17667832]\n", - " [18.80264049]\n", - " [13.25618415]\n", - " [14.02420064]\n", - " [12.70735477]\n", - " [ 9.6506812 ]\n", - " [14.46082677]\n", - " [17.28382033]\n", - " [14.05709911]\n", - " [15.56698268]\n", - " [15.13855966]\n", - " [11.78133359]\n", - " [18.90025602]\n", - " [13.28381486]\n", - " [ 9.33561014]\n", - " [11.42782727]\n", - " [13.58425169]\n", - " [13.15178339]\n", - " [ 7.1334583 ]\n", - " [16.03224103]\n", - " [16.41087279]\n", - " [14.70709722]\n", - " [12.14220567]\n", - " [14.05434745]\n", - " [17.55801705]\n", - " [12.25261577]\n", - " [13.85599218]\n", - " [14.15895287]\n", - " [13.54669033]\n", - " [13.19537512]\n", - " [14.35166689]\n", - " [14.56424357]\n", - " [11.82021112]\n", - " [ 9.98855857]\n", - " [14.89902429]\n", - " [ 7.28445938]\n", - " [ 8.13783778]\n", - " [11.95008148]\n", - " [16.0113615 ]\n", - " [13.39376324]\n", - " [17.29384646]\n", - " [12.84282823]\n", - " [11.11129524]\n", - " [12.71644104]\n", - " [15.16756256]\n", - " [11.36696178]\n", - " [11.08414033]\n", - " [12.54213119]\n", - " [14.82854189]\n", - " [11.42357735]\n", - " [10.10147258]\n", - " [11.50578 ]\n", - " [11.64410544]\n", - " [13.92321879]\n", - " [12.40542791]\n", - " [12.65213494]\n", - " [11.8805871 ]\n", - " [ 9.2656055 ]\n", - " [12.13714605]\n", - " [10.82010151]\n", - " [12.78573148]\n", - " [13.37727827]\n", - " [13.55386226]\n", - " [11.51949938]\n", - " [13.87831845]\n", - " [13.68179978]\n", - " [10.67132822]\n", - " [ 9.622749 ]\n", - " [11.16798743]\n", - " [16.8499283 ]\n", - " [ 9.77243682]\n", - " [ 7.84553006]\n", - " [11.76371992]\n", - " [13.55532887]\n", - " [14.99092584]\n", - " [11.19222669]\n", - " [11.0728423 ]\n", - " [12.11927514]\n", - " [13.80287228]\n", - " [16.0536493 ]\n", - " [10.24959221]\n", - " [17.18737233]\n", - " [15.00604115]\n", - " [17.20228737]\n", - " [16.34554685]\n", - " [17.69682013]\n", - " [15.59127395]\n", - " [ 9.44174427]\n", - " [11.69057597]\n", - " [13.82592346]\n", - " [16.27987561]\n", - " [10.61301988]\n", - " [12.60684989]\n", - " [17.77309521]\n", - " [ 7.60060323]\n", - " [14.97179104]\n", - " [10.63016703]\n", - " [11.93321128]\n", - " [15.53686483]\n", - " [16.46217865]\n", - " [13.50742647]\n", - " [12.7862311 ]\n", - " [17.39330187]\n", - " [17.54918389]\n", - " [16.36823758]\n", - " [14.46504907]]\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.linear_model import LassoCV\n", @@ -1006,60 +158,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True causal estimate is 11.21529604289463\n" - ] - } - ], + "outputs": [], "source": [ "print(\"True causal estimate is\", data[\"ate\"])" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1 | X0,X1\n", - "Target units: \n", - "\n", - "## Estimate\n", - "Mean value: 11.197045571286015\n", - "Effect estimates: [[14.45970606]\n", - " [ 7.92732219]\n", - " [ 9.21548077]\n", - " ...\n", - " [13.5011984 ]\n", - " [10.93485181]\n", - " [14.24837647]]\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "dml_estimate = model.estimate_effect(identified_estimand, method_name=\"backdoor.econml.dml.DML\",\n", " control_value = 0,\n", @@ -1084,48 +194,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1 | X0,X1\n", - "Target units: ate\n", - "\n", - "## Estimate\n", - "Mean value: 11.149665608777859\n", - "Effect estimates: [[14.44776338]\n", - " [ 7.89687314]\n", - " [ 9.15672373]\n", - " ...\n", - " [13.46868416]\n", - " [10.87034851]\n", - " [14.22330456]]\n", - "95.0% confidence interval: [[[14.47334195 7.77493804 9.08285854 ... 13.49814084 10.85713677\n", - " 14.24807635]]\n", - "\n", - " [[14.75982633 7.99995529 9.23683603 ... 13.72147037 10.99448359\n", - " 14.51946201]]]\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.linear_model import LassoCV\n", @@ -1155,26 +226,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[12.12394393]\n", - " [11.56905609]\n", - " [12.33823836]\n", - " [12.32042514]\n", - " [10.97170289]\n", - " [12.26657423]\n", - " [12.50776903]\n", - " [11.52478607]\n", - " [12.16132405]\n", - " [12.14057139]]\n" - ] - } - ], + "outputs": [], "source": [ "test_cols= data['effect_modifier_names'] # only need effect modifiers' values\n", "test_arr = [np.random.uniform(0,1, 10) for _ in range(len(test_cols))] # all variables are sampled uniformly, sample of 10\n", @@ -1201,17 +255,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(dml_estimate._estimator_object)" ] @@ -1233,46 +279,12 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " X0 X1 Z0 Z1 W0 W1 W2 \\\n", - "0 0.489904 0.096652 1.0 0.003280 -1.212777 0.358605 0.382168 \n", - "1 -0.521101 1.066729 0.0 0.303107 -0.321988 1.705521 0.646738 \n", - "2 0.442225 -0.689376 1.0 0.231044 0.140888 1.820693 3.334337 \n", - "3 -0.743038 -0.164462 1.0 0.102772 0.230746 1.643060 1.128348 \n", - "4 0.734149 -0.261472 1.0 0.531165 -0.288206 -1.385953 0.972841 \n", - "... ... ... ... ... ... ... ... \n", - "9995 -0.525539 1.269989 1.0 0.392007 1.046142 2.115656 2.279879 \n", - "9996 0.497916 0.975014 1.0 0.160181 -1.181845 -1.094077 1.543141 \n", - "9997 -0.026434 -1.085930 1.0 0.074459 1.233890 0.826205 0.936989 \n", - "9998 -0.044771 0.242069 1.0 0.566800 0.337112 0.347759 0.106970 \n", - "9999 -0.745530 1.622311 0.0 0.830792 2.201512 0.426812 -0.696532 \n", - "\n", - " W3 v0 y \n", - "0 -0.582397 1 1 \n", - "1 0.824977 1 1 \n", - "2 0.394061 1 1 \n", - "3 1.140933 1 1 \n", - "4 2.279420 1 1 \n", - "... ... .. .. \n", - "9995 0.204119 1 1 \n", - "9996 2.290268 1 1 \n", - "9997 0.497400 1 1 \n", - "9998 1.097935 1 1 \n", - "9999 0.614704 1 1 \n", - "\n", - "[10000 rows x 10 columns]\n" - ] - } - ], + "outputs": [], "source": [ "data_binary = dowhy.datasets.linear_dataset(BETA, num_common_causes=4, num_samples=10000,\n", - " num_instruments=2, num_effect_modifiers=2,\n", + " num_instruments=1, num_effect_modifiers=2,\n", " treatment_is_binary=True, outcome_is_binary=True)\n", "# convert boolean values to {0,1} numeric\n", "data_binary['df'].v0 = data_binary['df'].v0.astype(int)\n", @@ -1294,44 +306,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W0,W2,W1,U) = P(y|v0,W3,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1 | X0,X1\n", - "Target units: ate\n", - "\n", - "## Estimate\n", - "Mean value: 0.665623146096894\n", - "Effect estimates: [[0.66343849]\n", - " [0.64758808]\n", - " [0.66003439]\n", - " ...\n", - " [0.64998401]\n", - " [0.6538818 ]\n", - " [0.64515619]]\n", - "\n", - "True causal estimate is 0.2493\n" - ] - } - ], + "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegressionCV\n", "#todo needs binary y\n", @@ -1356,232 +333,22 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-07-23 17:44:54.124676: I tensorflow/core/util/util.cc:169] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", - "2023-07-23 17:44:54.264353: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n", - "2023-07-23 17:44:54.264398: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n", - "2023-07-23 17:44:59.827010: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", - "2023-07-23 17:44:59.827073: W tensorflow/stream_executor/cuda/cuda_driver.cc:269] failed call to cuInit: UNKNOWN ERROR (303)\n", - "2023-07-23 17:44:59.827119: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (AMSHAR-X1): /proc/driver/nvidia/version does not exist\n", - "2023-07-23 17:44:59.828007: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/25\n", - "313/313 [==============================] - 2s 4ms/step - loss: 8.7182\n", - "Epoch 2/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 3.8848\n", - "Epoch 3/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 2.7126\n", - "Epoch 4/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 2.3840\n", - "Epoch 5/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 2.3009\n", - "Epoch 6/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 2.2695\n", - "Epoch 7/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 2.2531\n", - "Epoch 8/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.2300\n", - "Epoch 9/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 2.2068\n", - "Epoch 10/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 2.1900\n", - "Epoch 11/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 2.1815\n", - "Epoch 12/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 2.1767\n", - "Epoch 13/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1624\n", - "Epoch 14/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1609\n", - "Epoch 15/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1586\n", - "Epoch 16/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 2.1419\n", - "Epoch 17/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 2.1289\n", - "Epoch 18/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 2.1254\n", - "Epoch 19/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1239\n", - "Epoch 20/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1103\n", - "Epoch 21/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.1123\n", - "Epoch 22/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 2.1024\n", - "Epoch 23/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 2.0887\n", - "Epoch 24/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 2.0884\n", - "Epoch 25/25\n", - "313/313 [==============================] - 1s 2ms/step - loss: 2.0766\n", - "Epoch 1/25\n", - "313/313 [==============================] - 2s 4ms/step - loss: 17930.0625\n", - "Epoch 2/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 7088.9463\n", - "Epoch 3/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 6421.2710\n", - "Epoch 4/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 6279.4985\n", - "Epoch 5/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 5940.8018\n", - "Epoch 6/25\n", - "313/313 [==============================] - 1s 3ms/step - loss: 5967.8521\n", - "Epoch 7/25\n", - "313/313 [==============================] - 1s 4ms/step - loss: 5930.2974\n", - "Epoch 8/25\n", - "313/313 [==============================] - 2s 5ms/step - loss: 5809.0239\n", - "Epoch 9/25\n", - "313/313 [==============================] - 3s 8ms/step - loss: 5858.6870\n", - "Epoch 10/25\n", - "313/313 [==============================] - 3s 8ms/step - loss: 5987.8755\n", - "Epoch 11/25\n", - "313/313 [==============================] - 2s 7ms/step - loss: 5794.1372\n", - "Epoch 12/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5898.4888\n", - "Epoch 13/25\n", - "313/313 [==============================] - 2s 5ms/step - loss: 5847.3872\n", - "Epoch 14/25\n", - "313/313 [==============================] - 1s 5ms/step - loss: 5818.8799\n", - "Epoch 15/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5753.1304\n", - "Epoch 16/25\n", - "313/313 [==============================] - 2s 7ms/step - loss: 5925.1919\n", - "Epoch 17/25\n", - "313/313 [==============================] - 2s 7ms/step - loss: 5782.2402\n", - "Epoch 18/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5768.5786\n", - "Epoch 19/25\n", - "313/313 [==============================] - 2s 7ms/step - loss: 5741.7646\n", - "Epoch 20/25\n", - "313/313 [==============================] - 2s 8ms/step - loss: 5674.4023\n", - "Epoch 21/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5789.1982\n", - "Epoch 22/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5838.4785\n", - "Epoch 23/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5773.2202\n", - "Epoch 24/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5712.6611\n", - "Epoch 25/25\n", - "313/313 [==============================] - 2s 6ms/step - loss: 5843.3638\n", - "WARNING:tensorflow:\n", - "The following Variables were used a Lambda layer's call (lambda_7), but\n", - "are not present in its tracked objects:\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "It is possible that this is intended behavior, but it is more likely\n", - "an omission. This is a strong indication that this layer should be\n", - "formulated as a subclassed Layer rather than a Lambda layer.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:\n", - "The following Variables were used a Lambda layer's call (lambda_7), but\n", - "are not present in its tracked objects:\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "It is possible that this is intended behavior, but it is more likely\n", - "an omission. This is a strong indication that this layer should be\n", - "formulated as a subclassed Layer rather than a Lambda layer.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "224/224 [==============================] - 1s 2ms/step\n", - "224/224 [==============================] - 0s 2ms/step\n", - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: iv\n", - "Estimand expression:\n", - " ⎡ -1⎤\n", - " ⎢ d ⎛ d ⎞ ⎥\n", - "E⎢─────────(y)⋅⎜─────────([v₀])⎟ ⎥\n", - " ⎣d[Z₁ Z₀] ⎝d[Z₁ Z₀] ⎠ ⎦\n", - "Estimand assumption 1, As-if-random: If U→→y then ¬(U →→{Z1,Z0})\n", - "Estimand assumption 2, Exclusion: If we remove {Z1,Z0}→{v0}, then ¬({Z1,Z0}→y)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+W3+W0+W2+W1 | X0,X1\n", - "Target units: Data subset defined by a function\n", - "\n", - "## Estimate\n", - "Mean value: 1.0939991474151611\n", - "Effect estimates: [[ 3.140396 ]\n", - " [-0.9264221]\n", - " [-0.6861267]\n", - " ...\n", - " [ 2.2031708]\n", - " [-0.5570221]\n", - " [ 2.6899872]]\n", - "\n" - ] - } - ], + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ - "import keras\n", - "dims_zx = len(model.get_instruments())+len(model.get_effect_modifiers())\n", - "dims_tx = len(model._treatment)+len(model.get_effect_modifiers())\n", - "treatment_model = keras.Sequential([keras.layers.Dense(128, activation='relu', input_shape=(dims_zx,)), # sum of dims of Z and X \n", - " keras.layers.Dropout(0.17),\n", - " keras.layers.Dense(64, activation='relu'),\n", - " keras.layers.Dropout(0.17),\n", - " keras.layers.Dense(32, activation='relu'),\n", - " keras.layers.Dropout(0.17)]) \n", - "response_model = keras.Sequential([keras.layers.Dense(128, activation='relu', input_shape=(dims_tx,)), # sum of dims of T and X\n", - " keras.layers.Dropout(0.17), \n", - " keras.layers.Dense(64, activation='relu'),\n", - " keras.layers.Dropout(0.17),\n", - " keras.layers.Dense(32, activation='relu'),\n", - " keras.layers.Dropout(0.17),\n", - " keras.layers.Dense(1)])\n", - "\n", - "deepiv_estimate = model.estimate_effect(identified_estimand, \n", - " method_name=\"iv.econml.iv.nnet.DeepIV\",\n", + "dmliv_estimate = model.estimate_effect(identified_estimand, \n", + " method_name=\"iv.econml.iv.dml.DMLIV\",\n", " target_units = lambda df: df[\"X0\"]>-1, \n", " confidence_intervals=False,\n", - " method_params={\"init_params\":{'n_components': 10, # Number of gaussians in the mixture density networks\n", - " 'm': lambda z, x: treatment_model(keras.layers.concatenate([z, x])), # Treatment model,\n", - " \"h\": lambda t, x: response_model(keras.layers.concatenate([t, x])), # Response model\n", - " 'n_samples': 1, # Number of samples used to estimate the response\n", - " 'first_stage_options': {'epochs':25},\n", - " 'second_stage_options': {'epochs':25}\n", + " method_params={\"init_params\":{\n", + " 'discrete_treatment':False,\n", + " 'discrete_instrument':False\n", " },\n", " \"fit_params\":{}})\n", - "print(deepiv_estimate)" + "print(dmliv_estimate)" ] }, { @@ -1593,43 +360,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " X0 X1 X2 X3 X4 Z0 Z1 \\\n", - "0 0.129227 0.510094 -1.475240 -0.219903 1.758580 0.0 0.019989 \n", - "1 0.129312 -1.265757 -0.927238 -0.617949 -0.526980 0.0 0.533503 \n", - "2 1.465955 0.513754 0.600330 -0.991137 -0.343302 1.0 0.041271 \n", - "3 -0.848521 -0.300619 -0.219193 -0.796686 0.059552 1.0 0.007219 \n", - "4 0.639915 1.777497 0.753570 0.447037 0.221725 0.0 0.246742 \n", - "... ... ... ... ... ... ... ... \n", - "9995 0.993821 0.476915 -1.997253 1.624126 -0.839789 0.0 0.339309 \n", - "9996 -0.704006 0.065800 0.758941 1.907440 1.512859 0.0 0.592743 \n", - "9997 1.980971 1.174533 0.204603 -0.773177 0.440402 1.0 0.221890 \n", - "9998 0.008317 -0.227060 1.315543 0.992438 2.514962 1.0 0.756688 \n", - "9999 1.202715 0.530296 -0.650898 -0.748343 1.811226 0.0 0.825335 \n", - "\n", - " W0 W1 W2 W3 W4 v0 y \n", - "0 -2.455495 0.496016 2.374215 0.096688 -0.784725 0 4.121399 \n", - "1 -1.231912 -1.014431 -0.961038 -1.222188 -0.131987 0 -8.610506 \n", - "2 0.896354 -0.232496 1.631606 0.133437 0.194136 1 19.346896 \n", - "3 -1.965647 1.090449 1.785160 -1.960019 -1.361789 1 7.154199 \n", - "4 1.736414 -0.640084 -0.625175 -0.821564 0.498603 1 16.337337 \n", - "... ... ... ... ... ... .. ... \n", - "9995 -0.594311 -1.394031 1.495237 -1.488875 -0.615948 0 -3.693408 \n", - "9996 -0.345999 -1.243541 -1.070301 0.570454 1.844072 1 13.746460 \n", - "9997 -0.760516 0.662359 0.657406 -0.077945 -0.547748 1 21.460885 \n", - "9998 0.886693 0.759553 0.980638 -2.793115 1.584166 1 25.485743 \n", - "9999 0.831213 -0.392465 1.755727 0.407155 0.179335 1 24.272205 \n", - "\n", - "[10000 rows x 14 columns]\n" - ] - } - ], + "outputs": [], "source": [ "data_experiment = dowhy.datasets.linear_dataset(BETA, num_common_causes=5, num_samples=10000,\n", " num_instruments=2, num_effect_modifiers=5,\n", @@ -1645,51 +378,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:dowhy.causal_estimator:Concatenating common_causes and effect_modifiers and providing a single list of variables to metalearner estimator method, TLearner. EconML metalearners accept a single X argument.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W4,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W4,W0,W2,W1,U) = P(y|v0,W3,W4,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+X3+X1+X2+X0+X4+W3+W4+W0+W2+W1\n", - "Target units: ate\n", - "\n", - "## Estimate\n", - "Mean value: 15.263186238991091\n", - "Effect estimates: [[15.79690208]\n", - " [ 5.37643925]\n", - " [16.59310522]\n", - " ...\n", - " [20.8231476 ]\n", - " [23.31454111]\n", - " [21.81387794]]\n", - "\n", - "True causal estimate is 13.921783106444051\n" - ] - } - ], + "outputs": [], "source": [ "from sklearn.ensemble import RandomForestRegressor\n", "metalearner_estimate = model_experiment.estimate_effect(identified_estimand_experiment, \n", @@ -1720,42 +411,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "*** Causal Estimate ***\n", - "\n", - "## Identified estimand\n", - "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", - "\n", - "### Estimand : 1\n", - "Estimand name: backdoor\n", - "Estimand expression:\n", - " d \n", - "─────(E[y|W3,W4,W0,W2,W1])\n", - "d[v₀] \n", - "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W4,W0,W2,W1,U) = P(y|v0,W3,W4,W0,W2,W1)\n", - "\n", - "## Realized estimand\n", - "b: y~v0+X3+X1+X2+X0+X4+W3+W4+W0+W2+W1\n", - "Target units: Data subset provided as a data frame\n", - "\n", - "## Estimate\n", - "Mean value: 18.01798358591133\n", - "Effect estimates: [[ 7.2915195 ]\n", - " [23.13507182]\n", - " [12.07144299]\n", - " [27.61115405]\n", - " [19.98072957]]\n", - "\n", - "True causal estimate is 13.921783106444051\n" - ] - } - ], + "outputs": [], "source": [ "# For metalearners, need to provide all the features (except treatmeant and outcome)\n", "metalearner_estimate = model_experiment.estimate_effect(identified_estimand_experiment, \n", @@ -1784,21 +442,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Refute: Add a random common cause\n", - "Estimated effect:11.992439117764018\n", - "New effect:12.006660844848646\n", - "p value:0.76\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "res_random=model.refute_estimate(identified_estimand, dml_estimate, method_name=\"random_common_cause\")\n", "print(res_random)" @@ -1813,20 +459,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Refute: Add an Unobserved Common Cause\n", - "Estimated effect:11.992439117764018\n", - "New effect:12.024266312057163\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "res_unobserved=model.refute_estimate(identified_estimand, dml_estimate, method_name=\"add_unobserved_common_cause\",\n", " confounders_effect_on_treatment=\"linear\", confounders_effect_on_outcome=\"linear\",\n", @@ -1843,29 +478,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:dowhy.causal_refuter:We assume a Normal Distribution as the sample has less than 100 examples.\n", - " Note: The underlying distribution may not be Normal. We assume that it approaches normal with the increase in sample size.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Refute: Use a Placebo Treatment\n", - "Estimated effect:11.992439117764018\n", - "New effect:0.01626382750118571\n", - "p value:0.3933780406802491\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "res_placebo=model.refute_estimate(identified_estimand, dml_estimate,\n", " method_name=\"placebo_treatment_refuter\", placebo_type=\"permute\",\n", @@ -1883,29 +498,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:dowhy.causal_refuter:We assume a Normal Distribution as the sample has less than 100 examples.\n", - " Note: The underlying distribution may not be Normal. We assume that it approaches normal with the increase in sample size.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Refute: Use a subset of data\n", - "Estimated effect:11.992439117764018\n", - "New effect:11.991376826422218\n", - "p value:0.4869453171367034\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "res_subset=model.refute_estimate(identified_estimand, dml_estimate,\n", " method_name=\"data_subset_refuter\", subset_fraction=0.8,\n", diff --git a/tests/causal_estimators/test_econml_estimator.py b/tests/causal_estimators/test_econml_estimator.py index 335b31555a..1c3a883994 100644 --- a/tests/causal_estimators/test_econml_estimator.py +++ b/tests/causal_estimators/test_econml_estimator.py @@ -61,7 +61,7 @@ def test_backdoor_estimators(self): ) # Checking that the CATE estimates are not identical dml_cate_estimates_f = dml_estimate.cate_estimates.flatten() - assert pytest.approx(dml_cate_estimates_f[0], 0.01) != dml_cate_estimates_f[1] + assert pytest.approx(dml_cate_estimates_f[0], 0.001) != dml_cate_estimates_f[1] # Test ContinuousTreatmentOrthoForest orthoforest_estimate = model.estimate_effect( identified_estimand, @@ -71,7 +71,7 @@ def test_backdoor_estimators(self): ) # Checking that the CATE estimates are not identical orthoforest_cate_estimates_f = orthoforest_estimate.cate_estimates.flatten() - assert pytest.approx(orthoforest_cate_estimates_f[0], 0.01) != orthoforest_cate_estimates_f[1] + assert pytest.approx(orthoforest_cate_estimates_f[0], 0.001) != orthoforest_cate_estimates_f[1] # Test LinearDRLearner data_binary = datasets.linear_dataset( @@ -102,7 +102,7 @@ def test_backdoor_estimators(self): }, ) drlearner_cate_estimates_f = drlearner_estimate.cate_estimates.flatten() - assert pytest.approx(drlearner_cate_estimates_f[0], 0.01) != drlearner_cate_estimates_f[1] + assert pytest.approx(drlearner_cate_estimates_f[0], 0.001) != drlearner_cate_estimates_f[1] def test_metalearners(self): data = datasets.linear_dataset( @@ -190,21 +190,15 @@ def test_iv_estimators(self): keras.layers.Dense(1), ] ) - deepiv_estimate = model.estimate_effect( + dmliv_estimate = model.estimate_effect( identified_estimand, - method_name="iv.econml.iv.nnet.DeepIV", + method_name="iv.econml.iv.dml.DMLIV", target_units=lambda df: df["X0"] > -1, confidence_intervals=False, method_params={ "init_params": { - "n_components": 10, # Number of gaussians in the mixture density networks - # Treatment model, - "m": lambda z, x: treatment_model(keras.layers.concatenate([z, x])), - # Response model - "h": lambda t, x: response_model(keras.layers.concatenate([t, x])), - "n_samples": 1, # Number of samples used to estimate the response - "first_stage_options": {"epochs": 25}, - "second_stage_options": {"epochs": 25}, + 'discrete_treatment':False, + 'discrete_instrument':False }, "fit_params": {}, },