From b9310223d5fdd25d0ed54611ac750182634dc1f1 Mon Sep 17 00:00:00 2001 From: pzivich Date: Wed, 17 Jul 2019 12:55:49 -0400 Subject: [PATCH] Updates for v0.8.0 release --- .../b_missing_data/4_IPCW.ipynb | 6 +- .../1_time-fixed-treatments/1_g-formula.ipynb | 154 ++--- .../2_gformula_stochastic.ipynb | 4 +- .../3_IPTW_intro.ipynb | 516 +++++++++------- .../1_time-fixed-treatments/4_IPTW_SMR.ipynb | 221 ++++--- .../5_AIPTW_intro.ipynb | 262 +++++--- .../6_AIPTW_continuous.ipynb | 159 ++++- .../7_TMLE_intro.ipynb | 100 ++- .../8_TMLE_continuous.ipynb | 36 +- .../9_TMLE_missing_data.ipynb | 12 + .../1-generalizability.ipynb | 100 +-- 4_Hernan-Robins/Chapter-12.ipynb | 583 +++++++++++------- 4_Hernan-Robins/Chapter-13.ipynb | 6 +- 4_Hernan-Robins/Chapter-14.ipynb | 139 ++--- 14 files changed, 1468 insertions(+), 830 deletions(-) diff --git a/3_Epidemiology_Analysis/b_missing_data/4_IPCW.ipynb b/3_Epidemiology_Analysis/b_missing_data/4_IPCW.ipynb index 3ae2b67..6aa0846 100644 --- a/3_Epidemiology_Analysis/b_missing_data/4_IPCW.ipynb +++ b/3_Epidemiology_Analysis/b_missing_data/4_IPCW.ipynb @@ -196,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -296,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -339,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 12, "metadata": {}, "outputs": [ { diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/1_g-formula.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/1_g-formula.ipynb index 68c987a..3ef183e 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/1_g-formula.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/1_g-formula.ipynb @@ -95,15 +95,6 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], - "source": [ - "dfs = df.dropna(subset=['dead'])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, "outputs": [ { "name": "stdout", @@ -116,8 +107,8 @@ "Model Family: Binomial Df Model: 9\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -202.85\n", - "Date: Wed, 24 Apr 2019 Deviance: 405.71\n", - "Time: 13:18:05 Pearson chi2: 535.\n", + "Date: Wed, 17 Jul 2019 Deviance: 405.71\n", + "Time: 12:29:38 Pearson chi2: 535.\n", "No. Iterations: 6 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -137,7 +128,7 @@ } ], "source": [ - "g = TimeFixedGFormula(dfs, exposure='art', outcome='dead')\n", + "g = TimeFixedGFormula(df, exposure='art', outcome='dead')\n", "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0')" ] }, @@ -154,14 +145,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Treat-all: 0.10609897227571947\n" + "Treat-all: 0.10702812052677532\n" ] } ], @@ -180,15 +171,15 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Treat-none: 0.18180266670881767\n", - "RD: -0.0757036944330982\n" + "Treat-none: 0.1830498597420999\n", + "RD: -0.07602173921532457\n" ] } ], @@ -205,6 +196,51 @@ "source": [ "From these results we would conclude that the 45-week risk of death when everyone was treated with ART was 7.6% points lower than if no one had been treatd with ART. \n", "\n", + "#### Diagnostics\n", + "Diagnostics for the performance of the outcome model are available. All available diagnostics can be ran by using the function `run_diagnostics()`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Natural Course Prediction Accuracy\n", + "======================================================================\n", + "Outcome model accuracy summary statistics. Defined as the predicted\n", + "outcome value minus the observed outcome value\n", + "----------------------------------------------------------------------\n", + "Mean value: 0.0\n", + "Standard Deviation: 0.348\n", + "Minimum value: -0.986\n", + "Maximum value: 0.611\n", + "======================================================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "g.run_diagnostics()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "But what about our confidence intervals? How do we get those?\n", "\n", "#### Confidence Intervals\n", @@ -220,8 +256,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "95% LCL -0.13786935963475236\n", - "95% UCL -0.005317893831270568\n" + "95% LCL -0.147226782498276\n", + "95% UCL -0.008072303245937516\n" ] } ], @@ -229,7 +265,7 @@ "rd_results = []\n", "\n", "for i in range(1000):\n", - " s = dfs.sample(n=dfs.shape[0],replace=True)\n", + " s = df.sample(n=df.shape[0],replace=True)\n", " g = TimeFixedGFormula(s,exposure='art',outcome='dead')\n", " g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", " print_results=False)\n", @@ -265,12 +301,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Treat-women 0.19759197688065527\n", - "RD: -0.016886986617095784\n" + "Treat-women 0.16939655798998102\n", + "RD: -0.021894178631267885\n" ] } ], "source": [ + "g = TimeFixedGFormula(df, exposure='art', outcome='dead')\n", + "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", "g.fit(treatment=\"g['male'] == 0\")\n", "r_women = g.marginal_outcome\n", "\n", @@ -294,12 +333,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Treat-CD4 0.1857392066347619\n", - "RD: -0.028739756862989158\n" + "Treat-CD4 0.15347553305970812\n", + "RD: -0.03781520356154078\n" ] } ], "source": [ + "g = TimeFixedGFormula(df, exposure='art', outcome='dead')\n", + "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", "g.fit(treatment=\"(g['age0'] < 50) & (g['cd40'] < 250)\")\n", "r_custom = g.marginal_outcome\n", "\n", @@ -314,31 +356,18 @@ "Again, this narrow treatment regime is better than not treating anyone but is markedly worse than if we had treated everyone with ART. \n", "\n", "### Continuous Outcomes\n", - "In the previous example, we focused on a binary outcome. We can also estimate the effect of ART on the 45-week CD4 T-cell count (continuous variable). We will reload the data, again assuming any missing CD4 T-cell data is missing-at-random conditional on our adjustment set. Additionally, we will ignore the implications of competing risks (not recommended)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "dfs = df.dropna(subset=['cd4_wk45'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ + "In the previous example, we focused on a binary outcome. We can also estimate the effect of ART on the 45-week CD4 T-cell count (continuous variable). We will reload the data, again assuming any missing CD4 T-cell data is missing-at-random conditional on our adjustment set. Additionally, we will ignore the implications of competing risks (not recommended). \n", + "\n", "There are two options for the distributions of continuous outcome data; normal and Poisson\n", "\n", + "\n", "#### Normal Distribution\n", "To estimate `TimeFixedGFormula` for continuous outcome data under the assumption that it is normally distributed, we specify the optional argument `outcome_type='normal'` when initializing the g-formula" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -352,8 +381,8 @@ "Model Family: Gaussian Df Model: 9\n", "Link Function: identity Scale: 1.8845e+05\n", "Method: IRLS Log-Likelihood: -3441.4\n", - "Date: Wed, 24 Apr 2019 Deviance: 8.4805e+07\n", - "Time: 13:19:13 Pearson chi2: 8.48e+07\n", + "Date: Wed, 17 Jul 2019 Deviance: 8.4805e+07\n", + "Time: 12:30:12 Pearson chi2: 8.48e+07\n", "No. Iterations: 3 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -373,7 +402,7 @@ } ], "source": [ - "g = TimeFixedGFormula(dfs,exposure='art', outcome='cd4_wk45', outcome_type='normal')\n", + "g = TimeFixedGFormula(df, exposure='art', outcome='cd4_wk45', outcome_type='normal')\n", "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + dvl0 + cd40 + cd4_rs1 + cd4_rs2')" ] }, @@ -386,14 +415,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ATE: 247.47646972909092\n" + "ATE: 247.4764697290907\n" ] } ], @@ -419,44 +448,21 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Generalized Linear Model Regression Results \n", - "==============================================================================\n", - "Dep. Variable: cd4_wk45 No. Observations: 460\n", - "Model: GLM Df Residuals: 450\n", - "Model Family: Poisson Df Model: 9\n", - "Link Function: log Scale: 1.0000\n", - "Method: IRLS Log-Likelihood: -43578.\n", - "Date: Wed, 24 Apr 2019 Deviance: 83136.\n", - "Time: 13:19:13 Pearson chi2: 7.79e+04\n", - "No. Iterations: 4 Covariance Type: nonrobust\n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 6.9516 0.020 346.648 0.000 6.912 6.991\n", - "art 0.2081 0.004 55.113 0.000 0.201 0.215\n", - "male 0.0126 0.004 3.459 0.001 0.005 0.020\n", - "age0 -0.0025 0.001 -3.601 0.000 -0.004 -0.001\n", - "age_rs1 0.0003 3.26e-05 9.164 0.000 0.000 0.000\n", - "age_rs2 -0.0011 6.75e-05 -16.808 0.000 -0.001 -0.001\n", - "dvl0 -0.0548 0.004 -12.355 0.000 -0.063 -0.046\n", - "cd40 0.0009 5.87e-05 14.909 0.000 0.001 0.001\n", - "cd4_rs1 -1.99e-06 1.51e-07 -13.161 0.000 -2.29e-06 -1.69e-06\n", - "cd4_rs2 4.182e-06 4.8e-07 8.712 0.000 3.24e-06 5.12e-06\n", - "==============================================================================\n", - "ATE: 247.99664141737208\n" + "ATE: 246.9362145680459\n" ] } ], "source": [ - "g = TimeFixedGFormula(dfs,exposure='art', outcome='cd4_wk45', outcome_type='poisson')\n", - "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + dvl0 + cd40 + cd4_rs1 + cd4_rs2')\n", + "g = TimeFixedGFormula(df, exposure='art', outcome='cd4_wk45', outcome_type='poisson')\n", + "g.outcome_model(model='art + male + age0 + age_rs1 + age_rs2 + dvl0 + cd40 + cd4_rs1 + cd4_rs2',\n", + " print_results=False)\n", "\n", "g.fit(treatment='all')\n", "r_all = g.marginal_outcome\n", diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/2_gformula_stochastic.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/2_gformula_stochastic.ipynb index bf2405e..6320a15 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/2_gformula_stochastic.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/2_gformula_stochastic.ipynb @@ -76,8 +76,8 @@ "Model Family: Binomial Df Model: 9\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -195.12\n", - "Date: Wed, 24 Apr 2019 Deviance: 390.24\n", - "Time: 13:21:17 Pearson chi2: 484.\n", + "Date: Wed, 17 Jul 2019 Deviance: 390.24\n", + "Time: 12:30:49 Pearson chi2: 484.\n", "No. Iterations: 5 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/3_IPTW_intro.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/3_IPTW_intro.ipynb index 23a81ca..b5f94c9 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/3_IPTW_intro.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/3_IPTW_intro.ipynb @@ -79,7 +79,7 @@ "With our data loaded, we are now ready to estimate the inverse probability of treatment weights. We can do this by using the `IPTW` class in *zEpid*. This class is initialized with our data set and the column name for the treatment.\n", "\n", "### Unstabilized Weights\n", - "We will start with estimation with unstabilized weights. We will specify the optional argument `stabilized=False` to generate the unstabilized weights" + "We will start with estimation with unstabilized weights." ] }, { @@ -90,14 +90,14 @@ "source": [ "from zepid.causal.ipw import IPTW\n", "\n", - "iptw = IPTW(df, treatment='art', stabilized=False)" + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "With the specified `IPTW` class, we will now use the `regression_models()` function. In this model, we will specify $L$. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, CD4 T-cell count, and detectable viral load. Additionally, we will use spline terms for age and baseline CD4 T-cell count" + "With the specified `IPTW` class, we will now use the `treatment_model()` function. In this model, we will specify $L$. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, CD4 T-cell count, and detectable viral load. Additionally, we will use spline terms for age and baseline CD4 T-cell count. We will also specify the optional argument `stabilized=False` to obtain unstabilized weights." ] }, { @@ -120,8 +120,8 @@ "Model Family: Binomial Df Model: 8\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -214.63\n", - "Date: Wed, 24 Apr 2019 Deviance: 429.26\n", - "Time: 13:21:49 Pearson chi2: 539.\n", + "Date: Wed, 17 Jul 2019 Deviance: 429.26\n", + "Time: 12:31:04 Pearson chi2: 539.\n", "No. Iterations: 5 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -140,14 +140,17 @@ } ], "source": [ - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0')" + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " stabilized=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "After specifying and fitting our regression model, the weights can be calculated by calling the `fit()` function. This will calculate the corresponding weights. Afterwards, we can access the `Weights` attribute to return our vector of weights. We will add these to our data set in a new column labeled 'uw' for unstabilized weights" + "After specifying and fitting our regression model, we next need to specify the marginal structural model. The marginal structural model in this example will only include the treatment variable `art`. However, marginal structural models can be specified to assess effect measure modification, as we will see later\n", + "\n", + "the weights can be calculated by calling the `fit()` function. This will calculate the corresponding weights. Afterwards, we can access the `Weights` attribute to return our vector of weights. We will add these to our data set in a new column labeled 'uw' for unstabilized weights" ] }, { @@ -156,20 +159,16 @@ "metadata": {}, "outputs": [], "source": [ - "iptw.fit()\n", - "df['uw'] = iptw.Weight" + "iptw.marginal_structural_model('art')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Diagnostics\n", - "Before going further, let's go through some diagnostics for our weights. All diagnostics can be ran after calling the `fit()` function. Current diagnostics include; distributions of predicted probabilities, Love plots (for confounder balance), and weight behavior\n", - "\n", - "First, we will look at the predicted probability distributions. We will stratify by treatment and compare the probability of receiving treatment based on an individual's covariates. We expect these distributions to overlap with each other. If they do not, that is indicative of positivity issues. \n", + "We are now ready to estimate the parameters for our marginal structural model using the calculated inverse probability of treatment weights. To do this, we call the `fit()` function. \n", "\n", - "There are two options in *zEpid*; we can look at density plot or a box plot. Let's look at both" + "For the confidence intervals of the marginal structural model, we need to use robust standard errors (sandwich estimator of variance). For some intuition as to why, remember that we are up-weighting some individuals to count for more than one person. However, we are creating exact replicas of them. The replicas are correlated with each other and we need to account for that replication. Confidence intervals can also be calculated using a non-parametric bootstrapping procedure. Confidence intervals from bootstrapping will likely be narrower than the GEE confidence intervals. I wont' demonstrate it, but you can easily adapt other code for bootstrapping and the code below." ] }, { @@ -178,82 +177,33 @@ "metadata": {}, "outputs": [ { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEICAYAAACwDehOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAF7JJREFUeJzt3X20XXV95/H3h/CQhueHzKg8BUdcEKMVjeiMjDUySwERXKOtxEdolK6OoI7WKYoiUDvajlUEaZUlMhRtBK1LKQ+yOnqxg4ASxCLIoJGSElCJChaMSIDv/HH23R4u9+Ekufuem5v3a6297tl7//be33tzcj7n/Pbev5OqQpIkgG2GXYAkafYwFCRJLUNBktQyFCRJLUNBktQyFCRJLUNBc1aSq5O8eYaO9cdJfprkwSR7TtM+VyZ55XTsayOOuSjJnQO2/XaSZ3RckmaYoaBpl+TOJL9uXiDvS3J5kn2HXddEmhfCSrLtJm6/HfBR4KVVtVNV/XyC/T/YTHcmOWWKfT4L+F3gK2OWv7jZ1//YlFqbfZyX5PYkjyU5foq2pyf57ASrPwKcual1aHYyFNSVV1TVTsCTgZ8C5wy5ni79e2A+cOsU7XZr/ibLgdOSHDG2QV8w/RHwuXri3aVvAn7R/NxU/wz8N+A7m7EPgEuBZUmevJn70SxiKKhTVfUQ8EVg8eiyJLsm+dsk65KsSfK+JNs06/4myRf72v5Fkq8lydh9Jzk+yTeTnJPkl0n+X5LDx6sjyTbNcdYkubc5/q7N6n9qft7fvJP/j+Nsv0OSs5Lc00xnNcueDtzet/3XB/ibXEcvQJY0+64kb03yQ+CHTbMjgW+MqWEB8GrgrcCBSZZOdawJjn9uVX0NeGhTtu/bz0PAjcBLN2c/ml0MBXWqeSF7DXB93+JzgF2BpwK/B7wROKFZ9y7gWc0L/n8GVgBvGucd86jnA3cAewEfAL6UZI9x2h3fTMua4+4EfKJZ96Lm525N989142x/KvAC4Nn0unUOBd5XVT8AntG3/UsmqBOA9Lyw2eamvlWvbH6XxUl2BA7gt2Ez6lXAg8AXgKvo/d36933/JNOk3VWb4TZ6fw/NEZvUhyoN4MtJHqH34nsv8DKAJPPohcQhVfUA8ECSvwLeAJxfVeuTvB74KvAAcHJVrZ3kOPcCZzWhcXGSdwEvBy4a0+51wEer6o6mjvcAtyQ5gcG8rqnl3mb7M4BPAe8fcHuAnwEF/AQ4pXm3PupDVfWLZt97N8seGLP9m4CLq+rRJH8HnJ3kXVW1AaCqdtuIWqbLA/S6CDVH+ElBXXll8yK1A3AS8I0kT6L3jn57YE1f2zXA6AshVfVteu/+A1wyxXHuHvMpYg3wlHHaPWWcY25L73zAIMbbfrzjTGavqtq9qg6uqrPHrLur7/H9zc+dRxc0J+qXAZ9rFn2F3nmMl29kDdNtZ35br+YAQ0GdqqpHq+pLwKPAYfTeLW8A9u9rth9w9+hMkrfSC5N7gKmustl7zPmG/ZrtxrpnnGM+Qu8k+CBDBY+3/XjH2VRtDVX1K+BHwNP71r+B3v/Xf0jyE3qhOZ++LqS+q5vGm947jbX2O5jeiWvNEXYfqVPNC/YxwO7AbU3XxyXAnyd5I7AH8E56lzfSnLj9IPBiYD3w7SRXVtV3JzjEvwPeluSv6fXLHwxcMU67lcCfJrkSWAf8T3pdMY8kWQc8Ru9cww8mOM5K4H1JbqD3An4aMNGlmtPhCnrnW77ZzL8ROAP4ZF+bQ4EvJNmzqn7eXNk0pSTb0wuYANslmQ88XFWPTbDJNk2bUVVVv0myA/BcNu9KKM02VeXkNK0TcCfwa3onRR8AbgFe17d+d3ovqOvodZucRu9Falvg2/T620fb/jHwPWCHcY5zPL0XzU8Av6T3gv7SvvVXA29uHm/THOeu5rifBXbva3tms/x+4AXjHGs+cDbw42Y6G5jfrFtELyi2neDvMdX6Ap42ZtkSelcohd4J7oeAheNseytw0kb++1zdHLN/enFfrXf2tT19nLZrm3W/D3xp2M83p+md0vzjSluc5sarN1fVYcOupQvNyeRLqurLM3jMRcDVVbVogLbfAlZU1S0dl6UZZPeRNEtV1WuHXcNkqur5w65B06+zE81JPtPcJDTuu4jmeu2zk6xOcnOS53RVi6SB3Q+cNewiNDyddR8leRG9PuW/raol46w/CjgZOIreTTsf952HJA1XZ58Uquqf6I3RMpFj6QVGVdX1wG6OoSJJwzXMcwp78/gbdtY2y348tmGSE4ETAXbcccfnHnTQQTNSoCTNFTfeeOPPqmrhVO2GGQpPGOCMCW4iqqrzgPMAli5dWqtWreqyLkmac5KsmbrVcO9oXgv0j7G/D9N7h6gkaSMNMxQuBd7YXIX0AuCXVfWEriNJ0szprPsoyUp6QxXslWQtvWGNtwOoqk/Su43/KGA1veEMBh2tUpLUkc5CoaqWT7G+6H1ZiCRplnCUVElSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSy1CQJLUMBUlSq9NQSHJEktuTrE5yyjjr90sykuSmJDcnOarLeiRJk+ssFJLMA84FjgQWA8uTLB7T7H3AJVV1CHAc8Ndd1SNJmlqXnxQOBVZX1R1V9TDweeDYMW0K2KV5vCtwT4f1SJKm0GUo7A3c1Te/tlnW73Tg9UnWAlcAJ4+3oyQnJlmVZNW6deu6qFWSRLehkHGW1Zj55cD/rqp9gKOAi5I8oaaqOq+qllbV0oULF3ZQqiQJug2FtcC+ffP78MTuoRXAJQBVdR0wH9irw5okSZPoMhRuAA5MckCS7emdSL50TJt/BQ4HSHIwvVCwf0iShqSzUKiqR4CTgKuA2+hdZXRrkjOTHNM0exfwliT/DKwEjq+qsV1MkqQZsm2XO6+qK+idQO5fdlrf4+8DL+yyBknS4LyjWZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSa1OQyHJEUluT7I6ySkTtPmDJN9PcmuSv+uyHknS5AYKhSR/n+TlSQYOkSTzgHOBI4HFwPIki8e0ORB4D/DCqnoG8I6BK5ckTbtBX+T/Bngt8MMkH05y0ADbHAqsrqo7quph4PPAsWPavAU4t6ruA6iqewesR5LUgYFCoar+T1W9DngOcCfwj0muTXJCku0m2Gxv4K6++bXNsn5PB56e5JtJrk9yxHg7SnJiklVJVq1bt26QkiVJm2BjuoP2BI4H3gzcBHycXkj840SbjLOsxsxvCxwIvBhYDnw6yW5P2KjqvKpaWlVLFy5cOGjJkqSNtO0gjZJ8CTgIuAh4RVX9uFl1cZJVE2y2Fti3b34f4J5x2lxfVRuAf0lyO72QuGHA+iVJ02jQTwqfrqrFVfWh0UBIsgNAVS2dYJsbgAOTHJBke+A44NIxbb4MLGv2txe97qQ7NvJ3kCRNk0FD4YPjLLtusg2q6hHgJOAq4Dbgkqq6NcmZSY5pml0F/DzJ94ER4N1V9fMBa5IkTbNJu4+SPIneyeHfSXIIvz1PsAuwYKqdV9UVwBVjlp3W97iAdzaTJGnIpjqn8DJ6J5f3AT7at/wB4L0d1SRJGpJJQ6GqLgQuTPKqqvr7GapJkjQkU3Ufvb6qPgssSvKELp6q+ug4m0mStlBTdR/t2PzcqetCJEnDN1X30aean2fMTDmSpGGaqvvo7MnWV9XbprccSdIwTdV9dOOMVCFJmhUGufpIkrSVmKr76KyqekeSf+CJg9lRVceMs5kkaQs1VffRRc3Pj3RdiCRp+KbqPrqx+fmNZlC7g+h9Yri9+eIcSdIcMujQ2S8HPgn8iN74Rwck+aOqurLL4iRJM2ugUAD+ClhWVasBkvwH4HLAUJCkOWTQobPvHQ2Exh2A36csSXPMVFcf/dfm4a1JrgAuoXdO4ffx29Ekac6ZqvvoFX2Pfwr8XvN4HbB7JxVJkoZmqquPTpipQiRJwzfo1UfzgRXAM4D5o8ur6g87qkuSNASDnmi+CHgSvW9i+wa9b2J7oKuiJEnDMWgoPK2q3g/8qhkP6eXAM7srS5I0DIOGwobm5/1JlgC7Aos6qUiSNDSD3rx2XpLdgfcDl9L7Jrb3d1aVJGkoBgqFqvp08/AbwFO7K0eSNEwDdR8l2TPJOUm+k+TGJGcl2bPr4iRJM2vQcwqfpzesxauAVwM/Ay7uqihJ0nAMek5hj6r6s775DyZ5ZRcFSZKGZ9BPCiNJjkuyTTP9Ab1RUiVJc8hUA+I9QG8AvADvBD7brNoGeBD4QKfVSZJm1FRjH+08U4VIkoZv0HMKJDkGeFEze3VVXdZNSZKkYRn0ktQPA28Hvt9Mb2+WSZLmkEE/KRwFPLuqHgNIciFwE3BKV4VJkmbeoFcfAezW93jX6S5EkjR8g35S+BBwU5IRelcivQh4T2dVSZKGYspQSBLgGuAFwPPohcKfVtVPOq5NkjTDpuw+qqoCvlxVP66qS6vqK4MGQpIjktyeZHWSCc8/JHl1kkqydCNqlyRNs0HPKVyf5Hkbs+Mk84BzgSOBxcDyJIvHabcz8DbgWxuzf0nS9Bs0FJbRC4YfJbk5yfeS3DzFNocCq6vqjqp6mN6geseO0+7PgL8EHhq4aklSJwY90XzkJux7b+Cuvvm1wPP7GyQ5BNi3qi5L8icT7SjJicCJAPvtt98mlCJJGsSknxSSzE/yDuDdwBHA3VW1ZnSaYt8ZZ1n17Xsb4GPAu6YqsqrOq6qlVbV04cKFUzWXtAVbuXIlS5YsYd68eSxZsoSVK1cOu6StylSfFC6k9/3M/5ffnht4+4D7Xgvs2ze/D3BP3/zOwBLg6t4FTjwJuDTJMVW1asBjSJpDVq5cyamnnsr555/PYYcdxjXXXMOKFSsAWL58+ZCr2zqkd3HRBCuT71XVM5vH2wLfrqrnDLTjXvsfAIcDdwM3AK+tqlsnaH818CdTBcLSpUtr1SozQ5qLlixZwjnnnMOyZcvaZSMjI5x88snccsstQ6xsy5fkxqqa8grPqU40bxh9UFWPbEwBTfuTgKuA24BLqurWJGc2g+tJ0uPcdtttHHbYYY9bdthhh3HbbbcNqaKtz1TdR7+b5N+axwF+p5kPvVsYdpls46q6ArhizLLTJmj74oEqljRnHXzwwVxzzTWP+6RwzTXXcPDBBw+xqq3LpJ8UqmpeVe3STDtX1bZ9jycNBEnaWKeeeiorVqxgZGSEDRs2MDIywooVKzj11FOHXdpWY+DvU5Ckri1fvpxrr72WI488kt/85jfssMMOvOUtb/Ek8wzamFFSJalTK1eu5PLLL+fKK6/k4Ycf5sorr+Tyyy/3stQZNOnVR7ORVx9Jc5dXH3Vn0KuPDAVJs8a8efN46KGH2G677dplGzZsYP78+Tz66KNDrGzLN12XpGoOSLJJkzTTRq8+6ufVRzPLUNgKVNWE02TrpZnm1UfDZ/fRVi6JAaCh2pRPpT5nN96g3UdekippqCZ6gfcNy3DYfSRJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoTCH7LHHHiTZqAnYqPZ77LHHkH9LSV3adtgFaPrcd999VFWnxxgNEklzk58UJEktQ0GS1DIUJEmtTkMhyRFJbk+yOskp46x/Z5LvJ7k5ydeS7N9lPZKkyXUWCknmAecCRwKLgeVJFo9pdhOwtKqeBXwR+Muu6pEkTa3LTwqHAqur6o6qehj4PHBsf4OqGqmq9c3s9cA+HdYjSZpCl6GwN3BX3/zaZtlEVgBXjrciyYlJViVZtW7dumksUZLUr8tQGO+C9nEvok/yemAp8L/GW19V51XV0qpaunDhwmksces2MjLCokWLGBkZGXYpkmaJLkNhLbBv3/w+wD1jGyX5L8CpwDFV9ZsO61GfkZERjj76aNasWcPRRx9tMEgCug2FG4ADkxyQZHvgOODS/gZJDgE+RS8Q7u2wFvUZDYT163unc9avX28wqHMbOwwLbNwQLA7DMj06G+aiqh5JchJwFTAP+ExV3ZrkTGBVVV1Kr7toJ+ALzZPgX6vqmK5qmuvqA7vA6btO2mbkXx7h6JXrWb/h8cvXr1/P0S97CZctX8CyAyZ+WtQHdpmOUrUVchiWLUO6/keabkuXLq1Vq1YNu4xZKcmU/+kWLVrEmjVrJly///77c+edd27WMaTxzMRzx+fnxJLcWFVLp2rnHc1bmQsuuIAFCxaMu27BggVccMEFM1yRpNnEUNjKLFu2jMsuu+wJwbBgwQIuu+wyli1bNqTKJM0GhsJWaGwwGAiSRhkKW6nRYNh///0NBEktQ2ErtmzZMu68804DQbOON1YOj6EgaVbxxsrhMhQkzRreWDl8hoKkWWFsIIwyGGaWoSBpVjjhhBOeEAij1q9fzwknnDDDFW2dDAVJs4I3Vs4OhoKkWcEbK2cHQ0HSrOGNlcNnKEiaVbyxcrg6Gzpbw9H10MG77757p/uX4Lc3VmrmGQpzyKYMGexQw5opg3zfx7QcQ5vFUJA0I3LGv83M9ymc3ukh5jzPKUiSWoaCJKllKEiSWoaCJKnliWZJM8ZLpmc/Q0HSjNjYK4+8XHo47D6SJLUMBUlSy1CQJLU8p7AVmOrk3kTr7c/VTJjs+elzc+YZClsB/wNpNvP5ObvYfSRJahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJahkKkqRWp6GQ5IgktydZneSUcdbvkOTiZv23kizqsh5J0uQ6C4Uk84BzgSOBxcDyJIvHNFsB3FdVTwM+BvxFV/VIkqbW5SeFQ4HVVXVHVT0MfB44dkybY4ELm8dfBA5P19/CIUmaUJdjH+0N3NU3vxZ4/kRtquqRJL8E9gR+1t8oyYnAic3sg0lu76TirdNejPl7S7OEz83ptf8gjboMhfHe8Y8d+WqQNlTVecB501GUHi/JqqpaOuw6pLF8bg5Hl91Ha4F9++b3Ae6ZqE2SbYFdgV90WJMkaRJdhsINwIFJDkiyPXAccOmYNpcCb2oevxr4ejmOriQNTWfdR805gpOAq4B5wGeq6tYkZwKrqupS4HzgoiSr6X1COK6rejQhu+U0W/ncHIL4xlySNMo7miVJLUNBktQyFGa5JHsm+W4z/STJ3X3z22/mvv8wyZOmocZtklyV5P4kX97c/WnLsSU8P5t9rUjyw2Z6/XTsc67ynMIWJMnpwINV9ZExy0Pv3/KxjdzfNcBJVfXdzawrwEuAnYHjq+qVm7M/bZlm8fNzL+BbwHPpXfSyCnh2Vf1yc/Y7V/lJYQuV5GlJbknySeA7wJOTHJnkuiTfaQYa3LFpe0aSG0bbp+c1wLOBizf3XV31fA14cFp+OW3xZtPzk974a1+tqvur6ufA14GXbu7vOFcZClu2xcD5VXUIsAE4BTi8qp4D3Ay8vWn38ap6HvBMejcIHlFVFwPfBV5TVc9uxqdqJTmlrxugf/rYTP1y2uLNlufneEPu7D2dv+hc0uUwF+rej6rqhubxf6L3n/DaZkzB7YFrmnWHJ3k3MJ/eeDI3AldOtuOq+jDw4S6K1lZjtjw/wxOHz7HffAKGwpbtV32PQ+8j8hv6GyRZAHwCeE5V3Z3kg/T+802q+f6L8W4mHKmq/74ZNWvrMVuen2uBF/TN7wPcMkD9WyVDYe64Fvh4kqdW1R1Nf+1T6N0p/hjwsyQ7A68CPtds8wC9k8NP4CcFTbNhPj+/CpyRZDd6J5oPB965yb/JHGcozBFV9dMkK+idmBs9Kffeqro8yYX03hmtoXcVxqgLgE8n+TVw6Nh+242R5DrgacBOSdYCb2pOPktDfX5W1bokH6J31RHAaV55NDEvSZUktbz6SJLUMhQkSS1DQZLUMhQkSS1DQZLUMhQkSS1DQZLU+v8/o0vz6owifgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] } ], "source": [ - "# Density plot\n", - "iptw.plot_kde()\n", - "plt.title('Density plot of Pr(A=1|L)')\n", - "plt.show()\n", - "\n", - "# Box plot\n", - "iptw.plot_boxplot()\n", - "plt.title('Box plot of Pr(A=1|L)')\n", - "plt.ylim([0, 1])\n", - "plt.show()" + "iptw.fit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Based on these plots, it doesn't look like we have any gross positivity violations. This would suggest our weights aren't doing anything weird and that everyone in the sample has some counterpart who was treated/treated. \n", + "We see a warning regarding missing data. We can additionally count for missing data using inverse probability of censoring weights. We will return to this concept later.\n", "\n", - "Next, we can look to see how well our covariates are balanced. We can do this by using a Love plot. A Love plot displays the absolute values of the standardized mean differences for all covariates. It will present the standardized mean differences for the unweighted and weighted data. Let's look at our example" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Sy65BICDDz6YRx99lLfffps+ffqs/dB+7LHHGD9+PNOmTePFF1/kySefZN68eTz11FPMmDGjTbl33303zc3NLFiwgJtuuonZs2e32T5o0CCefvppzjjjDCZPnkxtbS2nn3465513HvPmzWP8+PGce+65nHfeecyZM4epU6fyT//0TwBccsklHHTQQTzzzDMcc8wxLCnRKdJirvN4GLhH0tURsULSdsBMkvs4/zc591mOiLXLkk4B6iLiW8U0RFI/oDoi7pf0OPBS8S+jY/X1/l+1CvIbcOOVaOyovV8dtaZ/8YtfBGD06NE0NzcDMH78eK677jqGDx/OZz/7WX7729/S0tJCc3Mzu+22GzfeeCPTpk1j1KhRAKxevZoXX3yRgw8+eG35jz32GF/60peoqqriox/9KJ/85Cfb1J9b7913312wjQ899BCLFi1au/7222+zatUqZsyYsXafz372s2y77bZZD0tROg0eEbFQ0iTgEUkfAs+QjHvcLulc1p122lj9gV9J6kvS2zkPQNIY4B5gW+BoSZdExF5dVKeZbQpqapJTVYXSN8LAgQN544032qStXLly7cVzW265JQCbbbYZH3zwAQBjxoxh7ty57LzzzvzDP/wDy5cv58Ybb2T06NFAchHet7/9bU477bR26+3sVFKhevOtWbOG2bNns9VWW623rRw/gS7q11YRcUtEjIiIj0fEKRHxckSMjYgxEXFFRPQrsM+UiDi7k3L75Sy/GhH7RcQ+EbF3RNySps+JiCERsXVEDHTgMOuFSjR21K9fP3bYYQcefvhhIAkcDzzwAAcddFC7+2yxxRYMHTqUO+64gwMOOIDx48czefJkxo8fD8ARRxzBzTffzOrVyeVvr7zyCq+//nqbMg466CCmTp3KmjVreO2115g+fXqnbe3fvz+rVq1au3744Ydz/fXrLqWbN28ekJxWa0rHgn7zm9+sFxy7Sq+4wtzMNnElHDu69dZb+d73vsfIkSM59NBDufjii/nYxz7W4T7jx49n++23p7q6mvHjx7N06dK1wePwww/nK1/5CmPHjmXvvffmuOOOa/OhD3DssccyZMgQRowYwWmnncb+++/PgAEDOqzz6KOP5p577lk7YH7dddcxd+5c9tlnH/bcc09uuOEGAC6++GJmzJjBvvvuy7Rp06gp0S/7ynIP8/Q6ji3zkk+KiAWl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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "iptw.plot_love()\n", - "plt.title('Love plot')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Based on the above Love plot, we have pretty good balance of our confounders in the weighted population. As a general rule of thumb, all covariates should be below a standardized mean difference of 0.10. So, this suggests we are accounting for the measured confounders adequately. If there was still imbalance, we might consider adding interaction terms or different splines for continuous covariates.\n", + "### Diagnostics\n", + "Before going further, let's go through some diagnostics for our weights. All diagnostics can be ran after calling the `fit()` function. Current diagnostics include; distributions of predicted probabilities, Love plots (for confounder balance), and weight distributions\n", "\n", - "Lastly, we will assess the behavior of the weights. We can do this with `positivity()`. Let's take a look" + "All diagnostics can be run by using `run_diagnostics()` or called individually. " ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -261,43 +211,87 @@ "output_type": "stream", "text": [ "======================================================================\n", - " Inverse Probability of Treatment Weight Diagnostics\n", + " Weight Positivity Diagnostics\n", "======================================================================\n", "If the mean of the weights is far from either the min or max, this may\n", " indicate the model is incorrect or positivity is violated\n", "Average weight should be\n", "\t1.0 for stabilized\n", "\t2.0 for unstabilized\n", - "Standard deviation can help in IPTW model selection\n", "----------------------------------------------------------------------\n", "Mean weight: 1.986\n", "Standard Deviation: 2.366\n", "Minimum weight: 1.06\n", "Maximum weight: 16.919\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "male -0.088567 -0.015684\n", + "age0 0.053929 0.022311\n", + "age_rs1 0.072832 0.062384\n", + "age_rs2 0.071245 0.057444\n", + "cd40 -0.022283 -0.486700\n", + "cd4_rs1 -0.016827 -0.487005\n", + "cd4_rs2 -0.008080 -0.297140\n", + "dvl0 0.047828 -0.015729\n", "======================================================================\n" ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "iptw.positivity()" + "iptw.run_diagnostics()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Box plot of predicted probabilities\n", + "iptw.plot_boxplot()\n", + "plt.title('Box plot of Pr(A=1|L)')\n", + "plt.ylim([0, 1])\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "From this, we get some summary statistics for our weights. As the above documentation suggests, the average weight fr unstabilized weights should be 2. Our mean weight is 1.986, which is fairly close. Additionally, the maximum and minimum weights are not too crazy (if maximum weight was 100+, there might be some concerns regarding positivity). \n", - "\n", - "I am happy with our weight specification. So, let's estimate our marginal structural model.\n", - "\n", - "### Marginal Structural Model\n", - "*zEpid* does not naturally specify the marginal structural model. The reason being I am unable to allow for sufficient flexibility of this model (when doing assessment of effect measure modification). To estimate the parameters of the marginal structural model, we will use *statsmodels* GEE. There are two reasons for using GEE; *statsmodels* GLM does not allow weights, and confidence intervals. \n", + "Based on these plots, it doesn't look like we have any gross positivity violations. This would suggest our weights aren't doing anything weird and that everyone in the sample has some counterpart who was treated/treated. \n", "\n", - "For the confidence intervals of the marginal structural model, we need to use robust standard errors (sandwich estimator of variance). For some intuition as to why, remember that we are up-weighting some individuals to count for more than one person. However, we are creating exact replicas of them. The replicas are correlated with each other and we need to account for that replication.\n", + "Next, we can look to see how well our covariates are balanced. We can do this by using a Love plot. A Love plot displays the absolute values of the standardized mean differences for all covariates. It will present the standardized mean differences for the unweighted and weighted data. Based on the above Love plot, we have pretty good balance of our confounders in the weighted population. As a general rule of thumb, all covariates should be below a standardized mean difference of 0.10. So, this suggests we are accounting for the measured confounders adequately. If there was still imbalance, we might consider adding interaction terms or different splines for continuous covariates.\n", "\n", - "The confidence intervals can also be calculated using a non-parametric bootstrapping procedure. Confidence intervals from bootstrapping will likely be narrower than the GEE confidence intervals. I wont' demonstrate it, but you can easily adapt other code for bootstrapping and the code below.\n", + "Lastly, we will assess the behavior of the weights. From this, we get some summary statistics for our weights. As the above documentation suggests, the average weight for unstabilized weights should be 2. Our mean weight is 1.986, which is fairly close. Additionally, the maximum and minimum weights are not too crazy (if maximum weight was 100+, there might be some concerns regarding positivity). To correct for these issues, we could return to the `treatment_model()` and specify the optional argument `bound`, which allows truncating weights based on predicted probabilities.\n", "\n", - "Alright, let's estimate the marginal structural model" + "### Estimates\n", + "To view the estimates, we can use the `summary()` function" ] }, { @@ -309,43 +303,49 @@ "name": "stdout", "output_type": "stream", "text": [ - "RD = -0.082\n", - "95% CL: -0.156 -0.007\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.019 0.145 0.218\n", + "art -0.082 0.038 -0.156 -0.007\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.103 0.148 0.222\n", + "art 0.551 0.347 0.279 1.088\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.222 0.126 0.173 0.284\n", + "art 0.501 0.389 0.234 1.075\n", + "======================================================================\n" ] } ], "source": [ - "import statsmodels.api as sm\n", - "import statsmodels.formula.api as smf\n", - "from statsmodels.genmod.families import family,links\n", - "\n", - "ind = sm.cov_struct.Independence()\n", - "f = sm.families.family.Binomial(sm.families.links.identity)\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['uw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "*statsmodels* will generate a warning about the specific link-family specification, but this is alright. This combination will estimate the risk difference. From these results we would conclude that the 45-week risk of death when everyone was treated with ART was 8.2% points lower (95% CL: -0.15.6, -0.7) than if no one had been treatd with ART.\n", + "From these results we would conclude that the 45-week risk of death when everyone was treated with ART was 8.2% points lower (95% CL: -0.15.6, -0.7) than if no one had been treatd with ART.\n", "\n", "These results are fairly close to the `TimeFixedGFormula` results. The results are not the same because we have model misspecification for (at least one of) our parametric regression models. If you are worried about model misspecification (you should be), I would recommend fitting both. If the results are fairly similar, you can rest easy. If they are different (and even if they are not), then I would recommend using a doubly robust estimator (like `AIPTW`).\n", "\n", "## Stabilized Weights\n", - "Below is code to generate the stabilized weights. The process is largely the same. I will also run `positivity()` to show the difference in the weight distribution" + "Below is code to generate the stabilized weights. The `IPTW` class defaults to stabilized weights. The process is largely the same. I will also run `positivity()` to show the difference in the weight distribution" ] }, { @@ -353,19 +353,26 @@ "execution_count": 9, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ "======================================================================\n", - " Inverse Probability of Treatment Weight Diagnostics\n", + " Weight Positivity Diagnostics\n", "======================================================================\n", "If the mean of the weights is far from either the min or max, this may\n", " indicate the model is incorrect or positivity is violated\n", "Average weight should be\n", "\t1.0 for stabilized\n", "\t2.0 for unstabilized\n", - "Standard deviation can help in IPTW model selection\n", "----------------------------------------------------------------------\n", "Mean weight: 0.998\n", "Standard Deviation: 0.203\n", @@ -377,8 +384,10 @@ ], "source": [ "# Calculating stabilized weights\n", - "iptw = IPTW(df, treatment='art', stabilized=True)\n", - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.marginal_structural_model('art')\n", "iptw.fit()\n", "\n", "# Positivity diagnostic\n", @@ -390,41 +399,51 @@ "execution_count": 10, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "RD = -0.082\n", - "95% CL: -0.156 -0.007\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.019 0.145 0.218\n", + "art -0.082 0.038 -0.156 -0.007\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.103 0.148 0.222\n", + "art 0.551 0.347 0.279 1.088\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.222 0.126 0.173 0.284\n", + "art 0.501 0.389 0.234 1.075\n", + "======================================================================\n" ] } ], "source": [ - "df['sw'] = iptw.Weight\n", - "\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['sw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "which gives us the same estimate of the risk difference, but has a different distribution for the weights. You can also estimate the risk ratio by specifying `f = sm.families.family.Binomial(sm.families.links.log)`. \n", + "The stabilized weights give the same answer, as expected. As long as the marginal structural model is saturated, stabilized and unstabilized weights should provide the same answer.\n", "\n", "## Continuous Outcomes\n", - "Estimating the average treatment effect for continuous outcomes is easy. We don't need to do anything with `IPTW`. Rather, we change the marginal structural model. To motivate this example, we will assess the causal effect of ART on CD4 T-cell count at 45 weeks (we will ignore the implications of competing risk for now)\n", + "Estimating the average treatment effect for continuous outcomes is easy. Since we are modeling the treatment, a continuous outcome doesn't not change how we would calculate weights. Additionally, `IPTW` auto-detects continuous data. Either a Normal or Poisson model can be used for continuous outcomes for the marginal structural model. To motivate this example, we will assess the causal effect of ART on CD4 T-cell count at 45 weeks (we will ignore the implications of competing risk for now)\n", "\n", "Let's go through the example with stabilized weights" ] @@ -438,139 +457,222 @@ "name": "stdout", "output_type": "stream", "text": [ - "ATE = 209.9\n", - "95% CL: 101.2 318.6\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1072.318 22.687 1027.852 1116.784\n", + "art 209.904 55.469 101.187 318.620\n", + "======================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" ] } ], "source": [ - "f = sm.families.family.Gaussian()\n", - "ate = smf.gee('cd4_wk45 ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['sw']).fit()\n", - "\n", - "print('ATE = ', np.round(ate.params[1], 1))\n", - "print('95% CL:', np.round(ate.conf_int().iloc[1][0], 1), \n", - " np.round(ate.conf_int().iloc[1][1], 1))" + "iptw = IPTW(df.drop(columns='dead'), treatment='art', outcome='cd4_wk45')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.marginal_structural_model('art')\n", + "iptw.fit()\n", + "iptw.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Therefore, under the counterfactual where everyone had been treated with ART, the mean CD4 T-cell count of study participants would be 209.9 (95% CL: 101.2, 318.8) higher compared to the counterfactual where no one was treated. However, we have been making a strong assumption throughout (that is easy to miss). Do you know what it is?\n", + "Therefore, under the counterfactual where everyone had been treated with ART, the mean CD4 T-cell count of study participants would be 209.9 (95% CL: 101.2, 318.8) higher compared to the counterfactual where no one was treated. However, we have been making a strong assumption throughout (that is easy to miss, but less so because of the `IPTW` warning). Do you know what it is?\n", "\n", "## Missing Data\n", - "Both `dead` (n=517) and `cd4_wk45` (n=460) have missing data. While these may be referred to as censoring (and inverse probability of censoring weights to relax some assumptions), we will use `IPMW` to calculate these. For more details on how these weights are calculated, see the missing data guide\n", + "Both `dead` (n=517) and `cd4_wk45` (n=460) have missing data. These may be referred to as censoring (censoring is a special case of missing data, where data is missing on the outcome). Missing data is now easy to account for using `IPTW` with the `missing_model()` function. This function allows specification of a model to account for missing outcome data. In the `fit()` function, both the treatment weights and censoring weights are multiplied to obtain the full inverse probability weights. These full weights are then used to fit the marginal structural model.\n", "\n", - "We will generate separate missing weights for `dead` and `cd4_wk45`. Additionally, we will assume outcome data is missing completely at random conditional on our confounders and ART." + "We will assume outcome data is missing completely at random conditional on our confounders and ART. We will demonstrate for both `dead` and `cd4_wk45`." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: Logistic \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.019 0.145 0.219\n", + "art -0.081 0.039 -0.156 -0.005\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.182 0.103 0.149 0.223\n", + "art 0.556 0.347 0.282 1.098\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.223 0.126 0.174 0.286\n", + "art 0.506 0.389 0.236 1.086\n", + "======================================================================\n" + ] + } + ], "source": [ - "from zepid.causal.ipw import IPMW\n", - "\n", - "# Estimating IPMW for `dead`\n", - "ipmw = IPMW(df, missing_variable='dead', stabilized=True)\n", - "ipmw.regression_models(model_denominator='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", - " model_numerator='art', print_results=False)\n", - "ipmw.fit()\n", - "\n", - "df['mw_dead'] = ipmw.Weight" + "# Estimating ATE for `dead` with IPTW and IPCW\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.marginal_structural_model('art')\n", + "iptw.fit()\n", + "iptw.summary()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [ - "# Estimating IPMW for `dead`\n", - "ipmw = IPMW(df, missing_variable='cd4_wk45', stabilized=True)\n", - "ipmw.regression_models(model_denominator='art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", - " model_numerator='art', print_results=False)\n", - "ipmw.fit()\n", - "\n", - "df['mw_cd4'] = ipmw.Weight" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To get the final weights, we multiply the estimate IPMW by the IPTW. We then fit our marginal structural model with these new weights. Let's fit our models again" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "RD = -0.081\n", - "95% CL: -0.156 -0.005\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", + "g-Model: Logistic Missing Model: Logistic \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1071.118 23.067 1025.908 1116.328\n", + "art 205.112 55.219 96.885 313.339\n", + "======================================================================\n" ] } ], "source": [ - "# Estimating Effect of ART on CD T-cell count at week 45 with IPTW and IPMW\n", - "df['msw_dead'] = df['sw'] * df['mw_dead']\n", + "# Estimating ATE for `cd4_wk45` with IPTW and IPCW\n", + "iptw = IPTW(df.drop(columns='dead'), treatment='art', outcome='cd4_wk45')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "iptw.marginal_structural_model('art')\n", + "iptw.fit()\n", + "iptw.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our results are fairly similar when adding IPCW. This approach has the advantage of making less restrictive assumptions than the previous model.\n", "\n", - "f = sm.families.family.Binomial(sm.families.links.identity)\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['msw_dead']).fit()\n", + "## Effect Measure Modification\n", + "Finally, we can assess effect measure modification by specifying alternative marginal structural models. In our example, we will focus on modification by gender. The major difference from previous code is that we expand our marginal structural model. Our marginal structural model is now \n", + "$$E[Y^a|V] = \\beta_0 + \\beta_1 a + \\beta_2 V a + \\beta_3 V$$\n", + "where $V$ is our modifier (male)\n", "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "We can conclude that there is effect modification if $\\beta_2$ in not null. Note that this is no longer a *marginal* structural model, since we are actually conditioning on $V$ in the model. However, we still use the term MSM. For creating the weights, the set $L$ must contain $V$. We will construct the stabilized weights with the following formula. Note that I will write $V$ separate from $L$ to emphasize it is part of both the numerator and denominator\n", + "$$\\hat{w}_i = \\frac{\\widehat{\\Pr}(A_i=a|V_i)}{\\widehat{\\Pr}(A=a|V_i, L_i)}$$\n", + "For estimation of these new weights in *zEpid*, we will add another optional argument. This argument is part of the regression model statement. We will specify `model_numerator='male'`, which tells *zEpid* that we want the conditional probability in the numerator." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ATE = 205.1\n", - "95% CL: 96.9 313.3\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: Logistic \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.208 0.046 0.118 0.299\n", + "art -0.113 0.101 -0.311 0.085\n", + "male -0.032 0.051 -0.131 0.067\n", + "art:male 0.040 0.109 -0.173 0.253\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.208 0.222 0.135 0.322\n", + "art 0.457 0.968 0.069 3.046\n", + "male 0.847 0.251 0.518 1.385\n", + "art:male 1.281 1.031 0.170 9.651\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.263 0.281 0.152 0.456\n", + "art 0.400 1.078 0.048 3.310\n", + "male 0.814 0.314 0.440 1.508\n", + "art:male 1.344 1.150 0.141 12.795\n", + "======================================================================\n" ] } ], "source": [ - "# Estimating Effect of ART on CD T-cell count at week 45 with IPTW and IPMW\n", - "df['msw_cd4'] = df['sw'] * df['mw_cd4']\n", - "\n", - "f = sm.families.family.Gaussian()\n", - "ate = smf.gee('cd4_wk45 ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['msw_cd4']).fit()\n", - "\n", - "print('ATE = ', np.round(ate.params[1], 1))\n", - "print('95% CL:', np.round(ate.conf_int().iloc[1][0], 1), \n", - " np.round(ate.conf_int().iloc[1][1], 1))" + "# Estimating ATE for `dead` with IPTW and IPCW\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " model_numerator='male',\n", + " print_results=False)\n", + "iptw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " model_numerator='art + male + art:male',\n", + " print_results=False)\n", + "iptw.marginal_structural_model('art + male + art:male')\n", + "iptw.fit()\n", + "iptw.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Our results are fairly similar when adding IPMW. This approach has the advantage of making less restrictive assumptions than the previous model. \n", + " Based on these results, we don't have strong evidence for effect measure modfication on either the additive or the multiplicative scale. The reason we likely don't see modification on either scale is due to small cells. \n", "\n", "# Conclusions\n", - "In this tutorial, I have went through the basics of inverse probability of treatment weights and using them to estimate marginal structural models. I demonstrated how to estimate a marginal structural model using *zEpid* to estimate the risk difference and average treatment effect. Lastly, I demonstrated how to make less restrictive assumptions regarding missing data with inverse probability of missing weights. In the next tutorial, we will go through a version of IPTW to estimate the average treatment effect in the (un)treated.\n", + "In this tutorial, I have went through the basics of inverse probability of treatment weights and using them to estimate marginal structural models. I demonstrated how to estimate a marginal structural model using *zEpid* to estimate causal effects of treatment. Next, I demonstrated how to make less restrictive assumptions regarding missing data with inverse probability of censoring weights. Lastly, I demonstrated how to assess effect measure modification using IPTW. In the next tutorial, we will go through a version of IPTW to estimate the average treatment effect in the (un)treated.\n", "\n", "## References\n", "Robins JM, Hernan MA, Brumback B. (2000). Marginal structural models and causal inference in epidemiology.\n", diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/4_IPTW_SMR.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/4_IPTW_SMR.ipynb index ed68668..28be9e4 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/4_IPTW_SMR.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/4_IPTW_SMR.ipynb @@ -83,7 +83,7 @@ "source": [ "from zepid.causal.ipw import IPTW\n", "\n", - "iptw = IPTW(df, treatment='art', stabilized=False, standardize='exposed')" + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead', standardize='exposed')" ] }, { @@ -97,47 +97,54 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], - "source": [ - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", - "iptw.fit()\n", - "df['uw'] = iptw.Weight" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "RD = -0.091\n", - "95% CL: -0.18 -0.002\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.221 0.025 0.172 0.269\n", + "art -0.091 0.046 -0.180 -0.002\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.221 0.112 0.177 0.275\n", + "art 0.588 0.315 0.317 1.092\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.283 0.143 0.214 0.375\n", + "art 0.527 0.368 0.256 1.084\n", + "======================================================================\n" ] } ], "source": [ - "import statsmodels.api as sm\n", - "import statsmodels.formula.api as smf\n", - "from statsmodels.genmod.families import family,links\n", - "\n", - "ind = sm.cov_struct.Independence()\n", - "f = sm.families.family.Binomial(sm.families.links.identity)\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['uw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " stabilized=False, print_results=False)\n", + "iptw.marginal_structural_model('art')\n", + "iptw.fit()\n", + "iptw.summary()" ] }, { @@ -150,37 +157,57 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "RD = -0.091\n", - "95% CL: -0.18 -0.002\n" + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" ] }, { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.221 0.025 0.172 0.269\n", + "art -0.091 0.046 -0.180 -0.002\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.221 0.112 0.177 0.275\n", + "art 0.588 0.315 0.317 1.092\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.283 0.143 0.214 0.375\n", + "art 0.527 0.368 0.256 1.084\n", + "======================================================================\n" ] } ], "source": [ - "iptw = IPTW(df, treatment='art', stabilized=True, standardize='exposed')\n", - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead', standardize='exposed')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "iptw.marginal_structural_model('art')\n", "iptw.fit()\n", - "df['sw'] = iptw.Weight\n", - "\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['sw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.summary()" ] }, { @@ -190,42 +217,64 @@ "The results, as expected, are the same between the unstabilized and stabilized weights. We can also use the same process to estimate the effect of ART on continuous treatments detailed in the IPTW tutorial. I leave that as a challenge for you\n", "\n", "## Average Treatment Effect in the Untreated\n", - "We can also standardize to the untreated. Instead of setting `standardize` to exposed, we instead set `standardize='unexposed'`. Let's look at an example with unstabilized weights" + "We can also standardize to the untreated. Below is our estimand\n", + "$$E[Y^{a=1}|A=0] - E[Y|A=0]$$\n", + "Instead of setting `standardize` to exposed, we instead set `standardize='unexposed'`. Let's look at an example with unstabilized weights" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "RD = -0.08\n", - "95% CL: -0.154 -0.007\n" + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" ] }, { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.175 0.018 0.139 0.211\n", + "art -0.080 0.038 -0.154 -0.007\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.175 0.104 0.143 0.214\n", + "art 0.543 0.361 0.267 1.101\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.212 0.125 0.166 0.271\n", + "art 0.495 0.402 0.225 1.088\n", + "======================================================================\n" ] } ], "source": [ - "iptw = IPTW(df, treatment='art', stabilized=False, standardize='unexposed')\n", - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead', standardize='unexposed')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " stabilized=False, print_results=False)\n", + "iptw.marginal_structural_model('art')\n", "iptw.fit()\n", - "df['sw'] = iptw.Weight\n", - "\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['sw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.summary()" ] }, { @@ -237,37 +286,57 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "RD = -0.08\n", - "95% CL: -0.154 -0.007\n" + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" ] }, { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "c:\\users\\zivic\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_estimating_equations.py:472: DomainWarning: The identity link function does not respect the domain of the Binomial family.\n", - " DomainWarning)\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.175 0.018 0.139 0.211\n", + "art -0.080 0.038 -0.154 -0.007\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.175 0.104 0.143 0.214\n", + "art 0.543 0.361 0.267 1.101\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.212 0.125 0.166 0.271\n", + "art 0.495 0.402 0.225 1.088\n", + "======================================================================\n" ] } ], "source": [ - "iptw = IPTW(df, treatment='art', stabilized=True, standardize='unexposed')\n", - "iptw.regression_models('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "iptw = IPTW(df.drop(columns='cd4_wk45'), treatment='art', outcome='dead', standardize='unexposed')\n", + "iptw.treatment_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " stabilized=False, print_results=False)\n", + "iptw.marginal_structural_model('art')\n", "iptw.fit()\n", - "df['sw'] = iptw.Weight\n", - "\n", - "linrisk = smf.gee('dead ~ art', df['id'], df, cov_struct=ind, family=f, weights=df['sw']).fit()\n", - "\n", - "print('RD = ', np.round(linrisk.params[1], 3))\n", - "print('95% CL:', np.round(linrisk.conf_int().iloc[1][0], 3), \n", - " np.round(linrisk.conf_int().iloc[1][1], 3))" + "iptw.summary()" ] }, { diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/5_AIPTW_intro.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/5_AIPTW_intro.ipynb index 77665b9..092ebe7 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/5_AIPTW_intro.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/5_AIPTW_intro.ipynb @@ -18,9 +18,7 @@ "where $\\widehat{\\Pr}(A=a|L)$ comes from the IPTW model and $\\hat{E}[Y|A=a,L]$ comes from the g-formula\n", "\n", "## An example\n", - "To motivate our example, we will use a simulated data set included with *zEpid*. In the data set, we have a cohort of HIV-positive individuals. We are interested in the sample average treatment effect of antiretroviral therapy (ART) on all-cause mortality at 45-weeks. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, CD4 T-cell count, and detectable viral load. \n", - "\n", - "In this tutorial, we will focus on a complete case analysis. Therefore, we will drop the `cd4_wk45` column and all the missing data in `dead`. This will leave 517 observations with no missing data" + "To motivate our example, we will use a simulated data set included with *zEpid*. In the data set, we have a cohort of HIV-positive individuals. We are interested in the sample average treatment effect of antiretroviral therapy (ART) on all-cause mortality at 45-weeks. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, CD4 T-cell count, and detectable viral load. " ] }, { @@ -33,26 +31,27 @@ "output_type": "stream", "text": [ "\n", - "Int64Index: 517 entries, 0 to 546\n", + "Int64Index: 547 entries, 0 to 546\n", "Data columns (total 12 columns):\n", - "id 517 non-null int64\n", - "male 517 non-null int64\n", - "age0 517 non-null int64\n", - "cd40 517 non-null int64\n", - "dvl0 517 non-null int64\n", - "art 517 non-null int64\n", + "id 547 non-null int64\n", + "male 547 non-null int64\n", + "age0 547 non-null int64\n", + "cd40 547 non-null int64\n", + "dvl0 547 non-null int64\n", + "art 547 non-null int64\n", "dead 517 non-null float64\n", - "t 517 non-null float64\n", - "age_rs1 517 non-null float64\n", - "age_rs2 517 non-null float64\n", - "cd4_rs1 517 non-null float64\n", - "cd4_rs2 517 non-null float64\n", + "t 547 non-null float64\n", + "age_rs1 547 non-null float64\n", + "age_rs2 547 non-null float64\n", + "cd4_rs1 547 non-null float64\n", + "cd4_rs2 547 non-null float64\n", "dtypes: float64(6), int64(6)\n", - "memory usage: 52.5 KB\n" + "memory usage: 55.6 KB\n" ] } ], "source": [ + "import warnings\n", "import numpy as np\n", "import pandas as pd\n", "\n", @@ -63,8 +62,8 @@ "df[['age_rs1', 'age_rs2']] = spline(df, 'age0', n_knots=3, term=2, restricted=True)\n", "df[['cd4_rs1', 'cd4_rs2']] = spline(df, 'cd40', n_knots=3, term=2, restricted=True)\n", "\n", - "dfcc = df.drop(columns=['cd4_wk45']).dropna()\n", - "dfcc.info()" + "df = df.drop(columns=['cd4_wk45'])\n", + "df.info()" ] }, { @@ -80,7 +79,7 @@ "metadata": {}, "outputs": [], "source": [ - "aipw = AIPTW(dfcc, exposure='art', outcome='dead')" + "aipw = AIPTW(df, exposure='art', outcome='dead')" ] }, { @@ -106,26 +105,26 @@ "-----------------------------------------------------------------\n", " Generalized Linear Model Regression Results \n", "==============================================================================\n", - "Dep. Variable: art No. Observations: 517\n", - "Model: GLM Df Residuals: 508\n", + "Dep. Variable: art No. Observations: 547\n", + "Model: GLM Df Residuals: 538\n", "Model Family: Binomial Df Model: 8\n", "Link Function: logit Scale: 1.0000\n", - "Method: IRLS Log-Likelihood: -206.06\n", - "Date: Wed, 24 Apr 2019 Deviance: 412.12\n", - "Time: 13:22:44 Pearson chi2: 510.\n", + "Method: IRLS Log-Likelihood: -214.63\n", + "Date: Wed, 17 Jul 2019 Deviance: 429.26\n", + "Time: 12:32:16 Pearson chi2: 539.\n", "No. Iterations: 5 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", - "Intercept 1.4498 1.679 0.864 0.388 -1.841 4.741\n", - "male -0.1159 0.321 -0.361 0.718 -0.745 0.513\n", - "age0 -0.1026 0.059 -1.726 0.084 -0.219 0.014\n", - "age_rs1 0.0048 0.003 1.706 0.088 -0.001 0.010\n", - "age_rs2 -0.0077 0.006 -1.373 0.170 -0.019 0.003\n", - "cd40 0.0041 0.004 0.964 0.335 -0.004 0.012\n", - "cd4_rs1 -2.422e-05 1.2e-05 -2.014 0.044 -4.78e-05 -6.49e-07\n", - "cd4_rs2 8.875e-05 4.55e-05 1.952 0.051 -3.81e-07 0.000\n", - "dvl0 -0.0158 0.399 -0.040 0.968 -0.797 0.765\n", + "Intercept 1.2095 1.656 0.730 0.465 -2.037 4.456\n", + "male -0.0916 0.318 -0.288 0.773 -0.715 0.532\n", + "age0 -0.0945 0.059 -1.612 0.107 -0.209 0.020\n", + "age_rs1 0.0044 0.003 1.599 0.110 -0.001 0.010\n", + "age_rs2 -0.0069 0.006 -1.259 0.208 -0.018 0.004\n", + "cd40 0.0037 0.004 0.932 0.351 -0.004 0.012\n", + "cd4_rs1 -2.271e-05 1.15e-05 -1.967 0.049 -4.53e-05 -8.38e-08\n", + "cd4_rs2 8.049e-05 4.46e-05 1.806 0.071 -6.87e-06 0.000\n", + "dvl0 -0.0494 0.397 -0.125 0.901 -0.827 0.728\n", "==============================================================================\n" ] } @@ -164,8 +163,8 @@ "Model Family: Binomial Df Model: 9\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -202.85\n", - "Date: Wed, 24 Apr 2019 Deviance: 405.71\n", - "Time: 13:22:44 Pearson chi2: 535.\n", + "Date: Wed, 17 Jul 2019 Deviance: 405.71\n", + "Time: 12:32:16 Pearson chi2: 535.\n", "No. Iterations: 6 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -207,31 +206,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "RD: -0.08485106054489719\n", - "RR: 0.5319812234515429 \n", - "\n", "======================================================================\n", " Augmented Inverse Probability of Treatment Weights \n", "======================================================================\n", - "Treatment: art No. Observations: 517 \n", - "Outcome: dead \n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", "g-Model: Logistic Q-model: Logistic \n", + "Missing model: None \n", "======================================================================\n", - "Risk Difference: -0.085\n", - "95.0% two-sided CI: (-0.155 , -0.015)\n", + "Risk Difference: -0.084\n", + "95.0% two-sided CI: (-0.153 , -0.014)\n", "----------------------------------------------------------------------\n", - "Risk Ratio: 0.532\n", + "Risk Ratio: 0.54\n", "95.0% two-sided CI: -\n", "======================================================================\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\AIPW.py:337: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] } ], "source": [ "aipw.fit()\n", - "\n", - "print('RD:', aipw.risk_difference)\n", - "print('RR:', aipw.risk_ratio, '\\n')\n", - "\n", "aipw.summary()" ] }, @@ -239,57 +240,130 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Interpreting the risk difference, we would conclude that had everyone in our cohort been treated with ART, the risk of all-cause mortality would have been 8.5% (95% CL: -0.155, -0.015) points lower than had no one been treated.\n", + "Interpreting the risk difference, we would conclude that had everyone in our cohort been treated with ART, the risk of all-cause mortality would have been 8.4% (95% CL: -0.153, -0.014) points lower than had no one been treated.\n", "\n", "Confidence intervals come for influence curves. They are currently only available for the risk difference\n", "\n", + "### Diagnostics\n", + "`AIPTW` supports diagnostics for both the pi-model (IPTW) and the Q-model (g-formula). All available diagnostics can easily be ran using `run_diagnostics()`" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\tExposure Model Diagnostics\n", + "======================================================================\n", + " Weight Positivity Diagnostics\n", + "======================================================================\n", + "If the mean of the weights is far from either the min or max, this may\n", + " indicate the model is incorrect or positivity is violated\n", + "Average weight should be 2\n", + "----------------------------------------------------------------------\n", + "Mean weight: 1.986\n", + "Standard Deviation: 2.366\n", + "Minimum weight: 1.06\n", + "Maximum weight: 16.919\n", + "======================================================================\n", + "\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "male -0.088567 -0.015684\n", + "age0 0.053929 0.022311\n", + "age_rs1 0.072832 0.062384\n", + "age_rs2 0.071245 0.057444\n", + "cd40 -0.022283 -0.486700\n", + "cd4_rs1 -0.016827 -0.487005\n", + "cd4_rs2 -0.008080 -0.297140\n", + "dvl0 0.047828 -0.015729\n", + "======================================================================\n", + "\n", + "\tOutcome Model Diagnostics\n", + "======================================================================\n", + " Natural Course Prediction Accuracy\n", + "======================================================================\n", + "Outcome model accuracy summary statistics. Defined as the predicted\n", + "outcome value minus the observed outcome value\n", + "----------------------------------------------------------------------\n", + "Mean value: 0.0\n", + "Standard Deviation: 0.348\n", + "Minimum value: -0.986\n", + "Maximum value: 0.611\n", + "======================================================================\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGoCAYAAABL+58oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl4VOXZ+PHvnQVCSNhCIEAIARRBBFnCDhY3tIpoi1Zr1JdqC2qt1qWLUotaqb4/Uatia5G2aJu2WnGrtYr6iqzKGkB2hBAS2RICSQhbkvv3xzkThzBJJsksWe7Pdc01M2d5zj0zyZl7nvMsoqoYY4wxxjQlEeEOwBhjjDEm0CzBMcYYY0yTYwmOMcYYY5ocS3CMMcYY0+RYgmOMMcaYJscSHGOMMcY0OZbgmCZFRB4Rkb+FOw5jmgMRWSgiPwx3HJWJyEYRGR+C44iI/EVECkRkRbCPZ2rHEhxTayKSJSKXhPH480TkpIgUi8ghEflIRPrWoZywvg5j6qLy362I3OB+wX4rnHFV5v7YOCUiRe5tm4jMFpEuwT62qvZX1YVecQTrR89Y4FIgWVWHV7WRiIwXERWRnwcpDuODJTimsfp/qhoHJAMHgHnhDceY0BOR/wFeBK5U1c9qua+ISLC/A15T1XigA/AdIAlYHYokJ0R6AFmqerSG7f4HOOTeh5SIRIX6mA2FJTgmoETkRyKyw61ZeVdEurrLXxKRWZW2fUdE7nMfdxWR+SJyUER2icjd/hxPVUuAvwPnVRHPJLe6+rBbnd7PXf5XIAX4t1sTZL+sTKMiIlOBp4HLVHWZ1/KRIrLM/Ztf532pxv0fmCkiS4ESoJe77DcistStaVkgIh39Kc9fqnpKVTcC1wMHgfu9yp8oIplu+ctEZKDXuiwReUBE1ovIERF5TURi3HUdReQ9d79DIrLYk7B5arlE5HLgIeB69/98nYhcJyKrK72X94vI21W8z13dc9kh99z2I3f5bcBcYJRb9qNV7B8LXAv8GDhbRNIqrR/r9f7uEZEp7vJWIvK0iOx2X/sSd9l4EcmpVEZFrZ5bY/WGiPxNRAqBKSIyXESWu8fY69aktfDav784NeGHRGS/iDwkIkkiUiIiCV7bDXXP0dG+XmuDo6p2s1utbkAWcImP5RcBecAQoCXwArDIXXcBsAcQ93l74BjQFSfRXg38GmgB9AJ24py4fR1/HvC4+zgOJ8FZ7D5/BPib+7gPcBSnCjka+DmwA2hR3euwm90a8s39u50P7AfOr7SuG5APXOH+X13qPk901y8EsoH+QJT7f7EQ+Mr9f2nlPn+yFuX9sIo4K/4XKy1/DPjCfTwEpwZ2BBCJU8ORBbT0eq0r3PNEB2AzcLu77gngJfc1RAPjvM4vFf/bleNwz02HgH5ey9YCk6t4HZ8BvwdigEE4CdrF7ropwJIaPq+bgb3u6/s38LzXuhSgCPi++xoSgEHuuhfd97ebu+9oN/bxQI6Pvwnv13sKuMb9zFoBQ4GR7mee6r6PP3W3j3fju999jfHACHfd+8AdXsd5Fngh3P8D/t6sBscEUjrwZ1Vdo6ongAdxft2kAosBxTkJgfOLZrmqfg0MwzlhPqaqJ1V1J/AycEM1x3pARA7jJCxxOCeayq4H/qOqH6nqKWAWzj/76Pq9TGPC7lLgc2BDpeU3Ae+r6vuqWq6qHwGrcBIUj3mqulFVS93/C4C/qOo2VT0GvI7zRe5vebX1NU6yAvAj4I+q+oWqlqnqK8AJnC9jj+dV9WtVPYSTIHhiOwV0AXqoU0O0WN1v4eq456bX3NeGiPTH+dJ/r/K2ItIdp53NL1T1uKpm4tTa3FyL1/s/OJfqynB+jH3fqwYkHfhYVf/hvoZ8Vc10a6JuBe5R1Vz3vVnmxu6P5ar6tvuZHVPV1ar6ufuZZwF/BDxttiYC+1T1afc1FqnqF+66V7zep0icROyvtXjtYWUJjgmkrsBuzxNVLcb5tdfNPfH8E+cfBOBGIMN93APo6lafHnYTl4eAztUca5aqtlPVJFWdpKpf+RFPOU4tUre6vTxjGozbcWpc5oqIeC3vAVxX6X9pLE4i4LHHR3n7vB6X4Pxo8Le82uqGU4PiKf/+SuV3x/nfrSm2p3B+4CwQkZ0i8staxPAKcKP73t0MvF5F8tAVOKSqRV7LduPnOcRNkC7km3PdOzi1JFe6z7vj1J5V1tHdztc6f5z2GYtIH/dy3j73stVv3WNUF4Mn3nNFpBdOUn1EVRtNbzFLcEwgfY1zwgJARFrjVLnmuov+AVwrIj1wqqTnu8v3ALvchMVzi1fV+vxK9BWP4Pwze+Kp8deeMQ3UAeBinBrR33st3wP8tdL/UmtVfdJrm9r83ftTnt/cmomrcGp0PeXPrFR+rKr+o6ay3JqG+1W1l1vmfSJysa9Nfez7OXAS5/27kaprJb4GOohIvNeyFL45h9TkZpzv2X+LyD6cS+8xwC3u+j1Abx/75QHHq1h3FIj1PHFrVhIrbVP5Nf8B2AKcraptcH5AehLjqmJAVY/j1Oilu6+l0dTegCU4pu6iRSTG6xaFU/36AxEZJCItcX4lfOFWiaKqa3GuX88FPlTVw25ZK4BCEfmF24guUkTOE5Fh9YzxdeBKEbnYrRK+H6f629Mgcz9Oex9jGh338u5FwOUi8qy7+G/AVSJymft/FOM2Sk2u42ECUp6IRIvTwP8fOD2pnnFXvQzcLiIjxNFaRK6slFBUVeZEETnL/eFSCJS5t8r2A6lyZo+xV4HZQKmqLvF1DFXdg3O+eMJ97QOB2/imRqYmtwCP4lxW89wm45yXEtxyLhGR74lIlIgkiMggt7b5z8Az4jRyjhSRUe55dRsQ475P0cCvcNrmVCce5z0qFmdIjTu81r0HJInIT0WkpYjEi8iISu/TFGASzt9Do2EJjqmr93EaCXtuj6jqJ8DDODUze3F+FVRuR/MP4BKcZAgA99r0VTj//Ltwfr3MBdrWJ0BV3Ypz/fgFt8yrgKtU9aS7yRPAr9yq8QfqcyxjwsH9Ar4Ip2b0Cff51Ti/0A/i/Dr/GXU81wegvOtFpBg4DLyLc8l6qJucoaqrcNrhzAYKcC45TfGz7LOBj4FiYDnwe3XHvqnkX+59vois8Vr+V5zelzXVSnwfp43O18BbwAy3LVK1RGSku9+LqrrP6/Yuzuv8vqpm47Rnuh/nsl0mcL5bxAM4baxWuuv+F4hQ1SPAnTjnyFycGp3TelX58ABOTVURTlL5mmeFe/ntUpzz4z5gO85lNc/6pUA5sMbzY7Wx8LQ4N8YYY5oNEWmFc6lviKpuD3c8DZmI/B/wd1WdG+5YaqPZDgBkjDGmWbsDWGnJTfXcpgJDcGryGhVLcIwxxjQrIpKF08j2mjCH0qCJyCs479E9lXqSNQp2icoYY4wxTY41MjbGGGNMk9NkL1F17NhRU1NTA15ufn4+AAkJCTVsaYxZvXp1nqpWHqOjUQrWOcUYUzv+nleabIKTmprKqlWrAl7uvHnzAJgyZUrAyzamqRGR3TVv1TgE65xijKkdf88rdonKGGOMMU2OJTjGGGOMaXKadIKTkQGpqRAR4dxn+Du4tgkP+8CMMcYESEDa4IhIsarGeT1vA2wG3lLVu+pZ9gXA74CBwA2q+oY/+x06BFOnQkmJ83z3buc5QHp6fSIyQZGRUe8P7NSpU+Tk5HD8+PEgBWmqEhMTQ3JyMtHR0eEOxRhjgOA1Mv4N8FltdhCRSHdOosqyceYmqdVcQbm5cPLk6ctKSmD6dEtwGqTp079Jbjxq+YHl5OQQHx9Pamoqzvx7JhRUlfz8fHJycujZs2e4wzEmLPJL8lnw1QIu7X0pHWM7hjscg5+XqETkFhFZLyLrROSvItJTRJaLyEoR+U2lbYcCnYEFfpRbLCKPicgXwCgReVJENrnHmgWgqlmquh5nsq+aypsqIqtEZFXl5MYjO7vm12vCoKoPphYf2PHjx0lISLDkJsREhISEBKs5M81W8cliRv95NDe+eSPDXh5G4fHCcIdk8CPBEZH+wHTgIlU9H7gHeA74g6oOw5l91LNtBPA0zmyz/mgNfKmqI4BNwHeA/qo6EHi8Ni8EQFXnqGqaqqa1aOF7m5SU2pZqQqKqD6aWH5glN+Fh77tpzl5a9RLb8rdxff/ryTqcxf8u/d9wh2TwrwbnIuANVc0DUNVDwBjgH+5676nm7wTeV9U9fh6/DJjvPi4EjgNzReS7QEmVe/mhWzeIjT19WWwszJxZn1JN0MycaR+YMabRUVVeWvUSAzsN5CfDf0JalzT+tPZPlJfXeNHBBJk/CY4Avias8rVsFHCXO5HZLOAWEXmymrKPe9rdqGopMBwn4bkG+MCP2KrUoQPMmQM9eoCIcz9njrW/abDS05vEB5aVlcV555132rJHHnmEWbNmBeV4o0ePrnGb1NRU8vLyzli+cOFCli1bVutjVlWeMc3RpoOb+KrgK8anjicmKoZvn/1t9h/dz+LsxeEOrdnzJ8H5BPieiCQAiEgHYClwg7u+4htIVdNVNUVVU3EaBb+qqr/0JxARiQPaqur7wE+BQX6/iiqkp0NWFpSXO/eN7Luy+Qn1B9YEuqXXJUHxqGuCY4z5xgc7nN/iw7oOA+BbPb6FILy15a1whmXwI8FR1Y3ATOAzEVkHPIPTDufHIrISaBugWOKB90RkPU4PrHsBRGSYiOQA1wF/FJGNATqeac483dJ37wbVb7qlBzHJGT9+PL/4xS8YPnw4ffr0YfFi5xfeFVdcwfr16wEYPHgwjz32GAAPP/wwc+fOBeCpp55i2LBhDBw4kBkzZlSUGRfnjM5QXl7OnXfeSf/+/Zk4cSJXXHEFb7zxzYgKL7zwAkOGDGHAgAFs2bKFrKwsXnrpJZ599lkGDRrE4sWLOXjwIJMnT2bYsGEMGzaMpUuXAs78axMmTGDw4MFMmzYNVV+Vt8Y0Tx/v+pjUdqn0bO/0IGwX047e7XuzdM/SMEdm/OpFpaqvqOp5qnq+qk5R1V2qOkpVh6nqk95j4HjtM6+mMXC891PVvao6XFUHquoAVX3FXb5SVZNVtbWqJqhq/9q+SGPOUF239CAqLS1lxYoV/O53v+PRRx8F4IILLmDx4sUUFhYSFRVVkVgsWbKEcePGsWDBArZv386KFSvIzMxk9erVLFq06LRy33zzTbKystiwYQNz585l+fLlp63v2LEja9as4Y477mDWrFmkpqZy++23c++995KZmcm4ceO45557uPfee1m5ciXz58/nhz/8IQCPPvooY8eOZe3atUyaNIls64poDOC0v1mRu4K+CX1pGdmyYvmQLkPYsH8DR08eDWN0pkmPZGxMlQLQLd2XqnoTeZZ/97vfBWDo0KFkZWUBMG7cOBYtWsSSJUu48sorKS4upqSkhKysLM455xwWLFjAggULGDx4MEOGDGHLli1s3779tPKXLFnCddddR0REBElJSVx44YWnrfd13Mo+/vhj7rrrLgYNGsSkSZMoLCykqKiIRYsWcdNNNwFw5ZVX0r59+zq9N8Y0NbsO7+LQsUOcnXD2af/7g5IGcaLsBF/kfhHG6ExIZhN3x7lpWWnxzaq6IRTHN+YMKSnOZSlfy+shISGBgoKC05YdOnSoYgC8li2df4PIyEhKS0sBGDZsGKtWraJXr15ceuml5OXl8fLLLzN06FDA+ZX44IMPMm3atCqPW9NlI1/Hray8vJzly5fTqlWrM9Y1pm7gItIdeBVIwhk/a46qPldpm/HAO8Aud9GbqvpYKOM0jd+qr53Z5fsk9Dlteb+O/QBYmbuSi3peFPK4jCMkNTiqOkJVB1W6WXJjwidI3dLj4uLo0qULn3zyCeAkNx988AFjx46tcp8WLVrQvXt3Xn/9dUaOHMm4ceOYNWsW48aNA+Cyyy7jz3/+M8XFxQDk5uZy4MCB08oYO3Ys8+fPp7y8nP3797Nw4cIaY42Pj6eoqKji+YQJE5g9e3bF88zMTMC5hJbhtk3673//e0YC1wCVAveraj9gJE57wXN9bLfY63xkyY2ptZW5K2kR2YJzOpxz2vJubboRGx3L6r2rwxSZAbtEZZqrIHZLf/XVV3n88ccZNGgQF110ETNmzKB3797V7jNu3Dg6d+5MbGws48aNIycnpyLBmTBhAjfeeCOjRo1iwIABXHvttaclJgCTJ08mOTmZ8847j2nTpjFixAjatq2+/f9VV13FW2+9VdHI+Pnnn2fVqlUMHDiQc889l5deegmAGTNmsGjRIoYMGcKCBQtIaeCjZbrt+da4j4tw5sXrFt6oTFO0/sB6UtumEtfy9GaoERJBnw592HjQ+sSEkzTVHhFpaWm6atWqgJc7b948AKZMmRLwsk39bN68mX79+oU7jLApLi4mLi6O/Px8hg8fztKlS0lKSgrZ8X29/yKyWlXTQhZEJSKSCiwCzlPVQq/l43HG3MoBvgYecHuMVt5/KjAVICUlZehuX5c1TbOV8mwKZ3U4i6cufeqMdbOWzeKtLW9x6OeHiG0R62NvU1f+nlesBseYJmLixIkMGjSIcePG8fDDD4c0uWmI3LG15gM/9U5uXGuAHu70My8Ab/sqw3v6l8TExOAGbBqV4pPF7CncQ/e23X2uP6vDWZwoO8H2Q9t9rjfBF5JGxsaY4POn3U1zISLROMlNhqq+WXm9d8Kjqu+LyO9FpKNnShpjarI1bysA3dv4TnBS26UC8OXBLzk/6fxQhWW8WA2OMaZJEafL15+Azar6TBXbJLnbISLDcc6F+aGL0jR2m/M2A5DS1nebNE+Cs2G/9acJF6vBMcY0NWOAm4ENIpLpLnsISAFQ1ZeAa4E7RKQUOAbcoE21QaIJii15W4iUSHq27elzfbuYdrRt2baipseEniU4xpgmRVWX4EwSXN02s4HZ1W1jTHU2522ma3xXWrdoXeU2Pdr1YGfBzhBGZbyF/RKViBRXet5GRHJFZLbXsqEiskFEdojI81LLUceawJyKzYN9UMaYRmJ7/na6xnelRWSLKrfp2a4n2YXZnCo7FcLIjEfYExwffoMz2aa3P+B01TzbvV3ub2FhmFPR1EUT+aDuvfdefve731U8v+yyyyrmdAK4//77eeYZn81CABg9enSNx0hNTSUv78y2sHWdHbyq8owxvqkquw7vonPrztWO8t2jbQ8OHz/M10VfhzA64xH0BEdEbhGR9SKyTkT+KiI9RWS5iKwUkd9U2nYo0BlY4LWsC9BGVZe718hfBa7x9/hhmlPR1FYYPqhgVBiNHj26IskoLy8nLy+PjRu/GV5l2bJljBkzpsr965KgeNQ1wTHG1E7+sXyKTxaTFF/9UAyeBsjb8reFIixTSVATHBHpD0wHLnLHm7gHeA74g6oOA/Z5bRsBPA38rFIx3XAG4/LIoYpRSUVkqoisEpFVBw8eBII2p6IJtBB/UMGqMBozZkxFkrFx40bOO+884uPjKSgo4MSJE2zevJnBgwfz1FNPMWzYMAYOHMiMGTMq9o+Lc0ZELS8v584776R///5MnDiRK664gjfeeKNiuxdeeIEhQ4YwYMAAtmzZQlZWFi+99BLPPvtsxcjEBw8eZPLkyQwbNoxhw4ZVzFKen5/PhAkTGDx4MNOmTatxHitjzOl2FThTmHVu3bna7ZLbJAOW4IRLsGtwLgLe8IwtoaqHcHo4/MNd/1evbe8E3lfVPZXK8FX/5/OM7GtQrqpGlW/go803PyH+oIJVYdS1a1eioqLIzs5m2bJljBo1ihEjRrB8+fKKaRAWLlzI9u3bWbFiBZmZmaxevZpFixadVs6bb75JVlYWGzZsYO7cuSxfvvy09R07dmTNmjXccccdzJo1i9TUVG6//XbuvfdeMjMzGTduHPfccw/33nsvK1euZP78+RWXyh599FHGjh3L2rVrmTRpEtmW7RtTK7sOOwlOl7gu1W7XNb4rADsO7Qh6TOZMwe5FJfhORnwtGwWME5E7gTighdsA+Tkg2Wu7ZJyh1f0yc6bzy9z7yywAcyqaQAvxBxXMCiNPLc6yZcu47777yM3NZdmyZbRt25bRo0ezYMECFixYwODBgwFnioXt27dzwQUXVJSxZMkSrrvuOiIiIkhKSuLCCy887Rjf/e53ARg6dChvvnnGOHYAfPzxx2zatKnieWFhIUVFRSxatKhinyuvvJL27dvX/0Ub04x4anCqGgPHIzY6lvYx7a0nVZgEO8H5BHhLRJ5V1XwR6QAsBW4A/gZUzGyoqhWPRWQKkKaqv3SfF4nISOAL4BacodX94pk7cfp058srJcX5zgzAnIomkEL8QaWkOJelfC2vL087nA0bNnDeeefRvXt3nn76adq0acOtt97KwoULefDBB5k2bVqVZdR02ahly5YAREZGUlpa6nOb8vJyli9fTqtWrc5YV8uOiMYYL1mHs2jbsi1tW1Y/oS1At/hu7CmsfGHChEJQL1G5k9fNBD4TkXXAMzjtcH4sIiuBmv86HHcAc4EdwFfAf2sTR3o6ZGVBeblzb8lNAxXCD2rmTKeCyFugKozGjBnDe++9R4cOHYiMjKRDhw4cPnyY5cuXM2rUKC677DL+/Oc/U1zsjJCQm5vLgQMHTitj7NixzJ8/n/Lycvbv3+/XNAzx8fGnzTI+YcIEZs/+ZqiXzExnzLsLLriADLex0X//+18KCgrq+5KNaVZ2Hd5FUlwS0ZHRNW6b3CaZvUV7KS33/UPEBE/Qe1Gp6iuqep6qnq+qU1R1l6qOUtVhqvqkqsb52Geeqt7l9XyVW0ZvVb3LRhw19ZWeDnPmQI8eIOLcz5kTmJxqwIAB5OXlMXLkyNOWtW3blo4dOzJhwgRuvPFGRo0axYABA7j22mtPS0wAJk+eTHJyMueddx7Tpk1jxIgRtG1b/e+Bq666irfeequikfHzzz9f0e7n3HPP5aWXXgJgxowZLFq0iCFDhrBgwQJSrEGaMbWyq2AXia0TiYqo+SJItzbdOFBygOITxTVuawJLmmqukJaWpqtWrQp4ufPmzQNgypQpAS/b1M/mzZvp169fuMMImOLiYuLi4sjPz2f48OEsXbq0Qc8Q7uv9F5HVqpoWppACKljnFNO4lGs5rWa24qo+V/Hg2Adr3P7dre/y2KLHWDN1DYO7DA5BhE2fv+cVm6rBmAZq4sSJHD58mJMnT/Lwww836OTGmOZib9FeTpadJCnOv/9HT0+q7Ye2W4ITYpbgGNNA+dPuxhgTWruPOL0TahoDx8MzFs72/O1Bi8n41hCnajCmzprqJdeGzt5301zkFDrjznZq3cmv7RNjnbY6XxV8FcywjA+W4JgmIyYmhvz8fPuyDTFVJT8/n5iYmHCHYkzQeRKcmgb584iMiKRT604V+5nQsUtUpslITk4mJycHzzQdJnRiYmJITk6ueUNjGrmcwhxaRbWiXUw7v/fpEtfFJtwMA0twTJMRHR1Nz549wx2GMaYJyynMoWNsR1pEtvB7n6S4JFbkruBU2Sm/xs4xgWGXqIwxTYqIdBeRT0Vks4hsFJF7fGwjIvK8iOwQkfUiMiQcsZrGJ6cwh4RWCX6NgePRJa4L+cfyOXryaBAjM5VZgmOMaWpKgftVtR8wEmfk9HMrbfNt4Gz3NhX4Q2hDNI1VTmEOCbEJtZruJCkuiXItJ/uITWwbSpbgGGOaFFXdq6pr3MdFwGagW6XNrgZeVcfnQDsR8a/VqGm2ysrL+LroazrGdqzVfp4xczyzkJvQsATHGNNkiUgqMBhnol5v3QDvGRBzODMJQkSmisgqEVlljdfN/qP7KdOyOic4Nqt4aDXZBGfDBoiIgNRUcOcVbJ4yMpw3wd4M08yISBwwH/ipqhZWXu1jlzPGF1DVOaqapqppiYmJwQjTNCKert51TXCyDmcFOiRTjYAkOCJSXOl5GxHJFZHZVe1Ti7LvE5FNbkPAT0Skhz/7nTwJqrB7N0yd2ky/1zMynBe/e7e9GaZZEZFonOQmQ1Xf9LFJDtDd63kyYP14TbUqBvmL9W+QP4+YqBjatWzHnsI9NW9sAiZYNTi/AT6rzQ4iElnFqrVAmqoOBN4A/l9tgykpgenTa7tXEzB9uvPivTXbN8M0F+K0/vwTsFlVn6lis3eBW9zeVCOBI6q6N2RBmkbJk+D4Ow+Vt6T4JHILcwMdkqmGXwmOiNzi1qCsE5G/ikhPEVkuIitF5DeVth0KdAYW+FFusYg8JiJfAKNE5Emv2ppZAKr6qap6vqU/x/mlVVV5FdfLK6/Lbo6N16t60c3yzTDNyBjgZuAiEcl0b1eIyO0icru7zfvATmAH8DJwZ5hiNY1ITmEO0RHRtb5EBU5X8X1H91Gu5UGIzPhSY0d+EekPTAfGqGqeiHQA5gF/UNVXReTHXttGAE/jnFwu9uP4rYEvVfXXbrl/AvqqqoqIr2EibwP+W1VhqjoHmOPEknba9fSUFD+iaWpSUpzLUr6WG9NEqeoSfLex8d5GgR9Xt40xleUU5pDYOrFOg/UlxSXxec7nnCg9QavoVkGIzlTmTw3ORcAbqpoHoKqHcH4h/cNd/1evbe8E3ldVfy80luFcJwcoBI4Dc0Xku8Bp11ZE5CYgDXjKz7IrxMbCzJm13asJmDnTefHemu2bYYwx9eMZ5C86om4JzrHSY+w/uj8IkRlf/ElwBB+9C6pYNgq4S0SygFk417ifrKbs46paBqCqpcBwnITnGuCDigBELsGpRZqkqif8iJkWLUAEevSAOXMgPd2fvZqY9HTnxffoYW+GMcbUU10G+fOoGAunwMbCCRV/xpr+BHhLRJ5V1Xz3UtJS4Abgb0DFt6WqVjwWkSk4jYN/6U8gbpfOWFV9X0Q+x7k2jogMBv4IXK6qB/x7WTBgAKw6oyVOM5SebgmNMcbUU7mWk1uUy9CuQ+u0v3UVD70aExxV3SgiM4HPRKQMp1fTPcDf3Tle5ldbgP/igXdEJAan1uhed/lTQBzwLzdrzlbVSQE6pjHGGFOjvJI8TpadrFMDY3AaGYMN9hdKfs0WpqqvAK9UWjzK6/EZl6FUdR5OY+Tqyo3zerwX5xJV5W0u8SdGY4wxJlgqBvlrVbcEp31Me6Ijotl9xEfHDxMUTXYkY2OMMSZQPAlOYuuWU5OEAAAgAElEQVS6jWgtIiTFJVWUY4LP//ne68Ed56ZlpcU3q+qGUBzfGGOMqY+KQf5a136QP48ucV3YW2zjSYZKSBIcVR0RiuMYY4wxwZBTmENURFSd2+CA09B4e/Z2SstLiYoIyddvs2aXqIwxxpgaeMbAaRlV+WKE/7rEd6HgeAFFJ4oCGJmpiiU4xhhjTA08Y+DUp+bF05Nq12EbCycULMExxhhjapBblEtCq/olOBWD/VmCExKW4BhjjDHVUNWKGpz6sNGMQ8sSHGNMgyUi80XkSnciX2PC4siJI5ScKiGhVf0SnM6tOyOIjWYcInbSMMY0ZH8AbgS2i8iTItI33AGZ5ie3MBegXj2oAKIjo0mITSD7SHYgwjI1sATHGNNgqerH7hx3Q4As4CMRWSYiPxCR2k/pbEwd5Ba5CU4dRzH2ltQ6qSJhMsFlCY5HRgakppIh6aRG5RAhSmqqs9gYEz4ikgBMAX6IMxfeczgJz0dhDMs0I56EJDG2bqMYe+sS34V9R/ehqvUuy1SvUSQ4IvJnETkgIl8G5QAZGTB1Khm7RzOVOewuS0YRdu+GqVMtyTEmXETkTWAxEAtcpaqTVPU1Vf0JziS8xgRdxSjG8XUfxdijS1wXDhw9wPHS4/Uuy1SvwSQ4IlJd37t5wOVBO/j06VBSwnR+SwmtT1tVUuKsNsaExVxVPVdVn3An5EVEWgKoalpVO9X0o0hExovIERHJdG+/Dk74pinILcqlXUw7YqNj611WUlwSpeWldpkqBPxKcETkbRFZLSIbRWSqu+w2EdkmIgtF5GURme0uT3R7Pqx0b2OqKfcREZkjIguAV0Wkv4iscE8460XkbABVXQQc8iPOqSKySkRWHTx40J+X5sh2Gnxlk1LdamNM6D3uY9lyP/abR80/ihar6iD39litIzPNRm5RLh1bdQzI9Aqewf52Fuysd1mmev5+Wreq6iERaQWsFJH/AA/jXAcvAv4PWOdu+xzwrKouEZEU4EOgXzVlDwXGquoxEXkBeE5VM0SkBRBZmxejqnOAOQBpaWn+X+BMSYHdu0khm92k+lxtjAkdEUkCugGtRGQwIO6qNjiXq6qlqotEJDVoAZpmJbcwl/at2gckwbHB/kLH30tUd4vIOuBzoDtwM/CZqh5S1VPAv7y2vQSYLSKZwLtAGxGJr6bsd1X1mPt4OfCQiPwC6OG1PLhmzoTYWGbyELEcPW1VbKyz2hgTUpcBs4Bk4Bngafd2H/BQgI4xSkTWich/RaS/rw3qXCtsmpTcolwSYhOICMBwTF3i3ekabLC/oKsxHRWR8ThJyyhVLRGRhcBWqq6ViXC39Tc5qcgoVPXvIvIFcCXwoYj8UFX/z89y6i493bmbPh12T2V65P+SXdaNlB7CzJkVq40xIaKqrwCviMhkVZ0fhEOswfkRVSwiVwBvA2f7iKNutcKmyThReoIDRw8EpIs4QFyLOFpHt2b3kd0BKc9UzZ/6trZAgZvc9AVGAi8D3xKR9jiXqCYDG9ztFwB3AU8BiMggVc30JxgR6QXsVNXn3ccDcS5/BV96OqSnkw5YPmNMeInITar6NyBVRO6rvF5Vn6lP+apa6PX4fRH5vYh0VNW8+pRrmp69xXuB+g/y5y0pLomcopyAlWd886e+7QMgSkTWA7/BuUyVC/wW+AL4GNgEHHG3vxtIcxsJbwJur0U81wNfupe3+gKvAojIP3AuX50jIjkiclstyjTGND6e7oxxQLyPW72ISJKIiPt4OM65ML++5Zqmx9Pbqb7zUHnrEteFr4u+Dlh5xrcaa3BU9QTw7crLRWSVqs5xu3e/hVNzg/sL6Hp/Dq6qj1R6/gTwhI/tvu9PecaYpkFV/+jeP1qX/d0fReOBjiKSA8wAot0yXwKuBe4QkVLgGHCD2shrxgfPKMb1nYfKW5f4LmTuy6S0vDQgDZeNb/V5Zx8RkUuAGJzk5u3AhGSMMQ4R+X84XcWP4dQmnw/81L18VaWafhSp6mxgdqDiNE2XpwbH0/spEJLikig+VUxeSV5AyzWnq3OTcFV9wB0/oq+q3l3drx933pjMSrcX63psY0yzMcFtLzMRyAH6AD8Lb0imOckpzKFlZEvax7QPWJmepOarQ18FrExzppDUjanqX4C/hOJYxpgmxTOh5hXAP9zxuMIZj2lmcotySWydSHRk4OZ29Qz2l3U4izEpVY6Fa+rJLv4ZYxqyf4vIFpxLVHeKSCJgk/iYkMktyiWhVUJA28pUDPZnY+EEVYOZi8oYYypT1V8Co4A0d1DRo8DV4Y3KNCeBHMXYo2OsM+1D1pGsgJVpzmQ1OMaYhq4fzng43uerV8MVjGk+VJXcolyGdhka0HIjJIJOrTuRfcQmOgwmS3CMMQ2WiPwV6A1kAmXuYsUSHBMCeSV5nCw7GdAxcDyS4pJsLJwgswTHGNOQpQHn2hg1JhyCMQaOR9e4rizPWW5j4QSRtcExxjRkXwI2UIgJC88YOB1bB26aBo+u8V05dOwQhScKa97Y1ImljcaYhqwjsElEVgAnPAtVdVL4QjLNxZ7CPQB0ad0l4GV3b9sdRdmWv42RySMDXr5pBDU4ItJdRD4Vkc0islFE7gn4QTIyIDUVIiLI6Hg3qR2LiYhwFmVkBPxoxhj/PQJcgzP33dNeN2OCLvtINlERUSTGJga87OT4ZAC2528PeNnG0WBqcEQkSlVLfawqBe5X1TUiEg+sFpGPVHVTQA6ckQFTp0JJCRl8n6n5T1DizvO3e7ezCpzJxo0xoaWqn4lID+BsVf1YRGKByHDHZZqH7CPZJMYmEhMdE/Cyk9s4Cc7W/K0BL9s4/KrBEZG3RWS1W4My1V12m4hsE5GFIvKyiMx2lyeKyHwRWeneqhymUUQeEZE5IrIAeFVE+ovICncqh/Uicraq7lXVNQCqWgRsBrrV+5V7TJ8OJSXOQ35bkdx4lJQ4mxhjQk9EfgS8AfzRXdQNm/fOhEj2kWwSWycGpRFwu5h2xEbH2nQNQeTvp3arO0R6K2CliPwHeBgYAhQB/wesc7d9DnhWVZeISArwIc44FlUZCoxV1WMi8gLwnKpmiEgLKv1SE5FUYDDwha+C3ORrKkBKSop/ryz7m3EIsvG9T7YNVWBMuPwYGI77P6+q20WkU3hDMs1F9pFserfvHZQER0ToFt+NrMNZAS/bOPxtg3O3iKwDPge6AzcDn6nqIXd00X95bXsJMFtEMoF3gTbupaWqvKuqx9zHy4GHROQXQA+v5YhIHDAfZyZhn83OVXWOqqapalpiop/XTL0SoRR8ZzL+5krGmIA7oaonPU/cwf6sy7gJurLyMnIKc0hsHfj2Nx4pbVPYU7gHGwUhOGpMcERkPE7SMkpVzwfWAtVdNIxwtx3k3rq5l5aqctTzQFX/DkzCmXfmQxG5yI0hGie5yVDVN2uKuVZmzoTYWOchDxH7TTiAs2rmzIAe0Rjjv89E5CGglYhcivNj6t9hjsk0A3uL91KmZUFNcJLbJLP/6H6OnTpW88am1vypwWkLFKhqiYj0BUYCscC3RKS9+4tqstf2C4C7PE9EZJC/wYhIL2Cnqj6PU/szUJypg/8EbFbVZ/wty2/p6TBnDvToQbr8kzkJD9IjoRgR6NHDWWUNjI0Jm18CB4ENwDTgfeBXYY3INAueaRQ6xQbvimhym2RKy0v5qsDa4QSDPxcWPwBuF5H1ODU3nwO5ON02vwC+BjYBR9zt7wZedLePAhYBt/sZz/XATSJyCtgHPAaMwbkktsG97AXwkKq+72eZNUtPr8hi0t2bMSb8VLVcRN4G3lbVg+GOxzQfIUlw3K7i2/K3MaDzgKAdp7mqMcFR1RPAtysvF5FVqjrHrcF5C6fmBlXNw0lUaqSqj1R6/gTwRKXNlgDiT3nGmKbBrbmdgVMbLO6iMuAFVX3Mj/3/DEwEDqjqeVWU/xxwBVACTPH01jQGvklwusQHfpA/D+sqHlz1GejvEbdG5UtgF9Z10xgTOD/Fqb0dpqoJqtoBGAGMEZF7/dh/HnB5Neu/DZzt3qYCf6hfuKapyT6STXyLeNrGtA3aMTq17kRURBQ7Du0I2jGaszr3fVPVB/zdVkR+AFQegXipqv64rsc3xjRptwCXujXCAKjqThG5Cae2+NnqdlbVRe6wElW5GnjVncTzcxFpJyJdVHVv/UM3TUH2kWw6te5Ei8gWQTtGZEQkXeO72lg4QRKSkYxV9S/AX0JxLGNMkxDtndx4qOpBt1dlfXUD9ng9z3GXnZbg1GlsLdMkZB/JpmNsx6DP9N2zXU92FexCVXGunJpAafBzURljmqWTdVznL1/fJGcMRlKnsbVMk+CZpiFCgvs12bNdT3KLcik+WRzU4zRHluAYYxqi80Wk0MetCAhEd5McnEFLPZJxeoQaw5HjRyg4XkCn1sEfNDu1XSplWsbmvM1BP1ZzYwmOMabBUdVIVW3j4xavqoG4RPUucIs4RgJHrP2N8dhZsBMIbg8qj17tewGw8cDGoB+ruWkws4kbY0ygiMg/gPFARxHJwelyHg2gqi/hDBh4BbADp5v4D8ITqWmIPAlOUlxS0I+V2i4VgA0HNgT9WM2NJTjGmCZHVb9fw3rFmcjTmDN4EpzubbrXsGX9xUbH0ql1J7bkbQn6sZobu0RljDHGeNlZsJN2LdvRLqZdSI7Xs11Pm64hCCzBMcYYY7zsPLyTpPikoI6B461X+15kH8nmeOnxkByvuWjwCY7bCPB5EdkhIutFZEi4YzLGGNN0fXXoKzq37kx0RCDas9cstV0qx0uP24jGAdbgExwCMaR6RgakpkJEhHOfkeHPKmOMMc1MaXkpu4/sJikuKWQD753V4SwA1u5dG5LjNRdBTXBE5G0RWS0iG90RQRGR20Rkm4gsFJGXRWS2uzxRROaLyEr3NsYtpmJIdVX9HGgnIv733cvIgKlTYfduUHXup06FjIzqVhljjGmGcgpzKC0vDUkPKo+zO5yNIKz8emXIjtkcBLsG51ZVHQqkAXeLSDfgYWAkcCnQ12vb54BnVXUYMBmY6y6vakh1/0yfDiUlpy8rKYHp06tbZYwxphmqGAMnLvhj4HjERsfSvU131u1fF7JjNgfB7iZ+t4h8x33cHbgZ+ExVDwGIyL+APu76S4BzvaoE24hIPH4Oqe6Wd+a8MdnZviPLzqaKNVXuYowxpmnzTHwZygQHoG/Hvqzbv87mpAqgoNXgiMh4nKRllKqeD6wFttYQyyhVHeTeuqlqEbUYUt3nvDFVTZCXklLdKmOMMc3Q1vyttIxsSXKb5JAet09CH/Yf3c/XRTZjSKAE8xJVW6BAVUtEpC/OZalY4Fsi0l5EonAuRXksAO7yPBGRQe7D+g2pPnMmxMaeviw2FmbOrG6VMcaYZmhL3haS2yQTExUT0uP27ei02LB2OIETzATnAyBKRNYDvwE+B3KB3wJfAB8Dm4Aj7vZ3A2luV/BNwO3u8veBnThDqr8M3FmrKNLTYc4c6NEDRJz7OXMgPb26VcYYY5qhLXlb6BbfLWRj4Hick3AOACtzLcEJlKC1wVHVEzhdvE8jIqtUdY5bg/MWTs0NqpoHXO+jnPoPqZ6eXmXWUs0qY4wxzcjx0uPsOryLEckjQt4Opn2r9nRu3dlqcAIoHOPgPCIimcCXwC7g7TDEYIwxxpxmx6EdlGt5SOag8uX8zuezdt9anN/1pr5CnuCo6gNuI+K+qnq32idpjDGmAfBMeBmuBGdg54HkleSxLX9bWI7f1DSGkYyNMcaYoPMkOKntUsNy/EFJTt+ahVkLw3L8psYSHGOMMQYnwUlqnUTblm3DcvyzOpxFTFQMi7IXheX4TY0lOMYYYwywfv96erTrEfIeVB5REVH0T+zPipwVYTl+U2MJjjGmyRGRy0Vkq4jsEJFf+lg/RUQOikime/thOOI0DceJ0hNszttMartUIiMiwxbHsK7D2FGwg92Hd4cthqbCEhxjTJMiIpHAizjDVJwLfF9EzvWx6WteI6fP9bHeNCObDm6itLyUXu17hTWOUd1HAfCf7f8JaxxNgSU4xpimZjiwQ1V3qupJ4J/A1WGOyTRwmfsyAejdvndY4+jXsR9tW7blvzv+G9Y4mgJLcIwxTU03YI/X8xx3WWWT3ZHT3xCR8PQLNg3Guv3raBXVih5te4Q1jgiJYES3ESzNXkppeWlYY2nsLMExxjQ1voagrTze1r+BVFUdiDNtzCs+CxKZKiKrRGTVwYMHAxymaUgy92XSq30vWrdoHe5QGJsyloLjBXy669Nwh9KoWYJjjGlqcgDvGplk4LQpmlU1351OBpw57ob6KkhV56hqmqqmJSYmBiVYE35l5WWs2buG1HapYetB5e2CHhcQHRFNxoaMcIfSqIUtwRGRR0TkgWrWLxSRNPfxUBHZ4PaIeF78nSQkIwNSUyEiwrnPyKjNamNM47QSOFtEeopIC+AG4F3vDUSki9fTScDmEMZnGphNBzdRdLKoYkbvcItrEceo5FG8t+09ysrLwh1Oo9VYanD+AEwFznZvl9e4x6FDMHUq7N4Nqs791KkVWUxGRrWrjTGNlKqWAncBH+IkLq+r6kYReUxEJrmb3S0iG0VkHXA3MCU80ZqGYHnOcgDOTfTV2S48LjvrMvKP5VtvqnoIaYIjItPdsSk+Bs4BWonICq/1qSKyvtI+XYA2qrrcnbfqVeCaGg+WmwslJacvKymB6dMB566a1caYRkxV31fVPqraW1Vnust+rarvuo8fVNX+qnq+ql6oqlvCG7EJp+U5y2kf055e7cLbRdzbt3p8i/gW8by48sVwh9JoRYXqQCIyFKeqeLB73DXAaqCFiPRS1Z3A9cDrlXbthnNN3aOqHhGIyFScmh7fF9QBsrO976pabYwxzVJZeRlvbHqDN7e8yda8rURIBAM6DeA7/b7DVX2uCusgeMGyfM9y+nbsS6voVuEOpUJMVAxXn3M1f//y7+wq2EXP9j3DHVKjE8oanHHAW6paoqqFfHNN/HXge+7j64HXKu3nT48IZ6FXg0BaVNFQLCXF+66q1cYY0+xk7svk/JfO54b5N/Dprk+JiYohQiJ4a8tbfOe179D3xb68s+WdcIcZUHuL9rI1fyt9O/YlKiJkv/n9ct251wHw5JInwxxJ4xTqNji+EpPXgO+JSB9AVXV7pfU5OL0gPM7oEeFTt24QG3v6sthYmDkTcO6qWW2MMc3KP7/8JyPnjuTA0QP8cswvee3a15j97dn8ceIf+fCmD5nxrRmcKjvFNa9dw+TXJ3Pg6IFwhxwQH+/8GIAhSUPCHMmZurXpxmW9L2PeunlkH7bLC7UVygRnEfAdEWklIvHAVQCq+hVQBjzMmbU3qOpeoEhERrq9p24Bav4J0aEDzJkDPXqAiHM/Zw6kpwPOXTWrjTGm2Xgl8xVunH8j/RL7Mfvbs5ncbzJtWrbB02G1RWQLrupzFa9d+xq3DrqVd7e+y7kvnsubm98Mc+T199HOj2gf055+if3CHYpPd6TdQbmWc9+C+8IdSqMTsgRHVdfgJDCZwHxgsdfq14CbOLP9jccdwFxgB/AV4N8Y1unpkJUF5eXOfaXspYbVxhjT5C34agG3vnsrQ7sO5fELH6d3h95UNRJHVEQUdw67k1eveZV2Me2Y/Ppkbpx/IwXHCkIcdWCoKh/t/IhBSYOIbxEf7nB86hrflfQB6czfPJ+3t7wd7nAalZBeolLVmap6jqpOUNVbVXWWu3yWqoqqZnltO15VV7mPV6nqeW6PiLvc3lTGGGPqYXv+dq5/43p6te/Fry/4NUlxSX7t1yehDxnfzeDmgTfz2sbX6P/7/ny448MgRxt4X+R+wb7ifQzpMqRBN56eNnQaqW1Tue3d29hVsCvc4TQajWUcHGOMMQFUeKKQq//pzEH6q3G/omt811rtHxURxT0j7mHOxDlER0RzecblTP33VIpPFgcj3KB4fePrREdEMyZ5TLhDqVaLyBbMmjCLE6UnmPC3Cewt2hvukBoFS3CMMaaZKddybnrzJrblb+Pno39O/8T+dS5rUNIgMr6bweR+k5m7Zi4D/jCAd7a8Q0OvaC/Xct7Y9AZpXdNIivev5iqcUtul8tSlT5FTmMOIuSMqZj83VbMExxhjmpkZn87g39v+zY+G/IiLel5UZZsbf7WKbsWDYx9k9rdnc7LsJNe8dg2D/ziYNza9wamyUwGKOrA++uoj9hTu4YKUCxrE/FP+GN5tOL+/4vccPXWUYS8PY/on0zly/Ei4w2qwLMExxphm5F8b/8Xjix/n8rMuJ31AekDHfhmRPIL5183n56N/zoGjB7juX9eR8mwKD//fw2QdzgrYcQLhxZUvktAqgfGp48MdSq0M7DyQ1ya/xriUcfx2yW9JfS6V+z+8n615W8MdWoNjCY4xxjQTa/eu5X/e/h8GdBrA3cPvDsrIvdGR0Xyv//d483tv8viFj9O9bXdmLp5Jz+d6MmLuCJ77/Dm+Lqp5KLNg2nRwE+9te49Le11KQmxCWGOpi/at2vPUpU/xp6v+RP/E/jz3xXP0fbEvo/80mrlr5lJ4ojDcITYI0tCvk9ZVWlqarlq1KuDlzps3D4ApU6YEvGxjmhoRWa2qaeGOIxCCdU4JlX3F+xj+8nBOlZ9i1qWzQjpz9u7Du3lv+3t8tvszdhbsRBBGdx/N1edczVXnXMU5CefU+zJZbUx+fTIf7viQv0z6C706NJz5p+pqX/E+3tr8Fgt2LmBP4R5iomK4pu813Db4Ni7qeRER0rTqMvw9r1iCU0uW4BjjP0twGoajJ49y8asXs37/ep68+ElGdx8d0oTC25a8LXyw4wOW5SxjZ8FOAHq3712R7IzpPoboyOigHf/97e9z5d+v5OaBN/PjYT9ucNMz1Ieqsnrvat7d9i6fZX3G0VNH6RbfjWlDp/GTET+hXUy7cIcYEJbgWIJjTNhZghN+x0uPM/HvE/k061MeGvsQE/tMbDBf6lkFWXy6+1M+z/mc9fvXc6r8FHHRcXwr9Vtc2utSLu51Mf0T+wcsGcs+ks2IuSOIaxHHc5c9R+e4zgEptyE6duoYC75awHvb32PtvrXEt4jnruF3cd+o++gY2zHc4dWLv+eVhvFXbowxJuCKTxZz7evX8smuT7h/5P1ccfYVDSa5AUhtn8oP2v+AHwz6AQXHC1i8ezGr9q5i7b61/Gf7fwDo3LozF/e6mEt6XsK4HuPo3b7qkZars6tgF9/O+DZHTx7l1xf8ukknN+D0bLu679Vc3fdqNuzfwNy1c3liyRM898Vz/HjYj/nZ6J+R2Dox3GEGldXg1JLV4BjjP6vBCZ+cwhyu/ufVrNu3jp8M/wnXnXsdLaNahjssv6gqOwt2sjx3OWv3riVzXyZHTjjdoRNjExndfTRjU8YyuvtoBnQaQHzLqqdZKDpRxLzMecxYOIMyLeOhMQ9xYc8LG/TIxcGyNW8rc9bMYdHuRbSKbsWdaXfyszE/o1PrTuEOrVasBscYY5ohVeW1ja9x53/u5GTZSX51wa+4rPdljWasFwARoXeH3vTu0JubBtzEqbJTbM7bzNq9a9mUt4mVX6/kna3fzLncNb4r/Tr2o2t8V9rFtCM6IprCE4VsP7SdlV+vpORUCUO6DOGOoXcwsPPAZpncAJzT8RyenvA0W/O28vKal3nm82d4ceWL3JF2Bz8f8/MmV6vVYBMcERkPPKCqE+tcSEYGTJ8O2dmQkgIzZ9Z6Rs3KRdxxB3RuWn8DxjQ5InI58BwQCcxV1ScrrW8JvAoMBfKB673nwmuMyrWcT3Z+wqOfPcrSPUs5N/Fc7ht5HwM6DWj0X+jRkdEM7DyQgZ0HAs5rzS3MJXNfJllHsthzZA97juxh48GNFJ8spqy8jNjoWDq17sQlPS/hgtQLSEtKI65lXJhfScNwTsdzmDVhFtvyt/Hympf53Re/4/crf881/a7hB4N+wMU9L270fzPQgBOcejt0CKZOhZIS5/nu3c5z8DvJycg4s4ht24IQqzEmYEQkEngRuBTIAVaKyLuquslrs9uAAlU9S0RuAP4XuD700dadqrK3eC+Z+zL5eOfHvLP1HXYW7CShVQJ3DbuLSX0m0SG2Q7jDDIoIiaB72+50b9u9YpmqUqZllJaXVkwTERURFdQeWY1dn4Q+PHXpU2zL30bGhgze2/Ye//zyn7SLacfFPS/mop4XcX7n8xnQeQBtWrYJd7i1FtQER0RSgQ+AJcBIYB3wF+BRoBPgyTR+B7QCjgE/UNWtlcppDbwADHBjfkRV36E6ublw8uTpy0pKnOoYPxOc6dO/SW48ysthl03makxDNhzYoao7AUTkn8DVgHeCczXwiPv4DWC2iIgGoFHizEUzOVl2EkVRVcq1vOKx4j738bjytpUfl2kZR04cIb8kn0PHDrH7yO6KAd1aRLbg/M7nM7nfZMb3GE9i68QmN/ZJTUSEKIlqUI2oG4s+CX14dPyjlJws4eNdH7M8Zzmf7f6M+ZvnV2zTIaYDSfFJdI3rSpuYNsRGx9IqqhWx0bFERUQRIREI4tyLnPFcqLlh+Kjuo5jQe0LAXlco/hLOAq4DpgIrgRuBscAk4CHgFuACVS0VkUuA3wKTK5UxHfg/Vb1VRNoBK0TkY1U96r2RiEx1j8PQqqLJzvY78Ko2PXHC7yKMMaHXDdjj9TwHGFHVNu655wiQAOR5b+R9TklJSfHr4I8vfpzjpccBKk7yblmnPa984vd+XnGPgHxTTlyLONq0bEPbmLaMbz+e5PhkusR3oVf7XsS1iKtoZ5N/LN+/d8qYSkZ1H8Wo7qMoKytjT5Fz6S+nMIdDxw9x+Phhvi7+mq8KvuJE2QlOlJ7geOlxyrTsjEQdqEjS/fWjIT9qdAnOLlXdACAiG4FPVFVFZAOQCrQFXhGRswEFfNUnTgAmicgD7vMYIAXY7L2Rqs4B5gCktWypZ9TggNOQxrpQLnQAACAASURBVE8pKc5lqcpaNo6OCMY0V75+KlY+y/qzzennlLQ0v87URx88yqHjhzhZ5uP84yfvX7ueZCdCIipukRGRfv0iNiYYyrSMsvIyyrX8tJpGj8pJjb8Vo/+/vfuOk6q6/z/++iy9t6UoSxcRJIoIUbBExYJdowmxJGLsUWOKMWpMLIktmkSj8WtUVKwxahKNv5ioxBYVcUFsYEFEQdqytKWX/fz+OGdwGLbMsrtTdt/Px2Mec+feM/d+5s7szmfOOfecuh6IMBMJTnJ9R3nS4/J4/F8DL7r78bFJ66UK9mHACalNV1Xq2RMWLdq6jal169DROE3XXrt1HxyAggLo1y/tXYhI5s0DeiU9LgJSJz9KlJlnZk0JP7SW1sXBCwoK8n4gNZGGIBcaaTsAX8bl8ZWU+Q9wocXRncxsj2r32rkz3HUX9OkDZuH+rrtqdBXVKadsu4udd9ZVVCI57i1goJn1M7PmwHeAp1PKPA2cFpdPJDSBN8xBwUQaqVxIcH4LXG9mrxEu6azIrwlNV++a2fvxcfVOOQXmzAk9g+fMqfEl4hXtQsmNSG5z903ABYQfRjOBv7r7B2Z2jZkdE4tNALqY2SzgJ8Cl2YlWROpLvTZRxXElhiY9Hl/Jtp2TnvbLuP0lYnOVu68FzqnHUEWkAXH3fwH/Sln3q6TldYSLH0SkgcqFGhwRERGROtVg56IyszIg/U7JuaGQlMtU84Tizqx8iruPuzeIGf3MrASo4LrKbeTy+5PLsYHiq41cjg3qNr60/q805ASnON8m+cvHmEFxZ1q+xt1Y5PL7k8uxgeKrjVyODbITn5qoREREpMFRgiMiIiINTkNOcO7KdgDbIR9jBsWdafkad2ORy+9PLscGiq82cjk2yEJ8DbYPjoiIiDReDbkGR0RERBopJTgiIiLS4OR1gmNmY83sIzObZWbbDLVuZi3M7LG4/c04mWfWpRH3T8xshpm9a2aTzKxPNuJMVV3cSeVONDM3s5y4ZDGduM3s2/Gcf2Bmj2Q6xoqk8TnpbWYvmtnb8bNyRDbibOzM7Fvxc1Ne1WfezOaY2XtmNt3MinMstrT+tushvs5m9ryZfRLvO1VSbnM8b9PNLHVesbqOKae/V9KIb7yZlSSdrzMzGNu9ZrY4TqlU0XYzsz/G2N81s+H1GpC75+WNMG/Vp0B/oDnwDjAkpcwPgDvj8neAx/Ik7gOB1nH5vHyJO5ZrB7wCTAZG5EPcwEDgbaBTfNwtT+K+CzgvLg8B5mQ77sZ4AwYDgwhTy1T6mQfmAIW5Flu6f9v1FN9vgUvj8qXAjZWUW5WheHL6eyXN+MYDt2fyc5Z07P2B4cD7lWw/AngWMGBv4M36jCefa3C+Dsxy99nuvgH4C3BsSpljgYlx+QlgTGJG8iyqNm53f9Hd18SHk4GiDMdYkXTON4SJUH8LrMtkcFVIJ+6zgD+5+zIAd1+c4Rgrkk7cDrSPyx2A+RmMTyJ3n+nuOTlqepqxpfu3XR+S/0dPBI7L0HErk+vfK9l8r6rl7q8AS6socizwgAeTgY5mtkN9xZPPCU5PYG7S43lxXYVlPMwwvALokpHoKpdO3MnOIGS82VZt3Ga2B9DL3Z/JZGDVSOd87wzsbGavmdlkMxubsegql07cVwGnmtk8wsSSF2YmNNlODjxnZlPN7OxsB5Okpv+T6lJ3d18AEO+7VVKupZkVx7/P+kyCcv17Jd336oTYBPSEmfXKTGhpyehnrV5nE69nFWXMqde8p1Mm09KOycxOBUYA36jXiNJTZdxmVgD8gVA9mkvSOd9NCc1UBxBqy141s6HuvryeY6tKOnGfBNzv7r8zs1HAgzHu8voPr3ExsxeAHhVs+oW7P5XmbvZx9/lm1g143sw+jL94sx1bvf6frCq+Guymdzx3/YH/mtl77v5p3US4lVz/Xknn2P8EHnX39WZ2LqG26aB6jyw9GT13+ZzgzAOSM9Mitq2iT5SZZ2ZNCdX4VVWfZUI6cWNmBxP+AXzD3ddnKLaqVBd3O2Ao8FKsre0BPG1mx7h7RjpUViLdz8lkd98IfGZmHxESnrcyE2KF0on7DGAsgLu/YWYtCRPa5UITW4Pi7gfXwT7mx/vFZvZ3QnNDrROcOogtrf9J26uq+MxskZnt4O4LYlNFhZ/dpHM328xeAvYg9EWpa7n+vVJtfO5emvTwbuDGDMSVrnr9rKXK5yaqt4CBZtbPzJoTOnul9q5/GjgtLp8I/NdjT6csqjbu2NTzZ+CYHOkPAtXE7e4r3L3Q3fu6e19C36FsJzeQ3ufkH4SO3ZhZIaHJanZGo9xWOnF/AYwBMLPBQEugJKNRSlrMrI2ZtUssA4cCFV5pkgXpfNbqS/L/6NOAbWqczKyTmbWIy4XAPsCMeoon179X0vn+SO7TcgwwM0OxpeNp4Hvxaqq9gRWJJsp6kY2e1nV1I/TI/piQyf8irruG8MUK4R/+48AsYArQP9sxpxn3C8AiYHq8PZ3tmNOJO6XsS+TAVVRpnm8Dfk/4p/ke8J1sx5xm3EOA1whXUkwHDs12zI3xBhxP+GW6Pv7d/ieu3xH4V1zuH9+nd4APEu9nLsRW2WctQ/F1ASYBn8T7znH9COCeuDw6/l2+E+/PqOeYcvp7JY34ro+fsXeAF4FdMhjbo8ACYGP83J0BnAucG7cb8KcY+3v1/R2hqRpERESkwcnnJioRERGRCinBERERkQZHCY6IiIg0OEpwREREpMFRgiMiIiINjhKcemBmx1uYTXuXpHUHmFmtpzAws/vN7MRqyhxgZqNruN/WZvawhdmO3zez/5lZWzPraGY/qF3UWx2nb2UzzdZgH1eZ2cVx+Zo4KGJt41pVyfrELMYfmNk7FmZ6L4jbRpjZH+NyCzN7IZYdZ2b7xedMN7NWtY1PRERqRglO/TgJ+B9hEKZsOIAwdkRNXAQscvevuftQwvgFG4GOhNlzs8LMmlS13d1/5e4v1GMIa919mLvvChxCGIPiynjsYnf/YSy3B9Asln0MOAW4OT5eW91B4sBX+nsUSWJmg83ss6QfFQVm9pyZfa8xxiE1o3+odczM2hJG2jyDbROc9mb2dzObYWZ3xj+SJrFW5v1Ye/LjuJ9hFiaWezc+p1MFx5oTR/ZM1Ca8ZGZ9CQMr/TjWHuxnZl3N7Ekzeyve9qkg9B2ALxMP3P0jD1NE3AAMiPu6KdbqTDKzaTHeY+Px+5rZTDO7O9ZcPJeouTCzPWPtxxvA+Unx9zWzV+O+piVqnWIN1Itm9ghhMCjM7Bdm9pGFeW0GJe3jfjM7Mb7+6fH2npl53D7AzP5tYYLDVxO1ahZGAn0jno9fp/PeehhV+mzggpiQHGBmz1iYW+ghYFg8/jnAt4FfmdnD8Xg/i8d618yuTjlndwDTgF5mdmiMa5qZPR4/T4n3+uqk8554HW3N7L647l0zOyGur3A/IvnE3WcCHwJHxVXXAR+5+wONMQ6poUyOwNgYbsCpwIS4/DowPC4fAKwjjGjaBHieMMz3nsDzSc/vGO/fJcxDBWGUylvi8v3AiXF5DlAYl0cAL8Xlq4CLk/b5CLBvXO4NzKwg7mGEeWDeAH4DDIzr+wLvJ5VrCrSPy4WE0TwtltsEDIvb/gqcWsFruSmxP6A10DIuDwSKk87VaqBffLwnIdFpDbSPx7w49XwkxXgTcFNcnpT0WvYiDKsOccjwuHw+sKqS93Ob9cAyoHuM85mkmJ9JKpP8Ph0K3BXPUwHwDLB/PGflwN5J5/MVoE18/HPgV0nv9YVx+Qd8NcrrjcTPRnzcqar96KZbvt3i38+zwAnAq4Sa0kYbh27p3/J5ss1cdRJwS1z+S3w8LT6e4u6zAczsUWBfwhdwfzO7Dfh/wHNm1oGQ6LwcnzeRMDT49joYGGK2ZSLX9mbWzt3LEivcfbqFmXoPjeXfsjBDdWrzigHXmdn+hC/nnoQve4DP3H16XJ4K9K3gtTwIHB6XmwG3m9kwYDNhDqiEKe7+WVzeD/i7u68BMLNK58kxs28Dw4FDY63FaODxpNfeIt7vQ/hHlYipJhPSVTQjblUOjbe34+O2hITuC+Bzd58c1+9NnH4hxtuckHAm/C3eTwW+GZcPJqmm0N2XmdlR1exHJG+4+3Nm9jvCFATf8DApbqONQ9KnBKcOmVkXwrT0Q2MTSRPAzeySWCR1XgyPX0i7A4cRahK+Dfw4zUNu4qtmxpZVlCsARnk1fUHcfRXhS/RvZlZO6G/yZEqxU4CuwJ7uvtHM5iQdO3nW881AK0IyUNl8ID8mzI+ze4xxXdK21anhVRU7gJntClwN7O/umy20ly9392GVPKXG85TEJHAzobZrcLpPA6539z+n7KsvW79OI9TmnVTJfhLndzNf/e1WdH6r249IvnkdeNvTmJjRzMzdK/zbNrPDgG7u/mDSuheAHhUU/4W7p07+mXYckn3qg1O3TgQecPc+HmbV7gV8RqipAfh67PtRAIwD/mehD02Buz8J/JLQpLUCWGZm+8XnfRd4mW3NITTfwFe1EQBlQLukx88BFyQexBqTrZjZPhb7+ViYpXYI8HkF++oALI7JzYFAn6pOiLsvB1aYWeIcnJKyrwXuXh5fY2Udil8BjjezVhZmZD66gvg7EGrMvufuJfHYK4HPzOxbsYzFZBLCJJWJmo9TUvdXETPrCtwJ3F7ZP9BK/Af4flJ/mp6x306qycA+ZrZTLNfazHauoFyy1Pe203buRySXDSFMKAuAmXWL/cuuN7O/mdmOZva6mV0KFJnZdWZ2i5ndYWbNzex2M7sOuIQwI/cW7n6wuw+t4LbNzOapcUhuU4JTt04C/p6y7kng5Lj8BqHT7vuExOfvhCael8xsOqHfxmWx7GnATWb2LqF/zDUVHO9q4FYze5Xwqz7hn4SEYHpMkn4IjIidUGcQOiGnGgC8bGbvEZpSioEn3b2U0NTxvpndBDwc91VMSAw+TOO8nA78yUIn4+RapDuA08xsMqF5KrXWBgB3nwY8RvjH8iSh/TvVcYRk6+74uhP/hE4BzjCzxCzOx8b1FwHnm9lbhESrMq3i/j4gzPL+HOG8p83dnyP0g3ojnt8n2DppTJQrAcYDj8b3fTKwS2q5FL8BOsX35x3gwO3cj0gu25XwfzNhJPCou19GqE0dA/zF3W8AjiHUHi8nNAefB0x098sJTdQf1WEcksM0m7iIiOQsM+sFvOzu/ZPWXQW8HvvFPEq4kOEf7j7TzO4BzvdwFShmdj/hR10z4EF3P66u4pDcpgRHRETySkxqlhD6oj1BqKk9093LzexoQq35XOC/hCsLDwPWEK6KvKTivUpDowRHRETyipk96O7fzXYcktuU4IiIiEiDo07GIiIi0uAowREREZEGRwmOiIiINDhKcERERKTBUYIjIiIiDY4SHBEREWlwlOCIiIhIg6MER0RERBocJTgiIiLS4CjBySIze8nMzsx2HKnM7AMzOyADxzEzu8/MlpnZlPo+XjaY2Soz0+R8IiIZ1ugSHDObY2YHJz3+TvyC/UY240plZleZ2UYzK4u3j83sdjPbob6P7e67uvtLSXE8VE+H2hc4BChy96+nbjSz8Wa2OSYJK81supkdVU+x1At3b+vusyHMamxmv9nefZnZvmb2upmtMLOlZvaamY2su2hFRBqORpfgJDOz04A/AUe6+8s1fK6ZWX2fv8fcvR3QGTge6AFMzUSSkyF9gDnuvrqKMm+4e1ugIzAB+KuZdU4tZGZN6ynGnGBm7YFngNsIn4eewNXA+jo+TpO63J+ISLY02gTHzM4Gfgcc5u6vJ63fO/5KXm5m7yQ31cQmpWvN7DVgDdA/rvt1/DVdZmbPmVlhOvtLl7tvdPcPgHFACfDTpP0fFWs2lsfj7Ja0bY6ZXWxm78Zf/Y+ZWcu4rdDMnonPW2pmryYStkQtl5mNBS4HxsValHfM7FtmNjXlXP7UzP5RyXne0cyejseYZWZnxfVnAPcAo+K+r67mHJQD9wKtCOf9ADObZ2Y/N7OFwH1xv2fF4yyNx90xKRY3sx+a2WwzW2JmNyUnqWb2fTObGWv0/mNmfVKee66ZfRK3/8nMLG7bycxejud4iZk9lvK8neLn7RTgkvh6/2lmPzOzJ1PO121mdksFp2DneB4edffN7r7W3Z9z93eTnntWjL/MzGaY2fC4fnD8nC630Px4TNJz7jez/zOzf5nZauBAM2thZjeb2RdmtsjM7jSzVrF8pZ8bEZGc4u6N6gbMAZ4EFgG7p2zrCZQCRxCSv0Pi465x+0vAF8CuQFOgWVz3KeELqFV8fEMN9ndmJXFeBTxUwfprgDfj8nBgMbAX0AQ4Lb6+FkmvdQqwI+FX/0zg3LjteuDO+BqaAfvx1ezyc4CDK4oDaAEsBQYnrXsbOKGS1/EycAfQEhhGSNDGxG3jgf9V8V5t2R7P90VAGdABOADYBNwYY2oFHAQsieelBaG245Wk/TnwYjwXvYGPE+cfOA6YBQyOx7oCeD3luc8QapJ6x9cxNm57FPhFfI9bAvumPG+nuHw/8JukbTsAq4GOSa9xMbBnBeeiffzsTAQOBzqlbP8W8CUwEjBgJ0INWbP4ui4HmsdzVAYMSoppBbBPUvy3AE/H89QO+CdwfXWfG9100023XLo11l9ehwCTgfdS1p8K/Mvd/+Xu5e7+PFBMSFAS7nf3D9x9k7tvjOvuc/eP3X0t8FfCF3m6+6up+YQvHoCzgD+7+5seftVPJDRZ7J1U/o/uPt/dlxK+qBKxbSR8wfbxUEP0qrt7dQd39/XAY/G1YWa7An0JX/5bMbNehH42P3f3de4+nVBr890avN69zWw5sBA4CTje3VfEbeXAle6+Pp77U4B73X1ajPMyQg1R36T93ejuS939C8IX+Ulx/TmEL/GZ7r4JuA4YllyLQ0hcl8fnvsjW57IPsGN8nf9L54W5+wLgFUJyAjAWWOLuUysou5JwLh24GyiJNVTdY5Ezgd+6+1sezHL3zwmfhbYx9g3u/l/Ce3VS0u6fcvfXPNSSrSd8rn4cz1NZPBffSXqtNf7ciIhkWmNNcM4l1Ljck2hmiPoA34rV78vjF+u+hH/oCXMr2N/CpOU1hC+UdPdXUz0JNSiJ/f80Zf+9CDU21cV2E+GX/XOxyebSGsQwETg5nrvvAn+NCUWqHYHEl2TC5/E1pGuyu3d090J339vdX0jaVuLu61KO93nigbuvItR6JB8v+f37nK/OVR/g1qTzuJRQE5L83MrO5SWx7JTYBPT9Gry+icRkMd4/WFnBmHyNd/ciYGiMPdGc1YtQk5hqR2BuTF4SUt+D5HPSFWhN6OuVOBf/juuhdp8bEZGMaawJzmJgDKF6/Y6k9XOBB+MXauLWxt1vSCpTk1+r6ewvbbGvw9HAq0n7vzZl/63d/dHq9uXuZe7+U3fvH/f5EzMbU1HRCp47GdhAOH8nU/mX8nygs5m1S1rXm9CUUhdSY5tPSFQAMLM2QJeU4/VKiWV+XJ4LnJNyLlt5Uv+sSoNwX+juZ7n7joSaoDvMbKc04gX4B7CbmQ0FjgIeru548ZgfEpqXhibFP6CCovOBXin9ZFLfg+S4lgBrgV2TzkMHDx29a/K5ERHJqsaa4ODu8wn9Ecaa2R/i6oeAo83sMDNrYmYtY2fWou08TJ3sz8yamdlgQl+PHsDv46a7gXPNbC8L2pjZkSkJRWX7PCp2fjVgJbA53lItAvpW0JH0AeB2YFNlTTLuPhd4Hbg+vvbdgDNI80t8OzwCnG5mw8ysBaFp5U13n5NU5mdm1ik2n11EaG6D0K/kstjkhpl1MLNvkQYLHa8T7+kyQsJQ2bncakycWAP1RIx9Smz+qugYu1jozF0UH/ciNDNNjkXuAS42sz3jZ2Gn2Lz2JqGfzyXxc3QAITH5S0XHiTU9dwN/MLNu8Vg9zeywuJzu50ZEJKsabYIDW76ADwJONLPr4+NjCR0ySwi/in/Gdp6nOtjfODNbBSwndPosJXRAnR/3X0zoL3E74Yt1FqFjbjoGAi8Aq4A3gDs8jn2T4vF4X2pm05LWP0ioPai0SSU6idBHZz7wd0KfmefTjLFG3H0S8EtCJ/IFhBqN76QUewqYCkwH/h/h0nPc/e+EDst/MbOVwPuEzrzpGAm8Gd+rp4GL3P2zCspNAIbEpp/kq84mAl+j6nNZRuhM/ma82mlyjPGnMf7HgWsJiVIZoWaos7tvAI6Jr2UJocbye7EGqDI/J3yWJsdz8QIwKG5L93MjIpJViatmRGokXja8GBju7p9kO550mJkDA919VrZjSWZmvYEPgR6xM7GIiNRSo67BkVo5D3grX5KbXBWb/n4C/EXJjYhI3WnQo79K/TCzOYSrho7Lcih5LXaCXkS4qmlslsMREWlQ1EQlIiIiDY6aqERERKTBabBNVIWFhd63b99shyHSqE2dOnWJu3etvqSISN1qsAlO3759KS4uznYYIo2amX1efSkRkbqnJioRERFpcJTgiIiISIOjBEdEREQanAbbB0ckHRs3bmTevHmsW7eu+sJSqZYtW1JUVESzZs2yHYqICKAEp/aeegruuQduvhkGDaq+vOSUefPm0a5dO/r27UuYP1Jqyt0pLS1l3rx59OvXL9vhiIgASnBqZ/16OPNMWLIEVq2CF1/MdkRSQ+vWrVNyU0tmRpcuXSgpKcl2KCIiW6gPTm28/npIboqK4NVXYfHibEck20HJTe3pHIpIrlGCUxv//S80aRJqcTZvVg2OiIhIjsibBMfMfmxmH5jZ+2b2qJm1zHZMvPMO9OkDo0dDQQG88kq2I5I8U1payrBhwxg2bBg9evSgZ8+eWx5v2LChVvu+9957WbhwYa1jLC8v57DDDqNjx44cd5zmVxWR/JAXfXDMrCfwQ2CIu681s78C3wHuz2pgM2aE5qnOncP9Bx9kNRzJP126dGH69OkAXHXVVbRt25aLL754qzLujrtTUFCz3yP33nsvw4cPp0ePHrWK0cy45JJLKCsr4/7776/VvkREMiVvanAIyVgrM2sKtAbmZzWaNWtg9mzo1Ss87t8/PC4vz2pY0jDMmjWLoUOHcu655zJ8+HAWLFjAs88+y6hRoxg+fDjjxo1j9erVAFx55ZWMHDlyS3l357HHHmP69OmMGzeu1rVBZsaYMWNo27ZtXb08EZF6lxc1OO7+pZndDHwBrAWec/fnUsuZ2dnA2QC9e/eu36A+/hjcIXGcfv1CR+OVK6Fjx/o9ttSLH/0IYmVKnRk2DG65ZfueO2PGDO677z7uvPNOFi9ezA033MCkSZNo3bo11157LbfeeiuXX345F110EVdffTXuzsknn8y///1vxo0bx2233cbtt9/OsGHDttn3DTfcwF/+8pdt1h944IH84Q9/2L6ARURySF4kOGbWCTgW6AcsBx43s1Pd/aHkcu5+F3AXwIgRI7xeg5ozJ9zvsEO479cvdDSeORNGjarXQ0vjMGDAAEaOHAnA66+/zowZMxg9ejQAGzZsYN999wVg0qRJ3HTTTaxbt44lS5aw5557cvjhh1e570svvZRLL720fl+AiEgW5UWCAxwMfObuJQBm9jdgNPBQlc+qT3PnhvtEgtOzZ7j/9FMlOHlqe2ta6kubNm22LLs7Y8eO5cEHH9yqzJo1a7jggguYNm0aPXv25IorrkhrVGbV4IhIQ5cvCc4XwN5m1prQRDUGKM5qRHPnQvPmUFgYHu+4Y7j/5JPsxSQN1ujRo7nooouYPXs2/fv3Z/Xq1cyfP5/OnTtTUFBAYWEhZWVlPPnkk5xyyikAtGvXjrKysgr3pxocEWno8iLBcfc3zewJYBqwCXib2BSVNXPnQteu0KJFeNylS0h4Ek1XInWoe/fuTJgwgXHjxm3pMHzddddx5JFHctpppzF06FD69OnDXnvtteU5p59+OmeeeSatWrViypQpNG/efLuPP2rUKGbNmsWqVasoKipi4sSJjBkzptavS0Skvph7/XZVyZYRI0Z4cXE9VvLsuy+UlcGECZAYxfWb34QBA8IAgJIXZs6cyeDBg7MdRoNQ0bk0s6nuPiJLIYlII5ZPl4nnlkQNTvIQ9TvuCF9+Ga6uEhERkaxRgrM9Nm8OiUyi/03CDjvAwoWwcWN24hIRERFACc72KS0NSU7nzluv7949jIOzcmV24hIRERFACc72KSkJ96kD+nXtGu7nzctsPCIiIrIVJTjbY/HicF9ZgpMYI0dERESyQgnO9kgkOKlNVN26hXslOCIiIlmlBGd7JBKcLl22Xp/odKwER9JUWlrKsGHDGDZsGD169KBnz55bHtdmgkwIs4kvXLiwTuKcMGECAwcOZODAgTz0UPYGEBcRSVdeDPSXc0pKoKAAOnXaen2HDmGwv/nZnehc8keXLl2YHmf4vOqqq2jbti0XX3zxVmXcHXenoKBmv0fuvfdehg8fTo8ePWoV45IlS7juuuuYOnUqmzdvZsSIERx99NF06NChVvsVEalPqsHZHosXh2SmWbOt15uFWpw6+tUsjdesWbMYOnQo5557LsOHD2fBggU8++yzjBo1iuHDhzNu3DhWr14NwJVXXsnIkSO3lHd3HnvsMaZPn864ceNqXRv07LPPMnbsWDp27EiXLl046KCDeO655+rqpYqI1AvV4GyPxYtDB+OmFZy+rl1h0aLMxyS196MfQaxNqTPDhm33LJ4zZszgvvvu484772Tx4sXccMMNTJo0idatW3Pttddy6623cvnll3PRRRdx9dVX4+6cfPLJ/Pvf/2bcuHHcdttt3H777QwbNmybfddkss0vv/ySXr16bXlcVFTEl19+uV2vSUQkU5TgbI9EDU6TJttu69oVZs4M4+RUtF0kTQMGDGDkyJEAvP7668yYMYPRo0cDsGHDBvbdd18AJk2axE033cS6detYsmQJe+65J4cffniV+67JZJvujiWP2A3bPBYRyTVKcLbHmdvLtQAAIABJREFU4sVhWoaK/sl37QqvvRZGM1aCk1+2s6alvrRp02bLsrszduxYHnzwwa3KrFmzhgsuuIBp06bRs2dPrrjiCtatW1ftvmtSg1NUVMTkyZO3PJ43bx5Dhw6t6csREcko9cHZHiUl246Bk9C1K6xdG0Y7Fqkjo0eP5uWXX2b27NkArF69mk8++YS1a9dSUFBAYWEhZWVlPPnkk1ue065dO8rKyirc36WXXsr06dO3uaUmNwBjx47l2WefZfny5ZSWljJp0iQOPfTQ+nmhIiJ1RDU4NbVhAyxfHpqoKpI8mnHPnpmLSxq07t27M2HCBMaNG7elw/B1113HkUceyWmnncbQoUPp06cPe+2115bnnH766Zx55pm0atWKKVOm0Lx58+06dteuXbnssssYMSJMCn7NNdfoCioRyXnmDXTm6xEjRnhxcXHd73jBgtA8dcEFMH78ttvfegvOOw+eeAJOOKHujy91aubMmQwePDjbYTQIFZ1LM5vq7iOyFJKINGJqoqqppUvDfbt2FW9PDPanq0xERESyRglOTS1bFu4rS3ASTVRKcERERLJGCU5NVVeD06YNtGih0YzzSENt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "aipw.run_diagnostics()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", "### Confidence Intervals\n", "To obtain correct confidence intervals, we can alternatively use a bootstrap procedure. For the risk ratio, you will have to use the bootstrap procedure at this point" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "rd_results = []\n", "rr_results = []\n", - "for i in range(1000):\n", - " dfs = dfcc.sample(n=dfcc.shape[0],replace=True)\n", - " s = AIPTW(dfs,exposure='art',outcome='dead')\n", - " s.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", - " print_results=False)\n", - " s.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", - " print_results=False)\n", - " s.fit()\n", - " rd_results.append(s.risk_difference)\n", - " rr_results.append(s.risk_ratio)\n" + "\n", + "with warnings.catch_warnings(): # Ignoring warnings for censored data\n", + " warnings.simplefilter(\"ignore\")\n", + " for i in range(1000):\n", + " dfs = df.sample(n=df.shape[0],replace=True)\n", + " s = AIPTW(dfs, exposure='art', outcome='dead')\n", + " s.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + " s.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + " s.fit()\n", + " rr_results.append(s.risk_ratio)\n" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Risk Difference\n", - "95% LCL: -0.1509851344521508\n", - "95% UCL: -0.0110355428287738\n", "\n", "Risk Ratio\n", - "95% LCL 0.22863038765514382\n", - "95% UCL 0.9333096825456121\n" + "95% LCL 0.23567701608882596\n", + "95% UCL 0.9536056438173632\n" ] } ], "source": [ - "print('Risk Difference')\n", - "print('95% LCL:', np.percentile(rd_results, q=2.5))\n", - "print('95% UCL:', np.percentile(rd_results, q=97.5))\n", "print('\\nRisk Ratio')\n", "print('95% LCL', np.percentile(rr_results, q=2.5))\n", "print('95% UCL', np.percentile(rr_results, q=97.5))" @@ -299,7 +373,55 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Under the counterfactual of everyone receiving treatment with ART, the risk of all-cause mortality was 8.5% points lower (95% CL: -0.152, -0.008) than the counterfactual where no one had been treated. As you can see, the confidence intervals from the bootstrap and the influence curves are approximately the same\n", + "Once I know the influence curve confidence intervals for the risk ratio, I will add them.\n", + "\n", + "## Missing Data\n", + "For censored observations (missing outcome data), an optional function can be used to generate inverse probability weights to account for informative censoring by observed variables. Below is an example where we assume censoring is non-informative conditional on the available confounders." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Augmented Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: dead No. Missing Outcome: 30 \n", + "g-Model: Logistic Q-model: Logistic \n", + "Missing model: Logistic \n", + "======================================================================\n", + "Risk Difference: -0.087\n", + "95.0% two-sided CI: (-0.16 , -0.015)\n", + "----------------------------------------------------------------------\n", + "Risk Ratio: 0.547\n", + "95.0% two-sided CI: -\n", + "======================================================================\n" + ] + } + ], + "source": [ + "aipw = AIPTW(df, exposure='art', outcome='dead')\n", + "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "aipw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "aipw.fit()\n", + "aipw.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our results are fairly similar to the previous results. This indicates (given the assumption that our model is sufficiently flexible) that there doesn't seem to be substantial informative censoring by the observed variables.\n", "\n", "# Conclusion\n", "In this tutorial, I introduced the concept of doubly-robust estimators and detailed augmented-IPTW. I demonstrated estimation with `AIPTW` using *zEpid* and how to obtain confidence intervals. Please view other tutorials for information on other functionality within *zEpid*\n", diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/6_AIPTW_continuous.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/6_AIPTW_continuous.ipynb index 54f1026..7e5e1e8 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/6_AIPTW_continuous.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/6_AIPTW_continuous.ipynb @@ -14,9 +14,7 @@ "where $\\widehat{\\Pr}(A=a|L)$ comes from the IPTW model and $\\hat{E}[Y|A=a,L]$ comes from the g-formula\n", "\n", "## Continuous Outcome example\n", - "To motivate our example, we will use a simulated data set included with *zEpid*. In the data set, we have a cohort of HIV-positive individuals. We are interested in the sample average treatment effect of antiretroviral therapy (ART) on CD4 T-cell count at 45-weeks. We will ignore competing risks and their implications in this example. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, baseline CD4 T-cell count, and detectable viral load. \n", - "\n", - "In this tutorial, we will focus on a complete case analysis. Therefore, we will drop the `dead` column and all the missing data in `cd4_wk45`. This will leave 460 observations with no missing data" + "To motivate our example, we will use a simulated data set included with *zEpid*. In the data set, we have a cohort of HIV-positive individuals. We are interested in the sample average treatment effect of antiretroviral therapy (ART) on CD4 T-cell count at 45-weeks. We will ignore competing risks and their implications in this example. Based on substantive background knowledge, we believe that the treated and untreated population are exchangeable based gender, age, baseline CD4 T-cell count, and detectable viral load. " ] }, { @@ -29,22 +27,22 @@ "output_type": "stream", "text": [ "\n", - "Int64Index: 460 entries, 1 to 546\n", + "Int64Index: 547 entries, 0 to 546\n", "Data columns (total 12 columns):\n", - "id 460 non-null int64\n", - "male 460 non-null int64\n", - "age0 460 non-null int64\n", - "cd40 460 non-null int64\n", - "dvl0 460 non-null int64\n", - "art 460 non-null int64\n", - "t 460 non-null float64\n", + "id 547 non-null int64\n", + "male 547 non-null int64\n", + "age0 547 non-null int64\n", + "cd40 547 non-null int64\n", + "dvl0 547 non-null int64\n", + "art 547 non-null int64\n", + "t 547 non-null float64\n", "cd4_wk45 460 non-null float64\n", - "age_rs1 460 non-null float64\n", - "age_rs2 460 non-null float64\n", - "cd4_rs1 460 non-null float64\n", - "cd4_rs2 460 non-null float64\n", + "age_rs1 547 non-null float64\n", + "age_rs2 547 non-null float64\n", + "cd4_rs1 547 non-null float64\n", + "cd4_rs2 547 non-null float64\n", "dtypes: float64(6), int64(6)\n", - "memory usage: 46.7 KB\n" + "memory usage: 55.6 KB\n" ] } ], @@ -59,8 +57,8 @@ "df[['age_rs1', 'age_rs2']] = spline(df, 'age0', n_knots=3, term=2, restricted=True)\n", "df[['cd4_rs1', 'cd4_rs2']] = spline(df, 'cd40', n_knots=3, term=2, restricted=True)\n", "\n", - "dfcc = df.drop(columns=['dead']).dropna()\n", - "dfcc.info()" + "df = df.drop(columns=['dead'])\n", + "df.info()" ] }, { @@ -76,7 +74,7 @@ "metadata": {}, "outputs": [], "source": [ - "aipw = AIPTW(dfcc, exposure='art', outcome='cd4_wk45')" + "aipw = AIPTW(df, exposure='art', outcome='cd4_wk45')" ] }, { @@ -98,19 +96,30 @@ "======================================================================\n", " Augmented Inverse Probability of Treatment Weights \n", "======================================================================\n", - "Treatment: art No. Observations: 460 \n", - "Outcome: cd4_wk45 \n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", "g-Model: Logistic Q-model: gaussian \n", + "Missing model: None \n", "======================================================================\n", - "Average Treatment Effect: 225.138\n", - "95.0% two-sided CI: (118.647 , 331.629)\n", + "Average Treatment Effect: 215.88\n", + "95.0% two-sided CI: (112.643 , 319.117)\n", "======================================================================\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\AIPW.py:337: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] } ], "source": [ - "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", - "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", "aipw.fit()\n", "aipw.summary()" ] @@ -137,19 +146,107 @@ "======================================================================\n", " Augmented Inverse Probability of Treatment Weights \n", "======================================================================\n", - "Treatment: art No. Observations: 460 \n", - "Outcome: cd4_wk45 \n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", + "g-Model: Logistic Q-model: poisson \n", + "Missing model: None \n", + "======================================================================\n", + "Average Treatment Effect: 216.015\n", + "95.0% two-sided CI: (112.9 , 319.13)\n", + "======================================================================\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\AIPW.py:337: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] + } + ], + "source": [ + "aipw = AIPTW(df, exposure='art', outcome='cd4_wk45')\n", + "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " continuous_distribution='poisson', print_results=False)\n", + "aipw.fit()\n", + "aipw.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Missing Data\n", + "Similarly, missing outcome data is easy to correct for using inverse probability of censoring weights. Below is an example using `missing_model()`" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Augmented Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", + "g-Model: Logistic Q-model: gaussian \n", + "Missing model: Logistic \n", + "======================================================================\n", + "Average Treatment Effect: 236.936\n", + "95.0% two-sided CI: (108.251 , 365.621)\n", + "======================================================================\n" + ] + } + ], + "source": [ + "aipw = AIPTW(df, exposure='art', outcome='cd4_wk45')\n", + "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "aipw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", + "aipw.fit()\n", + "aipw.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Augmented Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: art No. Observations: 547 \n", + "Outcome: cd4_wk45 No. Missing Outcome: 87 \n", "g-Model: Logistic Q-model: poisson \n", + "Missing model: Logistic \n", "======================================================================\n", - "Average Treatment Effect: 225.234\n", - "95.0% two-sided CI: (118.663 , 331.805)\n", + "Average Treatment Effect: 236.905\n", + "95.0% two-sided CI: (108.107 , 365.703)\n", "======================================================================\n" ] } ], "source": [ - "aipw = AIPTW(dfcc, exposure='art', outcome='cd4_wk45')\n", - "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', print_results=False)\n", + "aipw = AIPTW(df, exposure='art', outcome='cd4_wk45')\n", + "aipw.exposure_model('male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0', \n", + " print_results=False)\n", + "aipw.missing_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", + " print_results=False)\n", "aipw.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", " continuous_distribution='poisson', print_results=False)\n", "aipw.fit()\n", diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/7_TMLE_intro.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/7_TMLE_intro.ipynb index edc5022..e829f84 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/7_TMLE_intro.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/7_TMLE_intro.ipynb @@ -135,8 +135,8 @@ "Model Family: Binomial Df Model: 8\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -206.06\n", - "Date: Wed, 24 Apr 2019 Deviance: 412.12\n", - "Time: 13:36:11 Pearson chi2: 510.\n", + "Date: Wed, 17 Jul 2019 Deviance: 412.12\n", + "Time: 12:50:40 Pearson chi2: 510.\n", "No. Iterations: 5 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -188,8 +188,8 @@ "Model Family: Binomial Df Model: 8\n", "Link Function: logit Scale: 1.0000\n", "Method: IRLS Log-Likelihood: -204.76\n", - "Date: Wed, 24 Apr 2019 Deviance: 409.52\n", - "Time: 13:36:11 Pearson chi2: 511.\n", + "Date: Wed, 17 Jul 2019 Deviance: 409.52\n", + "Time: 12:50:40 Pearson chi2: 511.\n", "No. Iterations: 6 Covariance Type: nonrobust\n", "==============================================================================\n", " coef std err z P>|z| [0.025 0.975]\n", @@ -278,6 +278,83 @@ "\n", "As seen, `TMLE` estimates other common target parameters of interest by default. Confidence intervals are estimated using efficient influence curves. At this point in my understanding, I cannot tell you much about influence curves or the theory underlying them. However, they rely on projection of higher dimensional functions on lower dimensional space (think 2D shadows of 3D objects)\n", "\n", + "## Diagnostics\n", + "As of now, TMLE uses the same diagnostics as IPTW and g-formula for the g-model and the Q-model. These can all be conducted by the `run_diagnostics()` function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\tExposure Model Diagnostics\n", + "======================================================================\n", + " Weight Positivity Diagnostics\n", + "======================================================================\n", + "If the mean of the weights is far from either the min or max, this may\n", + " indicate the model is incorrect or positivity is violated\n", + "Average weight should be 2\n", + "----------------------------------------------------------------------\n", + "Mean weight: 1.987\n", + "Standard Deviation: 2.34\n", + "Minimum weight: 1.06\n", + "Maximum weight: 16.897\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "male -0.090820 -0.027344\n", + "age0 0.058884 0.014169\n", + "age_rs1 0.077012 0.056879\n", + "age_rs2 0.076090 0.050557\n", + "cd40 -0.017001 -0.491828\n", + "cd4_rs1 -0.010696 -0.485529\n", + "cd4_rs2 -0.001716 -0.283501\n", + "dvl0 0.042609 -0.010167\n", + "======================================================================\n", + "\n", + "\tOutcome Model Diagnostics\n", + "======================================================================\n", + " Natural Course Prediction Accuracy\n", + "======================================================================\n", + "Outcome model accuracy summary statistics. Defined as the predicted\n", + "outcome value minus the observed outcome value\n", + "----------------------------------------------------------------------\n", + "Mean value: 0.0\n", + "Standard Deviation: 0.349\n", + "Minimum value: -0.974\n", + "Maximum value: 0.696\n", + "======================================================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tml.run_diagnostics()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Both models appear to have adequate performance (there are no obvious problems).\n", + "\n", "## Tuning Parameters\n", "Luckily in our example, we don't have an issue estimating the predicted probabilities of ART. This can possibly cause issues in the estimation procedure. One solution is to \"trim\" the estimated propensity scores. This is commonly used in propensity score and IPTW methods. By using the `bound` optional argument in the `exposure_model()` function, we can restrict the predicted probabilities. \n", "\n", @@ -286,7 +363,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -339,9 +416,19 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:237: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:387: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -393,6 +480,7 @@ "tmle.outcome_model('art + male + age0 + age_rs1 + age_rs2 + cd40 + cd4_rs1 + cd4_rs2 + dvl0',\n", " custom_model=sl, print_results=False) # Step 3) Specify outcome model\n", "tmle.fit() # Step 4) Targeting step\n", + "\n", "tmle.summary()" ] }, diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/8_TMLE_continuous.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/8_TMLE_continuous.ipynb index f5283a5..f0122e7 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/8_TMLE_continuous.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/8_TMLE_continuous.ipynb @@ -76,16 +76,6 @@ "execution_count": 2, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:676: RuntimeWarning: invalid value encountered in less\n", - " v = np.where(np.less(v, bound), bound, v)\n", - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:677: RuntimeWarning: invalid value encountered in greater\n", - " v = np.where(np.greater(v, 1-bound), 1-bound, v)\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -102,6 +92,16 @@ "95.0% two-sided CI: (111.858 , 315.91)\n", "======================================================================\n" ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:804: RuntimeWarning: invalid value encountered in less\n", + " v = np.where(np.less(v, bound), bound, v)\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:805: RuntimeWarning: invalid value encountered in greater\n", + " v = np.where(np.greater(v, 1-bound), 1-bound, v)\n" + ] } ], "source": [ @@ -149,9 +149,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:676: RuntimeWarning: invalid value encountered in less\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:804: RuntimeWarning: invalid value encountered in less\n", " v = np.where(np.less(v, bound), bound, v)\n", - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:677: RuntimeWarning: invalid value encountered in greater\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:805: RuntimeWarning: invalid value encountered in greater\n", " v = np.where(np.greater(v, 1-bound), 1-bound, v)\n" ] } @@ -185,10 +185,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:676: RuntimeWarning: invalid value encountered in less\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:804: RuntimeWarning: invalid value encountered in less\n", " v = np.where(np.less(v, bound), bound, v)\n", - "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:677: RuntimeWarning: invalid value encountered in greater\n", - " v = np.where(np.greater(v, 1-bound), 1-bound, v)\n" + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:805: RuntimeWarning: invalid value encountered in greater\n", + " v = np.where(np.greater(v, 1-bound), 1-bound, v)\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:237: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:300: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:387: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n" ] }, { diff --git a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/9_TMLE_missing_data.ipynb b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/9_TMLE_missing_data.ipynb index 47499e0..86c1fe7 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/9_TMLE_missing_data.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/1_time-fixed-treatments/9_TMLE_missing_data.ipynb @@ -124,6 +124,18 @@ "execution_count": 3, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:237: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:300: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n", + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\doublyrobust\\TMLE.py:387: UserWarning: TMLE can result in confidence intervals below nominal coverage when used with machine learning algorithms. TMLE will no longer support custom machine learning models in v0.9.0\n", + " warnings.warn(\"TMLE can result in confidence intervals below nominal coverage when used with \"\n" + ] + }, { "name": "stdout", "output_type": "stream", diff --git a/3_Epidemiology_Analysis/c_causal_inference/3-generalizability-transportability/1-generalizability.ipynb b/3_Epidemiology_Analysis/c_causal_inference/3-generalizability-transportability/1-generalizability.ipynb index 544d7ff..4b1df5c 100644 --- a/3_Epidemiology_Analysis/c_causal_inference/3-generalizability-transportability/1-generalizability.ipynb +++ b/3_Epidemiology_Analysis/c_causal_inference/3-generalizability-transportability/1-generalizability.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -72,7 +72,7 @@ "+-----+-------+-------+ \n", "\n", "======================================================================\n", - " Risk Ratio \n", + " Risk Difference \n", "======================================================================\n", " Risk SD(Risk) Risk_LCL Risk_UCL\n", "Ref:0 0.222 0.027 0.168 0.275\n", @@ -117,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "scrolled": true }, @@ -159,15 +159,15 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "95% LCL: -0.044\n", - "95% UCL: 0.152\n" + "95% LCL: -0.05\n", + "95% UCL: 0.158\n" ] } ], @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -252,15 +252,15 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "95% LCL: -0.048\n", - "95% UCL: 0.161\n" + "95% LCL: -0.051\n", + "95% UCL: 0.165\n" ] } ], @@ -302,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 7, "metadata": { "scrolled": true }, @@ -345,15 +345,15 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "95% LCL: -0.054\n", - "95% UCL: 0.164\n" + "95% LCL: -0.051\n", + "95% UCL: 0.161\n" ] } ], @@ -396,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -436,21 +436,21 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "# IPTW estimation\n", - "iptw = IPTW(df, treatment='A', stabilized=True)\n", - "iptw.regression_models('L + W + W_sq', print_results=False)\n", - "iptw.fit()\n", - "\n", - "df['iptw'] = iptw.Weight" + "# Subsetting observed study sample\n", + "dfs = df.loc[df['S'] == 1].copy()\n", + "ipt = IPTW(dfs, treatment='A', outcome='Y')\n", + "ipt.treatment_model('L + W + W_sq', print_results=False)\n", + "dfs['iptw'] = ipt.iptw\n", + "df = pd.concat([dfs, df.loc[df['S'] == 0]], ignore_index=True, sort=False)" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -464,8 +464,8 @@ "Outcome: Y Target Observations: 2514 \n", "Target estimate: Generalize \n", "----------------------------------------------------------------------\n", - "Risk Difference: 0.0177\n", - "Risk Ratio: 1.0504\n", + "Risk Difference: 0.0506\n", + "Risk Ratio: 1.1572\n", "======================================================================\n" ] } @@ -490,15 +490,15 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "95% LCL: -0.08\n", - "95% UCL: 0.115\n" + "95% LCL: -0.066\n", + "95% UCL: 0.167\n" ] } ], @@ -517,10 +517,11 @@ " dfb = pd.concat([dfs, dft])\n", " \n", " # Step 4: Estimate IPTW\n", - " iptw = IPTW(dfb, treatment='A', stabilized=True)\n", - " iptw.regression_models('L + W + W_sq', print_results=False)\n", - " iptw.fit()\n", - " dfb['iptw'] = iptw.Weight\n", + " dfse = dfb.loc[dfb['S'] == 1].copy()\n", + " ipt = IPTW(dfse, treatment='A', outcome='Y')\n", + " ipt.treatment_model('L + W + W_sq', print_results=False)\n", + " dfse['iptw'] = ipt.iptw\n", + " dfb = pd.concat([dfse, dfb.loc[dfb['S'] == 0]], ignore_index=True, sort=False)\n", "\n", " # Step 5: Estimate IPSW\n", " ipsw = IPSW(dfb, exposure='A', outcome='Y', selection='S', \n", @@ -546,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -560,15 +561,15 @@ "Outcome: Y Target Observations: 2514 \n", "Target estimate: Generalize \n", "----------------------------------------------------------------------\n", - "Risk Difference: 0.0567\n", - "Risk Ratio: 1.1806\n", + "Risk Difference: 0.0419\n", + "Risk Ratio: 1.1353\n", "======================================================================\n" ] } ], "source": [ "gtf = GTransportFormula(df, exposure='A', outcome='Y', selection='S', generalize=True)\n", - "gtf.outcome_model('A + L + W + W_sq + A:L + A:W + A:W_sq', print_results=False)\n", + "gtf.outcome_model('A + L + W + W_sq + A:L', print_results=False)\n", "gtf.fit()\n", "gtf.summary()" ] @@ -583,7 +584,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -597,8 +598,8 @@ "Outcome: Y Target Observations: 2514 \n", "Target estimate: Generalize \n", "----------------------------------------------------------------------\n", - "Risk Difference: 0.0545\n", - "Risk Ratio: 1.1722\n", + "Risk Difference: 0.0426\n", + "Risk Ratio: 1.1369\n", "======================================================================\n" ] } @@ -607,22 +608,22 @@ "aipw = AIPSW(df, exposure='A', outcome='Y', selection='S', \n", " generalize=True, weights='iptw')\n", "aipw.weight_model('L + W + W_sq + L:W + L:W_sq', print_results=False)\n", - "aipw.outcome_model('A + L + W + W_sq + A:L + A:W + A:W_sq', print_results=False)\n", + "aipw.outcome_model('A + L + W + W_sq + A:L', print_results=False)\n", "aipw.fit()\n", "aipw.summary()" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "95% LCL: -0.087\n", - "95% UCL: 0.123\n" + "95% LCL: -0.093\n", + "95% UCL: 0.195\n" ] } ], @@ -641,16 +642,17 @@ " dfb = pd.concat([dfs, dft])\n", " \n", " # Step 4: Estimate IPTW\n", - " iptw = IPTW(dfb, treatment='A', stabilized=True)\n", - " iptw.regression_models('L + W + W_sq', print_results=False)\n", - " iptw.fit()\n", - " dfb['iptw'] = iptw.Weight\n", + " dfse = dfb.loc[dfb['S'] == 1].copy()\n", + " ipt = IPTW(dfse, treatment='A', outcome='Y')\n", + " ipt.treatment_model('L + W + W_sq', print_results=False)\n", + " dfse['iptw'] = ipt.iptw\n", + " dfb = pd.concat([dfse, dfb.loc[dfb['S'] == 0]], ignore_index=True, sort=False)\n", "\n", " # Step 5: Estimate IPSW\n", " aipw = AIPSW(dfb, exposure='A', outcome='Y', selection='S', \n", " generalize=True, weights='iptw')\n", " aipw.weight_model('L + W + W_sq + L:W + L:W_sq', print_results=False)\n", - " aipw.outcome_model('A + L + W + W_sq + A:L + A:W + A:W_sq', print_results=False)\n", + " aipw.outcome_model('A + L + W + W_sq + A:L', print_results=False)\n", " aipw.fit()\n", "\n", " rd_bs.append(aipw.risk_difference)\n", diff --git a/4_Hernan-Robins/Chapter-12.ipynb b/4_Hernan-Robins/Chapter-12.ipynb index bc7214c..f7827da 100644 --- a/4_Hernan-Robins/Chapter-12.ipynb +++ b/4_Hernan-Robins/Chapter-12.ipynb @@ -27,11 +27,10 @@ "\n", "import numpy as np\n", "import pandas as pd\n", - "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf\n", "import matplotlib.pyplot as plt\n", "\n", - "from zepid.causal.ipw import IPTW, IPMW\n", + "from zepid.causal.ipw import IPTW\n", "\n", "df = pd.read_csv('Data/nhefs.csv')\n", "df.dropna(subset=['sex', 'age', 'race', 'wt82', 'ht', \n", @@ -43,6 +42,11 @@ "df['no_exercise'] = np.where(df['exercise'] == 2, 1, 0)\n", "df['university'] = np.where(df['education'] == 5, 1, 0)\n", "\n", + "# Subsetting only variables of interest\n", + "df = df[['wt82_71', 'qsmk', 'sex', 'age', 'race', 'wt71', 'wt82', 'ht', \n", + " 'school', 'alcoholpy', 'smokeintensity', 'smokeyrs', \n", + " 'education', 'exercise', 'active', 'death']]\n", + "\n", "# creating quadratic terms\n", "for col in ['age', 'wt71', 'smokeintensity', 'smokeyrs']:\n", " df[col+'_sq'] = df[col] * df[col]\n", @@ -139,12 +143,19 @@ "metadata": {}, "outputs": [], "source": [ - "# initialize the IPTW and estimate weights\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=False)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + "# initialize the IPTW class\n", + "iptw = IPTW(df, treatment='qsmk', outcome='wt82_71')\n", + "\n", + "# Estimating weights\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", " 'C(active) + wt71 + wt71_sq', \n", - " print_results=False)\n", + " stabilized=False, print_results=False)\n", + "\n", + "# Specifying the marginal structural model\n", + "iptw.marginal_structural_model('qsmk')\n", + "\n", + "# Calculating estimates\n", "iptw.fit()" ] }, @@ -153,42 +164,51 @@ "execution_count": 5, "metadata": {}, "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAEKCAYAAACMvSXbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmcFNW9/vHPI6ioEBc07ggacQNkVVEhuAQT1yhEVLy5xMT9amJi1IRrXBK3i7+oqAlRrhKjxiQq93o1EeKCIKAIOLJIolExQRNFXBFRkO/vjzoNzdAz0zN0T8/yvF+veU11ddWpUzU6X05Vz3kUEZiZmbV2G1S6A2ZmZk2BC6KZmRkuiGZmZoALopmZGeCCaGZmBrggmpmZAS6IZmZmgAuimZkZ4IJoZmYGQNtKd8CKt/XWW0fnzp0r3Y06LVmyBICOHTtWuCdmZjBr1qx3ImKburZzQWxGOnfuzMyZMyvdjTqNGzcOgBEjRlS0H2ZmAJJeL2Y73zI1MzPDBdHMzAxwQTQzMwP8DNHMrKRWrFjBokWLWL58eaW70uq0a9eOnXbaiQ033LBB+7sgmpmV0KJFi+jQoQOdO3dGUqW702pEBEuWLGHRokV06dKlQW34lmkzc8890LkzbLBB9v2eeyrdIysJ/2BbjOXLl9OxY0cXw0YmiY4dO67XyNwjxGbk3XfhjDNg2bLs9euvZ68Bhg+vXL9sPd1zj3+wLYyLYWWs73X3CLGEJP2PpFmS5ks6I637tqSXJE2SdLukW9L6bSQ9IOm59HVQXe2/8caa35k5y5bByJHlOBtrNCNH+gdr1gS4IJbWaRHRB+gLnC9pR+BS4ADgK8CeedveBNwQEf2AIcDYQg1KOkPSTEkzP/us8EH//vfSnYBVQE0/QP9grYEWLlxIt27d1lp3+eWXc/3115fleAceeGCd23Tu3Jl33nlnnfWTJk1i2rRp9T5mTe2tDxfE0jpf0gvAM8DOwL8BT0XEuxGxAvhD3raHA7dIqgIeAr4gqUP1BiPitojoGxF9N9qo8EE7dSrxWVjjqukH6B9s69ACnh83pKDlNLQgloMLYolIGkRW5PpHxL7A88Bfa9llg7Rtz/S1Y0R8VNsxdtwRNt107XWbbgpXXbVeXbdKu+oq/2Bbq9zz49dfh4g1z4/LWBQHDRrExRdfzH777UfXrl2ZMmUKAEceeSRz5swBoFevXlx55ZUAXHrppYwdm93AGjVqFP369aNHjx5cdtllq9ts3749AKtWreKcc85hn3324eijj+bII4/k/vvvX73dzTffTO/evenevTt/+ctfWLhwIWPGjOGGG26gZ8+eTJkyhcWLFzNkyBD69etHv379mDp1KpDNkTx48GB69erFmWeeSUSU/Nq4IJbO5sB7EbFM0p5kt0k3Bb4saUtJbclujeZMBP4j90JSz7oOsNVWcNttsMsuIGXfb7vNn7to9oYP9w+2tarQ8+OVK1cyY8YMbrzxRq644goABg4cyJQpU/jwww9p27bt6kL09NNPM2DAACZOnMjLL7/MjBkzqKqqYtasWUyePHmtdh988EEWLlzI3LlzGTt2LNOnT1/r/a233prZs2dz9tlnc/3119O5c2fOOussLrjgAqqqqhgwYADf/e53ueCCC3juued44IEH+M53vgPAFVdcwcEHH8zzzz/Psccey9/L8EjBnzItnUeBsyTNIRsZPgO8AVwNPAu8CbwIfJC2Px+4NW3fFpgMnFXXQYYP9+/JFsk/2NapTM+Pa/q0ZW79CSecAECfPn1YuHAhAAMGDGD06NF06dKFo446ij//+c8sW7aMhQsXsscee3D77bczceJEevXqBcDSpUt5+eWXGThw4Or2n376ab7xjW+wwQYbsN1223HIIYesdfz84z744IMF+/jYY4/x4osvrn794Ycf8tFHHzF58uTV+xx11FFsueWW9b0sdXJBLJGI+BT4WvX1kmZGxG1phDiebGRIRLwDDGvcXppZk9KpU3abtND69dCxY0fee++9tda9++67q/9gfeONNwagTZs2rFy5EoB+/foxc+ZMdt11V77yla/wzjvvcPvtt9OnTx8g+8P3H/3oR5x55pk1Hreu25iFjlvdqlWrmD59Optsssk675X7z1l8y7T8Lk8fnJkHvAb8T4X7Y2ZNRZmeH7dv357tt9+exx9/HMiK4aOPPsrBBx9c4z4bbbQRO++8M7///e854IADGDBgANdffz0DBgwA4IgjjuCOO+5g6dKlALzxxhu8/fbba7Vx8MEH88ADD7Bq1SreeustJk2aVGdfO3TowEcfrfn4xODBg7nllltWv66qqgKyW7r3pGerf/rTn9Yp+KXgglhmEXFh+tDMnhFxfpTjSbCZ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "name": "stdout", "output_type": "stream", "text": [ "======================================================================\n", - " Inverse Probability of Treatment Weight Diagnostics\n", + " Weight Positivity Diagnostics\n", "======================================================================\n", "If the mean of the weights is far from either the min or max, this may\n", " indicate the model is incorrect or positivity is violated\n", "Average weight should be\n", "\t1.0 for stabilized\n", "\t2.0 for unstabilized\n", - "Standard deviation can help in IPTW model selection\n", "----------------------------------------------------------------------\n", - "Mean weight: 2.0\n", - "Standard Deviation: 1.47\n", - "Minimum weight: 1.05\n", + "Mean weight: 1.996\n", + "Standard Deviation: 1.474\n", + "Minimum weight: 1.054\n", "Maximum weight: 16.7\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "C(education) 0.034662 0.195789\n", + "C(exercise) 0.028025 0.056850\n", + "C(active) 0.017729 0.074001\n", + "sex -0.002854 -0.160263\n", + "race 0.006644 -0.177051\n", + "age 0.005852 0.281981\n", + "age_sq 0.006272 0.281608\n", + "smokeintensity -0.024837 -0.216675\n", + "smokeintensity_sq -0.028577 -0.128894\n", + "smokeyrs -0.003515 0.158918\n", + "smokeyrs_sq -0.000546 0.178899\n", + "wt71 -0.009064 0.133216\n", + "wt71_sq -0.008373 0.127241\n", "======================================================================\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -197,24 +217,16 @@ ], "source": [ "# diagnostics for weights\n", - "iptw.plot_love()\n", - "plt.show()\n", - "\n", - "iptw.positivity(decimal=2)\n", - "\n", - "iptw.plot_kde()\n", - "plt.show()" + "iptw.run_diagnostics()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "I ran some additional diagnostics in addition to what is discussed in the book. I created a Love plot, which assesses covariate balance measured by standardized mean differences. According to this measure, we have good balance by our measured covariates and weights. \n", - "\n", - "The IPTW diagnostics match what is described in the book results. The average weight of 2 (as expected) with an min of 1.05 and max of 16.7. \n", + "The distribution of the weights match what is described in the book results. The average weight of 2 (as expected) with an min of 1.05 and max of 16.7. \n", "\n", - "Lastly, the density plot suggests there is a fair bit of overlap of propensity scores between treated and untreated. However, there are few treated individuals at the low end of the distribution and few untreated individuals at the higher end of the distribution" + "I ran some additional diagnostics in addition to what is discussed in the book. I created a Love plot, which assesses covariate balance measured by standardized mean differences. According to this measure, we have good balance by our measured covariates and weights. The density plot suggests there is a fair bit of overlap of propensity scores between treated and untreated. However, there are few treated individuals at the low end of the distribution and few untreated individuals at the higher end of the distribution." ] }, { @@ -226,33 +238,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average Causal Effect\n", - "--------------------------------------\n", - "E[Y|A=1] - E[Y|A=0] = 3.44\n", - "95% CL: 2.41, 4.47\n", - "--------------------------------------\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1566 \n", + "Outcome: wt82_71 No. Missing Outcome: 0 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1.78 0.22 1.34 2.22\n", + "qsmk 3.44 0.53 2.41 4.47\n", + "======================================================================\n" ] } ], "source": [ - "# estimation of marginal structural model\n", - "m = smf.gee('wt82_71 ~ qsmk', df.index, df, weights=iptw.Weight).fit()\n", - "beta = m.params[1]\n", - "lcl = np.round(m.conf_int()[0]['qsmk'], 2)\n", - "ucl = np.round(m.conf_int()[1]['qsmk'], 2)\n", - "\n", - "print('Average Causal Effect')\n", - "print('--------------------------------------')\n", - "print('E[Y|A=1] - E[Y|A=0] = ', np.round(beta, 2))\n", - "print('95% CL: '+str(lcl)+', '+str(ucl))\n", - "print('--------------------------------------')" + "# ATE estimate\n", + "iptw.summary(decimal=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Similar to discussed in the book, we calculate confidence intervals using GEE with an independent correlation structure. This results in valid (but slightly conservative) confidence intervals. For further details see the book.\n", + "Similar to discussed in the book, `IPTW` calculates confidence intervals using GEE with an independent correlation structure. This results in valid (but slightly conservative) confidence intervals. For further details see the book.\n", "\n", "## Section 12.3\n", "We will now repeat the analysis described in the previous section but using stabilized weights instead. Weights will now be constructed via the following formula\n", @@ -268,12 +280,19 @@ "metadata": {}, "outputs": [], "source": [ - "# initialize the IPTW and estimate weights\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=True)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + "# initialize the IPTW class\n", + "iptw = IPTW(df, treatment='qsmk', outcome='wt82_71')\n", + "\n", + "# Estimating weights\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", " 'C(active) + wt71 + wt71_sq', \n", - " print_results=False)\n", + " stabilized=True, print_results=False)\n", + "\n", + "# Specifying the marginal structural model\n", + "iptw.marginal_structural_model('qsmk')\n", + "\n", + "# Calculating estimates\n", "iptw.fit()" ] }, @@ -282,42 +301,51 @@ "execution_count": 8, "metadata": {}, "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAEKCAYAAACMvSXbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmcFNW9/vHPI6ioEBc07ggacQNkVVEhuAQT1yhEVLy5xMT9amJi1IRrXBK3i7+oqAlRrhKjxiQq93o1EeKCIKAIOLJIolExQRNFXBFRkO/vjzoNzdAz0zN0T8/yvF+veU11ddWpUzU6X05Vz3kUEZiZmbV2G1S6A2ZmZk2BC6KZmRkuiGZmZoALopmZGeCCaGZmBrggmpmZAS6IZmZmgAuimZkZ4IJoZmYGQNtKd8CKt/XWW0fnzp0r3Y06LVmyBICOHTtWuCdmZjBr1qx3ImKburZzQWxGOnfuzMyZMyvdjTqNGzcOgBEjRlS0H2ZmAJJeL2Y73zI1MzPDBdHMzAxwQTQzMwP8DNHMrKRWrFjBokWLWL58eaW70uq0a9eOnXbaiQ033LBB+7sgmpmV0KJFi+jQoQOdO3dGUqW702pEBEuWLGHRokV06dKlQW34lmkzc8890LkzbLBB9v2eeyrdIysJ/2BbjOXLl9OxY0cXw0YmiY4dO67XyNwjxGbk3XfhjDNg2bLs9euvZ68Bhg+vXL9sPd1zj3+wLYyLYWWs73X3CLGEJP2PpFmS5ks6I637tqSXJE2SdLukW9L6bSQ9IOm59HVQXe2/8caa35k5y5bByJHlOBtrNCNH+gdr1gS4IJbWaRHRB+gLnC9pR+BS4ADgK8CeedveBNwQEf2AIcDYQg1KOkPSTEkzP/us8EH//vfSnYBVQE0/QP9grYEWLlxIt27d1lp3+eWXc/3115fleAceeGCd23Tu3Jl33nlnnfWTJk1i2rRp9T5mTe2tDxfE0jpf0gvAM8DOwL8BT0XEuxGxAvhD3raHA7dIqgIeAr4gqUP1BiPitojoGxF9N9qo8EE7dSrxWVjjqukH6B9s69ACnh83pKDlNLQgloMLYolIGkRW5PpHxL7A88Bfa9llg7Rtz/S1Y0R8VNsxdtwRNt107XWbbgpXXbVeXbdKu+oq/2Bbq9zz49dfh4g1z4/LWBQHDRrExRdfzH777UfXrl2ZMmUKAEceeSRz5swBoFevXlx55ZUAXHrppYwdm93AGjVqFP369aNHjx5cdtllq9ts3749AKtWreKcc85hn3324eijj+bII4/k/vvvX73dzTffTO/evenevTt/+ctfWLhwIWPGjOGGG26gZ8+eTJkyhcWLFzNkyBD69etHv379mDp1KpDNkTx48GB69erFmWeeSUSU/Nq4IJbO5sB7EbFM0p5kt0k3Bb4saUtJbclujeZMBP4j90JSz7oOsNVWcNttsMsuIGXfb7vNn7to9oYP9w+2tarQ8+OVK1cyY8YMbrzxRq644goABg4cyJQpU/jwww9p27bt6kL09NNPM2DAACZOnMjLL7/MjBkzqKqqYtasWUyePHmtdh988EEWLlzI3LlzGTt2LNOnT1/r/a233prZs2dz9tlnc/3119O5c2fOOussLrjgAqqqqhgwYADf/e53ueCCC3juued44IEH+M53vgPAFVdcwcEHH8zzzz/Psccey9/L8EjBnzItnUeBsyTNIRsZPgO8AVwNPAu8CbwIfJC2Px+4NW3fFpgMnFXXQYYP9+/JFsk/2NapTM+Pa/q0ZW79CSecAECfPn1YuHAhAAMGDGD06NF06dKFo446ij//+c8sW7aMhQsXsscee3D77bczceJEevXqBcDSpUt5+eWXGThw4Or2n376ab7xjW+wwQYbsN1223HIIYesdfz84z744IMF+/jYY4/x4osvrn794Ycf8tFHHzF58uTV+xx11FFsueWW9b0sdXJBLJGI+BT4WvX1kmZGxG1phDiebGRIRLwDDGvcXppZk9KpU3abtND69dCxY0fee++9tda9++67q/9gfeONNwagTZs2rFy5EoB+/foxc+ZMdt11V77yla/wzjvvcPvtt9OnTx8g+8P3H/3oR5x55pk1Hreu25iFjlvdqlWrmD59Optsssk675X7z1l8y7T8Lk8fnJkHvAb8T4X7Y2ZNRZmeH7dv357tt9+exx9/HMiK4aOPPsrBBx9c4z4bbbQRO++8M7///e854IADGDBgANdffz0DBgwA4IgjjuCOO+5g6dKlALzxxhu8/fbba7Vx8MEH88ADD7Bq1SreeustJk2aVGdfO3TowEcfrfn4xODBg7nllltWv66qqgKyW7r3pGerf/rTn9Yp+KXgglhmEXFh+tDMnhFxfpTjSbCZNU9lfH5811138bOf/YyePXty6KGHctlll7HbbrvVus+AAQPYdttt2XTTTRkwYACLFi1aXRAHDx7MKaecQv/+/enevTtDhw5dq5ABDBkyhJ122olu3bpx5plnsv/++7P55pvXesxjjjmG8ePHr/5QzejRo5k5cyY9evRg7733ZsyYMQBcdtllTJ48md69ezNx4kQ6leFT2PLv5+ajb9++4YBgs6ZtwYIF7LXXXpXuRsUsXbqU9u3bs2TJEvbbbz+mTp3Kdttt12jHL3T9Jc2KiL517etniGZmVjJHH30077//Pp999hmXXnppoxbD9eWCaGZmJVPMc8Omys8QzczMcEE0MzMDXBDNzMwAF8RmpwXMA2yF+AdrVnEuiM1ILiC4EecBtsZQgQmereW64IILuPHGG1e/PuKII1bPBwrwgx/8gJ///Oc17t9SopwawgUxKVe4r6QvS6pKX89L6qDMLZJelPSIpD9KGlpXHx0Q3EI5ILhVK/XNgQMPPHB1UVq1ahXvvPMO8+fPX/3+tGnTOOigmvPIW0qUU0O4IK5R8nDf5ELg3IjoCQwAPgGOB/YAugOnAzX+k8wBwa2AA4JbrXLcHDjooINWF6X58+fTrVs3OnTowHvvvcenn37KggUL6NWrV4uPcmoIF8Q1Sh7um0wFfi7pfGCLiFgJDAR+GxGfR8SbwBM1dcoBwa2AA4JbrXLcHNhhhx1o27Ytf//735k2bRr9+/dn//33Z/r06aunRJs0aVKLj3JqCP9hPuuE+y6TNIkswqmm+Zdy4b6f1NV2RFwr6RHgSOAZSYfn3qpvP3fcEd56a+3/gZwj2wJcdVU2LPAPttUp182B3Chx2rRpfP/73+eNN95g2rRpbL755hx44IFMnDixxUc5NYRHiJmyhftK2i0i5kbEdcBMsluvk4GTJLWRtD1wSE3753NAcAvlgOBWq1w3B3LPEefOnUu3bt044IADmD59+urnh7kop6qqKqqqqvjb3/7Gt7/97bXaKGWUU+44b7zxBh06ZDfTyh3l1BAuiJlHgbYprPenrBvu+xjrhvv2lTRH0ovUHuz7PUnz0u3YT4A/keUivgzMBX4JPFVsR4cPh4ULYdWq7Lt/Z7YQ/sG2SmVKf+Kggw7i4YcfZquttqJNmzZstdVWvP/++0yfPp3+/fu3iiinhvAtU8ob7hsR59XwVv4Ic1x9+2xmzV/u3z0jR2a3STt1yorh+v57qHv37rzzzjuccsopa61bunQpW2+9NYMHD2bBggX0798fyD5Ic/fdd/PFL35x9fZDhgzh8ccfp1u3bnTt2rXoKKehQ4fyv//7v9x8882MHj2ac889lx49erBy5UoGDhzImDFjuOyyyzj55JPp3bs3X/7yl8sS5dQQjn+qhaTryZ4ttiMrht8tR55hKogPR8T9tW3n+Cezpq8lxT9VOsqpIRz/VCYRcWGx20r6FvDdaqunRsS5RRxnRD27ZmZWds05yqkhXBBLJCLuBO6sdD/MzEqlOUc5NYQ/VGNmVmJ+FFUZ63vdXRDNzEqoXbt2LFmyxEWxkUUES5YsoV27dg1uw7dMzcxKaKeddmLRokUsXry40l1pddq1a8dOO+3U4P1dEM3MSmjDDTekS5cule6GNUCzu2UqaZCkh+uxfV9Jo+vYZgtJ56x/79Zp91hJl6Tlr0vau9THqM6xeiXiC2nW6rT4EWJEzCSbMq02WwDnAL8o8bEfIpv8G+DrwMNkM96URW7m/NyUmLmZ88ETn9SLL6RZq1T2EaKkzVLm3wtpCrNhkhZKulrS9BRt1FvSBEmvSDor7SdJo9I+cyWtMzOMpH4pY3DXdJw7Uj7h85KOS9usHlFKujxtM0nSqymBAuBaYLeUWTgqbfvD1NYcSVekdZ0lLUjZiPMlTZS0SXrv/JRvOEfSfWndiJR7eCBwLDAqHWM3SbPzzmN3SbPW91o7Vq9EfCHNWqXGGCF+FXgzIo4CkLQ5cB3wj4joL+kGYBxwENmMMPOBMcAJQE9gX2Br4DlJq/NJUpG5GTguIv4u6WrgiYg4TdIWwAxJjxXoz55kk2l3AP4q6ZfAJUC3lFmIpMHA7sB+gICHJA0E/p7WnxwRp0v6Pdmk33enNrpExKfp+KtFxDRJD5E3G42kDyT1jIgq4FvpGqxDWVjxGUCd0xs5Vq9EfCHNWqXGeIY4Fzhc0nWSBkREboLsh/LefzYiPoqIxcDyVFAOZk1m4FtkE2D3S/vsBdwGHBMRud9Sg4FLUkbhJLLiWqiCPBIRn6b5SN8Gti2wzeD09Twwm6yI7p7eey0VMYBZQOe0PAe4R9KpQOGp39c2FviWpDZk86LeW2ij/DzEbbbZptYGHatXIr6QZq1S2QtiRLwE9CErfNdI+kl669P0fVXecu51W7KRWU3+CSwHeuWtEzAkInqmr04RsaDAvvnH+pzCo2QB1+S19aWI+O869j8KuDWd66w0IXhtHiCbUPxoYFZELKlj+zqVa+b8VscX0qxVaoxniDsAyyLibuB6oHeRu04GhqXMwG3IUuZnpPfeJytAV6dwX4AJwHlKIVuSelG8j8huoeZMAE6T1D61taOkLxbcM3t/A2DniHgSuIjsQzrtaztGRCxPx/klJZryzbF6JeILadYqNcYzxO5kHyZZBawAzgZqTXVIxgP9gRfI0uUvioh/pQBfIuItSccAf5J0GlmO4Y3AnFQUF5KNvuoUEUskTZU0D/hTRPxQ0l7A9FRflwKnko0IC2kD3J2ejwq4ISLe19oBmPcBt6cP8gyNiFeAe8ielU4spp/FGD7cv7dLwhfSrNVx/FMFSboQ2DwiLi1me8c/mZnVn+OfmjhJ44HdgEMr3RczM3NBrJiIOL7SfTAzszWa3dRtZmZm5eCCaGZmhguimZkZ4IJoZmYGuCCamZkBLohmZmZAEy2IkraTdF+Kg3pR0h8ldZW0fX3CgVNb4yQNLXH/vidp07zXf6yecFGPtq6XVLa/RXTObQG+KGZWQJP7O8Q07dp44NcRcVJa15MsleJ04PYKdi/ne2SRT8sAIuLI9WjrZrJzeqIE/VqLc24L8EUxsxo0xRHiIcCKiBiTWxERVRExhSx78FGANOn3qLwQ3zPTeqVQ3hclPQKsnpRbWTDx1mm5r6RJabm9pDuVBRHPkTQkrf+lsgDj+XkhwecDOwBPSnqyQLvfVxZqPE/S99K6GoOFI+J1oKOk7Up9IZ1zW4AvipnVoCkWxG5kOYNrkdQFeC8icvFL3wY+iIh+ZDmJp6dtjgf2IJtU/HTgwCKOeWlqq3tE9GDNaG1kmv+uB/BlST0iYjTwJnBIRBxSrY99yMJ+9wcOSH3KpW7sDtwaEfuQpXUMydt1NllA8joknZGK8szFixcXcSprOOe2AF8UM6tBUyyINdkeyK8Ig4FvpkDgZ4GOZEVnIGuChd+kuFuRh5NlGQIQEe+lxRMlzSYLCt4H2LuOdg4GxkfExxGxFHgQGJDeqylYGLKg4h0KNVifgODqnHNbgC+KmdWgKRbE+WQhu9V9ArTLey3gvLwQ3y4RkYtRqinCYyVrzrl6W2vtk0abFwKHpVHjI9X2KaS2UOPagonbkZ1fSTnntgBfFDOrQVMsiE8AG0s6PbdCUj/gC6w9qpoAnC1pw7RNV0mbkQULn5SeMW5P9kwyZyFrim3+LcuJwH/kHW/LdLyPgQ8kbUuWbp9TPVA4ZzLwdUmbpr4cD0wp4py7AvOK2K5enHNbgC+KmdWgyX3KNCJC0vHAjZIuAZaTFbLvAa9I+lJE/A0YS1YgZ6dPpi4Gvk72CdVDgbnAS8BTec1fAfy3pB+T3WbN+RlwawoI/hy4IiIelPQ82Yj1VWBq3va3kQUT/zP/OWJEzJY0DpiRVo2NiOclda7pfFNB/xJQlqBD59wW4ItiZgU0q4DgVCj7RMR/VrovpZLOqXcxIcEOCDYzq78WGRAcEeMldax0P0qsLfD/Kt0JM7PWrlkVRICIGFvpPpRSRPyh0n0wM7Om+aEaMzOzRueCaGZmhguimZkZ4IJoZmYGuCCamZkBraAgShpU3wzFpmrWLMf3Fc2Zh2ZWT83uzy6aAkltI2JlJY7t+L4iOPPQzBqgyY0QJW0m6RFJL6RMwWEpb/BqSdNTFFJvSRMkvSLprLSfUj7ivJRrOKxA2/0kPS9p13ScO1Ke4vOSjkvbTEmBxLl9pkrqIelySbdJmgjcJWkfSTMkVaUMxd2LPZ+0/quS/iLpaUmj6zOKdXxfHZx5aGYN0OQKIvBV4M2I2DciupECgYF/RER/ssmyxwFDyTIHr0zvnwD0BPYli3MalSb3BkDSgcAY4LiIeBUYCTyR8hQPSdtvRjZH6oi0T1dg44iYk5rpk/Y/BTgLuCkiegJ9gUXFno+kdsDtwDFk8VA1hgPn5yHmr3d8Xy2ceWhmDdAUC+Jc4HBJ10kaEBEfpPUP5b3/bER8FBGLgeWStiDLIszlIL5FNql3v7TPXmQTch8TEbnfioOBS1Ke4iSyCKZOwB+Ao9Ok26eRFd+chyIiF9M0HfixpIuBXfLWF3M+e5LlI74c2WSyd9d0MfLzEPPXO76vFs48NLMGaHIFMSJeIhuJzQWukfST9FYuT3AVa2cLriJ7FlpbFuE/yVIzeuWtEzAkL0+xU0QsiIhlwJ+B44ATgXvz9vk4r5/3AseS5RhOkHRoPc+nwbOqO76vDs48NLMGaHIFUdIOwLKIuBu4Huhd5K6TgWEpB3EbYCBrYpjeB44CrpY0KK2bAJyXoqOQlF8sxwKjgeci4t0a+rkr8GpEjCYbvfaox/n8Begiabe02clFnqPj+4rhzEMza4Cm+CnT7mTP81YBK4CzgfuL2G880B94gWz0dVFE/EvSngAR8ZakY8hyDE8DfgrcCMxJRXEhcHTadpakD4E7azneMOBUSSuAf7HmWWad5xMRyyWdATwi6R3gaaBbXSfYpw80g/SnpsGZh2ZWT80qD7GxpFHdJGDPiFjVCMcbBFwYEUfXtp3zEM3M6q/YPMQmd8u00iR9E3gWGNkYxdDMzJqGpnjLtKIi4i7grvrul4KLHy/w1mERsaSOY04iG5GamVmFuCCWSCp6Pevc0MzMmiTfMjUzM8MF0czMDHBBNDMzA1wQzczMABdEMzMzwAWxZFL8VNmvp3Nvi+CLZGYN4D+7WA+SOgN/Ap4kmzauSlJ3YBPg/oi4LG3XD7gJ2IxsYvLDgGXAtcAgYGPg1oj4VW3He/dd597WyeHAZtZAHiGuvz2AuyKiF/CDND1QD+DLKVh4I+B3wHcjIpfV+AnwbeCDlMfYDzhdUpfaDvTGG869rZPDgc2sgTxCXH+vR8QzafnENGl3W2B7YG+yicb/GRHPAUTEhwCSBgM9JA1N+24O7A68lt94ai8NcfoU7IBzb/M4HNjMGsgFcf19DJBGdxcC/SLiPUnjyEKHReHsQwHnRcSE2hqPiNvIwo3ZeOO+8dln627j3Ns8nTplt0kLrTczq4VvmZbOF8iK4weStgW+ltb/BdghPUdEUgdJbcnyGM+WtGFa31XSZrUdYMcdnXtbJ4cDm1kDuSCWSES8ADwPzAfuAKam9Z+RZSfeLOkF4M9kI8exwIvAbEnzgF9Rx4h9q62ce1snhwObWQM5D7EZcR6imVn9OQ/RzMysHlwQzczMcEE0MzMDXBDNzMwAF0QzMzPABdHMzAxwQTQzMwNcEM3MzAAXxGZl7lxH/K3mzEMzKzEXxBKStJmkRyS9IGmepGGS+kh6StIsSRMkbS+praTnJA1K+10jqc7JNj/7DCLWRPy12hqQyzx8/XVfEDMrGRfE0voq8GZE7BsR3YBHgZuBoRHRh2yO06siYiUwAvilpK+k/a6oz4FadcSfMw/NrAwc/1Rac4HrJV0HPAy8B3QD/iwJoA3wT4CImC/pN8D/Af3TJODrqC0PsdVG/Dnz0MzKwAWxhCLiJUl9gCOBa8iSLeZHRP8adukOvA9sW0ubq/MQpb5rzcTeaiP+nHloZmXgW6YlJGkHYFlE3A1cD+wPbCOpf3p/Q0n7pOUTgI7AQGC0pC3qc6xWHfHnzEMzKwOPEEurOzBK0ipgBXA2sJKs4G1Odr1vlPQWcC1wWET8Q9ItwE3Av9fW+EYbwYoV2UDoqqtaccRf7sRHjsxuk7b6C2JmpeCCWEIRMQGYUOCtgQXWdc3bb3Qx7XfvDs0gDrFxDB/uAmhmJeVbpmZmZrggmpmZAS6IZmZmgAuimZkZ4IJoZmYGuCCamZkBLohmZmaAC6KZmRngglgUSYMkPVzpfpiZWfm4IFaIpHrPEvTuu87EBRwObGZl0SILYg1BvQslXS1puqSZknqnwN5XJJ2V9pOkUWmfuZKGFWi7n6TnJe2ajnNHCvt9XtJxaZspknrm7TNVUg9Jl0u6TdJE4C5J+0iaIalK0hxJu9d2Xq+/7kxchwObWbm0yIJI4aBegH+kKKYpwDhgKHAAcGV6/wSgJ7AvcDjZRN3b5xqVdCAwBjguIl4FRgJPREQ/4JC0/WbAWLIAYCR1BTaOiDmpmT5p/1OAs4CbIqIn0BdYVNtJrVq19utWmYnrcGAzK5OWWhDnAodLuk7SgIj4IK1/KO/9ZyPio4hYDCxP8UsHA7+NiM8j4i3gKaBf2mcvslzCYyIil0Q7GLhEUhUwCWgHdAL+ABwtaUPgNLLim/NQRHySlqcDP5Z0MbBL3vrVJJ2RRrQFp/VudZm4Dgc2szJpkQUxIl4iG4nNBa6R9JP01qfp+6q85dzrtoBqafafwHKgV946AUMiomf66hQRCyJiGVk48HHAicC9eft8nNfPe4FjgU+ACZIOLXAut0VE34joW6hTrS4Tt6YTbnUXwsxKrUUWxAJBvb2L3HUyMExSG0nbkMU2zUjvvQ8cBVwtaVBaNwE4T5LScfOL5VhgNPBcRLxbQz93BV5N8U8PAT1q69wG1X5arTIT1+HAZlYmLbIgkgX1zki3MkcCPytyv/HAHOAF4Angooj4V+7NdBv1GOBWSfsDPwU2BOZImpde57adBXwI3FnL8YYB81I/9wTuqq1zu+ySfUnZ99tua4WRgMOHZyfe6i+EmZWaIqLSfWiR0ih1ErBnRKyqY/Oi9O3bN2Y2g4TgcePGATBixIiK9sPMDEDSrJoeO+VrqSPEipL0TeBZYGSpiqGZmZVXvf843OoWEXdRx+1PMzNrWjxCNDMzwwXRzMwMcEE0MzMDXBDNzMwAF0QzMzPABbHkJP04b3mPlGSR+/pQ0vfSe9+QNF/SKkl1/n2MmZmVlwti6a0uiBHx19w8p2Rzqy4jmw0HYB5Zusbk+h6gRcYBtsiTMrPmxH+HWE+SLgKWR8RoSTcA+0bEoZIOA84GNklTsc2PiPz5xA4DXomI1wEiYkFqr17Hz8UB5hKQcnGA0IxnL2uRJ2VmzY1HiPU3GRiQlvsC7VPM08FkCRefpFFh9d/kJwG/Xd+Dt8g4wBZ5UmbW3Lgg1t8soI+kDmQRUtPJCuMAsuDhdUjaiCzm6Q/1PVh+HuLixYtbZhxgizwpM2tuXBDrKSJWAAuBbwHTyIrgIcBuwIIadvsaMDulZdT3eKvzELfZZpuWGQfYIk/KzJobF8SGmQxcmL5PAc4CqiKLDlmRbqHmO5kS3C6FFhoH2CJPysyaGxfEhpkCbA9MT6O+5ay5XXobWT7iPQCSNgW+AjyY34Ck4yUtAvoDj0iaUMyBW2QcYIs8KTNrbpyH2Iw4D9HMrP6ch2hmZlYPLohmZma4IJqZmQEuiGZmZoALopmZGeCCaGZmBrggmpmZAS6IZmZmgAtii9SsogWbVWfNrCVr9IIoaZCkh+uxfV9Jo+vYZgtJ56x/79Zp91hJl6Tlr0vau9THKLVctODrr0PEmmjBJllnmlVnzayla/IjxIiYGRHn17HZFkDJC2JEPBQR16aXXweafEFsVtGCzaqzZtbS1VkQJW0m6RFJL0iaJ2mYpIWSrpY0PWX19ZY0QdIrks5K+0nSqLTPXEnDCrTdT9LzknZNx7lD0nNp3XFpm9UjSkmXp20mSXpVUq5QXgvsJqlK0qi07Q9TW3MkXZHWdZa0QNLtkuZLmihpk/Te+ZJeTNvfl9aNkHSLpAPJ8gxHpWPsJml23nnsLmlWLdfw2ry2r0/ruqTr95ykn0paWsO+a+Uh1qVZRQs2q86aWUtXzAjxq8CbEbFvRHQDHk3r/xER/clSHsYBQ4EDgCvT+ycAPYF9gcPJisn2uUZTkRkDHBcRrwIjgScioh9ZvuAoSZsV6M+ewBHAfsBlKWrpEuCVlFT/Q0mDgd3TNj3JAn0Hpv13B26NiH2A94Ehaf0lQK+I6EEW57RaREwDHgJ+mI7xCvCBpJ5pk2+la7AOSVsBxwP7pLZ/lt66CfhlOt9/Fdo3HXutPMS6NKtowWbVWTNr6YopiHOBwyVdJ2lARHyQ1j+U9/6zEfFRRCwGlkvaAjgY+G1EfJ4ikp4C+qV99iKLSTomInLDgcHAJZKqgElAO6DQb8ZHIuLTiHgHeBvYtsA2g9PX88BssiK6e3rvtYioSsuzgM5peQ5wj6RTgZVFXJexwLcktQGGAffWsN2HZPFQYyWdAOTuER7EmozE3xRxvKI0q2jBZtVZM2vp6iyIEfES0Ies8F0j6SfprU/T91V5y7nXbQHV0uw/yYpEr7x1AoakEVjPiOgUEYUS6POP9Xk6VnUCrslr60sR8d917H8UcGs611mSCrWb7wFqeeI6AAAUWElEQVTga8DRwKyIWFJoo4hYSTZSfYDsOeSj+W/XcYx6a1bRgs2qs2bW0hXzDHEHYFlE3A1cD/Qusu3JwDBJbSRtAwwEZqT33icrQFdLGpTWTQDOk6R03F4U7yOgQ97rCcBpktqntnaU9MWadpa0AbBzRDwJXET2IZ32tR0jIpan4/wSuLOWttsDm0fEH4Hvkd3CBZgKnJSWS1oBhg+HhQth1arse5OuL82qs2bWkhVzy7Q7MCPdyhzJmmdgdRlPdhvyBeAJ4KKIWP2sLN1GPQa4VdL+wE+BDcnS5uel10VJo7Op6QM8oyJiItktzOmS5gL3s3bBrK4NcHfa9nnghoh4v9o29wE/TB/42S2tu4dslDexlrY7AA9LmkN22/iCtP67wLmSngM2L/ZczcysPBRR8rt2rYakC8lGf5eWoK2lEVF9VLqWvn37xsyZM9f3UGU3btw4AEaMGFHRfpiZAUiaFRF969qurudkVgNJ44HdgEMr3RczM1t/LogNFBHHV1+XimSXaqsvjogJRbRX6+jQzMzKywWxhAoVSTMzax6a/NRtZmZmjcEF0czMDBdEMzMzwAXRzMwMcEFci6Qf5y3vkZItcl8fSvpeeu8bKS1jlaQ6/7al1FpUpm6LOhkza878KdO1/Ri4GiAi/kqaZi1N4P0G2ew7APPI0jx+1dgdzGXq5mIEc5m60AxnPWtRJ2NmzV2rGiFKuiiXoSjpBklPpOXDJN0PbJJGg9WHKYeRxUu9DhARC1LBLOaY+0iakdqdI2n3tH6kpL9KekzSb9OsN3VqUZm6LepkzKy5a1UFkWzC8QFpuS/QPuUpHgz8GfgkpWNUH56cxJqopvo6C7gpInqmYy6S1Ce12YtspNmvpp2rBwS3qEzdFnUyZtbctbaCOIssLLgDWQzUdLIiNYAs6HgdkjYCjgX+0MBjTgd+LOliYJeI+CQdb3xELIuID1mTLbmO6gHBLSpTt0WdjJk1d62qIEbECmAhWcL9NLIieAjZnKSFshchyzycndI5GnLMe8kK6ifABEm5uU8bNKt6i8rUbVEnY2bNXasqiMlk4ML0fQrZLc2qyGI/VqRbqPlOpuG3S5G0K/BqRIwmGwn2SMc+XtImabR6TLHttahM3RZ1MmbW3LXGT5lOIct1nB4RH0tazprbpbeR5THOjojhkjYFvgKcmd+ApOOBm4FtgEckVUXEETUcbxhwqqQVwL+AKyPiXUm/A6qA16nhdm1Nhg9vQTWjRZ2MmTVnra4gRsTjZEHEuddd85YvBi7Oe70M6FigjfGs+ROMuo53DXBNgfVXAVcBSLq86BMwM7OyaI23TM3MzNbR6kaI5SLpCOC6aqtfKyYSKiIuL0unzMysaC6IJZJCgOsMAjYzs6bJt0zNzMxwQTQzMwNcEM3MzAAXRDMzM6CVFERJ20m6T9Irkl6U9EdJXSVtL+nhBrY5QtIOea/HStq7gW09JmnLhuwLjRAp6MxCM2sFWvynTCWJ7I/ofx0RJ6V1PYFtgdOB2xvY9AiyXMQ3ASLiO+vRzd8A55D+UL8+yh4p6MxCM2slWsMI8RBgRUSMya2IiKqImAIMAR4FkNRZ0hRJs9PXgbntU47iXEkvSLpW0lCylIx7Us7hJpImSeor6WxJ/5W37whJN6flU/OyEX+Vgochm+P05IacXNkjBZ1ZaGatRGsoiN3IYp/WIqkL8F5EfJpWvQ18JSJ6k80/Ojpt9zXg68D+EbEv8F8RcT8wExie8hM/yWv6frKMw5xhwO8k7ZWWD0rZiJ8DwwEi4j1gY0nrTBNXPQ+xurJHCjqz0MxaidZQEGuyPZBfYTYEbpc0lyz7MPc88HDgzjSvKRHxbm2NRsRi4FVJB6QCtwcwFTgM6AM8J6kqvd41b9e3gR0KtLdWHmJ1ZY8UdGahmbUSraEgzicrRNV9ArTLe30B8BawL9nt0I3SelH/7MLfASeS3ZIdn6KlRPYcs2f62qPalG3tUp/qpeyRgs4sNLNWojUUxCfIbkeenlshqR/wBaBz3nabA/+MiFXAvwG553sTgdNSFBSStkrrPwI61HDMB8lus55MVhwBHgeGSvpirh1Ju6RlAduRhRfXS9kjBZ1ZaGatRIv/lGlERMovvFHSJcByssLzPeAVSV+KiL8BvwAekPQN4Eng47T/o+lTqTMlfQb8EfgxMA4YI+kToH+1Y74n6UVg74iYkda9KOk/gYmSNgBWAOeS5SH2AZ6JiJUNOceyRwo6s9DMWgFld/Nap1Qo+0TEf1a4HzcBD6Wsxhr17ds3Zs6c2Ui9arhx48YBMGLEiIr2w8wMQNKsiOhb13YtfoRYm4gYX+iTnRUwr65iaGZm5dUaniHWKiLGNoE+NHRyADMzK5FWXxDNzMzABdHMzAxwQTQzMwNcEM3MzAAXRDMzM8AF0czMDGimBbEcgb8l6NNZkr7ZgP26SxpXyr7UO8/XAcBmZs3vD/PLGPhbzLHbRMTnhd7Lz1usj4iYK2knSZ0iYr0zleqd5+sAYDMzoHmOEIsN/G0jaZSk5yTNkXRmWn+8pMeU2V7SS2nEWdP2gyQ9KeleYG5a9820zQuSfpPWXS7pwrR8fhq5zpF0X1q3maQ7UvvPSzou75z+DzipFBen3nm+DgA2MwOa4QiR4gN/vw18EBH9JG0MTJU0MU3XNoRsYu2vApdFxL8knVFo+9TWfkC3iHhN0j7ASLKg33fy0i/yXQJ0iYhPJW2R1o0EnoiI09K6GZIei4iPycKGLwH+q8B5nQGcAdCpiAzCeuf5OgDYzAxoniPEmlQP/B0MfDOF8T4LdAR2T++dB/wI+DQiflvE9jMi4rW0fChwf0S8AzUGBs8B7pF0KpBLsBgMXJLan0SWf5ircAXDgVP7tQYEV1fvPF8HAJuZAc2zIBYb+CvgvLxA3i4RkRvx7QisArZNUUx1bf9xtXbrigg5Crg19XOWpLZpvyF57XeKiAVp+waFAxdS7zxfBwCbmQHNsyAWG/g7AThb0oZpm67pOV5b4E7gFGAB8P3ati9w/MeBE3MpGdVvmaYCu3NEPAlcBGwBtE/tn5c+FISkXnm7dQXm1fdCFFLvPF8HAJuZAc3wGWI9An/HkhXI2akILSZLsf8BMCUipqTbl89JeqSW7asff76kq4CnJH0OPA+MyNukDXC3pM3JRoU3RMT7kn4K3AjMSe0vBI5O+xwCPFKK6wMNyPN1ALCZWcsKCG4qgb/1kT7A8xRwcESsrG1bBwSbmdVfqwwIbkKBv/XRCbikrmJoZmbl1aIKIjSNwN/6iIiXgZcr3Q8zs9auOX6oxszMrORcEM3MzGhhH6pp6SR9BPy10v0o0tbAO5XuRJHc19JrLv0E97VcmlJfd4mIOmc2aXHPEFu4vxbzSammQNJM97X0mktfm0s/wX0tl+bU1xzfMjUzM8MF0czMDHBBbG5uq3QH6sF9LY/m0tfm0k9wX8ulOfUV8IdqzMzMAI8QzczMABfEJknSVyX9VdLf0gTm1d/fWNLv0vvPSurc+L1c3Ze6+jpQ0mxJKyUNrUQfUz/q6uf3Jb0oaY6kxyXtUol+pr7U1dezJM2VVCXpaUl7V6KfqS+19jVvu6GSQlLFPnVYxHUdIWlxuq5Vkr5TiX6mvtR5XSWdmP6bnS/p3sbuY+pDXdf0hrzr+ZKk9yvRz6JFhL+a0BdZWsYrwK7ARsALwN7VtjkHGJOWTwJ+14T72hnoAdwFDG3C/TwE2DQtn93Er+kX8paPBR5tqn1N23UAJgPPAH2bal/JUmtuqUT/GtDX3cmSdrZMr7/YFPtZbfvzgDsqfX1r+/IIsenZD/hbRLwaEZ8B9wHHVdvmOODXafl+4LBczmIjq7OvEbEwIuaQBTJXSjH9fDIilqWXzwA7NXIfc4rp64d5Lzej7sDqcinmv1WAnwL/RRbVVinF9rUpKKavpwO3RsR7ABHxdiP3Eep/TU8GftsoPWsgF8SmZ0fgH3mvF6V1BbeJLCXjA6ASKR/F9LUpqG8/vw38qaw9qllRfZV0rqRXyArN+Y3Ut+rq7GsKwt45Ih5uzI4VUOx/A0PSbfP7Je3cOF1bRzF97Qp0lTRV0jOSvtpovVuj6P+v0iOILmQB702WC2LTU2ikV30EUMw2jaGp9KMuRfdT0qlAX2BUWXtUs6L6GhG3RsRuwMVApfI/a+2rpA2AG8hCuSutmOv6f0DniOgBPMaauzCNrZi+tiW7bTqIbOQ1VtIWZe5XdfX5//8k4P6I+LyM/VlvLohNzyIg/1+mOwFv1rSNpLbA5sC7jdK7GvqRFOprU1BUPyUdDowEjo2ITxupb9XV95reB3y9rD2qWV197QB0AyZJWggcADxUoQ/W1HldI2JJ3s/9dqBPI/WtumJ/B/xvRKyIiNfI5jjevZH6l9+HYv9bPYkmfrsU8IdqmtoX2b/8XiW7vZB7UL1PtW3OZe0P1fy+qfY1b9txVO5DNcVc015kHxDYvRn8/HfPWz4GmNlU+1pt+0lU7kM1xVzX7fOWjweeacJ9/Srw67S8Ndmty45NrZ9puz2AhaS/e2/KXxXvgL8K/FDgSOCl9At6ZFp3JdnIBaAd8Afgb8AMYNcm3Nd+ZP+S/BhYAsxvov18DHgLqEpfDzXha3oTMD/188nailCl+1pt24oVxCKv6zXpur6QruueTbivAn4OvAjMBU5qiv1Mry8Hrq3UtazPl2eqMTMzw88QzczMABdEMzMzwAXRzMwMcEE0MzMDXBDNzMwAF0Rr5SQdn1IY9sxbN0jSek81JmlcXQkf6VgH1rPdTSXdkxIv5qXEi/aStpB0zvr1eq3jdJY0bz3buFzShWn5yjT5wfr2a2kN6z9PqQrzJb2QEkw2SO/1lTQ6LW8s6bG07TBJA9I+VZI2Wd/+WfPVttIdMKuwk4GnySY4uLwCxx8ELAWm1WOf7wJvRUR3AEl7ACvI/kD7HOAXJe5jUSS1iVqm5oqIn5S5C59ERM/Uly8C95LN4nRZRMwEZqbtegEb5m07Brg+Iu4s5iBpIn1FRCUnrLcy8AjRWi1J7YGDyCbzPqna21+QND7lzY2RtIGkNmnUNy+Nzi5I7fRMEyzPSftsWeBYCyVtnZb7SpqkLMfyLOCCNDoZIGkbSQ9Iei59HVSg69sDb+ReRMRfI5ty7Fpgt9TWqDRqfFxZHuVcScel43eWtEDS7WlkNDE3MpLUJ42uppPNiETePlNSW7Nzo9o0wn0y5fHNTetGpoy8x8hmKcm1MU5ZLmLfvIy8uZIivb+bpEclzUrH2jOt7yJperoePy3mZxtZ+sMZwH8oM0jSw6lQ3g30TMc/EzgR+Imke9LxfpiONUfSFdWu2S+A2cDOkganfs2W9If031PuZ31F3nXPnUd7SXemdXMkDUnrC7ZjFVDpmQH85a9KfQGnAv+dlqcBvdPyILKool3JMt/+DAwlm9vyz3n7b5G+zwG+nJavBG5My+NI09WRTV21dVruC0xKy5cDF+a1eS9wcFruBCwo0O+ewNvAdOBnpKncyLIn5+Vt15aUnUg2evwb2QwnnYGVQM/03u+BUwucy6hce8CmQLu0vDtpurh0rT4GuqTXfcgK46bAF9IxL6x+PfL6OAoYlZYfzzuX/YEn0vJDwDfT8rnA0hp+nuusB94Dtk39fDivzw/nbZP/cxoM3Jau0wbAw8DAdM1WAQfkXc/JwGbp9cXAT/J+1uel5XOAsWn5OtJ/G+n1lrW146/G//ItU2vNTgZuTMv3pdez0+sZEfEqgKTfAgeT/cLeVdLNwCPAREmbkxXGp9J+vyabVq+hDgf21pp4yy9I6hARH+VWRESVpF3JfnkfDjwnqT/wSbW2BFwtaSDZL/MdyYoDwGsRUZWWZwGdC5zLb4CvpeUNgVsk9QQ+J4sfypkR2QTTAAOA8ZGyJSU9VNOJSjoR6A0MTqOiA4E/5J37xun7QcCQvD5dV1ObhQ5Tj20hu6aDycJ3AdqT/QPg78DrEfFMWn8AsDcwNfV3I7J/oOQ8mL7PAk5Iy4eTdyciIt6TdHQd7VgjckG0VklSR+BQoFu6ZdcGCEkXpU2qz2kY6RfYvsARZCOVE4ELijzkStY8omhXy3YbAP0jonpxq96ZpWS/dB+UtIpsTskHqm02HNgG6BMRK5QlTuSOnZ/m8TmwCVnxqGkuxwvI5nrdN/UxP+z34+rdq63vAJL2Aa4ABkbE58o+/PJ+pOd6BdR7jsn0j4bPyUbTexW7G3BNRPyqWludWfs8RXa34OQa2sld389Z83u20PWtqx1rRH6GaK3VUOCuiNglIjpHxM7Aa2QjQYD90rOrDYBhwNPpGeAGEfEAcCnZLdYPgPckDUj7/RvwFOtayJo4oSF56z8ii0nKmQj8R+5FGpGtRdJBSs8pJW1ENsJ4vUBbmwNvp2J4CLBLbRckIt4HPpCUuwbDq7X1z8g+SPJvZP+AKGQycLykTSR1IEvjqN7/zclG5N+MiMXp2B8Cr0n6RtpG6R8fAFNZM7IaXr29QiRtA4wBbol0L7JIE4DT8p4H7pieO1b3DHCQpC+l7TaV1LXAdvmq/2y3bGA7ViYuiNZanQyMr7buAeCUtDyd7EMq88gK5XiyW46TJFWRPXf6Udr234FRkuaQPd+7ssDxrgBukjSFbNSQ839kBaQqFdXzgb7pQxcvkn3oprrdgKckzSW7tTcTeCAilpDdepsnaRRwT2prJlkh+UsR1+VbwK3KPlSTP0r9BfDvkp4hu11afVQIQETMBn5HlsTxADClwGZfJyvOt+c+XJPWDwe+LekFstSJ49L67wLnSnqOrDDXZJPU3nyy9JKJZNe9aBExkew57vR0fe9n7X9k5LZbDIwAfpt+7s8Ae1bfrpqfAVumn88LwCENbMfKxGkXZmZmeIRoZmYGuCCamZkBLohmZmaAC6KZmRnggmhmZga4IJqZmQEuiGZmZoALopmZGQD/H5N6UfqcP+THAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "name": "stdout", "output_type": "stream", "text": [ "======================================================================\n", - " Inverse Probability of Treatment Weight Diagnostics\n", + " Weight Positivity Diagnostics\n", "======================================================================\n", "If the mean of the weights is far from either the min or max, this may\n", " indicate the model is incorrect or positivity is violated\n", "Average weight should be\n", "\t1.0 for stabilized\n", "\t2.0 for unstabilized\n", - "Standard deviation can help in IPTW model selection\n", "----------------------------------------------------------------------\n", - "Mean weight: 1.0\n", - "Standard Deviation: 0.29\n", - "Minimum weight: 0.33\n", - "Maximum weight: 4.3\n", + "Mean weight: 0.999\n", + "Standard Deviation: 0.288\n", + "Minimum weight: 0.331\n", + "Maximum weight: 4.298\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "C(education) 0.034662 0.195789\n", + "C(exercise) 0.028025 0.056850\n", + "C(active) 0.017729 0.074001\n", + "sex -0.002854 -0.160263\n", + "race 0.006644 -0.177051\n", + "age 0.005849 0.281981\n", + "age_sq 0.006268 0.281608\n", + "smokeintensity -0.024824 -0.216675\n", + "smokeintensity_sq -0.028563 -0.128894\n", + "smokeyrs -0.003513 0.158918\n", + "smokeyrs_sq -0.000546 0.178899\n", + "wt71 -0.009060 0.133216\n", + "wt71_sq -0.008368 0.127241\n", "======================================================================\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -326,13 +354,7 @@ ], "source": [ "# diagnostics for weights\n", - "iptw.plot_love()\n", - "plt.show()\n", - "\n", - "iptw.positivity(decimal=2)\n", - "\n", - "iptw.plot_kde()\n", - "plt.show()" + "iptw.run_diagnostics()" ] }, { @@ -344,26 +366,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average Causal Effect\n", - "--------------------------------------\n", - "E[Y|A=1] - E[Y|A=0] = 3.44\n", - "95% CL: 2.41, 4.47\n", - "--------------------------------------\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1566 \n", + "Outcome: wt82_71 No. Missing Outcome: 0 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1.78 0.22 1.34 2.22\n", + "qsmk 3.44 0.53 2.41 4.47\n", + "======================================================================\n" ] } ], "source": [ - "# estimation of marginal structural model\n", - "m = smf.gee('wt82_71 ~ qsmk', df.index, df, weights=iptw.Weight).fit()\n", - "beta = m.params[1]\n", - "lcl = np.round(m.conf_int()[0]['qsmk'], 2)\n", - "ucl = np.round(m.conf_int()[1]['qsmk'], 2)\n", - "\n", - "print('Average Causal Effect')\n", - "print('--------------------------------------')\n", - "print('E[Y|A=1] - E[Y|A=0] = ', np.round(beta, 2))\n", - "print('95% CL: '+str(lcl)+', '+str(ucl))\n", - "print('--------------------------------------')" + "# ATE estimate\n", + "iptw.summary(decimal=2)" ] }, { @@ -405,35 +427,47 @@ "name": "stdout", "output_type": "stream", "text": [ - "Causal Odds Ratio\n", - "--------------------------------------\n", - "OR = 1.03\n", - "95% CL: 0.76, 1.4\n", - "--------------------------------------\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1566 \n", + "Outcome: death No. Missing Outcome: 0 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Risk Difference\n", + "----------------------------------------------------------------------\n", + " RD SE(RD) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.18 0.01 0.16 0.21\n", + "qsmk 0.00 0.02 -0.04 0.05\n", + "----------------------------------------------------------------------\n", + "Risk Ratio\n", + " RR SE(log(RR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.18 0.06 0.16 0.21\n", + "qsmk 1.02 0.13 0.80 1.32\n", + "----------------------------------------------------------------------\n", + "Odds Ratio\n", + " OR SE(log(OR)) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 0.23 0.08 0.19 0.26\n", + "qsmk 1.03 0.16 0.76 1.40\n", + "======================================================================\n" ] } ], "source": [ - "# initialize the IPTW and estimate weights\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=True)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + "# Estimating weights and fitting marginal structural model\n", + "iptw = IPTW(df, treatment='qsmk', outcome='death')\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", " 'C(active) + wt71 + wt71_sq', \n", " print_results=False)\n", + "iptw.marginal_structural_model('qsmk')\n", "iptw.fit()\n", "\n", - "# estimation of marginal structural model\n", - "m = smf.gee('death ~ qsmk', df.index, df, weights=iptw.Weight, \n", - " family=sm.families.Binomial()).fit()\n", - "beta = np.exp(m.params[1])\n", - "lcl = np.round(np.exp(m.conf_int()[0]['qsmk']), 2)\n", - "ucl = np.round(np.exp(m.conf_int()[1]['qsmk']), 2)\n", - "\n", - "print('Causal Odds Ratio')\n", - "print('--------------------------------------')\n", - "print('OR = ', np.round(beta, 2))\n", - "print('95% CL: '+str(lcl)+', '+str(ucl))\n", - "print('--------------------------------------')" + "# printing results\n", + "iptw.summary(decimal=2)" ] }, { @@ -441,7 +475,7 @@ "metadata": {}, "source": [ "## Section 12.5\n", - "Now we will look at how to estimate effect modification. In the example, we are interested in effect modification by sex (`sex`) of quitting smoking (`qsmk`) on 10-year weight change (`wt71_82`). To do this, we will estimate the following marginal structural model\n", + "Now we will look at how to estimate effect modification. In the example, we are interested in effect modification by sex (`sex`) of quitting smoking (`qsmk`) on 10-year weight change (`wt82_71`). To do this, we will estimate the following marginal structural model\n", "$$E[Y^a|V] = \\beta_0 + \\beta_1 a + \\beta_2 V a + \\beta_3 V$$\n", "where $V$ is our modifier (sex)\n", "\n", @@ -449,7 +483,7 @@ "$$\\hat{w}_i = \\frac{\\widehat{\\Pr}(A_i=a|V_i)}{\\widehat{\\Pr}(A=a|V_i, L_i)}$$\n", "For estimation of these new weights in *zEpid*, we will add another optional argument. This argument is part of the regression model statement. We will specify `model_numerator='sex'`, which tells *zEpid* that we want the conditional probability in the numerator.\n", "\n", - "Lastly, we will use some additional `patsy` magic to reduce the recoding we need to do. Specificially we will use `:` to generate an interaction term in our marginal structural model" + "Additionally, we change the marginal structural model to follow the above mathematical formula. Our approach uses `patsy` magic to reduce the recoding we need to do. Specificially we will use `:` to generate an interaction term in our marginal structural model" ] }, { @@ -461,43 +495,39 @@ "name": "stdout", "output_type": "stream", "text": [ - " GEE Regression Results \n", - "===================================================================================\n", - "Dep. Variable: wt82_71 No. Observations: 1566\n", - "Model: GEE No. clusters: 1566\n", - "Method: Generalized Min. cluster size: 1\n", - " Estimating Equations Max. cluster size: 1\n", - "Family: Gaussian Mean cluster size: 1.0\n", - "Dependence structure: Independence Num. iterations: 2\n", - "Date: Wed, 24 Apr 2019 Scale: 60.953\n", - "Covariance type: robust Time: 13:43:37\n", - "==============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "------------------------------------------------------------------------------\n", - "Intercept 1.7844 0.310 5.759 0.000 1.177 2.392\n", - "qsmk 3.5220 0.657 5.360 0.000 2.234 4.810\n", - "sex -0.0087 0.449 -0.019 0.984 -0.888 0.871\n", - "qsmk:sex -0.1595 1.046 -0.152 0.879 -2.210 1.891\n", - "==============================================================================\n", - "Skew: 0.1114 Kurtosis: 3.7341\n", - "Centered skew: 0.0000 Centered kurtosis: -3.0000\n", - "==============================================================================\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1566 \n", + "Outcome: wt82_71 No. Missing Outcome: 0 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1.78 0.31 1.18 2.39\n", + "qsmk 3.52 0.66 2.23 4.81\n", + "sex -0.01 0.45 -0.89 0.87\n", + "qsmk:sex -0.16 1.05 -2.21 1.89\n", + "======================================================================\n" ] } ], "source": [ "# initialize the IPTW and estimate weights\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=True)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", - " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", - " 'C(active) + wt71 + wt71_sq', \n", - " model_numerator='sex',\n", - " print_results=False)\n", + "iptw = IPTW(df, treatment='qsmk', outcome='wt82_71')\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", + " 'C(active) + wt71 + wt71_sq', \n", + " model_numerator='sex', # Adding V to the numerator of weights\n", + " print_results=False)\n", + "# Specifying MSM for modification of effects\n", + "iptw.marginal_structural_model('qsmk + sex + qsmk:sex')\n", "iptw.fit()\n", "\n", - "# estimation of faux marginal structural model\n", - "m = smf.gee('wt82_71 ~ qsmk + sex + qsmk:sex', df.index, df, weights=iptw.Weight).fit()\n", - "print(m.summary())" + "# printing results\n", + "iptw.summary(decimal=2)" ] }, { @@ -507,14 +537,14 @@ "The $\\beta$ for interaction was -0.16 (95% CL: -2.21, 1.89), indicating that there is not strong evidence for effect modification by gender\n", "\n", "## Section 12.6\n", - "Going back to the start, we excluded 63 individuals with missing weights at 1982. However, this can result in selection bias. We will now use inverse probability of missing weights to relax the current assumption of 1982 weights missing completely at random. We will do this by using `IPMW`.\n", + "Going back to the start, we excluded 63 individuals with missing weights at 1982. However, this can result in selection bias. We will now use inverse probability of missing weights to relax the current assumption of 1982 weights missing completely at random. We will do this by using the optional argument `missing_model()`. In the background, the `IPTW` class calculates inverse probability of censoring weights. Remember censoring is a special case of missing data (missing outcome data). `IPTW` will automatically detect missing data and will generate a warning if no `missing_model()` was specified.\n", "\n", - "Our new weights (to simultaneously adjust for confounders and accounting for missing at random weights) will have the following form\n", + "The new combined weights take the following form\n", "$$\\hat{w}_i^* = \\frac{1}{\\widehat{\\Pr}(M=0|L,A)} \\times \\frac{1}{\\widehat{\\Pr}(A=a|L_i)}$$\n", "where $M$ is an indicator whether the person has a missing weight in 1982. We can also calculate stabilized weights via the following\n", "$$\\hat{w}_i^* = \\frac{\\widehat{\\Pr}(M=0|A)}{\\widehat{\\Pr}(M=0|L,A)} \\times \\frac{\\widehat{\\Pr}(A_i=a)}{\\widehat{\\Pr}(A=a| L_i)}$$\n", "\n", - "We will estimate IPMW by using `IPMW`. `IPMW` has a similar syntax structure to `IPTW`. One nice thing about `IPMW` is that it automatically detects missing data for us. We only need to provide the variable(s) that have missing data. Not to get sidetracked, but `IPMW` also supports monotonic missing data (with plans to include non-monotonic missing data in the future). Let's demonstrate `IPMW` for a single missing variable with unstabilized weights first" + "Let's demonstrate `IPTW` for a missing outcome data without accounting for missing data" ] }, { @@ -534,6 +564,11 @@ "df['no_exercise'] = np.where(df['exercise'] == 2, 1, 0)\n", "df['university'] = np.where(df['education'] == 5, 1, 0)\n", "\n", + "# Subsetting only variables of interest\n", + "df = df[['wt82_71', 'qsmk', 'sex', 'age', 'race', 'wt71', 'ht', \n", + " 'school', 'alcoholpy', 'smokeintensity', 'smokeyrs', \n", + " 'education', 'exercise', 'active', 'death']]\n", + "\n", "# creating quadratic terms\n", "for col in ['age', 'wt71', 'smokeintensity', 'smokeyrs']:\n", " df[col+'_sq'] = df[col] * df[col]\n" @@ -544,53 +579,53 @@ "execution_count": 13, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\users\\zivic\\python programs\\development\\zepid\\zepid\\causal\\ipw\\IPTW.py:353: UserWarning: All missing outcome data is assumed to be missing completely at random. To relax this assumption to outcome data is missing at random please use the `missing_model()` function\n", + " \"function\", UserWarning)\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "Average Causal Effect\n", - "--------------------------------------\n", - "E[Y|A=1] - E[Y|A=0] = 3.5\n", - "95% CL: 2.47, 4.53\n", - "--------------------------------------\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "g-Model: Logistic Missing Model: None \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1.757 0.225 1.316 2.198\n", + "qsmk 3.524 0.520 2.504 4.543\n", + "======================================================================\n" ] } ], "source": [ - "# Calculating IPMW\n", - "ipmw = IPMW(df, missing_variable='wt82_71', stabilized=False)\n", - "ipmw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", - " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", - " 'C(active) + wt71 + wt71_sq + qsmk', \n", - " print_results=False)\n", - "ipmw.fit()\n", - "\n", - "# Calculating IPTW\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=False)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", - " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", - " 'C(active) + wt71 + wt71_sq', \n", - " print_results=False)\n", + "# initialize the IPTW and estimate weights\n", + "iptw = IPTW(df, treatment='qsmk', outcome='wt82_71')\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", + " 'C(active) + wt71 + wt71_sq', print_results=False)\n", + "iptw.marginal_structural_model('qsmk')\n", "iptw.fit()\n", - "\n", - "# estimation of marginal structural model\n", - "m = smf.gee('wt82_71 ~ qsmk', df.index, df, weights=iptw.Weight*ipmw.Weight).fit()\n", - "beta = m.params[1]\n", - "lcl = np.round(m.conf_int()[0]['qsmk'], 2)\n", - "ucl = np.round(m.conf_int()[1]['qsmk'], 2)\n", - "\n", - "print('Average Causal Effect')\n", - "print('--------------------------------------')\n", - "print('E[Y|A=1] - E[Y|A=0] = ', np.round(beta, 2))\n", - "print('95% CL: '+str(lcl)+', '+str(ucl))\n", - "print('--------------------------------------')" + "iptw.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now I will repeat the same process, but will use stabilized weights instead" + "As you can see, `IPTW` raises a warning when missing outcome data is detected but no `missing_model()` is specified. Additionally, our answer is slightly different from the previous parts. This is because IPTW were estimated using individuals whose outcome data was missing, whereas before we dropped those individuals from the data set.\n", + "\n", + "We will now account for informative missing by using the `missing_model()` function" ] }, { @@ -602,43 +637,161 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average Causal Effect\n", - "--------------------------------------\n", - "E[Y|A=1] - E[Y|A=0] = 3.5\n", - "95% CL: 2.47, 4.53\n", - "--------------------------------------\n" + "======================================================================\n", + " Inverse Probability of Treatment Weights \n", + "======================================================================\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "g-Model: Logistic Missing Model: Logistic \n", + "======================================================================\n", + "Average Treatment Effect\n", + "----------------------------------------------------------------------\n", + " ATE SE(ATE) 95%LCL 95%UCL\n", + "labels \n", + "Intercept 1.66 0.23 1.21 2.12\n", + "qsmk 3.50 0.53 2.47 4.53\n", + "======================================================================\n" ] } ], "source": [ - "# Calculating IPMW\n", - "ipmw = IPMW(df, missing_variable='wt82_71', stabilized=True)\n", - "ipmw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", - " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", - " 'C(active) + wt71 + wt71_sq + qsmk', \n", - " model_numerator='qsmk',\n", - " print_results=False)\n", - "ipmw.fit()\n", - "\n", - "# Calculating IPTW\n", - "iptw = IPTW(df, treatment='qsmk', stabilized=True)\n", - "iptw.regression_models('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", - " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", - " 'C(active) + wt71 + wt71_sq', \n", - " print_results=False)\n", + "iptw = IPTW(df, treatment='qsmk', outcome='wt82_71')\n", + "iptw.missing_model('qsmk + sex + race + age + age_sq + C(education) + ' + \n", + " 'smokeintensity + smokeintensity_sq + smokeyrs + smokeyrs_sq + ' + \n", + " 'C(exercise) + C(active) + wt71 + wt71_sq', print_results=False)\n", + "iptw.treatment_model('sex + race + age + age_sq + C(education) + smokeintensity + ' + \n", + " 'smokeintensity_sq + smokeyrs + smokeyrs_sq + C(exercise) + ' + \n", + " 'C(active) + wt71 + wt71_sq', print_results=False)\n", + "iptw.marginal_structural_model('qsmk')\n", "iptw.fit()\n", - "\n", - "# estimation of marginal structural model\n", - "m = smf.gee('wt82_71 ~ qsmk', df.index, df, weights=iptw.Weight*ipmw.Weight).fit()\n", - "beta = m.params[1]\n", - "lcl = np.round(m.conf_int()[0]['qsmk'], 2)\n", - "ucl = np.round(m.conf_int()[1]['qsmk'], 2)\n", - "\n", - "print('Average Causal Effect')\n", - "print('--------------------------------------')\n", - "print('E[Y|A=1] - E[Y|A=0] = ', np.round(beta, 2))\n", - "print('95% CL: '+str(lcl)+', '+str(ucl))\n", - "print('--------------------------------------')" + "iptw.summary(decimal=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Diagnostics can also we ran for IPTW only or both IPTW and IPCW" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Weight Positivity Diagnostics\n", + "======================================================================\n", + "If the mean of the weights is far from either the min or max, this may\n", + " indicate the model is incorrect or positivity is violated\n", + "Average weight should be\n", + "\t1.0 for stabilized\n", + "\t2.0 for unstabilized\n", + "----------------------------------------------------------------------\n", + "Mean weight: 0.999\n", + "Standard Deviation: 0.283\n", + "Minimum weight: 0.331\n", + "Maximum weight: 4.205\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "C(education) 0.030417 0.197261\n", + "C(exercise) 0.030785 0.065840\n", + "C(active) 0.019680 0.056574\n", + "sex -0.002014 -0.172266\n", + "race 0.007362 -0.182319\n", + "age 0.002214 0.308929\n", + "age_sq 0.002358 0.311942\n", + "smokeintensity -0.023123 -0.199855\n", + "smokeintensity_sq -0.026488 -0.125932\n", + "smokeyrs -0.004105 0.189480\n", + "smokeyrs_sq -0.001296 0.212187\n", + "wt71 0.001877 0.135353\n", + "wt71_sq 0.004619 0.128182\n", + "======================================================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "iptw.run_diagnostics(iptw_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "======================================================================\n", + " Weight Positivity Diagnostics\n", + "======================================================================\n", + "If the mean of the weights is far from either the min or max, this may\n", + " indicate the model is incorrect or positivity is violated\n", + "Average weight should be\n", + "\t1.0 for stabilized\n", + "\t2.0 for unstabilized\n", + "----------------------------------------------------------------------\n", + "Mean weight: 0.996\n", + "Standard Deviation: 0.282\n", + "Minimum weight: 0.355\n", + "Maximum weight: 4.093\n", + "======================================================================\n", + "\n", + "======================================================================\n", + " Standardized Mean Differences\n", + "======================================================================\n", + " smd_w smd_u\n", + "labels \n", + "C(education) 0.064454 0.195789\n", + "C(exercise) 0.029453 0.056850\n", + "C(active) 0.013923 0.074001\n", + "sex 0.002810 -0.160263\n", + "race 0.008282 -0.177051\n", + "age -0.010085 0.281981\n", + "age_sq -0.012405 0.281608\n", + "smokeintensity -0.042325 -0.216675\n", + "smokeintensity_sq -0.031948 -0.128894\n", + "smokeyrs -0.018407 0.158918\n", + "smokeyrs_sq -0.018614 0.178899\n", + "wt71 -0.009803 0.133216\n", + "wt71_sq -0.010478 0.127241\n", + "======================================================================\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "iptw.run_diagnostics(iptw_only=False)" ] }, { diff --git a/4_Hernan-Robins/Chapter-13.ipynb b/4_Hernan-Robins/Chapter-13.ipynb index 722a4c5..561fd57 100644 --- a/4_Hernan-Robins/Chapter-13.ipynb +++ b/4_Hernan-Robins/Chapter-13.ipynb @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -112,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -122,7 +122,7 @@ "Average Causal Effect\n", "--------------------------------------\n", "E[Y|A=1] - E[Y|A=0] = 3.46\n", - "95% CL: 2.56, 4.37\n", + "95% CL: 2.51, 4.41\n", "--------------------------------------\n" ] } diff --git a/4_Hernan-Robins/Chapter-14.ipynb b/4_Hernan-Robins/Chapter-14.ipynb index e54a0ce..3461970 100644 --- a/4_Hernan-Robins/Chapter-14.ipynb +++ b/4_Hernan-Robins/Chapter-14.ipynb @@ -21,8 +21,6 @@ "source": [ "import numpy as np\n", "import pandas as pd\n", - "import statsmodels.api as sm\n", - "import statsmodels.formula.api as smf\n", "import matplotlib.pyplot as plt\n", "\n", "from zepid.causal.snm import GEstimationSNM\n", @@ -43,37 +41,18 @@ "\n", "# Treatment model\n", "pi_model = ('sex + race + age + age_sq + C(education) + smokeyrs + smkyr_sq + '\n", - " 'C(exercise) + C(active) + wt71 + wt71_sq + smokeintensity + smkint_sq')" + " 'C(exercise) + C(active) + wt71 + wt71_sq + smokeintensity + smkint_sq')\n", + "# Missing outcome data model\n", + "m_model = ('qsmk + sex + race + age + age_sq + C(education) + smokeyrs + smkyr_sq + '\n", + " 'C(exercise) + C(active) + wt71 + wt71_sq + smokeintensity + smkint_sq')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Before continuing, we need to create inverse probability of missing weights (IPMW) to account for missing outcome data. I will use `IPMW` to do this and add the weights to our data set. We will create unstabilized weights" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from zepid.causal.ipw import IPMW\n", + "As described in the book, to deal with missing data inverse probability of censoring weights should be used. `GEstimationSNM` allows for automatic calculation of inverse probability of censoring weights through the `missing_model()` function. We will use this to account for missing outcome data\n", "\n", - "ipmw = IPMW(df, missing_variable='wt82_71')\n", - "ipmw.regression_models('qsmk + sex + race + age + age_sq + C(education) + smokeyrs + smkyr_sq + '\n", - " 'C(exercise) + C(active) + wt71 + wt71_sq + smokeintensity + smkint_sq', print_results=False)\n", - "ipmw.fit()\n", - "df['ipcw'] = ipmw.Weight\n", - "\n", - "df.dropna(inplace=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ "## Section 14.5\n", "We will now estimate the following structural nested mean model\n", "$$E[Y^a - Y^{a=0} | A=a, L] = \\psi a$$\n", @@ -87,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -97,10 +76,12 @@ "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Nelder-Mead No. Iterations: 38 \n", "Alpha values: 0 Optimized: True \n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk\n", "----------------------------------------------------------------------\n", "qsmk 3.4459 \n", @@ -110,11 +91,14 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "\n", "# Specifying Pr(A=1|L) model\n", "snm.exposure_model(model=pi_model, print_results=False)\n", "\n", + "# Specifying censoring model\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", + "\n", "# Specifying SNM\n", "snm.structural_nested_model(model='qsmk')\n", "\n", @@ -135,19 +119,26 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "Index(['index', 'death', 'qsmk', 'sex', 'race', 'age', 'education',\n", + " 'smokeintensity', 'smokeyrs', 'exercise', 'active', 'wt71', 'wt82_71',\n", + " 'age_sq', 'smkyr_sq', 'wt71_sq', 'smkint_sq', '__missing_indicator__',\n", + " '_w_'],\n", + " dtype='object')\n", "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Closed-form\n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk\n", "----------------------------------------------------------------------\n", "qsmk 3.4459 \n", @@ -157,15 +148,10 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", - "\n", - "# Specifying Pr(A=1|L) model\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "snm.exposure_model(model=pi_model, print_results=False)\n", - "\n", - "# Specifying SNM\n", "snm.structural_nested_model(model='qsmk')\n", - "\n", - "# Closed-form solution\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", "snm.fit(solver='closed')\n", "snm.summary(decimal=4)" ] @@ -182,19 +168,26 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "Index(['index', 'death', 'qsmk', 'sex', 'race', 'age', 'education',\n", + " 'smokeintensity', 'smokeyrs', 'exercise', 'active', 'wt71', 'wt82_71',\n", + " 'age_sq', 'smkyr_sq', 'wt71_sq', 'smkint_sq', '__missing_indicator__',\n", + " '_w_'],\n", + " dtype='object')\n", "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Closed-form\n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk + psi*qsmk:smokeintensity\n", "----------------------------------------------------------------------\n", "qsmk 2.85947 \n", @@ -205,22 +198,17 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", - "\n", - "# Specifying Pr(A=1|L) model\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "snm.exposure_model(model=pi_model, print_results=False)\n", - "\n", - "# Specifying SNM\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", "snm.structural_nested_model(model='qsmk + qsmk:smokeintensity')\n", - "\n", - "# Closed-form solution\n", "snm.fit(solver='closed')\n", "snm.summary(decimal=5)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -230,10 +218,12 @@ "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Nelder-Mead No. Iterations: 144 \n", "Alpha values: 0 Optimized: True \n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk + psi*qsmk:smokeintensity\n", "----------------------------------------------------------------------\n", "qsmk 2.85947 \n", @@ -244,15 +234,10 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", - "\n", - "# Specifying Pr(A=1|L) model\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "snm.exposure_model(model=pi_model, print_results=False)\n", - "\n", - "# Specifying SNM\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", "snm.structural_nested_model(model='qsmk + qsmk:smokeintensity')\n", - "\n", - "# Closed-form solution\n", "snm.fit(solver='search')\n", "snm.summary(decimal=5)" ] @@ -271,7 +256,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -281,10 +266,12 @@ "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Nelder-Mead No. Iterations: 37 \n", "Alpha values: 0.1 Optimized: True \n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk\n", "----------------------------------------------------------------------\n", "qsmk -1.95224 \n", @@ -294,15 +281,12 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", - "\n", - "# Specifying Pr(A=1|L) model\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "snm.exposure_model(model=pi_model, print_results=False)\n", - "\n", - "# Specifying SNM\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", "snm.structural_nested_model(model='qsmk')\n", "\n", - "# Closed-form solution\n", + "# Search solution\n", "snm.fit(solver='search',\n", " alpha_value=0.1) # Sensitivity analysis \n", "snm.summary(decimal=5)" @@ -317,7 +301,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": { "scrolled": true }, @@ -341,11 +325,12 @@ "======================================================================\n", " G-estimation of Structural Nested Mean Model \n", "======================================================================\n", - "Treatment: qsmk No. Observations: 1566 \n", - "Outcome: wt82_71\n", + "Treatment: qsmk No. Observations: 1629 \n", + "Outcome: wt82_71 No. Missing Outcome: 63 \n", + "Missing model: Logistic \n", "Method: Nelder-Mead No. Iterations: 62 \n", - "True\n", "Alpha values: [0.1 0.05] Optimized: True \n", + "----------------------------------------------------------------------\n", "SNM: psi*qsmk + psi*qsmk:smokeintensity\n", "----------------------------------------------------------------------\n", "qsmk 5.89113 \n", @@ -356,15 +341,11 @@ ], "source": [ "# Initializing G-estimation \n", - "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71', weights='ipcw')\n", - "\n", - "# Specifying Pr(A=1|L) model\n", + "snm = GEstimationSNM(df, exposure='qsmk', outcome='wt82_71')\n", "snm.exposure_model(model=pi_model, print_results=False)\n", - "\n", - "# Specifying SNM\n", + "snm.missing_model(m_model, stabilized=False, print_results=False)\n", "snm.structural_nested_model(model='qsmk + qsmk:smokeintensity')\n", "\n", - "# Closed-form solution\n", "snm.fit(solver='search',\n", " starting_value=[5, -5],\n", " alpha_value=[0.1, 0.05]) # Sensitivity analysis \n",