{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 22 - Debiased/Orthogonal Machine Learning\n",
" \n",
"The next meta-learner we will consider actually came before they were even called meta-learners. As far as I can tell, it came from an awesome 2016 paper that sprung a fruitful field in the causal inference literature. The paper was called *Double Machine Learning for Treatment and Causal Parameters* and it took a lot of people to write it: Victor Chernozhukov, Denis Chetverikov, Mert Demirer, Esther Duflo (which, by the way, won the 2019 Economics Nobel Prize along with Abhijit Banerjee and Michael Kremer \"for their experimental approach to alleviating global poverty\"), Christian Hansen, Whitney Newey and James Robins. No wonder it was a very good paper and I even took the liberty of representing its authors as the Avengers just because (credits to Paul Goldsmith-Pinkham who had this idea first). \n",
" \n",
"![img](./data/img/debiased-ml/avengers.png)\n",
" \n",
"There is only one problem with the paper: it is incredibly difficult to read (which is expected, since it's an econometric paper). And since this book is all about making causal inference mainstream, here we are, trying to make Debiased/Orthogonal Machine Learning intuitive. \n",
" \n",
"But what makes it so special as to deserve it's own chapter, apart from the other meta-learners? The thing that caught my attention was how well justified this Debiased/Orthogonal ML is. The other methods that we've seen so far, the T-learner, S-Learner and X-learner, all seem a bit hackish. We can give an intuitive explanation about why they work, but they didn't seem very general. In contrast, with Debiased/Orthogonal Machine Learning, we have a general framework we can apply, which is both very intuitive and also very rigorous. Another bonus is that Debiased/Orthogonal ML works for both continuous and discrete treatments, something that neither the T, not X learner could do. Not to mention that the papers describing it do an incredible job with the asymptotic analysis of this estimator. So without further ado, let's get down to it. \n",
" \n",
"Once again, as a motivating example, we will resort to our ice cream sales dataset. Just as a reminder, here we are trying to find heterogeneity on the effect of price on sales. Our test set has randomly assigned prices but our training data has only observational prices, which is potentially biased. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:49.948430Z",
"start_time": "2023-07-27T16:57:47.460143Z"
},
"tags": [
"hide-input"
]
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"import seaborn as sns\n",
"from nb21 import cumulative_gain, elast\n",
"import statsmodels.formula.api as smf\n",
"from matplotlib import style\n",
"style.use(\"ggplot\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:49.976580Z",
"start_time": "2023-07-27T16:57:49.950024Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(123)\n",
"sns.scatterplot(data=train.sample(1000), x=\"price\", y=\"sales\", hue=\"weekday\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One source of bias is very clear. As we can see, prices are much higher on the weekend (weekdays 1 and 7), but we can also have other confounders, like temperature and cost. So, if we want to do any causal inference with it, we will need to correct this bias. \n",
"\n",
"## ML for Nuisance Parameters\n",
" \n",
"One way we can try to remove this bias is by using a linear model to estimate the treatment effect of prices on sales while controlling for the confounders. \n",
" \n",
"$$\n",
"Sales_i = \\alpha + \\tau price_i + \\beta_1 temp_i + \\beta_2 cost_i + \\pmb{\\beta_3} Weekday_i + e_i\n",
"$$\n",
" \n",
"where $\\pmb{\\beta_3}$ is a vector of parameters associated with each weekday dummy. \n",
" \n",
"Notice that we are only interested in the $\\tau$ parameter because that's our treatment effect. We are going to call the other parameters nuisance parameters because we don't care about them. But, as it turns out, even if we don't care about them, we have to get them right, because if we don't, our treatment effect will be off. That's sort of annoying. \n",
" \n",
"For instance, if we think about it, the relationship between `temp` and sales is probably not linear. First, as temperature increases, more people will go to the beach and buy ice cream, so sales will increase. But, at some point, it becomes too hot and people decide it is best to stay home. At that point, sales will drop. The relationship between `temp` and sales probably peaks somewhere and then decreases. Which means the above model is probably wrong. It should have been something like\n",
" \n",
"$$\n",
"Sales_i = \\alpha + \\tau price_i + \\beta_1 temp_i + \\beta_2 temp^2_i + \\beta_3 cost_i + \\pmb{\\beta_4} Weekday_i + e_i\n",
"$$\n",
" \n",
"with a quadratic term.\n",
" \n",
"![img](./data/img/debiased-ml/non-linear.png)\n",
"\n",
"\n",
"Thinking about how to model nuisance parameters is already boring with just a few covariates. But what if we had tens or hundreds of them? With modern datasets, this is pretty common. So, what can we do about it? The answer lies the coolest Econometric theorem ever derived.\n",
"\n",
"\n",
"### Frisch-Waugh-Lovell\n",
" \n",
"Frisch, Waugh and Lovell were 20th century econometricians who noticed the coolest thing about linear regression. This isn't new to you, as we've talked about it in the context of regression residuals and when talking about fixed effects. But since this theorem is key to understanding Orthogonal-ML, it's very much worth recapping it.\n",
" \n",
"Suppose you have a linear regression model with a set of features $X_1$ and another set of features $X_2$. You then estimate that model's parameters.\n",
" \n",
"$\n",
"\\hat{Y} = \\hat{\\beta_1} X_1 + \\hat{\\beta_2} X_2\n",
"$\n",
" \n",
"where $X_1$ and $X_2$ are feature matrices (one column per feature and one row per observation) and $\\hat{\\beta_1}$ and $\\hat{\\beta_2}$ are row vectors. You can get the exact same $\\hat{\\beta_1}$ parameter by doing the following steps\n",
" \n",
"1. regress the outcome $y$ on the second set of features $\\hat{y^*} = \\hat{\\gamma_1} X_2$\n",
"2. regress the first set of features on the second $\\hat{X_1} = \\hat{\\gamma_2} X_2$\n",
"3. obtain the residuals $\\tilde{X}_1 = X_1 - \\hat{X_1}$ and $\\tilde{y}_1 = y - \\hat{y^*}$\n",
"4. regress the residuals of the outcome on the residuals of the features $\\tilde{y} = \\hat{\\beta_1} \\tilde{X}_1$\n",
" \n",
"This is insanely cool. Here, we have a generic representation, but notice that one set of features can be just the treatment variable. This means you can estimate all the nuisance parameters separately. First, regress the outcome on the features to get outcome residuals. Then, regress the treatment on the features to get treatment residuals. Finally, regress the outcome residuals on the feature residuals. This will yield the exact same estimate as if we regress the outcome on the features and treatment at the same time.\n",
" \n",
"But don't take my word for it. FWL is something that everyone interested in causal inference should do at least once. In the example below, we estimate the treatment effect by first estimating the effects of the covariates on the outcome (sales) and treatment (price)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:50.294818Z",
"start_time": "2023-07-27T16:57:50.206080Z"
}
},
"outputs": [],
"source": [
"my = smf.ols(\"sales~temp+C(weekday)+cost\", data=train).fit()\n",
"mt = smf.ols(\"price~temp+C(weekday)+cost\", data=train).fit()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then, with the residuals, we estimate the ATE of price on sales."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:50.312711Z",
"start_time": "2023-07-27T16:57:50.296201Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
"
coef
std err
t
P>|t|
[0.025
0.975]
\n",
"
\n",
"
\n",
"
Intercept
-4.96e-13
0.111
-4.49e-12
1.000
-0.217
0.217
\n",
"
\n",
"
\n",
"
price_res
-4.0004
0.110
-36.428
0.000
-4.216
-3.785
\n",
"
\n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"smf.ols(\"sales_res~price_res\", \n",
" data=train.assign(sales_res=my.resid, # sales residuals\n",
" price_res=mt.resid) # price residuals\n",
" ).fit().summary().tables[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We've estimated the ATE to -4, meaning that each unit increase in price will lower sales by 4 units.\n",
" \n",
"Now, let's estimate the same parameter, but this time, we will include the treatment and the covariates in the same model."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:50.363272Z",
"start_time": "2023-07-27T16:57:50.313900Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"-4.000429145475454"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"smf.ols(\"sales~price+temp+C(weekday)+cost\", data=train).fit().params[\"price\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see, they are the exact same number! This shows that estimating the treatment effect all at once or separating in the FWL steps is mathematically the same.\n",
" \n",
"Another way of saying this is that the treatment effect can be derived from **regression on residuals**, where we obtain the residuals from regressing $Y$ on $X$ and regress it on the residuals of regressing $T$ on $X$. Let's say that $\\sim$ is the regression operator, so we can summarise FWL theorem as follows. \n",
" \n",
"$\n",
"(Y - (Y \\sim X)) \\sim (T - (T \\sim X))\n",
"$\n",
" \n",
"which is essentially estimating the causal parameter $\\tau$ in the following model\n",
" \n",
"$\n",
"Y_i - E[Y_i | X_i]\n",
"= \\tau \\cdot (T_i - E[T_i | X_i]) + \\epsilon\n",
"$\n",
" \n",
"As I've said, FWL is so awesome because it allows us to separate the estimation procedure of the causal parameter from that of the nuisance parameters. But we still didn't answer our initial question, which is how can we avoid all the hassle from having to specify the correct functional form on the nuisance parameters? Or, in other words, how can we focus only on the causal parameter without having to worry about the nuisance parameters? Here is where machine learning comes to play.\n",
"\n",
"![img](./data/img/debiased-ml/drown-ols.png)\n",
"\n",
"### Frisch-Waugh-Lovell on Steroids\n",
"\n",
"Double/Debiased ML can be seen as Frisch, Waugh and Lovell theorem on steroids. The idea is very simple: use ML models when constructing the outcome and treatment residuals: \n",
" \n",
"$\n",
"Y_i - \\hat{M}_y(X_i)\n",
"= \\tau \\cdot (T_i - \\hat{M}_t(X_i)) + \\epsilon\n",
"$\n",
" \n",
"Where $\\hat{M}_y(X_i)$ is estimating $E[Y|X]$ and $\\hat{M}_t(X_i)$ is estimating $E[T|X]$.\n",
" \n",
"The idea is that ML models are super flexible, hence, they can capture interactions and non linearities when estimating the $Y$ and $T$ residuals while still maintaining a FWL style orthogonalisation. This means we don't have to make any parametric assumption about the relationship between the covariates $X$ and the outcome $Y$ nor between the covariates and the treatment in order to get the correct treatment effect. Provided we don't have unobserved confounders, we can recover the ATE with the following orthogonalisation procedure:\n",
" \n",
"1. Estimate the outcome $Y$ with features $X$ using a flexible ML regression model $M_y$. \n",
"2. Estimate the treatment $T$ with features $X$ using a flexible ML regression model $M_t$. \n",
"3. Obtain the residuals $\\tilde{Y} = Y - M_y(X)$ and $\\tilde{T} = T - M_t(X)$\n",
"4. regress the residuals of the outcome on the residuals of the treatment $\\tilde{Y} = \\alpha + \\tau \\tilde{T}$\n",
" \n",
"where $\\tau$ is the causal parameter ATE, which we can estimate, for example, with OLS. \n",
" \n",
"The power you gain with ML is flexibility. ML is so powerful that it can capture complicated functional forms in the nuisance relationships. But that flexibility is also troublesome, because it means we now have to take into account the possibility of overfitting.\n",
" \n",
"![img](./data/img/debiased-ml/ml-problem.png)\n",
" \n",
"Chernozhukov et al (2016) has a much more in depth and rigorous explanation about how overfitting can be troublesome and I definitely recommend you check it out. But here, I'll go on with a more intuition based explanation. \n",
" \n",
"To see the issue, suppose that your $M_y$ model is overfitting. The result is that the residual $\\tilde{Y}$ will be smaller than it should be. It also means that $M_y$ is capturing more than only the relationship between $X$ and $Y$. Part of that something more is the relationship between $T$ and $Y$, and if $M_y$ is capturing some of that, the residual regression will be biased towards zero. In other words, $M_y$ is capturing the causal relationship and not leaving it to the final residual regression. \n",
" \n",
"Now to see the problem in overfitting $M_t$, notice that it will explain more of the variance in $T$ than it should. As a result, the treatment residual will have less variance than it should. If there is less variance in the treatment, the variance of the final estimator will be high. It is as if the treatment is the same for almost everyone. And if everyone has the same treatment level, it becomes very difficult to estimate what would happen under different treatment levels. As a side note, this will also happen when $T$ is a deterministic function of $X$, meaning positivity is being violated.\n",
" \n",
"Those are the problems we have when using ML models, but how can we correct them? The answer lies in what we will call cross prediction and out-of-fold residuals. \n",
" \n",
"![img](./data/img/debiased-ml/cross-prediction.png)\n",
" \n",
"We will split out data into K parts of equal size. Then, for each part k, we will estimate the ML models on all the other K-1 samples and make the residuals on the k part. Notice that these residuals are made using out-of-fold prediction. We fit the model on one part of the data, but make the predictions and residuals on another part. \n",
" \n",
"so even if the model does overfit, it won't drive the residuals to zero artificially. Finally, we combine the predictions on all the K parts to estimate the final causal model $\\tilde{Y} = \\alpha + \\tau \\tilde{T}$.\n",
" \n",
"OK, we've covered a lot of ground and it might be getting hard to keep up without an example. To go along with all that theory, let's go through a step by step implementation of the Double/Debiased ML. As we do so, I'll take the opportunity to explain what each step is doing. \n",
" \n",
"First, let's estimate the nuisance relationship using ML models. I'll start with the treatment model $M_t$. We will use a LGBM model to predict prices from the covariates `temp`, `weekday` and `cost`. These predictions will be cross predictions, which we can get from using `sklearn`'s `cross_val_predict` function. I'm also adding the average $\\hat{\\mu_t}$ to the residuals just for visualization purposes."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:50.668802Z",
"start_time": "2023-07-27T16:57:50.364990Z"
}
},
"outputs": [],
"source": [
"from lightgbm import LGBMRegressor\n",
"from sklearn.model_selection import cross_val_predict\n",
"\n",
"y = \"sales\"\n",
"T = \"price\"\n",
"X = [\"temp\", \"weekday\", \"cost\"]\n",
"\n",
"debias_m = LGBMRegressor(max_depth=3)\n",
"\n",
"train_pred = train.assign(price_res = train[T] -\n",
" cross_val_predict(debias_m, train[X], train[T], cv=5)\n",
" + train[T].mean()) # add mu_t for visualization. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that I'm calling the $M_t$ model the debias model. That's because the role this model is playing on the Double/Debias ML is one of debiasing the treatment. The residuals $\\tilde{T} = T - M_t(X)$ can be viewed as a version of the treatment where all the confounding bias from $X$ has been removed by the model. In other words, $\\tilde{T}$ is orthogonal to $X$. Intuitively, $\\tilde{T}$ can no longer be explained by $X$, because it already was. \n",
" \n",
"To see that, we can show the same plot we've seen earlier but now replacing price with the price residuals. Remember that, before, weekends had higher prices? Now, that bias is gone. All the weekdays have the same price residual distribution. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:50.853054Z",
"start_time": "2023-07-27T16:57:50.669907Z"
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(123)\n",
"sns.scatterplot(data=train_pred.sample(1000), x=\"price_res\", y=\"sales\", hue=\"weekday\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The role of $M_t$ is to debias the treatment, but what about $M_y$? Its role is to remove the variance from $Y$. Hence, I'll call it the denoising model. Intuitively, $M_y$ is creating a version of the outcome where all the variance due to $X$ has been explained away. As a result, it becomes easier to do causal estimation in $\\tilde{Y}$. Since it has less noise, the causal relationship becomes easier to see. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.121138Z",
"start_time": "2023-07-27T16:57:50.856180Z"
}
},
"outputs": [],
"source": [
"denoise_m = LGBMRegressor(max_depth=3)\n",
"\n",
"train_pred = train_pred.assign(sales_res = train[y] -\n",
" cross_val_predict(denoise_m, train[X], train[y], cv=5)\n",
" + train[y].mean())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we plot the same graph as before, but now replacing sales with sales residual, we can see that the variance in $Y$ is much smaller than it was before. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.304005Z",
"start_time": "2023-07-27T16:57:51.122746Z"
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(123)\n",
"sns.scatterplot(data=train_pred.sample(1000), x=\"price_res\", y=\"sales_res\", hue=\"weekday\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is now easy to see the negative relationship between prices and sales. \n",
" \n",
"Finally, to estimate that causal relationship, we can run a regression on the residuals."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.316529Z",
"start_time": "2023-07-27T16:57:51.305417Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
"
coef
std err
t
P>|t|
[0.025
0.975]
\n",
"
\n",
"
\n",
"
Intercept
224.5586
0.443
506.469
0.000
223.689
225.428
\n",
"
\n",
"
\n",
"
price_res
-3.9228
0.071
-54.962
0.000
-4.063
-3.783
\n",
"
\n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final_model = smf.ols(formula='sales_res ~ price_res', data=train_pred).fit()\n",
"final_model.summary().tables[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see, when we use the residualized or orthogonalised version of sales and price, we can be very confident that the relationship between prices and sales is negative, which makes a lot of sense. As we increase prices, demand for ice cream should fall.\n",
" \n",
"But if we look at the un-residualized or raw relationship between prices and sales, because of bias, we find a positive relationship. That is because, in anticipation to high sales, prices are increased. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.330057Z",
"start_time": "2023-07-27T16:57:51.318476Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
"
coef
std err
t
P>|t|
[0.025
0.975]
\n",
"
\n",
"
\n",
"
Intercept
192.9679
1.013
190.414
0.000
190.981
194.954
\n",
"
\n",
"
\n",
"
price
1.2294
0.162
7.575
0.000
0.911
1.547
\n",
"
\n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final_model = smf.ols(formula='sales ~ price', data=train_pred).fit()\n",
"final_model.summary().tables[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CATE Estimation with Double-ML\n",
" \n",
"So far, we've seen how Double/Debiased ML allow us to focus on estimating the Average Treatment Effect (ATE), but it can also be used to estimate treatment effect heterogeneity or Conditional Average Treatment Effect (CATE). Essentially, we are now saying that the causal parameter $\\tau$ changes depending on the unit's covariates. \n",
" \n",
"$\n",
"Y_i - {M}_y(X_i)\n",
"= \\tau(X_i) \\cdot (T_i - {M}_t(X_i)) + \\epsilon_i\n",
"$\n",
" \n",
"To estimate this model, we will use the same residualised version of price and sales, but now we will interact the price residuals with the other covariates. Then, we can fit a linear CATE model.\n",
" \n",
"$\n",
"\\tilde{Y_i} = \\alpha + \\beta_1 \\tilde{T_i} + \\pmb{\\beta}_2 \\pmb{X_i} \\tilde{T_i} + \\epsilon_i\n",
"$\n",
" \n",
"Once we've estimated such a model, to make CATE predictions, we will use the randomised test set. Since this final model is linear, we can compute the CATE mechanically:\n",
" \n",
"$\n",
"\\hat{\\mu}(\\partial Sales_i, X_i) = M(Price=1, X_i) - M(Price=0, X_i)\n",
"$\n",
"\n",
"where $M$ is our final linear model"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.413079Z",
"start_time": "2023-07-27T16:57:51.331888Z"
}
},
"outputs": [],
"source": [
"final_model_cate = smf.ols(formula='sales_res ~ price_res * (temp + C(weekday) + cost)', data=train_pred).fit()\n",
"\n",
"cate_test = test.assign(cate=final_model_cate.predict(test.assign(price_res=1))\n",
" - final_model_cate.predict(test.assign(price_res=0)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To check how good this model is in terms of differentiating units with high price sensitivity from those with low price sensitivity, we will use the cumulative elasticity curve. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.546353Z",
"start_time": "2023-07-27T16:57:51.414414Z"
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEJCAYAAACXCJy4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA8V0lEQVR4nO3dd3hUVfrA8e+ZTEJCJ4YWQKWJVAUpQpBeIlUEDsVCcUFcsQOrwrIq8gNcRGV1UVRAscBRkLKI9BoLYEURFAUpAQUikBBKyvn9cQMiJhAyk9xk5v08zzxk5pbzvpnwzp1zzz1XWWsRQggR+DxuByCEECJvSMEXQoggIQVfCCGChBR8IYQIElLwhRAiSEjBF0KIICEFXwghgoQUfFHgKKVmKaVsxiNNKbVPKfWmUqrCJbazSqnb8ypOIfIbKfiioNoAlAeuBPoD9YH3XI0oE0qpsIK8fxFYpOCLguqMtfagtXa/tXY9MB1oqpQqntMdKqXaK6XilFInlVL7lVIzlVJXnLe8gVJqqVLqN6VUklJqs1Iq9oJ97FZKPa2U+q9S6ggQp5RqlfHtor1Sar1SKlkptU0p1fGCbctmfHs5pJRKzIilxXnLz+6ns1Jqo1LqFDA0p/mK4CMFXxR4SqlooBeQlvHIyT7aAAuBOUA94BbgauADpZTKWK14xvJWQANgGbBIKXXNBbu7H/gNaAoMOO/1ycD/AdcBW4C5SqmSGe1HAGuAYsDNON9YPgRWKKVqXrD/Z4FngJrAgpzkK4KUtVYe8ihQD2AWkAokAcmAzXhMvsR2Frg9i2VrgYkXvHZlxjbXX2SfXwOjz3u+G1h1wTqtMvZz63mvlct4rWPG84HAPsB7wbargecv2M8dbr8H8iiYD6/fP0GEyBuf4Rw9hwMaaA/8E0Ap9R1wVcZ6v1hra2djf42AG5VSwzNZVh34SilVGngSaINTsL0Z7V91wfqbsmjjq7M/WGsPKqXSgLLntV8OOPrHFwoACgEns7l/IS5KCr4oqE5aa3dm/PxtRrfKS8BgoBMQmrEsJZv78wCTgNmZLDuY8e8snKP+UcAunEI8B7jwxOmJLNo4k0W7Z//9HuiRyTrJ2dy/EBclBV8EiieA75RS/7XWbsnB9luA2ud9iGSmBTDKWrsIQClVBKgCfJuD9jJr/07guLX2Nz/sT4i/kJO2IiBYa7cD/wMmXGLVK5VS11/wKAOMBborpZ7LeK2qUipWKfV6xglVgB3AbUqpukqp64F3gRA/pfA2zreGJUqpDkqpq5VSTZRSjymlbvFTGyLIScEXgeQZoJ1Squ1F1hkPfHnBY7C1dg1O33xdnDH+3wDPAYn80S00COf/zCac0TEfAZv9Ebi19hTQEudIfybwAzAfaAz84o82hFDWyh2vhBAiGMgRvhBCBAkp+EIIESSk4AshRJCQgi+EEEEiv4/DlzPKQghx+VRmL+b3gk98fHyOtouKiuLw4cN+jiZ/k5wDX7DlC5Lz5YqOjs5ymV8KvtY6FngB5yKU14wxEy9Y3gpnJsJdGS/NN8Y85Y+2hRBCZI/PBV9rHYIzh0l7nNn+NmutFxljtl2w6gZjTBdf2xNCCJEz/jhp2xjYaYz52RhzBmcyqe5+2K8QQgg/8keXTgVg73nP9wFNMlmvqdb6ayAeGGGM+S6znWmth5JxFx9jDFFRUTkKyuv15njbgkpyDnyBmq+1loSEBFJTU/+y7LfffiPYZgTITs5er5fIyEgumE774tv4GhiZnw2+MNIvgKuMMUla604485BUz2xnxpjpOLerA7A5PXEhJ3qCQ7DlHKj5njx5ktDQULzev5Ykr9eb6QdBIMtOzikpKezbt4+IiIg/vX6xk7b+6NLZB1Q673lFnKP4c4wxx40xSRk/fwiEaq0D7zBFCJEj6enpmRZ7kTWv10t6evrlbeOHdjcD1bXWlYH9QF+g//kraK3LAb8aY6zWujHOB80RP7QthAgAl9MtIf5wub83nwu+MSZVaz0c54bOIcAMY8x3WuthGctfxrnB9D1a61ScuwT1NcYEV6ec8Cubng7xe0hJTMAeTwKPgqMJ2IRDcOx3VPSVcE0dVOEizvrWQuIx55F0HE4kgscDhSIgPAKKFofipVCFCjnrp5xx1ilSDBV64Q2tsojp1Ek4cwqKFEeF+GuafCH8J79Pj2zlwqvsy08527Q0SDwK+37B7v8FTp5AVakB1WqiChfNejtrYf9u7K4fnRe8oeD1osLCITwcUlOxX2/CfvEJHEu4eBDKA5UqQ8oZOPIbnDl96cALRYBNgzMZdyMMC4NqtVG1roeSkc6HwIkkOHXS2W/KGezRIxC/FxIO/bGfwkWhWAkoWgyKFkdFFM7IJRSKFEVVquzEFlUO5cl+z2p+eo/9KTk5mcKFC2e6LC/68BMSEujTpw8Ahw4dIiQkhMjISACWLFlCWNjFP/Q//vhjQkNDadSokV/iyW7Omf3eMvrwC+aVtiL/sGlpsG8X9sdt8Gs8JB3Hnkh0iuDJZDh5Ak6fhtRUsBf0LSoP1qaDUlC6nFP4PCEQGgrFSqCKlQAs9ruv4Ohfe/v+dFgSFgZ1GqKua0zxMmU5/vvvkJ6GKlEKrijjFNpffsJu/wb70/dQKAJVuwFElUWVKOkczRcpBunpTuE+lYxNOg7Hj8Kx350j/yLFnKL9637stq+w78/8c0ChYc4jLMyJv1otiK4EEYWdbxCJx//4/SQcwp5MhtQU55F8wvmGAhASAmHhEFbI+aZRpKjzraJEKbiqKqryNVDhalQm/dvOPs7+ZtRlfXCIP4uMjGTFihUAPPvssxQpUoRhw4Zle/tPPvmEIkWK+K3g5xYp+CJLztH2L9jvv8Zu+wp2bnMKJDgFsWhx5wi2RCSqXCUoXBgKhf9xJFu4CKrCVVDhKggtBLt2OB8W8Xuw6WmQluYcJf9+GLvnJ6cYXlMXVfcG1DV1IMQLaanO62dOw+lTzjZVaqDCnZEJ4VFRJGV2xFujDqpGnWzneqmeUHv0iJN74aJQuGimBTi7bMoZ53ew52c4dNDJ7cxpOHXS+YA4fhS76wfYuMIp5yEhEFkaIktz9IrSpP0aD4d/dT6czvJ44OrqqGvrOXmXiYaSV/gUZ7D75ptvePLJJzlx4gSRkZE899xzlC1bltdff53Zs2fj9XqpXr06jz/+OLNnzyYkJIR58+bx9NNP06RJZiPT3SddOgHE15ztiUSnC2bXDuxP2+Gn7U6fN0C5Cqhr60G1WqjqtVGR+WOQVaC+z9ZaOPKbU/j3/gxHDmGP/EZI8gnSipdERZWBUqUhJOOo/tRJ7M7vYdcPzjcXcL5NFSvhfBic/X9etgLq6mrOh0O9xufOWbjt/K6J9DmvYvfuOrdMKeXzOHxVqTKevkOyte6zzz5L4cKFWbp0KTNnzuSKK65g4cKFrFu3jilTptCgQQM++eQTChUqxLFjxyhRokSOvhVcjHTpCL+xCYexm9fDr/HYE0lOl8yv8X/uSikTjapzA1xTG1XzetQVpd0LOAgppZwuqKiy0Oimc69f6gPOnkqGXT9iD/8Kvx+GowlOsfd4IC0NG78Hu3oJpKZgy5THM+A+59uU+JPTp0+zY8cO+vbtCzjDRsuUKQNAzZo1GT58OLGxscTGxroZ5mWTgh8Azna9pCQdxZ5OgYgI+D0Bft2H/fUApKc5fcSeEOy3W+C7r5w+9uIlna6ZIsWco/eKVztdMFdVzehTFwWNCi8MNa+7aBeVTU2B7d+Q/s4rpP/7cVTrzqiu/VDFiudZnBdz4ZG4GxdeWWu55pprWLx48V+Wvfnmm3z66acsX76c559/njVr1uRpbL6Qgl8A2fQ0OHYUfovHfvUZ9ouPIeEwlxiz4igVherUC9WsLapM+VyOVORHyhsKdW7A86+p2A9mY1f/D7tuKdS6HtWoBapGXYiMCuqx8YUKFSIhIYEtW7bQsGFDUlJS+Pnnn6levTrx8fHExMTQuHFjFixYwIkTJyhSpAhJSUluh31JUvDzGZuSAju3Of2xp086I15SzmDPjiA59rszHDEtzdnA64XaDVDd+lO8dBmO/3rQGS1TIhJVrgKUjXZOoJ45DSkpUKw4yiNjxAWoQuGovkOwN3XAfroWu3kDdubzzoniiCJQ8SpUTDvn4CDIir/H4+GVV15h7NixHD9+nLS0NP72t79RpUoV7rvvPhITE7HWMmTIEEqUKEH79u25++67WbZsmZy09UHAnrS11sK2r5y+9BRnGKNNToIft/0xXjw0zCnWGUMXKVEKVbwUREY5R+pXlHZOokY4J23ye865Idhyzs18rbWweyf2lx9h327noGP/L1DzOjx33IsqXS5X2gX3x+HnN3LSNkBYa+H7r0lf9I4zCqZIMWfstfJAaCgqpi2q9g3OsMLwiEvvUAg/UUpB5eqoys68hjY9Hbt+GXbeLNKfGI7nbyNQ9W90OUrhCyn4ecCmpMB3X2C3bsFu/dwZPVEqCnXbPc5X5tBQt0MU4i+Ux4NqdTO2XiPSpz5J+nsz8FzXWC7wKsCk4Ocim3wCu/4j7MrFTr97eIRzYqz7bajGLaTQiwJBRUahOvfBTn8Gvv0c6uXvq0lF1qTg+5lNTYXt32C/+Bi7eYNzdWat6/EMuA9q1nNGSAhRwKj6N2JLXkH6qsWESMEvsKTg+4k9cxq7dB529f8gOQnCI1D1b0S164a6sqrb4QnhE+X1olrdjF3wFjZ+jzMbqShwpOD7gd36OenvvuLMi9KgKZ5mbZ2um2xOqytEQaBadMT+by52zRLUbfe4HY7IATn7kkP2VDLpcStJe+ZR0qc+CSEheB4eR8g9j6GuayzFXgQcVawEqkkL7MernSHEAaZSpUq0b9+edu3a0bFjRzZv3uzX/T/44IP873//A2DEiBH88MMPft1/dsgR/mWwRw5hv/sC+92XzsmrM6edyah6D0K17iInYUXAU226YONWYTeuRHW4xe1w/Co8PPzcFMlr165l4sSJzJs3L1famjx5cq7s91Kk4F+ETU+Dn3Zgv9mM/WYzxO9xFpSKQt3YGtWsjTNVb5BdhSiCl7qyKlSpgf1kNQRYwT9fYmIiJUo480mdOHGCQYMGcezYMVJTUxk1ahQdO3YkOTmZu+++mwMHDpCens4DDzxA9+7ds5xW+Xy9evXin//8J9dddx3Vq1fnrrvuYuXKlYSHhzNz5kzKly/PkSNHePTRR9m/fz8ATz75pM/z7UvBz4RNT8Nu2oBd9I7TLx8SAtVrOxdF1bkByleSIi+ClmrcAjvnVeyBfajyFXOljV69ev3RXsb0yF26dGHgwIGcPHmSO+644y/b9O7dmz59+pCQkMDQoUP/tOz999+/ZJunTp2iffv2nD59mt9++w1jDODMq/P6669TrFgxEhIS6Nq1Kx06dGDNmjWUK1eO2bNnA3D8+HFSUlIYM2bMn6ZVnjRpElOmTMmy3eTkZBo0aMCjjz7K008/zdtvv82IESMYO3YsQ4YMoXHjxuzfv5/+/fuzbt26bP3+siIF/zz2VDL2q03Yj+Y5l5RXrIwaMgJV54Zz90YVItipG5ph576G3bwB1a2f2+H4zfldOlu2bOGBBx5g9erVWGuZOHEin332GUopDh48yKFDh7j22msZN24c48ePp127djRp0oTt27dnOa1yVsLCwmjfvj0AdevWZcOGDQBs2LDhT/38SUlJJCUlUbRo1rcIvZSgL/g25YxT5Devh2+/cO7AVCYaNXQk6oYYuapQiAuokldA9drYLRuxXfvmyrfd84/IL5xXJiIi4qJH7JGRkdk6or+Yhg0bkpCQwJEjR1i1ahVHjhxh6dKlhIaG0qRJE06fPk3VqlVZunQpq1evZsKECbRs2ZLY2Ngsp1XOitfrPfc7DAkJOZdreno6ixYtIiLCf1OsBG01s7/8RPpb/yV9xADnCsKff0Dd1AHPyAl4xv0XT6ObpNgLkQXVqDkc2Ot8Ew5AO3fuJC0tjVKlSpGYmEhUVBShoaHExcWxb98+AA4ePEhERAQ9e/Zk2LBhbN26lapVq56bVhkgJSWFHTt25CiGli1bMmvWrHPPv/32W5/zCrojfPvDd6R/aOC7LyEsDFW/KapZW7i2rkwbLEQ2qQbNsO9Mx27eiKp4tdvh+MXZPnxwJjl8/vnnCQkJ4dZbb2XAgAHcfPPN1K5dm2rVqgGwfft2nn76aZRShIaGMmHCBMLCwjKdVrlGjRqXHc+4ceN4/PHHadeuHampqTRp0oRJkyb5lGNQTI9srYUdW0lf/C788B0UK4HqcAuqRWxA9c0H21TBEHw556d806b8E478hufpl33u1pHpkf9MpkfOIbtjqzMV8Q/fQclIVN8hqJs6oMLyx82bhSioVKObsG++CHt+hqtk+pCCwC8FX2sdC7wAhACvGWMmXrBcZSzvBCQDA40xX/ij7ayk7t9D2qtT4OtNTqHvN9Qp9HIFrBB+oRo0xb49Dbt5PUoKfoHg81lJrXUI8BJwM1AL6Ke1rnXBajcD1TMeQ4FpvrabFXvqJOlzXuXIA7fBjq2oWwfg+b/peNp0kWIvhB+pIsWgXiPshhXYk8k+7Sufdy3nW5f7e/PHMJTGwE5jzM/GmDPAHKD7Bet0B940xlhjzKdASa117txB2xuK3fYViY1b4xn/Mp6be0qhFyKXeDr1huQk7Jolvu3H4wm6fnpfpaam4rnMkYT+6NKpAOw97/k+4MI7+Ga2TgXgwIU701oPxfkWgDGGqKioyw5oeZc76dW3H/cfT2fUqFEUL178svdREHm93hz9vgqyYMs53+UbFcXvNzQlZeUiInsPwBOR+YnXS7HWkpCQkGnRT09PD7pvANnJOTQ0lLJly17WCXN/FPzMWrsw0uysA4AxZjow/ew6ORmRULZCRXr27Mm///1vZsyYwcMPP8ztt9+O1xvY56jz0wiOvBJsOefHfG37HtjPP+Hw/LfwdLzVp32FhPx1aHR+zDm3ZSdnay1Hjhz5y+sZo3Qy5Y8unX1ApfOeVwQuHEuZnXX8pkKFCsycOZOlS5dyzTXXMHr0aPr06RN0RwlC5AVV9VqoVR+77APs6dNuhyMuwh+HvJuB6lrrysB+oC/Q/4J1FgHDtdZzcLp7jhlj/tKd42/16tXjvffeY8WKFZw6dQqlFKmpqfzwww/UqnXheWUhRE55uvYlfdI/sOuWBty0yYHE5yN8Y0wqMBxYBnzvvGS+01oP01oPy1jtQ+BnYCfwKvB3X9vNLqUUHTp0oFu3bmfjpUOHDjz44IPk9KIuIcSfqWo1oUZd7IoF2NQUt8MRWQiKK23Pd/z4cf7zn//w+uuvo5Ri6NCh3HvvvT7NQJdfSF9n4MvP+dqtn5M+9UnU4IfwNG3tt/3m55xziy85X+xK26CbHax48eKMHj2adevWERsby9SpUxk8eLDbYQlR8NVpAOUrOUf5+ftAMmgFXcE/q1KlSrz00kssXryYkSNHAs7R/5o1a+SPVYgcUEqh2neHvbtg+zduhyMyEbQF/6wGDRqcu23Ym2++ye23307//v357rvvXI5MiIJH3dgKipUgfcVCt0MRmQj6gn++oUOH8uSTT/LNN9/QsWNHHnnkEQ4ePOh2WEIUGCo0DNWmM2zdgj2w99IbiDwlBf88YWFh/O1vfyMuLo6hQ4cyb948xowZ43ZYQhQoqmUnCA3DLl/gdijiAlLwM1GyZEnGjh3LunXrzhX8PXv2MGfOHNLS0lyOToj8TRUrjmrWBvvpGuyx390OR5xHCv5FXHXVVVx99dUAzJ07l0ceeYSOHTuyfv16dwMTIp9T7W+BtDTsquzf21XkPin42TRixAhefvllTpw4Qb9+/bj99tvZvn2722EJkS+pstFQvyl23VLsKd+mThb+IwU/m5RSdO3albVr1zJ27Fi++OIL3njjDbfDEiLf8nTsAcknsBtWuB2KyCAF/zIVKlSIu+++m40bNzJq1CgANm/ezHPPPcfJkyddjk6I/ENVqQHX1MauXIiVue7zBSn4ORQZGUmpUqUAWLt2LZMnT6Z58+YYY0hPT3c5OiHyB0+HWyHhMHbLBrdDEUjB94uRI0fywQcfUL58eR566CFiY2P5+OOP3Q5LCPfVvcGZbuGj+Vg5EHKdFHw/ady4MYsWLeKll17i2LFjfP31126HJITrlMeDiu0J+3+Bbza7HU7Qk4LvRx6Ph1tuuYV169adm5BtwYIFPProo0E3258QZ6nGLSCqLOkfvifzVLlMCn4uCA8Pp1ChQgD88ssvvPPOO8TExPCf//xHTuyKoKO8Xucof9cP8P1XbocT1KTg57IHHniA1atXExMTw8SJE2nRogXLly93Oywh8pRq1hZKRpK+5D23QwlqUvDzQLVq1ZgxYwbvvfceUVFRnDlzBkBG84igoUJDUR1vhR++xf64ze1wgpYU/DzUrFkzlixZQufOnQHO3Xzlp59+cjkyIXKfuqmjM3Xyh3KU7xYp+HnM4/GglHP3saJFixIXF0ebNm0YM2YMR44ccTk6IXKPKlQI1bozfPs59pBMO+4GKfguOjsVc//+/XnzzTeJiYlh4UK5cYQIXCqmLSgPduNKt0MJSlLwXRYVFcWECRNYtWoVN954I1dddRUAycnJMoRNBBwVWRrqNMB+vBIrU43nOSn4+UT16tWZNWsW119/PQD//Oc/6dq1K5s2bXI3MCH8zHNTBziaAN9+7nYoQUcKfj7VtGlTDhw4QI8ePRgyZAg///yz2yEJ4R91G0LxkqRvkOHJeU0Kfj7Vq1cvNm7cyMiRI1m7di2tW7fmgw8+cDssIXymvF5nXP7WLdijMlAhL3l92VhrHQnMBa4GdgPaGPOXe5pprXcDiUAakGqMaehLu8EiIiKCBx98kP79+zNlyhSaNGkCwMGDBylVqtS5q3mFKGhU8/bYj+Zh41ahOmu3wwkavh7hPwqsMsZUB1ZlPM9Ka2PM9VLsL1+ZMmWYOHEi0dHRWGu5//77ad26NYsXL5YTu6JAUmWjoUZd7MYV2HQ5eZtXfC343YGzt316A7jFx/2JS1BKce+991K4cGGGDRtG9+7d2bJli9thCXHZPK1uhsO/yiyaecjXgl/WGHMAIOPfMlmsZ4HlWuvPtdZDfWwz6LVs2ZJly5YxefJk9u7dS/fu3WX8vih46jeFyNKkr1jkdiRB45J9+FrrlUC5TBaNvox2Yowx8VrrMsAKrfV2Y8z6LNobCgwFMMYQFRV1Gc38wev15njbguK+++5j0KBBTJs2jT59+uD1ejlw4AAVK1Y8dzeuQBcM7/P5Ai3fE137kPTGi5Q4foTQKjUyXSfQcs6O3MpZ+dIHrLXeAbQyxhzQWpcH1hpjMn/X/tjmCSDJGDM5G03Y+Pj4HMUWFRUVdHPQR0ZGUrduXQ4fPsxDDz3EnXfeSVhYmNth5apge58DLV+bnET6qMGoBs3wDH4w03UCLefs8CXn6OhoAJXZMl+7dBYBAzJ+HgD8pV9Ba11Ea13s7M9AB+BbH9sVmfB4PEybNo169erxr3/9i9atW/Phhx/KiV2Rb6nCRVHN2mI3r8ce+8sAP+Fnvhb8iUB7rfWPQPuM52ito7XWH2asUxbYqLX+GtgELDHGfORjuyILtWrV4p133uGtt96iUKFCDBkyhBUrVrgdlhBZUm27Qmoqdu1St0MJeD516eQB6dK5DBfmnJqaypIlS+jSpQshISGsXr2a6tWrU6lSJRej9K9ge58DNd+0/4yDn3fgmfQ6KuzP15cEas4Xk1+7dEQ+5vV66d69OyEhIaSkpDBy5EhatmzJ+PHjOXbsmNvhCXGOp0MPSDqOjVvldigBTQp+kAgNDWXx4sV069aNadOmERMTw8yZM0lJSXE7NCHgmtpQpQZ22XyZRTMXScEPItHR0Tz//PN89NFH1KxZkzFjxvDVV1+5HZYQKKXwxPaEI79ht2x0O5yAJQU/CNWpUwdjDIsXL6ZRo0YAvPHGG3z99dcuRyaC2nWNoVxF7EfzZWRZLpGCH6SUUjRo0ACAkydPMnXqVDp16sR9993H/v37XY5OBCPl8aBie8K+XfDdF26HE5Ck4AsiIiJYs2YNw4cPZ8mSJbRo0YIJEyaQmJjodmgiyKgmLaBUFOlL57kdSkCSgi8AKF68OI899hgbNmygU6dOTJ8+PeiGwgn3KW8oql1X+OFb7L5dbocTcKTgiz+pUKEC//nPf/jkk0+oXLkyAP/6179YuXKl9KuKPKFi2kFomFyIlQuk4ItMlSvnzJd39OhRVq9ezYABA+jTpw/ffiuzYojcpYoUQzVsjv10HfZUstvhBBQp+OKiSpYsyerVqxk3bhzbtm0jNjaWBx98kCNH5NZ0IveolrFw+iT203VuhxJQpOCLSwoNDWXw4MHExcUxbNgw1q9fT0hIiNthiUBWpQZUqoxdt1S6Ev1ICr7IthIlSjBmzBji4uIoWbIkaWlp3Hbbbbz99tukpqa6HZ4IIEopVMubYd9uUnZIN6K/SMEXly0iIgKAhIQEkpKSGDVqFB06dGD16tVyNCb8RjVpCeERnFz2gduhBAwp+CLHSpcuzYIFC5g+fTqnT5/mjjvuoH///jKcU/iFCo9A3diaU3GrscePuh1OQJCCL3yilKJz586sWbOGJ554ghMnTlCiRAkA6eYRPlNtukDKGezaDy+9srgkKfjCL8LCwhgyZAgLFy4kNDSUpKQkWrRowZQpU0hOlqF1ImdU+YqENYzBrvkQe+a02+EUeFLwhV8p5dx34eTJk9SpU4dnn32W5s2bM2fOHNJk2luRA0W693fmyv90jduhFHhS8EWuKF26NNOnT2fBggVUqFCBRx55hI4dO/L773LfUnF5QmtfD1dVwy5fiE1PdzucAk0KvshVjRo1YtGiRUybNo3rrruOkiVLAkjhF9mmlEJ1uAV+3Q9bt7gdToEmBV/kOqUU3bp149lnn0Upxf79+2ncuDGjRo3i0KFDbocnCgB1QwxEliZ9uQzR9IUUfJHnChcuTL9+/Zg7dy4xMTE8//zznDx50u2wRD6mQkJQbbvCD99h9/zkdjgFlhR8kedKlSrFU089xZo1a2jRogX//ve/admypYzmERelmreDsEIyi6YPpOAL11SpUoXXXnuN+fPnM2jQIAoXLgzAjh07XI5M5EeqcFFUk5bYz9ZiTyS5HU6BJAVfuK5Jkybcc889AHz55Ze0adOGAQMG8OOPP7ocmchvVKtOcOYM9uNVbodSIEnBF/nKtddey+OPP85nn31G27Zteeyxx2SqBnGOurIKVL0Wu3apDNHMAa8vG2utewNPADWBxsaYTMdMaa1jgReAEOA1Y8xEX9oVgSsiIoJ7772Xvn37MmXKFGbPns3y5cv55JNPCAsLczs8kQ+oVp2wr0+B77+G2vXdDqdA8fUI/1vgVmB9VitorUOAl4CbgVpAP611LR/bFQHuiiuuYPz48axevZqnnnqKsLAwrLWsWLGCdDmyC2rqhhgoVoL0NUvcDqXA8angG2O+N8Zc6gxbY2CnMeZnY8wZYA7Q3Zd2RfCoVq0anTt3BmDVqlUMHDiQLl268Omnn7ocmXCLCg1FNW8P32zBJsh1HJfDpy6dbKoA7D3v+T6gSVYra62HAkMBjDFERUXlqFGv15vjbQuqQM9Za01aWhpjx46lZ8+edOvWjUmTJlGlShW3Q8szgf4eZyaznFO7ao4sfZ/CWzdTpOedLkWWe3Lrfb5kwddarwTKZbJotDFmYTbaUJm8luVdMowx04HpZ9fL6Qm7qKiooDvZFww5d+zYkRYtWvDqq6/y4osv0rlzZ9atW4fHExzjD4LhPb5QpjmHhkO1WiStXExyi5vPTdoXKHx5n6Ojo7NcdsmCb4xpl6NW/7APqHTe84pAvI/7FEEsIiKC+++/n379+pGYmIjH4+HUqVO8++679OvXj/DwcLdDFHlANWuDffNF2P0jVL7G7XAKhLw4LNoMVNdaV9ZahwF9gUV50K4IcKVLl6Zx48YALFu2jDFjxtCqVSsWLlwot1oMAuqGGAgNw3682u1QCgyfCr7WuofWeh/QFFiitV6W8Xq01vpDAGNMKjAcWAZ877xkvvMtbCH+rHv37rz77rsUK1aMv//973Tt2pVNmza5HZbIRapwEdT1TbCb1mNTUtwOp0BQ+fxIyMbH56z3R/o6g8OFOaelpfH+++/zzDPPUKFCBRYuXBhQ/bvyHv+Z/fZz0l94Es+wR1E3NMvjyHKPH/rwM/2jD44zXSJohISE0KdPHzZs2MBLL72EUopDhw4xbtw4mYM/ENW6HkpEkv6JdOtkhxR8EZAKFy5MpUrOWIH169czffp0YmJieOWVVzh9Wu6NGiiUJwR1Y0v49nPs8aNuh5PvScEXAa9nz54sX76c+vXr89RTT9G6dWuWLJGrNAOFurE1pKVhP49zO5R8Twq+CAo1a9bk7bff5u2336Zw4cJ8+OGHbock/ERVvBoqXIX9bJ3boeR7UvBFUGnVqhXLli1jwoQJAHz//ff8/e9/Z8+ePS5HJnyhmrSEn7ZjDx10O5R8TQq+CDohISEUL14cgO3bt7Ns2TJatmzJuHHjOHbsmMvRiZxQjW4CwG7e4HIk+ZsUfBHUevTowcaNG+nRowevvPIKzZo1Y/bs2W6HJS6TiioL1WpiP1snF91dhBR8EfTKly/PlClTWLZsGXXr1mX//v0AWGuleBQgqnFLiN8D+3e7HUq+JQVfiAy1a9fm3XffZcSIEYAzHXPPnj356quv3A1MZItq2BxCQrCfZXl7jqAnBV+I8yil8HqdOQVPnTrFTz/9ROfOnRk+fDj79u1zOTpxMapYcahV35lqQW6Skykp+EJkoUuXLsTFxXH//fezdOlSWrRowbRp09wOS1yEatISEg7B1kzvthr0pOALcRFFixblH//4B+vXr6dr166ULFkSgNTUVFJkwq58R90QA2WiSZ/3BjYtze1w8h0p+EJkQ4UKFXjhhRfo168fAG+99RZt27Zl+fLlcmI3H1FeL55eA+HAXuzGFW6Hk+9IwRciB66++moABg0aRO/evdm6dau7AYk/XN8EqtfCLnwbezLZ7WjyFSn4QuRAq1atWLVqFePHj2fHjh3Exsby3HPPuR2WwDnx7ul9FyQew3403+1w8hUp+ELkUGhoKAMHDiQuLo7hw4fTsGFDABITE0lKSnI5uuCmKldHNW6JXbEA+/sRt8PJN6TgC+Gj4sWL89hjj3HTTc7l/c899xwxMTHMnj2b1NRUl6MLXqp7f0g5g42TvvyzpOAL4WfdunWjatWqPProo7Rv355Vq1bJiV0XqDLloUZd7MerZVx+Bin4QvjZ9ddfz7x583j99ddJSUnhzjvvZMqUKW6HFZRUTDs4dBB+3OZ2KPmCFHwhcoFSitjYWNasWcO4cePo3r07APv37+fAgQMuRxc8VINmEB6BjVvpdij5ghR8IXJRaGgogwcPplq1agCMGzeOm266icmTJ3PixAmXowt8qlAhVKObsF98jD110u1wXCcFX4g89Pjjj9O+fXuee+45mjdvzjvvvEOaXBGaq1SztnD6lNwCESn4QuSpK6+8kmnTprFo0SKuvPJKRo4cyYsvvuh2WIGt6rVQtoJ06wBetwMQIhjdcMMNLFiwgCVLltCsWTMAtm7ditfrpWbNmi5HF1iUUqhmbbAfzMb+Go8qG+12SK7xqeBrrXsDTwA1gcbGmEynqNNa7wYSgTQg1RjT0Jd2hQgESim6dOly7vn48eOJi4ujb9++jBgxgrJly7oYXWBRzdo4Uy2sX4bqPcjtcFzja5fOt8CtQHbuONDaGHO9FHshMjdt2jTuuusu3nvvPZo3b85zzz1HcrLMBeMPquQVqPpNsRtXYE+fdjsc1/hU8I0x3xtjdvgrGCGCWalSpXjiiSdYs2YNrVu3ZvLkyRhj3A4rYKjWnSE5Cbs5eO+IlVd9+BZYrrW2wCvGmOlZrai1HgoMBTDGEBUVlaMGvV5vjrctqCTnwBAVFcX8+fP57LPPqF+/PmFhYSxZsoTw8HA6duwYcPleir/eY3tFS45UqozasIzI7n1RSvkhutyRW3/Xlyz4WuuVQLlMFo02xizMZjsxxph4rXUZYIXWersxJtOP2YwPg7MfCPbw4cPZbOLPoqKiyOm2BZXkHFiqVq3K8ePHAZg4cSKbNm0iNjaWf/zjH1xzzTUuR5d3/Pkep7eIxb49jcOb4lBVr/XLPnODLzlHR2d9UvqSBd8Y0y5Hrf55H/EZ//6mtf4AaEz2+v2FEMC7777LrFmzmDp1Km3btqV///6MGDGC0qVLux1agaJubIWd/wZ2zZJ8XfBzS66Pw9daF9FaFzv7M9AB52SvECKbwsPDGTZsGNu2bWPQoEHMmTOHzz//3O2wChwVHoFq2gb7eRz2+O9uh5PnfCr4WuseWut9QFNgidZ6Wcbr0VrrDzNWKwts1Fp/DWwClhhjPvKlXSGCVVRUFE899RRxcXF07NgRgBkzZvDee++RLjNCZotq3QnS0rDLF7gdSp5T+XzaVhsfH5+jDQO5bzcrknPguzBfay29e/fmk08+oW7duowdO/bchVyBIjfe4/QZz2M3b8Az/mVUZP7rFvNDH36mZ6RlagUhCjClFMYYXnzxRRISEujduzcDBw5k165dboeWr6nutwFgF73jciR5Swq+EAWcx+OhR48erFu3jscff5xNmzbJTJyXoK4ojWrTGfvxGuz+X9wOJ89IwRciQERERHDvvfeyefNm6tSpA8CYMWN48cUXOXXqlMvR5T+qU28IjyB9/ptuh5JnpOALEWCKFCkCQGpqKvHx8UyYMIEWLVrwwQcfyInd86gixVA394JvNmOD5I5YUvCFCFBer5cZM2Ywd+5cSpUqxfDhw+natSs//PCD26HlG6ptFyhWgvSP5rkdSp6Qgi9EgGvevDlLly7lhRdeIDExkeLFiwPIjVcAFVYI1aqTc5R/YJ/b4eQ6KfhCBAGPx0OvXr1Yu3Yt5cqVw1pL//79GTt2LAkJCW6H5yrVuhN4Q7ErsztTTMElBV+IIOLxOP/lT58+zdVXX83MmTOJiYnh5Zdf5nSQThusipVANW2N/WQNNvGY2+HkKin4QgSh8PBwJk2axMqVK2nYsCHjxo2jZcuW7NgRnLOdq/a3QMoZ7JoPL7luQSYFX4ggVqNGDWbPns27775L9erVufLKKwFITEx0ObK8pcpXhLoNsWs/xJ4J3G86UvCFELRo0YLZs2cTERHB6dOniY2NZejQoezevdvt0PKMp8MtkHgMu3GF26HkGin4Qog/sdbSs2dPVq9eTatWrXjiiSf4/fcgmFmyRl2oURe78B1s4nG3o8kVUvCFEH8SHh7Oww8/TFxcHL169eK1116jefPm7Ny50+3QcpVSCk+/u+FUMnbBW26Hkyuk4AshMlW2bFkmT57M8uXL6dmzJ1WqVAFg165d5PNZdnNMVbgS1aYrdsMy7C+B9wEnBV8IcVG1atXiqaeewuPxkJCQQKdOnejRowdffPGF26HlCtW1r3P17TuvYANsKgop+EKIbCtevDhjxoxh9+7ddO3alXvuuYc9e/a4HZZfqcJFUD0Hws87sJ+tczscv5KCL4TINq/Xy2233cbGjRt58MEHWb58Oa1atWL//v1uh+ZX6sZWcGVV7OJ3sQE0BYUUfCHEZStatCgjR45k48aNjB07lgoVKgDw8ccfk5KS4nJ0vlMeD56ufeDQQeym9W6H4zdS8IUQOVa+fHkGDhwIwN69e+nbty+tW7fmo48+Kvgndq9rAhUrY5cYbHpgHOVLwRdC+EXFihWZMWMGXq+Xu+66i169evH111+7HVaOKaWco/xf92M3b3Q7HL+Qgi+E8AulFO3atWPlypVMmDCBH3/8kVtvvbVgz8Z5/Y1Q4Srs/+YGxFG+FHwhhF95vV7uvPNO4uLiePXVV4mMjARgzpw5HD9esK5gVR4PqnMfOLgPuyXO7XB8JgVfCJErihUrRps2bQDYvn07jzzyCDExMcyaNatAndhVNzSD8pUy+vIL9rh8KfhCiFx37bXXsnTpUmrUqMHo0aNp164dy5cvLxAndp2jfA3xe+DLT90OxydeXzbWWv8b6AqcAX4CBhljjmayXizwAhACvGaMmehLu0KIgqdevXq89957rFixgnHjxvHII4/w6aefnrvpen6mGjXHLnqX9CVz8TRoilLK7ZByxNcj/BVAHWNMPeAH4LELV9BahwAvATcDtYB+WutaPrYrhCiAlFJ06NCB1atXY4yhSJEipKamMmHChHx98ZbyhKA694a9u+CbzW6Hk2M+FXxjzHJjTGrG00+Bipms1hjYaYz52RhzBpgDdPelXSFEwRYaGkrNmjUB2Lp1K6+++iotWrRg0qRJJCUluRxd5lTjlhBVlvTFcwpEV1RmfOrSucBgYG4mr1cA9p73fB/QJKudaK2HAkMBjDFERUXlKBiv15vjbQsqyTnwBWK+7du355tvvmHs2LFMnTqVOXPmMHbsWAYPHkxISEi+yjlZDyLxvxMpvvcnCjW4Mdfaya2cL1nwtdYrgXKZLBptjFmYsc5oIBV4O5P1MuvsyvLj0RgzHZh+dr3Dhw9fKsRMRUVFkdNtCyrJOfAFar5FixZlypQp3HHHHTz11FNMnTqVrl27nit8+SVnW7cRXFGGo7On4alUNdf68n3JOTo6Ostllyz4xph2F1uutR4AdAHaGmMyK+T7gErnPa8IxF+qXSFE8Klfvz7z58/nyJEjeL1eEhMTeeCBBxg6dCi1a9d2OzyUNxTVtS921lT48hNo0MztkC6LT334GaNv/gF0M8YkZ7HaZqC61rqy1joM6Ass8qVdIUTgUkqd687Yvn07q1evpmPHjjz88MMcPHjQ5ehA3dgaylUkfcHbBe7qW19H6bwIFANWaK2/0lq/DKC1jtZafwiQcVJ3OLAM+N55yXznY7tCiCDQqFEjtm3bxtChQ/nggw9o3rw5kydPJs3FKYtVSAieW26DA3uxn651LY6cUPn8bLONj89Z709+6vfLK5Jz4Au2fOGPnH/55RcmTJhAUlISb73l3HPWWuvKmHhrLenjH4Gk43jGTUOFhvp1/37ow8/0lyJX2gohCoSrrrqKl19+mRkzZgCwZ88eunTpwrp1eX9XKqUUnltuhyO/YTcsy/P2c0oKvhCiQAkLCwPg119/JSEhgf79+3P77bezffv2vA2kdn24po4zx87pU3nbdg5JwRdCFEiNGjVi7dq1jB07li+++IL27dvz2GOP5dlFUUopPD3ugONHsav/lydt+koKvhCiwCpUqBB33303GzduZPDgwYSGhp7r0z9z5kyut6+q1YR6jbAfzcOeyJ9XCJ9PCr4QosCLjIzkySef5MknnwRg8+bNNG3alLlz55Key1Mae265HZJPYJd/kKvt+IMUfCFEwDh7dF+oUCHKly/Pww8/TGxsLBs35t4tClWlyqhGN2FXLsIe/z3X2vEHKfhCiIBTr149Fi1axH//+1+OHTtGnz59GD58eK61p7rfBqkp2MWZTSeWf0jBF0IEJI/HQ/fu3Vm3bh1jxoyhYcOGAKSnp3PkyBG/tqXKRqNaxmLXfYTdu8uv+/YnKfhCiIAWHh7OPffcw8CBAwFYuHAhzZo1Y+rUqZw8edJv7ajut0ORoqS/83K+nT5ZCr4QIqjUq1ePmJgYJk2aRIsWLXj//ff9cmJXFSmK6jkAdn6P/WSNHyL1Pyn4QoigUrVqVWbMmMH7779PVFQUDzzwAMOGDfPLvlWztlD5Guy8WdjkE37Zpz9JwRdCBKWmTZuyZMkSpk6ditYagJMnT7Jz584c71N5PHhuGwaJx7AL3vJXqH4jBV8IEbQ8Hg89e/akXTvnth+vv/46bdq0YfTo0Tk+sauuqoZq3Rm7Zgl2x7f+DNdnUvCFECJD3759ue2225g9ezYxMTG89NJLnDp1+fPkqFvvhNLlSH9jKvaU/04M+0oKvhBCZIiKimLChAmsWrWKJk2a8H//9388/PDDl70fVSgcz8AH4PCv2Plv5EKkOePPm5gLIURAqF69Om+88QYbN26kZMmSgDM75y+//ELjxo2ztQ91TW1U227YlQux9Zuial6XixFnjxzhCyFEFpo3b06dOnUAePnll+nRowdDhgzh559/ztb2qsftULYC6bNfwqbk/mRulyIFXwghsmHUqFGMHDmStWvX0rp1a8aOHUtCQsJFt1FhhZxRO4cOYpfOy6NIsyYFXwghsiEiIoIHH3yQuLg4+vTpw8yZM5k4ceIlt1M1r3MmV1v6Pva3A3kQadak4AshxGUoU6YMzzzzDCtXruShhx4CYNu2bSxatCjLKRVU78EQ4iV9zquuTrsgBV8IIXKgRo0alC9fHoA333yTe+65h27durF58+a/rKtKXYHq1g+2boGvP8vrUM+Rgi+EED4aP348zz77LPv37+eWW27h7rvvZvfu3X9aR7XpAtFXkj7nNeyZ067EKQVfCCF8FBISQt++fdmwYQMPP/wwq1at4v333//TOsrrxdN3CBz5Dbt8gStxSsEXQgg/KVKkCI888ggbN27knnvuAWDNmjW8+uqrnDlzxhmL36CpcwI34XCex+fThVda638DXYEzwE/AIGPM0UzW2w0kAmlAqjGmoS/tCiFEflauXLlzPy9btozZs2cza9YsHn/8cW7uORD7zRbsvDdQQx7J07h8PcJfAdQxxtQDfgAeu8i6rY0x10uxF0IEkwkTJjB79mzCwsIYOnQoPe/+O99c2wi7aR1257Y8jcWngm+MWW6MSc14+ilQ0feQhBAicCilaNOmDStWrGDSpEns2rWLHVdUhJJXkP7mS9ik43kXi7/GhGqtFwNzjTF/mQRaa70L+B2wwCvGmOkX2c9QYCiAMeaGM2dydjmy1+slNTX10isGEMk58AVbvhB4OScmJlK4cGHSvvuSqXfdzr6QcMbO/x+R0X8cL/uSc1hYGIDKbNklC77WeiVQLpNFo40xCzPWGQ00BG41xvxlh1rraGNMvNa6DE430H3GmPXZiN3Gx8dnY7W/ioqK4vDhvD8p4ibJOfAFW74Q2Dn/695hvL5gMSXDC/HwP/7BHYMGExoa6lPO0dHRkNOCfyla6wHAMKCtMSY5G+s/ASQZYyZnY/dS8C+D5Bz4gi1fCPyct773Nk+NG8fHRxKpUq4ME//v/+h+2x25UvB96sPXWscC/wC6ZVXstdZFtNbFzv4MdADy121ghBDCJXV738bcN2Yx8+bmeJKOY195hoTRf8fmQjeWr/PhvwgUAlZk3BPyU2PMMK11NPCaMaYTUBb4IGO5F3jHGPORj+0KIUTA8NS/kQ6vzaVN/F48X3yM98Rx0r3+v12J307a5hLp0rkMknPgC7Z8QXK+XLnWpSOEEKLgkIIvhBBBQgq+EEIECSn4QggRJKTgCyFEkJCCL4QQQUIKvhBCBAkp+EIIESTy/YVXbgcghBAFUIG88Erl9KG1/tyX7QviQ3IO/Eew5Ss55/iRqfxe8IUQQviJFHwhhAgSgVzws7yrVgCTnANfsOULkrPf5PeTtkIIIfwkkI/whRBCnEcKvhBCBAn/31LFZRm3XXwBCMG569ZEl0PyO611JeBNnJvLpwPTjTEvaK0jgbnA1cBuQBtjfncrztygtQ4BtgD7jTFdAj1nrXVJ4DWgDs51KYOBHQR2zg8Bf8PJdyswCChMAOWstZ4BdAF+M8bUyXgty79lrfVjwF1AGnC/MWZZTtoNqCP8jGLwEnAzUAvop7Wu5W5UuSIVeMQYUxO4Ebg3I89HgVXGmOrAqozngeYB4Pvzngd6zi8AHxljrgWuw8k9YHPWWlcA7gcaZhTCEKAvgZfzLCD2gtcyzTHj/3ZfoHbGNv/NqHWXLaAKPtAY2GmM+dkYcwaYA3R3OSa/M8YcMMZ8kfFzIk4RqICT6xsZq70B3OJKgLlEa10R6IxzxHtWwOastS4OtABeBzDGnDHGHCWAc87gBSK01l6cI/t4AixnY8x6IOGCl7PKsTswxxhz2hizC9iJU+suW6AV/ArA3vOe78t4LWBpra8G6gOfAWWNMQfA+VAAyrgYWm54HhiF0411ViDnXAU4BMzUWn+ptX5Na12EAM7ZGLMfmAzsAQ4Ax4wxywngnM+TVY5+q2uBVvAzu6Q4YMedaq2LAvOAB40xx92OJzdprc/2d37udix5yAs0AKYZY+oDJyj4XRkXpbUuhXNEWxmIBoporW93NyrX+a2uBVrB3wdUOu95RZyvgwFHax2KU+zfNsbMz3j5V611+Yzl5YHf3IovF8QA3bTWu3G66tpord8isHPeB+wzxnyW8fx9nA+AQM65HbDLGHPIGJMCzAeaEdg5n5VVjn6ra4FW8DcD1bXWlbXWYTgnOha5HJPfaa0VTr/u98aYKectWgQMyPh5ALAwr2PLLcaYx4wxFY0xV+O8r6uNMbcT2DkfBPZqrWtkvNQW2EYA54zTlXOj1rpwxt95W5xzVIGc81lZ5bgI6Ku1LqS1rgxUBzblpIGAu9JWa90Jp683BJhhjBnvbkT+p7VuDmzAGbJ2tj/7cZx+fANcifMfp7cx5sITQwWe1roVMCJjWOYVBHDOWuvrcU5ShwE/4wxR9BDYOT8J9MEZjfYlzhDNogRQzlrrd4FWQBTwK/AvYAFZ5Ki1Ho0zJDcVpwt3aU7aDbiCL4QQInOB1qUjhBAiC1LwhRAiSEjBF0KIICEFXwghgoQUfCGECBJS8IUQIkhIwRdCiCDx/8S9xQ1OmkksAAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"gain_curve_test = cumulative_gain(cate_test, \"cate\", y=y, t=T)\n",
"plt.plot(gain_curve_test, color=\"C0\", label=\"Test\")\n",
"plt.plot([0, 100], [0, elast(test, y, T)], linestyle=\"--\", color=\"black\", label=\"Baseline\")\n",
"plt.legend();\n",
"plt.title(\"R-Learner\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Double/Debiased ML procedure with a final linear model is already very good, as we can see by the curve above. But, maybe we can do even better. As a matter of fact, this is a very general procedure that we can understand just like a meta-learner. Nie and Wager called it the R-Learner, as a way to recognise the work of Robinson (1988) and to emphasize the role of residualization.\n",
" \n",
"This generalization comes from realizing that the Double/Debiased ML procedure defines a new loss function that we can minimize however we want. Next, we will see how to do that in a very similar fashion to what we've seen before when discussing target transformation method or F-learner. \n",
"\n",
"\n",
"## Non Parametric Double/Debiased ML\n",
" \n",
"The nice thing about Double-ML is that it frees us from all the hassle of learning the nuisance parameters in a causal model. With that, we can focus all our attention to learning the causal parameter of interest, be it the ATE or the CATE. However, with the above specification, we were still using a linear model after the ML residualization, as the final causal model. In our example, this means we are assuming that price impacts sales linearly. That's probably OK for a small range of prices, but we know from microeconomic theory that that's not necessarily the case. It could be that, at low prices, a unit increase in price will lower demand by 2 units. But then, at higher prices, a unit increase in price will lower demand by just 1 unit. That's not a linear relationship.\n",
" \n",
"We could leverage microeconomic theory here to speculate about the functional form of the outcome on the treatment, but maybe we can also delegate that to a ML model. In other words, let the machine learn that complicated function form. As it turns out, that's totally possible if we make a few changes to our original Double/Debiased ML algorithm.\n",
" \n",
"First, we start exactly as before, orthogonalizing the treatment and the outcome with cross predictions from a ML model."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:51.982083Z",
"start_time": "2023-07-27T16:57:51.547914Z"
}
},
"outputs": [],
"source": [
"y = \"sales\"\n",
"T = \"price\"\n",
"X = [\"temp\", \"weekday\", \"cost\"]\n",
"\n",
"debias_m = LGBMRegressor(max_depth=3)\n",
"denoise_m = LGBMRegressor(max_depth=3)\n",
"\n",
"train_pred = train.assign(price_res = train[T] - cross_val_predict(debias_m, train[X], train[T], cv=5),\n",
" sales_res = train[y] - cross_val_predict(denoise_m, train[X], train[y], cv=5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far, nothing different. Now is where things get interesting. Recall that Double/Debiased-ML models the data as follows\n",
" \n",
"$\n",
"Y_i = \\hat{M}_y(X_i) + \\tau(X_i) \\big(T_i - \\hat{M}_t(X)\\big) + \\hat{\\epsilon}_i\n",
"$\n",
" \n",
"Where $\\hat{M}_y$ and $\\hat{M}_t$ are models that, respectively, predicts the outcome and treatment from the features. If we rearrange the terms above, we can isolate the error term\n",
" \n",
"$\n",
"\\hat{\\epsilon}_i = \\big(Y_i - \\hat{M}_y(X_i)\\big) - \\tau(X_i) \\big(T_i - \\hat{M}_t(X)\\big)\n",
"$\n",
" \n",
"This is nothing short of awesome, because now we can call this a **causal loss function**. Which means that, if we minimize the square of this loss, we will be estimating expected value of $\\tau(X_i)$, which is the CATE.\n",
" \n",
"$\n",
"\\hat{L}_n(\\tau(x)) = \\frac{1}{n} \\sum^n_{i=1}\\bigg(\\big(Y_i - \\hat{M}_y(X_i)\\big) - \\tau(X_i) \\big(T_i - \\hat{M}_t(X)\\big)\\bigg)^2\n",
"$\n",
" \n",
"This loss is also called the **R-Loss**, since it's what the R-learner minimizes. Ok, but how do we minimize this loss function? There are multiple ways, actually, but here we will cover the simplest one. First, to declutter the technical notation, let's rewrite the loss function we had before, but using the residualized version of treatment and outcome. \n",
" \n",
"$\n",
"\\hat{L}_n(\\tau(x)) = \\frac{1}{n} \\sum^n_{i=1}\\bigg( \\tilde{Y}_i - \\tau(X_i) \\tilde{T}_i \\bigg)^2\n",
"$\n",
" \n",
"Finally, we can do some algebraic parkour to take $\\tilde{T}_i$ out of the parenthesis and isolate $\\tau(X_i)$ in the square part of the loss function.\n",
" \n",
"$$\n",
"\\hat{L}_n(\\tau(x)) = \\frac{1}{n} \\sum^n_{i=1} \\tilde{T}_i^2 \\left(\\frac{\\tilde{Y}_i}{\\tilde{T}_i} - \\tau(X_i)\\right)^2 \n",
"$$\n",
" \n",
"Minimising the above loss is equivalent to minimising what is inside the parenthesis, but weighting each term by $\\tilde{T}_i^2$. Minimising what's inside the parenthesis is equivalent to predicting $\\frac{\\tilde{Y}_i}{\\tilde{T}_i}$. This is what's called the weight trick to get the non-parametric causal loss. Notice how similar this is to the target transformation idea we saw earlier. This is, indeed, a target transformation, but with the extra weighting trick.\n",
" \n",
"To summarise before we go to the code, now that we have the nuisance models and residualised versions of treatment and outcome, we will\n",
"1. Create weights $\\tilde{T}_i^2$\n",
"2. Create a target $\\dfrac{\\tilde{Y}_i}{\\tilde{T}_i}$\n",
"3. Use any prediction method to predict the target (2) while using the weights (1). \n",
" \n",
"And here is the code. As you will see, it is incredibly simple.\n",
" \n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.031154Z",
"start_time": "2023-07-27T16:57:51.983419Z"
}
},
"outputs": [],
"source": [
"model_final = LGBMRegressor(max_depth=3)\n",
" \n",
"# create the weights\n",
"w = train_pred[\"price_res\"] ** 2 \n",
" \n",
"# create the transformed target\n",
"y_star = (train_pred[\"sales_res\"] / train_pred[\"price_res\"])\n",
" \n",
"# use a weighted regression ML model to predict the target with the weights.\n",
"model_final.fit(X=train[X], y=y_star, sample_weight=w);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The above ML model, even though it is an off-the-shelf predictive model, is estimating the CATE. That's the power of the non-parametric Double-ML. Before, we were using a linear regression as the final model for the CATE estimation. Now, since we defined a generic loss, we can use any predictive model at our disposal as the final model. \n",
" \n",
"Let's now use the test set to compare this non-parametric version with the linear version we had before. \n",
" \n",
"First, we estimate the individual treatment effect."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.042020Z",
"start_time": "2023-07-27T16:57:52.032814Z"
}
},
"outputs": [],
"source": [
"cate_test_non_param = test.assign(cate=model_final.predict(test[X]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we can plot the non-parametric cumulative elasticity curve side by side with the one we got from the parametric (linear) version of Double/Orthogonal-ML."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.172048Z",
"start_time": "2023-07-27T16:57:52.043274Z"
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"gain_curve_test_non_param = cumulative_gain(cate_test_non_param, \"cate\", y=y, t=T)\n",
"plt.plot(gain_curve_test_non_param, color=\"C0\", label=\"Non-Parametric\")\n",
"plt.plot(gain_curve_test, color=\"C1\", label=\"Parametric\")\n",
"plt.plot([0, 100], [0, elast(test, y, T)], linestyle=\"--\", color=\"black\", label=\"Baseline\")\n",
"plt.legend();\n",
"plt.title(\"R-Learner\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not a huge improvement here, but it's something. Plus, not having to specify the functional form of the treatment function is already a huge benefit. \n",
"\n",
"\n",
"### What is Non-Parametric About?\n",
" \n",
"Before we move on, I just wanted to highlight a common misconception. When we think about using a non-parametric Double-ML model to estimate the CATE, it looks like we will get a nonlinear treatment effect. For instance, let's assume a very simple data generating process (DGP) where discont affects sales non-linearly, but through a square root function. \n",
" \n",
"$\n",
"Sales_i = 20 + 10*\\sqrt{Discount_i} + e_i\n",
"$\n",
" \n",
"The treatment effect is given by the derivative of this Sales function with respect to the treatment.\n",
" \n",
"$\n",
"\\dfrac{\\partial Sales_i}{\\partial Discount_i} = \\dfrac{10}{2\\sqrt{Discount_i}}\n",
"$\n",
" \n",
"As we can see, the treatment effect is **not** linear. It actually gets weaker as the treatment increases. This makes a lot of sense for this DGP. At first, a little bit of discount increases sales by a lot. But, as we give too much discount, an extra unit of discount will affect sales less and less, because people won't want to buy to infinity. Hence, the discount is only effective up until they point they get satiated. \n",
" \n",
"The question then is, can the non-parametric ML capture this saturating behavior in the treatment effect? Can it extrapolate from a small discount level that, if the discount were higher, the treatment effect would be lower? The answer is... sort of. To better understand that, let's generate data like in the above DGP."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.179325Z",
"start_time": "2023-07-27T16:57:52.173455Z"
}
},
"outputs": [],
"source": [
"np.random.seed(321)\n",
"n=5000\n",
"discount = np.random.gamma(2,10, n).reshape(-1,1)\n",
"discount.sort(axis=0) # for better ploting\n",
"sales = np.random.normal(20+10*np.sqrt(discount), 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we plot this DGP, we can see the square root relationship between these variables."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.243280Z",
"start_time": "2023-07-27T16:57:52.180783Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(discount, 20 + 10*np.sqrt(discount))\n",
"plt.ylabel(\"Sales\")\n",
"plt.xlabel(\"Discount\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's apply the Non-Parametric Double/Debias ML to this data. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.314077Z",
"start_time": "2023-07-27T16:57:52.244607Z"
}
},
"outputs": [],
"source": [
"debias_m = LGBMRegressor(max_depth=3)\n",
"denoise_m = LGBMRegressor(max_depth=3)\n",
"\n",
"# orthogonalising step\n",
"discount_res = discount.ravel() - cross_val_predict(debias_m, np.ones(discount.shape), discount.ravel(), cv=5)\n",
"sales_res = sales.ravel() - cross_val_predict(denoise_m, np.ones(sales.shape), sales.ravel(), cv=5)\n",
"\n",
"# final, non parametric causal model\n",
"non_param = LGBMRegressor(max_depth=3)\n",
"w = discount_res ** 2 \n",
"y_star = sales_res / discount_res\n",
"\n",
"non_param.fit(X=discount_res.reshape(-1,1), y=y_star.ravel(), sample_weight=w.ravel());"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the above model, we can get the CATE estimate. The issue here is that the CATE is not linear. As the treatment increases, the CATE should decrease. The question we are trying to answer is if the non-parametric model can capture that non linearity. \n",
" \n",
"To answer that properly, let's remember what is the underlying assumption that the Double/Debiased ML makes about the data generating process. These assumptions can be seen in the equation we've laid down before.\n",
" \n",
"$\n",
"\\tilde{Y}_i = \\tau(X_i) \\tilde{T}_i + e_i\n",
"$\n",
" \n",
"In words, it says that the residualized outcome is equal to the residualized treatment multiplied by the conditional treatment effect. This mean that the **treatment impacts the outcome linearly**. There is no non-linearity here. The above model says that the outcome will increase by a fixed amount $\\tau(X_i) $ if we increase the treatment from 1 to 10 or from 100 to 110. It's a simple multiplication. \n",
" \n",
"So, does this mean that the non-parametric model can't capture the non-linearity of the treatment effect? Again, not really... Rather, what is happening is that Double/ML **finds the locally linear approximation to the non-linear CATE**. In other words, it finds the derivative of the outcome with respect to the treatment at that treatment level or around the treatment. This is equivalent to finding the slopes of the lines that are tangential to the outcome function at the treatment point.\n",
" \n",
"![img](./data/img/debiased-ml/linear-aprox.png)\n",
" \n",
"This mean that, yes, Non-Parametric Double-ML will figure out that the treatment effect will be smaller as we increase the treatment. But, no, it won't find the non-linear treatment effect, but rather the local linear treatment effect. We can even plot those linear approximations against the ground true non-linear causal effect and indeed, they are good approximations. "
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.654488Z",
"start_time": "2023-07-27T16:57:52.315748Z"
},
"tags": [
"hide-input"
]
},
"outputs": [
{
"data": {
"image/png": "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nDAxl9wM92s4GKsbpONgrrmtS10xRVoJB2+K3URkoDiOw6WXXsp5553Hb37zGwC2bNnCK6+80i5tf6/zvP/++7N48WIArr76ak4++WTOOOOMuPPUHLx99atf7fO8Qu+MeYtcaHQ0bjDXbEt4m4hI0mueeASg1pvOP0ccwuJRM1mfMwb/qp0cMy6bL08eyv5Fme1mAIw8tu12T9FITU4i3dbyL03Rm4gMkHfeeQe/389FF13Usm3MmDFceumlgNta9dprr9HQ0EBtbS0PPPAA1157LZs2bSIjI4P/+Z//Ydq0adxzzz1kZWXx7W+7cz2deOKJPProowBceOGFzJw5k/fff5+RI0fy0EMPkZmZybJly1iwYAGZmZnMnDkz7jyfe+65HHbYYbz//vvMmTOH1atXtwrspkyZwueff86dd97J2rVrmTNnDueddx55eXns2LGDefPmsXHjRk477TRuvvnm3norexa8RVloNNo8VlGri95cgBS0cGMyS6XyqqyDT6BkG3v+8gDB8jK8BYVkXXA5vpHR12Fpuvh7vF9SzYsZk3hn+ME0eP1MqC/lqkOHccbRUxniiz3VX+AbV1KxcS3BHVtbtnlHjGboN67ElwDvU6RE+WxTRnPLm4I3ERkgn332GdOnT+8wzQcffMCrr75Kfn4+N998M9OnT+ehhx7inXfe4aqrrmppHYtlw4YN/OY3v+HnP/853/rWt3jhhRc455xzWLBgAbfffjtHH300t99+e5fyXVVVxVNPPQW4rXLR3HTTTfz+97/nscceA9xAdMWKFbz88sv4/X6OO+44LrnkEkaP7p32rG4HbzEWGt0CjI1INgbYFu343lyAFLRwYzJLpfKqrINL2wlImoD6Vcsw19zWqttiXVOIf35RxUuf72bdxK+R7gSYVbeBL3t2MOXM0/EOL2KIz3RcXp+f0FU/wUR0jwzNnUeFzw+D/H1qq7PPNp5FSKX37B3y5hD9HquIpJJPP6ylqiLYq+fMHepl+qFD4k5/0003sXTpUvx+f0vXyeOOO478/HwAli5dyh//+EcAZs2axe7du6mqqop5PoCxY8e2BIgHHnggmzdvpqqqisrKSo4++mgAzjnnHN54442483nWWWfFnTbSrFmzyM3NBWDfffdl69atAxu8dbDQ6HPAny3LuhcoBqYAS3ucSxGRPhZtiv8OJyCZfy0b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Xchi4Ae2bQfCad8J/50H3Gvb9vpw2huBTy3LuiTOfLxj2/YL4WP/D7i6e8URERHpNaojRfqYWt5EumY0UN5m28+BtcArlmWttyzrhvD2scAXEZVSpGLcu43NvsC9mTIiznyURDyvBTIsy9LNGBERGUiqI0X6mII3kThZlnUEbsX0TuR227arbdu+1rbtScCZwALLsk4CNgPjYlQY23AHeTcbhztr1w5gDzAk4rpe3O4m8dJAVhER6VeqI0X6h+5CiHTCsqxc4DjcQdV/sm17uWVZkfvPAFYD64Aq3EHQQWApsB24y7Ksn4S3HWbb9r+AvwDXW5b1IlAK3Akssm07YFnWZ7h3CU8HXsEdH5DehSzvwB0jICIi0qdUR4r0L7W8icT2vGVZ1bh3B38E3AtE628/BXgVqAH+DfzWtu03bdsO4t5lnIw7QHoLcH74mIeA/wPeBjbgzop1JYBt25XAd4GFwFbcu4xbupDvnwE3W5ZVYVnWdV04TkREJF6qI0UGgJYKEBERERERSQBqeRMREREREUkACt5EREREREQSgII3ERERERGRBKDgTUREREREJAEoeBMREREREUkACt5EREREREQSgII3ERERERGRBKDgTUREREREJAEoeBMREREREUkA/x9ZoqI5SvKUHwAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cate = non_param.predict(X=discount)\n",
"\n",
"plt.figure(figsize=(15,5))\n",
"plt.subplot(1,2,1)\n",
"plt.scatter(discount, sales)\n",
"plt.plot(discount, 20 + 10*np.sqrt(discount), label=\"Ground Truth\", c=\"C1\")\n",
"plt.title(\"Sales by Discount\")\n",
"plt.xlabel(\"Discount\")\n",
"plt.legend()\n",
"\n",
"plt.subplot(1,2,2)\n",
"plt.scatter(discount, cate, label=\"$\\hat{\\\\tau}(x)$\", c=\"C4\")\n",
"plt.plot(discount, 5/np.sqrt(discount), label=\"Ground Truth\", c=\"C2\")\n",
"plt.title(\"CATE ($\\partial$Sales) by Discount\")\n",
"plt.xlabel(\"Discount\")\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This might sound like technicalities, but it has very practical consequences. For example, let's say you find a treatment effect of 2 for a customer in the example above, meaning that if you increase the discount by 1 unit, your sales to that customer will increase by 2 units. You might look at that and think: \"Great! I'll give a lot of discounts to this unit! After all, for every 1 unit in discount, I'll get 2 in sales\". However, that's the wrong conclusion. The treatment effect is 2 only at that discount level. As soon as you increase the discount, the effect will fall. For example, say this hypothetical customer got only 5 in discount, which is why her treatment effect is so high. Say you see that huge treatment effect and use it to justify giving 20 in discount to that customer. But as you do so, the effect might go from 2 to something like 0.5. And a 20 discount that made sense at a treatment effect of 2 might no longer be profitable at a treatment effect of 0.5.\n",
" \n",
"This means you have to be extra careful when extrapolating a nonlinear treatment effect to a new treatment level. If you are not, you might end up making very unprofitable decisions. Another way to put is is that, when treatment effect is not linear, even non-parametric Double/Debiased-ML will **struggle to make counterfactuals outcome predictions**. It will try to linearly extrapolate the treatment effect (TE) from a low treatment level to a high treatment level or the other way around. And, due to the non linearity, that extrapolation will likely be off. \n",
" \n",
"To solve that, there is a final idea. Keep in mind that this idea is much less scientific than the things we've seen before. It boils down to using a S-learner after applying the orthogonalization procedure, but I'm getting ahead of myself. Let's look at that next. \n",
"\n",
"![img](./data/img/debiased-ml/non-sci.png)\n",
"\n",
"## Non-Scientific Double/Debiased ML\n",
"\n",
"The final idea we will try is a fundamental shift in mentality. We will no longer try to estimate the linear approximation to the CATE. Instead, we will make counterfactual predictions.\n",
" \n",
"![img](./data/img/debiased-ml/cf-pred.png)\n",
" \n",
"The CATE is the slope of the outcome function at the data point. It is how much we expect the outcome to change if we increase the treatment by a very small amount. More technically, it's the derivative at the point. Counterfactual predictions, on the other hand, are an attempt to recreate the entire outcome curve from a single datapoint. We will predict what the outcome would be if the treatment were at some other level than the one it currently takes, hence the counterfactual. \n",
" \n",
"If we manage to do so, we will be able to simulate different treatments for a unit and predict how it would respond under those different treatment levels. This is very risky business, because we will be extrapolating an entire curve from a single point. Also, although I've used this technique in practice a lot, I've never found any scientific article showing how or why it works. That's why I call it the Non-Scientific Double-ML. Simply put: beware!\n",
" \n",
"Here is how this will go down. First, let's start with the traditional Double/Debiased-ML formulation, where we have the residualized version of the treatment and outcome.\n",
" \n",
"$\n",
"\\tilde{Y}_i = \\tau(X_i) \\tilde{T}_i + e_i\n",
"$\n",
" \n",
"Now, I'll move the treatment inside the treatment effect function. This allows the treatment effect to be non linear, that is to change with the treatment itself. \n",
" \n",
"$\n",
"\\tilde{Y}_i = \\tau(X_i, \\tilde{T}_i) + e_i\n",
"$\n",
" \n",
"This is dangerous business, because I have no idea how this treatment functions. For all we know, it could be some weird non-linear function. But, fortunately, we know how to estimate weird functions with Machine Learning. So, that's what we will do. Simply speaking, we will fit a ML model to predict the residualised outcome $\\tilde{Y}$ from the residualized treatment $\\tilde{T}$ together with the features $X$. The residualisation is important to remove bias and noise so that this final ML can focus on learning only the treatment effect and how the covariates $X$ impact that treatment effect. \n",
" \n",
"Then, once we have this model, we will make 2 step counterfactual predictions. First we will have to make a prediction for the treatment in order to get $\\tilde{T}$, then, we will feed that prediction, along with the features, in our final model $\\hat{\\tau}(X_i, \\tilde{T}_i)$.\n",
" \n",
"Since we will have to make $\\tilde{T}$, we first need to implement our own version of the `cross_prediction` function. This function will return not only the cross prediction, but also the models used to make those predictions."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:52.658913Z",
"start_time": "2023-07-27T16:57:52.655659Z"
}
},
"outputs": [],
"source": [
"from sklearn.model_selection import KFold\n",
"\n",
"def cv_estimate(train_data, n_splits, model, model_params, X, y):\n",
" cv = KFold(n_splits=n_splits) \n",
" models = []\n",
" cv_pred = pd.Series(np.nan, index=train_data.index)\n",
" for train, test in cv.split(train_data):\n",
" m = model(**model_params)\n",
" m.fit(train_data[X].iloc[train], train_data[y].iloc[train])\n",
" cv_pred.iloc[test] = m.predict(train_data[X].iloc[test])\n",
" models += [m]\n",
" \n",
" return cv_pred, models\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have our own cross prediction function that also gives us the models, we can proceed with the orthogonalisation step."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:53.120917Z",
"start_time": "2023-07-27T16:57:52.660286Z"
}
},
"outputs": [],
"source": [
"y = \"sales\"\n",
"T = \"price\"\n",
"X = [\"temp\", \"weekday\", \"cost\"]\n",
"\n",
"debias_m = LGBMRegressor(max_depth=3)\n",
"denoise_m = LGBMRegressor(max_depth=3)\n",
"\n",
"y_hat, models_y = cv_estimate(train, 5, LGBMRegressor, dict(max_depth=3), X, y)\n",
"t_hat, models_t = cv_estimate(train, 5, LGBMRegressor, dict(max_depth=3), X, T)\n",
"\n",
"y_res = train[y] - y_hat\n",
"t_res = train[T] - t_hat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After the orthogonalisation, we will throw $\\tilde{T}$ along with $X$ to a ML model that tries to precit $\\tilde{Y}$. I'm using a LGBM model here, but you can pick any ML model. One cool thing about LGBM is that I can set monotonic constraints to it. Knowing what we know about prices, sales should decrease as price increases. We can take that into account and constrain our LGBM model **to not increase** it's predictions as prices increase. "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:53.209508Z",
"start_time": "2023-07-27T16:57:53.122275Z"
}
},
"outputs": [],
"source": [
"# -1 on price saying that the predictions should not increase as price increases\n",
"monotone_constraints = [-1 if col == T else 0 for col in X+[T]]\n",
" \n",
"model_final = LGBMRegressor(max_depth=3, monotone_constraints=monotone_constraints)\n",
"model_final = model_final.fit(X=train[X].assign(**{T: t_res}), y=y_res)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now is where things get a little weird. If we think about it, this final ML model is estimating the following $\\tau$ treatment function\n",
" \n",
"$\n",
"\\tilde{Y}_i = \\tau(X_i, \\tilde{T}_i) + e_i\n",
"$\n",
" \n",
"but there isn't a clear way to extract the treatment effect from this function. So, rather than extracting a treatment effect, we will input the counterfactual predictions, just like I've shown in the previous image. We will simulate different price levels for each unit and use our Double-ML model to predict what would be the sales we would see under those different price levels. \n",
"\n",
"To achieve that, we will 1) cross join the test set with a price table that contains all simulated prices. The end result will be as follows"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:53.230891Z",
"start_time": "2023-07-27T16:57:53.211028Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
index
\n",
"
temp
\n",
"
weekday
\n",
"
cost
\n",
"
factual_price
\n",
"
sales
\n",
"
price
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
3.000
\n",
"
\n",
"
\n",
"
1
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
3.875
\n",
"
\n",
"
\n",
"
2
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
4.750
\n",
"
\n",
"
\n",
"
3
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
5.625
\n",
"
\n",
"
\n",
"
4
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
6.500
\n",
"
\n",
"
\n",
"
5
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
7.375
\n",
"
\n",
"
\n",
"
6
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
8.250
\n",
"
\n",
"
\n",
"
7
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
9.125
\n",
"
\n",
"
\n",
"
8
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
10.000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" index temp weekday cost factual_price sales price\n",
"0 0 25.8 1 0.3 7 230 3.000\n",
"1 0 25.8 1 0.3 7 230 3.875\n",
"2 0 25.8 1 0.3 7 230 4.750\n",
"3 0 25.8 1 0.3 7 230 5.625\n",
"4 0 25.8 1 0.3 7 230 6.500\n",
"5 0 25.8 1 0.3 7 230 7.375\n",
"6 0 25.8 1 0.3 7 230 8.250\n",
"7 0 25.8 1 0.3 7 230 9.125\n",
"8 0 25.8 1 0.3 7 230 10.000"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pred_test = (test\n",
" .rename(columns={\"price\":\"factual_price\"})\n",
" .assign(jk = 1)\n",
" .reset_index() # create day ID\n",
" .merge(pd.DataFrame(dict(jk=1, price=np.linspace(3, 10, 9))), on=\"jk\")\n",
" .drop(columns=[\"jk\"]))\n",
"\n",
"pred_test.query(\"index==0\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that we are showing only the day in index 1, so only a single unit. On that day (unit), the actual or factual price or treatment was 7. But we've simulated different counterfactual treatments, from 3 to 10. Now, we will feed all those counterfactual prices to our causal model, which will make counterfactual sales predictions based on those simulated prices.\n",
" \n",
"Since our model has the following format\n",
" \n",
"$\n",
"\\widehat{Price_i} = \\hat{\\tau}(X_i, \\tilde{T}_i)\n",
"$\n",
" \n",
"Before making the counterfactual predictions, we need to get $\\tilde{T}_i$, that is, the price residuals. We will get those residuals by first, making predictions will all our treatment models (remember that we've used a 5 fold cross prediction in the training step), then we will average the predictions from the five models into a single prediction and finally subtract the counterfactual price we've generated earlier from the predicted price using this ensemble of models."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:53.349347Z",
"start_time": "2023-07-27T16:57:53.239832Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
index
\n",
"
temp
\n",
"
weekday
\n",
"
cost
\n",
"
factual_price
\n",
"
sales
\n",
"
price
\n",
"
sales_pred
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
3.000
\n",
"
24.302849
\n",
"
\n",
"
\n",
"
1
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
3.875
\n",
"
20.862833
\n",
"
\n",
"
\n",
"
2
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
4.750
\n",
"
16.093630
\n",
"
\n",
"
\n",
"
3
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
5.625
\n",
"
6.274595
\n",
"
\n",
"
\n",
"
4
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
6.500
\n",
"
-1.624625
\n",
"
\n",
"
\n",
"
5
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
7.375
\n",
"
-10.939867
\n",
"
\n",
"
\n",
"
6
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
8.250
\n",
"
-21.655858
\n",
"
\n",
"
\n",
"
7
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
9.125
\n",
"
-25.319174
\n",
"
\n",
"
\n",
"
8
\n",
"
0
\n",
"
25.8
\n",
"
1
\n",
"
0.3
\n",
"
7
\n",
"
230
\n",
"
10.000
\n",
"
-25.319174
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" index temp weekday cost factual_price sales price sales_pred\n",
"0 0 25.8 1 0.3 7 230 3.000 24.302849\n",
"1 0 25.8 1 0.3 7 230 3.875 20.862833\n",
"2 0 25.8 1 0.3 7 230 4.750 16.093630\n",
"3 0 25.8 1 0.3 7 230 5.625 6.274595\n",
"4 0 25.8 1 0.3 7 230 6.500 -1.624625\n",
"5 0 25.8 1 0.3 7 230 7.375 -10.939867\n",
"6 0 25.8 1 0.3 7 230 8.250 -21.655858\n",
"7 0 25.8 1 0.3 7 230 9.125 -25.319174\n",
"8 0 25.8 1 0.3 7 230 10.000 -25.319174"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def ensamble_pred(df, models, X):\n",
" return np.mean([m.predict(df[X]) for m in models], axis=0)\n",
"\n",
"t_res_test = pred_test[T] - ensamble_pred(pred_test, models_t, X)\n",
"\n",
"pred_test[f\"{y}_pred\"] = model_final.predict(X=pred_test[X].assign(**{T: t_res_test}))\n",
"\n",
"pred_test.query(\"index==0\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see, we now have a sales prediction for every simulated price. The lower the price, the higher the sales. One interesting thing is that these predictions are off in their level. For instance, they go from about 24 to about -24. That's because the model is predicting the residualized outcome, which is roughly mean zero. This is fine if all you want is to get the slope of the sales curve, which is the price treatment effect. Also, if you want to fix the prediction levels, all you have to do is add the predictions from the denoising model $M_y$. "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"ExecuteTime": {
"end_time": "2023-07-27T16:57:53.504574Z",
"start_time": "2023-07-27T16:57:53.351199Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"