{ "cells": [ { "cell_type": "markdown", "id": "0c22256a", "metadata": {}, "source": [ "# TMLE - Targeted Maximum Likelihood Estimation\n", "\n", "Targeted learning is a method developed by Mark van der Laan [[1](https://www.degruyter.com/document/doi/10.2202/1557-4679.1043/html)] establishing a theoretically-guaranteed way of applying complex machine learning estimators to causal inference estimation. \n", "\n", "### Motivation\n", "Let's denote $X$ as our confounding features, $Y$ our target variable and $A$ a binary intervention variable whose effect we seek. \n", "Recall that a regular outcome model (i.e., a Standrdization model like S-Learner), simply works by estimating $E[Y|X,A]$. \n", "However, the way it adjusts for $X$ and $A$ dependends on the core-statitsical estimator used. \n", "For example, a strictly linear (i.e. no interactions or polynomials) regression model will adjust for $X$ linearly, but that might not describe the response suface properly, especially in high-dimensional complex data.\n", "To account for more complex data, we can use a more complex core estimator. \n", "However, applying expressive estimators might lead to some bias in estimating the causal effect of the treatment.\n", "In most real-world scenarios, the treatment effect is usually pretty small, and not unrelatedly, it might have very little predictive power over the outcome. \n", "For example, imagine feeding a tree-based estimator a matrix with features stacked with a treatment assignment column (like an S-learner). \n", "It is not unreasonable that the tree might simply ignore the treatment variable altogether. \n", "And so, it will conclude a strictly zero causal effect estimation, since there's no difference in outcome when we plug in $A=1$ and $A=0$. \n", "This happens because we optimize the prediction $E[Y|X,A]$, which is not the same as optimizing for the causal parameter of interest $E[Y|X,A=1]-E[Y|X,A=0]$. \n", "\n", "### Intutition\n", "A naive statistical estimator will maximize the global likelihood - it will try to estimate correctly _all_ the coefficients of all covariates, only one of which is the treatment assignment.\n", "However, we care for one single parameter - the treatment effect - more than we care for other parameters.\n", "Therefore, we would like to focus our estimator's attention on that parameter of interest, even at the price of neglecting some other parameters. \n", "Using Dr. Susan Gruber's example, think of it like a picture - where the person smiling is of greater importance, so in order to focus on them we allow the background to become a bit more blurry in exchange. \n", "\n", "While the math behind it is complex, the basic principle is pretty simple: \n", "In order to focus our estimator on the treatment effect, we will use information from the treatment mechanism to update and re-target the initial outcome model prediction.\n", "This will allow us to use highly data-adaptive preidction models, but still estimate the treatment effect properly.\n", "\n", "\n", "### Steps\n", "Fitting a TMLE can be summarized into four simple steps:\n", "1. Fit an outcome model $Q_0(A,X)$, estimating $E[Y|X,A]$ by predicting the outcome $Y$ using the covariates $X$ and the treatment $A$. \n", " $Q_0$ can be a highly expressive method, and a common use is a \"Super Learner\", which is basically a stacking meta-learner using a broad library (pool) of base-estimators. \n", " In causallib, this will be done by specifying a `Standardization` model with any kind of core estimator.\n", "1. Fit a propensity model $g(A,X)$, estimating $\\Pr[A|X]$ by predicting the treatment assignment $A$ using the covariate $X$. \n", " In `causallib`, this will be done by specifying an `IPW` model with any kind of core estimator. \n", " Note that `causallib` also allows this set of `X` to be different than the `X` used for the outcome model in step 1.\n", "1. Generate a \"clever covariate\"* $H(A,X)$ using the propensity scores: $\\frac{2A-1}{g(A,X)}$.\n", " Namely: take the inverse propensity scores of the treated units, and the _minus_ inverse propensities for the controls.\n", "1. Update the initial outcome prediction using treatment information from the \"clever covariate\": estimate an $\\epsilon$ parameter such that: \n", " $ Q_*(A,X) = expit(logit(Q_0(A,X))+ \\epsilon H(A,X))$ \n", " Namely, we update the initial $Q_0$ with some contribution of $H(A,X)$ estimated in logit space. \n", " in causallib, this is estimated by applying a uni-variable logistic regression, regressing $Y$ on $H(A,X)$ with $Q_0(A,X)$ as offset (i.e. forcing its coefficient to 1). \n", " \n", "The intuition behind step (4) is that we basically regressing the \"clever covariate\" (with its treatment mechanism information) on the residuals of the outcome prediction. \n", "If the initial prediction is perfect - then $H(A,X)$ is regressed on random noise and $\\epsilon$ is therefore $\\approx 0$, contributing nothing to the update step.\n", "However, in case there _is_ residual bias in the initial estimator, $\\epsilon$ will control the magnitude of correction needed - small residual bias will lead to small update and vice versa. \n", "This is because \"surprising\" units, those with small $g(A,X)$, have large $\\frac{1}{g(A,X)}$, so small changes in $\\epsilon$ will lead to bigger impact on the fitting. \n", "This is also why we need to be extra careful avoiding overfitting the initial estimator $Q_0$, because it will falsely minimize the signal in the residuals required for the updating step. \n", "\n", "Note that there are several flavors of the \"clever covariates\", which causallib implements 4 of, and they will be described further down. \n", "\n", "#### Counterfactual prediction\n", "For counterfactual prediction we assign a specific treatment value $a\\in A$ and propagate it through the model's component: \n", "$ Q_*(a,X) = expit(logit(Q_0(a,X))+ \\epsilon H(a,X))$ \n", "And then we can calculate any contrast of two intevention values to obtain an effect, like risk difference ($Q_*(1,X)-Q_*(0,X)$) or risk ratio ($\\frac{Q_*(1,X)}{Q_*(0,X)}$).\n", "\n", "\n", "### Doubly robust\n", "TMLE combines an outcome model with a treatment model in a way that makes it doubly robust: we get two chances to get things right. \n", "As we seen above, We either correctly specify the outcome model and then there's no signal left for correction by the treatment model.\n", "And, conversly, in cases were the initial model is strongly misspecified (think a simple `Y~A` regression), then $\\epsilon$ will be large and cover up for it like an IPW model.\n", "Therefore, the targeting step is a second chance to get things right.\n", "\n", "### Conclusion\n", "TMLE for causal framework allow us to apply flexible machine learning estimators on high-dimensional complex data and still obtain valid causal effect estimations.\n" ] }, { "cell_type": "markdown", "id": "27fa6e93-0df3-4a30-a457-641d8c4007bb", "metadata": {}, "source": [ "## TMLE in `causallib`\n", "\n", "Let's see an example of how TMLE works using `causallib`" ] }, { "cell_type": "code", "execution_count": 1, "id": "a11a9eed", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "\n", "from causallib.estimation import TMLE\n", "from causallib.estimation import Standardization, IPW\n", "from mlxtend.classifier import StackingCVClassifier\n", "from mlxtend.regressor import StackingCVRegressor\n", "\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.model_selection import RandomizedSearchCV, GridSearchCV\n", "from sklearn.ensemble import GradientBoostingClassifier, HistGradientBoostingClassifier, RandomForestClassifier\n", "# from sklearn.svm import SVC\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.ensemble import GradientBoostingRegressor, HistGradientBoostingRegressor, RandomForestRegressor\n", "from sklearn.svm import SVR\n", "from sklearn.linear_model import Lasso, Ridge, LinearRegression, LassoCV, RidgeCV\n", "\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "markdown", "id": "13cf5805-0488-4ecd-b89f-be99373d66ce", "metadata": {}, "source": [ "### Data\n", "We synthesize data, so we know the true causal effect, based on [_Schuler and Rose 2017_](https://academic.oup.com/aje/article/185/1/65/2662306). \n", "This is a relatively simple mechanism where exposure is dependent on a linear combination of 3 Bernoulli variables and the outcome also depends on an effect modification of the third variable." ] }, { "cell_type": "code", "execution_count": 2, "id": "4ff56b4f-7d32-4a0b-b3c5-0dc9eb9bf019", "metadata": {}, "outputs": [], "source": [ "def generate_single_dataset(n, seed=None):\n", " if seed is not None:\n", " np.random.seed(seed)\n", " \n", " X = np.random.binomial(n=1, p=(0.55, 0.30, 0.25), size=(n, 3))\n", " \n", " a_logit = -0.5 + X @ np.array([0.75, 1, 1.5])\n", " propensity = 1 / (1 + np.exp(-a_logit))\n", " a = np.random.binomial(1, propensity)\n", " \n", " y_func = lambda z: 24 - 3*z + X@np.array([3, -4, -6]) - 1.5*z*X[:, -1]\n", " noise = np.random.normal(0, 4.5, size=n)\n", " y = y_func(a) + noise\n", " y0 = y_func(np.zeros_like(a)) + noise\n", " y1 = y_func(np.ones_like(a)) + noise\n", " sate = np.mean(y1 - y0)\n", " # sate = -3.38\n", " # cate = y1 - y0\n", " \n", " X = pd.DataFrame(X)\n", " a = pd.Series(a)\n", " y = pd.Series(y)\n", " return X, a, y, sate" ] }, { "cell_type": "code", "execution_count": 3, "id": "55b06cc7-0eee-4f22-86ed-2ccd268e0142", "metadata": {}, "outputs": [], "source": [ "def run_single_simulation(tmle, n_samples, seed=None):\n", " X, a, y, sate = generate_single_dataset(n_samples, seed=None)\n", " tmle.fit(X, a, y)\n", " \n", " tmle_po = tmle.estimate_population_outcome(X, a)\n", " tmle_ate = tmle.estimate_effect(tmle_po[1], tmle_po[0])['diff']\n", " \n", " outcome_model_po = tmle.outcome_model.estimate_population_outcome(X, a)\n", " outcome_model_ate = tmle.outcome_model.estimate_effect(outcome_model_po[1], outcome_model_po[0])['diff']\n", " \n", " return tmle_ate, outcome_model_ate, sate\n", "\n", "\n", "def run_multiple_simulations(tmle, n_simulations, n_samples):\n", " true_ates = []\n", " tmle_ates = []\n", " om_ates = []\n", " for i in range(n_simulations):\n", " tmle_ate, outcome_model_ate, sate = run_single_simulation(tmle, n_samples, i)\n", "\n", " tmle_ates.append(tmle_ate)\n", " om_ates.append(outcome_model_ate)\n", " true_ates.append(sate)\n", " \n", " predictions = pd.DataFrame(\n", " {\"tmle\": tmle_ates, \"initial_model\": om_ates, \"true\": true_ates}\n", " ).rename_axis(\"simulation\").reset_index()\n", " # true_ate = np.mean(true_ates)\n", " true_ate = -3.38\n", " return predictions, true_ate\n", "\n", "def plot_multiple_simulations(results, true_ate):\n", " results = results.drop(columns=[\"true\"])\n", " results = results.melt(id_vars=\"simulation\", var_name=\"method\", value_name=\"ate\")\n", " \n", " # Plot inidividual experiments:\n", " fig, axes = plt.subplots(1, 2, sharey=True, \n", " gridspec_kw={'width_ratios': [3, 1]},\n", " figsize=(8, 3))\n", " sns.scatterplot(\n", " x=\"simulation\", y=\"ate\", hue=\"method\", style=\"method\", \n", " data=results, \n", " ax=axes[0]\n", " )\n", " axes[0].axhline(y=true_ate, linestyle='--', color=\"grey\")\n", " # axes[0].text(results[\"simulation\"].max(), true_ate - 0.1, \"True ATE\", color=\"slategrey\")\n", " # (results.set_index([\"simulation\", \"method\"]) - true_ate).groupby(\"method\").mean()\n", " \n", " # Plot distribution summary:\n", " axes[1].axhline(y=true_ate, linestyle='--', color=\"grey\")\n", " sns.kdeplot(\n", " y=\"ate\", hue=\"method\", \n", " data=results,\n", " legend=False,\n", " ax=axes[1]\n", " )\n", " axes[1].text(axes[1].get_xlim()[1], true_ate - 0.2, \"True ATE\", color=\"slategrey\")\n", " \n", " # mean_bias = (results.set_index([\"simulation\", \"method\"]) - true_ate).groupby(\"method\").mean()\n", " # pd.plotting.table(axes[2], mean_bias)\n", " \n", " axes[0].legend(loc='center left', bbox_to_anchor=(1.35, 0.1))\n", "\n", " plt.subplots_adjust(wspace=0.01)\n", " return axes\n", " " ] }, { "cell_type": "markdown", "id": "549d339e-ae60-4e62-b679-f363c08bb9dc", "metadata": {}, "source": [ "### Doubly Robustness\n", "\n", "We will see how misspecifying either outcome model is contradicted by TMLE and results in an overall good estimation" ] }, { "cell_type": "markdown", "id": "356ad954-3806-4cac-b26e-277a5eeb2669", "metadata": {}, "source": [ "We start by specifying the outcome model to be an L1-regularized logistic regression (LASSO). The model is also misspecified as it doesn't take into account the interactions between the treatment and the third indicator." ] }, { "cell_type": "code", "execution_count": 4, "id": "c7127543-8d48-4a48-961a-99842e866f56", "metadata": {}, "outputs": [ { "data": { "image/png": "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0atWrdp0qn3ee++9XUOHDq0AeOGFFzo39/GezrKESyn1W6XUJqXUBqXUP62KQwghvEEHmTNRAPzvih7sXRnK3pWhPN9nwNHl/13RoyVPW1faM2/evLDhw4f3Gjt2bLeUlJS+48ePT7HbzUxCw4cP77V48eLge++9t2tlZaWtd+/eaePHj0+p//ji4mLbyJEjU9PS0vqkpqamvf322xHOHH/evHlhw4YN6zV69Oju8fHx/e+9996u//nPf6L69+/fJzU1NW3Dhg0BAJs3b/YfMWJEampqatrIkSNTt27d6g+wadMm/0GDBvVOTU1N+93vftel/nP/5S9/6dSvX78+qampaVOmTOnS1PGdYUnCpZQ6H7gcGKi17gs8a0UcQgjhLWSSatFAbaWNqlIfaitbPQ/IysoKevHFF/ds27Ztw+7duwO++eab0PrbX3rppb0BAQH2TZs2bfz0008bTAkUHBxs//zzz7dt3Lgxa9GiRVv+9Kc/xdclbKeyadOmoJkzZ+7eunXr+g8//LDjli1bAtetW5d188035z/33HOxAPfcc0/ihAkTCrZs2bLx+uuvL7jnnnsSAO69997EiRMn5m3ZsmVj586dq+ue8+OPP+6wbdu2wLVr12ZlZWVtXL16dfCXX34ZeqIYTsaqEq57gKe01pUAWuuDFsUhhBBeQSaqFgD8+r3t+PjqBut8fDUTPtjeWofo379/affu3at9fHzo27dv2fbt2/2dfazdblcPPPBAfGpqatr555+fevDgQf+cnBynPrz9+/cvTUpKqg4KCtKJiYmVl1xySTHAwIEDy3fv3u0PsGrVqpBJkyYVAtxzzz2FK1asCAVYuXJl6J133lkIcNdddxXUPef8+fM7LF68uENaWlpa375907Zv3x64adOm06qft+oMTAVGKaX+DlQAD2utlze1o1JqEjAJIDEx0X0RCiGEB8vIyADoo5TK9I/rQVigJFwCeOf67tTWNGyvVVujmHVtd+6Y3yoTSAcEBBxN6Hx8fKipqXG6fdh///vfqIKCAt9169ZlBQQE6K5du/YvLy93qnCo/nFtNhuBgYG6brm2tvaUMdhsNn38Oq01DzzwwP7f//73+c7+Dyd8/pY+wYkopRYopdY3cbsck+hFASOA3wPvK6WafDG01hla63StdXpMTIyrwhVCiHZl0qRJAFla6/TUTmHEhUuj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "outcome_model = Standardization(Lasso(random_state=0))\n", "weight_model = IPW(LogisticRegression(penalty=\"none\", random_state=0))\n", "tmle = TMLE(\n", " outcome_model=outcome_model,\n", " weight_model=weight_model,\n", " reduced=True\n", ")\n", "\n", "n_samples = 500\n", "n_simulations = 20\n", "\n", "results, true_ate = run_multiple_simulations(tmle, n_simulations, n_samples)\n", "plot_multiple_simulations(results, true_ate);" ] }, { "cell_type": "markdown", "id": "b8aff33c-ce14-4893-94bb-f3ad74ed3c4f", "metadata": {}, "source": [ "We see that the outcome model predictions are way off toards the null, probably even ignoring the treatment column occasionally (where effect is near 0).\n", "\n", "We can improve that by first allowing a more flexible model (by using interactions), and also using cross-validation to find the right amount of regularization over all the new polynomial parameters." ] }, { "cell_type": "code", "execution_count": 5, "id": "5886ab69-320e-4c2c-b47a-684a2982a031", "metadata": {}, "outputs": [ { "data": { "image/png": "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3pySkpKyfePGjd4//PCDb30xnInVEi6l1M9Kqa113MYCbwNxQHfgCPDaGR5nglIqWSmVnJmZaa1whRDCocyYMQOgk1IqGSA8wNO+AYmm4aa5u3FxrTmJsourZvyXuxvrFImJiYVxcXHlLi4udO7cuWj37t0N7hprNpvVI488EhUfH58wdOjQ+IyMDPdDhw41qC48MTGxMDo6utzLy0u3adOmdOTIkXkA3bp1Kz5w4IA7wIYNG3wmTJiQAzBx4sScdevW+QKsX7/e95577skBuPfee7OrHnPx4sX+y5cv909ISEjo3Llzwu7duz1TU1PP68NktQp9rfXwhuynlHoPWHSGx5kBzABj8urGiU4IIRzbhAkTuPfee1O01kkeLdvrcD9JuATw6bg4KitqtteqrFDMuT6OOxfvaoxTeHh4nPyudnFxoaKiosHtw959993g7Oxs1y1btqR4eHjoVq1aJRYXFzeocKj6eU0mE56enrpqubKy8qwxmEymWjmG1ppHHnnkyOOPP97gycHrffwLfYDzoZSq3ljuamCrPeIQQghn0CHcT3ooippcPMy4+1Ti4tGw+rpG5urqqktLS2slQXl5eS4hISHlHh4eeuHChX6HDx9u1IHjevToUfj+++8HgZHcJSUlFQD07Nmz4L333gsGeO+9905+WEaOHJk/e/bskLy8PBPA3r173dLT08+rsMpebbj+rZTaopTaDAwFJtspDiGEcHjuriZ8pIeiALj16zRa9SygVc8CHk3ZfHL51q/TbBnG+PHjMzt16nSy0XyVu+++O2fTpk0+8fHxCR999FGL2NjYksY87zvvvHNg9uzZIfHx8QmfffZZi7feeusgwFtvvXVgxowZYfHx8Qnp6eluVftfc801+ddff31O7969O8bHxydcffXVccePH3c5n3MrrZtPLV1SUpJOTk62dxhCCNEsKKXWaa2T5NrZfFX9D8+0z6ZNm/Z169btgqu8ROPYtGlTSLdu3WJOXy/DQgghhBBCWJmUMQshhBCiWVizZo3XrbfeWqMa0t3d3bx58+YmP3CqJFxCCCFE82Y2m82qrl52jqZPnz7Fqamp2+0dR33MZrMC6uyIIFWKQgghRPO2NTMzM8DyZS/sxGw2q8zMzADqGXmhWTWaV0plAvvP8/AQoCk3KpT4LkxTjq8pxwYS34VqyvFFa61DlVIngB32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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "outcome_model = Standardization(make_pipeline(PolynomialFeatures(2), LassoCV(random_state=0)))\n", "tmle = TMLE(\n", " outcome_model=outcome_model,\n", " weight_model=weight_model,\n", " reduced=True\n", ")\n", "\n", "n_samples = 500\n", "n_simulations = 20\n", "\n", "results, true_ate = run_multiple_simulations(tmle, n_simulations, n_samples)\n", "plot_multiple_simulations(results, true_ate);" ] }, { "cell_type": "markdown", "id": "234fb34c-6685-4879-b53f-e8bdfa746bd7", "metadata": {}, "source": [ "This is much better performance by the initial outcome model. Though we can see TMLE is able to slightly correct it.\n", "\n", "Finally, that we have a well-specified outcome model, we can extermly limit our weight model so it is misspecfied and see what happens:" ] }, { "cell_type": "code", "execution_count": 6, "id": "676295c6-9526-4cd4-b95f-0cac4f529788", "metadata": {}, "outputs": [ { "data": { "image/png": "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PSQkxLRo0aJ46NChOQBdunQp3LNnTyDAqlWrwkaPHp0NMGbMmOwVK1aEA6xcuTL8nnvuyQa49957s0qXOXfu3MjFixdHJiUlJSUnJydt3749OD09Pbjy78aJtMMapZRSAPiJFmYK+HBkW5yOE88nczqEGde35a65W6tjFUFBQb9/2Pz8/HA4HJU+f+2tt96KzsrK8l+3bt2moKAgEx8fn1JYWFipHU1l12uz2QgODjalw06n84wZbDbbKV8SYwwPP/zwgccff7zSN4k/7TqqYyFKKaVqvxaNo62OoHyJX5CLwDAnfkGWHOP29/c3xcXFpxRLOTk5frGxsfagoCDz9ddfR+zfv7/Se9sqo1u3bvlTp05tCO4iMDU1NQ+ge/fuef/+97+jAf7973/HlLYfOnTo8ffffz82JyfHBrBz586AjIyMc97xpYWZUkopAAL99E+CAm77chvx3fOI757HI5vW/j5825fbvBlj1KhRmZ06dfr95P9Sd999d/aaNWvCEhMTk6ZPnx7TunXroupc75tvvrnn/fffj01MTEz66KOPYl5//fW9AK+//vqeKVOmNEpMTEzKyMj4/SqZa6655vj111+f3bNnz46JiYlJV199ddtjx475nev6xZi6t+s6NTXVpKWlWR1DKaVqBRFZYYxJ1W1n7VX6O6xo+po1a3Z16dKlWg61qapbs2ZNbJcuXVqVN03/PVJKKaWU8hF68r9SSiml6oxff/015Lbbbjvh8GdgYKBr7dq1taKDWi3MlFJKqbrP5XK5pLyrCuuaXr16Faanp/tsh/Qul0ug4k4D9VCmUkopVfetz8zMjPIUBcoiLpdLMjMzo4D1FbWpkyf/i0gmsPscZ48FfPkESV/O58vZQPNVlearGl/O19IYEyciucBmq8NUA19+r89WZV9LS2NMXEUTV6xY0cjf338q0BndKWMlF7De4XDc3aNHj8PlNaiThVlViEja6a5ssZov5/PlbKD5qkrzVY2v54PakbEy6srrgLr1WlTlaNWslFJKKeUjtDBTSimllPIRWpidaorVAc7Al/P5cjbQfFWl+arG1/NB7chYGXXldUDdei2qEvQcM6WUUkopH6F7zJRSSimlfES9LMxEZIiIbBaRbSLyZDnTg0TkY8/0X0SklRezNReRH0Rko4hsEJGx5bS5UERyRGS15/EXb+XzrH+XiKzz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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "weight_model = IPW(make_pipeline(PolynomialFeatures(2), LogisticRegression(penalty=\"l1\", C=0.00001, solver=\"saga\")))\n", "tmle = TMLE(\n", " outcome_model=outcome_model,\n", " weight_model=weight_model,\n", " reduced=True\n", ")\n", "\n", "n_samples = 500\n", "n_simulations = 20\n", "\n", "results, true_ate = run_multiple_simulations(tmle, n_simulations, n_samples)\n", "plot_multiple_simulations(results, true_ate);" ] }, { "cell_type": "markdown", "id": "73f79aea-015b-4cd2-b146-5a441b0110e6", "metadata": {}, "source": [ "We see that the TMLE knows to ignore the misspecified propensity model. It does little to no correction, essentially resulting the effect of the outcome model" ] }, { "cell_type": "markdown", "id": "cf02470a-0885-4661-9fed-d32e5d581c35", "metadata": {}, "source": [ "Finally, TMLE is usually coupled with \"super learning\" (as both came from Mark van der Laan and his students), which basically a stacking meta-learner of a rich library of base estimators. \n", "We can see how TMLE behaves when both outcome model and treatment model are highly data-adaptive. \n", "Note that we use stacking _CV_ estimators, so we ensure that both the base estimators and the meta estimator use cross validation. \n", "This nested cross validation reudces the risk of information leakage between the base and meta estimators, and so it further ensures no overfitting. \n", "If you recall, TMLE regresses the residuals of the initial estimator, and so it is very important the initial outcome model does not overfit and falsely hide residual bias information." ] }, { "cell_type": "code", "execution_count": 7, "id": "7fb6fca9-6747-4fb1-a435-f857ef1e5b44", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "outcome_model = StackingCVRegressor(\n", " [\n", " GradientBoostingRegressor(n_estimators=10),\n", " GradientBoostingRegressor(n_estimators=30),\n", " GradientBoostingRegressor(n_estimators=50),\n", " HistGradientBoostingRegressor(max_iter=10),\n", " HistGradientBoostingRegressor(max_iter=30),\n", " HistGradientBoostingRegressor(max_iter=50),\n", " RandomForestRegressor(n_estimators=25),\n", " RandomForestRegressor(n_estimators=50),\n", " RandomForestRegressor(n_estimators=100),\n", " SVR(kernel=\"rbf\", C=0.01),\n", " SVR(kernel=\"rbf\", C=0.1),\n", " SVR(kernel=\"rbf\", C=1),\n", " SVR(kernel=\"rbf\", C=10),\n", " SVR(kernel=\"poly\", C=0.01, degree=2),\n", " SVR(kernel=\"poly\", C=0.1, degree=2),\n", " SVR(kernel=\"poly\", C=1, degree=2),\n", " SVR(kernel=\"poly\", C=10, degree=2),\n", " SVR(kernel=\"poly\", C=0.01, degree=3),\n", " SVR(kernel=\"poly\", C=0.1, degree=3),\n", " SVR(kernel=\"poly\", C=1, degree=3),\n", " SVR(kernel=\"poly\", C=10, degree=3),\n", " make_pipeline(PolynomialFeatures(degree=2), Lasso(alpha=0.01)),\n", " make_pipeline(PolynomialFeatures(degree=2), Lasso(alpha=0.1)),\n", " make_pipeline(PolynomialFeatures(degree=2), Lasso(alpha=1)),\n", " make_pipeline(PolynomialFeatures(degree=2), Lasso(alpha=10)),\n", " make_pipeline(PolynomialFeatures(degree=2), Ridge(alpha=0.01)),\n", " make_pipeline(PolynomialFeatures(degree=2), Ridge(alpha=0.1)),\n", " make_pipeline(PolynomialFeatures(degree=2), Ridge(alpha=1)),\n", " make_pipeline(PolynomialFeatures(degree=2), Ridge(alpha=10)),\n", " ],\n", " LinearRegression(),\n", " cv=10,\n", " random_state=0,\n", " # verbose=1,\n", ")\n", "\n", "weight_model = StackingCVClassifier(\n", " [\n", " GradientBoostingClassifier(n_estimators=10),\n", " GradientBoostingClassifier(n_estimators=30),\n", " GradientBoostingClassifier(n_estimators=50),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l1\", C=0.01, solver=\"saga\", max_iter=5000)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l1\", C=0.1, solver=\"saga\", max_iter=5000)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l1\", C=1, solver=\"saga\", max_iter=5000)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l1\", C=10, solver=\"saga\", max_iter=5000)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l2\", C=0.01)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l2\", C=0.1)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l2\", C=1)),\n", " make_pipeline(PolynomialFeatures(degree=2), LogisticRegression(penalty=\"l2\", C=10)),\n", " ],\n", " LogisticRegression(penalty=\"none\"),\n", " cv=10,\n", " random_state=0,\n", " # verbose=1,\n", ")\n", "\n", "outcome_model = Standardization(outcome_model)\n", "weight_model = IPW(weight_model)\n", "\n", "tmle = TMLE(\n", " outcome_model=outcome_model,\n", " weight_model=weight_model,\n", " reduced=True\n", ")\n", "\n", "n_samples = 500\n", "n_simulations = 20\n", "\n", "results, true_ate = run_multiple_simulations(tmle, n_simulations, n_samples)\n", "plot_multiple_simulations(results, true_ate);" ] }, { "cell_type": "markdown", "id": "84dbc187-c613-4a77-8bb1-5578cdcc0b94", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "id": "a5e011e9-9278-455d-a4e4-d501985db715", "metadata": {}, "source": [ "### TMLE Flavors\n", "If you go all the way up to step number 3 where we construct the \"clever covariate\", you'll see an asterisk.\n", "This is because there are multiple flavors for that clever covariate. \n", "All flavors use information from the treatment mechanism as inverse propensity weights. \n", "However, exactly _how_ they use it can slightly differ.\n", "\n", "#### Reduced vs. full form\n", "First, the \"clever covariate\" can either be a single covariate or a matrix. \n", "TMLE requires $\\Pr[A=a|X=x_i] \\forall a \\in A$ - we need to estimate the probabiilty for every individual and for every possible treatment level.\n", "For binary treatment, it is more straight forward, since we have one value (and we can easily calculate its complement). \n", "However, for 3 or more treatment levels, we need to retain more information.\n", "\n", "Therefore, for binary cases, we can use a `reduced` form, which is a single-vector form.\n", "Since we only have two groups, we can code the treated units as $\\frac{1}{\\Pr[A=1|X]}$ and the controls as $-\\frac{1}{\\Pr[A=0|X]}$. That is, simply negating their inverse propensity scores. \n", "The full form, that can captures both binary and poly treatment, codes the clever covariate as a matrix. \n", "For each unit we will have a vector of $\\Pr[A=a_i|X]$ for and 0 for for all $a \\neq a_i$. \n", "We then regress the residual outcomes using multiple regression on a matrix, and estimate multiple $\\epsilon_a$ values rather than a single $\\epsilon$ value.\n", "\n", "\n", "#### Feature vs. weighting\n", "The second alternative is where we use the inverse propensity information.\n", "Up to this point, we described it as a feature (predictor / covariate) we regress on.\n", "However, we can also use the inverse propensity information as _weights_ to the targeting-step logistic model. \n", "\n", "This means we can break down the \"clever covariate\" to two components: \n", "1. The actual inverse-propensity information from the treatment mechanism, and\n", "1. The coding of treatment groups\n", "\n", "Returning to the reduces/full form - using a vector or a matrix is essentially an indication coding:\n", " * In the vector (reduced) version, the coding is 1 for treated and -1 for controls\n", " * In the matrix (full) version, the coding is one-hot (full dummy) encoding.\n", "\n", "`causallib` allow users to control for this 4 flavors using two binary parameters:\n", " * `reduced=True` will create a single vector covariate, while `reduced=False` will create a matrix, and\n", " * `ImportanceSampling=True` will use the inverse propensity as regression weights, while `ImportanceSampling=False` will use it as a covariate." ] }, { "cell_type": "code", "execution_count": 8, "id": "a933cc1a-2f95-41a5-9399-b87ba3252779", "metadata": {}, "outputs": [], "source": [ "from itertools import product\n", "from collections import defaultdict\n", "\n", "def compare_TMLE_flavors(outcome_model, weight_model, n_simulations, n_samples):\n", " true_ates = []\n", " pred_ates = defaultdict(list)\n", " for i in range(n_simulations):\n", " X, a, y, sate = generate_single_dataset(n_samples, seed=i)\n", " \n", " for reduced, imp_samp in product([True, False], [True, False]):\n", " tmle = TMLE(\n", " outcome_model=outcome_model,\n", " weight_model=weight_model,\n", " reduced=reduced,\n", " importance_sampling=imp_samp,\n", " )\n", " tmle.fit(X, a, y)\n", " potential_outcomes = tmle.estimate_population_outcome(X, a)\n", " effect = potential_outcomes[1] - potential_outcomes[0]\n", " \n", " name = str(type(tmle.clever_covariate_)).split(\".\")[-1][:-2]\n", " name = name.lstrip(\"CleverCovariate\") # shorten name\n", " pred_ates[name].append(effect)\n", "\n", " true_ates.append(sate)\n", " \n", " # # true_ate = np.mean(true_ates)\n", " # true_ate = -3.38\n", " pred_ates = pd.DataFrame(pred_ates).rename_axis(\"simulation\").reset_index()\n", " return pred_ates, true_ates\n", "\n", "def plot_tmle_flavor_comparison(pred_ates, true_ates):\n", " pred_ates = pred_ates.melt(id_vars=\"simulation\", value_name=\"ate\", var_name=\"method\")\n", " fig, ax = plt.subplots(figsize=(8,5))\n", " sns.violinplot(y=\"method\", x=\"ate\", hue=\"method\", \n", " data=pred_ates, orient=\"h\", dodge=False, ax=ax)\n", " sns.stripplot(y=\"method\", x=\"ate\", \n", " color=\"lightgrey\", alpha=0.5, \n", " data=pred_ates, orient=\"h\", ax=ax)\n", " ax.legend([]) # ax.legend(loc='center left', bbox_to_anchor=(1, 0.5)) \n", " ax.axvline(x=np.mean(true_ates), linestyle=\"--\", color=\"grey\")\n", " ax.text(np.mean(true_ates), ax.get_ylim()[0] + 0.2, \"True ATE\", color=\"grey\");\n", " # ax.text(true_ate + 0.02, (ax.get_ylim()[1] + ax.get_ylim()[0]) / 2 + 0.1, \"True ATE\", color=\"grey\");" ] }, { "cell_type": "code", "execution_count": 9, "id": "cf56b02b-7b29-44a3-a936-a27831074390", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "outcome_model = Standardization(make_pipeline(PolynomialFeatures(2), LassoCV(random_state=0)))\n", "weight_model = IPW(LogisticRegression(penalty=\"none\", random_state=0))\n", "\n", "pred_ates, true_ates = compare_TMLE_flavors(outcome_model, weight_model, 50, 5000)\n", "plot_tmle_flavor_comparison(pred_ates, true_ates)" ] }, { "cell_type": "markdown", "id": "4949a3b8-222a-4781-8ea4-1bdb07b9aab4", "metadata": {}, "source": [ "We see that all methods are comparable for the relatively simple case at hand." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }