{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lab 5 - Python Code" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Authors: Valerie Dube, Erzo Garay, Juan Marcos Guerrero y Matias Villalba" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Replication and Data analysis" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "# Libraries\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import statsmodels.api as sm\n", "import statsmodels.formula.api as smf\n", "import hdmpy as hdm\n", "\n", "from sklearn.base import BaseEstimator\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.model_selection import KFold, cross_val_predict\n", "from sklearn.linear_model import LassoCV, Lasso\n", "from sklearn.tree import DecisionTreeRegressor\n", "from sklearn.ensemble import GradientBoostingRegressor, RandomForestRegressor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Descriptives" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.1. Descriptive table" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ywgender_femalegender_malegender_transgenderethnicgrp_asianethnicgrp_blackethnicgrp_mixed_multipleethnicgrp_otherethnicgrp_whitepartners1postlaunchmsmageimd_decile
01101000100010275
10001000001000196
20101001000010264
30010000001100202
41110010000010243
\n", "
" ], "text/plain": [ " y w gender_female gender_male gender_transgender ethnicgrp_asian \\\n", "0 1 1 0 1 0 0 \n", "1 0 0 0 1 0 0 \n", "2 0 1 0 1 0 0 \n", "3 0 0 1 0 0 0 \n", "4 1 1 1 0 0 1 \n", "\n", " ethnicgrp_black ethnicgrp_mixed_multiple ethnicgrp_other \\\n", "0 0 1 0 \n", "1 0 0 0 \n", "2 1 0 0 \n", "3 0 0 0 \n", "4 0 0 0 \n", "\n", " ethnicgrp_white partners1 postlaunch msm age imd_decile \n", "0 0 0 1 0 27 5 \n", "1 1 0 0 0 19 6 \n", "2 0 0 1 0 26 4 \n", "3 1 1 0 0 20 2 \n", "4 0 0 1 0 24 3 " ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Import data and see first observations\n", "df = pd.read_csv(\"../../data/processed_esti.csv\")\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1739 entries, 0 to 1738\n", "Data columns (total 15 columns):\n", " # Column Non-Null Count Dtype\n", "--- ------ -------------- -----\n", " 0 y 1739 non-null int64\n", " 1 w 1739 non-null int64\n", " 2 gender_female 1739 non-null int64\n", " 3 gender_male 1739 non-null int64\n", " 4 gender_transgender 1739 non-null int64\n", " 5 ethnicgrp_asian 1739 non-null int64\n", " 6 ethnicgrp_black 1739 non-null int64\n", " 7 ethnicgrp_mixed_multiple 1739 non-null int64\n", " 8 ethnicgrp_other 1739 non-null int64\n", " 9 ethnicgrp_white 1739 non-null int64\n", " 10 partners1 1739 non-null int64\n", " 11 postlaunch 1739 non-null int64\n", " 12 msm 1739 non-null int64\n", " 13 age 1739 non-null int64\n", " 14 imd_decile 1739 non-null int64\n", "dtypes: int64(15)\n", "memory usage: 203.9 KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "control = df[df['w'] == 0].drop('y', axis=1)\n", "treatment = df[df['w'] == 1].drop('y', axis=1)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "def get_descriptive_stats(group, column):\n", " if column == 'age':\n", " count = group[column].count()\n", " else:\n", " count = (group[column] == 1).sum()\n", " mean = group[column].mean()\n", " std = group[column].std()\n", " return count, mean, std\n", "\n", "variables = df.columns.drop(['w', 'y'])\n", "control_stats = {var: get_descriptive_stats(control, var) for var in variables}\n", "treatment_stats = {var: get_descriptive_stats(treatment, var) for var in variables}\n", "\n", "control_df = pd.DataFrame(control_stats, index=['count', 'mean', 'std']).T\n", "treatment_df = pd.DataFrame(treatment_stats, index=['count', 'mean', 'std']).T\n", "\n", "control_df.columns = pd.MultiIndex.from_product([['Control'], control_df.columns])\n", "treatment_df.columns = pd.MultiIndex.from_product([['Treatment'], treatment_df.columns])\n", "\n", "combined_df = pd.concat([control_df, treatment_df], axis=1)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Table 1: Descriptive Statistics and Balance\n", "\n", " Control Treatment \n", " count mean std count mean std\n", "gender_female 475.0 0.58 0.49 541.0 0.59 0.49\n", "gender_male 342.0 0.42 0.49 377.0 0.41 0.49\n", "gender_transgender 1.0 0.00 0.03 3.0 0.00 0.06\n", "ethnicgrp_asian 45.0 0.06 0.23 66.0 0.07 0.26\n", "ethnicgrp_black 76.0 0.09 0.29 74.0 0.08 0.27\n", "ethnicgrp_mixed_multiple 76.0 0.09 0.29 78.0 0.08 0.28\n", "ethnicgrp_other 14.0 0.02 0.13 9.0 0.01 0.10\n", "ethnicgrp_white 607.0 0.74 0.44 694.0 0.75 0.43\n", "partners1 239.0 0.29 0.46 277.0 0.30 0.46\n", "postlaunch 387.0 0.47 0.50 512.0 0.56 0.50\n", "msm 113.0 0.14 0.35 114.0 0.12 0.33\n", "age 818.0 23.05 3.59 921.0 23.16 3.54\n", "imd_decile 37.0 3.48 1.49 36.0 3.46 1.47\n" ] } ], "source": [ "formatted_table = combined_df[['Control', 'Treatment']].round(2)\n", "\n", "print(\"Table 1: Descriptive Statistics and Balance\\n\")\n", "print(formatted_table)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The observations for each variable are generally balanced between the control and treatment groups. Additionally, most participants are white, with an average age of approximately 23. The mean IMD decile scores are around 3.5, indicating that participants in both groups tend to come from more deprived areas." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2. Descriptive graphs" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCpElEQVR4nO3deXyNZ/7/8fcRkchOkFhi35ekmSAilHYQWsrQarXTqqqtQe3lZyzVplpqaS1RS2MZRpmi26Bt2uhQUg1aitgnpiS0SKwRyfX7wzjfngYlEifcr+fjcT/kXPd1rvtznZOT83bf97mPzRhjBAAAYCFFnF0AAADA3UYAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAlkMAAgAAllPU2QUURjk5OTp27Ji8vb1ls9mcXQ4AALgFxhidPXtW5cqVU5EiN9/HQwC6jmPHjikoKMjZZQAAgDw4evSoKlSocNM+BKDr8Pb2lnT1AfTx8XFyNQAA4FZkZGQoKCjI/j5+MwSg67h22MvHx4cABADAPeZWTl/hJGgAAGA5BCAAAGA5BCAAAGA5nAMEALgvZWdnKysry9llIB+5urrKxcUlX8YiAAEA7ivGGKWmpurMmTPOLgUFwM/PT4GBgXd8nT4CEADgvnIt/JQpU0YeHh5c0PY+YYzRhQsXdOLECUlS2bJl72g8pwegn3/+Wa+88orWrl2rCxcuqHr16oqLi1PDhg0lXZ3wuHHjNG/ePJ05c0aRkZGKjY1VjRo1JEmZmZl68cUX9dFHHykwMFCzZ89Wq1at7ONPnjxZKSkpmjFjhlPmBwC4e7Kzs+3hx9/f39nlIJ8VL15cknTixAmVKVPmjg6HOfUk6NOnTysyMlKurq5au3atdu/erSlTpqhEiRL2PpMmTdK7776rOXPmKDExUZ6enoqKitKlS5ckSXPnzlVSUpI2b96s3r176+mnn5YxRpJ0+PBhzZs3TzExMU6ZHwDg7rp2zo+Hh4eTK0FBufbc3un5XU7dA/TWW28pKChIcXFx9rYqVarYfzbGaPr06frb3/6mjh07SpIWL16sgIAArVmzRk899ZT27Nmjxx57TPXq1VPVqlU1fPhw/fLLLypdurT69eunt9566w8vZpiZmanMzEz77YyMjHyeKQDgbuKw1/0rv55bp+4B+vjjj9WwYUM98cQTKlOmjEJDQzVv3jz7+sOHDys1NdXhkJavr6/Cw8O1efNmSVJISIg2btyoixcvav369SpbtqxKlSqlpUuXyt3dXX/5y1/+sI6JEyfK19fXvvA9YAAA3N+cGoAOHTpkP59n/fr16tevnwYOHKhFixZJunoimyQFBAQ43C8gIMC+7oUXXlBISIjq1q2rmJgYrVixQqdPn9bYsWM1Y8YM/e1vf1P16tUVFRWln3/++bp1jBo1Sunp6fbl6NGjBThrAADgbE49BJaTk6OGDRvqjTfekCSFhoZq165dmjNnjrp3735LY7i6umrWrFkObT169NDAgQO1fft2rVmzRj/88IMmTZqkgQMH6sMPP8w1hpubm9zc3O58QgCAQits+OK7ur2kyc/d1e05Q0JCgh566CGdPn1afn5+zi7ntjh1D1DZsmVVt25dh7Y6deooJSVFkhQYGChJSktLc+iTlpZmX/d7X3/9tX766Sf1799fCQkJeuSRR+Tp6amuXbsqISEh/ycBAEA+SU1N1YABA1S1alW5ubkpKChIHTp0UHx8fL5to2XLlho0aFC+jXevcmoAioyMVHJyskPbvn37VKlSJUlXT4gODAx0eOIzMjKUmJioiIiIXONdunRJ0dHReu+99+Ti4uJwFdCsrCxlZ2cX4GwAAMi7I0eOKCwsTF999ZUmT56snTt3at26dXrooYcUHR19V2sxxujKlSt3dZt3m1MD0ODBg7Vlyxa98cYbOnDggJYtW6a5c+fan2ibzaZBgwbp9ddf18cff6ydO3fqueeeU7ly5dSpU6dc47322mt65JFHFBoaKulqwFq1apV+/PFHzZw5U5GRkXdzegAA3LKXXnpJNptN3333nbp06aKaNWuqXr16GjJkiLZs2SJJSklJUceOHeXl5SUfHx917drV4SjJ+PHj9cADD2jJkiWqXLmyfH199dRTT+ns2bOSpOeff14bNmzQO++8I5vNJpvNpiNHjighIUE2m01r165VWFiY3NzctHHjRmVmZmrgwIEqU6aM3N3d1axZM23dutUpj09+c+o5QI0aNdLq1as1atQoTZgwQVWqVNH06dP1zDPP2PuMGDFC58+fV+/evXXmzBk1a9ZM69atk7u7u8NYu3bt0ooVK7Rjxw572+OPP66EhAQ1b95ctWrV0rJly+7W1HCPSZnQwNkl4H8qjt3p7BKAu+7UqVNat26dYmJi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kqSkpCRlZWWpVatW9r61a9dWxYoVtXnzZklSSEiIvvrqK125ckXr169XcHCwJGnSpElq2bKlGjZseEs1ZGZmKiMjw2EBAAD3L6cGoPDwcC1cuFDr1q1TbGysDh8+rObNm+vs2bNKTU1VsWLF5Ofn53CfgIAApaamSpJGjhypokWLqlq1alq9erUWLFig/fv3a9GiRRozZoz69u2rqlWrqmvXrkpPT79hHRMnTpSvr699CQoKKshpAwAAJ3PqIbB27drZfw4ODlZ4eLgqVaqkFStWqHjx4n94f19fXy1btsyh7eGHH9bkyZO1dOlSHTp0SMnJyerVq5cmTJhwwxOiR40apSFDhthvZ2RkEIIAALiPOf0Q2G/5+fmpZs2aOnDggAIDA3X58mWdOXPGoU9aWtp1zxmSrp4j5Ofnp44dOyohIUGdOnWSq6urnnjiCSUkJNxwu25ubvLx8XFYAADA/atQBaBz587p4MGDKlu2rMLCwuTq6qr4+Hj7+uTkZKWkpCgiIiLXfU+ePKkJEyZoxowZkqTs7GxlZWVJunpSdHZ29t2ZBAAAKPSceghs2LBh6tChgypVqqRjx45p3LhxcnFxUbdu3eTr66uePXtqyJAhKlmypHx8fDRgwABFRESoSZMmucYaNGiQhg4dqvLly0uSIiMjtWTJErVp00Zz585VZGTk3Z4eAAAopJwagP773/+qW7du+vXXX1W6dGk1a9ZMW7ZsUenSpSVJ06ZNU5EiRdSlSxdlZmYqKipKs2fPzjXO+vXrdeDAAS1ZssTe1r9/f33//fcKDw9X48aNNW7cuLs2LwAAULjZjDHG2UUUNhkZGfL19VV6enqBng8UNnxxgY2N27Pae7KzS8D/VBy709klALhH3c77d6E6BwgAAOBuIAABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQAB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yxo3blxepwoAAO4zedoDNHbsWE2dOtW+R0aSNm/erMGDByslJeWmJxz/1oIFC2663t3dXbNmzdKsWbNu2i8qKkpRUVEObR4eHrd1UUYAAGAdeQpAsbGxmjdvnrp162Zve+yxxxQcHKwBAwbccgACAABwhjwdAsvKyrruRQbDwsJ05cqVOy4KAACgIOUpAD377LOKjY3N1T537lw988wzd1wUAABAQcrTITDp6vk7n3/+uf0TWYmJiUpJSdFzzz2nIUOG2PtNnTr1zqsEAADIR3kKQLt27dKf/vQnSdLBgwclSaVKlVKpUqW0a9cue7+8fDQeAACgoOUpAH399df5XQcAAMBdk+frAAEAANyrCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMByCEAAAMBynBqAJk6cqEaNGsnb21tlypRRp06dlJyc7NDn0qVLio6Olr+/v7y8vNSlSxelpaXZ1586dUodOnSQl5eXQkNDtX37dof7R0dHa8qUKXdlPgAA4N7g1AC0YcMGRUdHa8uWLfriiy+UlZWlNm3a6Pz58/Y+gwcP1ieffKKVK1dqw4YNOnbsmDp37mxfHxMTo7Nnz2rbtm1q2bKlevXqZV+3ZcsWJSYmatCgQXdzWgAAoJAr6syNr1u3zuH2woULVaZMGSUlJenBBx9Uenq6FixYoGXLlunhhx+WJMXFxalOnTrasmWLmjRpoj179uipp55SzZo11bt3b82dO1eSlJWVpb59+2r+/PlycXG563MDAACFV6E6Byg9PV2SVLJkSUlSUlKSsrKy1KpVK3uf2rVrq2LFitq8ebMkKSQkRF999ZWuXLmi9evXKzg4WJI0adIktWzZUg0bNvzD7WZmZiojI8NhAQAA969CE4BycnI0aNAgRUZGqn79+pKk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119//br3GT58uMaNG6dq1arpgQceUFxcnHbs2OFwWOhWVa5cWfHx8YqMjJSbm5vDm+5vlShRQv7+/po7d67Kli2rlJQUjRw58ra3N2jQILVr1041a9bU6dOn9fXXX9sPW/Xp00dTp07VK6+8op49e2rHjh1auHChpP/bk/TKK6+oSZMm6t+/v1588UV5enpq9+7d+uKLLzRz5sxbquHpp5/W6NGj1atXL40aNUpHjhzR22+/7dAnOjpa8+bNU7du3TRixAiVLFlSBw4c0PLlyzV//vxce2t/63YOgT399NN69dVX1bNnT73yyivatWuX3nnnHU2bNs2h37///W81b97cYS81Ci+uA4RCqVq1atq+fbtatWqlUaNGKSQkRA0bNtSMGTM0bNgwvfbaa5Ku/sH917/+pQcffFA9evRQzZo19dRTT+k///mP/XyZWzF58mQ1b95cHTp0UKtWrdSsWbNc5w3ExcXpueee09ChQ1WrVi116tRJW7duddilf6tefPFFLV++/LZ2919Pnz591LlzZz355JMKDw/Xr7/+6rA36Hpee+01jRkzRhMnTlSdOnXUtm1bffbZZzcMTX/k2LFjCg0NVWhoqI4fP663335boaGhevHFF+19Fi5c+IeHBn8vv57b3wsJCdHUqVP11ltvqX79+lq6dKkmTpx40/tERUXp008/1eeff65GjRqpSZMmmjZt2k2v4zRw4EANGTJEQ4cOVYMGDbRu3Tp9/PHHqlGjxm3XPGXKFH3xxRcKCgpyOFfr94oUKaLly5crKSlJ9evX1+DBgzV58uTb3l52draio6Ptvx81a9bU7NmzJUlVqlTRP//5T61atUrBwcGKjY21X9Dz2mHU4OBgbdiwQfv27VPz5s0VGhqqsWPHqly5crdcg5eXlz755BPt3LlToaGhGj16dK5DXdf2smVnZ6tNmzZq0KCBBg0aJD8/P4f/wNwpX19fff755zp8+LDCwsI0dOhQjR07NteV3JcvX65evXrl23ZRsGzGGOPsIgCrMcYoPDxcgwcPVrdu3ZxdToEbN26cNmzYcN3zeXDvi4mJ0Zw5c3T06FFnl+I0a9eu1dChQ/Xjjz/e9uE4OAfPEuAENptNc+fO1c6dO51dyl2xdu3aWz70gcJv9uzZatSokfz9/bVp0yZNnjxZ/fv3d3ZZTnX+/HnFxcURfu4h7AECANyWwYMH64MPPtCpU6dUsWJFPfvssxo1ahRv/rinEIAAAIDlcBI0AACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwnP8PooO0lh80bNgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.barplot(\n", " data=df.groupby('w')['gender_male'].value_counts(normalize=True).to_frame().set_axis(['prop'], axis=1),\n", " x=\"gender_male\",\n", " y=\"prop\",\n", " hue=\"w\",\n", " )\n", "\n", "ax.yaxis.set_major_formatter(\"{x:.0%}\")\n", "ax.set_xlabel(\"Gender (male=1, female or transgender=0)\")\n", "ax.legend(title='')\n", "new_labels = ['Control', 'Treatment'] # Replace with your desired labels\n", "for t, l in zip(ax.get_legend().texts, new_labels):\n", " t.set_text(l)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we saw in section 1.1., there is a similar percentage of males and females participants in each treatment group in the sample. " ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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CfL19VXfvn3Vv39/9evXT66urnrsscc0ffr0a9bg5uYmNze3ch0XAACoupwegP5TSUmJCgsLFRoaKldXVyUnJ2vAgAGSpKysLOXk5CgiIqLUfidPnlRsbKy2bdsm6fKcoqKiIkmXJ0UXFxdX3iAAWF7olLedXQL+baO3sytAVeTUADR16lT17t1bDRs21JkzZ5SYmKiUlBQlJSXJbrdr+PDhmjhxomrVqiUfHx+NGzdOERER6ty5c6m+YmJiNGnSJNWvX1+SFBkZqTVr1qhXr15avny5IiMjK3t4AACginJqADpx4oSGDBmi48ePy263q0OHDkpKStIDDzwgSVqwYIGqVaumAQMGqLCwUFFRUXrzzTdL9ZOUlKTs7GytWbPGbBs7dqx27dql8PBwderUSTNmzKi0cQEAgKrNqQEoPj7+uuvd3d21ZMkSLVmy5LrbRUVFKSoqyqHNw8ND69atu+UaAQDAncfpnwIDAACobAQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOQQgAABgOU4NQLNmzdI999wjb29v3X333erXr5+ysrIctrlw4YKio6NVu3ZteXl5acCAAcrLyzPX//TTT+rTp4+8vLwUEhKib775xmH/6OhozZs3r1LGAwAAbg9ODUCpqamKjo5Wenq6PvvsMxUVFalXr146d+6cuc2ECRP00Ucfaf369UpNTdWxY8fUv39/c31cXJzOnDmj3bt3q3v37hoxYoS5Lj09XTt27FBMTExlDgsAAFRx1Z158C1btjg8XrVqle6++25lZGTovvvuU35+vuLj45WYmKgePXpIkhISEtSmTRulp6erc+fOyszM1KBBg9SyZUuNHDlSy5cvlyQVFRVp1KhRWrlypVxcXK5bR2FhoQoLC83HBQUF5TxSAABQlVSpOUD5+fmSpFq1akmSMjIyVFRUpJ49e5rbtG7dWg0bNlRaWpokKTg4WJ9//rkuXbqkpKQkdejQQZI0Z84cde/eXWFhYb963FmzZslut5tLYGBgeQ8NAABUIVUmAJWUlCgmJkaRkZFq166dJCk3N1c1atSQr6+vw7b+/v7Kzc2VJL3wwguqXr26mjVrpo0bNyo+Pl4HDx7U6tWrNW3aNI0aNUpNmzbVwIEDzYD1n6ZOnar8/HxzOXr0aIWOFQAAOJdTL4H9UnR0tPbt26dt27bd1H52u12JiYkObT169NDcuXO1du1aHT58WFlZWRoxYoRiY2OvOiHazc1Nbm5ut1Q/AAC4fVSJM0Bjx47Vxx9/rC+++EINGjQw2wMCAnTx4kWdPn3aYfu8vDwFBARcta+EhAT5+vqqb9++SklJUb9+/eTq6qrHHntMKSkpFTgKAABwu3BqADIMQ2PHjtXGjRv1+eefq0mTJg7rQ0ND5erqquTkZLMtKytLOTk5ioiIKNXfyZMnFRsbq8WLF0uSiouLVVRUJOnypOji4uIKHA0AALhdOPUSWHR0tBITE/XBBx/I29vbnNdjt9tVs2ZN2e12DR8+XBMnTlStWrXk4+OjcePGKSIiQp07dy7VX0xMjCZNmqT69etLkiIjI7VmzRr16tVLy5cvV2RkZKWODwAAVE1OPQO0dOlS5efnq3v37qpbt665vPfee+Y2CxYs0MMPP6wBAwbovvvuU0BAgDZs2FCqr6SkJGVnZ2vMmDFm29ixY9W0aVOFh4fr4sWLmjFjRqWMCwAAVG1OPQNkGMavbuPu7q4lS5ZoyZIl190uKipKUVFRDm0eHh5at27dLdUIAADuPFViEjQAAEBlIgABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLIQABAADLcWoA+vLLL9WnTx/Vq1dPNptNmzZtclhvGIamT5+uunXrqmbNmurZs6cOHjxo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WLhwoRo3bmw+vvJ/y6+88or8/f3l6+ur2NhYXbp0SVOmTFGtWrXUoEEDJSQklOr/wIEDuvfee+Xu7q527dopNTXVYf2+ffvUu3dveXl5yd/fX0899ZR++OEHc3337t01duxYxcTEmP/gX01JSYliY2PVoEEDubm5qWPHjtqyZYu53mazKSMjQ7GxsbLZbJo5c+ZV+7lyvLFjx8put6tOnTqaNm2afvnVgmvWrFFYWJi8vb0VEBCgJ554QidOnDDXp6SkyGazafPmzQoNDZWbm5veeecdvfTSS/rb3/4mm80mm81mfnGlzWbTypUr9bvf/U4eHh5q0aKFPvzww1t+ngzD0MyZM9WwYUO5ubmpXr16Gj9+/FXHLUknT57U559/rj59+ji05+TkqG/fvvLy8pKPj48GDhyovLw8c/2V36E1a9aocePGstvtGjRokM6cOePw+syaNUtNmjRRzZo1FRwcrL/85S/XrEWSGjdurJdfflmDBw+Wp6en6tevryVLljhsM3/+fLVv316enp4KDAzUmDFjdPbsWXP9qlWr5Ovrqw8//FBBQUFyc3PTsGHDtHr1an3wwQfma5GSkmJett2wYYPuv/9+eXh4KDg4WGlpaQ7H3LZtm7p27aqaNWsqMDBQ48eP17lz50rVPWTIEPn4+GjkyJHXHee1xv76669ryJAhstvt19yuT58+evfdd2+6f9zhDMDChg4davTt29fYsGGD4e7ubhw9etQwDMPYuHGj8cu3x4wZM4zg4GCHfRcsWGA0atTIoS9vb28jOjraOHDggBEfH29IMqKiooy4uDjj22+/NV5++WXD1dXVPM6RI0cMSUaDBg2Mv/zlL8b+/fuN3//+94a3t7fxww8/GIZhGKdOnTL8/PyMqVOnGpmZmcbu3buNBx54wLj//vvNY3fr1s3w8vIypkyZYhw4cMA4cODAVcc7f/58w8fHx/jzn/9sHDhwwHj++ecNV1dX49tvvzUMwzCOHz9utG3b1pg0aZJx/Phx48yZM1ft58rxnnvuOePAgQPGO++8Y3h4eBjLly83t4mPjzf++te/GocOHTLS0tKMiIgIo3fv3ub6L774wpBkdOjQwfj000+N7Oxs45///KcxadIko23btsbx48eN48ePGz///LNhGIb5PCUmJhoHDx40xo8fb3h5eRk//vjjLT1P69evN3x8fIy//vWvxvfff2/s2LHDYRz/acOGDYanp6dRXFxsthUXFxsdO3Y0unTpYuzatctIT083QkNDjW7dupnbzJgxw/Dy8jL69+9v7N271/jyyy+NgIAA43//93/Nbf74xz8arVu3NrZs2WIcOnTISEhIMNzc3IyUlJRr1tOoUSPD29vbmDVrlpGVlWUsWrTIcHFxMT799FNzmwULFhiff/65ceTIESM5Odlo1aqVMXr0aHN9QkKC4erqatx7773G9u3bjQMHDhj5+fnGwIEDjQcffNB8LQoLC83f2datWxsff/yxkZWVZTz66KNGo0aNjKKiIsMwDCM7O9vw9PQ0FixYYHz77bfG9u3bjZCQEOPpp592qNvHx8d47bXXjOzsbCM7O9swDMMICgoyPD09r7k8+OCDV30eunXrZjz33HNXXZeZmWlIMo4cOXLN5xHWQwCCpV0JQIZhGJ07dzaGDRtmGEbZA1CjRo0c/jC2atXK6Nq1q/n40qVLhqenp/HnP//ZMIz/H4Bmz55tblNUVGQ0aNDAePXVVw3DMIyXX37Z6NWrl8Oxjx49akgysrKyDMO4/I9/SEjIr463Xr16RlxcnEPbPffcY4wZM8Z8HBwcbMyYMeO6/XTr1s1o06aNUVJSYrb9z//8j9GmTZtr7rNz505DkhmqrgSgTZs2OWx3tefaMC4HoBdffNF8fPbsWUOSsXnzZsMwyv48zZs3z2jZsqVx8eLF6475igULFhhNmzZ1aPv0008NFxcXIycnx2z7xz/+YUgyvv76a3NcHh4eRkFBgbnNlClTjPDwcMMwDOPChQuGh4eH8dVXXzn0PXz4cGPw4MHXrKdRo0alQsHjjz/uEDb/0/r1643atWubjxMSEgxJxp49exy2++X744orv7MrV64sNdbMzEyz5pEjRzrs93//939GtWrVjPPnz5t19+vXr1Rt3333nXHw4MFrLv/85z+vOqbrBaD8/HxD0nWDJKyHS2DAv7366qtavXq1MjMzy9xH27ZtHeaF+Pv7q3379uZjFxcX1a5d2+FSkCRFRESYP1evXl1hYWFmHX/729/0xRdfyMvLy1xat24t6fJ8nStCQ0OvW1tBQYGOHTumyMhIh/bIyMgyjblz584OE8UjIiJ08OBBFRcXS5IyMjLUp08fNWzYUN7e3urWrZuky5eKfiksLOyGj9mhQwfzZ09PT/n4+JjPZVmfp8cee0znz59X06ZNNWLECG3cuPG6c5HOnz8vd3d3h7bMzEwFBgYqMDDQbAsKCpKvr6/Dc9u4cWN5e3ubj+vWrWvWn52drZ9//lkPPPCAwxjefvtth/qv5pe/P1ce//K4W7du1X/913+pfv368vb21lNPPaUff/xRP//8s7lNjRo1HJ7fX/PLbevWrStJDq/FqlWrHMYRFRWlkpISHTlyxNzvaq99o0aN1Lx582su9evXv+Ear6hZs6YkOYwXqO7sAoCq4r777lNUVJSmTp2qp59+2mFdtWrVHOa3SFJRUVGpPlxdXR0e22y2q7bdzATTs2fPqk+fPnr11VdLrbvyh0e6HAiqinPnzikqKkpRUVFau3at/Pz8lJOTo6ioqFKTXW+m7us9l2V9ngIDA5WVlaWtW7fqs88+05gxYzR37lylpqaWOp50eVJtWSfM/1r9kvTJJ5+U+iPv5uZWpuNJl2+18PDDD2v06NGKi4tTrVq1tG3bNg0fPlwXL16Uh4eHpMsh4WY++fjLsVzZ75djefbZZ686l6phw4bmz1d77du2bavvv//+msft2rWrNm/efMN1StJPP/0kSfLz87up/XBnIwABvzB79mx17NhRrVq1cmj38/NTbm6uDMMw/7Evz3v3pKen67777pMkXbp0SRkZGRo7dqwk6Te/+Y3ef/99NW7cWNWrl/0t6+Pjo3r16mn79u3m2RhJ2r59uzp16nTT/e3YsaPUGFq0aCEXFxcdOHBAP/74o2bPnm2eFdm1a9cN9VujRg3zLNLNuJXnqWbNmurTp4/69Omj6OhotW7dWnv37tVvfvObUtuGhIQoNzdXp06d0l133SVJatOmjY4ePaqjR4+a492/f79Onz6toKCgG6rhyuTjnJwch9fnRqSnp5d63KZNG0mXz8SVlJRo3rx55tnJdevW3VC/t/Ja7N+/X82bN7/pff/6179e9X8urrhyNudm7Nu3T66urmrbtu1N74s7FwEI+IX27dvrySef1KJFixzau3fvrpMnT2rOnDl69NFHtWXLFm3evFk+Pj7lctwlS5aoRYsWatOmjRYsWKBTp05p2LBhkqTo6GitWLFCgwcP1vPPP69atWopOztb7777rlauXCkXF5cbPs6UKVM0Y8YMNWvWTB07dlRCQoL27NmjtWvX3nTNOTk5mjhxop599lnt3r1bixcv1rx58yRd/r/8GjVqaPHixRo1apT27dunl19++Yb6bdy4sY4cOaI9e/aoQYMG8vb2vqEzIGV9nlatWqXi4mKFh4fLw8ND77zzjmrWrKlGjRpddfuQkBDVqVNH27dv18MPPyzp8icJr/zuLFy4UJcuXdKYMWPUrVu3G77E5+3trcmTJ2vChAkqKSlRly5dlJ+fr+3bt8vHx0dDhw695r7bt2/XnDlz1K9fP3322Wdav369PvnkE0lS8+bNVVRUpMWLF6tPnz7avn27li1bdkM1NW7cWElJScrKylLt2rWv+0mrX/qf//kfde7cWWPHjtXvf/97eXp6av/+/frss8/0xhtvXHffaz3v13Llf0TOnj2rkydPas+ePapRo4ZD8Py///s/8xNpwBXMAQL+Q2xsbKlLVG3atNGbb76pJUuWKDg4WF9//bUmT55cbsecPXu2Zs+ereDgYG3btk0ffvih6tSpI0nmWZvi4mL16tVL7du3V0xMjHx9fW/6PjTjx4/XxIkTNWnSJLVv315btmzRhx9+qBYtWtx0zUOGDNH58+fVqVMnRUdH67nnnjM/yuzn56dVq1Zp/fr1CgoK0uzZs/Xaa6/dUL8DBgzQgw8+qPvvv19+fn7685//fEP7lfV58vX11YoVKxQZGakOHTpo69at+uijj655DyQXFxc988wzDqHRZrPpgw8+0F133aX77rtPPXv2VNOmTfXee+/dUO1XvPzyy5o2bZpmzZqlNm3a6MEHH9Qnn3yiJk2aXHe/SZMmadeuXQoJCdEf//hHzZ8/37wVQnBwsObPn69XX31V7dq109q1a697y4dfGjFihFq1aqWwsDD5+flp+/btN7Rfhw4dlJqaqm+//VZdu3ZVSEiIpk+frnr16t3Q/jcjJCREISEhysjIUGJiokJCQvTQQw85bPPuu+9qxIgR5X5s3N5sxn9ObACAX9G9e3d17NhRCxcudHYpTpGbm6u2bdtq9+7dN33Gorw1btxYMTExV70LMqTNmzdr0qRJ+vvf/35Ll5Bx5+EMEADcpICAAMXHx5f6RBuqnnPnzikhIYHwg1L4jQCAMqjK35GF/+/RRx91dgmoorgEBgAALIdLYAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHL+Hx190Bit+S+nAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.barplot(\n", " data=df.groupby('w')['partners1'].value_counts(normalize=True).to_frame().set_axis(['prop'], axis=1),\n", " x=\"partners1\",\n", " y=\"prop\",\n", " hue=\"w\",\n", " )\n", "\n", "ax.yaxis.set_major_formatter(\"{x:.0%}\")\n", "ax.set_xlabel(\"Number of partners (one partner=1)\")\n", "ax.legend(title='')\n", "new_labels = ['Control', 'Treatment'] # Replace with your desired labels\n", "for t, l in zip(ax.get_legend().texts, new_labels):\n", " t.set_text(l)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a similar manner, we note an equal percentage of participants with 2 or more sexual partners as well as those with 1 sexual partner in the last 12 months from the beginning of the study, per treatment or control group." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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bmh7fsSIETz33HNtzz/yyCO8+eabfPbZZyiKgqIorFixgv3796MoCv/97385+eST8fPzY+rUqezatYsNGzYwZcoUAgMDOfvsszl0qP0qzVdeeYWRI0fi6+tLRkYG//znP9ueaz3vxx9/zKmnnoq/vz/jx49nzZo1AKxYsYLrrruOysrKtngGYnTqeF6XGt53333cddddbd9XVVVJYuOhsgvtxIT4Eujbzx9T1QGZb4F1mPYm1Qe+JoVbJlp45IdG/pHVyJ1TelnTFTUG9n3Xp2sL0antn8Fnt4LJV5tOzXkPYifCtJth9M86bVcg3Me9997LU089RWpqKmFhYSxcuJC3336bF198kfT0dL777juuvPJKIiIimDNnDk6nk/j4eD744ANsNhurV6/mpptuIiYmhosvvpi7776bHTt2UFVVxeuvvw6A1WqluLgY0Ka8nn32WRITE7n++uu5/PLLCQoK4rnnnsPf35+LL76Yhx56iBdeeAGAd955h4ceeoh//OMfTJw4kaysLG688UYCAgK45ppr2v4c999/P0899RTp6encf//9XHbZZeTl5TFr1iyeffbZdqNUx45QDRS3TWqio7U6ioMHDxITE9P2+MGDB5kwYUKXr/Px8cHHx0UrZYSutKZ7LljKvfc7sOfDjF/3aZSmVXqYkZ+lm/l7ZhOnxJuYHN2Lfz5SVyNcpbkelv0fbHwNkmbDrN+AyU8bqcldAp/+Snt+8jUw5XoITdQ7YtGJP/zhD5xxxhmAVjbx5z//ma+//pqZM2cCkJqayqpVq/jXv/7FnDlzMJvNPProo22vT0lJYc2aNfz3v//l4osvJjAwED8/PxobG9s+P4919913c+aZZwJw++23c9lll7F8+XJmz54NwA033MAbb7zRdvzDDz/M008/3baIJyUlhe3bt/Ovf/2rXVJz9913c+655wLw6KOPMnr0aPLy8sjIyGg3SjVY3DapSUlJITo6muXLl7clMVVVVaxbt45f//rX+gYnBlxTi5PtxVVcOq2fo2yOZsj6t9bZ1wVv7j9LN7H5kIM7vqnni58HEmjpYZLUVlezSvstWoi+OJQLH1yrtSaYsQCGn/Vjop4wTfuqOgA7/wfrX4YfntOOmXYTpM7tV1IvXGvKlClt/5+Xl0ddXV1bktOqqamJiRMntn3//PPP89prr1FQUEB9fT1NTU0n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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.histplot(data=df, x=\"age\", hue=\"w\", element=\"poly\", stat=\"percent\", common_norm=False)\n", "\n", "new_labels = ['Control', 'Treatment'] # Replace with your desired labels\n", "for t, l in zip(ax.get_legend().texts, new_labels):\n", " t.set_text(l)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see a higher percentage of participants aged between 23 and 27 in the treatment group. Also, there is a higher perceptange of participants aged between 21 and 22 and 27 and 29 in the control group." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "image/png": "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4wyrY3jNxIkTzVatWpkul8vqKB5z3nnnmVdeeWWtbaNGjTLHjRtnUSLPKi0tNe12u/n555/X2n7qqaea99xzj1ezaGhJjung6uFxcXEWJ2kYTqeTd999l5KSEvr06WN1HI+aMGEC5513HkOHDrU6SoNYu3YtKSkpZGZmMm7cODZv3mx1JI/59NNP6dmzJ3/84x9JSEige/fuvPLKK1bHahCVlZW89dZbXHnllR5dD89qffv2Zfbs2axZswaAZcuWMX/+fIYPH25xMs+orq7G6XQSGhpaa3tYWBjz58/3apbAuRYrHudyuZg0aRL9+vWjU6dOVsfxqOzsbPr06UN5eTmRkZF8/PHHdOjQwepYHvPuu++yePFiS8arvaF3795MmzaNtm3bkpeXx0MPPUT//v3JyckhKirK6ngnbf369bzwwgvccsst3H333SxYsICbbroJh8PB+PHjrY7nUZ988gkFBQVcfvnlVkfxqDvvvJOioiLatWuH3W7H6XQyZcoUxo0bZ3U0j4iKiqJPnz48/PDDtG/fnsTERN555x1++uknWrdu7d0wXr3+E4AI4KGlv/zlL2bLli3NLVu2WB3F4yoqKsy1a9eaCxcuNO+8806zWbNm5vLly62O5RGbN282ExISzGXLltVsC7Shpd/bt2+fGR0dHTDDg8HBwWafPn1qbbvxxhvN008/3aJEDefss882//CHP1gdw+Peeecds0WLFuY777xjZmVlmW+++aYZFxdnTps2zepoHpObm2sOGDDABEy73W726tXLHDdunNmuXTuv5lAhc5ICtZCZMGGC2aJFC3P9+vVWR/GKIUOGmNdee63VMTzi448/rvnFcvABmIZhmHa73ayurrY6YoPo2bOneeedd1odwyPS0tLMq666qta2f/3rX2ZKSopFiRrGxo0bTZvNZn7yySdWR/G4Fi1amP/85z9rbXv44YfNtm3bWpSo4RQXF5vbt283TdM0R48ebZ577rlefX/1yEgtpmlyww038PHHH/Ptt9+SkZFhdSSvcLlcVFRUWB3DI4YMGUJ2djZLly6tefTs2ZNx48axdOlS7Ha71RE9rri4mHXr1pGcnGx1FI/o16/fYdMerFmzhpYtW1qUqGG8/vrrJCQkcN5551kdxeNKS0ux2WqfYu12Oy6Xy6JEDSciIoLk5GT27dvHzJkzGTFihFffXz0y9VBcXExubm7N9xs2bGDp0qXExcWRlpZmYbKTN2HCBKZPn87//vc/oqKiyM/PByAmJoawsDCL03nGXXfdxfDhw0lLS2P//v1Mnz6duXPnMnPmTKujeURUVNRhPU0RERE0bdo0YHqdJk+ezPnnn0/Lli3Zvn07DzzwAHa7nbFjx1odzSNuvvlm+vbty6OPPsro0aP59ddfefnll3n55ZetjuYxLpeL119/nfHjxwfUrfMHnX/++UyZMoW0tDQ6duzIkiVLeOqpp7jyyiutjuYxM2fOxDRN2rZtS25uLrfddhvt2rXjiiuu8G4Qr17/CRBz5swxgcMe48ePtzraSTvS5wLM119/3epoHnPllVeaLVu2NB0OhxkfH28OGTLEnDVrltWxGlSg9ciMGTPGTE5ONh0Oh9m8eXNzzJgxZm5urtWxPOqzzz4zO3XqZIaEhJjt2rUzX375ZasjedTMmTNNwFy9erXVURpEUVGROXHiRDMtLc0MDQ01MzMzzXvuucesqKiwOprHvPfee2ZmZqbpcDjMpKQkc8KECWZBQYHXc2j1axEREfFb6pERERERv6VCRkRERPyWChkRERHxWypkRERExG+pkBERERG/pUJGRERE/JYKGREREfFbKmRERETEb6mQEZETMmjQICZNmuTR15w2bRqxsbH1Pv7BBx+kW7duHsvz+9e7/PLLGTlypMdeX0Q8J/AWuBCRBvXRRx8RHBxsdYwGNXnyZG688UarY4hIHaiQEZETEhcXZ3WEBhcZGUlkZKTVMUSkDjS0JCIn5NChpfT0dB555BEuu+wyIiMjadmyJZ9++im7du1ixIgRREZG0qVLFxYuXFjrNaZNm0ZaWhrh4eFccMEF7Nmz54QyPPbYYyQmJhIVFcVVV11FeXn5Yfu8+uqrtG/fntDQUNq1a8e//vWvWs9v3bqVsWPHEhcXR0REBD179uSXX34Bjj9U5XK5mDp1KhkZGYSFhdG1a1f++9//ntBnEBHPUCEjIifl6aefpl+/fixZsoTzzjuPSy+9lMsuu4xLLrmExYsX06pVKy677DIOrk/7yy+/cNVVV3HDDTewdOlSBg8ezCOPPFLn93v//fd58MEHefTRR1m4cCHJycmHFSlvv/02999/P1OmTGHlypU8+uij3HfffbzxxhsAFBcXM3DgQLZt28ann37KsmXLuP3223G5XHXKMHXqVN58801efPFFli9fzs0338wll1zCvHnz6vw5RMRDvL7etoj4tYEDB5oTJ040TdM0W7ZsaV5yySU1z+Xl5ZmAed9999Vs++mnn0zAzMvLM03TNMeOHWuee+65tV5zzJgxZkxMTJ3ev0+fPub1119fa1vv3r3Nrl271nzfqlUrc/r06bX2efjhh80+ffqYpmmaL730khkVFWXu2bPniO/xwAMP1Hq98ePHmyNGjDBN0zTLy8vN8PBw88cff6x1zFVXXWWOHTu2Tp9BRDxHV2RE5KR06dKl5uvExEQAOnfufNi2nTt3ArBy5Up69+5d6zX69OlT5/c73vElJSWsW7eOq666qqbXJTIykkceeYR169YBsHTpUrp3716vfp/c3FxKS0s566yzar3+m2++WfP6IuI9avYVkZNy6B1MhmEcdVtdh21OVnFxMQCvvPLKYQWP3W4HICws7KRf/4svvqB58+a1ngsJCan364pI/aiQERGvat++fU1T7UE///zzCR9/2WWXHfH4xMREUlJSWL9+PePGjTvia3Tp0oVXX32VvXv3nvBVmQ4dOhASEsLmzZsZOHDgCR0rIp6nQkZEvOqmm26iX79+/P3vf2fEiBHMnDmTGTNm1Pn4iRMncvnll9OzZ0/69evH22+/zfLly8nMzKzZ56GHHuKmm24iJiaGc845h4qKChYuXMi+ffu45ZZbGDt2LI8++igjR45k6tSpJCcns2TJElJSUo47zBUVFcXkyZO5+eabcblcnHHGGRQWFvLDDz8QHR3N+PHj6/1nIyInTj0yIuJVp59+Oq+88grPPvssXbt2ZdasWdx77711Pn7MmDHcd9993H777fTo0YNNmzZx3XXX1drn6quv5tVXX+X111+nc+fODBw4kGnTppGRkQGAw+Fg1qxZJCQkcO6559K5c2cee+yxmqGn43n44Ye57777mDp1Ku3bt+ecc87hiy++qHl9EfEewzQP3BMpIiIi4md0RUZERET8lgoZEfEpHTt2rHVb86GPt99+2+p4IuJjNLQkIj5l06ZNVFVVHfG5g8sSiIgcpEJGRERE/JaGlkRERMRvqZARERERv6VCRkRERPyWChkRERHxWypkRERExG+pkBERERG/pUJGRERE/JYKGREREfFb/w9iV3sLc4ZJ2wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.histplot(data=df, x=\"imd_decile\", hue=\"w\", element=\"poly\", discrete=True, stat=\"percent\", common_norm=False)\n", "\n", "new_labels = ['Control', 'Treatment'] # Replace with your desired labels\n", "for t, l in zip(ax.get_legend().texts, new_labels):\n", " t.set_text(l)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the case of the IMD decile, an index that measures poverty in the UK, we can see the same proportion of participants in each group." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Linear Regression analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.1. Regression 1: $y = \\beta_0 + \\beta_1 T + \\epsilon$" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.077\n", "Model: OLS Adj. R-squared: 0.076\n", "Method: Least Squares F-statistic: 144.5\n", "Date: Sun, 16 Jun 2024 Prob (F-statistic): 4.96e-32\n", "Time: 21:22:54 Log-Likelihood: -1112.9\n", "No. Observations: 1739 AIC: 2230.\n", "Df Residuals: 1737 BIC: 2241.\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "Intercept 0.2115 0.016 13.174 0.000 0.180 0.243\n", "w 0.2652 0.022 12.021 0.000 0.222 0.308\n", "==============================================================================\n", "Omnibus: 38241.926 Durbin-Watson: 1.995\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 217.327\n", "Skew: 0.532 Prob(JB): 6.43e-48\n", "Kurtosis: 1.634 Cond. No. 2.69\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "model_1 = \"y ~ w\"\n", "est_1 = smf.ols(formula=model_1 , data=df).fit()\n", "\n", "print(est_1.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We found that the adjusted R-squared is 0.076 and the ATE is approximately 0.27. This means that the treatment explains only 7.6% of the increase in the STI tests between the control and treatment groups. Additionally, receiving the treatment (i.e. being invited to use the internet-based sexual health service) increases, on average, the probability of taking an STI test by 26.5%." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2. Regression 2: $y = \\beta_0 + \\beta_1 T + \\beta_2 X + \\epsilon$" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.107\n", "Model: OLS Adj. R-squared: 0.102\n", "Method: Least Squares F-statistic: 22.94\n", "Date: Sun, 16 Jun 2024 Prob (F-statistic): 3.06e-37\n", "Time: 21:22:54 Log-Likelihood: -1084.3\n", "No. Observations: 1739 AIC: 2189.\n", "Df Residuals: 1729 BIC: 2243.\n", "Df Model: 9 \n", "Covariance Type: nonrobust \n", "============================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------------\n", "Intercept -0.1807 0.088 -2.042 0.041 -0.354 -0.007\n", "w 0.2622 0.022 12.044 0.000 0.220 0.305\n", "age 0.0149 0.003 4.787 0.000 0.009 0.021\n", "gender_female 0.0905 0.025 3.629 0.000 0.042 0.139\n", "ethnicgrp_white 0.0499 0.041 1.209 0.227 -0.031 0.131\n", "ethnicgrp_black -0.0292 0.054 -0.538 0.591 -0.136 0.077\n", "ethnicgrp_mixed_multiple -0.0315 0.054 -0.587 0.557 -0.137 0.074\n", "partners1 -0.0661 0.024 -2.714 0.007 -0.114 -0.018\n", "imd_decile -0.0045 0.007 -0.609 0.543 -0.019 0.010\n", "msm 0.0033 0.037 0.089 0.929 -0.069 0.075\n", "==============================================================================\n", "Omnibus: 2495.421 Durbin-Watson: 1.997\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 193.943\n", "Skew: 0.524 Prob(JB): 7.69e-43\n", "Kurtosis: 1.743 Cond. No. 215.\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "model_2 = \"y ~ w + age + gender_female + ethnicgrp_white + ethnicgrp_black + ethnicgrp_mixed_multiple + partners1 + imd_decile + msm\"\n", "est_2 = smf.ols(formula=model_2 , data=df).fit()\n", "\n", "print(est_2.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compared to the previous regression, when we include additional variables (age, gender, ethnic group, number of sexual partners, the indicator for Randomised after SH:24 made publicly available, the indicator for men who have sex with men, and the socioeconomic level measured by deciles), we observe an increase in the adjusted R-squared of approximately 0.3 percentage points (from 0.1). Additionally, the ATE decreases by 0.003 percentage points, indicating a negative bias.\n", "\n", "It is worth mentioning that we omit gender_male to avoid collinearity with gender_female. Similarly, we exclude the less relevant ethnic group (i.e. the one with fewer observations) to prevent the same issue." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.3. Regression 3: $y = \\beta_0 + \\beta_1 T + \\beta_2 X + \\epsilon$ (Double Lasso variable selection)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Summary for the final model with dependent variable 'y':\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.106\n", "Model: OLS Adj. R-squared: 0.103\n", "Method: Least Squares F-statistic: 34.38\n", "Date: Sun, 16 Jun 2024 Prob (F-statistic): 2.06e-39\n", "Time: 21:30:47 Log-Likelihood: -1084.5\n", "No. Observations: 1739 AIC: 2183.\n", "Df Residuals: 1732 BIC: 2221.\n", "Df Model: 6 \n", "Covariance Type: nonrobust \n", "===================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "-----------------------------------------------------------------------------------\n", "const -0.2026 0.081 -2.508 0.012 -0.361 -0.044\n", "age 0.0149 0.003 4.824 0.000 0.009 0.021\n", "ethnicgrp_white 0.0710 0.025 2.805 0.005 0.021 0.121\n", "gender_female 0.0888 0.022 3.977 0.000 0.045 0.133\n", "imd_decile -0.0042 0.007 -0.569 0.570 -0.019 0.010\n", "partners1 -0.0660 0.024 -2.725 0.006 -0.114 -0.019\n", "w 0.2626 0.022 12.078 0.000 0.220 0.305\n", "==============================================================================\n", "Omnibus: 2501.289 Durbin-Watson: 1.996\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 194.167\n", "Skew: 0.524 Prob(JB): 6.87e-43\n", "Kurtosis: 1.743 Cond. No. 177.\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "# Assuming df is already defined\n", "X = df[[\"gender_female\", \"ethnicgrp_white\", \"ethnicgrp_black\", \"gender_transgender\", \"msm\", \"partners1\", \"age\", \"imd_decile\"]]\n", "w = df['w']\n", "y = df['y']\n", "\n", "# Fit LassoCV model to find the optimal alpha (lambda)\n", "cv_model3a = LassoCV(alphas=None, cv=10, max_iter=10000).fit(X, w)\n", "cv_model3b = LassoCV(alphas=None, cv=10, max_iter=10000).fit(X, y)\n", "\n", "# Fit Lasso model with the optimal alpha\n", "model3a = Lasso(alpha=cv_model3a.alpha_).fit(X, w)\n", "model3b = Lasso(alpha=cv_model3b.alpha_).fit(X, y)\n", "\n", "# Identify non-zero coefficients from Lasso models\n", "significant_vars3a = X.columns[model3a.coef_ != 0]\n", "significant_vars3b = X.columns[model3b.coef_ != 0]\n", "\n", "# Combine the significant variables from both models\n", "significant_vars = pd.Index(np.unique(significant_vars3a.append(significant_vars3b)))\n", "\n", "# Extract the significant variables for regression\n", "X_significant = X[significant_vars]\n", "\n", "# Add 'w' to the significant variables\n", "X_significant_with_w = X_significant.copy()\n", "X_significant_with_w['w'] = w\n", "\n", "# Add constant term for intercept in the new significant variable set\n", "X_significant_with_w = sm.add_constant(X_significant_with_w)\n", "\n", "# Fit linear regression model on significant variables plus 'w' against 'y'\n", "model3 = sm.OLS(y, X_significant_with_w).fit()\n", "\n", "# Print summary of the model\n", "print(\"Summary for the final model with dependent variable 'y':\")\n", "print(model3.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe that the ATE using double lasso is akin to the OLS with confounders, along with the adjusted R-squared." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.4. Coefficient Comparison" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/km/jc_93cpj0cv1jgmdmzcmqj6m0000gn/T/ipykernel_4903/1402500519.py:23: UserWarning: marker is redundantly defined by the 'marker' keyword argument and the fmt string \"o\" (-> marker='o'). The keyword argument will take precedence.\n", " ax.errorbar(model_labels, coefficients, yerr=errors, fmt='o', capsize=5, capthick=2, marker='s', markersize=7, linestyle='None')\n" ] }, { "data": { "image/png": "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/TK/du3apWHDhikoKEiDBw+2rN5HH31UWVlZGjduXK5ply5dcvp8OKtjy5Yt+vTTT3NNO336tC5dulTgduXccyw/63ema9euGj16tObOnZvrfl853N3d1a5dO61evdpheERKSoqWL1+u++67z34Zr0OHDtq6dau2bdtmn+/EiRO5zvjFxsYqICBAr776qjIzM3Ot81p949SpU7nKcn66yOpj/U7AmavbRNWqVbV8+XJ169ZNtWrVUq9evVSnTh1lZGToq6++0j//+U/7b7pFRkYqLi5Ob7zxhk6fPq3o6Ght27ZNS5YsUefOnXX//fdb2jYfHx8lJiYqLi5OTZs21SeffKKPPvpIL7zwgv20f8eOHTVt2jS1b99ejz/+uFJTUzVnzhxVq1ZNu3fvLtR6z5w5o4oVK6pr166KjIyUv7+/1q1bp2+++UavvfaapMtnPyZNmqQ+ffooOjpa3bt3V0pKimbOnKlKlSpZ9hMd5cqV08iRIzV27Fi1b99eDz30kPbt26e5c+eqcePGeuKJJwpV77333qs5c+Zo0KBBqlmzpnr27Knq1avrzJkzSkpK0po1azR+/HhJ0l/+8hfdf//9evHFF3X48GFFRkZq7dq1Wr16tYYNG2b/1Fu1alWNHz9eI0eO1OHDh9W5c2eVLFlShw4d0qpVqzRgwAA9++yzluyX4cOHa+XKlfrrX/+qvn37KioqSqdOndKaNWs0f/58RUZGOl1uzpw5uu+++1S3bl31799fVapUUUpKirZs2aJff/1Vu3btKnBboqKiNG/ePI0fP17VqlVT+fLl1bp1a9WuXVutWrVSVFSUSpcurW+//VYrV650+JKGFW52v8zLpk2blJ6erqysLJ08eVKbN2/WmjVrFBgYqFWrVjm93FRY0dHRevLJJzVhwgTt3LlT7dq1k6enpw4cOKB//vOfmjlzZq4bml5t+PDhWrNmjR588EH17t1bUVFROnfunL777jutXLlShw8fVtmyZQvUrqioKEnS0KFDFRsbK3d3dz322GP5Xj4wMDBfP58zfvx4ffbZZ7rvvvs0aNAgeXh46PXXX9fFixc1efJk+3zPPfecli5dqvbt2+upp56Sn5+f3njjDUVERDi8PgYEBGjevHnq2bOnGjZsqMcee0zlypXTkSNH9NFHH6l58+a5PlzlePnll/XFF1+oY8eOioiIUGpq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qVmzZqlJkyZO512wYIHefvtt7dmzR5IUFRWlV199Nc/5Bw4cqNdff13Tp0/XsGHDimoTANxi7uRLEsCtoF+LKk77UmZmpj7++GN16BAtT09PF7Ss6Ll8QPuKFSuUkJCg0aNHa8eOHYqMjFRsbKxSU1Odzp+UlKTu3btr48aN2rJli8LDw9WuXTsdO3Ys17yrVq3S1q1bFRoaWtSbAeAWk3NJ4sq/lLT/XoZIPXMx1/TktPTb4pIEANdyebiaNm2a+vfvrz59+qh27dqaP3++SpQooUWLFjmdf9myZRo0aJDq16+vmjVrauHChcrOztb69esd5jt27JiGDBmiZcuW3bbJGEDeci5JXP1XIcBbgV5GFQK8nU6/HS5JAHAtl76KZGRkaPv27Ro5cqS9zM3NTTExMdqyZUu+6jh//rwyMzNVunRpe1l2drZ69uyp4cOH65577rluHRcvXtTFi//9RJuWlibp8qnLzMzM/G5OvuTUZ3W9ABzF/U+44v4nPFd5ZmamPvvsM7Vte2+eH7zon0DRKcr3wVul77o0XP3+++/KyspShQoVHMorVKigH3/8MV91jBgxQqGhoYqJibGXTZo0SR4eHho6dGi+6pgwYYLGjh2bq3zt2rUqUaJEvuooqM8++6xI6gWQP/RBwLWKog+eP3/e8joLo1if/544caLee+89JSUlycfn8jcStm/frpkzZ2rHjh2yORms6szIkSOVkJBgf5yWlmYfyxUQEGBpm//7qbktlysBF6APAq5VlH0w58qTq7k0XJUtW1bu7u5KSUlxKE9JSVFwcPA1l506daomTpyodevWqV69evbyTZs2KTU1VXfddZe9LCsrS88884xmzJihw4cP56rL29tb3t7euco9PT2L7MW3KOsGcH30QcC1iqIP3ip92qUD2r28vBQVFeUwGD1ncHqzZs3yXG7y5MkaN26cEhMT1ahRI4dpPXv21O7du7Vz5077X2hoqIYPH65PP/20yLYFAABAugUuCyYkJCguLk6NGjVSkyZNNGPGDJ07d059+vSRJPXq1UthYWGaMGGCpMvjqUaNGqXly5erUqVKSk5OliT5+/vL399fZcqUUZkyZRzW4enpqeDgYN199903d+MAAMAdx+Xhqlu3bjpx4oRGjRql5ORk1a9fX4mJifZB7keOHJGb239PsM2bN08ZGRnq2rWrQz2j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N8YYs2nTJhMQEGDS09Md6q1atap5/fXX89yua73uONOxY0fzzDPPGGOM2b59u5FkDh8+nGu+kydPGkkmKSnJaT35eR24Hs5cWcTc4I3u3d3dtXjxYv3666+aPHmywsLC9Oqrr+qee+7R8ePHLWolUHg3eoxLhTvOS5UqpcjISCUlJem7776Tl5eXBgwYoP/85z86e/asPv/8c0VHR+dr/Tt37lSDBg1UunRpp9P37t2r5s2bO5Q1b95ce/fudSirV6+e/X8/Pz8FBAQoNTX1uuuPiorKtb5mzZrZPzHnrO/s2bP69ddfcy3ftm1bRUREqEqVKurZs6eWLVum8+fPX3e9uHMZY+zH1969exUeHq7w8HD79Nq1a6tUqVK5jvHr+Z//+R+H47ZZs2Y6cOCA07GTu3bt0tmzZ1WmTBn5+/vb/w4dOqSDBw8WaruysrI0btw41a1bV6VLl5a/v78+/fRTHTlyRJIUGRmpNm3aqG7duvrrX/+qBQsW6I8//pAklS5dWr1791ZsbKz+8pe/aObMmQ6vP/l9HbgWwtUNqlatmmw2W547fe/evQoKClK5cuXyVV9YWJh69uyp2bNn6/vvv1d6errmz59vZZOBArH6GJcKfpy3atVKSUlJ9iBVunRp1apVS19++WWBwpVV4xc9PT0dHttstnx9K8vPz++G1luyZEnt2LFD7777rkJCQjRq1ChFRkbyzUTkae/evapcuXK+53dzc8v1QSozM/OG2nD27FmFhIRo586dDn/79u3T8OHDC1XnlClTNHPmTI0YMUIbN27Uzp07FRsba/+iiLu7uz777DN98sknql27tmbNmqW7775bhw4dkiQtXrxYW7Zs0b333qsVK1aoRo0a2rp16w1t55UIVzeoTJkyatu2rebOnasLFy44TEtOTtayZcvUrVs3h4SfX0FBQQoJCbEPwANcoSiPcSl/x3nOuKv169fbx1a1atVK7777rvbv35+v8VbS5TNOO3fuzHOcR61atbR582aHss2bN6t27dr5ql+SvLy8JClf336sVauWtmzZ4vBmtnnzZpUsWVIVK1Z0uoyHh4diYmI0efJk7d69W4cPH9aGDRvy3T7cOTZs2KDvvvtOXbp0kXT5eDt69KiOHj1qn+eHH37Q6dOn7cd4uXLlcp1F3rlzZ666r/wSiCRt3bpV1atXl7u7e655GzZsqOTkZHl4eKhatWoOf2XLli3Utm3evFmdOnXSE088ocjISFWpUkX79+93mMdms6l58+YaO3as/vOf/8jLy0urVq2yT2/QoIFGjhypr776SnXq1NHy5cslWfM64FGorYKD2bNn695771VsbKzGjx+vypUr6/vvv9fw4cMVFhamV155xT7viRMnch2oISEh+te//qWdO3fq4YcfVtWqVZWenq63335b33//vWbNmnWTtwhwVJBjXLL+OG/ZsqXOnDmjDz/8UBMnTpR0OVx17dpVISEhqlGjhiRp5MiROnbsmN5++22n9XTv3l2vvvqqOnfurAkTJigkJET/+c9/FBoaqmbNmmn48OF69NFH1aBBA8XExOjf//63PvjgA61bty7f+yoiIkI2m00ffvihOnToIF9fX/n7+zudd9CgQZoxY4aGDBmi+Ph47du3T6NHj1ZCQoLc3HJ/9v3www/1888/q2XLlgoKCtLHH3+s7Oxs3X333fluH25PFy9eVHJysrKyspSSkqLExERNmDBBDz74oHr16iVJiomJUd26ddWjRw/NmDFDly5d0qBBgxQdHa1GjRpJujwIfsqUKXr77bfVrFkzvfPOO9qzZ48aNGjgsL4jR44oISFBTz75pHbs2KFZs2bptddec9q2mJgYNWvWTJ07d9bkyZNVo0YN/fbbb/roo4/08MMP29ftzKFDh3K9llSvXl3Vq1fXypUr9dVXXykoKEjTpk1TSkqKPQB9/fXXWr9+vdq1a6fy5cvr66+/1okTJ1SrVi0dOnRIb7zxhh566CGFhoZq3759OnDggH0/WfE6wIB2ixw+fNjExcWZChUqGE9PTxMeHm6GDBlifv/9d/s80dHRRlKuv3HjxpkdO3aYJ554wlSuXNl4e3ubMmXKmJYtW5o1a9a4cKuA/8rPMW5M0R3nkZGRJjg42P745MmTxmazmccee8xeFhcX5zDwNq/t6NKliwkICDAlSpQwjRo1Ml9//bV9+ty5c02VKlWMp6enqVGjhnn77bcdlpeTQbaBgYFm8eLF9scvv/yyCQ4ONjabzcTFxdn3i7OB/klJSaZx48bGy8vLBAcHmxEjRpjMzEz79CuX27Rpk4mOjjZBQUHG19fX1KtXz6xYseKa24vbX1xcnL2feXh4mHLlypmYmBizaNEi+xcjcvzyyy/moYceMn5+fqZkyZLmr3/9q0lOTnaYZ9SoUaZChQomMDDQPP300yY+Pj7XgPZBgwaZgQMHmoCAABMUFGReeOEFhwHuVw5oN8aYtLQ0M2TIEBMaGmp//ejRo4fD4PqrOXsdkWQ2bdpkTp48aTp16mT8/f1N+fLlzT/+8Q/Tq1cv+2D8H374wcTGxppy5coZb29vU6NGDTNr1ixjjDHJycmmc+fOJiQkxHh5eZmIiAgzatQoh311vdeB67H9/w0AAACABRhzBQAAYCHCFQAAgIUIVwAAABYiXAEAAFiIcAUAAGAhwhUAAICFCFcAAAAWIlwBgKSkpCTZbLYC/U5fpUqVNGPGjCJrE4DiiXAFoFjo3bu3bDabBg4cmGva4MGDZbPZ1Lt375vfMAC4CuEKQLERHh6u9957z+EHpNPT07V8+XLdddddLmwZAPwX4QpAsdGwYUOFh4frgw8+sJd98MEHuuuuuxx+WPbixYsaOnSoypcvLx8fH91333365ptvHOr6+OOPVaNGDfn6+ur+++/X4cOHc63vyy+/VIsWLeTr66vw8HANHTpU586dK7LtA3B7IFwBKFb69u2rxYsX2x8vWrRIffr0cZjnueee0/vvv68lS5Zox44dqlatmmJjY3Xq1ClJ0tGjR/XII4/oL3/5i3bu3Kl+/frp+eefd6jj4MGDat++vbp06aLdu3drxYoV+vLLLxUfH1/0GwmgWCNcAShWnnjiCX355Zf65Zdf9Msvv2jz5s164okn7NPPnTunefPmacqUKXrggQdUu3ZtLViwQL6+vnrzzTclSfPmzVPVqlX12muv6e6771aPHj1yjdeaMGGCevTooWHDhql69eq699579b//+796++23lZ6efjM3GUAx4+HqBgBAQZQrV04dO3bUW2+9JWOMOnbsqLJly9qnHzx4UJmZmWrevLm9zNPTU02aNNHevXslSXv37lXTpk0d6m3WrJnD4127dmn37t1atmyZvcwYo+zsbB06dEi1atUqis0DcBsgXAEodvr27Wu/PDdnzpwiWcfZs2f15JNPaujQobmmMXgewLUQrgAUO+3bt1dGRoZsNptiY2MdplWtWlVeXl7avHmzIiIiJEmZmZn65ptvNGzYMElSrVq1tGbNGofltm7d6vC4YcOG+uGHH1StWrWi2xAAtyXGXAEodtzd3bV371798MMPcnd3d5jm5+env//97xo+fLgSExP1ww8/qH///jp//rz+9re/SZIGDhyoAwcOaPjw4dq3b5+WL1+ut956y6GeESNG6KuvvlJ8fLx27typAwcOaPXq1QxoB3BdhCsAxVJAQIACAgKcTps4caK6dOminj17qmHDhvrpp5/06aefKigoSNLly3rvv/++/vWvfykyMlLz58/Xq6++6lBHvXr19Pnnn2v//v1q0aKFGjRooFGjRik0NLTItw1A8WYzxhhXNwIAAOB2wZkrAAAACxGuAAAALES4AgAAsBDhCgAAwEKEKwAAAAsRrgAAACxEuAIAALAQ4QoAAMBChCsAAAALEa4AAAAsRLgCAACwEOEKAADAQv8PWbJsKMahIiQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Assuming model1, model2, model3 are your fitted statsmodels regression models\n", "# Extract the coefficients for resW\n", "b1 = est_1.params['w']\n", "b2 = est_2.params['w']\n", "b3 = model3.params['w']\n", "\n", "# Extract the standard errors for resW\n", "se1 = est_1.bse['w']\n", "se2 = est_2.bse['w']\n", "se3 = model3.bse['w']\n", "\n", "# Labels for the models\n", "model_labels = ['OLS', 'OLS w. controls', 'Double Lasso']\n", "\n", "# Coefficients and standard errors\n", "coefficients = [b1, b2, b3]\n", "errors = [se1, se2, se3]\n", "\n", "# Create the figure and axis\n", "fig, ax = plt.subplots()\n", "\n", "# Plot the coefficients with error bars\n", "ax.errorbar(model_labels, coefficients, yerr=errors, fmt='o', capsize=5, capthick=2, marker='s', markersize=7, linestyle='None')\n", "\n", "# Add title and labels\n", "ax.set_title('Comparison of Coefficients from Different Models')\n", "ax.set_xlabel('Model')\n", "ax.set_ylabel('Coefficient')\n", "\n", "# Add grid for better readability\n", "ax.grid(True)\n", "\n", "# Show the plot\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, the three ATEs are very similar, but we consider that the models that include the cofounders (OLS with controls and DL) are better estimated." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Non-Linear Methods DML" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def dml(X, D, y, modely, modeld, *, nfolds, classifier=False, time = None, clu = None, cluster = True):\n", " cv = KFold(n_splits=nfolds, shuffle=True, random_state=123) # shuffled k-folds\n", " yhat = cross_val_predict(modely, X, y, cv=cv, n_jobs=-1) # out-of-fold predictions for y\n", " # out-of-fold predictions for D\n", " # use predict or predict_proba dependent on classifier or regressor for D\n", " if classifier:\n", " Dhat = cross_val_predict(modeld, X, D, cv=cv, method='predict_proba', n_jobs=-1)[:, 1]\n", " else:\n", " Dhat = cross_val_predict(modeld, X, D, cv=cv, n_jobs=-1)\n", " # calculate outcome and treatment residuals\n", " resy = y - yhat\n", " resD = D - Dhat\n", "\n", " if cluster:\n", " # final stage ols clustered\n", " dml_data = pd.concat([clu, pd.Series(time), pd.Series(resy, name = 'resy'), pd.Series(resD, name = 'resD')], axis=1)\n", "\n", " else:\n", " # final stage ols nonclustered\n", " dml_data = pd.concat([pd.Series(resy, name = 'resy'), pd.Series(resD, name = 'resD')], axis=1)\n", "\n", " if cluster:\n", " # clustered standard errors\n", " ols_mod = smf.ols(formula = 'resy ~ 1 + resD', data = dml_data).fit(cov_type='cluster', cov_kwds={\"groups\": dml_data['CountyCode']})\n", "\n", " else:\n", " # regular ols\n", " ols_mod = smf.ols(formula = 'resy ~ 1 + resD', data = dml_data).fit()\n", "\n", " point = ols_mod.params[1]\n", " stderr = ols_mod.bse[1]\n", " epsilon = ols_mod.resid\n", "\n", " return point, stderr, yhat, Dhat, resy, resD, epsilon\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def summary(point, stderr, yhat, Dhat, resy, resD, epsilon, X, D, y, *, name):\n", " '''\n", " Convenience summary function that takes the results of the DML function\n", " and summarizes several estimation quantities and performance metrics.\n", " '''\n", " return pd.DataFrame({'estimate': point, # point estimate\n", " 'stderr': stderr, # standard error\n", " 'lower': point - 1.96*stderr, # lower end of 95% confidence interval\n", " 'upper': point + 1.96*stderr, # upper end of 95% confidence interval\n", " 'rmse y': np.sqrt(np.mean(resy**2)), # RMSE of model that predicts outcome y\n", " 'rmse D': np.sqrt(np.mean(resD**2)) # RMSE of model that predicts treatment D\n", " }, index=[name])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "df['intercept'] = 1\n", "y = df[\"y\"]\n", "d = df[\"w\"]\n", "x = df[df.columns[~df.columns.isin(['y','w'])]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.1. DML with RLasso" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "class RLasso(BaseEstimator):\n", "\n", " def __init__(self, *, post=True):\n", " self.post = post\n", "\n", " def fit(self, X, y):\n", " self.rlasso_ = hdmpy.rlasso(X, y, post=self.post)\n", " return self\n", "\n", " def predict(self, X):\n", " return np.array(X) @ np.array(self.rlasso_.est['beta']).flatten() + np.array(self.rlasso_.est['intercept'])\n", "\n", "lasso_model = lambda: RLasso(post=False)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " estimate stderr lower upper rmse y rmse D\n", "Lasso 0.259067 0.021722 0.216492 0.301642 0.471041 0.500225\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:30: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " point = ols_mod.params[1]\n", "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:31: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " stderr = ols_mod.bse[1]\n" ] } ], "source": [ "# DML with RLasso:\n", "modely = make_pipeline(StandardScaler(), RLasso(post=False))\n", "modeld = make_pipeline(StandardScaler(), RLasso(post=False))\n", "result_RLasso = dml(x,d,y, modely, modeld, nfolds=10, classifier=False, cluster = False)\n", "table_RLasso = summary(*result_RLasso, x,d,y, name = 'Lasso')\n", "print(table_RLasso)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The message treatment providing information about Internet-accessed sexually transmitted \n", "infection testing predicts an increase in the probability that a person will get tested \n", "by 25.91 percentage points compared to receiving information about nearby clinics offering \n", "in-person testing. \n", "By providing both groups with information about testing, we mitigate the potential reminder \n", "effect, as both groups are equally prompted to consider testing. This approach allows us to \n", "isolate the impact of the type of information \"Internet-accessed testing\" versus \"in-person clinic \n", "testing\" on the likelihood of getting tested. Through randomized assignment, we establish causality \n", "rather than mere correlation, confirming that the intervention's effect is driven by the unique \n", "advantages of Internet-accessed testing, such as increased privacy, reduced embarrassment, and \n", "convenience" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.2. DML with Regression Trees" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " estimate stderr lower upper rmse y rmse D\n", "RT 0.249831 0.021872 0.206961 0.292701 0.472259 0.499638\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:30: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " point = ols_mod.params[1]\n", "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:31: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " stderr = ols_mod.bse[1]\n" ] } ], "source": [ "modely = make_pipeline(StandardScaler(), DecisionTreeRegressor(ccp_alpha=0.001, min_samples_leaf=5, random_state=123))\n", "modeld = make_pipeline(StandardScaler(), DecisionTreeRegressor(ccp_alpha=0.001, min_samples_leaf=5, random_state=123))\n", "result_RT = dml(x,d,y, modely, modeld, nfolds=10, classifier=False, cluster = False)\n", "table_RT= summary(*result_RT, x,d,y, name = 'RT')\n", "print(table_RT)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The message treatment providing information about Internet-accessed sexually transmitted \n", "infection testing predicts an increase in the probability that a person will get tested \n", "by 24.98 percentage points compared to receiving information about nearby clinics offering \n", "in-person testing. \n", "By providing both groups with information about testing, we mitigate the potential reminder \n", "effect, as both groups are equally prompted to consider testing. This approach allows us to \n", "isolate the impact of the type of information \"Internet-accessed testing\" versus \"in-person clinic \n", "testing\" on the likelihood of getting tested. Through randomized assignment, we establish causality \n", "rather than mere correlation, confirming that the intervention's effect is driven by the unique \n", "advantages of Internet-accessed testing, such as increased privacy, reduced embarrassment, and \n", "convenience" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.3. DML Boosting Trees" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " estimate stderr lower upper rmse y rmse D\n", "GBT 0.246373 0.021669 0.203902 0.288843 0.475893 0.508383\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:30: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " point = ols_mod.params[1]\n", "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:31: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " stderr = ols_mod.bse[1]\n" ] } ], "source": [ "modely = make_pipeline(StandardScaler(), GradientBoostingRegressor(n_estimators=100, max_depth=3, random_state=123))\n", "modeld = make_pipeline(StandardScaler(), GradientBoostingRegressor(n_estimators=100, max_depth=3, random_state=123))\n", "result_GBT = dml(x,d,y, modely, modeld, nfolds=10, classifier=False, cluster = False)\n", "table_GBT = summary(*result_GBT, x,d,y, name = 'GBT')\n", "print(table_GBT)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The message treatment providing information about Internet-accessed sexually transmitted \n", "infection testing predicts an increase in the probability that a person will get tested \n", "by 24.64 percentage points compared to receiving information about nearby clinics offering \n", "in-person testing. \n", "By providing both groups with information about testing, we mitigate the potential reminder \n", "effect, as both groups are equally prompted to consider testing. This approach allows us to \n", "isolate the impact of the type of information \"Internet-accessed testing\" versus \"in-person clinic \n", "testing\" on the likelihood of getting tested. Through randomized assignment, we establish causality \n", "rather than mere correlation, confirming that the intervention's effect is driven by the unique \n", "advantages of Internet-accessed testing, such as increased privacy, reduced embarrassment, and \n", "convenience" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.4. DML with Random Forest" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " estimate stderr lower upper rmse y rmse D\n", "RF 0.241558 0.021379 0.199655 0.283461 0.472297 0.511585\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:30: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " point = ols_mod.params[1]\n", "C:\\Users\\Matias Villalba\\AppData\\Local\\Temp\\ipykernel_23460\\2498640246.py:31: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " stderr = ols_mod.bse[1]\n" ] } ], "source": [ "modely = make_pipeline(StandardScaler(), RandomForestRegressor(n_estimators=100, min_samples_leaf=5, random_state=123))\n", "modeld = make_pipeline(StandardScaler(), RandomForestRegressor(n_estimators=100, min_samples_leaf=5, random_state=123))\n", "result_RF = dml(x,d,y, modely, modeld, nfolds=10, classifier=False, cluster = False)\n", "table_RF = summary(*result_RF, x,d,y, name = 'RF')\n", "print(table_RF)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The message treatment providing information about Internet-accessed sexually transmitted \n", "infection testing predicts an increase in the probability that a person will get tested \n", "by 24.16 percentage points compared to receiving information about nearby clinics offering \n", "in-person testing. \n", "By providing both groups with information about testing, we mitigate the potential reminder \n", "effect, as both groups are equally prompted to consider testing. This approach allows us to \n", "isolate the impact of the type of information \"Internet-accessed testing\" versus \"in-person clinic \n", "testing\" on the likelihood of getting tested. Through randomized assignment, we establish causality \n", "rather than mere correlation, confirming that the intervention's effect is driven by the unique \n", "advantages of Internet-accessed testing, such as increased privacy, reduced embarrassment, and \n", "convenience" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3.6." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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l4a4adOmGUlOfzjKysoybdq0MX5+fiYtLc1pHypUqGB++eUXx7wffvihkWQ++uijy2734hCXF36PHDlijDHmySefdPyR79IQdzX9vUePHk7P+6Xbrl+/vsnMzHS0v/rqq0aS2bZtm2O/i/p527RpUxMWFubUR/MC28U1PProoyYgIMCcP3/+ss8PAGM4nRIoY9LS0iSpwNPpCrJy5UpJUnx8vFP7yJEjJSnftXMNGjRQmzZtHI9bt24tSerYsaNuuOGGfO2XnjYlSXFxcY6f806HzMrK0urVqx3tPj4+jp9//fVXnT59WtHR0flOfZSk9u3bq0GDBlfY0wvXan399df66aefCpz+7bff6sSJExo2bJjTdVc9evRQvXr1CryO8KGHHnJ6HB0dXeA+X2z16tXKysrSY4895jSwx9ChQxUQEFCs6xWL87q7u7vrkUcecWofOXKkjDH65JNPJF04RTY3N1d33nmnTp065fgXGhqq2rVra926dVdda2Hef/99RUVF6fbbb883zWazFbjML7/8orVr1+rOO+/UmTNnHPX9/PPP6tq1q/bu3Zvv1KwHHnjAaX3R0dHKycnR4cOHr1hj+fLltWPHDu3du/cq9+7CaV5ubm7q06ePo61///765JNPnK5Lev/991WxYkWNGDEi3zoufR769OmjSpUqOR4fO3ZMmzdv1sCBAxUcHOxob9KkiTp37uzo73n7crn+EBgYKEn69NNPlZ6efpV7e+F03UqVKqlSpUqqVauWnnjiCbVr104ffvihYz9WrVql3377Tf3793d6f7m7u6t169aO99dPP/2kbdu2acCAAfLz83Nso3379mrcuHGB27/0ubma98qVXue8azxTUlKu6pqylStXKjQ0VP3793e0eXp66pFHHtHZs2f12WefOc3fr18/BQUFOR5HR0dLKvhztTBdunRRcHCwFi9eLGOMFi9e7LT9i5Vkfx80aJDTNYGX1l7Uz9u893RsbKzjPSlJnTt3zve5X758eZ07d67IpzcDf2WEOKCMCQgIkHThepeiOHz4sNzc3PKNfBgaGqry5cvn+8X24qAm/fGLXkRERIHtl/6C4+bmpho1aji11alTR5KcriX5+OOP9X//93+y2+0KDg5WpUqVNGvWrAKvxalevfqVdlPShWsFt2/froiICLVq1Upjx451+mUob1/r1q2bb9l69erley7sdrvTL4mSFBQUdMVf6grbjpeXl2rUqFGkMHGp4rzu4eHh+UJf/fr1nWrcu3evjDGqXbu24xfyvH87d+50DGZSEvbv33/Vw53v27dPxhg9//zz+erLu0bv0hovfQ/n/ZJclF/G//GPf+i3335TnTp11LhxYz355JPaunVrkWp999131apVK/3888/at2+f9u3bp2bNmikrK8vpmqX9+/erbt26RRpZ9dL3/uXew/Xr19epU6d07tw5SVfuD9WrV1d8fLzmzp2rihUrqmvXrpo5c2aRr4ez2+1atWqVVq1apXnz5ql+/fqOQW7y5IWkjh075nv9kpOTHa9d3n4VNEJrYaO2XvrcXM175Uqvs7e3tyZNmqRPPvlEISEhuvnmmzV58mSlpqZe9jk5fPiwateunW9U1kv7XZ5rea/m8fT01B133KFFixbpv//9r3744QfdfffdBc5bkv39SrUX9fM27//atWvnm+/SZYcNG6Y6dero1ltvVdWqVTV48GDHNdIAnDE6JVDGBAQEKDw8/KpHISzsSMelCrsQvrB2U8AgGVfy+eef629/+5tuvvlmvf766woLC5Onp6fmzZunRYsW5Zv/4l8KL+fOO+9UdHS0PvjgAyUnJ+ull17SpEmTtGzZMt16661XXWdh++wKtWrVkoeHh7Zt21ai683NzZXNZtMnn3xS4P5efFTEFfLus/bEE0+oa9euBc5z6S/51/Jevfnmm7V//359+OGHSk5O1ty5c/XKK69o9uzZGjJkSKHL7d271zEgRUG/jC5cuFAPPPDAFbd/qaK+9wtSlP7w8ssva+DAgY79feSRR5SYmKivvvpKVatWvez63d3dnUbe7Nq1q+rVq6cHH3zQMZBI3uv3zjvvKDQ0NN86ruUWIZc+N1fzXinK6/zYY4+pZ8+e+s9//qNPP/1Uzz//vBITE7V27Vo1a9as2HVfrKQ+V++++27Nnj1bY8eOVVRUVKFnLpRkfy/J74Siqly5sjZv3qxPP/1Un3zyiT755BPNmzdPAwYMyDd4DPBXR4gDyqDbbrtNb7zxhtavX+906mNBqlWrptzcXO3du9fx12BJOn78uH777TdVq1atRGvLzc3VgQMHHEffJGnPnj2S5Bjd7P3335fdbtenn37qNAz9vHnzrnn7YWFhGjZsmIYNG6YTJ07oxhtv1AsvvKBbb73Vsa+7d+9Wx44dnZbbvXt3iT0XF2/n4qOSWVlZOnjwYLGGnC9Xrpw6duyotWvX6ocffsh3ZLSgGlavXq0zZ844HY3btWuXU401a9aUMUbVq1d3es1KQ82aNa/6jw95z5+np2eJ3m/tcn/UCA4O1qBBgzRo0CCdPXtWN998s8aOHXvZELdw4UJ5enrqnXfeyffL7f/+9z+99tprOnLkiG644QbVrFlTX3/9tbKzs6/6fngXv7cutWvXLlWsWFG+vr6Otsv1hzyNGzdW48aN9dxzz+nLL79Uu3btNHv2bE2YMOGqagsLC9Pjjz+ucePG6auvvtL//d//qWbNmpIu/PJ9udcvb78KGt2woLaCXO17pSivc82aNTVy5EiNHDlSe/fuVdOmTfXyyy8XeoPtatWqaevWrcrNzXU6GndpvytpN910k2644QalpKRo0qRJhc53Nf29qH/4K0xRP2/z/i/o1NaC3udeXl7q2bOnevbsqdzcXA0bNkz//Oc/9fzzzxfpXpvAXwWnUwJl0FNPPSVfX18NGTJEx48fzzd9//79jiGXu3fvLkmaNm2a0zxTp06VdOH6hJI2Y8YMx8/GGM2YMUOenp7q1KmTpAt/wbXZbE5D9R86dEj/+c9/ir3NnJycfKeBVa5cWeHh4Y5bKbRo0UKVK1fW7NmznW6v8Mknn2jnzp0l9lzExMTIy8tLr732mtNfpd98802dPn262NtJSEiQMUb33Xefzp49m2/6xo0bHX+N7t69u3JycpxeC0l65ZVXZLPZHL/E//3vf5e7u7vGjRuX7y/oxhj9/PPPxaq1IH369NGWLVsKHDq8sL/eV65cWbfccov++c9/6tixY/mmX3zrgKvh6+vrdLuHPJfur5+fn2rVqpXvdhyXWrhwoaKjo9WvXz/17dvX6d+TTz4pSXrvvfckXXgeTp06le+1ka58FCMsLExNmzbVggULnOrfvn27kpOTHf29KP0hLS1N58+fd5qncePGcnNzu+L+FmbEiBEqV66cJk6cKOnC0bmAgAC9+OKLys7Ozjd/3usXHh6uRo0a6e2333Z6b3/22WdFPvp8Ne+VK73O6enp+W4NUbNmTfn7+1/2uenevbtSU1O1ZMkSR9v58+c1ffp0+fn5qX379kXal6tls9n02muvKSEhQffdd1+h811Nf/f19S3WrSbyFPXz9uL39MXbW7VqleO2EXkufd3c3NzUpEkTSSr2exb4s+JIHFAG1axZU4sWLVK/fv1Uv359DRgwQI0aNVJWVpa+/PJL/fvf/3bcnysqKkqxsbF644039Ntvv6l9+/basGGDFixYoN69e6tDhw4lWpvdbldSUpJiY2PVunVrffLJJ1qxYoWeeeYZx/VlPXr00NSpU9WtWzfdfffdOnHihGbOnKlatWoV+fqjS505c0ZVq1ZV3759FRUVJT8/P61evVrffPONXn75ZUkX/kI/adIkDRo0SO3bt1f//v11/Phxvfrqq4qMjNTjjz9eIs9BpUqVNHr0aI0bN07dunXT3/72N+3evVuvv/66WrZs6XSD5KvRtm1bzZw5U8OGDVO9evV03333qXbt2jpz5oxSUlK0fPlyx9GTnj17qkOHDnr22Wd16NAhRUVFKTk5WR9++KEee+wxxxGSmjVrasKECRo9erQOHTqk3r17y9/fXwcPHtQHH3ygBx54QE888USJPC9PPvmkli5dqjvuuEODBw9W8+bN9csvv2j58uWaPXu2oqKiClxu5syZuummm9S4cWMNHTpUNWrU0PHjx7V+/Xr9+OOP2rJly1XX0rx5c82aNUsTJkxQrVq1VLlyZXXs2FENGjTQLbfcoubNmys4OFjffvutli5d6jRYz6W+/vpr7du3r9B5qlSpohtvvFELFy7UqFGjNGDAAL399tuKj4/Xhg0bFB0drXPnzmn16tUaNmyYevXqddnaX3rpJd16661q06aN7r//fv3++++aPn26AgMDHfcZLEp/WLt2reLi4nTHHXeoTp06On/+vONI4sWDs1yNChUqaNCgQXr99de1c+dO1a9fX7NmzdJ9992nG2+8UXfddZcqVaqkI0eOaMWKFWrXrp0jzL744ovq1auX2rVrp0GDBunXX3/VjBkz1KhRowL/aFGQor5XrvQ679mzR506ddKdd96pBg0ayMPDQx988IGOHz+uu+66q9DtP/DAA/rnP/+pgQMHauPGjYqMjNTSpUv1xRdfaNq0aUUemKg4evXqdcX3ztX09+bNm2vJkiWKj49Xy5Yt5efnp549exa5nqv5vE1MTFSPHj100003afDgwfrll180ffp0NWzY0Om1HzJkiH755Rd17NhRVatW1eHDhzV9+nQ1bdrU6UwTAOI+cUBZtmfPHjN06FATGRlpvLy8jL+/v2nX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HNObNWum0aNH68svv1SjRo20aNEiSVL9+vX1xRdf5NtegwYNSmBPgeK5tI9cfPF0rVq1nP5FRERIuvAXtG+//dZpPd98880Vt9WsWTPl5OToxIkT+dZ98YhYEREReuihh7Rs2TKNHDlSc+bMcUyrVKmSYmNj9e6772ratGl64403CtxW/fr1tX79ehljHG1ffPGF/P39VbVq1at6joorJCRE4eHhOnDgQL79rV69uqQLvyTv3btXlStXzjdP3hECqfDPFSBP3qh1ed919evX15YtWxwDb0kX+oCbm5vq1q2rgIAAhYeHX/F7KSAgQP369dOcOXO0ZMkSvf/++/rll18kXfjlLW+UyOKqW7euzp8/r++++87Rtm/fPv3666/XtN6L0RdRmvgeLTlX+twqzLX2Xy8vr2J/lhHiStEdd9whd3d3zZw509F28OBBbd682enfuXPnVLt2bceRtp07d+rBBx/U8ePHHct9/fXXevHFF/Xtt9/qyJEjWrZsmU6ePKn69evr4MGDGj16tNavX6/Dhw8rOTlZe/fuVf369SVJTz75pObPn69Zs2Zp7969mjp1qpYtW6Ynnnjiuj8nwMUu7iP+/v564okn9Pjjj2vBggXav3+/Nm3apOnTp2vBggWSpAcffFC7du3SqFGjtGfPHv3rX/9yjOR08V8ML1WnTh3dc889GjBggJYtW6aDBw9qw4YNSkxM1IoVKyRJjz32mD799FMdPHhQmzZt0rp16xx9aMyYMfrwww+1b98+7dixQx9//LFj2qWGDRumH374QSNGjNCuXbv04YcfKiEhQfHx8aU2PHNBxo0bp8TERL322mvas2ePtm3bpnnz5mnq1KmSpHvuuUcVK1ZUr1699Pnnn+vgwYNKSUnRI488oh9//PGKnyv468rMzFRqaqpSU1O1c+dOjRgxQmfPnlXPnj0lXXhv2e12xcbGavv27Vq3bp1GjBih++67z3FK0pNPPqlJkyZpyZIl2r17t55++mlt3rxZjz76qCRp6tSpeu+997Rr1y7t2bNH//73vxUaGqry5ctLujBC5Zo1a5Samlrs0FWvXj3FxMTogQce0IYNG/Tdd9/pgQceyHcE4lrRF1Ga+B4tGUX53CpsuWvpv5GRkY5scOrUKWVmZha96GJdSYd8Lh0xKE9iYqKpVKmSOXv2rJFU4L/PP//c/Pzzz6ZXr17Gz8/PVK5c2Tz33HNmwIABjnV+//33pmvXrqZSpUrG29vb1KlTx0yfPt0YY0xqaqrp3bu3CQsLM15eXqZatWpmzJgxjos/jTHm9ddfNzVq1DCenp6mTp065u23374eTwvgUJQ+kpuba6ZNm2bq1q1rPD09TaVKlUzXrl0do1sZY8yHH35oatWqZby9vc0tt9xiZs2aZSSZ33//3Rhz4YLswMDAfNvJysoyY8aMMZGRkcbT09OEhYWZ22+/3WzdutUYY0xcXJypWbOm8fb2NpUqVTL33XefOXXqlDHmwiAE9evXNz4+PiY4ONj06tXLHDhwwBiT/4JsY4xJSUkxLVu2NF5eXiY0NNSMGjXKZGdnO6a3b9/ePProo0719erVy2kUrMIUNpjCxdvPs3DhQtO0aVPj5eVlgoKCzM0332yWLVvmmH7s2DEzYMAAU7FiRePt7W1q1Khhhg4dak6fPl2kzxX89cTGxjp9f/n7+5uWLVs6DeJljDFbt241HTp0MHa73QQHB5uhQ4eaM2fOOKbn5OSYsWPHmipVqhhPT08TFRVlPvnkE8f0N954wzRt2tT4+vqagIAA06lTJ7Np0ybH9OXLl5tatWoZDw8PU61aNWNMwQObXPqZ8+ijj5r27ds7Hv/000/m1ltvNd7e3qZatWpm0aJFpnLlymb27NlXfC7oi7je+B69tu/RKw0icqXPrcKe/2vpvxkZGaZPnz6mfPnyjlF3i8pmzEXHKgHAYl544QXNnj1bP/zwg6tLAWBxP/74oyIiIrR69Wp16tTJ1eUA1wXfo9bEwCYALOX1119Xy5YtVaFCBX3xxRd66aWXFBcX5+qyAFjQ2rVrdfbsWTVu3FjHjh3TU089pcjISN18882uLg0oNXyP/jkQ4gBYyt69ezVhwgT98ssvuuGGGzRy5EiNHj3a1WUBsKDs7Gw988wzOnDggPz9/dW2bVstXLgw36h3wJ8J36N/DpxOCQAAAAAWwuiUAAAAAGAhhDgAAAAAsBBCHAAAAABYCCEOAAAAACyEEAcAAAAAFkKIAwD86R06dEg2m02bN292dSklYuDAgerdu3eJr3f+/PkqX758ia8XAFCyCHEAAIeBAwfKZrPJZrPJ09NT1atX11NPPaWMjAxXl3ZNIiIidOzYMTVq1KhUtzN27FjZbDZ169Yt37SXXnpJNptNt9xyS5HX92cLnwCAksHNvgEATrp166Z58+YpOztbGzduVGxsrGw2myZNmlRq28zJyZHNZpObW+n8bdHd3V2hoaGlsu5LhYWFad26dfrxxx9VtWpVR/tbb72lG2644brUAAD4c+NIHADAibe3t0JDQxUREaHevXsrJiZGq1atckzPzc1VYmKiqlevLh8fH0VFRWnp0qVO61i+fLlq164tu92uDh06aMGCBbLZbPrtt98k/XHa3vLly9WgQQN5e3vryJEjyszM1BNPPKEqVarI19dXrVu3VkpKimO9hw8fVs+ePRUUFCRfX181bNhQK1eulCT9+uuvuueee1SpUiX5+Piodu3amjdvnqSCj2h99tlnatWqlby9vRUWFqann35a58+fd0y/5ZZb9Mgjj+ipp55ScHCwQkNDNXbs2Cs+f5UrV1aXLl20YMECR9uXX36pU6dOqUePHvnmnzt3rurXry+73a569erp9ddfd0yrXr26JKlZs2YFHsWbMmWKwsLCVKFCBQ0fPlzZ2dmOab/++qsGDBigoKAglStXTrfeeqv27t3rtPz8+fN1ww03qFy5crr99tv1888/O03fsmWLOnToIH9/fwUEBKh58+b69ttvr/gcAABKFyEOAFCo7du368svv5SXl5ejLTExUW+//bZmz56tHTt26PHHH9e9996rzz77TJJ08OBB9e3bV71799aWLVv04IMP6tlnn8237vT0dE2aNElz587Vjh07VLlyZcXFxWn9+vVavHixtm7dqjvuuEPdunVzhI/hw4crMzNT//3vf7Vt2zZNmjRJfn5+kqTnn39e33//vT755BPt3LlTs2bNUsWKFQvcr6NHj6p79+5q2bKltmzZolmzZunNN9/UhAkTnOZbsGCBfH199fXXX2vy5Mn6xz/+4RRoCzN48GDNnz/f8fitt97SPffc4/Q8StLChQs1ZswYvfDCC9q5c6defPFFPf/8844AuGHDBknS6tWrdezYMS1btsyx7Lp167R//36tW7dOCxYs0Pz58522OXDgQH377bdavny51q9fL2OMunfv7gh6X3/9te6//37FxcVp8+bN6tChQ779v+eee1S1alV988032rhxo55++ml5enpecf8BAKXMAADw/8XGxhp3d3fj6+trvL29jSTj5uZmli5daowxJiMjw5QrV858+eWXTsvdf//9pn///sYYY0aN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Extract coefficients and standard errors\n", "coefficients = [result_RLasso[0], result_RT[0], result_GBT[0], result_RF[0]]\n", "standard_errors = [result_RLasso[1], result_RT[1], result_GBT[1], result_RF[1]]\n", "methods = ['RLasso', 'Regression Trees', 'Boosting Trees', 'Regression Forest']\n", "\n", "# Plotting the coefficients with error bars\n", "plt.figure(figsize=(10, 6))\n", "plt.errorbar(methods, coefficients, yerr=standard_errors, fmt='o', capsize=5, capthick=2)\n", "plt.xlabel('Regression Methods')\n", "plt.ylabel('Coefficients')\n", "plt.title('Comparison of Coefficients Across Regression Methods')\n", "plt.grid(True)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " estimate stderr lower upper rmse y rmse D\n", "Lasso 0.259067 0.021722 0.216492 0.301642 0.471041 0.500225\n", "RT 0.249831 0.021872 0.206961 0.292701 0.472259 0.499638\n", "GBT 0.246373 0.021669 0.203902 0.288843 0.475893 0.508383\n", "RF 0.241558 0.021379 0.199655 0.283461 0.472297 0.511585\n" ] } ], "source": [ "results_table = pd.concat([table_RLasso, table_RT, table_GBT, table_RF], axis=0)\n", "print(results_table)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To choose the best model, we must compare the RMSEs of the outcome variable Y. In this case, the model with the lowest RMSE for Y \n", "is generated by Lasso (0.471041), whereas the lowest for the treatment is generated by Regression Trees (0.4983734). Therefore, DML \n", "could be employed with Y cleaned using Lasso and the treatment using Regression Trees." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 4 }