diff --git a/notebook/DOWHY.ipynb b/notebook/DOWHY.ipynb new file mode 100644 index 0000000..4e0dfbb --- /dev/null +++ b/notebook/DOWHY.ipynb @@ -0,0 +1,860 @@ +{ + "nbformat": 4, + "nbformat_minor": 5, + "metadata": { + "interpreter": { + "hash": "ad244426f359115d2c0499b23b7bb97e7c6e1bc225e7f39bb6d7e0b4ec820114" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.8.8 64-bit ('base': conda)" + }, + "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.8" + }, + "colab": { + "name": "DOWHY.ipynb", + "provenance": [] + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "rJntTv-CMHW3" + }, + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "import statsmodels.api as sm\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from dowhy import CausalModel\n", + "from IPython.display import Image, display\n", + "import os \n", + "import sys" + ], + "id": "rJntTv-CMHW3", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "q_8iizSwMHXW" + }, + "source": [ + "DoWhy is a Python Library that sparks causal thinking and analysis via 4-steps:\n", + "1. Model a causal inference problem using assumptions that we create.\n", + "2. Identify an expression for the causal effect under these assumptions (“causal estimand”).\n", + "3. Estimate the expression using statistical methods such as matching or instrumental variables.\n", + "4. Verify the validity of the estimate using a variety of robustness checks.\n", + "\n", + "If we make it more simple, the way DoWhy package done Causal Analysis is by Creating Causal Model -> Identify Effect -> Estimate the Effect -> Validate." + ], + "id": "q_8iizSwMHXW" + }, + { + "cell_type": "code", + "metadata": { + "id": "BxMQLevaMHXq" + }, + "source": [ + "class Causal_Model:\n", + " def __init__(self,df:pd.DataFrame,treatment:str,outcome:str)->None:\n", + " self.df=df\n", + " self.treatment=treatment\n", + " self.outcome=outcome\n", + "\n", + " def dowhy_model(self):\n", + " labelencoder = LabelEncoder()\n", + " self.df[self.outcome] = labelencoder.fit_transform(self.df[self.outcome])\n", + " cols=list(self.df.columns)\n", + " if self.treatment in cols and self.outcome in cols :\n", + " xs = self.df.drop([self.treatment,self.outcome], axis = 1)\n", + " xs=xs.columns.tolist()\n", + " model=CausalModel(\n", + " data= self.df,\n", + " treatment=self.treatment,\n", + " outcome=self.outcome,\n", + " common_causes=xs\n", + " )\n", + " model.view_model()\n", + " display(Image(filename=\"causal_model.png\"))\n", + " estimands = model.identify_effect() \n", + " print(estimands)\n", + " estimate = model.estimate_effect(estimands,method_name = \"backdoor.propensity_score_weighting\")\n", + " print(estimate)\n", + " refutel1 = model.refute_estimate(estimands,estimate, \"random_common_cause\")\n", + " print(refutel1)\n", + " refutel2 = model.refute_estimate(estimands,estimate, \"data_subset_refuter\")\n", + " print(refutel2)\n", + " refutel3 = model.refute_estimate(estimands,estimate, \"placebo_treatment_refuter\")\n", + " print(refutel3)\n", + " return estimands\n", + " \n", + " \n", + "\n" + ], + "id": "BxMQLevaMHXq", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "KfDzplQsMHX0" + }, + "source": [ + "data = pd.read_csv('../data/Univariate_feature_selection_best_5_features.csv')\n" + ], + "id": "KfDzplQsMHX0", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "2VBLpH5sMHX1", + "outputId": "a0797205-ca56-42af-dc3e-5c0e205df5d7" + }, + "source": [ + "labelencoder = LabelEncoder()\n", + "data['diagnosis'] = labelencoder.fit_transform(data['diagnosis'])\n", + "data" + ], + "id": "2VBLpH5sMHX1", + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " diagnosis area_mean area_se texture_mean concavity_worst \\\n", + "0 1 1040.0 53.91 19.98 0.3784 \n", + "1 1 577.9 50.96 20.83 0.2678 \n", + "2 1 797.8 40.51 23.24 0.1459 \n", + "3 1 781.0 54.16 17.89 0.3965 \n", + "4 1 782.7 36.58 23.95 0.2322 \n", + ".. ... ... ... ... ... \n", + "393 0 514.3 16.83 28.92 0.2439 \n", + "394 0 321.4 14.46 27.61 0.2000 \n", + "395 0 657.1 19.54 22.68 0.3662 \n", + "396 0 600.4 29.84 27.15 0.1326 \n", + "397 1 858.1 48.55 28.08 0.3403 \n", + "\n", + " concavity_mean \n", + "0 0.11270 \n", + "1 0.09366 \n", + "2 0.03299 \n", + "3 0.09954 \n", + "4 0.09938 \n", + ".. ... \n", + "393 0.06195 \n", + "394 0.05999 \n", + "395 0.10290 \n", + "396 0.04462 \n", + "397 0.09251 \n", + "\n", + "[398 rows x 6 columns]" + ], + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
diagnosisarea_meanarea_setexture_meanconcavity_worstconcavity_mean
011040.053.9119.980.37840.11270
11577.950.9620.830.26780.09366
21797.840.5123.240.14590.03299
31781.054.1617.890.39650.09954
41782.736.5823.950.23220.09938
.....................
3930514.316.8328.920.24390.06195
3940321.414.4627.610.20000.05999
3950657.119.5422.680.36620.10290
3960600.429.8427.150.13260.04462
3971858.148.5528.080.34030.09251
\n", + "

398 rows × 6 columns

\n", + "
" + ] + }, + "metadata": {}, + "execution_count": 28 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z_2WVdXlMHX3" + }, + "source": [ + "# Hypothesis \n", + "benign cells(no cancer) tend to have less concavity than malignant cells(cancer).\n", + "does high concaity cause diagnosis ?" + ], + "id": "z_2WVdXlMHX3" + }, + { + "cell_type": "code", + "metadata": { + "id": "aa33jvMmMHX4", + "outputId": "a60212a4-7dd1-4fff-f9d2-5c34fa9abc7b" + }, + "source": [ + "data['High_concavity'] = data['concavity_mean'].apply(lambda x: True if x > 0.04558 else False)\n", + "data" + ], + "id": "aa33jvMmMHX4", + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " diagnosis area_mean area_se texture_mean concavity_worst \\\n", + "0 1 1040.0 53.91 19.98 0.3784 \n", + "1 1 577.9 50.96 20.83 0.2678 \n", + "2 1 797.8 40.51 23.24 0.1459 \n", + "3 1 781.0 54.16 17.89 0.3965 \n", + "4 1 782.7 36.58 23.95 0.2322 \n", + ".. ... ... ... ... ... \n", + "393 0 514.3 16.83 28.92 0.2439 \n", + "394 0 321.4 14.46 27.61 0.2000 \n", + "395 0 657.1 19.54 22.68 0.3662 \n", + "396 0 600.4 29.84 27.15 0.1326 \n", + "397 1 858.1 48.55 28.08 0.3403 \n", + "\n", + " concavity_mean High_concavity ps ips_weight tips_weight \\\n", + "0 0.11270 True 0.950000 0.002645 0.005025 \n", + "1 0.09366 True 0.912386 0.002754 0.005025 \n", + "2 0.03299 False 0.778099 0.011323 0.017621 \n", + "3 0.09954 True 0.950000 0.002645 0.005025 \n", + "4 0.09938 True 0.847630 0.002964 0.005025 \n", + ".. ... ... ... ... ... \n", + "393 0.06195 True 0.533826 0.004707 0.005025 \n", + "394 0.05999 True 0.329082 0.007635 0.005025 \n", + "395 0.10290 True 0.785034 0.003201 0.005025 \n", + "396 0.04462 False 0.567097 0.005804 0.006583 \n", + "397 0.09251 True 0.950000 0.002645 0.005025 \n", + "\n", + " cips_weight ips_normalized_weight tips_normalized_weight \\\n", + "0 0.000264 0.003348 0.005025 \n", + "1 0.000483 0.003486 0.005025 \n", + "2 0.005025 0.015443 0.037776 \n", + "3 0.000264 0.003348 0.005025 \n", + "4 0.000903 0.003753 0.005025 \n", + ".. ... ... ... \n", + "393 0.004388 0.005959 0.005025 \n", + "394 0.010245 0.009666 0.005025 \n", + "395 0.001376 0.004052 0.005025 \n", + "396 0.005025 0.007916 0.014112 \n", + "397 0.000264 0.003348 0.005025 \n", + "\n", + " cips_normalized_weight ips_stabilized_weight tips_stabilized_weight \\\n", + "0 0.000456 0.001322 0.002513 \n", + "1 0.000832 0.001377 0.002513 \n", + "2 0.005025 0.005661 0.008810 \n", + "3 0.000456 0.001322 0.002513 \n", + "4 0.001558 0.001482 0.002513 \n", + ".. ... ... ... \n", + "393 0.007568 0.002353 0.002513 \n", + "394 0.017669 0.003818 0.002513 \n", + "395 0.002373 0.001600 0.002513 \n", + "396 0.005025 0.002902 0.003291 \n", + "397 0.000456 0.001322 0.002513 \n", + "\n", + " cips_stabilized_weight d_y dbar_y \n", + "0 0.000132 0.002645 0.000000 \n", + "1 0.000241 0.002754 0.000000 \n", + "2 0.002513 0.000000 0.011323 \n", + "3 0.000132 0.002645 0.000000 \n", + "4 0.000452 0.002964 0.000000 \n", + ".. ... ... ... \n", + "393 0.002194 0.000000 0.000000 \n", + "394 0.005122 0.000000 0.000000 \n", + "395 0.000688 0.000000 0.000000 \n", + "396 0.002513 0.000000 0.000000 \n", + "397 0.000132 0.002645 0.000000 \n", + "\n", + "[398 rows x 19 columns]" + ], + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
diagnosisarea_meanarea_setexture_meanconcavity_worstconcavity_meanHigh_concavitypsips_weighttips_weightcips_weightips_normalized_weighttips_normalized_weightcips_normalized_weightips_stabilized_weighttips_stabilized_weightcips_stabilized_weightd_ydbar_y
011040.053.9119.980.37840.11270True0.9500000.0026450.0050250.0002640.0033480.0050250.0004560.0013220.0025130.0001320.0026450.000000
11577.950.9620.830.26780.09366True0.9123860.0027540.0050250.0004830.0034860.0050250.0008320.0013770.0025130.0002410.0027540.000000
21797.840.5123.240.14590.03299False0.7780990.0113230.0176210.0050250.0154430.0377760.0050250.0056610.0088100.0025130.0000000.011323
31781.054.1617.890.39650.09954True0.9500000.0026450.0050250.0002640.0033480.0050250.0004560.0013220.0025130.0001320.0026450.000000
41782.736.5823.950.23220.09938True0.8476300.0029640.0050250.0009030.0037530.0050250.0015580.0014820.0025130.0004520.0029640.000000
............................................................
3930514.316.8328.920.24390.06195True0.5338260.0047070.0050250.0043880.0059590.0050250.0075680.0023530.0025130.0021940.0000000.000000
3940321.414.4627.610.20000.05999True0.3290820.0076350.0050250.0102450.0096660.0050250.0176690.0038180.0025130.0051220.0000000.000000
3950657.119.5422.680.36620.10290True0.7850340.0032010.0050250.0013760.0040520.0050250.0023730.0016000.0025130.0006880.0000000.000000
3960600.429.8427.150.13260.04462False0.5670970.0058040.0065830.0050250.0079160.0141120.0050250.0029020.0032910.0025130.0000000.000000
3971858.148.5528.080.34030.09251True0.9500000.0026450.0050250.0002640.0033480.0050250.0004560.0013220.0025130.0001320.0026450.000000
\n", + "

398 rows × 19 columns

\n", + "
" + ] + }, + "metadata": {}, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "p1bxsFWaMHX5" + }, + "source": [ + "c=Causal_Model(data,'High_concavity','diagnosis')" + ], + "id": "p1bxsFWaMHX5", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "OMQ_W1ayMHX7", + "outputId": "c2c51efe-2aad-4206-a7e3-0252ff0261d6" + }, + "source": [ + "\n", + "c.dowhy_model()" + ], + "id": "OMQ_W1ayMHX7", + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "image/png": "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" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Estimand type: nonparametric-ate\n", + "\n", + "### Estimand : 1\n", + "Estimand name: backdoor\n", + "Estimand expression:\n", + " d \n", + "─────────────────(Expectation(diagnosis|area_se,texture_mean,concavity_worst,a\n", + "d[High_concavity] \n", + "\n", + " \n", + "rea_mean,concavity_mean))\n", + " \n", + "Estimand assumption 1, Unconfoundedness: If U→{High_concavity} and U→diagnosis then P(diagnosis|High_concavity,area_se,texture_mean,concavity_worst,area_mean,concavity_mean,U) = P(diagnosis|High_concavity,area_se,texture_mean,concavity_worst,area_mean,concavity_mean)\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", + "*** Causal Estimate ***\n", + "\n", + "## Identified estimand\n", + "Estimand type: nonparametric-ate\n", + "\n", + "### Estimand : 1\n", + "Estimand name: backdoor\n", + "Estimand expression:\n", + " d \n", + "─────────────────(Expectation(diagnosis|area_se,texture_mean,concavity_worst,a\n", + "d[High_concavity] \n", + "\n", + " \n", + "rea_mean,concavity_mean))\n", + " \n", + "Estimand assumption 1, Unconfoundedness: If U→{High_concavity} and U→diagnosis then P(diagnosis|High_concavity,area_se,texture_mean,concavity_worst,area_mean,concavity_mean,U) = P(diagnosis|High_concavity,area_se,texture_mean,concavity_worst,area_mean,concavity_mean)\n", + "\n", + "## Realized estimand\n", + "b: diagnosis~High_concavity+area_se+texture_mean+concavity_worst+area_mean+concavity_mean\n", + "Target units: ate\n", + "\n", + "## Estimate\n", + "Mean value: 0.21643523370068135\n", + "\n", + "Refute: Add a Random Common Cause\n", + "Estimated effect:0.21643523370068135\n", + "New effect:0.2093828042079643\n", + "\n", + "Refute: Use a subset of data\n", + "Estimated effect:0.21643523370068135\n", + "New effect:0.2140373026362897\n", + "p value:0.44999999999999996\n", + "\n", + "Refute: Use a Placebo Treatment\n", + "Estimated effect:0.21643523370068135\n", + "New effect:0.004942311401114228\n", + "p value:0.46\n", + "\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 22 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-08-28T19:34:09.027390\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.4, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8wlWfvytMHYB" + }, + "source": [ + "" + ], + "id": "8wlWfvytMHYB", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "YwnKN54iMHYD" + }, + "source": [ + "" + ], + "id": "YwnKN54iMHYD", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "z8lny2lIMHYH" + }, + "source": [ + "" + ], + "id": "z8lny2lIMHYH", + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/scripts/causality_graphing.py b/scripts/causality_graphing.py index cec7ae8..c796d8d 100644 --- a/scripts/causality_graphing.py +++ b/scripts/causality_graphing.py @@ -15,6 +15,9 @@ if (not os.path.isdir('../logs')): os.mkdir("../logs") +if (not os.path.isdir('../output')): + os.mkdir("../output") + logs_path = "../logs/causal-graph.logs" if not os.path.exists(logs_path): with open(logs_path, "w"):