{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Structural Causal Models and Parameters\n", "\n", "## Lab 03 for PH 290: Targeted Learning in Biomedical Big Data\n", "\n", "### Author: [Nima Hejazi](https://nimahejazi.org)\n", "\n", "### Date: 31 January 2018\n", "\n", "### Attribution: adapted from source materials by [David Benkeser](https://www.benkeserstatistics.com/)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "── Attaching packages ─────────────────────────────────────── tidyverse 1.2.1 ──\n", "✔ ggplot2 2.2.1.9000 ✔ purrr 0.2.4 \n", "✔ tibble 1.4.2 ✔ dplyr 0.7.4 \n", "✔ tidyr 0.7.2.9000 ✔ stringr 1.2.0.9000\n", "✔ readr 1.1.1 ✔ forcats 0.2.0 \n", "── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n", "✖ dplyr::filter() masks stats::filter()\n", "✖ dplyr::lag() masks stats::lag()\n" ] } ], "source": [ "options(repr.plot.width = 4, repr.plot.height = 3) ## resizing plots\n", "options(scipen = 999) ## has scientific notation ever annoyed you?\n", "library(tidyverse)\n", "library(ggsci)\n", "set.seed(76548208)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I. Introduction\n", "\n", "In this lab, we review how to simulate from structural causal models (SCMs) and how to approximate causal parameters based on SCMs. We also illustrate how to compare causal parameters to observed data parameters to verify identifiability results discussed in class." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the data structure $X = (W_1,W_2,A,Y)$ and $U = (U_{W,1}, U_{W,2},U_{A},U_Y)$. The first exercise will show how to explicitly simulate data from a structural model. Our causal model stipulates that $(U,X) \\sim P_{U,X}$ for some $P_{U,X} \\in \\mathcal{M}^X$, a model that assumes that $U_A \\perp U_Y$, but otherwise makes no assumptions about the distribution of $(U,X)$. One (of many) such $P_{U,X}$ that is in this model is given by the error distributions \\begin{align*}\n", "U_{W,1} &\\sim \\mbox{Bernoulli}(1/2) \\\\\n", "U_{W,2} &\\sim \\mbox{Bernoulli}(1/2) \\\\\n", "U_A &\\sim \\mbox{Normal}(0,1) \\\\\n", "U_Y &\\sim \\mbox{Normal}(0,1) \\ ,\n", "\\end{align*}\n", "and structural equations \\begin{align*}\n", "f_{W,1}(U_{W,1}) &= U_{W,1} \\\\\n", "f_{W,2}(U_{W,2}) &= U_{W,2} \\\\\n", "f_A(W_1, W_2, U_A) &= I(\\mbox{expit}(W_1 - W_2 + U_A) > 0.5)\\\\\n", "f_Y(W_1, W_2, A, U_Y) &= -W_1 + W_2 + A - U_Y \\ . \n", "\\end{align*}\n", "\n", "Let's think about how we can explicity code this distribution in R. Let's first write a function to represent each structural equation." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# structural equation for W_1\n", "# takes as input a vector U_W1 and returns a vector evaluating\n", "# f_{W,1}(U_W1)\n", "f_W1 <- function(U_W1){\n", " return(U_W1)\n", "}\n", "\n", "# structural equation for W_2\n", "# takes as input a vector U_W2 and returns a vector evaluating\n", "# f_{W,2}(U_W2)\n", "f_W2 <- function(U_W2){\n", " return(U_W2)\n", "}\n", "\n", "# structural equation for A\n", "f_A <- function(W_1, W_2, U_A){\n", " return(as.numeric(plogis(W_1 - W_2 + U_A) > 0.5))\n", "}\n", "\n", "# structural equation for Y\n", "f_Y <- function(W_1, W_2, A, U_Y){\n", " return(-W_1 + W_2 + A - U_Y)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now define a function to generate an observation from this SCM." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
W_1W_2AY
0 0 1 1.3935595
1 0 0 -0.1991701
1 1 0 -0.7243135
0 0 0 -0.6034721
0 0 1 2.7803916
1 0 1 0.7458899
\n" ], "text/latex": [ "\\begin{tabular}{r|llll}\n", " W\\_1 & W\\_2 & A & Y\\\\\n", "\\hline\n", "\t 0 & 0 & 1 & 1.3935595\\\\\n", "\t 1 & 0 & 0 & -0.1991701\\\\\n", "\t 1 & 1 & 0 & -0.7243135\\\\\n", "\t 0 & 0 & 0 & -0.6034721\\\\\n", "\t 0 & 0 & 1 & 2.7803916\\\\\n", "\t 1 & 0 & 1 & 0.7458899\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "W_1 | W_2 | A | Y | \n", "|---|---|---|---|---|---|\n", "| 0 | 0 | 1 | 1.3935595 | \n", "| 1 | 0 | 0 | -0.1991701 | \n", "| 1 | 1 | 0 | -0.7243135 | \n", "| 0 | 0 | 0 | -0.6034721 | \n", "| 0 | 0 | 1 | 2.7803916 | \n", "| 1 | 0 | 1 | 0.7458899 | \n", "\n", "\n" ], "text/plain": [ " W_1 W_2 A Y \n", "1 0 0 1 1.3935595\n", "2 1 0 0 -0.1991701\n", "3 1 1 0 -0.7243135\n", "4 0 0 0 -0.6034721\n", "5 0 0 1 2.7803916\n", "6 1 0 1 0.7458899" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim_obs_scm <- function(n) {\n", " ##############################################\n", " # function to draw n observations from an scm\n", " # n = the number of observations to draw\n", " # returns a data.frame with named columns\n", " ##############################################\n", "\n", " # first we draw the errors\n", " ## draw U_{W,1}\n", " U_W1 <- rbinom(n,1,0.5)\n", " ## draw U_{W,2}\n", " U_W2 <- rbinom(n,1,0.5)\n", " ## draw U_A\n", " U_A <- rnorm(n,0,1)\n", " ## draw U_Y\n", " U_Y <- rnorm(n,0,1)\n", "\n", " # now we can evaluate the observations sequentially\n", " ## evaluate W_1\n", " W_1 <- f_W1(U_W1)\n", " ## evaluate W_2\n", " W_2 <- f_W2(U_W2)\n", " ## evaluate A\n", " A <- f_A(W_1 = W_1, W_2 = W_2, U_A = U_A)\n", " ## evaluate Y\n", " Y <- f_Y(W_1 = W_1, W_2 = W_2, A = A, U_Y = U_Y)\n", "\n", " # return a tibble\n", " out <- as_tibble(list(W_1 = W_1, W_2 = W_2, A = A, Y = Y))\n", " return(out)\n", "}\n", "\n", "# try it out \n", "sim_test <- sim_obs_scm(n = 100)\n", "head(sim_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above function generates a set of $n$ observations that might be observed in pratice were this $P_{X,U}$ to be the true data generating distribution. Because we are simulating the data, we can also perform manipulations on this SCM, as we would like to (but may be unable to) do in practice. \n", "\n", "Let's now define a function that allows us to set the value of $A$ to either 0 or 1 and returns a data set of counterfactual observations, i.e., observations we would have seen if we were able to manipulate the SCM. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
W_1W_2AY_1
0 1 1 1.3922722
1 1 1 1.8913405
1 1 1 -0.3918730
1 1 1 1.7296904
1 1 1 2.0408356
1 1 1 -0.4072731
\n" ], "text/latex": [ "\\begin{tabular}{r|llll}\n", " W\\_1 & W\\_2 & A & Y\\_1\\\\\n", "\\hline\n", "\t 0 & 1 & 1 & 1.3922722\\\\\n", "\t 1 & 1 & 1 & 1.8913405\\\\\n", "\t 1 & 1 & 1 & -0.3918730\\\\\n", "\t 1 & 1 & 1 & 1.7296904\\\\\n", "\t 1 & 1 & 1 & 2.0408356\\\\\n", "\t 1 & 1 & 1 & -0.4072731\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "W_1 | W_2 | A | Y_1 | \n", "|---|---|---|---|---|---|\n", "| 0 | 1 | 1 | 1.3922722 | \n", "| 1 | 1 | 1 | 1.8913405 | \n", "| 1 | 1 | 1 | -0.3918730 | \n", "| 1 | 1 | 1 | 1.7296904 | \n", "| 1 | 1 | 1 | 2.0408356 | \n", "| 1 | 1 | 1 | -0.4072731 | \n", "\n", "\n" ], "text/plain": [ " W_1 W_2 A Y_1 \n", "1 0 1 1 1.3922722\n", "2 1 1 1 1.8913405\n", "3 1 1 1 -0.3918730\n", "4 1 1 1 1.7296904\n", "5 1 1 1 2.0408356\n", "6 1 1 1 -0.4072731" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
W_1W_2AY_0
1 0 0 -0.3711431
1 1 0 -0.8501863
0 0 0 0.6210759
1 1 0 1.6312533
0 0 0 -1.5470715
1 1 0 -1.5102034
\n" ], "text/latex": [ "\\begin{tabular}{r|llll}\n", " W\\_1 & W\\_2 & A & Y\\_0\\\\\n", "\\hline\n", "\t 1 & 0 & 0 & -0.3711431\\\\\n", "\t 1 & 1 & 0 & -0.8501863\\\\\n", "\t 0 & 0 & 0 & 0.6210759\\\\\n", "\t 1 & 1 & 0 & 1.6312533\\\\\n", "\t 0 & 0 & 0 & -1.5470715\\\\\n", "\t 1 & 1 & 0 & -1.5102034\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "W_1 | W_2 | A | Y_0 | \n", "|---|---|---|---|---|---|\n", "| 1 | 0 | 0 | -0.3711431 | \n", "| 1 | 1 | 0 | -0.8501863 | \n", "| 0 | 0 | 0 | 0.6210759 | \n", "| 1 | 1 | 0 | 1.6312533 | \n", "| 0 | 0 | 0 | -1.5470715 | \n", "| 1 | 1 | 0 | -1.5102034 | \n", "\n", "\n" ], "text/plain": [ " W_1 W_2 A Y_0 \n", "1 1 0 0 -0.3711431\n", "2 1 1 0 -0.8501863\n", "3 0 0 0 0.6210759\n", "4 1 1 0 1.6312533\n", "5 0 0 0 -1.5470715\n", "6 1 1 0 -1.5102034" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim_int_scm <- function(n, set_A = 1) {\n", " #########################################################\n", " # function that draws n observations from an SCM that is \n", " # intervened on to set A = set_A\n", " # n = number of observations\n", " # set_A = the value to set A equal to (0 or 1)\n", " # returns a tibble of coutnerfactual observations\n", " #########################################################\n", "\n", " # first we draw the errors\n", " ## draw U_{W,1}\n", " U_W1 <- rbinom(n,1,0.5)\n", " ## draw U_{W,2}\n", " U_W2 <- rbinom(n,1,0.5)\n", " ## draw U_A\n", " U_A <- rnorm(n,0,1)\n", " ## draw U_Y\n", " U_Y <- rnorm(n,0,1)\n", "\n", " # now we can evaluate the observations sequentially\n", " ## evaluate W_1\n", " W_1 <- f_W1(U_W1)\n", " ## evaluate W_2\n", " W_2 <- f_W2(U_W2)\n", " # we are now setting A = 1 for everyone\n", " A <- rep(set_A, n)\n", " ## evaluate Y with the set values of A\n", " Y <- f_Y(W_1 = W_1, W_2 = W_2, A = A, U_Y = U_Y)\n", "\n", " # return a tibble object\n", " out <- as_tibble(list(W_1 = W_1, W_2 = W_2, A = A, Y = Y) )\n", " ## lets rename the Y column to reflect the intervention\n", " colnames(out)[4] <- paste0(\"Y_\",set_A)\n", " return(out)\n", "}\n", "\n", "# try it out\n", "sim_test_a_is_1 <- sim_int_scm(n = 100, set_A = 1)\n", "head(sim_test_a_is_1)\n", "\n", "# and with setA = 0\n", "sim_test_a_is_0 <- sim_int_scm(n = 100, set_A = 0)\n", "head(sim_test_a_is_0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's think about the distribution of the counterfactual random variables $Y_a, a = 0,1$ implied by an intervention on the SCM setting $A=a$. We can use a large sample to approximate this distribution and plot an approximation with a histogram." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nIAESIAHXCfw/8fTUeOB0FrAAAAAASUVORK5CYII=", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAEGWlDQ1BrQ0dDb2xvclNwYWNl\nR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi\n6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lp\nurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZP\nC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q4\n4WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23B\naIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys\n2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y\n5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrl\nSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98\nhTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7C\nlP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmK\nPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZf\nsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJ\nxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19\nzn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNC\nUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU\n97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KT\nYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyA\ngccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/\nqwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7Z0HmBbVucffpbcFaRKKKEZjwShYLupjTRS5imC8\niSXGRDFGbBf1em2xRo1RTFQSNSqKDStGjbkag8YWkBBLjDQbICpNEOltd787/2Pmc75vv15n\ndn/neXa/mVPf8ztn5j19amKeMQwEIAABCEAAAhUl0KKiqZEYBCAAAQhAAAKOAAqYigABCEAA\nAhCoAgEUcBWgkyQEIAABCEAABUwdgAAEIAABCFSBAAq4CtBJEgIQgAAEIIACpg5AAAIQgAAE\nqkAABVwF6CQJAQhAAAIQQAFTByAAAQhAAAJVIIACzhH6aaedZgcffHDC33e+8x37z//8T/vh\nD39oN954o61cuTJlbHfccYcL93//938p3XO1nD9/fq5ebePGjS7NH/zgB/Ewa9eudXbHH398\n3K5cF8mylopBueTNJd4HH3zQ9t9/f2vfvr1tueWW9te//jVlsMsuu8xxPumkkyzbOTdz5841\n1SPVrX/9618p4yvE8umnn7ZBgwbZnDlzCglOGAhAoBIEdBIWJjuB3XffXSeGZfzr0qVL7Je/\n/GWjyC644AIX7q677mrklouFp9hjxx13XGzo0KG5eHd+1q1b59Ls27dvPMyXX37p7LbZZpu4\nXakv0slaLINSy5lvfFOnTo21bNnS8evXr19s8ODBsQ8//DBlNB988EGsQ4cOzu+tt96a0o8s\nGxoaYp7idf5+9KMfpfWXr8OMGTNinTp1cvG++eab+QbHPwQgUCEC9IDzbOU88MAD9sknn7i/\nBQsWuB7Giy++aGeccYatWbPGLrnkEnvooYcSYh02bJh5itn23HPPBPtcbz766CN75JFHsvam\ngvG1bt3apXnRRRcFrct+nU7WYhmUXfAsCai3W19fbz/5yU9c2b/11lv2zW9+M2Wo7bbbzq67\n7jrnduGFF5rqSSqjUYGXXnrJttpqK/vd736Xykvedn/729/s8MMPd3Ux78AEgAAEKkugQoo+\n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", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# simulate a big data set from he SCM on which we intervened to set A = 0\n", "big_int_0 <- sim_int_scm(n = 1e5, set_A = 0)\n", "\n", "# plot the distribution of Y_0\n", "p_y0 <- ggplot(big_int_0, aes(x = Y_0)) +\n", " geom_histogram(aes(y = ..count..), fill = \"blue\", binwidth = 0.1, alpha = 0.8) +\n", " theme_bw() +\n", " xlab(\"Y_0\") +\n", " ggtitle(\"Distribution of Y_0\")\n", "\n", "# simulate a big data set from the SCM on which we intervened to set A = 1\n", "big_int_1 <- sim_int_scm(n = 1e5, set_A = 1)\n", "\n", "# plot the distribution of Y_1\n", "p_y1 <- ggplot(big_int_1, aes(x = Y_1)) +\n", " geom_histogram(aes(y = ..count..), fill = \"blue\", binwidth = 0.1, alpha = 0.8) +\n", " theme_bw() +\n", " xlab(\"Y_1\") +\n", " ggtitle(\"Distribution of Y_1\")\n", "\n", "# approximate the (counterfactual) mean of Y_0\n", "cf_mean_y0 <- mean(big_int_0$Y_0)\n", "## let's add it to the histogram\n", "p_y0 <- p_y0 + geom_vline(xintercept = cf_mean_y0, colour = \"red\")\n", "p_y0\n", "\n", "# approximate the (counterfactual) mean of Y_1\n", "cf_mean_y1 <- mean(big_int_1$Y_1)\n", "## let's add it to the histogram\n", "p_y1 <- p_y1 + geom_vline(xintercept = cf_mean_y1, colour = \"red\")\n", "p_y1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider computing the average treatment effect under $P_{U,X}$, $$\n", "\\Psi_{cf}(P_{U,X}) = E_{P_{U,X}}\\{ f_Y(w_1, w_2, 1, u_Y) - E_{P_{U,X}}\\{f_Y(w_1, w_2, 0, u_Y) \\} \\ . \n", "$$\n", "This quantity can be approximated using our simulated values as follows:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.00320668516922" ], "text/latex": [ "1.00320668516922" ], "text/markdown": [ "1.00320668516922" ], "text/plain": [ "[1] 1.003207" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cf_mean_y1 - cf_mean_y0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's take a look at the distribution of the observed $Y$ implied by this SCM. In particular, let's consider the distribution of $Y$ conditional on $A=a$ for $a=0,1$. A conditional distribution is nothing more than the distribution of a variable in a subset of the population. Here that subset is defined by the observed treatment level." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "0.336417832929758" ], "text/latex": [ "0.336417832929758" ], "text/markdown": [ "0.336417832929758" ], "text/plain": [ "[1] 0.3364178" ] }, "metadata": {}, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAEGWlDQ1BrQ0dDb2xvclNwYWNl\nR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi\n6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lp\nurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZP\nC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q4\n4WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23B\naIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys\n2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y\n5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrl\nSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98\nhTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7C\nlP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmK\nPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZf\nsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJ\nxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19\nzn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNC\nUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU\n97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KT\nYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyA\ngccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/\nqwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7Z0JnBTVncf/M8M1MNyXHKLiKho8kKAgqzEkCqxy\nbsRjDVFECAYJHrsR0USjrEc8IMbFsBIBT1SMErO6idmoURQPNEQBIwQUlVNuGBiYmd73e+Pr\nqa6p7q7qruqu6v69z2emq975f9/36v3rnVUSU0ZoSIAESIAESIAEckqgNKepMTESIAESIAES\nIAFNgAqYFYEESIAESIAE8kCACjgP0JkkCZAACZAACVABsw6QAAmQAAmQQB4IUAHnATqTJAES\nIAESIAEqYNYBEiABEiABEsgDASrgPEBnkiRAAiRAAiRABcw6QAIkEDiB6upqqampCTwdJkAC\nUSJABZxBaX344YcydepU6d27t7Rs2VL/9enTR6655hrZuHFjBjEGG+Sqq66SQYMGyZdffhlP\naM6cOdruf/7nf+J25uLTTz81l/o3ld8Ej3m82bFjh87PpZdemrUUdl5VVVU67jFjxmQV9549\ne2T79u1ZxZFJYKQ5duxYOeKII6S8vFyGDx/uGM2aNWvkO9/5js7rK6+84ujHannLLbdov9de\ne63V2vG6efPmMnLkSEe3dJZ4plB/8bd48eJ03nPmvmnTJvnJT34i55xzjpx33nly++23yz/+\n8Y+cpc+ECoAATsKicUdAvcXHbrjhhlhJSQlOD4upRiWmlHCsU6dO+h52zZo1iz333HPuIsyR\nr9NPP13L98knn8RTVA2HtnvooYfidrt27YpddNFFscGDB8ftcOHkN8FDCG5UY6jzc9xxx2Ut\njZ1XZWWljrtbt24Zx60UR6xLly6xJUuWZBxHpgHPPfdcLX/jxo1j3/zmN2NKYSaNauLEidrv\nUUcdFdu7d29Sf0pB6+cA9f2jjz5K6s84IG2lpMytp98777xTy4Tna+DAgZ7CBuX5888/j7Vp\n00bL1blz5xj+IF/79u1j77zzTlDJMt4CIyAFlp9As2Map7Zt28bmzZsXO3jwoE5PDa3F3nrr\n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\nPbripsHck0D0CLAHHL0yo8QkQAIkQAIFQIAKuAAKkVkgARIgARKIHgEq4OiVGSUmARIgARIo\nAAJUwAVQiMwCCZAACZBA9AhQAUevzCgxCZAACZBAARCgAi6AQmQWSIAESIAEokeACjh6ZUaJ\nSYAESIAECoAAFXABFCKzQAIkQAIkED0CVMDRKzNKTAIkQAIkUAAEqIALoBCZBRIgARIggegR\noAKOXplRYhIgARIggQIgQAVcAIXILJAACZAACUSPAD/GEL0yo8QkQAI+ELB+zIKfJvQBKKPw\nTCBUCrimpkYee+wxGT16tLRq1SohM+vXr5c333xT2rVrJwMHDpSKiooE9z179siSJUsEv/37\n95cePXp4ck/wzBsSIAESIAESCJiA5yHoRx55RH7yk58kFev555+XI444Qvbv35/UTzKH2bNn\ny9y5c2Xv3r0JXh599FEZO3asrFy5Up5++mm58sorZceOHXE/69atk5EjR8qiRYvko48+kssv\nv1yWLl3q2j3ukRckQAIkQAIkkCMCrnrAW7dulYMHD2qRPvjgA3nnnXfkyy+/bCAi/Lz44ouC\n3uqBAwekvLy8gR8ni82bN8s999wj77//fgNnxDVv3jz55S9/KX369JHq6mqZNGmSPPXUU/oX\nAe644w4ZMWKETJ06VUpKSmTBggUyc+ZMWbhwob5P594gUVqQAAmQAAmQQMAEXPWAoQC7d++u\n/2bNmqWHgs299bdnz57y0EMPaUXZtm1b16LfeeedEovF5K677moQBsq+a9euOk44NmrUSIYO\nHSovv/yy9rtt2zZZtWqV7gFD+cIMGzZMNmzYoHvM6dx1AP4jARIgARIggRwTcNUDvuaaa3TP\n89ChQ/LKK6/IZ599JpdddlkDUaEcoXjHjBnTwC2VxbRp06Rz5846Xru/jRs3Srdu3RKsoZC/\n+uorqa2tlU2bNmk32BnTvn17adKkiWzZssVYaSVubqzuvXv3NtY6j7feemv8HheVlZXSq1cv\n2bVrV4J9shv00GEwF21eCJL5DZM9WLrNYxjkhrwwGHWJktx4hmCw3iFbU1OTuA4i2/iShcfL\nMQxkdlOna2N1ZYMy8iOfyeRyY+82/V27Eqe93MTttx/DGW1IlOo05EVZm2fSby5BxGdGdDHd\nWVZW5msS4GHKMl3ErhRw48aNZfr06Tqu4447Tvcsb7755nRxu3aH8k1moGDtC7JatmypCxuV\n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", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "0.656871371117355" ], "text/latex": [ "0.656871371117355" ], "text/markdown": [ "0.656871371117355" ], "text/plain": [ "[1] 0.6568714" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nBCAAgTISQAGXET5JQwACEIBA9RJgCLp6y56cQyC2BDKH8efOja2oCAaBggnQAy4YHQEhAAEI\nQAAChRNAARfOjpAQgAAEIACBggmggAtGR0AIQAACEIBA4QRQwIWzIyQEIAABCECgYAIo4ILR\nERACEIAABCBQOAFWQRfOjpAQgECJCKSuimZFdImgk0zkBOgBR46YBCAAAQhAAALNCcSqB9zY\n2Gi33367HXHEEdazZ880aRctWmTPPfec9e3b10aPHm3du3dPc9+wYYPNmTPH9Dty5EgbOnRo\nKPc0z9xAAAIQgAAEIiYQugd866232jnnnJNTrAcffNB23nln27x5c04/uRyuu+46u+mmm2zj\nxo1pXm677TY79thjbf78+XbvvffaaaedZmvWrEn6WbhwoU2YMMHuv/9+e/PNN+3EE0+0F154\nIbB70iMXEIAABCAAgRIRCNQDXrFihW3bts2J9Nprr9lLL71kn376aTMR5eeRRx4x9Va3bNli\nXbp0aeYnm8WyZcvssssus1dffbWZs+KaNWuWXXXVVTZixAhraGiwyZMn2z333ON+FeCiiy6y\n8ePH29SpU62mpsZmz55tM2bMsLvvvtvd53NvligWEIAABCAAgYgJBOoBSwHuuOOO7u/KK690\nQ8H+fervsGHDbObMmU5R9unTJ7DoF198sSUSCbvkkkuahZGyHzx4sItTjh06dLCxY8fa448/\n7vyuWrXKFixY4HrAUr4y48aNs8WLF7secz53F4D/IAABCEAAAiUmEKgHfOaZZ7qeZ319vT35\n5JP20Ucf2fHHH99MVClHKd6jjjqqmVtLFueee64NHDjQxZvpb8mSJTZkyJA0aynklStXWlNT\nky1dutS5yc43/fr1s44dO9ry5ct9K6fE/ZtU9+HDh/vW5s9BJy28i48//tgNqdfV1aVa57xW\nHDJB/eeMqIgOGpkQqzjJpBcumTjJJE7t2rVzL4Nh8H/ta53DeA/tV6z8ehU6cJ4A/ygGF39j\nzfa6myeI4yOZ/DLM57/Y7nV1W9KiVN2WEaM41SeN1mkqzh89TBO6DDd+HVI7HidOkmvTpk3u\n2SsDlmZJqtxkCuWkcEGfjUAKuLa21qZNm+aE2n333V3P8vzzz3f3xfhPyjeXkYLNXJDVo0cP\np1DWrVtnUtCdOnVyf6lxyI/miVW4LbmnhpHfCy+8MNXK9vP2P0i+9evXp9nnuwnrP198xXCP\n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\nWyOAAm5rJUp+IAABCECgIghUxCKs999/3z744IM0oH379rX9UlZQbNiwwebMmWP6HTlypA0d\nOjTNfz73NM/cQAACEIAABCImUBEK+K677rJnn33WevTokcSx1157JRXwwoULbdKkSTZs2DAb\nMmSI3XDDDTZ9+nQbNWqU85/PPRkpFxCAAAQgAIESEagIBfzuu+/aySefbEceeWRWLBdddJGN\nHz/epk6d6r7nOnv2bJsxY4bdfffd7j6fe9ZIsYQABCAAAQhESCD2c8Bbt261RYsW2W677ZYV\nw6pVq2zBggU2YcIEp2zlady4cbZ48WKbP3++5XPPGimWEIAABCAAgYgJxL4HrOHjpqYme+GF\nF+zKK6+0jRs32kEHHWQnnHCCderUyZYuXeoQDR48OImqX79+1rFjR1u+fHnSLpf78OHDk36U\nzqOPPpq814XiGDRokG3evDnNPteN4pAJ6j9XPMW037Ztm2MYJ5kSiYTLYrlkamrq1AyxZPLl\nauZYRgvJ5NerqMRQ/EHT8BkF9R+VzH68vjyt5bR581Y/yqL8NjY2mjoQDQ0NRYmvtZFIHhnJ\nU67nLlseVI+2bNli7drFoz9YX1/fKk5++Gx5zbSLvQJ+7733nMyqyFOmTLG53nE1DzzwgK1e\nvdqmTZtmS5YscYpYyjjVaL54zZo1pkont1zuqWFUMc8666xUKzfP3Lt3b1u7dm2afb6bsP7z\nxVcMdzGMmykXp8bG/jlR+A1VTg9lcIhKJl95NTY1umclaNb8cEH9l8pfaziNGpXeHD722MpW\ni63Fn3EzeiHXX5zM+vXr4ySOk0UvBfoLa6RHgr6cpte4sCmVwP+hhx7qlKB6oTL77ruvtW/f\n3m655RY7/fTTrba2Nusbph7Erl275nVPzYLilVJPNX//+9+tc+fO1rNnz1TrnNfqoQt+UP85\nIyqig98DVj7iYvyGKXVhXSlly/a27SuVmpqaUorSYlr+g5xN3hYDBnbcntd2Ne0C90CqhVNr\nn+G6ujrXdqhdiYNRmyiZ1GZ26dIlDiI5GdRmqq2Oro6Hy6oU6KZNm7J23ILEpB5w0DYk9gpY\nPVdf+fqZ1+pmKWANP/fv39+9uQuYCtE3eqNSuA4dOrTo7vvXrx6U4447LtXKZs6c6QqiW7du\nafa5bjS0o0YzqP9c8RTTXpVBD1+cZNJDJ1MumbK1iWIkVnFpCMRHdUkyRdWI++8aij9oGnHj\n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", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# simulate large data set\n", "big_obs <- sim_obs_scm(n = 1e5)\n", "\n", "# plot a histogram of the conditional distribution of Y given A = 0 \n", "py_a_is_0 <- big_obs %>%\n", " dplyr::filter(A == 0) %>%\n", " ggplot(., aes(x = Y)) +\n", " geom_histogram(aes(y = ..count..), fill = \"blue\", binwidth = 0.1, alpha = 0.8) +\n", " theme_bw() +\n", " xlab(\"Y\") +\n", " ggtitle(\"Conditional dist. of Y | A = 0\")\n", "\n", "# plot a histogram of the conditional distribution of Y given A = 1\n", "py_a_is_1 <- big_obs %>%\n", " dplyr::filter(A == 1) %>%\n", " ggplot(., aes(x = Y)) +\n", " geom_histogram(aes(y = ..count..), fill = \"blue\", binwidth = 0.1, alpha = 0.8) +\n", " theme_bw() +\n", " xlab(\"Y\") +\n", " ggtitle(\"Conditional dist. of Y | A = 1\")\n", "\n", "# approximate the conditional mean of Y | A = 0 \n", "cond_mean_Y0 <- big_obs %>%\n", " dplyr::filter(A == 0) %>%\n", " summarise(mean(Y)) %>%\n", " as.numeric()\n", "## let's add it to the histogram\n", "py_a_is_0 <- py_a_is_0 + geom_vline(xintercept = cond_mean_Y0, colour = \"red\")\n", "py_a_is_0\n", "cond_mean_Y0\n", "\n", "# approximate the conditional mean of Y | A = 0 \n", "cond_mean_Y1 <- big_obs %>%\n", " dplyr::filter(A == 1) %>%\n", " summarise(mean(Y)) %>%\n", " as.numeric()\n", "## let's add it to the histogram\n", "py_a_is_1 <- py_a_is_1 + geom_vline(xintercept = cond_mean_Y1, colour = \"red\")\n", "py_a_is_1\n", "cond_mean_Y1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we take the mean of the large (\"infinite\") data set we are approximating the parameter $$ \n", "E_P(Y \\mid A = a)\n", "$$\n", "with $$\n", "\\frac{1}{N_a}\\sum\\limits_{i : A_i = a} Y_i \\ ,\n", "$$\n", "where $N_a$ is the number of observations with $A = a$. If $n$ is chosen to be very large, this approximation should be very close to the true integral. \n", "\n", "Consider the parameter that I'll call the \"naive causal effect\":\n", "$$\n", "\\Psi_{naive}(P) = E_P(Y \\mid A=1) - E_P(Y \\mid A=0)\n", "$$\n", "Having evaluated the above code, we can approximate the value of the parameter at this particular $P$ as follows:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "0.320453538187597" ], "text/latex": [ "0.320453538187597" ], "text/markdown": [ "0.320453538187597" ], "text/plain": [ "[1] 0.3204535" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cond_mean_Y1 - cond_mean_Y0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the naive causal effect does not equal the true causal effect even at this effectively infinite sample size. That is, the parameter $\\Psi_{naive}$ does not identify $\\Psi_{cf}$. This should come as no surprise, as we can see that there is confounding in this example. That is, $W_1$ and $W_2$ affect both the probability of having $A = 1$, as well as the value of the outcome $Y$. Let's now explicity confirm that the parameter\n", "$$\n", "\\Psi(P) = E\\{E(Y \\mid A=1, W) - E(Y \\mid A=0, W)\\}\n", "$$\n", "does indeed identify the causal effect." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
ate_wp_w
1.02225720.24952
1.02050860.24973
0.98593550.25136
1.00207330.24939
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " ate\\_w & p\\_w\\\\\n", "\\hline\n", "\t 1.0222572 & 0.24952 \\\\\n", "\t 1.0205086 & 0.24973 \\\\\n", "\t 0.9859355 & 0.25136 \\\\\n", "\t 1.0020733 & 0.24939 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "ate_w | p_w | \n", "|---|---|---|---|\n", "| 1.0222572 | 0.24952 | \n", "| 1.0205086 | 0.24973 | \n", "| 0.9859355 | 0.25136 | \n", "| 1.0020733 | 0.24939 | \n", "\n", "\n" ], "text/plain": [ " ate_w p_w \n", "1 1.0222572 0.24952\n", "2 1.0205086 0.24973\n", "3 0.9859355 0.25136\n", "4 1.0020733 0.24939" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# write a loop to get mean of Y | A = 1, W = w minus\n", "# mean of Y | A = 0, W = w in each strata of W\n", "out <- NULL\n", "for (w1 in c(0, 1)) {\n", " for (w2 in c(0, 1)) {\n", " ate_this_W <- with(big_obs,\n", " mean(Y[A == 1 & W_1 == w1 & W_2 == w2]) -\n", " mean(Y[A == 0 & W_1 == w1 & W_2 == w2])\n", " )\n", " p_this_W <- with(big_obs,\n", " sum(W_1 == w1 & W_2 == w2) / nrow(big_obs)\n", " )\n", " out <- rbind(out, c(ate_this_W, p_this_W))\n", " }\n", "}\n", "out <- as_tibble(out)\n", "colnames(out) <- c(\"ate_w\",\"p_w\")\n", "\n", "# let's look at the matrix we just made\n", "out" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The matrix `out` contains a column that shows the average treatment effect in each strata, as well as the proportion of observations falling in that strata. A few observations stand out:\n", "\n", "- The average causal effect in each strata is equal to the overall average causal effect. Why? \n", "\n", "- The proportion falling in each strata is approximately equal. Why?\n", "\n", "We can use these values to get back the overall causal effect:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.00765702853328" ], "text/latex": [ "1.00765702853328" ], "text/markdown": [ "1.00765702853328" ], "text/plain": [ "[1] 1.007657" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sum(out$ate_w * out$p_w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## III. Optimal Treatment Rules\n", "\n", "Let's consider a slight modification of the first example\n", "\\begin{align*}\n", "U_{W,1} &\\sim \\mbox{Bernoulli}(1/2) \\\\\n", "U_{W,2} &\\sim \\mbox{Bernoulli}(1/2) \\\\\n", "U_A &\\sim \\mbox{Normal}(0,1) \\\\\n", "U_Y &\\sim \\mbox{Normal}(0,1) \\ ,\n", "\\end{align*}\n", "and structural equations \\begin{align*}\n", "f_{W,1}(U_{W,1}) &= U_{W,1} \\\\\n", "f_{W,2}(U_{W,2}) &= U_{W,2} \\\\\n", "f_A(W_1, W_2, U_A) &= I(\\mbox{expit}(W_1 - W_2 + U_A) > 0.5)\\\\\n", "f_Y(W_1, W_2, A, U_Y) &= 2W_1 - 3 W_1W_2 A + W_2 A - A + U_Y\\ . \n", "\\end{align*}" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# this uses the same functions defined in section I above\n", "# for f_W1, f_W2, f_A, but we need to re-define f_Y\n", "f_Y <- function(W_1, W_2, A, U_Y) {\n", " W_1 + W_2 - W_1 * W_2 * A + 3 * W_2 * A - A + U_Y\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we will study intervening in a graph according to a specified treatment rule. There are four possible covariate strata: $(W_1, W_2) \\in \\{ (0,0), (0,1), (1,0), (1,1) \\}$.\n", "\n", "Let's define a new variable\n", "$$\n", "W_S = f_S(W_1, W_2) = I(W_1 = 0, W_2 = 0) + 2 I(W_1 = 0, W_2 = 1) + 3 I(W_1 = 1, W_2 = 0) + 4 I(W_1 = 1, W_2 = 1) \\ . \n", "$$\n", "\n", "We are interested in the optimal treatment rule, which corresponds to picking a subset of the strata to treat. Let's write a function that can simulate from an intervened SCM according to a specified rule." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
W_1W_2W_SAYd
0 0 1 1 -1.7828683
0 0 1 1 -0.8844762
1 0 3 0 0.3308235
0 1 2 0 1.6771381
0 0 1 1 -1.9609462
1 0 3 0 2.0303488
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " W\\_1 & W\\_2 & W\\_S & A & Yd\\\\\n", "\\hline\n", "\t 0 & 0 & 1 & 1 & -1.7828683\\\\\n", "\t 0 & 0 & 1 & 1 & -0.8844762\\\\\n", "\t 1 & 0 & 3 & 0 & 0.3308235\\\\\n", "\t 0 & 1 & 2 & 0 & 1.6771381\\\\\n", "\t 0 & 0 & 1 & 1 & -1.9609462\\\\\n", "\t 1 & 0 & 3 & 0 & 2.0303488\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "W_1 | W_2 | W_S | A | Yd | \n", "|---|---|---|---|---|---|\n", "| 0 | 0 | 1 | 1 | -1.7828683 | \n", "| 0 | 0 | 1 | 1 | -0.8844762 | \n", "| 1 | 0 | 3 | 0 | 0.3308235 | \n", "| 0 | 1 | 2 | 0 | 1.6771381 | \n", "| 0 | 0 | 1 | 1 | -1.9609462 | \n", "| 1 | 0 | 3 | 0 | 2.0303488 | \n", "\n", "\n" ], "text/plain": [ " W_1 W_2 W_S A Yd \n", "1 0 0 1 1 -1.7828683\n", "2 0 0 1 1 -0.8844762\n", "3 1 0 3 0 0.3308235\n", "4 0 1 2 0 1.6771381\n", "5 0 0 1 1 -1.9609462\n", "6 1 0 3 0 2.0303488" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim_rule_int_scm <- function(n, strata_tx) {\n", " ################################################################\n", " # define a function that takes as input\n", " # n = the number of observations to simulate\n", " # strataTrt = the values of W_s to treat \n", " # return a tibble according to the rule-specific intervened SCM \n", " ################################################################\n", "\n", " # first we draw the errors\n", " ## draw U_{W,1}\n", " U_W1 <- rbinom(n, 1, 0.5)\n", " ## draw U_{W,2}\n", " U_W2 <- rbinom(n, 1, 0.5)\n", " ## draw U_A\n", " U_A <- rnorm(n, 0, 1)\n", " ## draw U_Y\n", " U_Y <- rnorm(n, 0, 1)\n", "\n", " # now we can evaluate the observations sequentially\n", " ## evaluate W_1\n", " W_1 <- f_W1(U_W1)\n", " ## evaluate W_2\n", " W_2 <- f_W2(U_W2)\n", " ## evaluate W_S\n", " W_S <- as.numeric(I(W_1 == 0 & W_2 == 0) + 2 * I(W_1 == 0 & W_2 == 1) + \n", " 3 * I(W_1 == 1 & W_2 == 0) + 4 * I(W_1 == 1 & W_2 == 1))\n", " # set A according to strataTrt\n", " A <- as.numeric(W_S %in% strata_tx)\n", "\n", " # evaluate Y with the set values of A\n", " Y <- f_Y(W_1 = W_1, W_2 = W_2, A = A, U_Y = U_Y)\n", "\n", " # return a tibble object\n", " out <- as_tibble(list(W_1 = W_1, W_2 = W_2, W_S = W_S, A = A, Yd = Y) )\n", " return(out)\n", "}\n", "\n", "# simulate data treating strata 1\n", "rule_only_1 <- sim_rule_int_scm(n = 100, strata_tx = 1)\n", "# let's take a look\n", "head(rule_only_1)\n", "\n", "# confirm that anyone with W_S == 1 has A = 1\n", "all(rule_only_1$A[rule_only_1$W_S == 1] == 1)\n", "# and that anyone without W_S == 1 has A = 0 \n", "all(rule_only_1$A[rule_only_1$W_S != 1] == 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now perform a grid search to determine the optimal treatment rule under this distribution." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0.744640697024526
  2. \n", "\t
  3. 1.49553173170272
  4. \n", "\t
  5. 0.74630593609533
  6. \n", "\t
  7. 1.25039032058969
  8. \n", "\t
  9. 1.25441661420076
  10. \n", "\t
  11. 0.501774407421421
  12. \n", "\t
  13. 0.995384427545952
  14. \n", "\t
  15. 1.24687517908915
  16. \n", "\t
  17. 1.74724049790319
  18. \n", "\t
  19. 1.00260034722492
  20. \n", "\t
  21. 1.00481997469567
  22. \n", "\t
  23. 1.49896032989568
  24. \n", "\t
  25. 0.75392361887479
  26. \n", "\t
  27. 1.49986413206916
  28. \n", "\t
  29. 1.24039538950792
  30. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.744640697024526\n", "\\item 1.49553173170272\n", "\\item 0.74630593609533\n", "\\item 1.25039032058969\n", "\\item 1.25441661420076\n", "\\item 0.501774407421421\n", "\\item 0.995384427545952\n", "\\item 1.24687517908915\n", "\\item 1.74724049790319\n", "\\item 1.00260034722492\n", "\\item 1.00481997469567\n", "\\item 1.49896032989568\n", "\\item 0.75392361887479\n", "\\item 1.49986413206916\n", "\\item 1.24039538950792\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.744640697024526\n", "2. 1.49553173170272\n", "3. 0.74630593609533\n", "4. 1.25039032058969\n", "5. 1.25441661420076\n", "6. 0.501774407421421\n", "7. 0.995384427545952\n", "8. 1.24687517908915\n", "9. 1.74724049790319\n", "10. 1.00260034722492\n", "11. 1.00481997469567\n", "12. 1.49896032989568\n", "13. 0.75392361887479\n", "14. 1.49986413206916\n", "15. 1.24039538950792\n", "\n", "\n" ], "text/plain": [ " [1] 0.7446407 1.4955317 0.7463059 1.2503903 1.2544166 0.5017744 0.9953844\n", " [8] 1.2468752 1.7472405 1.0026003 1.0048200 1.4989603 0.7539236 1.4998641\n", "[15] 1.2403954" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
    1. \n", "\t
    2. 1
    3. \n", "\t
    4. 3
    5. \n", "
    \n", "
  1. \n", "
\n" ], "text/latex": [ "\\begin{enumerate}\n", "\\item \\begin{enumerate*}\n", "\\item 1\n", "\\item 3\n", "\\end{enumerate*}\n", "\n", "\\end{enumerate}\n" ], "text/markdown": [ "1. 1. 1\n", "2. 3\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "[[1]]\n", "[1] 1 3\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# first create a list that contains all possible \n", "# subsets of strata. We do this using the combn function\n", "strata_list <- vector(mode = \"list\", length = 0)\n", "for(i in seq_len(max(rule_only_1$W_S))){\n", " strata_list <- c(strata_list, \n", " combn(1:4, i, simplify = FALSE))\n", "}\n", "\n", "# you can look at the list to see what this command\n", "# did (omitted here for space)\n", "#strata_list\n", "\n", "# write a function that computes E(Y_d)\n", "get_EYd <- function(strata, n = 1e5) {\n", " # simulate data according to rule\n", " dat <- sim_rule_int_scm(n = n, strata_tx = strata)\n", " # calculate mean of Yd\n", " return(mean(dat$Yd))\n", "}\n", "\n", "# apply the function over strataList\n", "all_EYd <- unlist(lapply(strata_list, get_EYd))\n", "# look at all the values for E(Y_d)\n", "all_EYd\n", "# optimal rule is the smallest value of E(Y_d)\n", "opt_index <- which(all_EYd == min(all_EYd))\n", "# what rule is it \n", "strata_list[opt_index]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's confirm the identification result given in the notes. We can define a function to simulate observed data from the SCM, that is, without intervening:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sim_rule_obs_scm <- function(n) {\n", " # first we draw the errors\n", " ## draw U_{W,1}\n", " U_W1 <- rbinom(n, 1, 0.5)\n", " ## draw U_{W,2}\n", " U_W2 <- rbinom(n, 1, 0.5)\n", " ## draw U_A\n", " U_A <- rnorm(n, 0, 1)\n", " ## draw U_Y\n", " U_Y <- rnorm(n, 0, 1)\n", "\n", " # now we can evaluate the observations sequentially\n", " ## evaluate W_1\n", " W_1 <- f_W1(U_W1)\n", " ## evaluate W_2\n", " W_2 <- f_W2(U_W2)\n", " ## evaluate W_S\n", " W_S <- as.numeric(I(W_1 == 0 & W_2 == 0) + 2 * I(W_1 == 0 & W_2 == 1) + \n", " 3 * I(W_1 == 1 & W_2 == 0) + 4 * I(W_1 == 1 & W_2 == 1))\n", " # evaluate A according to f_A \n", " A <- f_A(W_1 = W_1, W_2 = W_2, U_A = U_A)\n", "\n", " # evaluate Y with the set values of A\n", " Y <- f_Y(W_1 = W_1, W_2 = W_2, A = A, U_Y = U_Y)\n", "\n", " ## return a data.frame object\n", " out <- data.frame(W_1 = W_1, W_2 = W_2, W_S = W_S, A = A, Y = Y) \n", " return(out)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now can simulate data from the observed data distribution implied by $P_{U,X}$. Recall from class that the optimal rule could be defined as $I(B_0(W) > 0)$, where $$\n", "B_0(W) = E(Y \\mid A=1, W) - E(Y \\mid A=0, W)\n", "$$ \n", "is the \"BLIP\" function. Let's now write a function that simulates a large observed data set and computes the BLIP function in each strata." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
1
\n", "\t\t
-0.999097777389746
\n", "\t
2
\n", "\t\t
1.99642757615479
\n", "\t
3
\n", "\t\t
-0.994804842175574
\n", "\t
4
\n", "\t\t
1.00062891391532
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[1] -0.999097777389746\n", "\\item[2] 1.99642757615479\n", "\\item[3] -0.994804842175574\n", "\\item[4] 1.00062891391532\n", "\\end{description*}\n" ], "text/markdown": [ "1\n", ": -0.9990977773897462\n", ": 1.996427576154793\n", ": -0.9948048421755744\n", ": 1.00062891391532\n", "\n" ], "text/plain": [ " 1 2 3 4 \n", "-0.9990978 1.9964276 -0.9948048 1.0006289 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 3
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 3\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 3\n", "\n", "\n" ], "text/plain": [ "[1] 1 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "get_blip <- function(strata, n = 1e6) {\n", " # simulate data based on rule\n", " dat <- sim_rule_obs_scm(n = n)\n", " \n", " EY_A1_WS <- dat %>%\n", " dplyr::filter(W_S %in% strata & A == 1) %>%\n", " summarise(mean(Y)) %>%\n", " as.numeric()\n", " \n", " EY_A0_WS <- dat %>%\n", " dplyr::filter(W_S %in% strata & A == 0) %>%\n", " summarise(mean(Y)) %>%\n", " as.numeric()\n", "\n", " blip <- EY_A1_WS - EY_A0_WS \n", " return(blip)\n", "}\n", "\n", "# now compute the blip for each strata\n", "all_blips <- unlist(lapply(split(1:4, 1:4), get_blip))\n", "all_blips\n", "\n", "# which strata have blip < 0\n", "as.numeric(which(all_blips < 0))" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 2 }