From ce2dab90e4254b3c980961c2f4f3861f39c4a43d Mon Sep 17 00:00:00 2001 From: jvivian Date: Sun, 27 Oct 2024 20:10:44 -0700 Subject: [PATCH] Updates --- reports/figures/figures.ipynb | 957 +++++++++++++++++++++++++++++++++- 1 file changed, 930 insertions(+), 27 deletions(-) diff --git a/reports/figures/figures.ipynb b/reports/figures/figures.ipynb index eaffa9d..697cf46 100644 --- a/reports/figures/figures.ipynb +++ b/reports/figures/figures.ipynb @@ -9,31 +9,26 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 125, "metadata": {}, "outputs": [], "source": [ - "import matplotlib.pyplot as plt\n", - "from dfmdash.results import parse_run_results\n", - "from dfmdash.dfm import ModelRunner\n", + "from datetime import datetime\n", "from pathlib import Path\n", "\n", - "from datetime import datetime\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", - "\n", "from sklearn.preprocessing import MinMaxScaler\n", + "from SyntheticControlMethods import DiffSynth, Synth\n", + "\n", + "from dfmdash.dfm import ModelRunner\n", + "from dfmdash.results import parse_run_results\n", "\n", "plt.style.use(\"ggplot\")" ] }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -50,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 126, "metadata": {}, "outputs": [ { @@ -262,7 +257,7 @@ "[5 rows x 21 columns]" ] }, - "execution_count": 53, + "execution_count": 126, "metadata": {}, "output_type": "execute_result" } @@ -274,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 127, "metadata": {}, "outputs": [], "source": [ @@ -299,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 128, "metadata": {}, "outputs": [ { @@ -482,7 +477,7 @@ "4 0.0 MN " ] }, - "execution_count": 55, + "execution_count": 128, "metadata": {}, "output_type": "execute_result" } @@ -508,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 129, "metadata": {}, "outputs": [ { @@ -587,7 +582,7 @@ "249 2020-06-01 Cases1 0.016776 Data" ] }, - "execution_count": 56, + "execution_count": 129, "metadata": {}, "output_type": "execute_result" } @@ -635,7 +630,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 130, "metadata": {}, "outputs": [], "source": [ @@ -654,7 +649,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 131, "metadata": {}, "outputs": [ { @@ -711,7 +706,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 132, "metadata": {}, "outputs": [ { @@ -768,7 +763,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 133, "metadata": {}, "outputs": [ { @@ -847,7 +842,7 @@ "39 2020-06-01 Cons2 0.154480 Data" ] }, - "execution_count": 60, + "execution_count": 133, "metadata": {}, "output_type": "execute_result" } @@ -889,7 +884,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 134, "metadata": {}, "outputs": [ { @@ -946,7 +941,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 135, "metadata": {}, "outputs": [ { @@ -994,6 +989,914 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SCM Figure" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "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", + " \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", + "
GDPCons3Cons4Cons5Cons2Cases5Cases2Deaths5Deaths2Cases3Deaths3Cases4Cases1Hosp2Hosp1Deaths4Deaths1PandemicConsumption
TimeState
2/1/2012MN0.6530340.3435260.2856760.5999390.2372970.00.00.00.00.00.00.00.00.00.00.00.0-1.1610550.170095
3/1/2012MN0.6585310.3647400.3091200.6167110.2661720.00.00.00.00.00.00.00.00.00.00.00.0-1.171222-0.025467
4/1/2012MN0.6035920.4037340.3520810.6476030.3191360.00.00.00.00.00.00.00.00.00.00.00.0-1.171824-0.416690
5/1/2012MN0.6489750.5646030.5288320.7752850.5372310.00.00.00.00.00.00.00.00.00.00.00.0-1.171860-2.142386
6/1/2012MN0.6373060.5231440.4834720.7422860.4811860.00.00.00.00.00.00.00.00.00.00.00.0-1.171862-1.655460
\n", + "
" + ], + "text/plain": [ + " GDP Cons3 Cons4 Cons5 Cons2 Cases5 \\\n", + "Time State \n", + "2/1/2012 MN 0.653034 0.343526 0.285676 0.599939 0.237297 0.0 \n", + "3/1/2012 MN 0.658531 0.364740 0.309120 0.616711 0.266172 0.0 \n", + "4/1/2012 MN 0.603592 0.403734 0.352081 0.647603 0.319136 0.0 \n", + "5/1/2012 MN 0.648975 0.564603 0.528832 0.775285 0.537231 0.0 \n", + "6/1/2012 MN 0.637306 0.523144 0.483472 0.742286 0.481186 0.0 \n", + "\n", + " Cases2 Deaths5 Deaths2 Cases3 Deaths3 Cases4 Cases1 \\\n", + "Time State \n", + "2/1/2012 MN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3/1/2012 MN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4/1/2012 MN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "5/1/2012 MN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "6/1/2012 MN 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " Hosp2 Hosp1 Deaths4 Deaths1 Pandemic Consumption \n", + "Time State \n", + "2/1/2012 MN 0.0 0.0 0.0 0.0 -1.161055 0.170095 \n", + "3/1/2012 MN 0.0 0.0 0.0 0.0 -1.171222 -0.025467 \n", + "4/1/2012 MN 0.0 0.0 0.0 0.0 -1.171824 -0.416690 \n", + "5/1/2012 MN 0.0 0.0 0.0 0.0 -1.171860 -2.142386 \n", + "6/1/2012 MN 0.0 0.0 0.0 0.0 -1.171862 -1.655460 " + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result_dir = Path(\"./results\")\n", + "factors_path = result_dir / \"factors.csv\"\n", + "\n", + "fdf = pd.read_csv(factors_path)\n", + "cols_to_drop = [x for x in fdf.columns if \"Time.\" in x]\n", + "fdf = fdf.drop(columns=cols_to_drop)\n", + "fdf.columns = [x.lstrip(\"Factor_\") for x in fdf.columns]\n", + "\n", + "# Process Data\n", + "dfs = []\n", + "for subdir in result_dir.iterdir():\n", + " if not subdir.is_dir():\n", + " continue\n", + " state = pd.read_csv(subdir / \"df.csv\")\n", + " state[\"State\"] = subdir.stem\n", + " dfs.append(state)\n", + "df = pd.concat(dfs)\n", + "df = df.set_index([\"Time\", \"State\"])\n", + "columns = [x for x in fdf.columns if x not in df.columns]\n", + "min_time = pd.to_datetime(fdf[\"Time\"]).min()\n", + "max_time = pd.to_datetime(fdf[\"Time\"].max())\n", + "states = sorted(fdf.State.unique())\n", + "fdf = fdf[columns].set_index([\"Time\", \"State\"])\n", + "df = df.join(fdf)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 1 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.12456D+01 |proj g|= 5.00000D-01\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 1 17 3 0 3 5.000D-01 4.125D+01\n", + " F = 41.245615368651137 \n", + "\n", + "CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 6.67586D+01 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 6.676D+01\n", + " F = 66.758611291962936 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 4.36631D+02 |proj g|= 0.00000D+00\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 0 1 0 0 0 0.000D+00 4.366D+02\n", + " F = 436.63099371809011 \n", + "\n", + "CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL \n", + "RUNNING THE L-BFGS-B CODE\n", + "\n", + " * * *\n", + "\n", + "Machine precision = 2.220D-16\n", + " N = 3 M = 10\n", + "\n", + "At X0 0 variables are exactly at the bounds\n", + "\n", + "At iterate 0 f= 1.14206D+02 |proj g|= 2.13081D+00\n", + " ys=-1.418E+10 -gs= 3.667E+02 BFGS update SKIPPED\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " Warning: more than 10 function and gradient\n", + " evaluations in the last line search. Termination\n", + " may possibly be caused by a bad search direction.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "At iterate 3 f= 4.12456D+01 |proj g|= 5.56677D-06\n", + "\n", + " * * *\n", + "\n", + "Tit = total number of iterations\n", + "Tnf = total number of function evaluations\n", + "Tnint = total number of segments explored during Cauchy searches\n", + "Skip = number of BFGS updates skipped\n", + "Nact = number of active bounds at final generalized Cauchy point\n", + "Projg = norm of the final projected gradient\n", + "F = final function value\n", + "\n", + " * * *\n", + "\n", + " N Tit Tnf Tnint Skip Nact Projg F\n", + " 3 4 40 10 1 3 1.000D+00 4.125D+01\n", + " F = 41.245615251205507 \n", + "\n", + "CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + " Bad direction in the line search;\n", + " refresh the lbfgs memory and restart the iteration.\n" + ] + }, + { + "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", + "
Weight
MN0.058439
IL0.098993
VA0.161583
RI0.102443
CT0.214926
PA0.057350
NJ0.078189
NY0.108720
MI0.058789
ME0.060567
\n", + "
" + ], + "text/plain": [ + " Weight\n", + "MN 0.058439\n", + "IL 0.098993\n", + "VA 0.161583\n", + "RI 0.102443\n", + "CT 0.214926\n", + "PA 0.057350\n", + "NJ 0.078189\n", + "NY 0.108720\n", + "MI 0.058789\n", + "ME 0.060567" + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select Variables\n", + "treated_unit = 'MA'\n", + "predictor_vars = ['Consumption']\n", + "outcome_var = 'Pandemic'\n", + "treatment_time = datetime(2022, 2, 1)\n", + "\n", + "invert = True\n", + "\n", + "\n", + "df = df[[*predictor_vars, outcome_var]].reset_index()\n", + "sc = Synth(df, outcome_var, \"State\", \"Time\", str(treatment_time), treated_unit, n_optim=10, pen=\"auto\")\n", + "\n", + "\n", + "sc.original_data.weight_df" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "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", + "
MASynthetic MAWMAPEImportance
Consumption-0.15-0.140.101.0
Pandemic-0.23-0.100.310.0
\n", + "
" + ], + "text/plain": [ + " MA Synthetic MA WMAPE Importance\n", + "Consumption -0.15 -0.14 0.10 1.0\n", + "Pandemic -0.23 -0.10 0.31 0.0" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sc.original_data.comparison_df" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [], + "source": [ + "data = sc.original_data\n", + "synth = data.synth_outcome\n", + "treated_outcome_all = data.treated_outcome_all\n", + "treatment_period = data.treatment_period\n", + "treated_label = \"Treated\"\n", + "synth_label = \"Synthetic Control\"\n", + "treatment_label = \"Treatment\"\n", + "\n", + "# Determine appropriate limits for y-axis\n", + "max_value = max(np.max(treated_outcome_all), np.max(synth))\n", + "min_value = min(np.min(treated_outcome_all), np.min(synth))\n", + "\n", + "# Create x/y\n", + "x = df[df.State == treated_unit].Time\n", + "ys = synth[0, :]\n", + "y = df[df.State == treated_unit][outcome_var]\n", + "\n", + "if invert:\n", + " y *= -1\n", + " ys *= -1\n", + "\n", + "# fig.add_trace(go.Scatter(x=x, y=y, mode=\"lines\", name=f\"{treated_unit} {outcome_var}\"))\n", + "# fig.add_trace(go.Scatter(x=x, y=ys, mode=\"lines\", name=f\"Synthetic {outcome_var}\", line=dict(dash=\"dot\")))" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Timestamp('2022-12-01 00:00:00')" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x = pd.to_datetime(x)\n", + "x.max()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Original" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-1.0, 12.0)" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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h6wtGxMTE5WamiqJbRuBksIwDE2bNk3du3dXVFSUmjRpol27dmnYsGEFfq9u3bpp27ZtqlevnsLCwtShQwdt3LixwO8DAACAwkd4gFxlTV3YunWrJOngwYNKS0uzZEkA8ik+Pl4PPfSQXnjhBWVkZOjhhx/Wjh075O3tXWj39Pb2No88uHr1qvr06aNffvml0O4HAACAwmGV4cHBgwf17rvvasCAAWrZsqW6d++uCRMm6MyZM5YurcTo3bu3bGxstH79erm6uiolJUVHjhyxdFkA7tOxY8fUrl07/f7777Kzs9P06dP1yy+/3HEbxoJQuXJlrV27VsOGDVNqaqpGjx6t999/X4ZhFPq9AQAAUDCsMjz47rvvFBISog4dOuj111/Xgw8+qN27d2vo0KE6efKkpcsrEdzd3dWuXTsZhiEbm5v/mTB1AbBOf/zxh9q2batjx46pRo0aWr9+vZ5//vm73oaxIDg7O+v333/XSy+9JEl644039Pjjj5unRgEAAKB4s8rw4LHHHtPatWs1efJkjRgxQs8++6x++eUXpaen69tvv7V0eSVG1tSFHTt2yMbGRpGRkSycCFiRtLQ0vfDCC3rwwQeVkJCg7t27a+/everUqZNF6rGxsdGUKVP09ddfy8bGRj/++KP69euna9euWaQeAAAA3D2rDA98fX3l4OCQ7VjdunXVsGFDhYWFWaiqkicrPFixYoXatWunfv36qVy5chauCsDduHjxonr16qVp06ZJkl5++WWtWrVKVatWtXBl0tNPP62lS5fK1dVVa9euVadOnRQeHm7psgAAAJAHqwwPcmMYhi5fvqwKFSpYupQSw8/PTxUrVtT169fl4uKitm3bysnJydJlAbiDTZs2ydfX17wN48KFC/Xxxx8X2DaMBaFfv37atGmTatSooaNHj6pdu3bavXu3pcsCAADAbZSY8GDx4sWKjo5Wv379LF1KiWFra6u+fftKkoKDgy1cDYA7MQxDn332mXr06KGoqCg1a9ZMu3fvVmBgoKVLy1XLli21Y8cO+fj4KDo6Wt26ddOff/5p6bIAAACQixIRHoSGhurdd99Vq1atiu0vydYqa+pCcHCwUlNTtWfPHi1ZssTCVQH4q/j4eD344IN68cUXlZGRoVGjRmn79u3y8vKydGl5qlWrljZt2qSAgAAlJSUpMDBQ06dPt3RZAAAA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z8qWLatOnTpJ+v9dF7IYhqGYmBhLlAUUS4ZhaMqUKeZtGFu0aKE9e/Zo0KBBli6txCtfvrxWrFihxx57TJmZmXr22Wf10ksvKTMz09KlAQAAWB3CA9yX3KYuZGRk6D//+Y+++uorxcbGWqo0oNiIi4vT0KFD9corrygzM1OPPvqotm7dqvr161u6tFLDwcFBP/zwg9577z1J0qeffqoHH3xQycnJFq4MAADAuhAe4L5khQdr165VSkqKpJvbpbm5uUli20bg0KFDatOmjRYtWiQHBwd98803mj17NtswWoDJZNLkyZM1d+5cOTg4aMGCBerZs6cuXbpk6dIAAACsBuEB7kuLFi1UrVo1JSYmasuWLebjvr6+kqQDBw4oPT3dUuUBFvXLL7+offv2OnXqlGrXrq1Nmzbp73//O9swWtgjjzyikJAQVahQQdu3b1f79u11/PhxS5cFAABgFQgPcF9MJpP8/f0lZZ+60LBhQ7m5uSkpKYlfylHqpKam6rnnntPo0aOVlJSkPn36aO/evWrbtq2lS8P/dOvWTdu2bVO9evV05swZdezYURs2bLB0WQAAAMUe4QHuW27rHtjY2KhVq1aSbi6muHz5cl27ds0S5QFFKjIyUt26ddMXX3whSZo8ebJWrFihSpUqWbgy/JW3t7d55MHVq1fVp08fzZ0719JlAQAAFGuEB7hvffr0kclk0qFDh3T+/Hnz8datW8vNzU0JCQnatWtXtnPOnTuns2fPMqUBJcratWvl6+ur7du3q3z58lqyZInee+89tmEsxipXrqy1a9dq2LBhSktL05gxY/Tee+/JMAxLlwYAAFAsER7gvlWsWNE8HDskJMR83M3NTc8++6xGjhypLl26qHz58ua2LVu2aM6cOfr44481d+5cbd26VVFRUfzCDqtkGIY++ugj9enTRzExMWrZsqX27NmjgQMHWro03AVnZ2f9/vvveumllyRJb775ph5//HGlpqZauDIAAIDix87SBcC6+fv7a8eOHQoODta4cePMx52cnNSoUSM1atQoW383NzeVKVNGiYmJCg0NVWhoqCTJxcVFDRo00JAhQ1hUDlYhLi5Ojz76qP78809J0mOPPaavvvpKzs7OFq4M98LGxkZTpkxRvXr1NH78eP3444+KiIjQggULsgWfsD6GYfDzBACAAkR4gHwJCAjQu+++q1Wr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urWCe0JERESGRiIIgqDvThAREVHF279/f4GfT58+jeXLl2sd7969O+rWrQtBEGBubl6ZXSQiIqIqiskDIiIiI7V48WJs374dN2/e1HdXiIiIqIrjmgdERERUwMtrHsTGxsLV1RUbN27E9u3b0bt3b3h4eODDDz9EfHw8BEHAunXr8MYbb8Dd3R0TJ05EampqgfP++eefGDFiBDw9PeHl5YWPP/4Yt27dqsRXRkRERGXB5AERERGV2MGDB7Fjxw6MGjUKY8aMwYULFzBt2jSsWrUKp06dwkcffYThw4fjxIkTCAwM1HpuSEgIxo8fj5o1a2LWrFmYNGkSbt++jREjRiA2NlZPr4iIiIhKggsmEhERUYklJCQgLCwMtWvXBgBoNBr8/PPPyMrKglKphKnpi48WKSkpOHjwIBYtWgRzc3NkZGRg6dKlGDZsGJYsWSKeb8iQIfDx8cHPP/+sdZyIiIiqFs48ICIiohLz8fEREwcA4O7uDgB45513xMRB3vGcnBwkJCQAAM6cOYNnz55hwIABSE5OFh9SqRQeHh44f/585b4QIiIiKhXOPCAiIqISa9iwodbPeYmEwo4/ffoUzs7OuH//PgBg9OjROs9bq1atcu4pERERlScmD4iIiKjETExMdB6XSnVPZszb1Cnv6/Lly2Fvb1/i8xIREVHVwOQBERERVThnZ2cAQL169dCtWzc994aIiIhKi2seEBERUYV7/fXXUatWLfz888/IyckpUJ6cnKyHXhEREVFJceYBERERVbhatWph4cKFmDNnDoYOHYr+/fvD1tYWcXFx+PPPP9G+fXvMnz9f390kIiKiQjB5QERERJVi0KBBcHBwwC+//IKNGzdCpVKhfv366NChA4YOHarv7hEREVERJELeCkZERERERERERDpwzQMiIiIiIiIiKhKTB0RERERERERUJCYPiIiIiIiIiKhITB4QERERERERUZGYPCAiIiIiIiKiIjF5QERERERERERFYvKAiIiIiIiIiIrE5AERERERERERFYnJAyIiIiIiIiIqEpMHRERERERERFQkJg+IiIiIiIiIqEhMHhARERERERFRkZg8ICIiIiIiIqIi/T87pLBVgDBcWgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(12, 6))\n", + "sns.lineplot(x=x, y=y, label=f\"{treated_unit} {outcome_var}\", c='black')\n", + "sns.lineplot(x=x, y=ys, label=f\"Synthetic {outcome_var}\", c='grey', linestyle='--')\n", + "plt.xlim([datetime(2022, 1,1), x.max()])\n", + "plt.ylim([-1, 12])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pointwise" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(18993.0, 19327.0)" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/sAAAIVCAYAAACOQe98AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1xElEQVR4nO3dd3gUVf/+8Ts9QAIhIQkEEBBIMECo0pEmHcFAbDQFLKiPiooUCwgWEOVRQB4rIiogklBERJAqRZogvUmR0EIICaSQPr8/+GW/LOmkbLL7fl1XLsnM2TmfPZgl98ycM3aGYRgCAAAAAABWw97SBQAAAAAAgMJF2AcAAAAAwMoQ9gEAAAAAsDKEfQAAAAAArAxhHwAAAAAAK0PYBwAAAADAyhD2AQAAAACwMoR9AAAAAACsjKOlC8ivq1evasuWLapWrZpcXFwsXQ4AAAAAwMolJSXp3LlzateunTw9PS1dTp6UurC/ZcsWvfbaa5YuAwAAAABgYz788EP17dvX0mXkSakL+9WqVZN0c5Br165t4WoAAAAAANbu5MmTeu2110x5tDQodWE/49b92rVrq379+hauBgAAAABgK0rTVHIW6AMAAAAAwMoQ9gEAAAAAsDKEfQAAAAAArAxhHwAAAAAAK0PYBwAAAADAyhD2AQAAAACwMqXu0XsAAADAnUpLS1NMTIwSEhIsXQoACytbtqw8PDzk4OBg6VKKBGEfAAAANiEtLU3nz59XxYoV5enpKTs7O0uXBMBCDMNQXFyczp8/r6pVq1pl4Oc2fgAAANiEmJgYVaxYUe7u7gR9wMbZ2dnJ3d1dFStWVExMjKXLKRKEfQAAANiEhIQEubm5WboMACWIm5ub1U7rIewDAADAZnBFH8CtrPkzgbAPAAAAAICVIewDAAAAAGBlCPsAAAAAAFgZwj4AAAAA5KBz587q3LmzpcswGTdunAICAnTu3DlLl4ISzNHSBQAAAAAoeufOnVOXLl0kSZUqVdKmTZvk6Jg5Dpw8eVK9evWSJFWtWlXr16/P8niGYahbt246e/asOnTooC+//DLfNQ0ZMkQ7d+40fZ/xOLS6desqJCREwcHBVr2AGlCUCPsAAACADXF0dNSVK1e0adMmU/i/VWhoqOztc78BeMeOHTp79qzs7Oy0ZcsWRUREyNfX945qGj58uMqWLau0tDSFh4fr999/119//aVDhw7prbfeuqNjWrNXXnlFTz311B2PN2wDt/EDAAAANqRJkyZyd3dXWFhYpn2pqan6+eef1aZNmyyv+t8qNDRUkjRs2DClpaVp6dKld1zT8OHD9cILL2jUqFGaPn26Fi9eLFdXV82fP1/h4eF3fFxr5ePjo9q1a8vJycnSpaAEI+wDAAAANsTFxUW9evXSpk2bFBUVZbZv48aNunLligYMGJDjMa5fv641a9bI399fL730ksqVK6ewsDAZhlEoNQYEBOjee++VYRg6ePCgpJsnF5599ll17txZDRs2VIsWLTRixAht37490+t37NihgIAAzZo1SwcOHNCwYcPUpEkTNWvWTM8//3y2c93Xrl2rAQMGKCgoSG3atNGbb76pa9euZVtncnKy5s6dq+DgYDVu3FhNmjTRwIEDtW7dukxtM+bZh4eHa86cOerevbuCgoLUq1cvrVy50nS8jz/+2PQeH3jgAW3atCnbY2X1Pnbt2qXnnntObdq0UYMGDdShQwf95z//0e7du7N9H7BOhH0AAADAxoSEhCg1NVXLly832x4aGioPDw/df//9Ob5+xYoVSkpKUr9+/eTq6qru3bvr7NmzZvPvC0vGnP3JkycrKipKrVu31hNPPKGOHTtq7969GjZsmNauXZvlaw8cOKDBgwfLyclJjz76qBo0aKC1a9dq2LBhSkpKMmu7bNkyPf/88zpz5oz69eunBx98UHv27NGwYcOUnJyc6djJyckaMWKEpk6dKsMwFBISor59++rChQt67rnn9MMPP2RZ05QpUzR37ly1aNFCwcHBioyM1KuvvqrNmzfrhRde0C+//KIOHTrogQce0L///qvnn39eZ8+ezdNYzZs3T0OGDNG2bdvUpk0bDR8+XK1atdLRo0e1evXqPB0D1oM5+wAAALB5hmEoISHB0mVkq2zZsoW6UF1QUJD8/f21ZMkSDR8+XJIUGRmpzZs367HHHpOzs3OOrw8LC5O9vb0eeOABSVK/fv20ZMkShYaGqmXLlgWu78SJE9q1a5fs7OzUoEEDSdLKlStVvXp1s3aXL1/WgAED9OGHH2Z5gmLTpk36+OOPTQsOStKYMWO0fPlyrV27Vr1795YkxcXF6Z133lHZsmUVGhqqWrVqSZJefvllDRs2TJGRkapatarZsWfPnq2dO3fqueee04svvmj6+4mLi9Pjjz+uqVOnqmvXrpnm1Z88eVI///yzPD09JUkDBgzQQw89pFdeeUV169bVihUrVLZsWUlSu3bt9PLLL+u7777Tm2++meOYHT16VFOnTpW3t7cWLlyoatWqmfYZhqHLly/n+HpYH67sAwAAwKYZhqF27drJzc2txH61b9++0G6RzzBgwACdOHFC+/btkyQtXbpUqampud7Cf+TIER06dEitW7c2BdmWLVvKz89Pa9asUWxsbL5r+eabbzRr1ix98sknGj16tEJCQpSYmKjBgwebQuvtQV+6OXe9e/fuOnPmjM6fP59p/7333msW9DPet3Tzqn+GtWvXKi4uTgMGDDAFfUlycnLSqFGjMh03PT1dCxcu1F133WUW9CXJzc1Nzz//vFJSUvT7779neu2zzz5rCvrSzRMv1atX1/Xr1/Xyyy+bgr4kde/eXU5OTjp69Gim49zuxx9/VHp6ukaNGmUW9KWbd0ewmJ/t4co+AAAAbJ4tPt6tb9+++uijjxQWFqZGjRppyZIlCgwM1D333JPj6xYvXizp5tX8DHZ2durbt68+//xzrVixQgMHDsxXLd98843pOG5ubmrQoIFCQkL04IMPmtqEh4friy++0Pbt2xUREZHp1vrLly9nuvpev379TH1VrlxZ0s11BzJkhOlmzZplat+kSZNMixWePn1a165dk4+Pjz799NNMr7l69aok6dSpU5n21atXL9M2b29vhYeHZxp7BwcHeXp65umq/P79+yXdvBsAkAj7AAAAsHF2dnbavHmzTd3GL0menp7q1KmTVq5cqR49euj06dO5PuYuKSnJdJt5t27dzPb169dPn3/+ucLCwvId9rds2SJvb+9s9//777966KGHFBcXp5YtW6pTp05yc3OTvb29du7cqZ07d2Y5r97NzS3TNgcHB0k3r85nyLgbwcvLK8v2Hh4eZttiYmIk3ZxucOLEiWzrvnHjRp5qyjiZkN2+1NTUbPvIEBcXJzs7uxzHEbaFsA8AAACbZ2dnp3Llylm6jGIXEhKiNWvWaNy4cXJxcTHNwc/OmjVrTFfEGzdunGWbgwcP6ujRo1lewb5T3377ra5du6Zp06aZ3VEgSRMmTCjwwoDu7u6SlOnpBJKUlpammJgYs9vgM0J59+7dNXPmzAL1XVjc3d1lGIYiIyO5ZR+SCPsAAACAzWrXrp18fX0VERGh3r17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Lz8/P/Xs2VMjR45UmTJlJN2cj//pp59Kkj799FPTnyVp3bp1qlatmqlNVvUcPXpUX331lXbt2qWrV6/Kw8NDAQEBGjRoUIHmlA8YMEDvv/++zp8/r6tXr8rJyUkLFy7UH3/8oTNnzigmJkYeHh5q06aN/vOf/2QKv7fWfPny5TyNWVpamubMmaPFixfr0qVLqly5skJCQtSrV69s64yKitIXX3yhDRs26OLFiypXrpxatGihF154Qf7+/mZtM8Zj+fLl+uijj7Ru3TrFxcWpfv36ev3111W/fn1FREToww8/1NatWxUfH6/mzZtrwoQJqlmzZpbHWr9+vdl2wzC0ZMkShYWF6fjx40pJSZGvr69atWqlkSNHFtndGSVdgcJ+r169FBoaqoULFyomJkblypVT/fr1NXr0aFOIL1++vDp27Kht27Zp2bJlSktLU40aNfTKK69o+PDhsrcvkmUDAAAAANzCw8NDknT69Gndc889Oba1t7dXSEiIZs6cqdWrV+uBBx4w23/q1Cnt3r1bHTt2VOXKlc32rV+/Xhs3blTnzp3VpEkT7dq1S8uWLdPZs2e1cOFCSdI999yjoUOH6rvvvlO9evV0//33m15ftWpVs+PNnz9fmzdvVufOndWqVStt3rxZ33//vaKjozV9+nSztgsWLNDkyZNVvnx5derUSZ6enjp48KA+//xz7dixQ999952cnZ3VokULBQcHa+nSpWrRooVatGhhOkb58uVzHJvVq1ebnjbWqVMn1apVS1FRUdq/f79CQ0MLdQG5kydPaubMmWrZsqW6du2qMmXK6NSpU/rll1+0adMmLVmyJNN4Sfkbs7feekthYWGqVq2aBg0apKSkJM2dO1d79+7NsqazZ89qyJAhunTpktq1a6f7779fUVFRWrNmjbZs2aJvv/1WjRo1MntNcnKyhg0bpqSkJPXs2VNRUVFatWqVhg0bpoULF+rJJ5+Ut7e3+vbtq3///VcbNmzQM888o19//VUODg45jlF6erpGjRql1atXy9fXV71795abm5vOnz+vVatW6b777rPZsC+jlDl48KDh7+9vHDx40NKlAAAAoBQ5e/ZsjvuTkpKy/UpJSclz2+Tk5Dtum5ycnGW7wrB27VrD39/faNKkiTF16lRj8+bNxtWrV7Ntf+nSJSMwMNAYPHhwpn1Tp041/P39jd9//920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WmZtT548qffff1979uyRk5OTOnTooPHjx8vT09OsTVhYmLZu3aqzZ8+qXLlyCgwM1AsvvKCGDRuaHW/NmjX69ddfdeDAAV25ckWVK1dWp06d9Nxzz6l8+fJ5fg+LFy/WN998o3PnzqlKlSoaMmSIhgwZYtbm1KlT+vHHH7V//34dOnRIycnJWrdunapVq5af4coXWxnbwurL1sbt999/148//qhjx44pJiZGnp6eaty4sf7zn//I398/3+OWG1sZ19sNGzZM27Zt06BBgzRhwoQ895UTWxnLWbNm6dNPP830WmdnZx04cCDPfeWHrYxthl9//VXz5s3TsWPH5OjoqDp16uill15S69at8zFqWbOVsezcubPOnz+f5etr1KihNWvW5Lm/vLKVsZWkbdu26bPPPtPx48eVlpammjVravDgwXrwwQfzN2h5YEvjunLlSn399df6559/VK5cOXXu3FmjR482q78gSvtYLliwQNu3b9f+/ft18eJFBQcHa+rUqVm2vX79uj788EP9/vvvSkxMVMOGDTVu3DjVr18/n6OWN7YytpcvX9Z3332nffv26eDBg0pISNB3332nli1b3sGoZc1WxvLPP//Uzz//rD179ujSpUuqVKmSWrVqpZdeekk+Pj75Hjc7wzCMvDZ+8cUXtWfPHvXo0UMBAQGKjIzU/PnzlZCQoEWLFplCx6VLl/Tggw/K3d1dQ4YMUUJCgr755htVqVJFixcvlrOzsyTpgw8+UGhoqLp166agoCDFxsZq0aJFOn/+vL7++mu1adPG1HfLli3l4+Oj+++/X35+fjp27Jh+/PFHVa9eXUuXLpWrq2uu9f/444+aOHGiunfvrnbt2mn37t1avny5Xn31VT399NOmdkuWLNEbb7yhOnXqyMHBQUeOHCnysG8rY1sYfdniuH366ac6efKk7rnnHlWsWFFXrlxRWFiYIiMjtWjRItWrVy9f48a4ZrZmzRqNHTtWCQkJhRr2bWUsM8L+22+/rbJly5q2Ozg4qE+fPoUylrezlbGVbo7v7Nmz1b17d7Vu3Vqpqak6fvy4mjZtWihBylbGcu3atYqPjzd77YULF/TJJ59o4MCBmjhxYoHH8na2Mrbr1q3T888/r8aNG6tPnz6ys7PTqlWrtGvXLo0fP15PPPEE43oH47pgwQJNmjRJrVu3VteuXRUREaHvvvtO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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "normalized_treated_outcome = data.treated_outcome_all - ys.reshape(-1, 1)\n", + "normalized_treated_outcome = normalized_treated_outcome[:, 0]\n", + "normalized_synth = np.zeros(data.periods_all)\n", + "most_extreme_value = np.max(np.absolute(normalized_treated_outcome))\n", + "\n", + "if invert:\n", + " normalized_treated_outcome *= -1\n", + " normalized_synth *= -1\n", + "plt.figure(figsize=(12, 6))\n", + "sns.lineplot(x=x, y=normalized_treated_outcome, label=f\"{treated_unit} {outcome_var}\", c='black')\n", + "sns.lineplot(x=x, y=normalized_synth, label=f\"Synthetic {outcome_var}\", c='grey', linestyle='--')\n", + "plt.xlim([datetime(2022, 1,1), x.max()])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {},