diff --git a/README.md b/README.md index 2a9938e..2f61760 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ The package somes with a suite of examples on real data: - Plankton Counting with Computer Vision (label shift) ([```plankton.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/plankton.ipynb)) - Ballot Counting with Computer Vision ([```ballots.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/ballots.ipynb)) - Income Analysis with Boosting Trees ([```census_income.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/census_income.ipynb)) +- Tree Cover Analysis with Computer Vision (Predict-Then-Debias) ([```tree_cover_ptd.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/tree_cover_ptd.ipynb)) # Usage and Documentation There is a common template that all PPI confidence intervals follow. @@ -143,4 +144,6 @@ The repository currently implements the methods developed in the following paper [Prediction-Powered Bootstrap](https://arxiv.org/abs/2405.18379) +[Prediction-Powered Inference with Imputed Covariates and Nonuniform Sampling](https://arxiv.org/abs/2501.18577) + [The Mixed Subjects Design: Treating Large Language Models as Potentially Informative Observations](https://doi.org/10.1177/00491241251326865) \ No newline at end of file diff --git a/examples/README.md b/examples/README.md index 3ff9e3d..2541308 100644 --- a/examples/README.md +++ b/examples/README.md @@ -17,4 +17,6 @@ Each notebook runs a simulation that forms a dataframe containing confidence int Each notebook also compares PPI and classical inference in terms of the number of labeled examples needed to reject a natural null hypothesis in the analyzed problem. +The notebook [```tree_cover_ptd.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/tree_cover_ptd.ipynb) shows how to use the Predict-Then-Debias (PTD) estimator from Kluger et al. (2025), 'Prediction-Powered Inference with Imputed Covariates and Nonuniform Sampling,' https://arxiv.org/abs/2501.18577. + Finally, there is a notebook that shows how to compute the optimal `n` and `N` given a cost constraint ([```power_analysis.ipynb```](https://github.com/aangelopoulos/ppi_py/blob/main/examples/power_analysis.ipynb)). \ No newline at end of file diff --git a/examples/power_analysis.ipynb b/examples/power_analysis.ipynb index 09fd36c..9e0106a 100644 --- a/examples/power_analysis.ipynb +++ b/examples/power_analysis.ipynb @@ -949,7 +949,7 @@ ], "metadata": { "kernelspec": { - "display_name": "base", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -963,7 +963,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.9.7" } }, "nbformat": 4, diff --git a/examples/tree_cover_ptd.ipynb b/examples/tree_cover_ptd.ipynb new file mode 100644 index 0000000..afadc12 --- /dev/null +++ b/examples/tree_cover_ptd.ipynb @@ -0,0 +1,1651 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "cc8a7fc7", + "metadata": {}, + "source": [ + "The **ptd** module of the **ppi_py** package implements the Predict-then-Debias (PTD) bootstrap algorithm from Kluger et al. (2025), 'Prediction-Powered Inference with Imputed Covariates and Nonuniform Sampling,' . The algorithm takes in an estimator of interest, a large \"unlabeled\" dataset of machine learning predictions, and a small \"calibration\" dataset of ground truth measurements. It outputs valid point estimates and confidence intervals for the estimator of interest. \n", + "\n", + "In this notebook, we demonstrate how to use the ptd module to estimate linear regression and logistic regression coefficients. We also show how users can use the module on their own estimators of interest. \n", + "\n", + "We compare results from PTD with the \"classical\" estimator (using calibration ground truth points only) and \"naive\" estimator (using predictions only). By combining ground truth and predicted datasets, PTD produces statistically valid confidence intervals that are narrower than those for the classical estimator." + ] + }, + { + "cell_type": "markdown", + "id": "1378ab65", + "metadata": {}, + "source": [ + "# Import packages" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7e74ca93", + "metadata": {}, + "outputs": [], + "source": [ + "import os, sys\n", + "sys.path.append(os.path.abspath(os.path.join(os.getcwd(), os.pardir)))\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import pickle\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels\n", + "\n", + "from ppi_py.datasets.datasets import load_dataset\n", + "from ppi_py import ptd" + ] + }, + { + "cell_type": "markdown", + "id": "636308ff", + "metadata": {}, + "source": [ + "# Baseline methods for comparison" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bdf67778", + "metadata": {}, + "outputs": [], + "source": [ + "from statsmodels.regression.linear_model import WLS, RegressionResults\n", + "from statsmodels.stats.weightstats import _zconfint_generic\n", + "from statsmodels.genmod.generalized_linear_model import GLM\n", + "from statsmodels.genmod.families import Binomial\n", + "from statsmodels.genmod.families.links import Logit\n", + "\n", + "def classical_logistic_regression_ci(X, Y, w=None, alpha=0.05):\n", + " \"\"\"\n", + " Computes confidence intervals for logistic regression coefficients using the classical method.\n", + "\n", + " Args:\n", + " X (ndarray): labeled covariates (dimensions n x p)\n", + " Y (ndarray): labeled responses (length n)\n", + " w (ndarray, optional): sample weights for the labeled dataset (length n)\n", + " alpha (float, optional): error level (must be in the range (0, 1)). Confidence interval will target a coverage of 1 - alpha.\n", + "\n", + " Returns:\n", + " tuple: lower and upper bounds of classical confidence intervals for the coefficients\n", + " \"\"\"\n", + " regression = GLM(endog=Y, exog=X, freq_weights=w, family=Binomial(link=Logit())).fit()\n", + " ci = regression.conf_int(alpha=alpha).T\n", + " return ci\n", + "\n", + "def classical_linear_regression_ci(X, Y, w=None, alpha=0.05):\n", + " \"\"\"\n", + " Computes confidence intervals for linear regression coefficients using the classical method.\n", + "\n", + " Args:\n", + " X (ndarray): labeled covariates (dimensions n x p)\n", + " Y (ndarray): labeled responses (length n)\n", + " w (ndarray, optional): sample weights for the labeled dataset (length n)\n", + " alpha (float, optional): error level (must be in the range (0, 1)). Confidence interval will target a coverage of 1 - alpha.\n", + "\n", + " Returns:\n", + " tuple: lower and upper bounds of classical confidence intervals for the coefficients\n", + " \"\"\"\n", + " if w is None:\n", + " regression = WLS(endog=Y, exog=X).fit()\n", + " else:\n", + " regression = WLS(endog=Y, exog=X, weights=w).fit()\n", + " coeff = regression.params\n", + " se = regression.HC0_se\n", + " ci = _zconfint_generic(coeff, se, alpha, alternative=\"two-sided\")\n", + " return (ci[0], ci[1])" + ] + }, + { + "cell_type": "markdown", + "id": "14ad556b", + "metadata": {}, + "source": [ + "# Load dataset (tree cover, elevation, population)" + ] + }, + { + "cell_type": "markdown", + "id": "0ca7f640", + "metadata": {}, + "source": [ + "We use the MOSAIKS dataset from (Rolf et al, 2021). The dataset contains both ground truth and predicted values for tree cover, elevation, and population variables in the contiguous United States.\n", + "\n", + "After dropping points with missing variables, there are N=67968 total points. For each of our experiments, we will use a uniformly random sampled subset of the points as a calibration dataset (with ground truth and predicted values available), and use the rest as an unlabeled dataset (with predicted values only).\n", + "\n", + "E. Rolf, J. Proctor, T. Carleton, I. Bolliger, V. Shankar, M. Ishihara, B. Recht, and S. Hsiang. \"A Generalizable and Accessible Approach to Machine Learning with Global Satellite Imagery,\" Nature Communications, 2021. https://github.com/Global-Policy-Lab/mosaiks-paper" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "57c898ea", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset tree_cover not found at location ./data/; downloading now...\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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
truth_treepreds_treelonlattruth_elevationpreds_elevationtruth_populationpreds_population
00.0000000.000000-119.79401946.7731570.4239140.9637840.2909850.223613
10.0000000.000000-107.44014236.6284122.0154081.7799820.0700591.089495
232.51117642.111039-87.58028730.3162540.005059-0.0168011.7717852.923414
31.7061110.000000-102.31679543.2504831.0000751.1642832.6543290.872536
434.12197438.179145-97.66171229.8156750.1443800.3106661.5395811.788519
...........................
679630.05636511.829323-99.74135032.5370260.5213230.4226723.7760493.563149
679641.9263168.442633-83.35214941.0142600.2564710.1744573.0649542.710515
679652.9470000.000000-86.85034836.6505120.1691120.1254594.1206133.165970
679660.0840627.715938-99.90661931.5095650.4950740.4886930.9450921.091228
6796771.36588969.242908-93.48866332.3859690.0689590.1150682.0725532.346426
\n", + "

67968 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " truth_tree preds_tree lon lat truth_elevation \\\n", + "0 0.000000 0.000000 -119.794019 46.773157 0.423914 \n", + "1 0.000000 0.000000 -107.440142 36.628412 2.015408 \n", + "2 32.511176 42.111039 -87.580287 30.316254 0.005059 \n", + "3 1.706111 0.000000 -102.316795 43.250483 1.000075 \n", + "4 34.121974 38.179145 -97.661712 29.815675 0.144380 \n", + "... ... ... ... ... ... \n", + "67963 0.056365 11.829323 -99.741350 32.537026 0.521323 \n", + "67964 1.926316 8.442633 -83.352149 41.014260 0.256471 \n", + "67965 2.947000 0.000000 -86.850348 36.650512 0.169112 \n", + "67966 0.084062 7.715938 -99.906619 31.509565 0.495074 \n", + "67967 71.365889 69.242908 -93.488663 32.385969 0.068959 \n", + "\n", + " preds_elevation truth_population preds_population \n", + "0 0.963784 0.290985 0.223613 \n", + "1 1.779982 0.070059 1.089495 \n", + "2 -0.016801 1.771785 2.923414 \n", + "3 1.164283 2.654329 0.872536 \n", + "4 0.310666 1.539581 1.788519 \n", + "... ... ... ... \n", + "67963 0.422672 3.776049 3.563149 \n", + "67964 0.174457 3.064954 2.710515 \n", + "67965 0.125459 4.120613 3.165970 \n", + "67966 0.488693 0.945092 1.091228 \n", + "67967 0.115068 2.072553 2.346426 \n", + "\n", + "[67968 rows x 8 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_folder = \"./data/\"\n", + "data = load_dataset(dataset_folder, \"tree_cover\")\n", + "data = pd.DataFrame.from_dict({item: data[item] for item in data.files})\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "2e1a74f2", + "metadata": {}, + "source": [ + "# Example 1: Linear regression coefficient estimation" + ] + }, + { + "cell_type": "markdown", + "id": "74da9199", + "metadata": {}, + "source": [ + "In this example, we estimate linear regression coefficients relating tree cover to two covariates: elevation and population. \n", + "\n", + "We treat forest cover and population variables as if we only have access to ground truth for a small subset of the points. For elevation, we will use ground truth for all points.\n", + "\n", + "In the code, truth_Y and truth_X are the full ground truth datasets for the response variable and covariates respectively. preds_Y and preds_X are the \"predicted\" datasets. Note that in this example, both truth_X and preds_X include ground truth elevation values (rather than predicted elevation values), because we are treating ground truth elevation as widely available. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d8cbab38", + "metadata": {}, + "outputs": [], + "source": [ + "truth_Y = np.array(data['truth_tree']).reshape(-1, 1)\n", + "preds_Y = np.array(data['preds_tree']).reshape(-1, 1)\n", + "\n", + "truth_X = np.array(data[['truth_elevation', 'truth_population']])\n", + "preds_X = np.array(data[['truth_elevation', 'preds_population']])" + ] + }, + { + "cell_type": "markdown", + "id": "97f1df2d", + "metadata": {}, + "source": [ + "We randomly sample 500 points (out of the 67968 total points) to use as the calibration set. The remaining 67468 points are the unlabeled set.\n", + "\n", + "In the code, X and Y are the true covariate and response variable values in the calibration set. Xhat and Yhat are the the predicted covariate and response variable values in the calibration set. Xhat_unlabeled and Yhat_unlabeled are the predicted covariate and response variable values in the unlabeled set. \n", + "\n", + "Note that we add a constant column to the covariate data arrays, so that the regression coefficients will include an intercept term." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7a6b280e", + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(seed=100)\n", + "calibration_indices = np.random.choice(np.arange(0, len(data)), size=500, replace=False)\n", + "X = statsmodels.tools.add_constant(truth_X[calibration_indices])\n", + "Xhat = statsmodels.tools.add_constant(preds_X[calibration_indices])\n", + "Xhat_unlabeled = statsmodels.tools.add_constant(np.delete(preds_X, calibration_indices, axis=0)) # all predicted datapoints except calibration indices\n", + "Y = truth_Y[calibration_indices]\n", + "Yhat = preds_Y[calibration_indices]\n", + "Yhat_unlabeled = np.delete(preds_Y, calibration_indices, axis=0) # all predicted datapoints except calibration indices" + ] + }, + { + "cell_type": "markdown", + "id": "67602c3c", + "metadata": {}, + "source": [ + "We use the following functions to compute point estimates and confidence intervals for the linear regression coefficients. \n", + "\n", + "We use **algorithm_linear_regression** to compute the \"true coefficient\" using the full ground truth covariate and response datasets.\n", + "\n", + "We use **ptd_linear_regression** to compute \"PTD\" point estimates and 95% confidence intervals using the calibration dataset and unlabeled dataset.\n", + "\n", + "We use **classical_linear_regression_ci** to compute \"classical\" 95% confidence intervals using only the ground truth covariate and response values in the calibration set. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. \n", + "\n", + "We also use **classical_linear_regression_ci** to compute \"naive\" 95% confidence intervals using only the full predicted covariate and response datasets. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7bc8ee68", + "metadata": {}, + "outputs": [], + "source": [ + "true_coeff = ptd.algorithm_linear_regression(data=[statsmodels.tools.add_constant(truth_X), truth_Y], w=None)\n", + "\n", + "tuning_matrix, ptd_pointestimate, ptd_ci = ptd.ptd_linear_regression(X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, \n", + " B=2000, alpha=0.05, tuning_method='optimal')\n", + "\n", + "classical_ci = classical_linear_regression_ci(X, Y, alpha=0.05)\n", + "classical_pointestimate = (classical_ci[0]+classical_ci[1])/2\n", + "\n", + "naive_ci = classical_linear_regression_ci(statsmodels.tools.add_constant(preds_X), preds_Y, alpha=0.05)\n", + "naive_pointestimate = (naive_ci[0]+naive_ci[1])/2" + ] + }, + { + "cell_type": "markdown", + "id": "09d74910", + "metadata": {}, + "source": [ + "We visualize the coefficient point estimates and confidence intervals for PTD, classical, and naive estimators. \n", + "\n", + "The yellow dotted line is the \"true coefficient.\" The effective sample size improvement of PTD compared to the classical confidence interval is shown in blue. \n", + "\n", + "We see that the naive estimates are biased relative to the true coefficient, while PTD has statistically valid confidence intervals (which, in the figure, contain the true coefficient). The PTD confidence intervals are also narrower than the classical confidence intervals. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0e0cecae", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAACTkAAAIhCAYAAACPTyzfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADbyElEQVR4nOzdd3yV1f048E9ICDsIOBEEREUFHIgbVxW1OOpeqIDa1taBtbVWW1fVorV11j1ARa2raBUH1o0TFEVxsQII4gAkbEhyf3/kh1/jvdk3uTfwfr9eeSmf8zznfMCQ55zHzz0nJ5FIJAIAAAAAAAAAACBLNcl0AgAAAAAAAAAAAJVR5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOWejSSy+NnJycpK/TTjutXsZ75ZVXUo43ZcqUehkvnfbee++kvC+99NJMpwUAAAAAAAAAQBopcmpE7r777nj++ecznQYAAAAAAAAAADQoRU6NzC9/+csoKirKdBoAAAAAAAAAANBg8jKdADUza9asOPfcc+Ouu+7KdCoAAPVm3PijoqhoQrlYQcH2sWPfxzKUEQBQV57vAABAJlmTADR+dnJqhO6+++4YM2ZMptMAAAAAAAAAAIAGocipkTrttNMcWwcAdZVIRBQVRXz3Xdk/E4lMZwQAAGsv83MAAKA6rB1greW4ukZq1qxZ8fvf/z7uvPPOTKeSUa+88kqmUwCgPlx+eURJSXI8Nzfioovq1vfHH0c8+GDEO+9EjB9ftgBaraAgom/fiJ13jjjhhIheveo2VkT9/l4AACAT0jnHra/5uXk4AAA0jIaaezf0u/3VrC0gq+QkEsoas82ll14al112WbWuHTNmTPTv379O473yyiuxzz77JMUnT54cm222WZ36BoBaadYsYuXK5Hh+fsSKFbXrc/ToiGHDIt54IyIvr2xRkmoalJNTtjgpLo7YffeICy+MGDCgdmNG1M/vZS0wbvxRUVQ0oVysoGD72LHvYxnKCACoK8/3NUg65rj1PT83DwcA4CesSepJfc+9M/VufzVrC8gqjqtr5E477bRYtGhRptMAgOw1b17ZJzcOPjjirbfKYsXFFW9fm0iUtUeUXX/QQREDB0bMn98w+QIAwJrM/BwAAKgOawcgBUVOjUSHDh2iW7duSfGZM2fG73//+wxkBACNwMSJEVtvHfHII2W/Li2t2f2rr3/44Yittor46KP05gcAAGsT83MAAKA6rB2ACihyaiSaN28e99xzT+Tk5CS13XnnnfHCCy9kICsAyGITJ0bssUfZpz1SnZddEyUlZf3062cxBAAAtWF+DgAAVIe1A1CJvEwnQPXtvffe8Zvf/CZuueWWpLbTTjstPv7442jTpk0GMktt3rx58dFHH8WsWbPiu+++i2XLlkVpaWk0b948OnToEJ07d47evXvHBhtskOlUs8bUqVN/+DNbtGhR5OTkRNu2baNLly6x/fbbR8eOHTOdIkDjMG9eRP/+EUuW1H0RtFpJSVl/++0X8emnEe3bp6dfAABY05mfAwAA1WHtAFRBkVMjc/XVV8ezzz4b06dPLxefOXNm/OEPf4jbb789Q5mVGTduXDzwwAMxevTomDJlSrXu2XzzzePII4+MX//619G1a9cajbf33nvHq6++Wi52ySWXxKWXXlou9oc//CH++c9/lou1bds25s6dG82bN6/RmD9WUlISnTp1irlz55aLX3XVVXH++edXq4/JkyfHLbfcEo8++mjMnj270mu33HLLOP744+M3v/lNrLfeerXOG2CNd9ZZ6fmUx0+t/tTHWWdFPPBAevsGAIA1lfk5AABQHdYOQBUcV9fItG7dOu6+++6Ux9bdcccd8eKLL2Ygq4h33nkndt9999hpp53ihhtuqHaBU0RZkc9VV10VW2yxRfzud7+L5cuXpz2/U045JSm2cOHCeOqpp+rU7wsvvJBU4JSbmxsnnXRSlffOnz8/fvWrX8WWW24Z119/fZUFThERn332WVxyySXRtWvXuOKKK2LVqlW1zh1gjTV6dMRDD6V/EbRaSUnEgw9GPPNM/fQPAABrEvNzAACgOqwdgGpQ5NQI7bPPPnH66aenbDv11FNj0aJFDZrP3/72t9htt93izTffrFM/q1atiuuvvz5+9rOfxZIlS9KUXZmtt946dtppp6T4yJEj69Tv/fffnxQ74IADqjxWbty4cbHddtvFnXfeGaWlpTUed+nSpXHRRRfFnnvumVRkBbDWGzYsokk9T3Fyc8vGAQAAKmd+DgAAVIe1A1ANjqtrpP7+97/Hs88+G4WFheXiM2bMiPPOOy9uu+22BsnjsssuSzoa7qdatmwZbdu2jfz8/CgqKorvv/8+EolEhde/9dZbcfHFFycdL1dXQ4YMiXfffbdc7Nlnn4358+dH+1qcvbp48eJ44oknUo5Tmddeey0OOuigWLx4cYXXNG3aNDp06BAREd9++22UVFCx/Pbbb0e/fv3itddeq7KwCqBRWL48YurUiIoKQEtLIyZNqvj+yZMj3nijfnL7sZKSiLFjI558MmKzzSq/trLfy/LlEXU4NhUAABpUTefrmZyfm4cDAED9quv7/B/Lxnf7q1lbQFZR5NRIrT62br/99ksqGLrjjjvi6KOPjn333bdec3jttdfisssuS9m2zz77xGmnnRZ77bVXbLzxxuXaFi1aFO+//348/PDDcd9996XctemGG26IM888M7p165a2fI8//vg499xzY9myZT/EVq1aFY888kiFO2NV5vHHH4+lS5eWi7Vv3z4OPfTQCu/58ssv44gjjkhZ4NSuXbv47W9/G4cddlj06dMnmvz/SuXS0tIYN25cjBo1Km6++eake6dOnRrHHntsvPzyy5GX56800MhNnRrRq1fF7cXFlbc3tMMOq/29xcVlv9+ePdOWDgAA1Ktsn69XZ35uHg4AAOmR7euDytTl3f5q1haQEY6ra8R+9rOfxa9//eukeCKRiNNOO63SnYLS4dxzz00qsGrSpEncdttt8dJLL8UJJ5yQVOAUEdGmTZvYa6+94pZbbomPPvoodthhh6RrSkpK4pFHHklrvm3bto3DDz88KV7bI+tSHVV3wgknRH5+fsrri4uL4/jjj4958+YltR1zzDExffr0uOKKK6Jv374/FDhFlP2Z7rzzznHVVVfFF198EQceeGDS/WPHjo0//elPtfp9AAAAAAAAAABkO0VOjdw111wTXbp0SYoXFhbGeeedV2/jvvbaa/Hee+8lxf/4xz+mLLyqSLdu3WL06NHRpk2bpLZnn322TjmmkuoouTfffDOmT59eo35mz54dL7/8crX6X+3OO++MsWPHJsXPPffcePjhh6Nt27ZVjrvRRhvFU089Fccff3xS2w033BAzZsyosg8AAAAAAAAAgMZGkVMjt/rYulRuv/32eOmll+pl3Iceeigptt5668VFF11U47422GCDlEU7hYWFtUmtUvvuu29SUVgikYgHH3ywRv088MADUfqT81e32Wab6NOnT8rrS0tL49prr02KH3jggfGPf/yjRmPn5eXF3XffHT169CgXLy4ujn/+85816gsAAAAAAAAAoDFQ5LQG2HfffSs8tu7UU0+tl2PrUu1INGTIkGjZsmWt+tttt92SYgsWLKhVX5XJycmJQYMGJcVremRdqqPqBg8eXOH1Tz75ZEyZMqVcLDc3N2688cbIycmp0dgRES1atEhZUHb33XfHkiVLatwfAAAAAAAAAEA2y8t0AqTHNddcE88991zScWWFhYXxxz/+MW655Za0jjdx4sSYM2dOTJs27YevY489ttb9bbDBBkmx5cuX1yXFCg0ePDguv/zySCQSP8Q+++yzeO+992KHHXao8v4PPvggPv7443Kxpk2bxoknnljhPY8//nhSbO+9947NN9+8BpmXd8QRR0SLFi1i2bJlP8SWLl0ab731Vuy333617hcAssFWW14ZJSXlC3dzc1tlKBsAIB083wEAgEyyJgFo/BQ5rSHatGkTd911V/Tv3z+p7bbbboujjz469tlnn7SNl5OTExtvvHFsvPHGsccee9S5v+bNmyfFiouL69xvKt26dYu99torXnnllXLxBx54oFpFTvfdd19S7KCDDor11luvwntS7Xw1YMCAqpOtRIsWLWKXXXaJl19+uVz89ddfV+QEQKPXunWPqi8CABoVz3cAACCTrEkAGj/H1a1B9ttvv/jVr36VFK/PY+vqqqioKJ566qm4+eabk9pKS0vrbdxTTjklKfbQQw9FSUlJpfeVlJTEQw89lBQfMmRIhffMnj07aYetiIgePeo+kdp6662TYm+99Vad+wUAAAAAAAAAyCZ2clrD/OMf/4jnnnsuZs6cWS4+ffr0OP/881MWEzWEFStWRGFhYUyZMiUmTZoUkyZNivfeey8+/fTTei1mqsiRRx4ZZ555ZhQVFf0Qmzt3brz44oux//77V3jfCy+8EHPnzi0XW3/99SvdlWnSpEkp4wcffHANs66en+YH0Kh07x7x8ccR220XkWpHv7y8iA8+qPj+66+PGD48ooqi1bTIzY045ZSIoUMrv66y30v37vWSGgAA1IuaztczOT83DwcAgPpV1/f5P5aN7/ZXs7aArKLIaQ2z+ti6VIU6t956axx11FFpPbbup4qKiuKtt96KDz74ID777LOYMmVKTJ8+PebMmROJRKLexq2pli1bxjHHHBN33XVXufjIkSMrLXK6//77k2Innnhi5OVV/Fdp3rx5tU+0FubPn9+g4wGkVfPmET17RjSpYLPJJk3K2isydGjET36215uSkrLxKssnovLfS4rjWgEAIGvVdL6eyfm5eTgAANSvur7P/7FsfLe/mrUFZBXH1a2B+vfvH7/85S+T4quPrVuyZEnaxxwzZkwcddRRsf7668eBBx4Yf/rTn2LEiBExduzYmD17dlYVOK2W6si6UaNGxdKlS1Nev3jx4njiiSeS4pUdVRcRsWDBglrlV1uKnIC1Wq9eEbvvXvGiI11ycyP69av+IggAANZG5ucAAEB1WDsA1aTIaQ31j3/8Izp37pwUX31sXbpMmTIl+vfvHwcccEA8/vjjsWLFihrdn5eXF3vvvXecfvrpacupunbdddfYcssty8UWL14cTz75ZMrrH3/88aQCqL59+0avXr0qHef777+vU541tWzZsgYdDyDrXHBBRH0fhVpSUjYOAABQOfNzAACgOqwdgGpwXN0aqqCgIO6666444IADktpuueWWOOqoo2Lvvfeu0xhvvvlmHHroodU+ji0nJyc6deoU22yzTeywww6xyy67RL9+/aJNmzbxyiuvxG233VanfGpj8ODB8ac//alcbOTIkXH88ccnXZvqqLqqdnGKiGjWrFlSLD8/P+6+++4aZApAtR10UMTxx0c88kj9nN+dmxtx7LERAwakv28AAFjTmJ8DAADVYe0AVIMipzXY/vvvH6eeempSMc3qY+smTpwYrVq1qlXfs2bNioMOOqjCXYratGkTu+++e+ywww6x1VZbxVZbbRU9evSocLyS+nhQVcPJJ58cf/7zn8uNP2bMmPj2229jvfXW+yE2e/bsePnll8vd26xZs5TFUD/Vvn37pNjKlSvj0EMPjYKCgjpkD0CFbrop4sUXI+bNS+9iKDc3okOHsv4BAIDqMT8HAACqw9oBqIIipzXctddeG2PGjIlZs2aVi0+bNi3+9Kc/xU21/EF+8sknpyxw6tKlS1x99dVxxBFHRNOmTavdX6aOWNtoo43iwAMPjNGjR/8QKy4ujkceeSTOOOOMH2IPPPBAlP5ke8Rf/OIX0a5duyrHqOiamTNnVnnUHQC11KFDxP/+V3a29pIl6VkM5eZGtGpV1m+KAlbS68OJv4pFiyaVi7Vp0zO23eaODGUEANSV5/tazPwcAIAsYE3SCFg7AFVokukEqF8FBQVx5513pmy7+eab49VXX61xn6+88kq88sorSfGePXvG+++/H8cee2yNCpwiIr755psa55EuqY6ce/zxx8v9euTIkdW6L5VNNtkkZfztt9+u1v0A1FLv3hFjx5YtinJz69bX6k95jB1b1i/1buXK+bFixdxyXytXzs90WgBAHXi+r+XMzwEAyDBrkkbC2gGohCKntcABBxwQp5xySlI8kUjEKaecEkuXLq1Rf48++mjK+F133ZXyaLbq+Pzzz1PGf7p7Un045JBDYt111y0Xe+211+K7776LiIhPPvkkPvroo3LtG2+8cfTv379a/W+77bbRunXrpPiYMWNqmfH/efvtt+P111+PL7/8skH+rAAand69Iz79tOyc7YiaL4hWX3/ccWX9WAQBAEDtmZ8DAADVYe0AVECR01ri2muvjU6dOiXFp02bFhdddFGN+nrvvfeSYl26dIlddtml1vm99NJLKeMl6TxrtQL5+fkxcODApHGfeuqpiCg7qu6nTj755Mit5sM0Nzc3dt1116T46NGjfyikqo1Vq1bF4YcfHnvuuWd07tw5WrRoEZtvvnmce+65te4TYI3Uvn3EAw9EjB4dsfrncV5eRE5O6utzcsraI8quHz06YuRI29gCAEA6mJ8DAADVYe0ApJCX6QRoGG3bto0777wzfv7znye1vf/++zXqa968eUmxjTbaqNa5vfPOOzF+/PiUbcXFxTU++q42hgwZEjfccEO52H/+858YMmRIPPbYY0nXDx48uEb9H3jggfHCCy+Uiy1dujRuuOGGuPzyy2ucb0TZEXpz58794dcrV66MKVOmRMeOHWvVH0BW+ctfUp+1XZetaQcMKPuaNCniwQcj3nknYty4iKKi/7umoCBixx0jdt454oQTInr2rP14q9XH7wUAADIpHXPc+p6fm4cDAEDDqO+5d6be7a9mbQFZRZHTWuTAAw+MIUOGxPDhw+vUT5s2bZJihYWFkUgkIqeiytkKLFu2LE4//fQK21esWBEtWrSocY41te2228b2228fEyZM+CH2wgsvxLhx4+KLL74od+1uu+0WW2yxRY36P/XUU+Oyyy6Loh8/bCPimmuuicMPPzz69OlTo/4WLlwYf/nLX5Liubm5cezqbRsBGrMa7jJYIz17Rlx5Zdm/JxIRixdHrFwZkZ8f0bp1xZ8Cqa36/L0AAEAmpHOOW1/zc/NwAABoGA01927od/urWVtAVnFc3VrmuuuuS3lsXU1ssskmSbG5c+fGk08+WaN+li1bFsccc0x88MEHlV7TUIYMGVLu1ytWrIgzzjijyuuqo23btvHLX/4yKb5ixYo46qijorCwsNp9lZSUxMknnxxz5sxJahs8eHB07ty5xvkBrLVyciLatIno0KHsn/W1CAIAAKpmfg4AAFSHtQOstRQ5rWXatm0bd9xxR536OOCAA1LGf/3rX8ekSZOq1ce4ceNil112iaeffrrS6xYtWlTj/Gpr4MCB0axZs3KxcePGlft1y5Yt45hjjqlV/xdccEHKAqTp06fHrrvuGq+88kqVfXz//fdx1FFHxX//+9+ktlatWsXFF19cq9wAAAAAAAAAALKZIqe10M9//vMYPHhwre8/+uijo23btknxb775Jnbcccf485//HJ988kkkEoly7V9++WXcd999ceCBB8ZOO+0UEydOrHKs7777rtZ51lT79u3j0EMPrfSaI444IgoKCmrVf4cOHeKRRx6Jpk2bJrXNnTs39tlnnzjssMPiiSeeiCVLlpRrnzJlSlx11VWx1VZbxRNPPJGy/9tvvz3lLlsAAAAAAAAAAI2dIqe11HXXXRcbb7xxre5dd91147LLLkvZtmzZsvjb3/4WPXv2jNatW0fnzp1jk002iTZt2kTnzp1j0KBB8fzzzyfdd9RRR8UOO+yQFP/ss89qlWNtVXUUXW2OqvuxXXbZJW677bZo0iT1X70nn3wyDj/88GjdunW0b98+unTpEgUFBbH55pvHBRdcEHPnzk153/nnnx8DBw6sU24AAAAAAAAAANlKkdNaap111qnTsXVDhw6NU089tdJrli5dGl9++WXMmjUrFi9enPKaFi1axHXXXRePPvpo7LLLLkntL774Yq1zrI0DDjigwuKvLl26xD777FPnMU455ZR49NFHq9wRasGCBTFz5sxKj+xr0qRJXHXVVXHVVVfVOS8AAAAAAAAAgGylyGktNmDAgBg0aFCt77/jjjviyiuvjLy8vFrdf+ihh8aHH34Y55xzTkRE7LnnnknXPPvss0lHt9WnJk2axMknn5yybfDgwZGTk5OWcY444oj48MMP47DDDqt1H7169Yo33ngjzj///LTkBAAAAAAAAACQrRQ5reWuv/766NixY63ubdKkSVx44YXx8ccfx29/+9tYZ511qrxnq622irPOOis+/PDDePLJJ2PzzTf/oe3QQw9N6mPBggVxzz331Cq/2kp1JF1OTk6dCsJS6dq1a4waNSo+/PDDOOOMM6r136Fly5ZxyCGHxH//+9/44IMPUu5+BQAAAAAAAACwpslJJBKJTCfBmiGRSMQnn3wSEydOjHnz5sXChQujZcuW0aFDh1h//fWjT58+sf7662c6zaw2ffr0+Pjjj2PmzJlRVFQUpaWl0bZt22jfvn1stdVW0bt371rvnAUAjcm48UdFUdGEcrGCgu1jx76PZSgjAKCuPN8BAIBMsiYBaPxUS5A2OTk50bNnz+jZs2emU2m0unXrFt26dct0GgAAAAAAAAAAWcVxdQAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVsvLdAIAAPBT7dvtEs2bbVgu1rJl18wkAwCkhec7AACQSdYkAI1fTiKRSGQ6CQAAAAAAAAAAgIo4rg4AAAAAAAAAAMhqipwAAAAAAAAAAICspsgJAAAAAAAAAADIaoqcAAAAAAAAAACArKbICQAAAAAAAAAAyGqKnAAAAAAAAAAAgKymyAkAAAAAAAAAAMhqeZlOAAAAfmru3P/GypXflovl568XG254aIYyAgDqyvMdAADIJGsSgMZPkRMAAFln1pf3RVHRhHKxgoLtvXAAgEbM8x0AAMgkaxKAxs9xdQAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFbLSSQSiUwnAQAAP7Zy5XdRWrqqXKxJk6aRn79uhjICAOrK8x0AAMgkaxKAxk+REwAAAAAAAAAAkNUcVwcAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGS1vEwnAAAAPzVu/FFRVDShXKygYPvYse9jGcoIAKgrz3cAACCTrEkAGj87OQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFktL9MJAADAT22wwUHRtu325WLNm3fMUDYAQDp4vgMAAJlkTQLQ+OUkEolEppMAAAAAAAAAAACoiOPqAAAAAAAAAACArKbICQAAAAAAAAAAyGqKnAAAAAAAAAAAgKymyAkAAAAAAAAAAMhqipwAAAAAAAAAAICspsgJAAAAAAAAAADIaoqcAAAAAAAAAACArJaX6QQAAOCnZs4aHsuXzykXa968Y2zSeUiGMgIA6srzHQAAyCRrEoDGT5ETAABZ5+uvR0dR0YRysYKC7b1wAIBGzPMdAADIJGsSgMbPcXUAAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWU+QEAAAAAAAAAABkNUVOAAAAAAAAAABAVlPkBAAAAAAAAAAAZDVFTgAAAAAAAAAAQFZT5AQAAAAAAAAAAGQ1RU4AAAAAAAAAAEBWy0kkEolMJwEAAAAAAAAAAFAROzkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZLS/TCQAAwE+tXPldlJauKhdr0qRp5Oevm6GMAIC68nwHAAAyyZoEoPHLSSQSiUwnAQAAPzZu/FFRVDShXKygYPvYse9jGcoIAKgrz3cAACCTrEkAGj/H1QEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFlNkRMAAAAAAAAAAJDVFDkBAAAAAAAAAABZTZETAAAAAAAAAACQ1RQ5AQAAAAAAAAAAWU2REwAAAAAAAAAAkNUUOQEAAAAAAAAAAFktL9MJAADAT3XudHKsXPnzcrH8/PUylA0AkA6e7wAAQCZZkwA0fjmJRCKR6SQAAAAAAAAAAAAq4rg6AAAAAAAAAAAgqylyAgAAAAAAAAAAslpeQw9YXFwcn3/+eXz66acxf/78WLhwYaxatSrWWWedaNeuXXTs2DH69OkTbdq0aejUAAAAAAAAAACALNQgRU7Tpk2LUaNGxahRo2L8+PGxYsWKSq9v0qRJbLnllnHggQfGqaeeGltvvXWdxu/atWvMmDGjXGz48OExePDgOvVLeo0YMSKGDBlSLtalS5coLCzMTEJZrrCwMLp165YUnz59enTt2rXhEwIAAAAAAAAAqCf1elzdq6++GgMGDIju3bvHH/7wh3jjjTeqLHCKiCgtLY1PPvkkrr322ujZs2f069cv3n777fpMFQAAAAAAAAAAyFL1UuRUWFgYBx54YOy9997x7LPP1rm/N954I3bbbbc47bTToqioKA0ZAgAAAAAAAAAAjUXai5zuvPPO6NWrVzz//PNVXtu8efPYaKONolOnTtGqVatKr00kEnH33XdHv379YtasWelKFwAAAAAAAAAAyHJ56eookUjEhRdeGFdddVWF13Tp0iVOOumk2GOPPWLHHXeMdu3alWufN29evPPOO/Hf//43HnzwwVi0aFFSHx999FHsvPPO8dprr8Vmm22WrvQBAMgiU6f+I5YuLSwXa9mya3Tv/ofMJAQA1JnnOwAAkEnWJACNX9qKnM4+++z417/+lbJt0003jWuvvTYOPfTQyMnJqbCPDh06xIABA2LAgAFx9dVXx5///Oe49dZbo7S0tNx1X331VRx66KHx9ttvR0FBQbp+CwAAZIn5C96OoqIJ5WIFBdtH9wzlAwDUnec7AACQSdYkAI1fWo6ru+WWWyoscDr99NNj0qRJ8Ytf/KLSAqefatu2bfzrX/+Kxx9/PJo1a5bU/umnn8bgwYNrmzJZaPDgwZFIJMp9FRYWZjotAAAAAAAAAAAyrM5FTu+9914MHTo0ZdtVV10Vt956azRv3rzW/R922GHx8MMPpyyQGjVqVDz//PO17hsAWPMlEokoWlEU3y39LopWFEUikch0SgAA0OiZZwMAQHqZYwNUrU7H1ZWWlsZvfvObKC4uTmo755xz4vzzz69L9z/4xS9+Eb/73e/i2muvTWr7/e9/H/vtt1/k5uamZSwgfS5/9fIoSZQkxXNzcuOivS7KQEbA2uLjbz6OBz96MN758p0Y/9X4KFpR9ENbQbOC6LtR39i5085xQu8Totf6vTKYKbA2MCci3XxPAZling1kC/Mh0s33FJAp5thANmkMc6KcRB1KQO++++447bTTkuJ9+vSJd999N62FR0uWLInu3bvH119/ndT23//+Nw455JAK7+3atWvMmDGjXGz48OGOu6NRKywsjG7duiXFp0+fHl27dm34hFJodkWzWFmyMimen5sfK/6yIgMZAWu60V+MjmFjh8Ubs96IvCZ5UVJaEolInurkRE7kNsmN4tLi2L3z7nHhHhfGgM0HZCBjKjJu/FFRVDShXKygYPvYse9jGcoIas+ciHTzPUVj5fneeJlnA9nGfIh08z0Fa4dsWpOYYwPZqDHMiWp9XF0ikYhrrrkmKZ6TkxO33HJL2ndWatWqVVxwwQUp20aMGJHWsQCAxmXe0nlxwuMnxMEPHRxvfflWREQUlxanXBRGRCQiEcWlZTtRvvXlW3HQgwfFwMcHxvxl8xssZwAAyHbm2QAAkF7m2AB1U+vj6p577rn4/PPPk+I/+9nPYuedd65TUhUZMmRIXHDBBbFs2bIfYnl5efH1119HcXFx5OXV6fS9GkkkEjFlypT44osv4ssvv4yioqJYvnx55OXlRcuWLWPDDTeMbt26Re/evaNFixZpH/+bb76JcePGxZw5c2LBggWxatWqaNmyZWywwQax6aabxrbbblsv486aNSvee++9+Prrr2PBggVRWloarVq1io022ig222yz6N27dzRt2jTt49bFsmXL4qOPPopPPvkk5s+fH8uWLYu2bdtG+/bto3fv3tGzZ89o0qTW9X4VmjFjRnz22Wcxa9asWLhwYSxbtiyaNGkSLVu2jPXXXz+6dOkS22yzTbRp0ybtYwOsTSZ+PTH6398/5i2dFxERpYnSGt2/+vqHJz0c/5v+v/jfSf+L3hv0TnueAADQmJhnAwBAepljA9RdrauChg8fnjJ++umn1zqZqhQUFMTxxx8fU6ZMiT333DP23HPP2HXXXaN169b1NuaPrVixIh577LH4z3/+Ey+++GIsXLiwynvy8vJizz33jBNPPDGOP/74aN68ea3HnzZtWgwfPjz+/e9/x5QpU6ocd7fddotjjjkmBg0aVKc/o48++iiGDx8ejzzySMyePbvSa5s1axb77LNPHH/88XHcccdFfn5+tccZMWJEDBkypFysS5cuUVhYWOOcS0pK4rHHHouRI0fGCy+8ECtWVLx1WuvWreOwww6L3/zmN7HbbrvVeKwfj/n000/HY489Fs8//3x8++23Vd7TpEmT2GmnneL444+PwYMHR0FBQa3HB1gbTfx6YuwxfI9YsnJJyjOCa6IkURLzls6LfsP7xdghYy0OAQBYa5lnAwBAepljA6RHrbavKSkpiRdeeCEp3rx58xgwoH7PAL377rvj1Vdfjcsvvzz69+/fIAVOxcXFcdNNN0Xnzp3jxBNPjP/85z/VKnBafe9LL70Up5xySmyxxRbxxBNP1Hj8FStWxO9///vYcsst44orrqiywGn1uK+99lqceeaZ0blz57jpppsikUi9zWFFFi5cGIMHD45tt902rrvuuioLnFbn+txzz8WgQYOiW7du8e9//7tGY6bDE088ET169Ijjjjsunn766UoLnCIiFi9eHCNHjozdd989jjjiiPjqq69qPOYDDzwQ3bt3j8MOOyxGjhxZrQKniIjS0tJ4++23Y+jQodGtW7e44447ajw2wNpq3tJ50f/+/mlZFK5WkiiJJSuXxH7372e7XwAA1krm2QAAkF7m2ADpU6sip7feeiu+//77pPhee+0VLVu2rGtOWeWbb76Jn/3sZ3H22WdXu3ClIrNmzYrDDz88rr322mrfs2DBgth/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fY677777xq677hqbbLLJD+N279497d8n9957b1JsvfXWiyuuuKLGfR1xxBGx2WabxZQpU8rFX3jhhdh3331/+PXcuXOTromo/fdHRMRuu+0WX3zxRblYugvCAAAAAAAAAAAaq1oVORUXFyfFfnqcV2O20047xdKlS6OwsDCmTp0a06ZNi3nz5sVWW21V6z432GCDpNjy5csrvH699dZLis2YMSPuv//+OOmkk2o09jPPPFPta1ON+9prr8Wrr74ae+21V7X7adasWbz55pvVvr42iouL47nnnkuKn3TSSdG8ec3PgszJyYmjjjoqHnjggejRo0f06NEjttxyy9hll13KXbfhhhvGsmXLYsaMGTFt2rSYNm1aFBYWliuEqqmafn8AAAAAAAAAAKxNalXk1KpVqygqKioXW7ZsWVoSyhbNmjX7odAlHVIV3aQqFlutb9++kZeXl3TNKaecEtOnT49zzz03WrdunZbcfmzXXXdNiiUSiTjooIPi6quvjl/+8pdZcyzh+PHjU+64dcwxx9S6z2HDhsWwYcOqvC4vLy+6d+8e3bt3r/VYP1bT7w8AAAAAAAAAgLVJk9rclKq4Zk0rckqXadOmxa233hpvvPFGUltpaWmF97Vr1y4OPfTQpHhxcXFccsklsdFGG8XRRx8dw4cPjzlz5qQt3169ekWfPn2S4kuWLIkzzzwzOnbsGIMGDYp///vfMW/evLSNWxsTJkxIiuXm5sa2226bgWxqZ86cOTFixIh4+umnk9oq+/4AAAAAAAAAAFib1Gonp/XXXz+psGbp0qWxePHietldqDGYP39+TJs2LT7//POYNGlSfPTRR/Huu+/GN998U+E9iUSi0j6vvPLKeOaZZ1IeW7Z48eJ47LHH4rHHHouIiJ49e0b//v1j//33j7322itatmxZ69/LP/7xj9h3331T5jdv3ry477774r777osmTZpEnz59fhh3t912a9BdnqZMmZIU69GjR62OqqtvRUVFMW3atJg8eXJ8/PHH8fHHH8e4ceNi1qxZFd5T1fcHAAAAAAAAAMDaolZFTptvvnl88MEHSfEZM2ZEz54965pTVps2bVq8/fbb8dFHH8UXX3wR06ZNi2nTpiUd35cOW265ZQwfPjxOPPHEKCkpqfTaSZMmxaRJk+L666+PZs2axd577x0HH3xwHHbYYdGpU6cajbvPPvvE1VdfHX/84x8rva60tDTGjx8f48ePj2HDhkXr1q2jf//+cfDBB8ehhx4a6667bo3GranZs2cnxdZff/16HbMqc+bMiTfffDMmTpwYn3/+eUybNi2mT5+e8V2vAAAAAAAAAAAas1oXOaUyderUNbLIaenSpXH77bfH/fffn/KItPp03HHHRYcOHWLIkCEpi3pSWbFiRTz//PPx/PPPx9lnnx277bZbDBkyJE4++eRo2rRptfo477zzomPHjnHWWWfFggULqnXP4sWLY9SoUTFq1KjIzc2NfffdN0477bQ46qijIicnp1p91MTixYuTYgUFBWkfpyqrVq2Ke++9N+69995444037MAUEd3bd4+Pf/NxbHf7dlFcWpzUntckLz749QcNnxiwRrj+7etj+AfDoyRReQFwOuTm5MYp250SQ3cZWu9jAWuuyuZE3dt3z0BGNFbm2UB9Ms8GGhNzbNLFHBuoT+bYQGPTGObZtSpy6tOnT8r4uHHj4tBDD61TQtnmwQcfjPPOOy/peL7qat++fRxyyCExefLkePPNN2vVR//+/WPy5Mlx5513xu233x6ffPJJte9NJBLxxhtvxBtvvBF///vf4/rrr4+f//zn1bp34MCBMWDAgLjlllvizjvvjBkzZlR73JKSkhgzZkyMGTMm+vbtGzfddFPssssu1b6/OpYtW5YUq8sxfbXxwgsvxBlnnBGTJ0+u1f2tW7eOAw88MJYuXRrPPPNMmrPLnOZ5zaPn+j2jSU6TlO1NcppEz/XXvIJIoGEM3WVo3DXhrgYZqyRREkN3GepnFlAnlc2Jmudl31HLZC/zbKA+mWcDjYk5Nulijg3UJ3NsoLFpDPPs1BlWYa+99kq5M88777xT54SqUlpaGn369IlTTjkl7r///vjyyy/rbawLL7wwBg4cWO0Cp2bNmkXv3r3j5JNPjhtuuCHef//9+Pbbb2PEiBEV7n5VXS1atIizzz47Jk2aFB9++GFccskl0bdv3xrtkPTFF1/EQQcdFCNGjKj2Pe3atYs///nPMX369HjrrbfivPPOi6233rpGuY8fPz722muvGDNmTI3uq0rr1q2TYkuXLk3rGJW55ZZb4uc//3m1C5zy8vKiR48ecdxxx8U111wTb775ZixYsCAeffTR2HHHHes5W4A1R6/1e8XunXevcKKVLrk5udGvcz+LQgAA1grm2QAAkF7m2ADpV6udnNZdd93o1atXfPTRR+Xir732WixatCjatGmTluRSeffdd2PChAkxYcKEGD58eESUHZ83ePDguPDCC9M2zo033hjDhg2rsL1bt26x++67x3bbbRdbbrll9OjRI7p16xa5ubkpry8pSd82hNtss01ss802cemll8Y333wTL774Yrz00kvx0ksvxbRp0yq9N5FIxGmnnRYbb7xx9O/fv9pj5uTkxC677BK77LJL/P3vf4+ZM2f+MO7LL79c5VF6K1eujMMPPzzefvvt6N27d7XHrUy7du2SYosWLUpL31V56qmn4owzzqiwvWPHjtGvX7/YbrvtYquttooePXrEZpttVuFxgen8/gBYG1zQ74I4+KGD63WMkkRJXLDHBfU6BgAAZBPzbAAASC9zbID0qlWRU0TEEUcckVTktGLFihg9enQcd9xxdU6sIs8++2xSbPLkybFixYq0jfH555/H+eefn7Lt0EMPjSuvvDJ69epVoz5THa2WDuuvv34cf/zxcfzxx0dERGFhYYwZMyaeeuqpGDNmTKxcuTLpnpKSkvjd734XH3/8ca3H3WSTTWLIkCExZMiQiIj47LPP4vnnn4///ve/8corr0RpaWnSPUuXLo0LLrggnn766VqP+2Opipy+/fbbtPRdme+++y5OOeWUlG177LFHXHXVVbHbbrvVqM/6+v4AWFMdtMVBcXyv4+ORSY/Uy3nmuTm5cWzPY2PA5gPS3jcAAGQr82wAAEgvc2yA9Kr13ngnn3xyyvitt95a62SqsmrVqrj77rtTth1zzDFpG2fYsGGxfPnypPgFF1wQTz75ZI0LnCIivvnmm3SkVqWuXbvGr371q3jqqadizpw5cf7556c80m71sXfpsuWWW8bQoUPjxRdfjBkzZlRYBPTcc8/F/Pnz0zJm586dk2Kff/55ysKumrjnnnvixRdfjGnTpkVxcXFS+7/+9a/47rvvkuInnHBCvPrqqzUucIpouO8PgDXJTT+/KTq07BC5Oal3Uayt3Jzc6NCyQ9w04Ka09gsAAI2BeTYAAKSXOTZA+tS6yGnTTTeNvfbaKyn+2muvxZtvvlmnpCryyCOPpDwWbeutt46ePdNzxmhJSUmMGjUqKb7VVlvFFVdcUet+v/jii6RYqt2OKvLll1/WeMwOHTrEVVddVeGxe+PGjav0/tLS0iqPoUulU6dOcffdd8fpp5+e1FZSUhLvv/9+jftMZdddd02KrVq1KiZNmlTrPqdNmxannnpq7LffftG9e/do3rx5dOvWLb766qsfrnn00UeT7uvQoUPccccdKQvKquPzzz9PitXk+wNgbdShZYf430n/i1b5rdK2OMzNyY1W+a3ifyf9L9q3aJ+WPgEAoDExzwYAgPQyxwZIn1oXOUVE/PnPf04ZP/PMM1PugFMXixcvrnC8io6Wq43JkydHUVFRUvyYY46JJk1q98c1adKk+Prrr5PiJSWptyRcuHBhXHHFFXHiiSdG3759o02bNtG5c+eYNm1arcY/++yzo2nTpknxnx7tNmvWrLjkkkvi2GOPjW233TZatWoV3bp1S7mrVXX84Q9/SBlP15FyO+ywQzRv3jwpnqpIrbrGjh1b7tclJSWxdOnS2GijjSKi7Fi5Tz/9NOm+gw8+OFq1alWrMb///vuYMGFCUryi7w8A/k/vDXrH2CFj0/IpmNWfehk7ZGz03qB3mjKkthYv/jwWLny/3NfixclFwQBA4+H53niYZwMAsCbK5JrEHBsgPepU5NS/f//Yfffdk+ITJkyIiy++uC5dJznvvPNixowZSfEtttgiBg4cmLZx5s2blzK+usilNv71r3+ljFdUCNaiRYsYNmxYPPDAA/Hee+/F4sWLIyLihRdeqNX4LVq0iIKCgqR4fn5+uV/n5OTEX//613jkkUdi4sSJsXz58li1alW8+uqrtRp3gw02SBn/6bi1lZ+fH3vuuWdS/L777qt1gdBDDz2UFNtjjz1++Pf58+dHIpFIuqYu3x+33357rFq1Kime7kJBgDVV7w16x6dnfBrH9jw2IqLGC8TV1x/X67j49IxPLQqzxKef/TnGv3d0ua9PP0td8A4ANA6e742LeTYAAGuaTK9JzLEB6q5ORU4RETfccEPKXYKGDRsWN9xwQ127j4iIv//973HbbbelbPvb3/4WubnpO7+0TZs2KeO13UVp7Nixceedd6ZsW7FiRcp4fn5+7Lbbbknxm2++uVZHmM2ePTtl8Vb37t3L/bpTp06x2WabJV130021O8d14sSJKeM/HbcuzjzzzKTYjBkz4tprr61xX+PGjYvnn38+KX7SSSf98O/p/v744osvKjwGsaLvDwCStW/RPh448oEYfcLo2LVT2XGmeU3yIidSHyOaEzmR1yQvIiJ27bRrjD5hdIw8YqRtfQEA4EfMswEAIL3MsQHqJq+uHeywww5x0UUXpdy56ZxzzonJkyfHP//5z2jWrFmN+y4uLo7LLruswiKQIUOGxJFHHlnjfivTuXPnyMnJSdqt54EHHoiLL764RkeSvf/++3HEEUdUuKvQsmXLKrz3hBNOiP/973/lYh999FFcffXVccEFF1Q7h4iygrOfys/PL7dD0Y/H/etf/1ouNnr06HjooYfi+OOPr9G4f/vb35Ji66+/fvTunb6q4oMPPjg233zzmDx5crn4JZdcErvvvnvKYrFUFi1aFKeddlrSf/fOnTvHwQcf/MOvCwoKYp111onvv/++3HWjR4+O2bNnx8Ybb1zt3KdPnx4HHXTQDzt1/VRl3x+NxV/2+EuUJJK//9N13jDATw3YfEAM2HxATPpmUjz40YPxzux3YtyccVG04v+Ooi1oVhA7dtwxdt545zih9wnRc/2eGcwYWBuYE5FuvqeAhmaeDWQb8yHSzfcU0NDMsYFs1BjmRDmJVGdv1VBJSUkceuih8cwzz6Rs79GjR1xxxRVx5JFHRk5O6irUn3r33Xfj7LPPjnfeeSdl+9Zbbx3jxo2Lli1bVtlX165dk466Gz58eAwePDjl9TvvvHO8++67SfHDDz88HnrooSoLtkpKSuLmm2+OCy+8MJYsWVLhdbvuumu8+eabKdtWrFgRm2yySXzzzTfl4jk5OTFs2LA477zzokmTqjfiuuaaa+KPf/xjUnzgwIExcuTIpPjXX38dm2yySaxcubJcPD8/P+688844+eSTqxyzuLg4fv/738eNN96Y1PbnP/+5wqK1ESNGxJAhQ8rFunTpEoWFhZWO99///jd+8YtfJMVbtWoV9913XxxxxBGV3j9nzpw4+uijU/63eOCBB+KEE04oFzv22GPjkUceSbp21113jWeffTbatm1b6XiJRCIeeuihGDp0aHz33XcVXrfRRhvFnDlzKmwvLCyMbt26JcWnT58eXbt2rTQHgLVJIpGIxSsXx8qSlZGfmx+t81tXez5C5owbf1QUFU0oFyso2D527PtYhjICAOrK833NYp4NAEBjk+1rEnNsgKrV+bi6iIjc3Nx47LHHYq+99krZ/vnnn8fRRx8dm222WVx00UXx2muvJe1eU1paGpMmTYqbb7459txzz9h5550rLHDaaqutYsyYMdUqcKqN0047LWV81KhR0adPn7jvvvvi22+/Lde2cuXKmDBhQlx55ZWx2WabxdChQystcIqISgtcmjVrFn//+9+T4olEIv70pz9F375946677kpZAPTVV1/FQw89FP369UtZ4NSyZcsKC4022GCDuPDCC5PiK1eujEGDBsXee+8dDz30UHz11VdJ18yYMSPuvPPO6NOnT8oCpw033DBlPnV16KGHxtlnn50UX7JkSRx55JFxwAEHxOOPP570Pffpp5/GJZdcEr169UpZ4HTQQQclFThFVPz98dZbb0Xv3r3jlltuidmzZ5drKykpiU8//TSuu+662GabbWLgwIGV/vePiJg3b17SzlIA1FxOTk60adYmOrTsEG2atbEoBACANDDPBgCA9DLHBqhaWnZyWm3JkiVx6qmnxsMPP1z1wDk50bZt22jbtm0sWbIk5s+fH6WlpVXe17dv33juueeiQ4cO1c6rpjs5lZaWxk477RTvvfdepf22b98+CgoKYvny5fHdd99FcXFxyuuaN28e559/flx22WXl4vn5+bFw4cJo3rx5hWMcffTR8dhjlVcPt2rVKtq1axc5OTmxcOHCKCoqqvDanJyceOCBByo9eq64uDj23HPPeOuttyodd/XRbSUlJfH9999XWtSVn58fL7zwQuy5554VXlPbnZwiyoqwDjzwwHj55Zcrva5du3bRpk2bmDdvXqX59unTJ1566aUKd2U6/PDD44knnqh0rLZt28Y666wTq1atinnz5sWKFStSXtekSZO45JJL4vLLL0/6Hpo6dWpsuummKe+zkxMAa7Js/1QVAFBznu8AAEAmWZMANH5p2clptVatWsW///3vuPHGG6N169aVXptIJOL777+PGTNmxHfffVdlgVPTpk3jz3/+c4wdO7ZGBU610aRJk3jyySdjk002qfS6+fPnR2FhYcydO7fCAqett9463njjjbjkkkuiTZs25dpWrlwZr7/+eqVjPPDAA3H44YdXes2SJUviyy+/jFmzZlVa4JSfnx/Dhw+vtMApIiIvLy+ee+652G233Sq9rqioKGbOnBmzZ8+utGCooKAgnnrqqUoLnOoqPz8/Ro8eHcccc0yl1y1YsCBmzpxZ5TGCY8aMqfTYuXvvvTe23377SsdauHBhzJgxI+bMmVNhgVOnTp3i+eefj4svvjh69OiR1P7iiy9WOgYAAAAAAAAAwNogrUVOq5111lkxderUOPvss6NZs2Z16is3NzcOO+yweO+99+KKK66oc3/VtfHGG8ebb74Z++67b63ub9OmTVx++eXx/vvvR58+fSInJyf69euXdF1VuzTl5+fHo48+Gtdff31SkVRN7L777jFu3LgYNGhQta4vKCiIF198Mf7yl79Efn5+rcc9+OCDY+LEibH//vvXuo/qatGiRTz88MNxzz33xHrrrVfj+/Pz8+OSSy6J119/vcpCuoKCgnjppZfiuOOOq1WuzZo1i9/97nfx8ccfx3777RcRkbIIrKrvDwAAAAAAAACAtUG9FDlFRKy//vpxww03xDfffBP3339//OIXv4h11123Wvc2bdo0dtppp7joooti+vTpMWrUqOjdu3d9pVqhjTfeOF544YX4z3/+Ez/72c8iNze30utbtGgR++yzT1x33XUxc+bM+Mtf/lKuKOvkk09Ouue+++6Lb775ptJ+c3NzY+jQoTF16tS47rrrom/fvtGkSdX/6dq3bx8nnXRSvPTSSzF27NjYZpttqrznx5o3bx6XX355TJ48OS6//PLYeuutq3X260YbbRSnn356jB8/Pp566qno0qVLjcatqyFDhkRhYWH861//ip133rnKnDfZZJP405/+FIWFhXHppZdW+d95tXXWWSceeuihePHFF+Owww6rshisadOmseuuu8bll18e06dPj2uvvbbcblGpvj/GjBkTEydOrFY+AAAAAAAAAABrqpxEIpFoyAHnzp0bH330UcydOzeKiopi0aJFkUgkol27dtG+ffvo1KlT9OnTJ5o3b96QaVXLkiVLYvz48TF16tRYsGBBLF++PNq1axfrrrtudOrUKfr27VunXY9qYunSpTFx4sSYMmVKLFy4MIqKiqK0tDRat24dnTp1ih49ekTPnj2rVZRUE0VFRfHBBx9EYWFhLFy4MBYtWhQ5OTnRpk2b6Ny5c2y99dax+eabp3XMulqwYEG89957MW3atJg/f36UlJREu3btYv31148+ffrEpptumpZxVqxYEe+//3588cUXsWDBgliyZEm0bds2OnToEB07dowdd9wxWrZsmZaxAGBNN278UVFUNKFcrKBg+9ixr10OAaCx8nwHAAAyyZoEoPFr8CInAACoihcOALDm8XwHAAAyyZoEoPGrt+PqAAAA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IicAABqV5s3Ljmzp1y/imGMizjkn4q9/rf7948dX3Lb++hFN0jhDXrEiPf0UFFTclkhEfPpp8vUjR5YVbVXm17+OWLIkddvSpRFDhlT+KatOnSJuv73yMQAgnWbOjBg6NHVbt24R11zTsPmkwwcfRNx2W+q2Vq0irrqq6j48+wEAgMaoVauIG26IePzxynevbUje6UJ2U+QEAMBaY9q0iHHjKm7v1y+941V2XM7331e/n4oWratNnZoc2223iAsvrPy+wsKyXbBSOf/8sk8UVaRJk4j7749o167yMQAgXRKJsk+aFhUlt63ear+6Oztmk6FDI0pKUrddeGFEx47V68ezHwAAaEwOOCBi4sSIs88uW9NlC+90IbspcgIAYK0xbFjln2IZMCC94623XsVtn3xSvT4WLKj8iL2IiC+/TB2/+OKInXeu/N4bb0wu/HrllYibb678vvPOq/roHABIpxtuiHj55dRtQ4dG7Llnw+aTDv/7X8Rrr6Vu22CDsh0ra8KzHwAAyHZ77BHx6qsRzz1XtmN/tvFOF7KbIicAANYKr74acc89Fbc3bx5x8MHpHXPbbStumzEjYvLkqvt4+eWynSsqU9E58Xl5ZVscV7arRUlJxGmnRRQXl/168eKIU06pfMwddoi4/PLKcwKAdPr004gLLkjd1qNHxN/+1rD5pMtll1Xc9qc/1fy4Bs9+AAAgG7VrF/Hb30a8917ZBz2y+UMq3ulCdlPkBADAGm/atIhjjql8F6fBgyPWXTe94+67b+Xt//xn5e2JRMS111Y9zoIFFbdttlnZzheVmTgx4u9/L/v3P/whYvr0iq9t2TLigQcimjatOi8ASIfi4oiTTopYvjy5LTc34t57I1q0aPi86urFFyPGjk3d1rFjxOmn165fz34AACDbXHdd2S5DffpkOpOqeacL2U2REwAAa7Svvoro3z/im28qvqZVq7JtgNNtt90q3974jjsi7ruv4vbzz494442qx0n1P31/7JRTIo44ovJrLr+87EXD7bdXft1115XtmAEADeXyy8s+7ZvKeedVvY1/trriiorbzj67bJfJ2vLsBwAAqB3vdCG7KXICAGCN9dVXEfvsU7aTU2WuvDJio43SP35+fsS551bcnkiU7SA1eHDEO+9ELF0asWhR2c4OBxwQcc011Rtn5cqqr7nzzrJdISqyfHnEmWdW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oUOH6NSpU/To0SP69u0b/fv3j/bt29chawAAAAAAAACAxk2RE/WmtLQ0Vq5cGStXroyioqKYM2dOTJw4MZ555pmIiMjLy4uDDjoozj///Nh1110znG3mlJSURElJSaxYsSIWLlwYM2fOjAkTJsRTTz0VEWVFUP37948zzzwzDjrooAxnCwAAAAAAAADQ8JpkOgHWXsXFxfHkk0/GbrvtFqecckosXbo00yllpZKSknjuuefi4IMPjt133z0+/PDDTKcEAAAAAAAAANCgFDmRFYYPHx777LNPFBUVZTqVrPbmm2/GzjvvHLfffnumUwEAAAAAAAAAaDCKnMga7777bhx77LGRSCQynUpWW7FiRZx++ukxbNiwTKcCAAAAAAAAANAgFDlRIy+//HIkEolqfZWWlsaqVauiqKgovvzyy3jnnXfilltuiV133bXC/p977rmUuxS98sor1R73x1+DBg1KOU5t+kokEtG1a9dq/1kNGjSoWn2uWLEiFi1aFLNnz44PPvgg/vOf/8Rll10W/fr1i5ycnAr7v/DCC+Omm26qdj4AAAAAAAAAAI2VIifqTU5OTuTl5UWbNm1i4403jp122il+85vfxJtvvhkjR46MFi1apLzv4osvjqVLlzZwtpmTn58frVu3jo4dO8a2224bhx9+eFx88cXx+uuvx4QJE+KAAw6o8N5zzz03Xn/99QbMFgAAAAAAAACg4eVlOgHWTgMHDox27drFIYccEqWlpeXavv3223jwwQfjtNNOy1B22WPbbbeNZ599Nv7xj3/E+eefn3SUX3FxcZx88snx6aefRvPmzTOUJQCk37jxR0VR0YRysYKC7WPHvo9lKCMAoK6qer4nEhGLFkWsXBmRnx/Rpk1EJRscAwAA1Ih3jrVjrQZkE0VOZMyAAQPiV7/6Vdx2221JbY8++qgip/8vJycnzjvvvGjevHmcffbZSe2FhYVx9dVXxyWXXJKB7IDG6PLLI0pKkuO5uREXXdTw+cBqH38c8eCDEe+8E3HkURE9epRv/+STiFH/iTjhhIhevTKTI6zmZynUjr87/NSypREXXlj2/B8/PqKo6P/aCgoi+vaN2Hlnz/+1kZ8XAEBDMe+AZD9+V2utBg3Lc6lyOYmfbg0DETFixIgYMmRIUvzll1+OvffeO23jTJs2LTbbbLOkHYpatGgRixcvjiZN6nai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pUoVwcXFRbC0tBTy8vJUzktERET6IyAgQOkxT1H+yTtelNcvVfz9999yt2dkZCSMHj1aOH78uJCVlfWmTUFBgXDr1i3h22+/FWxtbeUel589e1ar97tZs2YK349Zs2ZplLd169Zyc44YMUI4d+5codcrCIKQmJgoHDlyRBg7dqxgbm6u0r/XggULlPZl06ZNkm2/++47ITMz88162dnZku2rVKkiauvv7690u/v375fbb2tra2HmzJlCUFCQkJ+fX6gPJ06cEPz8/OSeR5QrV04ICQlRun19ObckIiIizWl6jbm4RERECFWrVlV6zGZraytUrlxZsLS0VLpuz549RceJ8ki1l3fNUiaTCS4uLkKFChUEmUymsA8jRoxQ69riw4cPlV4vtrKyEqpUqSK4urrK3f7gwYOFn376Se1/b02O0z7//HOl/xY2NjZC5cqVBQ8PD6X/dp988ong4eEhip8+fVrp+/fJJ5/Izevo6ChUqVJFsLa2FiZOnChqq815WnJysuDj46P0fShXrpxQuXJlwdraWum6zZs3F5KSklTavqbnGfLo828FUUngk5yIiIjKGGNjY8k7u4FXdzNERUUhOjoaeXl5Cu8+HzduHHbv3i159/rbXrx4gYiICIV3YhsZGWHx4sVYvHixai+iiPTs2ROHDx9W+LjknJwcREZGIi4uTvJJVwBgbm6OzZs3y52m7l1z587F6tWr5T7xCQAEQUBCQgKePXumcPo4MzMz/P7775g8ebJK25YyadIkfPbZZ5LLUlJSEBkZqfDuGl9fX5w5cwbOzs4qb9PHxwdNmjSRXJaVlYWnT58iLi4OmZmZePjwocp5iYiIiIrSgAEDMGfOHMllBQUF+P3339GtWzdYWlrC2dkZlStXhrW1NerXr4+FCxciNTVV1E4mk2HlypXw9fXVqm/KpqIbM2aMRnmXL18ueXc48OppRu3atYONjQ3c3d1RtWpVlC9fHuXLl0fPnj3h7+9f6AmlAODt7Y0RI0aIct2/f19pXxo2bCgZX7BgARwcHODp6YkKFSrA3t5e6bQU6ujTp4/kNBgA8PLlSyxZsgTNmjWDubk53N3d4eLiAgsLC3Tt2hVbt26VPI8oV64c9uzZg8aNG+usn0RERESaqlSpEi5evKj0iUepqamIiIhQONWwTCbDtGnTcODAAZibm2vcpw0bNqB169ai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ERERURmmapETEREREamnOArW9cmzZ88QHByM58+fIzk5GUZGRihfvjycnZ1Rp04d1KhRo8j7oA+F8gUFBbhz5w7u3buH6OhopKenw8TEBPb29qhWrRoaNWqk8ROwiIiIiMoKVYuciIio7DGcRygQEREREREREREZCJlMhtq1a6N27dol3ZViUalSJVSqVKlE++Dh4YGBAweWaB+MjIxQv359jaewJiIiIiIiIiL5FE86SUREREREREREREREREREREREVMJY5ERERERERERERERERERERERERHqNRU5ERERERERERERERERERERERKTXWORERERERERERERERERERERERER6jUVORERERERERERERERERERERESk11jkREREREREREREREREREREREREeo1FTkREREREREREREREREREREREpNdY5ERERERERERERERERERERERERHqNRU5ERERERERERERERERERERERKTXZIIgCCXdCSIiIiIiIiIiIiIiIiIiIiIiInn4JCciIiIiIiIiIiIiIiIiIiIiItJrLHIiIiIiIiIiIiIiIiIiIiIiIiK9xiInIiIiIiIiIiIiIiIiIiIiIiLSayxyIiIiIiIiIiIiIiIiIiIiIiIivcYiJyIiIiIiIiIiIiIiIiIiIiIi0mssciIiIiIiIiIiIiIiIiIiIiIiIr3GIiciIiIiIiIiIiIiIiIiIiIiItJrLHIiIiIiIiIiIiIiIiIiIiIiIiK9xiInIiIiIiIiIiIiIiIiIiIiIiLSa/8PQx0okbmaOowAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.rcParams[\"font.sans-serif\"] = \"Arial\"\n", + "\n", + "plt.rc('font', size=43) \n", + "plt.rc('axes', titlesize=43) \n", + "plt.rc('axes', labelsize=43) \n", + "plt.rc('xtick', labelsize=43) \n", + "plt.rc('ytick', labelsize=43) \n", + "plt.rc('figure', titlesize=43)\n", + "\n", + "covariates = ['Intercept', 'Elevation', 'Population']\n", + "pd.set_option(\"display.precision\", 8)\n", + "\n", + "fig = plt.figure(figsize=(32, 6.5))\n", + "colors = ['blue', 'green', 'red']\n", + "for i, covariate in enumerate(covariates):\n", + " \n", + " data_dict = {}\n", + " classical_ci_width = classical_ci[1][i] - classical_ci[0][i]\n", + " ptd_ci_width = ptd_ci[1][i] - ptd_ci[0][i]\n", + " data_dict['category'] = ['PTD','Classical','Naive']\n", + " data_dict['lower'] = [ptd_ci[0][i], classical_ci[0][i], naive_ci[0][i]]\n", + " data_dict['upper'] = [ptd_ci[1][i], classical_ci[1][i], naive_ci[1][i]]\n", + " data_dict['pointestimate'] = [ptd_pointestimate[i], classical_pointestimate[i], naive_pointestimate[i]]\n", + " dataset = pd.DataFrame(data_dict)\n", + " \n", + " subplot = fig.add_subplot(141+i)\n", + " subplot.spines['top'].set_visible(False)\n", + " subplot.spines['right'].set_visible(False)\n", + " subplot.spines['left'].set_visible(False)\n", + " subplot.spines['bottom'].set_linewidth(2)\n", + " \n", + " # show true coefficient (yellow dotted line)\n", + " plt.axvline(true_coeff[i], color='tab:olive', linestyle='--', lw=4, label='True \\ncoefficient')\n", + " \n", + " # plot confidence intervals\n", + " for lower,upper,pointestimate,y in zip(dataset['lower'],dataset['upper'],dataset['pointestimate'],range(len(dataset))):\n", + " subplot.scatter([pointestimate], [y], color=colors[y], s=400)\n", + " subplot.scatter([lower, upper], [y, y], color=colors[y], marker='|', s=400, lw=5)\n", + " subplot.plot((lower,upper),(y,y),color=colors[y], lw=6)\n", + " if y == 0:\n", + " # compute PTD effective sample size improvement over classical method\n", + " ptd_effective_n_improvement = np.round((classical_ci_width/ptd_ci_width)**2, 1)\n", + " subplot.text((lower+upper)/2, 0.2, f'{ptd_effective_n_improvement}x', fontsize = 40, c='blue', weight='bold')\n", + " \n", + " subplot.tick_params(axis=u'both', which=u'both',length=0)\n", + " if i == 0:\n", + " subplot.set_yticks(range(len(dataset)),list(dataset['category']))\n", + " else:\n", + " subplot.set_yticks([])\n", + " subplot.set_xlabel(f'{covariate}')\n", + " subplot.set_ylim(-0.2)\n", + " \n", + "plt.tight_layout() \n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "5c63b651", + "metadata": {}, + "source": [ + "# Example 2: Logistic regression coefficient estimation" + ] + }, + { + "cell_type": "markdown", + "id": "7834c2be", + "metadata": {}, + "source": [ + "In this example, we estimate logistic regression coefficients relating tree cover to two covariates: elevation and population. \n", + "\n", + "This example is very similar to the previous example, except we use a binarized version of the tree cover response variable for the logistic regression. Tree cover values greater than 10% are mapped to 1, while tree cover values less than or equal to 10% are mapped to 0. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "6555b9b7", + "metadata": {}, + "outputs": [], + "source": [ + "truth_Y = np.array(data['truth_tree'] > 10, dtype=float).reshape(-1, 1)\n", + "preds_Y = np.array(data['preds_tree'] > 10, dtype=float).reshape(-1, 1)\n", + "\n", + "truth_X = np.array(data[['truth_elevation', 'truth_population']])\n", + "preds_X = np.array(data[['truth_elevation', 'preds_population']])" + ] + }, + { + "cell_type": "markdown", + "id": "c9424080", + "metadata": {}, + "source": [ + "We randomly sample 1000 points (out of the 67968 total points) to use as the calibration set. The remaining 66968 points are the unlabeled set." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "50740896", + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(seed=100)\n", + "calibration_indices = np.random.choice(np.arange(0, len(data)), size=1000, replace=False)\n", + "X = statsmodels.tools.add_constant(truth_X[calibration_indices])\n", + "Xhat = statsmodels.tools.add_constant(preds_X[calibration_indices])\n", + "Xhat_unlabeled = statsmodels.tools.add_constant(np.delete(preds_X, calibration_indices, axis=0)) # all predicted datapoints except calibration indices\n", + "Y = truth_Y[calibration_indices]\n", + "Yhat = preds_Y[calibration_indices]\n", + "Yhat_unlabeled = np.delete(preds_Y, calibration_indices, axis=0) # all predicted datapoints except calibration indices" + ] + }, + { + "cell_type": "markdown", + "id": "58cdcdc9", + "metadata": {}, + "source": [ + "We use the following functions to compute point estimates and confidence intervals for the logistic regression coefficients.\n", + "\n", + "We use **algorithm_logistic_regression** to compute the \"true coefficient\" using the full ground truth covariate and response datasets.\n", + "\n", + "We use **ptd_logistic_regression** to compute \"PTD\" point estimates and 95% confidence intervals using the calibration dataset and unlabeled dataset.\n", + "\n", + "We use **classical_logistic_regression_ci** to compute \"classical\" 95% confidence intervals using only the ground truth covariate and response values in the calibration set. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. \n", + "\n", + "We also use **classical_logistic_regression_ci** to compute \"naive\" 95% confidence intervals using only the full predicted covariate and response datasets. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "33ad89da", + "metadata": {}, + "outputs": [], + "source": [ + "true_coeff = ptd.algorithm_logistic_regression(data=[statsmodels.tools.add_constant(truth_X), truth_Y], w=None)\n", + "\n", + "tuning_matrix, ptd_pointestimate, ptd_ci = ptd.ptd_logistic_regression(X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, \n", + " B=2000, alpha=0.05, tuning_method='optimal')\n", + "\n", + "classical_ci = classical_logistic_regression_ci(X, Y, alpha=0.05)\n", + "classical_pointestimate = (classical_ci[0]+classical_ci[1])/2\n", + "\n", + "naive_ci = classical_logistic_regression_ci(statsmodels.tools.add_constant(preds_X), preds_Y, alpha=0.05)\n", + "naive_pointestimate = (naive_ci[0]+naive_ci[1])/2" + ] + }, + { + "cell_type": "markdown", + "id": "6d0079f7", + "metadata": {}, + "source": [ + "We visualize the coefficient point estimates and confidence intervals for PTD, classical, and naive estimators.\n", + "\n", + "The yellow dotted line is the \"true coefficient.\" The effective sample size improvement of PTD compared to the classical confidence interval is shown in blue.\n", + "\n", + "We see that the naive estimates are biased relative to the true coefficient, while PTD has statistically valid confidence intervals (which, in the figure, contain the true coefficient). The PTD confidence intervals for intercept and elevation are also narrower than the classical confidence intervals." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e6b7408f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAACTUAAAIhCAYAAACVc8xRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADnWElEQVR4nOzdd3iV5fk48DskhB0EFBdTtKiAA3HvKmpRqVtxAUqtto5Wax2t66sWrdZZV62CA23VOqo4sO4tKMpwsYIo4gAkbEhyfn/kh208JyfrJDkJn8915VLu53mf5zaG5D5v7vM+OYlEIhEAAAAAAAAAAABZollDJwAAAAAAAAAAAPC/NDUBAAAAAAAAAABZRVMTAAAAAAAAAACQVTQ1AQAAAAAAAAAAWUVTEwAAAAAAAAAAkFU0NQEAAAAAAAAAAFlFUxMAAAAAAAAAAJBVNDUBAAAAAAAAAABZRVMTAAAAAAAAAACQVTQ1AQAAAAAAAAAAWUVTUxa69NJLIycnJ+ljxIgRdbLfyy+/nHK/6dOn18l+mbTXXnsl5X3ppZc2dFoAAAAAAAAAANSCpqZG5K677ornnnuuodMAAAAAAAAAAIA6pampkfnFL34RRUVFDZ0GAAAAAAAAAADUmbyGToDqmTNnTpx99tnx97//vaFTAQCokvETjoiioonlYgUF28b2Ax5poIwAABoHdRQAQPWonwCgafGkpkborrvuinHjxjV0GgAAAAAAAAAAUCc0NTVSI0aMcAwdkD0SiYiioojvviv7ZyLR0BkBAAAAkGnuAQEAQOaoryvl+LlGas6cOXHOOefEnXfe2dCpNKiXX365oVOA+nP55RElJcnx3NyIiy6q/3ymTIl44IGId96JmDCh7AftGgUFEQMGROy4Y8Sxx0b07Vv/+WXb5wsAAACgLtT1PZCGuAfkvg4AAHWpIevNbPodayOou3MSCa1e2ebSSy+Nyy67rEpzx40bFwMHDqzVfi+//HLsvffeSfFp06bFpptuWqu1gQxq0SJi1arkeH5+xMqV9ZfH2LERI0dGvPFGRF5e2Q+6VD9KcnLKfuAVF0fsumvEhRdGDBpUf3lmy+cLiPETjoiioonlYgUF28b2Ax5poIwAABoHdRRQJXV1D6Qh7wG5rwPUkPoJgCppiHozG3/H2gjqbsfPNXIjRoyIxYsXN3QawNpg/vyyjuCDDop4662yWHFxxY9BTCTKxiPK5h94YMRxx0UsWFA/+QIAAABQfe4BAQBA5qiva0VTUyPRqVOn6NmzZ1L8888/j3POOacBMgLWKpMmRWy5ZcRDD5X9ubS0etevmf/Pf0ZssUXE5MmZzQ8AAACA2nMPCAAAMkd9XWuamhqJli1bxt133x05OTlJY3feeWc8//zzDZAVsFaYNCli993LuohTnalaHSUlZevsttta+UMXAAAAIGu5BwQAAJmjvs6IvIZOgKrba6+94rTTTotbb701aWzEiBExZcqUaNeuXQNkltr8+fNj8uTJMWfOnPjuu+9i+fLlUVpaGi1btoxOnTpF165do1+/frH++us3dKpZY8aMGT98zhYvXhw5OTnRvn376N69e2y77bax0UYbNXSKrG3mz48YODBi6dLa/7Bdo6SkbL199434+OOIjh0zsy4AAAAANeMeEAAAZI76OmM0NTUyV199dTzzzDMxa9ascvHPP/88fve738Udd9zRQJmVGT9+fIwZMybGjh0b06dPr9I1m222WRx++OHxy1/+Mnr06FGt/fbaa6945ZVXysUuueSSuPTSS8vFfve738Vf/vKXcrH27dvHvHnzomXLltXa83+VlJREly5dYt68eeXiV111VZx33nlVWmPatGlx6623xsMPPxxffvll2rmbb755DBkyJE477bRYb731apw3VNkZZ2Sme/jH1nQTn3FGxJgxmV0bAAAAgOpxDwgAADJHfZ0xjp9rZNq2bRt33XVXymPo/va3v8ULL7zQAFlFvPPOO7HrrrvGDjvsEDfeeGOVG5oiypp6rrrqqvjJT34Sv/3tb2PFihUZz++kk05Kii1atCiefPLJWq37/PPPJzU05ebmxgknnFDptQsWLIhTTjklNt9887jhhhsqbWiKiPjkk0/ikksuiR49esQVV1wRq1evrnHuUKmxYyMefDDzP2zXKCmJeOCBiKefrpv1AQAAAKice0AAAJA56uuM0tTUCO29995x6qmnphw7+eSTY/HixfWaz5/+9KfYZZdd4s0336zVOqtXr44bbrghfvrTn8bSpUszlF2ZLbfcMnbYYYek+P3331+rde+7776k2P7771/pMXHjx4+PbbbZJu68884oLS2t9r7Lli2Liy66KPbYY4+kpirImJEjI5rV8Y+J3NyyfQAAAABoGO4BAQBA5qivM8rxc43Un//853jmmWeisLCwXHz27Nlx7rnnxu23314veVx22WVJR739WOvWraN9+/aRn58fRUVF8f3330cikahw/ltvvRUXX3xx0nFxtTV8+PB49913y8WeeeaZWLBgQXSswXmTS5YsiccffzzlPum8+uqrceCBB8aSJUsqnNO8efPo1KlTRER8++23UVJBF+fbb78du+22W7z66quVNlLRiK1YETFjRkRFDXClpRFTp2Z2z2nTIt54I7NrplJSEvH66xFPPBGx6aaZXTvd52vFiohaHD0JAAAA0OAycc8oW+8Bua8DAEBdqOvfu2ZrfV2RRlB3a2pqpNYcQ7fvvvsmNQj97W9/iyOPPDL22WefOs3h1Vdfjcsuuyzl2N577x0jRoyIPffcMzbeeONyY4sXL473338//vnPf8a9996b8qlMN954Y5x++unRs2fPjOU7ZMiQOPvss2P58uU/xFavXh0PPfRQhU++Sudf//pXLFu2rFysY8eOMXjw4Aqv+eKLL+Kwww5L2dDUoUOH+NWvfhWHHHJI9O/fP5r9/+7N0tLSGD9+fDz22GNxyy23JF07Y8aMOProo+Oll16KvDx/pZukGTMi+vateLy4OP14Y3DIIfW3V3Fx2ee0T5/62xMAAAAg0xrjPaPa3gNyXwcAgNpojDV0OnX1O9YsqrsdP9eI/fSnP41f/vKXSfFEIhEjRoxI+ySgTDj77LOTGqqaNWsWt99+e7z44otx7LHHJjU0RUS0a9cu9txzz7j11ltj8uTJsd122yXNKSkpiYceeiij+bZv3z4OPfTQpHhNj6BLdfTcscceG/n5+SnnFxcXx5AhQ2L+/PlJY0cddVTMmjUrrrjiihgwYMAPDU0RZZ/THXfcMa666qr47LPP4oADDki6/vXXX4/zzz+/Rv8dAAAAAAAAAADZRlNTI3fNNddE9+7dk+KFhYVx7rnn1tm+r776arz33ntJ8d///vcpG60q0rNnzxg7dmy0a9cuaeyZZ56pVY6ppDoa7s0334xZs2ZVa50vv/wyXnrppSqtv8add94Zr7/+elL87LPPjn/+85/Rvn37SvfdcMMN48knn4whQ4Ykjd14440xe/bsStcAAAAAAAAAAMh2mpoauTXH0KVyxx13xIsvvlgn+z744INJsfXWWy8uuuiiaq+1/vrrp2zSKSwsrElqae2zzz5J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o9c8uo6mp5pPVatzffpEXHll2b8nEhFLlkSsWhWRnx/Rtm3F3cX1Jds+XwAAAAB1oa7vgTTEPSD3dQAAqEsNWW9m0+9YG0Hd7fi5tcz111+f8hi66ujWrVtSbN68efHEE09Ua53ly5fHUUcdFR988EHaOfVl+PDh5f68cuXK+PWvf13pvKpo3759/OIXv0iKr1y5Mo444ogoLCys8lolJSVx4oknxty5c5PGhg0bFl27dq12flBrOTkR7dpFdOpU9s+GbmgCAAAAIPPcAwIAgMxRX1dKU9Napn379vG3v/2tVmvsv//+KeO//OUvY+rUqVVaY/z48bHTTjvFU089lXbe4sWLq51fTR133HHRokWLcrHx48eX+3Pr1q3jqKOOqtH6F1xwQcqGo1mzZsXOO+8cL7/8cqVrfP/993HEEUfEv//976SxNm3axMUXX1yj3AAAAAAAAAAAsommprXQz372sxg2bFiNrz/yyCOjffv2SfFvvvkmtt9++/jDH/4QH330USQSiXLjX3zxRdx7771xwAEHxA477BCTJk2qdK/vvvuuxnlWV8eOHWPw4MFp5xx22GFRUFBQo/U7deoUDz30UDRv3jxpbN68ebH33nvHIYccEo8//ngsXbq03Pj06dPjqquuii222CIef/zxlOvfcccdKZ+iBQAAAAAAAADQ2GhqWktdf/31sfHGG9fo2nXXXTcuu+yylGPLly+PP/3pT9GnT59o27ZtdO3aNbp16xbt2rWLrl27xtChQ+O5555Luu6II46I7bbbLin+ySef1CjHmqrsaLmaHD33v3baaae4/fbbo1mz1H/1nnjiiTj00EOjbdu20bFjx+jevXsUFBTEZpttFhdccEHMmzcv5XXnnXdeHHfccbXKDQAAAAAAAAAgW2hqWkuts846tTqG7qyzzoqTTz457Zxly5bFF198EXPmzIklS5aknNOqVau4/vrr4+GHH46ddtopafyFF16ocY41sf/++1fY7NW9e/fYe++9a73HSSedFA8//HClT3xauHBhfP7552mP4GvWrFlcddVVcdVVV9U6LwAAAAAAAACAbKGpaS02aNCgGDp0aI2v/9vf/hZXXnll5OXl1ej6wYMHx4cffhi/+c1vIiJijz32SJrzzDPPJB3FVpeaNWsWJ554YsqxYcOGRU5OTkb2Oeyww+LDDz+MQw45pMZr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PubOnRsLFy6M1atXR+vWrWP99dePTTbZJLbeeus62XfOnDnx3nvvxddffx0LFy6M0tLSaNOmTWy44Yax6aabRr9+/aJ58+YZ37c2li9fHpMnT46PPvooFixYEMuXL4/27dtHx44do1+/ftGnT59o1qzG/X0Vmj17dnzyyScxZ86cWLRoUSxfvjyaNWsWrVu3js6dO0f37t1jq622inbt2mV8b4D6NunrSTHwvoExf9n8iIgoTZRW6/o18/859Z/xn1n/if+c8J/ot36/jOcJAADUHa8LAACyjxoNgMasxl1Ao0aNShk/9dRTa5xMZQoKCmLIkCExffr02GOPPWKPPfaInXfeOdq2bVtne/6vlStXxiOPPBKPPvpovPDCC7Fo0aJKr8nLy4s99tgjjj/++BgyZEi0bNmyxvvPnDkzRo0aFf/4xz9i+vTple67yy67xFFHHRVDhw6t1edo8uTJMWrUqHjooYfiyy+/TDu3RYsWsffee8eQIUPimGOOifz8/CrvM3r06Bg+fHi5WPfu3aOwsLDaOZeUlMQjjzwS999/fzz//POxcmXFjxJs27ZtHHLIIXHaaafFLrvsUu29/nfPp556Kh555JF47rnn4ttvv630mmbNmsUOO+wQQ4YMiWHDhkVBQUGN9wdoKJO+nhS7j9o9lq5amvKc6uooSZTE/GXzY7dRu8Xrw1/34hgAABoJrwsAALKPGg2Axq5Gj6cpKSmJ559/PinesmXLGDSobs9Tveuuu+KVV16Jyy+/PAYOHFgvDU3FxcVx8803R9euXeP444+PRx99tEoNTWuuffHFF+Okk06Kn/zkJ/H4449Xe/+VK1fGOeecE5tvvnlcccUVlTY0rdn31VdfjdNPPz26du0aN998cyQSqR8hWZFFixbFsGHDYuutt47rr7++0oamNbk+++yzMXTo0OjZs2f84x//qNaemfD4449H796945hjjomnnnoqbUNTRMSSJUvi/vvvj1133TUOO+yw+Oqrr6q955gxY6JXr15xyCGHxP3331+lhqaIiNLS0nj77bfjrLPOip49e8bf/va3au8N0JDmL5sfA+8bmJEXxWuUJEpi6aqlse99+3qcMQAANAJeFwAAZB81GgBNQY2amt566634/vvvk+J77rlntG7durY5ZZVvvvkmfvrTn8aZZ55Z5UaVisyZMycOPfTQuO6666p8zcKFC2O//faL6667LlavXl2jfb///vs488wz44gjjoji4uIq57rrrrvGPffcU+1mqDXmzp0bQ4YMibPOOqtG11fXqlWr4oQTTohDDz00ZsyYUaM1Hnvssdhmm23iww8/rNL8pUuXxuGHHx7HH398zJ49u0Z7rrFgwYL45S9/WW+fL4BMOOOZM2L+svkZe1G8xpp3/Zzx9BkZXRcAAMg8rwsAALKPGg2ApqBGTU3vvPNOyviuu+5aq2SyzeLFi2PgwIHx2muvpZ3XsWPH6NatW2y00UZVaur6/e9/HxMnTqxSDscdd1y8+uqrFY63aNEiNthgg+jRo0d06tQp7VqPPvpo/Pa3v610z1WrVsXBBx8cU6dOrXBO69atY8MNN4zu3bvHOuusk3a9m266Kf7yl79Uum9trFixIg488MC4//77085r3bp1dOvWLW3O33zzTey9997xySefpF2ruLg4DjnkkHj00UfTzltnnXWiS5cu0aVLl2jXrl3auRFln68nn3yy0nkADW3sZ2PjwSkPZvxF8RoliZJ4YMoD8fS0p+tkfQAAoPa8LgAAyD5qNACaiho1NX388ccp4wMGDKhVMtnmN7/5TUyaNCkp3rJlyzjjjDPi1VdfjcWLF8f8+fNj9uzZ8eWXX8bSpUtj9uzZMWbMmNh7771TrltSUhLnnHNOpfvfdddd8cwzzyTFu3TpEjfccEN89tlnsWzZsvjqq69i1qxZ8d1338WCBQvikUceqbDB7JZbbqm0oeryyy9P+aSiLbbYIu68886YPXt2LFmyJObOnRuFhYWxcOHC+Prrr2P06NHRt2/flGtedNFFMW/evEr/m2vq9NNPj//85z8px7baaqu44447yv3/WbhwYcyaNSuuvPLK6NChQ9I1CxcujOOOOy7t07FGjhyZcs/c3NwYOnRoPPfcc7Fw4cJYuHBhzJkzJ+bMmRNFRUUxb968eOyxx+KQQw6JnJyclGv/5je/qfETsgDqy8jXR0aznBqVElWWm5MbI18bWad7AAAANed1AQBA9lGjAdBU5NXkooqamnr37l2rZLLJpEmTYtSoUUnxnj17xrPPPhs/+clPKry2W7duceyxx8axxx4bDz30UAwdOjRWrFhRbs4rr7wSX331VWy44YYVrnPTTTclxXbbbbcYO3ZsFBQUpLymQ4cOcfjhh8dhhx0Wl156afzf//1fufFEIhE33nhjjB49OuX1q1atittvvz0pfsQRR8QDDzwQzZs3T3ld586dY+jQoXHsscfGqaeeGnfffXe58eXLl8ftt98el156acrra+PJJ5+Mu+66KynerFmzuPbaa+PMM8+M3NzcpPEePXrEhRdeGEOHDo2DDz44qdnr/fffj9tuuy3OPPPMpGu//vrruOqqq5LinTp1iqeeeip22mmnCvNdf/3145BDDolDDjkkXnrppTjyyCNj/vz55ebMnDkz3n333dhxxx0rXCebrSheETMWzIjSRGnK8dJEaUz9puIngQHZb9qCafHGnDfqfJ+SREm8Puf1eOKTJ2LTjpvW+X7UjRmLi2Lp0lXlYm1yiqK1nwVrlXR1wYriFdEyr2U9ZwQ0FV5/0JRlex3ldQE0DWp1qJhas/HJ9vqpPqjRWNupbaBpyUnU4HEwPXv2jMLCwvIL5eTEihUrIj8/P1O5ZUyPHj1i9uzZ5WKjRo2KYcOGVXjNSSedlNTUlJ+fH+PHj4+tttqqWvvfeuut8etf/zopni6HadOmJTVO5efnx6xZs2KjjTaq8t5HHXVUPPzww+Vi66yzTnz77beRl5fc0/b888/HfvvtVy623nrrRWFhYZWO1osoexLVbrvtFm+//Xa5eN++fWPy5MkVXjd69OgYPnx4uVj37t2TvtZ+vFe/fv2SGu2aNWsWDz30UBx++OFVynn+/Pmx9dZbx5dfflku3qNHj5g+fXpSU9T//d//xSWXXJK0zrPPPhv7779/lfZc4+mnn44DDzwwKX7JJZekbQIrLCyMnj17JsVnzZoVPXr0qFYOmTb1m6nR97bUT+0CAPixKadNiT6d+zR0GkAj5fUHANQdtTprO7UmQNOitoHGp0bPHVyyZElSrH379lnZ0FQTq1evjkceeSQpPmLEiGo3NK25rl27dknxdM06M2bMSIpttdVW1WpoioiUTTHff/99TJkypcr77rnnnlVuaIooO37toosuSopPnTo1Fi5cWOV1quLpp59O+eSw3/72t1VuaIooe8LSjTfemBQvLCyMl19+OSn+4IMPJsUGDRpU7YamNdelevJXuq8PAAAAAAAAAICmrEbHzy1evDgp1qpVq1onky0mTpwYS5cuTYqffvrpNVovPz8/tttuu6TmmHQNPgsWLEiKffvtt9Xee8stt4yf/exn0bp16+jVq1dssskmP3zU5b777LNP7LzzztGtW7cf9u3Vq1fGv07uueeepNh6660XV1xxRbXXOuyww2LTTTeN6dOnl4s///zzsc8++/zw53nz5iXNiaj510dExC677BKfffZZuVimG8AAAAAAAAAAABqLGjU1FRcXJ8V+fDxXY7bDDjvEsmXLorCwMGbMmBEzZ86M+fPnxxZbbFHjNddff/2k2IoVKyqcv9566yXFZs+eHffdd1+ccMIJ1dr76aefrvLcVPu++uqr8corr8See+5Z5XVatGgRb775ZpXn10RxcXE8++yzSfETTjghWras/lmoOTk5ccQRR8SYMWOid+/e0bt379h8881jp512Kjdvgw02iOXLl8fs2bNj5syZMXPmzCgsLCzX+FRd1f36AAAAAAAAAABoymrU1NSmTZsoKioqF1u+fHlGEsoWLVq0+KGxJRNSNdmkag5bY8CAAZGXl5c056STTopZs2bF2WefHW3bts1Ibv9r5513ToolEok48MAD4+qrr45f/OIXWXPM4IQJE1I+Ueuoo46q8ZojR46MkSNHVjovLy8vevXqFb169arxXv+rul8fAAAAAAAAAABNWbOaXJSqmaapNTVlysyZM+O2226LN954I2mstLS0wus6dOgQgwcPTooXFxfHJZdcEhtuuGEceeSRMWrUqJg7d27G8u3bt2/0798/Kb506dI4/fTTY6ONNoqhQ4fGP/7xj5g/f37G9q2JiRMnJsVyc3Nj6623boBsambu3LkxevToeOqpp5LG0n19AAAAAAAAAAA0ZTV6UlPnzp2TGmmWLVsWS5YsqZOnBzUGCxYsiJkzZ8ann34aU6dOjcmTJ8e7774b33zzTYXXJBKJtGteeeWV8fTTT6c8hmzJkiXxyCOPxCOPPBIREX369ImBAwfGfvvtF3vuuWe0bt26xv8t1157beyzzz4p85s/f37ce++9ce+990azZs2if//+P+y7yy671OtTnKZPn54U6927d42OnqtrRUVFMXPmzJg2bVpMmTIlpkyZEuPHj485c+ZUeE1lXx8AAAAAAAAAAE1VjZqaNttss/jggw+S4rNnz44+ffrUNqesNnPmzHj77bdj8uTJ8dlnn8XMmTNj5syZScfxZcLmm28eo0aNiuOPPz5KSkrSzp06dWpMnTo1brjhhmjRokXstddecdBBB8UhhxwSXbp0qda+e++9d1x99dXx+9//Pu280tLSmDBhQkyYMCFGjhwZbdu2jYEDB8ZBBx0UgwcPjnXXXbda+1bXl19+mRTr3Llzne5Zmblz58abb74ZkyZNik8//TRmzpwZs2bNavCnWgEAAAAAAAAANCY1bmpKZcaMGU2yqWnZsmVxxx13xH333ZfyyLO6dMwxx0SnTp1i+PDhKZt4Ulm5cmU899xz8dxzz8WZZ54Zu+yySwwfPjxOPPHEaN68eZXWOPfcc2OjjTaKM844IxYuXFila5YsWRKPPfZYPPbYY5Gbmxv77LNPjBgxIo444ojIycmp0hrVsWTJkqRYQUFBxvepzOrVq+Oee+6Je+65J9544w1PWIqIXh17xZTTpsQ2d2wTxaXFSeN5zfLig19+UP+JARlzw9s3xKgPRkVJIn3TbSbk5uTGSducFGftdFad7wXUnXR1Qa+OvRogI6Cp8PoDGo7XBdA0qNWhYmpNGiM1Gms7tQ00LTVqaurfv3/K+Pjx42Pw4MG1SijbPPDAA3HuuecmHbdXVR07doyDDz44pk2bFm+++WaN1hg4cGBMmzYt7rzzzrjjjjvio48+qvK1iUQi3njjjXjjjTfiz3/+c9xwww3xs5/9rErXHnfccTFo0KC49dZb484774zZs2dXed+SkpIYN25cjBs3LgYMGBA333xz7LTTTlW+viqWL1+eFKvNsXs18fzzz8evf/3rmDZtWo2ub9u2bRxwwAGxbNmyePrppzOcXcNpmdcy+nTuE81ymqUcb5bTLPp0bnoNkLA2OWuns+LvE/9eL3uVJErirJ3O8n0DGrl0dUHLvOw7PhhoPLz+gIbjdQE0DWp1qJhak8ZIjcbaTm0DTUvqv9GV2HPPPVM+eeedd96pdUKVKS0tjf79+8dJJ50U9913X3zxxRd1tteFF14Yxx13XJUbmlq0aBH9+vWLE088MW688cZ4//3349tvv43Ro0dX+HSrqmrVqlWceeaZMXXq1Pjwww/jkksuiQEDBlTrCUifffZZHHjggTF69OgqX9OhQ4f4wx/+ELNmzYq33norzj333Nhyyy2rlfuECRNizz33jHHjxlXrusq0bds2KbZs2bKM7pHOrbfeGj/72c+q3NCUl5cXvXv3jmOOOSauueaaePPNN2PhwoXx8MMPx/bbb1/H2QJkVt/OfWPXrrtW+OIgU3JzcmO3rrt5UQwAAFnI6wIAgOyjRgOgKanRk5rWXXfd6Nu3b0yePLlc/NVXX43FixdHu3btMpJcKu+++25MnDgxJk6cGKNGjYqIsuPwhg0bFhdeeGHG9rnpppti5MiRFY737Nkzdt1119hmm21i8803j969e0fPnj0jNzc35fySksw94nGrrbaKrbbaKi699NL45ptv4oUXXogXX3wxXnzxxZg5c2baaxOJRIwYMSI23njjGDhwYJX3zMnJiZ122il22mmn+POf/xyff/75D/u+9NJLlR6Nt2rVqjj00EPj7bffjn79+lV533Q6dOiQFFu8eHFG1q7Mk08+Gb/+9a8rHN9oo41it912i2222Sa22GKL6N27d2y66aYVHv+Xya8PgPpywW4XxEEPHlSne5QkSuKC3S+o0z0AAICa87oAACD7qNEAaCpq1NQUEXHYYYclNTWtXLkyxo4dG8ccc0ytE6vIM888kxSbNm1arFy5MmN7fPrpp3HeeeelHBs8eHBceeWV0bdv32qtmeqotEzo3LlzDBkyJIYMGRIREYWFhTFu3Lh48sknY9y4cbFq1aqka0pKSuK3v/1tTJkypcb7duvWLYYPHx7Dhw+PiIhPPvkknnvuufj3v/8dL7/8cpSWliZds2zZsrjgggviqaeeqvG+/ytVU9O3336bkbXT+e677+Kkk05KObb77rvHVVddFbvssku11qyrrw+AunTgTw6MIX2HxENTH6qT89lzc3Lj6D5Hx6DNBmV8bQAAIDO8LgAAyD5qNACaiho/d/DEE09MGb/ttttqnExlVq9eHXfddVfKsaOOOipj+4wcOTJWrFiRFL/gggviiSeeqHZDU0TEN998k4nUKtWjR4845ZRT4sknn4y5c+fGeeedl/KIujXH2GXK5ptvHmeddVa88MILMXv27Aqbfp599tlYsGBBRvbs2rVrUuzTTz9N2chVHXfffXe88MILMXPmzCguLk4a/+tf/xrfffddUvzYY4+NV155pdoNTRH19/UBkGk3/+zm6NS6U+TmpH5SYU3l5uRGp9ad4uZBN2d0XQAAIPO8LgAAyD5qNACagho3NW2yySax5557JsVfffXVePPNN2uVVEUeeuihlMecbbnlltGnT2bOay0pKYnHHnssKb7FFlvEFVdcUeN1P/vss6RYqqcZVeSLL76o9p6dOnWKq666qsJj9MaPH5/2+tLS0kqPlUulS5cucdddd8Wpp56aNFZSUhLvv/9+tddMZeedd06KrV69OqZOnVrjNWfOnBknn3xy7LvvvtGrV69o2bJl9OzZM7766qsf5jz88MNJ13Xq1Cn+9re/pWwgq4pPP/00KVadrw+AhtKpdaf4zwn/iTb5bTL24jg3Jzfa5LeJ/5zwn+jYqmNG1gQAAOqO1wUAANlHjQZAU1DjpqaIiD/84Q8p46effnrKJ9zUxpIlSyrcr6Kj4mpi2rRpUVRUlBQ/6qijolmzmn26pk6dGl9//XVSvKQk9eMeFy1aFFdccUUcf/zxMWDAgGjXrl107do1Zs6cWaP9zzzzzGjevHlS/MdHtc2ZMycuueSSOProo2PrrbeONm3aRM+ePVM+taoqfve736WMZ+qIuO222y5atmyZFE/VlFZVr7/+erk/l5SUxLJly2LDDTeMiLJj4j7++OOk6w466KBo06ZNjfb8/vvvY+LEiUnxir4+ALJNv/X7xevDX8/Iu37WvMvn9eGvR7/1+2UoQxrakiWfxqJF75f7WLIkuaEXAIDyGlMd5XUBAJANGlP9VB/UaAA0drVqaho4cGDsuuuuSfGJEyfGxRdfXJulk5x77rkxe/bspPhPfvKTOO644zK2z/z581PG1zS11MRf//rXlPGKGr9atWoVI0eOjDFjxsR7770XS5YsiYiI559/vkb7t2rVKgoKCpLi+fn55f6ck5MT//d//xcPPfRQTJo0KVasWBGrV6+OV155pUb7rr/++injP963pvLz82OPPfZIit977701bgh68MEHk2K77777D/++YMGCSCQSSXNq8/Vxxx13xOrVq5PimW4MBKhL/dbvFx//+uM4us/RERHVfoG8Zv4xfY+Jj3/9sRfFTczHn/whJrx3ZLmPjz9J3awOAMB/NbY6yusCAKChNbb6qT6o0QBozGrV1BQRceONN6Z8CtDIkSPjxhtvrO3yERHx5z//OW6//faUY3/6058iNzdzZ8G2a9cuZbymT0l6/fXX484770w5tnLlypTx/Pz82GWXXZLit9xyS42OJPvyyy9TNmv16tWr3J+7dOkSm266adK8m2+u2Zm4kyZNShn/8b61cfrppyfFZs+eHdddd1211xo/fnw899xzSfETTjjhh3/P9NfHZ599VuGxhhV9fQBkq46tOsaYw8fE2GPHxs5dyo4IzWuWFzmR+mjOnMiJvGZ5ERGxc5edY+yxY+P+w+732GIAAGjEvC4AAMg+ajQAGqu82i6w3XbbxUUXXZTyyUy/+c1vYtq0afGXv/wlWrRoUe21i4uL47LLLquw6WP48OFx+OGHV3vddLp27Ro5OTlJT+MZM2ZMXHzxxdU6Yuz999+Pww47rMKnBi1fvrzCa4899tj4z3/+Uy42efLkuPrqq+OCCy6ocg4RZQ1mP5afn1/uCUT/u+///d//lYuNHTs2HnzwwRgyZEi19v3Tn/6UFOvcuXP065e5Du6DDjooNttss5g2bVq5+CWXXBK77rpryuawVBYvXhwjRoxI+v/etWvXOOigg374c0FBQayzzjrx/fffl5s3duzY+PLLL2PjjTeucu6zZs2KAw888Icncf1Yuq+PxuKPu/8xShLJX/+ZOrsZyE6DNhsUgzYbFFO/mRoPTH4g3vnynRg/d3wUrfzv8a4FLQpi+422jx033jGO7Xds9OncpwEzBuqDugCoa77PQHbxugAaDz9DoXL+ntBUqNFYG/ieDU1LTiLVWVrVVFJSEoMHD46nn3465Xjv3r3jiiuuiMMPPzxyclJ3/P7Yu+++G2eeeWa88847Kce33HLLGD9+fLRu3brStXr06JF0dN2oUaNi2LBhKefvuOOO8e677ybFDz300HjwwQcrbdAqKSmJW265JS688MJYunRphfN23nnnePPNN1OOrVy5Mrp16xbffPNNuXhOTk6MHDkyzj333GjWrPIHbV1zzTXx+9//Pil+3HHHxf33358U//rrr6Nbt26xatWqcvH8/Py4884748QTT6x0z+Li4jjnnHPipptuShr7wx/+UGGT2ujRo2P48OHlYt27d4/CwsK0+/373/+On//850nxNm3axL333huHHXZY2uvnzp0bRx55ZMr/F2PGjIljjz22XOzoo4+Ohx56KGnuzjvvHM8880y0b98+7X6JRCIefPDBOOuss+K7776rcN6GG24Yc+fOrXC8sLAwevbsmRSfNWtW9OjRI20OAPUtkUjEklVLYlXJqsjPzY+2+W2rXBPQ+I2fcEQUFU0sFyso2Da2H/BIA2UEANA4NLU6yusCAKCuNbX6qT6o0QDIZrU+fi4iIjc3Nx555JHYc889U45/+umnceSRR8amm24aF110Ubz66qtJT6cpLS2NqVOnxi233BJ77LFH7LjjjhU2NG2xxRYxbty4KjU01cSIESNSxh977LHo379/3HvvvfHtt9+WG1u1alVMnDgxrrzyyth0003jrLPOStvQFBFpG1patGgRf/7zn5PiiUQizj///BgwYED8/e9/T9nw89VXX8WDDz4Yu+22W8qGptatW1fYWLT++uvHhRdemBRftWpVDB06NPbaa6948MEH46uvvkqaM3v27Ljzzjujf//+KRuaNthgg5T51NbgwYPjzDPPTIovXbo0Dj/88Nh///3jX//6V9LX3McffxyXXHJJ9O3bN2VD04EHHpjU0BRR8dfHW2+9Ff369Ytbb701vvzyy3JjJSUl8fHHH8f1118fW221VRx33HFp//9HRMyfPz/pyVEAjVVOTk60a9EuOrXuFO1atPOiGAAA1kJeFwAAZB81GgDZLCNPalpj6dKlcfLJJ8c///nPyjfOyYn27dtH+/btY+nSpbFgwYIoLS2t9LoBAwbEs88+G506dapyXtV9UlNpaWnssMMO8d5776Vdt2PHjlFQUBArVqyI7777LoqLi1POa9myZZx33nlx2WWXlYvn5+fHokWLomXLlhXuceSRR8Yjj6TvHm/Tpk106NAhcnJyYtGiRVFUVFTh3JycnBgzZkzao+SKi4tjjz32iLfeeivtvmuOYispKYnvv/8+bRNXfn5+PP/887HHHntUOKemT2qKKGu6OuCAA+Kll15KO69Dhw7Rrl27mD9/ftp8+/fvHy+++GKFT1069NBD4/HHH0+7V/v27WOdddaJ1atXx/z582PlypUp5zVr1iwuueSSuPzyy5O+hmbMmBGbbLJJyus8qQmAxsI75AAAakYdBQBQPeonAGhaMvKkpjXatGkT//jHP+Kmm26Ktm3bpp2bSCTi+++/j9mzZ8d3331XaUNT8+bN4w9/+EO8/vrr1WpoqolmzZrFE088Ed26dUs7b8GCBVFYWBjz5s2rsKFpyy23jDfeeCMuueSSaNeuXbmxVatWxWuvvZZ2jzFjxsShhx6ads7SpUvjiy++iDlz5qRtaMrPz49Ro0albWiKiMjLy4tnn302dtlll7TzioqK4vPPP48vv/wybYNQQUFBPPnkk2kbmmorPz8/xo4dG0cddVTaeQsXLozPP/+80mMBx40bl/YYuXvuuSe23XbbtHstWrQoZs+eHXPnzq2woalLly7x3HPPxcUXXxy9e/dOGn/hhRfS7gEAAAAAAAAA0BRltKlpjTPOOCNmzJgRZ555ZrRo0aJWa+Xm5sYhhxwS7733XlxxxRW1Xq+qNt5443jzzTdjn332qdH17dq1i8svvzzef//96N+/f+Tk5MRuu+2WNK+ypzDl5+fHww8/HDfccENSU1R17LrrrjF+/PgYOnRoleYXFBTECy+8EH/84x8jPz+/xvsedNBBMWnSpNhvv/1qvEZVtWrVKv75z3/G3XffHeutt161r8/Pz49LLrkkXnvttUob5woKCuLFF1+MY445pka5tmjRIn7729/GlClTYt99942ISNn0VdnXBwAAAAAAAABAU1QnTU0REZ07d44bb7wxvvnmm7jvvvvi5z//eay77rpVurZ58+axww47xEUXXRSzZs2Kxx57LPr161dXqVZo4403jueffz4effTR+OlPfxq5ublp57dq1Sr23nvvuP766+Pzzz+PP/7xj+WasE488cSka+6999745ptv0q6bm5sbZ511VsyYMSOuv/76GDBgQDRrVvn/uo4dO8YJJ5wQL774Yrz++uux1VZbVXrN/2rZsmVcfvnlMW3atLj88stjyy23rNI5uhtuuGGceuqpMWHChHjyySeje/fu1dq3toYPHx6FhYXx17/+NXbcccdKc+7WrVucf/75UVhYGJdeemml/5/XWGeddeLBBx+MF154IQ455JBKm7+aN28eO++8c1x++eUxa9asuO6668o9DSrV18e4ceNi0qRJVcoHAAAAAAAAAKCpyEkkEon63HDevHkxefLkmDdvXhQVFcXixYsjkUhEhw4domPHjtGlS5fo379/tGzZsj7TqpKlS5fGhAkTYsaMGbFw4cJYsWJFdOjQIdZdd93o0qVLDBgwoFZPNaqOZcuWxaRJk2L69OmxaNGiKCoqitLS0mjbtm106dIlevfuHX369KlSE1J1FBUVxQcffBCFhYWxaNGiWLx4ceTk5ES7du2ia9euseWWW8Zmm22W0T1ra+HChfHee+/FzJkzY8GCBVFSUhIdOnSIzp07R//+/WOTTTbJyD4rV66M999/Pz777LNYuHBhLF26NNq3bx+dOnWKjTbaKLbffvto3bp1RvYCgMZk/IQjoqhoYrlYQcG2sf0ATyQEAEhHHQUAUD3qJwBoWuq9qQkAgLWLm0kAADWjjgIA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jbj22srnPfbofnHcsa/GsUNejSFDXosTT3g5Xnxx57TXXHxx2bvHK6KeAQCA2tlmm7I3KqRzzTURHTuW3Zts167s6U7z5lU8f/31y56sVBn1PLC20dQEAECjcsYZETvsUPm8RCLi88/LHiddXFz5/L/8JWKTTSoeHzs24m9/S7/GZZclP3Vh8OCIY45Jf92bb0ZcdVXlOQIATceBB0b88peVzystzY1vvtk4vv2mkrdXR8SwYemPwlDPAABAZtx4Y1mzUjqlpWX3JtM9OX6Na6+NaN06/Rz1PLA20tQEAECj0qxZxOOPR2y6aebWPOOMiF/9quLx776r/Pz5AQMizjkn9dhNN0Wsu2766y+7LOK999LPAQCalptvLjuCIhO23TbillsqHlfPAABA5vToEXHfff99IlJtHHdcxPHHp5+jngfWVpqaAABodDbcMOKFFyL69av9WuedV/aiPp1TTon4+uuKx/PzI0aNKjtKJpX11qt8j9Wry25epDsiDwBoWpo3L2vWPuKI2q2z774RL7+c/p3d6hkAAMisn/88YsyYslq6pg46qOy4uMqo54G1laYmAAAapW7dIsaPLztHPi+vZtc/8UTlj1UeNSriscfSz7noooi+fdPPGTIk4uCD08/55JOI3/8+/RwAoGlp2TLioYfKntpUUFC9a1u1irjwwoinn05/rXoGAADqxjHHRLz2WsRPflK963Jzy2r5xx+vvClKPQ+szTQ1AQDQaLVoEfGXv0TMmlX2YrtHj/Tzc3Iittsu4tZby16gDx6cfn5hYcRZZ6Wfs802EeefX7V8b7ston379HNuuSXiueeqth4A0DTk5EScfnrEjBkRF19c1nydTteuZfM//TTiyivLnvhUEfUMAADUrR12iJgyJeL22yO23jr93HbtIk46KWLq1LJavqInK62hngfWdjmJRCLR0EkAANB0jZ9wRBQVTSwXKyjYNrYf8Eid7PfFFxETJkR8803EwoURJSVlL9R79Yro3z+ic+c62RYAIKM++STi0Uevi88/XxErV7WMdu2+jw4dvovNN28ZQ465rqHTAwDISvV9HwpS+eKLsifMz54dsWRJ2ZsQOneO2HLLsvuT6d6UAEB5NTioAwAAsleXLmUfAACN2eabRwzc782Uv5QDAACyl/uTAJnj+DkAAAAAAAAAACCraGoCAAAAAAAAAACy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AyvpHwc1ERERERERERERERERERERERGRWeFjU0REREREREREREREREREREREZFY4qImIiIiIiIiIiIiIiIiIiIiIiMwKBzUREREREREREREREREREREREZFZ4aAmIiIiIiIiIiIiIiIiIiIiIiIyKxzUREREREREREREREREREREREREZoWDmoiIiIiIiIiIiIiIiIiIiIiIyKxwUBMREREREREREREREREREREREZkVDmoiIiIiIiIiIiIiIiIiIiIiIiKzwkFNRERERERERERERERERERERERkVjioiYiIiIiIiIiIiIiIiIiIiIiIzAoHNRERERERERERERERERERERERkVnhoCYiIiIiIiIiIiIiIiIiIiIiIjIrHNRERERERERERERERERERERERERmhYOaiIiIiIiIiIiIiIiIiIiIiIjIrHBQExERERERERERERERERERERERmRUOaiIiIhJYs2YNbGxsZH8HDhwwdWpEREREREREREREZAUUXYfW5M/Ozg5OTk7w8vJCaGgomjdvjn79+uG1117DL7/8gpycHFNvJulo3Lhxsn/3cePGmTotozhw4IDwe09Ejw4OaiIiInoEXL9+HVOnTjV1GkTVxMbG4pNPPjF1GkRERGRgii5CG+NvwIABGudF1i8sLEz2775mzRpTp0VERESklaqqKpSVlSE/Px+3bt3C6dOnsWvXLixevBjDhg1DQEAABgwYgLi4OFOnSoSysjIsWLAAx44dM3UqRGQhOKiJiIjIipWWluKDDz5AkyZNsGvXLlOnQwQAyMzMxKhRo9CjRw9cuHDB1OkQERERkYXjYHkiIiIixSoqKrBt2zZ07NgREyZMQFFRkalTokfU3r170bRpU8yZMwfFxcWmToeILAQHNREREVmp3bt3IzIyEvPmzUNJSYmp0yFCZWUlli5dioYNG2L9+vWmToeIiIiILBwHyxMRERFpJiYmBt27d0d+fr6pU6FHyK1btzB8+HD06tULly9fNnU6RGRh7E2dABEREenfli1bMHjwYFOnQVTNzJkz8fXXX5s6DSIiIiKycJWVlfj2228xd+5c3pAjIiIi0tDx48cxbNgw7Nq1i9Mvk1E0atQIBQUFpk6DiCwU39RERERkhXhhn8wRv5dEREREpA8zZ87Eq6++yvNLIiIislqxsbGQJEmtv6qqKpSXlyM/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5MmTtTrXnT9/Pt5///1qZV27dsWBAwc0jgX8MxXh2rVrq5Upai9ERERED7t37x6SkpJw48YN3Lt3D+Xl5XB3d0dAQAAiIyPRuHFjna8Pi66JxsbGys6hMzIycOTIESQnJ6OkpAReXl6oU6cO2rVrp/XbedSRmZmJ48eP48aNGygoKICjo+O/29+yZUud30qlbxUVFTh9+jTOnTuHnJwcFBQUwN3dHf7+/ggMDESbNm3g5eVl0ByqqqqQlJSEM2fO4Pbt26ioqICHhweCgoJQv359REZGKn0brr4UFBQgKSkJ169fx927d1FaWgp3d3f4+fmhcePGaNq0qU7TJBKR/nBQExEREZGVU3dQExERERHpzhiD1s1JamoqEhIScPv2beTm5sLW1hZ+fn6oUaMGIiIiUL9+fYPnYA6D5auqqnDu3DlcuHABt27dQmFhIezt7eHt7Y169eqhRYsWWr/hioiIiOhRpe6gJiIisl6W8/oEIiIiIiIiIiIiM2djY4NGjRqhUaNGpk7FKGrVqoVatWqZNIfQ0FAMGTLEpDnY2tqiadOmWk9TTURERERERERyyieLJCIiIiIiIiIiIiIiIiIiIiIiMjIOaiIiIiIiIiIiIiIiIiIiIiIiIrPCQU1ERERERERERERERERERERERGRWOKiJiIiIiIiIiIiIiIiIiIiIiIjMCgc1ERERERERERERERERERERERGRWeGgJiIiIiIiIiIiIiIiIiIiIiIiMisc1ERERERERERERERERERERERERGaFg5qIiIiIiIiIiIiIiIiIiIiIiMiscFATERERERERERERERERERERERGZFRtJkiRTJ0FERERERERERERERERERERERPQA39RERERERERERERERERERERERERmhYOaiIiIiIiIiIiIiIiIiIiIiIjIrHBQExERERERERERERERERERERERmRUOaiIiIiIiIiIiIiIiIiIiIiIiIrPCQU1ERERERERERERERERERERERGRWOKiJiIiIiIiIiIiIiIiIiIiIiIjMCgc1ERERERERERERERERERERERGRWeGgJiIiIiIiIiIiIiIiIiIiIiIiMisc1ERERERERERERERERERERERERGbl/wAyellJfLL84wAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.rcParams[\"font.sans-serif\"] = \"Arial\"\n", + "\n", + "plt.rc('font', size=43) \n", + "plt.rc('axes', titlesize=43) \n", + "plt.rc('axes', labelsize=43) \n", + "plt.rc('xtick', labelsize=43) \n", + "plt.rc('ytick', labelsize=43) \n", + "plt.rc('figure', titlesize=43)\n", + "\n", + "covariates = ['Intercept', 'Elevation', 'Population']\n", + "pd.set_option(\"display.precision\", 8)\n", + "\n", + "fig = plt.figure(figsize=(32, 6.5))\n", + "colors = ['blue', 'green', 'red']\n", + "for i, covariate in enumerate(covariates):\n", + " \n", + " data_dict = {}\n", + " classical_ci_width = classical_ci[1][i] - classical_ci[0][i]\n", + " ptd_ci_width = ptd_ci[1][i] - ptd_ci[0][i]\n", + " data_dict['category'] = ['PTD','Classical','Naive']\n", + " data_dict['lower'] = [ptd_ci[0][i], classical_ci[0][i], naive_ci[0][i]]\n", + " data_dict['upper'] = [ptd_ci[1][i], classical_ci[1][i], naive_ci[1][i]]\n", + " data_dict['pointestimate'] = [ptd_pointestimate[i], classical_pointestimate[i], naive_pointestimate[i]]\n", + " dataset = pd.DataFrame(data_dict)\n", + " \n", + " subplot = fig.add_subplot(141+i)\n", + " subplot.spines['top'].set_visible(False)\n", + " subplot.spines['right'].set_visible(False)\n", + " subplot.spines['left'].set_visible(False)\n", + " subplot.spines['bottom'].set_linewidth(2)\n", + " \n", + " # show true coefficient (yellow dotted line)\n", + " plt.axvline(true_coeff[i], color='tab:olive', linestyle='--', lw=4, label='True \\ncoefficient')\n", + " \n", + " # plot confidence intervals\n", + " for lower,upper,pointestimate,y in zip(dataset['lower'],dataset['upper'],dataset['pointestimate'],range(len(dataset))):\n", + " subplot.scatter([pointestimate], [y], color=colors[y], s=400)\n", + " subplot.scatter([lower, upper], [y, y], color=colors[y], marker='|', s=400, lw=5)\n", + " subplot.plot((lower,upper),(y,y),color=colors[y], lw=6)\n", + " if y == 0:\n", + " # compute PTD effective sample size improvement over classical method\n", + " ptd_effective_n_improvement = np.round((classical_ci_width/ptd_ci_width)**2, 1)\n", + " subplot.text((lower+upper)/2, 0.2, f'{ptd_effective_n_improvement}x', fontsize = 40, c='blue', weight='bold')\n", + " \n", + " subplot.tick_params(axis=u'both', which=u'both',length=0)\n", + " if i == 0:\n", + " subplot.set_yticks(range(len(dataset)),list(dataset['category']))\n", + " else:\n", + " subplot.set_yticks([])\n", + " subplot.set_xlabel(f'{covariate}')\n", + " subplot.set_ylim(-0.2)\n", + " \n", + "plt.tight_layout() \n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "301723d1", + "metadata": {}, + "source": [ + "# Example 3: Using Predict-Then-Debias for an estimator of interest (quantile estimation)" + ] + }, + { + "cell_type": "markdown", + "id": "c9f1afe0", + "metadata": {}, + "source": [ + "Users can also use the ptd module to apply the PTD method on their own estimators of interest. \n", + "\n", + "As an example, we will show how to create a quantile estimation wrapper function around the ptd module's **ptd_bootstrap** function. We will then use the wrapper function to estimate the 0.8 quantile (80th percentile) value for tree cover.\n", + "\n", + "The **ptd_bootstrap** function has the following inputs and outputs.\n", + "\n", + " Inputs:\n", + " algorithm (function): python function that takes in data and weights, and returns array containing parameters of interest (e.g., a function that computes linear regression or logistic regression coefficients)\n", + " data_truth (List[ndarray]): ground truth labeled data (each ndarray has n rows)\n", + " data_pred (List[ndarray]): predicted labeled data (each ndarray has n rows)\n", + " data_pred_unlabeled (List[ndarray]): predicted unlabeled data (each ndarray has N rows)\n", + " w (ndarray, optional): sample weights for labeled data (length n)\n", + " w_unlabeled (ndarray, optional): sample weights for unlabeled data (length N)\n", + " B (int, optional): number of bootstrap steps\n", + " alpha (float, optional): error level (must be in the range (0, 1)). The PTD confidence interval will target a coverage of 1 - alpha. \n", + " tuning_method (str, optional): method used to create the tuning matrix: \"optimal_diagonal\", \"optimal\", or None. (If tuning_method is None, the identity matrix is used.) \n", + " \n", + " Outputs:\n", + " ndarray: the tuning matrix (dimensions d x d) computed from the selected tuning method\n", + " ndarray: PTD point estimate of the parameters of interest (length d)\n", + " tuple: lower and upper bounds of PTD confidence intervals with (1-alpha) coverage\n", + "\n", + "Below we define the **ptd_quantile** wrapper function for quantile estimation. Within **ptd_quantile**, we first define the **algorithm_quantile** function, which takes in a dataset and computes the selected empirical quantile. We then pass the **algorithm_quantile** function (along with the datasets and hyperparameters) into the **ptd_bootstrap** function, which will use the PTD method to compute the quantile point estimate and confidence interval. \n", + "\n", + "(Note that the first input to the **ptd_bootstrap** is required to be a python function that takes in two inputs (data and weights). So we define **algorithm_quantile** to have both data and weights as arguments, even though the weights are not used.) " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "0a9a94bd", + "metadata": {}, + "outputs": [], + "source": [ + "def ptd_quantile(X, Xhat, Xhat_unlabeled, quantile, B=2000, alpha=0.05, tuning_method='optimal_diagonal'):\n", + " \"\"\"\n", + " Computes tuning matrix, point estimates, and confidence intervals for quantile estimation using the Predict-then-Debias bootstrap algorithm. \n", + " \n", + " Args:\n", + " X (ndarray): ground truth values in labeled data (dimensions n x 1)\n", + " Xhat (ndarray): predicted values in labeled data (dimensions n x 1)\n", + " Xhat_unlabeled (ndarray): predicted values in unlabeled data (dimensions N x 1)\n", + " quantile (scalar): the desired quantile probability. Must be in the range [0, 1].\n", + " B (int, optional): number of bootstrap steps\n", + " alpha (float, optional): error level (must be in the range (0, 1)). The PTD confidence interval will target a coverage of 1 - alpha. \n", + " tuning_method (str, optional): method used to create the tuning matrix: \"optimal_diagonal\", \"optimal\", or None. (If tuning_method is None, the identity matrix is used.) \n", + " \n", + " Returns:\n", + " ndarray: the tuning matrix computed from the selected tuning method (1 x 1)\n", + " ndarray: PTD point estimate of the quantile \n", + " tuple: lower and upper bounds of PTD confidence intervals with (1-alpha) coverage\n", + " \"\"\"\n", + " def algorithm_quantile(data, weights):\n", + " pointestimate = np.quantile(data, quantile)\n", + " return np.array([pointestimate])\n", + " \n", + " # ptd_bootstrap requires input data arrays to be in list form (List[ndarray])\n", + " data_truth = [X]\n", + " data_pred = [Xhat]\n", + " data_pred_unlabeled = [Xhat_unlabeled]\n", + " \n", + " return ptd.ptd_bootstrap(algorithm_quantile, data_truth, data_pred, data_pred_unlabeled, B=B, alpha=alpha, tuning_method=tuning_method)" + ] + }, + { + "cell_type": "markdown", + "id": "55d6102f", + "metadata": {}, + "source": [ + "We also define a function **classical_quantile_ci** which computes a confidence interval for a given quantile of a single dataset X. This will be used to compute \"classical\" (ground truth only) and \"naive\" (prediction only) quantile confidence intervals. \n", + "\n", + "For more information see https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mstats.mquantiles_cimj.html" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "085d49e3", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.stats.mstats import mquantiles_cimj\n", + "\n", + "def classical_quantile_ci(X, quantile, alpha=0.05):\n", + " ci = mquantiles_cimj(X, prob=quantile, alpha=alpha)\n", + " return ci" + ] + }, + { + "cell_type": "markdown", + "id": "71e0e6ad", + "metadata": {}, + "source": [ + "We define truth_X as the full ground truth tree cover dataset, and preds_X as the full predicted tree cover dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "298e7e3b", + "metadata": {}, + "outputs": [], + "source": [ + "truth_X = np.array(data['truth_tree']).reshape(-1, 1)\n", + "preds_X = np.array(data['preds_tree']).reshape(-1, 1)" + ] + }, + { + "cell_type": "markdown", + "id": "9e982d64", + "metadata": {}, + "source": [ + "We randomly sample 500 points (out of the 67968 total points) to use as the calibration set. The remaining 67468 points are the unlabeled set.\n", + "\n", + "In the code below, X contains the ground truth values in the calibration set, Xhat contains the predicted values in the calibration set, and Xhat_unlabeled contains the predicted values in the unlabeled set. " + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a3805c2c", + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(seed=100)\n", + "calibration_indices = np.random.choice(np.arange(0, len(data)), size=500, replace=False)\n", + "X = truth_X[calibration_indices]\n", + "Xhat = preds_X[calibration_indices]\n", + "Xhat_unlabeled = np.delete(preds_X, calibration_indices, axis=0) # all predicted datapoints except calibration indices" + ] + }, + { + "cell_type": "markdown", + "id": "0698af08", + "metadata": {}, + "source": [ + "We compute point estimates and 95% confidence intervals for the 0.8 quantile value for tree cover. \n", + "\n", + "We use **np.quantile** to compute the true 0.8 quantile for tree cover using the full ground truth dataset. \n", + "\n", + "We use **ptd_quantile** to compute the \"PTD\" point estimate and 95% confidence interval using the calibration dataset and unlabeled dataset.\n", + "\n", + "We use **classical_quantile_ci** to compute the \"classical\" 95% confidence interval using only the ground truth values in the calibration set. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. \n", + "\n", + "We also use **classical_quantile_ci** to compute the \"naive\" 95% confidence interval using only the full prediction dataset. The corresponding point estimates are computed by averaging the lower and upper confidence interval bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "8bdb893b", + "metadata": {}, + "outputs": [], + "source": [ + "quantile = 0.8\n", + "true_coeff = [np.quantile(truth_X, quantile)]\n", + "\n", + "tuning_matrix, ptd_pointestimate, ptd_ci = ptd_quantile(X, Xhat, Xhat_unlabeled, quantile, \n", + " B=2000, alpha=0.05, tuning_method='optimal')\n", + "\n", + "classical_ci = classical_quantile_ci(X, quantile, alpha=0.05)\n", + "classical_pointestimate = (classical_ci[0]+classical_ci[1])/2\n", + "\n", + "naive_ci = classical_quantile_ci(preds_X, quantile, alpha=0.05)\n", + "naive_pointestimate = (naive_ci[0]+naive_ci[1])/2" + ] + }, + { + "cell_type": "markdown", + "id": "7f9b9c50", + "metadata": {}, + "source": [ + "We visualize the quantile point estimate and confidence interval for PTD, classical, and naive estimators.\n", + "\n", + "The yellow dotted line is the \"true 0.8 quantile value\" for tree cover. The effective sample size improvement of PTD compared to the classical confidence interval is shown in blue.\n", + "\n", + "We see that the naive estimate is biased relative to the true quantile value, while PTD has a statistically valid confidence interval (which, in the figure, contains the true quantile value). The PTD confidence interval is also narrower than the classical confidence interval." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "42c6eed4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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I8tp7J6wWrjs1KlTmjt3rkf9XLlyRd27d9eWLVtcnpNVbly4LSEhQc8880yG57kjIiJCjz/+uCmekJCgBx98UFFRUW73lZKSot69e+vEiROmY3379rVcbf+W5XBI+fKlLeKWL1/mFOQAAACADyjKbzERERH64gvf9qlt27atZfzJJ5/Ujh07LI/daP369WrcuLF++eUXl+ddunTJ4/y81bNnT+XOnTtdbP369el+DgsLU/fu3b3qf8iQIZYF86FDh9SkSRPLFe1vdPHiRT344IP6+eefTcfy5Mmjt956y6vcAAAAANiDovwWdN9993l8T/Q//etf/1JERIQpfubMGd1+++164403tHPnThmGke74sWPHNG3aNLVr10533HGHtm7dmuFYviyE5qmCBQuqc+fOLs/p1q2bwsPDveo/MjJSs2bNsrxH/tSpU2rVqpW6dOmin376SZcvX053fP/+/RozZoyqV6+un376ybL/iRMnOt1+DQAAAED2RFF+i/roo49UsmRJr9oWKlRII0aMsDx25coVvfvuu6pZs6by5s2r0qVLq0yZMsqXL59Kly6tPn36aPHixaZ2Dz74oBo0aGCK796926scvZXR1HRvpq7/U+PGjfX5558rIMD6P725c+eqa9euyps3rwoWLKiyZcsqPDxclStX1pAhQ9It7PZPgwcPNq0gDwAAACD7oyi/ReXPn9+naezPPfecHnvsMZfnxMfH69ixYzp69Kji4uIszwkNDdVHH32k2bNnW26ptmzZMq9z9Ebbtm2dfllRtmxZtWrVyucx+vfvr9mzZ2d4xf3ChQs6cuSIyyn8AQEBGjNmjMaMGeNzXgAAAACyHkX5Lax9+/bq06eP1+2/+OILvfPOOwoK8m4R/86dO+vvv//W888/L0m66667TOcsXLjQNJU7MwUEBKh3796Wx/r27evx6vLOdOvWTX///be6dOnidR+1atXSqlWrNHjwYL/kBAAAACDrUZTf4saOHev1vtYBAQF6/fXXtX37dv3f//2f8ufPn2Gb6tWra+DAgfr77781d+5cVa5c+fqxzp07m/q4cOGCvvrqK6/y85bVFHWHw+HTFxhWypUrpzlz5ujvv//WM88849a/Q1hYmDp16qSff/5ZW7ZssZxdAAAAACDncBg3rsYFeMkwDO3cuVNbt25VdHS0YmJiFBYWpsjISBUp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jh49qpiYGF25ckUBAQEKCwtTkSJFVLZsWdWpU0f58uXz+9gAgJxj6+mtavNNG0XHR0uSUo3UDFqkd+3873Z8p18P/apfe/2q2kVr+z1PAEDm8LqKnTJlimX8qaee8jqZjISHh6tHjx7av3+/7rrrLt11111q0qSJ8ubNm2lj/lNCQoK+//57/fjjj1q2bJliYmIybBMUFKS77rpLjz76qHr06OHToncHDx7UlClT9N///lf79+/PcNymTZuqe/fu6tOnj0+/o23btmnKlCmaNWuWjh8/7vLc3Llzq1WrVurRo4cefvhhBQcHuz3O1KlT1a9fv3SxsmXLerUCe0pKir7//ntNnz5dS5cuVUKC8+kqefPmVZcuXfT000+radOmHo/1zzF/+eUXff/991q8eLHOnj2bYZuAgADdcccd6tGjh/r27csWfwBwi9l6eqvunHKnLidetrwP0hMpRoqi46PVfEpzrey3ksIcAHIIr+4pT0lJUaFChXTx4sV08ZCQEEVHRyssLMxf+fmFr/eUJycn67PPPtPIkSPdKrScKV26tMaPH68uXbp41C4hIUGvv/66Pv74YyUlJXk8bv78+fX222/r2Wef9WhbupiYGD333HOaNm2aVyu9lihRQh988IEefvhht873V1H+008/6eWXX9aBAwc8aidJXbt21aeffqrixYt71G7GjBl64403TK8zTxQsWFCjR4/WE0884db53FMOwBnuKc8ZouOjVWNCDUXHR/tckP9ToCNQkWGR2vXMLhUMLei3fgEgu8upnzO9mrO7Zs0aU0EuSS1atMh2Bbmvzpw5o9atW2vQoEE+FeRS2tTvrl27Wq4i78yFCxd077336sMPP/SqIJekixcvatCgQXrwwQctV8p3lmuzZs309ddfe731yokTJ9SjRw+nW+b5W2Jionr16qWuXbt6VZBLadvs3Xbbbfr777/dOv/y5ct64IEH9Oijj/pUkEvS+fPn9eSTT2bZ7wsAYK+BCwf6vSCX/nfFfOCCgX7tFwCQObwqytetW2cZb9asmU/JZDeXLl1SmzZt9Oeff7o8r2DBgipTpoxKlCjh1pcSr776qjZv3pzheZLUs2dPrVixwunx3Llzq1ixYipXrpwiIyNd9vXjjz/qhRdeyHDMxMREderUSTt27HB6TlhYmIoXL66yZcsqf/78LvsbP368Pvjg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4+MVFxeXKVdvc4Lz58/r4MGD2rNnj3bs2KFt27bpr7/+0pkzZ5y2yWg3unfeeUcLFiywnMYcFxen77///vqCdDVr1lSbNm107733erww243ef/993X333Zb5RUdHa9q0aZo2bZoCAgJUv3796+M2bdo0S6+iW93XXbVqVa+mrme22NhYHTx4UPv27dP27du1fft2rV+/XkePHnXahn3KAQAAgJufV0V55cqVtWXLFlP88OHDqlkzey4z7y8HDx7U2rVrtW3bNu3du/f6PcU3Tuf3h2rVqmnKlCl69NFHlZKS4vLcHTt2aMeOHRo7dqxy586tli1bqmPHjurSpYvHW9W1atVK7733nl599VWX56WmpmrDhg3asGGDRo8erbx586pNmzbq2LGjOnfurEKFCnk0rqdu3L5MSvvCyE4nTpzQ6tWrtXXrVu3Zs0cHDx7UoUOHbJ9VAAAAACB78root3LgwIGbsiiPj4/XxIkT9c0331hOmc5MDz/8sCIjI9WvXz/LItRKQkKCFi9erMWLF2vQoEFq2rSp+vXrp969e7u117gkvfLKKypRooQGDhzo9irgcXFxmjNnjubMmaPAwEDdfffdGjBggB588EE5HA63+vCE1dZ87uzh7m9JSUn6+uuv9fXXX2vVqlVc4XaiYsGK2v70dt028TYlp5rvlw8KCNKWJ7dkfWIAkMXGrh2rKVumKMVw/YW7PwQ6AtX/tv56rvFzmT4WANjN1efMigX9sxZUZvCqKLe651iS1q9fb3kfdE42c+ZMvfLKK17ft12wYEF16tRJ+/bt83o18jZt2mjfvn2aNGmSJk6cqJ07d7rd1jAMrVq1SqtWrdK///1vjR07Vvfdd59bbXv27Kn27dtrwoQJmjRpkg4fPuz2uCkpKVqyZImWLFmihg0b6uOPPzatYu4rq3UMfJm2742lS5fqmWee0b59+7xqnzdvXrVr107x8fEerZKfE4UEhahmkZoKcFgvZRHgCFDNIjffl3oAcKPnGj+nLzd/mSVjpRgpeq7xc7y/ArgluPqcGRKU/W5xvcarhd5atGhheeVz3bp1PieUkdTUVNWvX1/9+/fXN998o2PHjmXaWK+//rp69uzpdkGeO3du1a5dW71799a4ceO0adMmnT17VlOnTnU6u8BdoaGhGjRokHbs2KG///5bw4YNU8OGDT26Ar137151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ksVZgVsEC70BALKNlStXaujQofrjjz/cOt/hcKhTp0565513VKtWLZ/Gvnr1qkaOHKlPP/1UMTExbo3doUMHvf/++6patapPYwPwDzveQ0aOHKm33nrLq7auUJQDtw6mrwMAbHf16lU9/fTTuvPOO93+MC1JhmHo559/1u23366PP/7Y6/F37dqlevXq6d1333WrIL829i+//KI6deroiy++8HpsAL6z8z1ky5YtXrUDgGuYvg4AsNWFCxfUsWNHrV692us+rl69qkGDBunChQseX7H6+++/1aZNG509e9arsRMTE/Xkk0/qzJkzGjp0qFd9APCe3e8hFOUAfMX0dQCAbeLj43XPPfdozZo1lserVKmi++67T1WrVlVwcLBOnjypFStWaPny5UpKSrJsM3XqVPXp08et8c+dO6d69erp2LFjpmNBQUFq27atGjdurOLFi+vs2bPatm2b5syZoytXrlj2N2PGDD3yyCNujQ3Ad3a/h8TGxip//vzKjI/TTF8Hbh0U5QAA2zz++OP68ssvTfGSJUvq448/VteuXS3bHThwQAMHDtTChQtNxwoUKKDdu3erSJEiGY7fsWNHzZ8/3xS/++67NWXKFJUuXdp07OLFixo8eLDllPV8+fJpx44dlu0A+J/d7yErVqxQixYt0sVKlCih48ePu/kMAIB7ygEANlm4cKHlh+l69epp/fr1Tj9MS1LFihX1yy+/6KmnnjIdu3DhgkaPHp3h+PPnz7csyHv06KGlS5c6Lazz58+viRMnauLEiaZjly5d0quvvprh2AB8Z/d7iGQ9db1BgwZutQWAa7hSDgDIcikpKapbt6527NiRLl6hQgWtXbtWhQsXdrufRo0aaePGjenikZGROn78uHLnzu20bZ06dbRt27Z0sQYNGmj16tUKDg52a/w333xTo0aNShdzOBzavn27atSo4VYfADyXHd5DJKl///6aMmVKutjw4cM1bNgwt8YHAIkr5QAAG/z444+mD9OBgYGaOXOm2x+mr7UZMWKEKR4dHa3ffvvNabsVK1aYCnJJGjdunNsFuZT24btOnTrpYoZhaOzYsW73AcBzdr+HXLN582ZTjCvlADxFUQ4AyHKfffaZKfbEE0+oUaNGHvfVrl07y8WQ/vrrL6dtrKa8NmrUSM2aNfNo7MDAQMvp6t99953TxeAA+M7u9xBJSkpK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+/bt0z333KODBw+ajo0YMUJ58+bNcHwA3rPzPcThcOjTTz+1vIo9adIk9evXz3Tl/Ubx8fF64YUX9Morr1j2P3nyZMsvHQDcpAwAAGyQnJxstG7d2pBk+WjXrp0xb9484/Lly9fbXL582Zg1a5bRqFEjp+3Gjx/vdg7jxo1z2k/nzp2NZcuWGUlJSdfPP3jwoDF06FAjX758lm3uueceIyUlxa+/JwDW7H4PefHFF532UaZMGePjjz82jh49mq5NVFSU8eGHHxply5Z12vatt97y6+8JQPbnMAzDyIRaHwCADMXGxuqee+6x3Of7msDAQBUrVkxJSUk6e/asXP3ZeuKJJzRx4kS3xzcMQz179rRc5OnG8S9evKjLly87Pa9cuXL666+/VLhwYbfHB+AbO99DDMPQI488ov/+978uz4uIiFBERITOnj2b4WKSjz/+uL744gu3xgdw86AoBwDYKi4uTj179vRqgaZ/ev755/Xhhx96vDBSYmKievfure+++87rsStVqqRly5apTJkyXvcBwDt2vockJSXppZde0scff+zT2AEBAXrjjTf09ttv+9QPgJyJe8oBALbKmzev5s6dq4kTJ6pQoUIety9VqpR++uknffTRR16tVBwcHKxvv/1WY8eOtdxmKSOPPvqo/vrrLwpywCZ2vofkypVL48eP108//aRy5cp5PLYk1axZU8uWLaMgB25hXCkHAGQbly5d0uTJkzVt2jRt2bLF5TTT22+/XX379tVjjz2m3Llz+2X806dPa9y4cfrmm2907Ngxp+eFhobq/vvv16BBg9SkSRO/jA3Ad3a+hyQnJ2vWrFn68ssvtWbNGpeLvYWEhKhVq1bq37+/unXrpoAArpMBtzKKcgBAtnTmzBlt2rRJBw8eVExMjAzDUP78+VWuXDk1aNBARYsWzdTxd+/era1bt+rYsWOKj49XWFiYIiMjVa1aNdWvX1+5cuXK1PEB+MbO95CEhAStX79eR44cUXR0tGJiYhQSEqJChQqpatWqqlevHqurA7iOohwAAAAAAJswVwYAAAAAAJtQlAMAAAAAYBOKcgAAAAAAbEJRDgAAAACATSjKAQAAAACwCUU5AAAAAAA2oSgHAAAAAMAmFOUAAAAAANiEohwAAAAAAJtQlAMAAAAAYBOKcgAAAAAAbEJRDgAAAACATSjKAQAAAACwCUU5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Ge3cudOrHHKCnPx56bos/xoAwC0nK6+U582b1wgKCkoXq1atmvHMM88Yr7/+utG7d+/rVwKfeeYZyz7nz59vOBwOy5wrV65sfPLJJ8a+ffvStYmPjzfmz59v9OzZ02nbwYMHu/28Nm/e7HQKYYkSJYwxY8aYrm4lJiYav//+u/F///d/pqma1x4PPfSQ579kLzz22GOW4y9YsCBLxvfG22+/7fSb88KFCxsjR440tm/fnm5qW1xcnPHDDz8YnTp1ctq2QoUKxtmzZ52Oe/HiRcsr85999plXz2Pq1KmmvgoWLOhyOv3Ro0ed3ntXoEAB44033jDWr19vpKSkXG+TkpJirF271hg8eLDT+xubN29+fVqrK1ZXym+84lGkSBGjT58+xuuvv2489dRTRt26dQ1JRs2aNb36Pblj69atTp9bvnz5jJdeesn4448/jHPnzhlJSUnGuXPnjN9++8145plnnM62eOmllzIcNyUlxXKa6owZM3x+Tv58rWXk0KFDlr+DVatW+dTvqVOnLPtduHCh0zZW/118++23Ts+fPn266XxnM6sOHDiQ7u9OYGCgsWfPHp+eY1Zy9f51//33G4sWLUo32+vMmTPGJ598YpQvX950fqlSpTz+W59drpRb3TIipd12NXDgQGPFihWWa5QcPnzYmDFjhstbnlq1apXh+FZXi2+8DczhcBhdu3Y1FixYkG59g4SEBGP58uXGAw884DSH++67z+nY33zzzfWH1e0hkoyPPvoo3XnffPONceDAAVNfWX2lPKd/XrqGohxApsvKovyfj+DgYGPatGmmNikpKcacOXOMnTt3mo4dPXrUKFSokKmvoKAg49133zWSk5MzzGnDhg2WU1YdDofx888/Z9g+NjbWqFy5suVzGjhwoFsLyO3bt8/pdLePP/44w/a+slokS5LlH/DsYNWqVU7v1evXr59x8eLFDPtYvHix03sQM5qObjXdvFmzZl49l7vvvtvU17PPPuv0/KSkJKN58+aWeXfv3t2t537ixAmjXbt2ln24U4RaFeX/fDz//POWiyZt2rTJmD9/fob9+2LZsmWW6yN4+ggNDTXGjh3r1pjOis7Fixf7/HxKlChh6vfdd9/1uV8ra9eutXwevhasiYmJlv26uh0pLi7OtFBn6dKljRMnTpjOPXHihOk2jiJFijj9YuvGhed69+7t0/PL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zx59++2313/O6Cr56dOn9eGHH+quu+5SqVKllDt3bhUvXlxNmzbV6NGjLf/+ZKbVq1dbzmR44IEHvO4zo20Xs7PcuXNfvyL97LPPatiwYT71ZzXDx51ZMlYaNmzoVTt/fjGQ3dxMn5euoSgHcNOpX7++x21WrVplGfd1n9lcuXJZXnW0umq4YcMGyw9J/tjrtkaNGm7l4C958+Y1xbJjUW51FdrhcLjcj9hdTZo0McX+/vtvl/vV9+/f3xT79ttvM9zjPiUlJV2BcI2rD8nHjx/X4cOHTfHs8nqrVKmS04IoK7zzzjv64osvTPHHHntMf/75p8vZOIGBgerfv782bdpk+cXCn3/+qcGDBztt7+xKpbcf6jPqI6M9072V3Z9H27ZtNW3aNO3bt0+XL19WTEyMduzYofHjx1tOP/6nG6+S9+7dWxUqVLA8d/r06apWrZpeeukl/fnnnzp+/LgSExN16tQprVmzRq+//rqqVq2q9957zy9fWLjj77//NsWCgoJUu3Ztr/u88847fUnppnDw4EF99tlnlp8prL5IcketWrW8amd1cSKjvyU5xc30eemanHnzBwC44OrKoDM7duywjFsVl/5w6tQpt3Pw9g+yNzn4S5EiRUz33sbHxysuLi7TfqfeOHTokClWsWJF5c+f3+e+ra5uXL16VSdPnlSpUqUs2zzwwAN69tlnFRsbez126tQpLVu2TPfee6/TsZYuXWr69yxSpIjLqwbOXm8dO3Z02sYXnr7evPnv2F927dqlt99+2xTv0qWLJk2a5PZU0mLFimnJkiW64447tHfv3nTHPv74Yz322GOW/307Ky5dXV13l1UfmVWUu3oeYWFhPvWdlc/jRrt379Z///vf6z+7uko+YcIEPfPMMxn2GR8fr9dee027d+/Wl19+mem3+1hNx61atapPv8PIyEiVKVNGR44c8SW1HOH8+fM6ePCg9uzZox07dmjbtm3666+/dObMGadtvP3Cxdu/R1Zfinn7xUB2czN9XrqGohzATadAgQIet4mOjs6ETJw7f/58tszBXypXrqwtW7aY4ocPH1bNmjUzbVxPWS3aVaJECb/0XaxYMcv46dOnnRblYWFh6t69u2mRuenTp7ssyq0WeHv00Udd3rub3V9v3vx37C8jR440FX2RkZGaOnWqx/d2RkRE6LvvvlP9+vXTfShPSUnR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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.rcParams[\"font.sans-serif\"] = \"Arial\"\n", + "\n", + "plt.rc('font', size=43) \n", + "plt.rc('axes', titlesize=43) \n", + "plt.rc('axes', labelsize=43) \n", + "plt.rc('xtick', labelsize=43) \n", + "plt.rc('ytick', labelsize=43) \n", + "plt.rc('figure', titlesize=43)\n", + "\n", + "variables = [f'Tree Cover {100*quantile}% quantile']\n", + "pd.set_option(\"display.precision\", 8)\n", + "\n", + "fig = plt.figure(figsize=(35, 6.5))\n", + "colors = ['blue', 'green', 'red']\n", + "for i, variable in enumerate(variables):\n", + " \n", + " data_dict = {}\n", + " classical_ci_width = classical_ci[1][i] - classical_ci[0][i]\n", + " ptd_ci_width = ptd_ci[1][i] - ptd_ci[0][i]\n", + " data_dict['category'] = ['PTD','Classical','Naive']\n", + " data_dict['lower'] = [ptd_ci[0][i], classical_ci[0][i], naive_ci[0][i]]\n", + " data_dict['upper'] = [ptd_ci[1][i], classical_ci[1][i], naive_ci[1][i]]\n", + " data_dict['pointestimate'] = [ptd_pointestimate[i], classical_pointestimate[i], naive_pointestimate[i]]\n", + " dataset = pd.DataFrame(data_dict)\n", + " \n", + " subplot = fig.add_subplot(141+i)\n", + " subplot.spines['top'].set_visible(False)\n", + " subplot.spines['right'].set_visible(False)\n", + " subplot.spines['left'].set_visible(False)\n", + " subplot.spines['bottom'].set_linewidth(2)\n", + " \n", + " # show true coefficient (yellow dotted line)\n", + " plt.axvline(true_coeff[i], color='tab:olive', linestyle='--', lw=4, label='True \\ncoefficient')\n", + " \n", + " # plot confidence intervals\n", + " for lower,upper,pointestimate,y in zip(dataset['lower'],dataset['upper'],dataset['pointestimate'],range(len(dataset))):\n", + " subplot.scatter([pointestimate], [y], color=colors[y], s=400)\n", + " subplot.scatter([lower, upper], [y, y], color=colors[y], marker='|', s=400, lw=5)\n", + " subplot.plot((lower,upper),(y,y),color=colors[y], lw=6)\n", + " if y == 0:\n", + " # compute PTD effective sample size improvement over classical method\n", + " ptd_effective_n_improvement = np.round((classical_ci_width/ptd_ci_width)**2, 1)\n", + " subplot.text((lower+upper)/2, 0.2, f'{ptd_effective_n_improvement}x', fontsize = 40, c='blue', weight='bold')\n", + " \n", + " subplot.tick_params(axis=u'both', which=u'both',length=0)\n", + " if i == 0:\n", + " subplot.set_yticks(range(len(dataset)),list(dataset['category']))\n", + " else:\n", + " subplot.set_yticks([])\n", + " subplot.set_xlabel(f'{variable}')\n", + " subplot.set_ylim(-0.2)\n", + " \n", + "plt.tight_layout() \n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "9c05961b", + "metadata": {}, + "source": [ + "# Example 4: Weighted linear regression coefficient estimation" + ] + }, + { + "cell_type": "markdown", + "id": "2299539e", + "metadata": {}, + "source": [ + "In this example, we show how to estimate linear regression coefficients when the calibration dataset is obtained by a weighted sampling scheme, such that some points are more likely to be sampled than others. \n", + "\n", + "We use the same setup as Example 1. The goal is to estimate linear regression coefficients relating tree cover to two covariates (elevation and population). The calibration set will be chosen using weighted sampling based on longitude, such that points in the east are more likely to be sampled than points in the west. " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "9273049b", + "metadata": {}, + "outputs": [], + "source": [ + "truth_Y = np.array(data['truth_tree']).reshape(-1, 1)\n", + "preds_Y = np.array(data['preds_tree']).reshape(-1, 1)\n", + "\n", + "truth_X = np.array(data[['truth_elevation', 'truth_population']])\n", + "preds_X = np.array(data[['truth_elevation', 'preds_population']])" + ] + }, + { + "cell_type": "markdown", + "id": "3daf1122", + "metadata": {}, + "source": [ + "For the weighted sampling, we first partition the dataset into 4 quartiles (i=1, 2, 3, 4) based on longitude, such that the westernmost quartile is i=1 and the easternmost quartile is i=4.\n", + "\n", + "Each point in quartile i is given the score $$q(i)=5^i$$\n", + "\n", + "Finally, we assign a sampling probability to each point by normalizing the scores to sum to 1. By design, points in the east will have a higher probability of being included in the calibration set than points in the west. " + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "7e5c5a75", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
truth_treepreds_treelonlattruth_elevationpreds_elevationtruth_populationpreds_populationquartile_numberquartile_scoreprobability
00.000000000.00000000-119.7940186146.773156940.423913880.963783810.290984610.22361307150.00000038
10.000000000.00000000-107.4401421536.628411782.015408071.779981880.070058621.08949520150.00000038
232.5111759042.11103850-87.5802872430.316254210.00505927-0.016801121.771784792.9234136931250.00000943
31.706111110.00000000-102.3167953943.250483441.000074751.164282822.654329320.872535542250.00000189
434.1219743738.17914530-97.6617115129.815674530.144380430.310666071.539580681.788519232250.00000189
....................................
679630.0563654011.82932282-99.7413495732.537026110.521323150.422671533.776048513.563149232250.00000189
679641.926315798.44263317-83.3521489141.014260280.256470590.174456533.064954152.7105153046250.00004714
679652.947000000.00000000-86.8503480536.650512390.169111720.125458994.120612743.1659703231250.00000943
679660.084062207.71593830-99.9066188231.509564680.495074400.488692640.945091881.091228162250.00000189
6796771.3658892169.24290786-93.4886629432.385969100.068959270.115068072.072552602.3464256331250.00000943
\n", + "

67968 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " truth_tree preds_tree lon lat truth_elevation \\\n", + "0 0.00000000 0.00000000 -119.79401861 46.77315694 0.42391388 \n", + "1 0.00000000 0.00000000 -107.44014215 36.62841178 2.01540807 \n", + "2 32.51117590 42.11103850 -87.58028724 30.31625421 0.00505927 \n", + "3 1.70611111 0.00000000 -102.31679539 43.25048344 1.00007475 \n", + "4 34.12197437 38.17914530 -97.66171151 29.81567453 0.14438043 \n", + "... ... ... ... ... ... \n", + "67963 0.05636540 11.82932282 -99.74134957 32.53702611 0.52132315 \n", + "67964 1.92631579 8.44263317 -83.35214891 41.01426028 0.25647059 \n", + "67965 2.94700000 0.00000000 -86.85034805 36.65051239 0.16911172 \n", + "67966 0.08406220 7.71593830 -99.90661882 31.50956468 0.49507440 \n", + "67967 71.36588921 69.24290786 -93.48866294 32.38596910 0.06895927 \n", + "\n", + " preds_elevation truth_population preds_population quartile_number \\\n", + "0 0.96378381 0.29098461 0.22361307 1 \n", + "1 1.77998188 0.07005862 1.08949520 1 \n", + "2 -0.01680112 1.77178479 2.92341369 3 \n", + "3 1.16428282 2.65432932 0.87253554 2 \n", + "4 0.31066607 1.53958068 1.78851923 2 \n", + "... ... ... ... ... \n", + "67963 0.42267153 3.77604851 3.56314923 2 \n", + "67964 0.17445653 3.06495415 2.71051530 4 \n", + "67965 0.12545899 4.12061274 3.16597032 3 \n", + "67966 0.48869264 0.94509188 1.09122816 2 \n", + "67967 0.11506807 2.07255260 2.34642563 3 \n", + "\n", + " quartile_score probability \n", + "0 5 0.00000038 \n", + "1 5 0.00000038 \n", + "2 125 0.00000943 \n", + "3 25 0.00000189 \n", + "4 25 0.00000189 \n", + "... ... ... \n", + "67963 25 0.00000189 \n", + "67964 625 0.00004714 \n", + "67965 125 0.00000943 \n", + "67966 25 0.00000189 \n", + "67967 125 0.00000943 \n", + "\n", + "[67968 rows x 11 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(seed=100)\n", + "# map each point to its longitude quartile (1, 2, 3, or 4)\n", + "perc = np.percentile(data['lon'], [25,50,75])\n", + "data['quartile_number'] = 1 + np.digitize(data['lon'], perc)\n", + "\n", + "# assign quartile scores q(i) = 5^i\n", + "data['quartile_score'] = np.array([5**i for i in data['quartile_number']])\n", + "\n", + "# compute probability of sampling each point by normalizing the quartile scores to sum to 1 \n", + "data['probability'] = data['quartile_score']/data['quartile_score'].sum()\n", + "\n", + "display(data)" + ] + }, + { + "cell_type": "markdown", + "id": "a0827fc9", + "metadata": {}, + "source": [ + "Using these sampling probabilities, we randomly sample n=1000 points (out of the 67968 total points) to use as the calibration set. The remaining 66968 points are the unlabeled set." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "484cbe05", + "metadata": {}, + "outputs": [], + "source": [ + "# sample calibration set using the given probabilities\n", + "n = 1000\n", + "calibration_indices = np.random.choice(np.arange(0, len(data)), size=n, replace=False, p=data['probability'])\n", + "\n", + "X = statsmodels.tools.add_constant(truth_X[calibration_indices])\n", + "Xhat = statsmodels.tools.add_constant(preds_X[calibration_indices])\n", + "Xhat_unlabeled = statsmodels.tools.add_constant(np.delete(preds_X, calibration_indices, axis=0)) # all predicted datapoints except calibration indices\n", + "Y = truth_Y[calibration_indices]\n", + "Yhat = preds_Y[calibration_indices]\n", + "Yhat_unlabeled = np.delete(preds_Y, calibration_indices, axis=0) # all predicted datapoints except calibration indices" + ] + }, + { + "cell_type": "markdown", + "id": "a934bc61", + "metadata": {}, + "source": [ + "In order to get approximately unbiased estimates of the linear regression coefficients, we will need to compute sample weights for the calibration set and the unlabeled set. \n", + "\n", + "We use Inverse Probability Weighting. A calibration point with sampling probability p has weight 1/p, while an unlabeled point with sampling probability p has weight 1/(1-p). " + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "b6fbb969", + "metadata": {}, + "outputs": [], + "source": [ + "# to compute sample weights, we need to rescale the probabilities so they sum to n (the number of calibration samples)\n", + "data['probability'] = n*data['probability'] \n", + "\n", + "# sample weights (Inverse Probability Weighting)\n", + "w = (1/data['probability'])[calibration_indices].to_numpy()\n", + "w_unlabeled = np.delete(1/(1-data['probability']), calibration_indices, axis=0) # all predicted datapoints except calibration indices" + ] + }, + { + "cell_type": "markdown", + "id": "9fba902d", + "metadata": {}, + "source": [ + "We use the same functions as Example 1 to compute point estimates and confidence intervals for the linear regression coefficients. We will compare the true coefficient with the PTD, classical, and naive estimators. \n", + "\n", + "Note that we use the sample weights w and w_unlabeled as inputs to **ptd_linear_regression**. We also use w as an input to **classical_linear_regression_ci**. (We do not use any weights for the naive estimator, since it uses the full predicted dataset and does not use the calibration set.)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "86544473", + "metadata": {}, + "outputs": [], + "source": [ + "true_coeff = ptd.algorithm_linear_regression(data=[statsmodels.tools.add_constant(truth_X), truth_Y], w=None)\n", + "\n", + "tuning_matrix, ptd_pointestimate, ptd_ci = ptd.ptd_linear_regression(X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, \n", + " w=w, w_unlabeled=w_unlabeled,\n", + " B=2000, alpha=0.05, tuning_method='optimal')\n", + "\n", + "classical_ci = classical_linear_regression_ci(X, Y, alpha=0.05, w=w)\n", + "classical_pointestimate = (classical_ci[0]+classical_ci[1])/2\n", + "\n", + "naive_ci = classical_linear_regression_ci(statsmodels.tools.add_constant(preds_X), preds_Y, alpha=0.05)\n", + "naive_pointestimate = (naive_ci[0]+naive_ci[1])/2" + ] + }, + { + "cell_type": "markdown", + "id": "5fae1a11", + "metadata": {}, + "source": [ + "We visualize the coefficient point estimates and confidence intervals for PTD, classical, and naive estimators.\n", + "\n", + "The yellow dotted line is the \"true coefficient.\" The effective sample size improvement of PTD compared to the classical confidence interval is shown in blue.\n", + "\n", + "We see that the naive estimates are biased relative to the true coefficient, while PTD has statistically valid confidence intervals (which, in the figure, contain the true coefficient). The PTD confidence intervals are also narrower than the classical confidence intervals." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "560a5d53", + "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", + "
categorylowerupperpointestimate
0PTD (weighted)28.0181132138.9639431034.74788264
1Classical (weighted)18.8145901452.9968789135.90573453
2Naive29.2062150030.2270445329.71662976
\n", + "
" + ], + "text/plain": [ + " category lower upper pointestimate\n", + "0 PTD (weighted) 28.01811321 38.96394310 34.74788264\n", + "1 Classical (weighted) 18.81459014 52.99687891 35.90573453\n", + "2 Naive 29.20621500 30.22704453 29.71662976" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
categorylowerupperpointestimate
0PTD (weighted)-17.29942190-7.97645045-13.65211767
1Classical (weighted)-16.232556235.33752187-5.44751718
2Naive-10.29206477-9.58677065-9.93941771
\n", + "
" + ], + "text/plain": [ + " category lower upper pointestimate\n", + "0 PTD (weighted) -17.29942190 -7.97645045 -13.65211767\n", + "1 Classical (weighted) -16.23255623 5.33752187 -5.44751718\n", + "2 Naive -10.29206477 -9.58677065 -9.93941771" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
categorylowerupperpointestimate
0PTD (weighted)-2.027738712.830601980.22872327
1Classical (weighted)-5.531538514.61908689-0.45622581
2Naive1.870561912.193313162.03193753
\n", + "
" + ], + "text/plain": [ + " category lower upper pointestimate\n", + "0 PTD (weighted) -2.02773871 2.83060198 0.22872327\n", + "1 Classical (weighted) -5.53153851 4.61908689 -0.45622581\n", + "2 Naive 1.87056191 2.19331316 2.03193753" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAACZEAAAIhCAYAAAA1wGb6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3iT1fvH8U/aUqBAS5myBARkb1CWbBQBWSIKKNuBA8QFiAgKCo6vC0EREGQpskREtuwle8suFLCsFgoU6Mrvj17wMzxP0jRJm7Z5v66LS3Of55xzl6TpecqdcyxWq9UqAAAAAAAAAAAAAAAAAIBP8vN2AgAAAAAAAAAAAAAAAAAA76GIDAAAAAAAAAAAAAAAAAB8GEVkAAAAAAAAAAAAAAAAAODDKCIDAAAAAAAAAAAAAAAAAB9GERkAAAAAAAAAAAAAAAAA+DCKyAAAAAAAAAAAAAAAAADAh1FEBgAAAAAAAAAAAAAAAAA+jCIyAAAAAAAAAAAAAAAAAPBhFJEBAAAAAAAAAAAAAAAAgA+jiAwAAAAAAAAAAAAAAAAAfBhFZAAAp4wYMUIWi8Xwp2/fvqky35o1a0znO3bsWKrM50mNGzc25D1ixAhvpwUAAAAAAAAAAAAAgCmKyAAAbpk8ebKWLVvm7TQAAAAAAAAAAAAAAICLKCIDALjt+eefV3R0tLfTAAAAAAAAAAAAAAAALgjwdgIAgIwvPDxcb7zxhiZNmuTtVAAAKbRteydFR++yiQUHV1ftWnO9lBEAAID7WOMAAAAAQObE/R6QetiJDADgEZMnT9by5cu9nQYAAAAAAAAAAAAAAEghisgAAB7Tt29fjrUEAFdYrVJ0tHTpUtJ/rVZvZwQAAID0irUjAAAAAKQP3J8hk+E4SwCAx4SHh+vNN9/UxIkTvZ2KV61Zs8bbKQBIT0aOlBISjPFLl6TgYGnrVmn79qQbzDuCg6VataSHH06K58tn7O/vLw0blnp5AwAAIO2xdgQAAAAA77N3b+bvL3XoIM2axf0ZMiWKyAAAHjVp0iR17txZLVq08HYqAJA+jBolxcaatwUEJN2I3vvppOhoafVqad06KT7evG9gIDeaAAAAmQ1rRwAAAADwPnv3ZhaL9P773J8h0+I4SwCAx/Xt21fXrl3zdhoAkP7Fx9vf3tpqtX+TCQAAAN/D2hEAAAAAvOvOPRn3Z8ikKCIDALgsb968KlmypCF++vRpvfnmm17ICAAAAAAAAAAAAAAApBRFZAAAl2XLlk0//vijLBaLoW3ixIlasWKFF7ICgHTG3qeR0uu4AAAA8B7WjgAAAACQuXF/hnQswNsJAAAytsaNG6tfv34aP368oa1v377av3+/cuXK5YXMzF2+fFn79u1TeHi4Ll26pJs3byoxMVHZsmVT3rx5VaxYMVWuXFkFCxb0dqrpxvHjx+/+nV27dk0Wi0UhISEqXry4qlevrsKFC3s7RSD9unxZiotLnbHj4qTISClPntQZHwAAAGmLtSMAAAAAZH7cnyEdo4gMAOC2Tz75REuWLNHJkydt4qdPn9Zbb72lCRMmeCmzJNu2bdPMmTO1ePFiHTt2zKk+ZcqU0ZNPPqkXX3xRJUqUSNF8jRs31tq1a21iw4cP14gRI2xib731lv73v//ZxEJCQhQREaFs2bKlaM7/SkhIUNGiRRUREWETHzNmjAYNGuTUGEePHtX48eM1Z84cnT171uG15cqVU5cuXdSvXz/lz5/f5byBTOm111J//JkzU3cOAAAApA3WjgAAAACQPsTHp+743J8hneI4SwCA23LmzKnJkyebHmv5ww8/aNWqVV7IStq6davq16+vhx56SF9//bXTBWRSUhHVmDFj9OCDD2rgwIG6deuWx/Pr3bu3IXb16lUtWrTIrXFXrFhhKCDz9/fXc889l2zfyMhIvfDCCypXrpy++uqrZAvIJOmff/7R8OHDVaJECY0aNUpxqfXJeSCjWbxY+vnn1J1j1izpzz9Tdw4AAACkPtaOAAAAAJA+LF4sJSam7hzcnyGdoogMAOARTZo00UsvvWTa1qdPH127di1N8/n4449Vr149bdq0ya1x4uLi9NVXX6lp06a6ceOGh7JLUqFCBT300EOG+IwZM9wad/r06YbYY489luyxk9u2bVO1atU0ceJEJbqwOI6JidGwYcPUsGFDQxEb4JNGj5b8Unm57e+fNA8AAAAyNtaOAAAAAJA+pMV9E/dnSKcoIgMAeMynn35qevTjqVOn9Pbbb6dZHh988IGGDh3qsBAqKChIhQoVUvHixRUaGmq6i9p/bd68We+//76nU1WvXr0MsSVLligyMtKl8a5fv67ffvvNqXn+a926dWratKnCw8PtXpMlSxbdd999uu++++Tv72/3ui1btqhB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cfXs2dPl/k899ZRCQkIM8QsXLqh27doaOnSoDh48KKvVatN+5swZTZs2TS1bttRDDz2kvXv3JjvXpUuXXM4zpfLkyaO2bds6vKZjx44KDg52afy8efPq119/VZYsWQxtERERatKkidq3b6/ffvtNN27csGk/duyYxowZo/Lly+u3334zHX/ChAmmu8QBAAAAAAAAAAAAANIPisgAAOnGl19+qSJFirjUN1++fPrggw9M227evKmPP/5YFStWVM6cOVWsWDHdf//9ypUrl4oVK6YePXpo2bJlhn6dOnVSzZo1DfF//vnHpRxdldxRla4cZflfderU0ffffy8/P/NlwcKFC9WhQwflzJlTefLkUfHixRUcHKwyZcpoyJAhioiIMO03aNAgdevWza3cAAAAAAAAAAAAAACpjyIyAEC6kTt3breOtRwwYID69Onj8JqYmBidOXNG4eHhun79uuk12bNn15dffqk5c+aoTp06hvZVq1a5nKMrHnvsMbvFdcWLF1eTJk3cnqN3796aM2dOsjuaRUVF6fTp0w6P9PTz89OYMWM0ZswYt/MCAAAAAAAAAAAAAKQ+isgAAOlKq1at1KNHD5f7//DDD/roo48UEBDgUv+2bdtqz549ev311yVJDRs2NFyzZMkSw9GOqcnPz0/du3c3bevZs6csFotH5unYsaP27Nmj9u3buzxGpUqVtHHjRg0aNMgjOQEAAAAAAAAAAAAAUh9FZACAdOerr75S4cKFXerr5+end999V/v379fLL7+s3LlzJ9unfPnyeu2117Rnzx4tXLhQZcqUudvWtm1bwxhRUVH68ccfXcrPVWZHVlosFrcK7syUKFFCCxYs0J49e/TKK6849TwEBQXpiSee0O+//67du3eb7t4GAAAAAAAAAAAAAEi/LFar1ertJAAASC1Wq1UHDx7U3r17dfnyZV29elVBQUHKmzevChQooBo1aqhAgQLeTjNdO3nypPbv36/Tp08rOjpaiYmJCgkJUZ48eVS+fHlVrlzZ5Z3fAHjftu2dFB29yyYWHFxdtWvN9VJGAAAA7mONAwAAAACZE/d7QOrhX3wBAJmaxWJRxYoVVbFiRW+nkmGVLFlSJUuW9HYaAAAAAAAAAAAAAIBUwnGWAAAAAAAAAAAAAAAAAODDKCIDAAAAAAAAAAAAAAAAAB9GERkAAAAAAAAAAAAA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PXv21E8//WQT69Gjh6ZOneqdhHCXxWIxxFavXq3GjRvb7VOiRAm1bdtWCQkJkqSNGzdq+fLlpmMBAAAAAAAAAAAAANK3VD3Ocu3atWrVqpVKlSqlt956Sxs3bky2gEySEhMTdfDgQX3xxReqWLGiGjRooC1btqRmqgA86Pvvv79bQCYl7VBUuXJlL2YE2Ldr1y4NHjzY22lkOBUqVNCLL7549/HKlSv1zTffeDEjAAAAAAAAAAAAAICrUqWILCwsTC1btlTjxo21ZMkSt8fbuHGj6tWrp759+yo6OtoDGQJILUePHtVbb71193FwcLBGjhzpxYwAc1evXtWAAQNUu3ZtCpVd9MEHHygkJOTu48GDB+vQoUNezAgAAAAAAAAAAAAA4AqPF5FNnDhRlSpV0rJly5K9Nlu2bCpUqJCKFi2qHDlyOLzWarVq8uTJatCggcLDwz2VLgAP69Onj27cuHH38TvvvKP8+fN7MSPAaObMmSpXrpy++eabu8cxIuXy5cunQYMG3X1869Yt9erVS1ar1YtZAQAAAAAAAAAAAABSKsBTA1mtVr377rsaM2aM3WuKFy+u5557To888ohq166t0NBQm/bLly9r69at+v333zVr1ixdu3bNMMa+ffv08MMPa926dSpdurSn0gfgAdOnT9f69evvPi5cuLAGDhzoxYwAoy+++EJvvvmmt9PINF5//XWNHz9eZ86ckSRt3bpVP/74o/r06ePlzAA46/jxzxUTE2YTCwoqoVKl3jLvAAAAkAGwxgEAAACAzIn7PSD1eKyIrH///vr2229N2x544AF98cUXatu2rSwWi90x8ubNq1atWqlVq1b65JNPNHToUH333XdKTEy0ue7ff/9V27ZttWXLFgUHB3vqSwDghujoaL3zzjs2sffee09BQUFeyggwx7HInpU9e3a99957eumll+7GBg8erI4dOxqKxQGkT5FRWxQdvcsmFhxcXaW8lA8AAIAnsMYBAAAAgMyJ+z0g9XjkOMvx48fbLSB76aWXdODAAbVr185hAdm9QkJC9O2332revHnKmjWrof3QoUPq2bOnqykjHerZs6esVqvNn7CwMG+nBSd98MEHioiIuPu4ePHi6tu3rxczyrzCwsIM3yu8H8KbevfurZIlS959fOnSJQ0bNsyLGQEAAAAAAAAAAAAAUsLtIrIdO3ZowIAB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cmn7pYSEBK1YscIQz5Ytm1q1St3zfCdPnqy1a9dq5MiRatGiRZoUkMXHx2vs2LEqVqyYnn32Wc2fP9+pArI7ff/66y/17t1bDz74oH777bcUz3/79m29+eabKleunEaNGpVsAdmdedetW6dXX31VxYoV09ixY1NUDCFJV69eVc+ePVW1alV9+eWXyRaQ3cl16dKl6tGjh0qWLKlffvklRXN6wm+//aayZcvqmWee0R9//OGwgExK2k1rxowZql+/vjp27Kh///03xXPOnDlTpUqVUvv27TVjxgynCsgkKTExUVu2bNGAAQNUsmTJFBdReduECRMMsccffzzZfm3btjXEli1bluL5zd6HJOmvv/5K0TgxMTFavXq1TczPz09PPPFEsn03b96s6tWrq127dlq4cKHDAjJJiouL09KlS/X000+rcuXKhnnTyldffaXSpUvrww8/TLZQ88iRIxo4cKAqVqyoLVu2pEo+//zzj+rVq6dOnTpp9erVdgvIpP9/X+3QoYMaN25sKKhLa+Hh4XryySdVs2ZNTZw4MdkCMimp4OyNN95QiRIl9N1336X4/fm/rFarvvzyS5UqVSrZ5zMxMVGrVq1S06ZN9corr+jGjRsuz2uP2TrA7L0CAFLb5ZjLajG9hUd+yXNHgjVBN2JvqPn05mw/DwAA4GNYXwIAAPgO1n4AfJVLRWSbN2/WlStXDPFGjRopKCjI3ZzSlQsXLqhp06bq37+/04VB9oSHh6tDhw764osvnO4TFRWlRx99VF988YXi4uJcmvfKlSvq37+/OnXqpPj4eKdzrV+/vn766SeXixvOnTunLl26aMCAAS71T6nY2Fg999xz6tChg44fP+7SGAsWLFC1atVsjmJz5MaNG3ryySf17LPPul3IEhkZqRdffDHN/r7ctW/fPsNuYkWKFFGlSpWS7WtWRHb69Gn9888/Ts9vtVq1cuVK07aUFpGtXLnSUPxVr169ZI/9Gz16tBo0aOD06+Vehw4dUrNmzTR8+HCX+rvi1q1bevLJJzVw4EBFR0enqO/x48fVsGFDzZ4926M5LVmyRA899JBLBWrr1q3Tww8/rEOHDnk0J2ctWbJEVatW1fz5813qHxkZqZdffllt27bVtWvXUtw/JiZG7dq10xtvvJGi59NqtWr8+PFq0qSJYTdBd5UrV07333+/TezAgQPatm2b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HpSkMmXKmB6XuHLlSu3cuTNFYyVn8+bNWrt2rSH+zjvvOFVAdkft2rXtHuPpjkKFCmnq1KnJFpDdYbFY9N5775m2me3s5UnXrl3ThAkTDPEXX3zR6QKyO3LmzKnZs2crX758NvGoqCj98MMPdvvt37/ftNCwX79+ThWQ3dGxY0fTnRY9pUaNGoaY2fcPAAAAAAAAAAAAAMD7XCoiMzvOLHv27G4nk17s2rVLN27cMMSTO17MnsDAQNPj6RwVVEVGRhpiFy9eTPHcFSpU0OOPP64nn3xS77zzjr7//nstX77c7k49npq3WbNmqlu3rp5++mm9++67mjRpkv766y+Pv07MjsbLnz+/Ro0aleKxOnbsqNKljduF3lusERERoWPHjhmuc/X1IUn16tUzxDxdcOdJ27ZtM8RSskPfHWbHkDpTRHbvc5IvXz69+OKLhuuS243swoULhqKjYsWK2T1O8n//+58h9sgjj+iZZ55JLmVTTZo0UfPmzQ3xb775xqXx7JkyZYohVqhQIZd2BuzevbuaNGnigaz+38CBA00LbR1p3Lix6a6MqV18OWnSJF29etUmFhISoo8//til8fLnz6/XX3/dEHf0GpgxY4YhliNHDpdyGDVqlAoUKJDifs4we08we+8AAAAAAAAAAAAAAHifS8dZxscbz/C897i/jOyhhx5STEyMwsLCdPz4cZ04cUKXL19W+fLlXR6zYMGChti9R+L9V/78+Q2xU6dOafr06XruuedSNPeff/7p9LVm865bt05r165Vo0aNnB4na9as2rRpk9PXuyI+Pl5Lly41xJ977jlly5bys2QtFos6deqkmTNnqmzZsipbtqzKlStn2GHqvvvu082bN3Xq1CmdOHFCJ06cUFhYmJo1a+by15LS14e3HTx40BArU6ZMisdp1aqVAgICbN5T9u7dq4iICN133312+91bRNa0aVPVr1/fcN3q1av17LPP2h1n8eLFhmM57e3kdPPmTS1ZssQQf+GFF+yO74xu3bpp5cqVNrFVq1a5NeZ/Wa1WzZ8/3xDv1auXy7tHvvLKK4YjGN3hyvGGFotFVatW1fr1623i9x6f6Gnz5s0zxDp16qQ8efK4PGa3bt0MO6udOnVKx44dMy1sXbhwoSHWoUMHp446vleOHDnUtWtXffXVVynumxyz94R//vnH4/MAAAAAAAAAAAAA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MjiTrCcwMFClSpXSwYMHbeJHjx7VtWvXFBwcnK7HX7RokSHmyr9bx44dtXLlSpvY77//7nT7v/76y+HMT8uWLVOtWrWc6susiMzRUpZLlizR888/b7qtXLlyGjFihFq1aqWyZcvejMfHx2v58uWaPXu2Zs+eLavVasjhlVde0fjx453K2R1ffPGF/ve//5luq1Gjhp555hl17NhRefLkkZQ6y9U///yjadOmadasWTY52+vHVbfPABcUFKR+/fqpf//+qlu3roKCgiRJ169f16pVq/Txxx+bLql57tw5jRkzxrS4rVKlSpo5c+bN31euXGnIP3/+/Pr4448Nbe0tqxsdHa2uXbvqypUrhm158+bVsGHD1LlzZ9WqVUt+/ze6T0lJ0YYNGzR//nx98cUXhrYHDx5Ujx49tHz5ctMC0dt98cUXmjZtmum2e+65R88884w6dOhwsyA3ISFBf/31l/73v/9pwYIFN/fdvn17msdyVatWrfTqq6/axJYsWaLk5GSHxXRAZnHtmnTwoGTvYyYlRUpj5dgs5eDB4rp61fY9KWfO4goNydg89u+X/v03/Y+TnCytWiUtXCjd8lGd5Th6fl67JqXzUBAA7hjZ7XPfU1np8zqzjHHAuAUAACAz4Rwo68hK518ZjfM953E+BpdZARPTpk2zSjL8LF++3GvHGDdunOkxJFk3btzoteP079/f9BjeZnaM/v37e/04t2rTpo3pcf/77790PW5SUpI1PDzccNy///7b6T727dtnmvuxY8ecaj9kyBC7zx9J1jZt2jjVz9mzZ61+fn42bfPmzWtNTEw03f/YsWPW/PnzG44XEBBgffvtt61JSUlpHnPjxo3W0qVLG/qwWCzWn3/+Oc32TZo0MbQdPXq0wzaHDh2yhoaGmj5Wb7zxRpp5r1q1ylqkSBGHj3laz/fRo0c7bF+nTh3rvn370vz7J0yYYNo+LCzMGhcXl2Z7s/e3UqVKpdnuhsTERGujRo1Mc3jooYesly5dSrOPEydOWFu3bm3ax7PPPptm+8OHD9v993z77betycnJDtsvWLDAmitXLof/HtOmTXP2ITFITEy0BgcHG/pctWqV230CGWnnTqtV4oefrPuzc6evX0UAkHXwuc8PP779YdwCAACQsTgH4ocffm78cD4GMyxniQx39uxZ9evXzzBLzQ3t27dX7dq1MzirrKlw4cKmcbMlQr1px44diomJsYn5+fmpZs2aTvdRrlw5VaxY0RB3dknLP//80+H2lStXGpbbNLNkyRLDjGbt2rWzOxPUs88+q3PnztnE/P399eOPP+qll15yapal2rVra/Xq1apSpYpN3Gq16rnnnnM4w5q7xowZo7i4OEP8iy++0GuvvZZm3g0bNtTKlStVvHhxr+cmSfXr19eKFStUrly5NPcdMWKEBg4caIjHxsZqzZo16ZGejcmTJ2vVqlWG+MiRI/XDDz8od+7cafZRpEgRLVq0SL169TJs++STT3TkyBGH7d966y3Tf89PP/1UL7300s3Zz+zp1KmTfvvtN6eWn3VHQECAqlevboivXr06XY4HAAAAAAAAAAAAAPAMRWRINykpKYqJiVF0dLRWrlypL7/8Up07d1bx4sVtlpa7VUhIiN5h0WWn2SsAMVtiz5vWr19viJUtW1ZhYWEu9dOxY0dDzJklLffv36/Dhw/bxG4vyLpy5YppnrdzZSnLqKgo/fTTT4b4uHHj1KVLlzSPdatChQppzpw5N5drvGHfvn02Sw16w7Fjx/Ttt98a4r169dKwYcOc7qdMmTKaOXOmLBaLN9NTSEiIfvjhB5cKml555RXTPDZu3OjN1AxSUlL00UcfGeKtW7fWBx984FJfAQEBmjp1qipUqGATT0pK0ocffmi33fnz5zVjxgxDvF27dnryySedPn7Dhg311ltvOZ+wi8yWk3XmNQkAAAAAAAAAAAAAyHgUkcElzZo1k8VicerH399fuXPnVokSJdS4cWM98cQTWrhwoRISEuz2P3HiREMxEOyzV3RjNkORN23YsMEQK1++vMv9mBWRLV26NM2ZuG6fhczf318vvviiYb9ly5Y57CcpKckw81lwcLBat25tuv+ECROUnJxsEytTpoyeffZZh8exp2LFiurXr58h/umnn7rVnz0zZ8405J0jRw598sknLvfVtGlTDRgwwEuZpRo4cKBKlCjhUpsyZcqocuXKhvjtxYXetnDhQh04cMAm5u/vr08//dSt4rqQkBC99tprhvjUqVN19epV0zZz5swxvI9aLBZNmDDB5eM/+eSTqlq1qsvtnGH2nmD23gEAAAAAAAAAAAAA8D2KyJBpvPrqq+rfv7+v08hSAgMDTeOJiYnpetzdu3cbYs4sQ3i7+vXrq2DBgjaxCxcupDmb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/fHHH6bbnCkOu6FFixaaO3eu3X7cLcB79tlntXPnTk2fPt2w7fr16/r888/1+eefy8/PTwUKFFBgYKDOnj2r69ev2+0zKChIs2bNUoUKFdzKyRklS5bUwoUL1bp1a9PlGw8cOKAJEyak2U+TJk0UGBiopUuX2sTTq/jN2yIjI5U7d25dvnzZJv7bb7+paNGiKly4sKxWq86cOaO///5bDRo0MPRx77336quvvtKQIUNMC80WLlyohQsXSkp9vYaFhenixYtpLps5atQoPfzww079HbVq1dLMmTPVq1cvwwxxp0+f1nPPPafnnntOYWFhyp07t06fPq3ExERDP/nz51eHDh00bdo0p47rjNufG1JqAWZoaKjXjgEAAAAAAAAAAAAA8J6scccfgKTU2ccGDx6snTt3+rSATEpdHvF2y5YtMy2ocVXHjh3tbqtVq5by5s3rVD8tWrSwu61BgwYqWLCgy7nd8PXXX+uVV15xOINTSkqKTp8+rejoaIcFZOHh4VqyZIk6derkdj7OatCggVasWKG77rrLrfZdunTRkiVLDEuOSjKdmSsz8vf316BBg0y3JScn6/jx4zpx4oSSkpK0bds2u/0MGjRIc+bMUXh4uMPjXbx4UUePHnVYQObn56fx48fbneXOnu7du+vHH39UWFiY3X1iY2MVHR1tWkAWGhqqBQsWqGjRoi4dNy1mRaBm7xkAAAAAAAAAAAAAgMyBIjIgCyhVqpSeeeYZ7dq1S5MnT/Z6wYc7KlSooFq1atnELl68qA0bNnjcd/HixVWzZk3Tbc4sZXlDmTJl7BZLubOU5a0sFovGjRunFStWqHr16m7307lzZ+3evdulv8tTtWrV0tatW/X88887PTNUoUKFNHnyZM2bN0+hoaFKSkoy7JOVZpkaN26c4flrZuvWrQ63d+3aVdu2bfPo+VSlShX9+++/GjVqlFvtu3btqo0bN6pJkyYutStVqpT+/vtvry8xmZycrOXLl9vEAgMD1b17d68eBwAAAAAAAAAAAADgPRSRAZmAxWJRWFiYihQpovLly6tp06Z64oknNHHiRG3atEmHDx/WRx99lK5LHbqjd+/ehtj8+fO90re9WblcLbayNxuZp0VkNzRu3FhbtmzR4sWL1b17d4czQt1QoEABPfroo9qwYYPmz5+vYsWKeSUXV4SHh+u9997TyZMnNXXq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g5iJDAAAAAAAAAAAAAAAAACyMT9fJwAAAAAAAAAAAAAAAAAA8B2KyAAAAAAAAAAAAAAAAAAgG6OIDAAA3NGSkpL0559/avTo0WrZsqUqVKigAgUKKCgoSHnz5lXZsmXVoEEDjRw5Uj///LOuXLni9RyuXr2q6dOna+DAgapSpYoKFiyooKAg5cqVS5GRkWrdurXeeecd7du3z+vHBpB97N69WyEhIbJYLDd/xowZ47X+eS8DACBzeeGFF2w+9w8fPpwuxzl//rwmTpyo3r17q2LFisqfP78CAwMVHh6usmXLqmPHjvrkk08UHR2dLscHMqvo6Gh9+OGH6tq1q8qWLau8efMqICBAuXPnVqVKldS9e3f973//07lz53ydKoA72IMPPmgzHvDGT+vWrX39ZwHZFuMLIHt69tlnvf55XrFiRbdysVitVquX/z4AAACfi42N1ZdffqnPP//cpZsZefLk0fDhwzVixAjlz5/foxyuXbumN998U1988YUuX76c5v4Wi0Xt2rXTBx98oAoVKnh0bADZS2Jiou69915t3rzZJj569GiPC8l4LwMAIPPZtWuXatWqpYSEhJuxqKgoRUZGeu0Yly5d0ssvv6zp06crPj4+zf0DAgLUq1cvjR8/XkWLFvVaHkBmc/z4cT333HOaO3eukpKS0tw/JCREQ4YM0dixY5UnT570TxBAtlKmTBkdOnTIq322atVKv/32m1f7BOAY4wsge2vevLmWLVvm1T4rVKigvXv3utyOmcgAAMAdZ/Xq1apevbpefPFFl78Nf+nSJY0bN06VKlXS0qVL3c5hz549qlmzpt5++22nii4kyWq16pdfflG1atX0v//9z+1jA8h+Ro8ebSgg8wbeywAAyHzi4uLUo0cPmwIyb1u1apUqV66siRMnOlVAJqXOAj1z5kxVqlRJP//8c7rlBvjS/PnzVaVKFX3//fdO3eCVpPj4eH366ae6++67tWbNmnTOEEB2EhMTo6ioKF+nAcBDjC8AbNu2zdcp3EQRGQAAuKPMnj1bjRs39vgCyrlz59SqVSt99tlnLrfdtm2bmjRp4laFvyQlJCToscce07hx49xqDyB7Wb16td577z2v98t7GQAAmU9ycrJ69uypXbt2pdsx/vrrL7Vq1UonTpxwq31MTIw6d+6sb775xsuZAb41a9Ysde/eXZcuXXKr/cmTJ9WsWTP99ddf3k0MQLa1bds2seAUkLUxvgBw7NgxnT9/3tdp3BTg6wQAAAC85bffftOAAQOUnJxsur1y5cq6//77dddddylPnjy6fPmyoqKitGzZMu3cudOwf0pKikaMGKEiRYqoW7duTuVw7tw5tW/fXmfPnjVsCwgIUKtWrXTvvfeqSJEiOnv2rHbs2KH58+ebfrv/tddeU+nSpdW7d2+njg0g+7ly5Yr69etn933PXbyXAQCQ+aSkpOiRRx7RokWL0u0Y+/fvV5cuXRQXF2fYFhwcrI4dO6pGjRoqWLCgTp48qU2bNumXX34xzJhgtVo1aNAgRUZGqnHjxumWL5BRVq1apYEDB5qOu8PDw9WlSxdVrlxZefPmVXR0tFavXq2lS5caijuuX7+uzp07a9OmTSpfvnxGpQ/gDrVlyxZfpwDAA4wvAEiZ7/OcIjIAAHBHuHDhgvr06aPExETDtrp16+rDDz9Uo0aN7Lb/+++/NXLkSMNycFarVX379lXNmjVVpkyZNPMYMGCA6RKazZs317Rp01SiRAnDtkuXLmnUqFGmy749/vjjuu+++0zbAcDTTz+tgwcPer1f3ssAAMhcEhIS1K9fP/3www/pdoykpCR1795dsbGxhm29evXS559/roiICMO2U6dO6fHHH9fChQtt4snJyXr44Ye1Z88e5cqVK93yBtLb5cuX1aNHD0OxpMVi0ZNPPql33nlHoaGhhnYHDhzQgAED9O+//9rEr1y5ot69e2v9+vXy82OxGADu27p1qyH28ssv66233sr4ZAC4hPEFgBvMPs979+6tb7/9NuOTEctZAgCAO8Trr79uOt1rv379tHLlSocFZJLUpEkT/fvvv3rooYcM265du6ZRo0almcPixYu1ePFiQ7xXr176888/7RZP5MmTR5MmTdKkSZMM22JjY/XCCy+keWwA2c+iRYs0depUr/fLexkAAJnL2bNn1bx583QtIJOkSZMmadu2bYb4iy++qNmzZ5sWkElS4cKFtWDBAr388suGbdHR0dzIRpY3btw40+VdJ06cqE8++cT0Bq8klS1bVitWrFDfvn0N2zZt2qTJkyd7PVcA2YvZTefatWtnfCIAXMb4AsANme3z3GJlsWwAAJDFnT9/XkWKFDHMQtakSRMtXbpUAQHOT76akJCgpk2bas2aNYZtu3fvVqVKley2rVat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CuB9jC8AfPvtt6pWrZoKFy6swMBA5c+fX3fffbeioqI86vf48eM6c+aMIe7q53mAR1kAAABkMvv379f999+vs2fPGrZFRERo4cKFatSokVeP2ahRI1ksFlmt1puxuLg4rV+/XvXr13erT7MlOFu0aOFuigAyqUqVKmnmzJle6eutt94yfHOxS5cu6tq1q2HfBg0aGGK8lwEAkD01btzYENu/f79OnDihokWLutzf9evXtXbtWkOcMQCymsaNG+vTTz+1ia1Zs0YJCQkKCgpyub/jx4+bLjfFawOAs/z9/bV7926bWEJCgrZu3ap69eq53e/KlStN42ZjBACeYXwBIDQ0VDt27DDE169fr7vuusvtfv/55x/TuKuf5xSRAQCAO8bp06f1wAMPmBaQlSxZUr///rsqVqzo9eMWKFBAderUMXzjZ/78+W4VXuzcudP0xO+BBx5wO0cAmVOhQoXUp08fr/Q1ZcoUQxFZtWrVnO6f9zIAALKnWrVqqVChQjp9+vTNmNVq1YIFCzRs2DCX+/vzzz915coVm5i/v7+aN2/uca5ARmrZsqUCAgKUlJR0MxYbG6ulS5eqbdu2Lvc3f/58Qyx//vyqVauWR3kCyD7MlsGTpHnz5rldRGa1WjV9+nRDvFixYipfvrxbfQKwj/EFAEef5z169HC736lTpxpiwcHBLl/bZzlLAABwR0hKSlL37t11+PBhw7Zy5crp33//TZcCshu6detmiE2fPl3x8fEu9zVx4kRDrEqVKnYHlgDgLbyXAQCQ/VgsFtOZS7/66iubGUqdZTYGaNOmjfLkyeNOeoDPhIeHq2XLloa42XM8LVarVZMmTTLEe/bsKYvF4lZ+ALKfhg0bKjw83BCfNWuWrl275laf8+bN0759+wzxxx9/3K3+ADjG+AJA2bJlVa5cOUN80aJFpstROmPjxo3666+/DPGHH35YYWFhLvVFERkAALgjjBkzxnTq9WLFimnZsmUqXrx4uh6/f//+CgiwneT17NmzGjdunEv97Nq1S5MnTzbEH330UY/yAwBn8F4GAED29MgjjxhiO3bs0JQpU1zq548//tCSJUsMccYAyKrMXhu//PKL/vzzT5f6mTx5snbu3GmI89oA4IqQkBDTL3+dOHFCH330kcv9nTlzRk888YQhniNHDj322GNu5QggbYwvAPTt29cQi4+P16uvvupyX/Hx8erfv7/ptqeeesrl/igiAwAAWd62bdv07rvvGuIhISFavHhxuheQSalL0pkN+t555x399NNPTvVx9uxZdezYUYmJiYa+Bw4c6JU8AcAR3ssAAMieateurWbNmhniTz31lNasWeNUH/v371fv3r0N8apVq6pdu3Ye5wj4QqdOnUxnCejVq5fp0u1mVq9erREjRhjibdu2ZZZeAC4bPny4/PyMt3fHjh2rFStWON3P5cuX1bVrV5vlrG944YUXVKBAAU/SBOAA4wsAgwYNUs6cOQ3xyZMn69tvv3W6n4SEBPXp00e7d+82bOvbt6+qVavmcm4UkQEAgCzvueeeU1JSkiH+3nvvqXr16hmWx+jRoxUSEmITs1qt6tu3r7755huHbffv368WLVro0KFDhm1jx45Vrly5vJorANjDexkAANnTO++8Y1j25tq1a2rfvr1+++03h203bNigFi1a6Pz584Zt77//vunNbiArCAgIMJ2V9/z582rRooU2btzosP2vv/6qDh06GJaZ8/f31/vvv+/VXAFkDzVr1tSQIUMM8YSEBHXo0EFz585Ns489e/aoSZMm+vfffw3bqlSp4tYsKACcx/gCQLFixex+3g4cOFCff/55mn0cO3ZMbdq00bx58wzbChUqpAkTJriVG2fvAAAgS1u3bp2WLl1quu3JJ5+UxWLx6o8jpUqV0vjx4w3xG1PJdurUScuWLbMpeIuKitJrr72m2rVra/v27Ya2LVq0ML0wBADphfcyAACyp3r16unpp582xC9cuKC2bdtqwIABWr9+vVJSUiSlFpnv2rVLI0aMUKNGjXT06FFD20GDBqlVq1bpnTqQrh566CF17drVED9y5IgaNmyoESNGaNeuXbJarZKklJQUrV+/XgMGDFC7du104cIFQ9vRo0fr7rvvTvfcAdyZ3n77bZUtW9YQv3Llirp37642bdpoyZIlio+Pv7ktOTlZK1eu1NChQ1W9enVt27bN0D5XrlyaNWuWgoKC0jV/AIwvAEgjR47Uvffea4gnJibqySefVP369TV37lzFxMTc3JaSkqLNmzdr1KhRqlSpkpYtW2ZoHxAQoG+++UYRERFu5WWx3njnAQAAyIIeeeQRff311xl2vLSGTlarVQ8//LC+++47u/v4+/urcOHCunTpkq5evWp3v8jISK1fv57p4wE4pWnT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jS9evFht2rTRmTNn7Lb18/NTgQIFVKxYMYfLYX711Vd64oknnMrnhx9+UMeOHR0WbOXIkUPFihVT/vz5HS6V9Msvv6h58+YOp4BPy19//aVHHnnE9AJUUFCQihcvfnO5SzOxsbHq1q2bfv/9d7dzAAAAvpGRhe2tWrVS0aJFDfFZs2a5dewbZs6caYj16tVLOXLksNvm119/VbVq1TRr1iyXboDa66t27do2y+NkdnPmzFG1atU0f/58t5YjSkxM1Mcff6xatWppx44dHueTlb9oAwBAWjZu3GhacF65cmWHyzOfOHFCjRo10sKFCx32nytXLpUoUcLhtRur1ap3331Xffr08agAacyYMZo6darptrCwMBUrVkwBAQF22+/bt0/NmzfX0aNH3c4hKxkyZIi++OILh/vceNxKliyp3Llzp9nnggUL0uwzM4iJiVHLli31v//9z+F+oaGhKlGihHLmzOlwvxkzZqhNmzaKi4tzO6cJEyZo9OjRptty5syZ5utISv1C8u3LfgJZAUVkAAAAQCY0fPhwXbhw4ebvoaGhevrpp7VmzRrFx8frxIkTOn/+vGJjYzV79mzVqVPHtJ+oqCh98sknptsqVaqkmTNn3vx59NFHDfvkz5/fZp8bPwUKFDDt88YsBWaFSnnz5tUrr7yiDRs26Nq1azp58qROnjyphIQErV27VqNGjTK9IHbw4EH16NHDrdm/JOn555+3+b1gwYLq37+/Xn75ZT3++OOqXr26pNQLcnXr1jW037t3r3r27GlajBcUFKRhw4bp77//1vXr13XmzBlFR0crJiZGv//+u1q2bGma08SJE/XTTz85zHvr1q3q37+/6d9dtGhRjR8/Xjt27NC1a9cUHR2ts2fP6vr161q+fLmGDRumoKAgQ7sNGzZo8ODBDo/rSP/+/W1unvr7+2vo0KHatGmTrl27pmPHjik+Pl47d+7U888/b3pDNiEhQT169LBbZNi1a1eb59p9991n2Oe+++4zPCcnTJjg9t8FAAAcy+jCdn9/f/Xt29cQ//77790u5Dp06JBWr15tiA8cONBumz///FOdO3d2+HcHBQWpYMGCioyMVP78+R3eDJWkM2fOqF+/flliVogPP/xQDz30kMO/39/fX0WKFEnz3/3AgQO67777tGbNGrfzycpftAEAwBn2ilYeeOABu23i4uLUpk0b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VK9e3eW+XGHvsXT3wkVaXH0s3f0W3g01a9Y03Mg9ePCgR30CAJAVTJs2zeHyiZlNehe2R0VF2cTWrFljOuOYJFksFg0YMECvv/66TXzWrFl66qmnHB7r4sWLWrx4sSFu71jelpCQoA0bNthdvjuz3dCzd3PNnaV8zPqYOXOmTez06dM6fvy4ihUr5lQfWemLNgAA3M5isSgoKEihoaHKnz+/ihYtqgoVKqh69epq0qSJKleu7FJ/t4+nJO99+bF27dqG8YvZ8ewJCAgwLeRxRc2aNXX06FGbmKPZa7OLq1ev6vDhw9q/f7927dqlnTt3auPGjQ4fG7Olyn0tPZ+/derU0fr169M8niPuXpu390WVzDbuBxyhiAwAAADIhNyZOcuR9LxYcP78+XTr28ztyxGlJW/evC4f4/jx46bxggULutyXKzL7Y1m2bFmPjmdW0HflyhVdvnxZuXPn9qhvAADgPZmtsL1///4aM2aMzc2XDRs2aN++fSpfvrzddj/88IMSEhJsYrVq1VK1atU8S/g2ycnJio6O1qFDh7R7927t2rVLW7du1ebNm02L8W7IbDf0zG6uBQcHu3xT24y9LyNERUU5XUSWlb5oAwDIHpYvX66mTZtm+HGvXr2qmJgYQ7xo0aJe6b9w4cKG2OnTp51uX7RoUbszMjnL7BqSvet1d6Lz589r9erV2rZtm/bu3auDBw8qKirKpX+HzOzEiROGWGZ5/kpZ69o84G0UkQEAAACZUI4cOXydgtMuXryYocdztfDJnZtNV65cMY17+wLC7TL7Y+lpoZe99levXqWIDACATCSzFbaXLFlS999/v5YuXWoTnzVrlt544w277W6f+UqSRzPCJSYmauPGjdq0aZN2796tAwcO6NChQzp69KgSExPd7jezMLuZV7BgQfn7+3vct9nNPMm1G3rczAMAIJW961beurZidi3t6tWrTrf3Rh5mfbiSQ1ZktVo1d+5cTZ06VUuXLr2jZ001ew6n5/M3Li7OpT6y0rV5wNsoIgMAAADgkUuXLmXo8eLj413a352bXvaOERoa6nJfrsjox9LVCyie3rgLDg42jd8+QwgAAPCtzFjYPmjQIEMR2bfffmu3iOzQoUNavXq1TSwoKEi9e/d2Ob89e/bo888/148//qhz58653D6ryOibeZJrN4O5mQcAQCp711Fy5szplf7NZhFzpfjaG4XfZteQ7uTrRxs3btTjjz9ud3nxtOTIkUPNmzdXnjx5NHv2bC9n531m/5bp/fy1Wq2yWCxeOQZwJ6OIDAAAAIBHzG7mBAUFaerUqT7Ixjty5cplGne16MpVZo9lsWLFNH78+HQ5nr2/056EhAQFBLh/GhkbG+uVPAAAQPrKjIXtXbp0UZ48eWxyO3TokNasWaP69esb9jebhaxjx47Kly+f03ldvXpVzz77rKZMmeL2TBCVK1dWt27dNHbsWLfaZ6SMvpknMRsYAADusFek5a2ZusyWynRlTOCNYi+za0h36vWjBQsWqHfv3k5/cdbPz0+RkZGqXr26ateurfr166tBgwYKDg7W9OnTs0QRWXh4uOGcIz2fv6GhoRSQAU6iiAwAAACARyIiIgyxhIQEdezYMd2Xf0wvefPmNY3bK4LyFrPHMi4uTn369EnX4zorJibGo9nYzC7iSFJYWJjbfQIAAO/LjIXtwcHB6tmzp7766iub+KxZs0yLyGbNmmWIDRw40OmcTp48qfbt22vz5s1Ot8mXL5+qVKmiWrVqqW7dumrSpImKFCkiSVmiiMxs7J6eN/Mk7xWpAQCQneTOnVv+/v6GIvfLly97pX+zfly5HmTvc98VZn1k1HXG69evZ8hxJGnTpk166KGH7C6Nni9fPjVq1Ei1atVSxYoVValSJZUrV87ubP9ZZQnMiIgIQxFZZnn+AtkdRWQAAAAAPGKv4Oro0aOqUqVKBmfjHfb+prNnz2b4cS9evKjY2NhMUWh14cIFFS5c2O32J06cMMSKFSvG0kQAAGQymbWwfeDAgYYish9//FETJkxQYGDgzdiaNWt04MABm/2KFCmiVq1aOXWcpKQkde7c2W4BWWBgoO655x7dc889qlKliipWrKgKFSqoQIECpvtnpZt5t0vPm3kSN/QAAHBXnjx5dP78eZuY2XUXdxw7dswQK1q0qNPtnVmqPC1mf0vp0qVd6sPdMVh6r0RwQ0JCgnr37m1aQFa1alW99957euCBB+Tn5+d0n87OZuZrZtdAM8vzF8junH/HAQAAAAATJUuWNI2vXbs2gzPxnvDwcOXOndsQ37Fjh0f9bty4UXPnztWmTZt08eJFw3Z7j+W6des8Oq63bN++3aP2W7ZsMcTK1faqKgAAGYNJREFUly/vUZ8AAMD7HBW2+1LdunVVuXJlm9i5c+f0xx9/2MTMlrLs27ev/P39nTrOW2+9pfXr1xviOXPm1DvvvKMzZ87o33//1YQJEzR48GA1atTIbgGZlLVv5p05c0ZJSUke9212M0/ihh4AAO666667DLGNGzd63K/VajW9fuNKAdfZs2d16tQpj/Jw9RqS2VKF7i6r6Wnuzpo9e7b27dtniDdt2lQbNmxQ69atXSogk1LHbllBej1/pdTZ3W7nagEikJ1RRAYAAADAI9WrVzddguj2m3nuWLt2rVauXKno6GilpKR43J+zLBaL6tWrZ4ibXcByxaeffqru3burTp06ioiIUJ48efTKK6/c3N6wYUPTdt54LJcvX641a9bo1KlTslqtbvXhynJOZjZs2GCINWjQwKM+AQCA92XmwnazJSl/+umnm/+fmJioH3/80bDPgAEDnOo/NjZWH374oSEeFhamFStW6MUXX1SePHmczlfK2jfzrl27pl27dnnct9nNPIkbegAAuMvsGtK6devcvuZzw969ew3LDEpSpUqVXOrHk2tIR44cMV0NwNE1pIAA4wJs7i7LffDgQbfauWrOnDmGWGBgoGbMmOH2rP3//fefIZaR11SdZfb83blzp8dfWomNjdXu3bsNcVefv0B2RhEZAAAAAI/4+/urfv36hvjixYt17tw5t/tNTExUly5d1LhxY5UoUUIhISEqV66cRo4c6Um6TjO7mLF06VKPLmasWrXK5vfLly+rWLFiN38vVKiQypUrZ2g3e/Zst789KaXO0NGmTRs1aNBARYoUUWhoqCpVqqT333/fpX7mz5/vdg6rV6/W4cOHDfHmzZu73ScAAEgfmbmwvW/fvoabhD///PPN5Yr++OMPw9JO9957r9M3jn777TfT8d7LL7+sOnXquJyvZH4zT8p8N/QaNGhgOovHmjVrPO7bbJbiokWLKjw83OO+AQDIjho1amSInTx5Un/++adH/c6YMcM03qxZM5f6mTdvnts5fPvtt4ZYcHCw3TGqlDpj7O3cvS5pNiNtejArsm/QoIHdL3SkJTk5Wf/8849pPLMxe/4mJSXpu+++86jfb7/91nQWXVefv0B2RhEZAAAAAElyeXr0W7Vu3doQi4uL0yeffOJ2n7NmzbKZPj4hIUEHDhzIsCVvWrZsaYjFxcWZzmzhjHXr1ikqKsoQb9y4sc3vZo/l8ePHTZdlctZnn32m69ev3/z92rVr2rt3r+lsE44cOHBAK1ascCuHSZMmGWJFixY1/P238+R5CQAA3JOZC9sLFiyodu3a2cTOnz9/84bZ7NmzDW3MZi+zx96MWT179nS6j9stW7bMNJ7ZbujlzZtXd999tyH+zTffeNTvpUuXtGjRIkOcm3kAALivWbNmprNVffrpp273efXqVU2fPt0QL126tMqWLetSXz/++KNbX8RMSkrS119/bYh37NhRISEhdtuZLcu9f/9+l48vefYlSlfc/sUHSSpSpIjb/c2dO9d0KU5nlyY3+zJBeqlZs6YKFy5siH/xxRduf9EiJSVFEydONMRz5szpsAARgC2uxgMAAACQZD7tu7Mn7Y888ojpLALvv/++W9PXX758Wa+++qoh7u/vrx49erjcnzvq16+vWrVqGeKvv/66Ll++7HJ/b775piFWs2ZNValSxSY2YsQI08KpF154QceOHXP5uEeOHNEHH3xgiOfOndtwA9YZzzzzjBITE11q888//5gWwQ0YMED+/v4O23ryvAQAAO7LzIXtZkVh8+bN0/Xr1w3FSiEhIS6NH81u5knu39CLiYmxW4TlzA29jC6ob9OmjSG2Zs0abdy40e0+p0yZovj4eEO8VatWbvcJAEB2ly9fPvXt29cQX7x4sduzOT333HM6ffq0If7YY4+53FdsbKxefPFFl9u9/fbbpstJDh482GG7yMhIQ2zZsmU2Y09nzJ8/Xzt37nSpjbvCwsIMsUOHDrnV19mzZ/Xcc8+ZbnP2McjIa3D+/v4aPny4Ib59+3a9++67bvX5/vvva/v27YZ4v379HBYgArBFERkAAAAASTI9mXb2G4O5c+fWkCFDDPHr16+rW7dupssY2pOcnKx+/frpxIkThm0DBgxQiRIlnO7LU88884whduLECT3yyCNOf4tPSl0KYPHixYb40KFDDbEyZcqoS5cuhviFCxfUtWtXuzc2zcTFxal79+6Ki4szbHvuuefcuoCydetWl5YUPXz4sPr27WtYriosLMz08b2dJ89LAADgvsxc2N6uXTsVLFjQJrZgwQL99ddfhnFCly5dlDt3bqf7NruZJ7l/Q+/555/XmTNnTLc5c0Mvowvqhw8fbnrMQYMGuXwTVkp93MaMGWOIR0REqFu3bu6kCAAA/s+zzz5rOnvU0KFDTZeSdmTy5Mn66quvDPGIiIg0C7jsmThxoubMmeP0/r///rvGjRtniNevX990xYBbmS2PeOnSJZdWSThw4IBbBXPuMlu2csOGDdqyZYtL/Zw/f17t27dXdHS06XazYn4zGX0NbujQoabLkI4ePVo///yzS30tXrxYr7/+uiEeFBSkp59+2t0UgWyJIjIAAAAAklIvCt3u0qVLOnnypFPtX3rpJdMCr6ioKNWvX9+pZRAvXbqkbt26mV4oyJkzp+nFgPTUs2dP1a1b1xD/6aef1KVLF507dy7NPv5fe/cfFFX1/3H8tQuCyOKCKCoKKKkjBuYPLCdT1DGzYTJTqyEsDJN+mJV/FJU2WpNF1jRmamkQ6pRTmSlmf6glqFGNGGmkqP1QN1HEpOTHiInc7x9OfsW9+4NFk088HzP8c86955y7S3k4933eJzs72zTA7vrrr1daWprpPVlZWaaZ3Xbt2qVhw4Zpz549Hvs9duyYbr31VhUVFTnVRUZGNmsBZfHixXrooYdMg9MuVVRUpBEjRsjhcDjVzZ49Wx07dvTYl9nvZWlpqfeDBQAAPmnJge3+/v6aMmVKo7KjR4+aBis15ShLyfxlnmR+NLcnL7/8spYvX+6y3psXev/2y7yYmBjdfffdTuUlJSVN3khx8uRJTZo0SbW1tU51TzzxBBkhAABopr59+2rmzJlO5adPn9aYMWNMj/m+3NmzZ/XCCy8oIyPDtH7BggWmazPeMAxDKSkpeuedd5w2F15u1apVGj9+vFP2e6vVaroR4XLJycmmAXVz5szxKiBpy5YtGj58uE6ePOnx2ivFLCurYRi69957VVZW5lUbmzZtUmJionbu3Onymr///turI+nNvud9+/Z5NQ5fdOjQwfTkhnPnzmnixIlauHChx+PfGxoatGTJEk2YMMH0GZ955hn16dPnio0ZaA0IIgMAAAAgSerevbtpeXp6eqPsCefPnzfNfhAeHq5PPvlEbdq0caorLy/XqFGjNGHCBK1fv97pRdIvv/yirKwsxcXFaf369abjWLZsmcuXeleLv7+/Pv74Y4WGhjrVbdy4UX369NFLL72kvXv3Nqqrrq5WXl6eRo8erenTpzstgPn5+SknJ0cBAQGm/fbq1Uvvv/++ad2BAwc0aNAgpaWlafPmzY0yQhiGoZ9++kmzZ89WXFycvvnmG6f7/fz8tHr1atlsNk+P71ZOTo769eunpUuXNjrqoKGhQd9++60yMjI0dOhQ00wlI0eO1NNPP+1VP2a/lwcOHNCcOXNUV1d3scybxTAAANA0LTmwPT093ans8j6io6M1evToJrXr6ojFxYsX66OPPvKqjWPHjmny5Ml64YUX3F7nTTDYtQionz9/vun898MPP9T48eO92mTyww8/aPjw4dq9e7dTXa9evZSZmXkFRgoAAF5//XXddNNNTuW1tbVKTU3V8OHD9cEHH6iysrJRvcPh0KJFi3T99debZv+SpNTUVE2bNq1Z4zt//rwee+wxjRgxQmvXrm20qaCurk55eXkaM2aM0tLSTNd2Zs+erZtvvtljP126dDHdAHHu3DlNmDBB6enp+v777xutaf6zfpecnKyxY8eqvLz8Yt11113X1EdtsqlTp5pmgP3555/Vv39/vfbaa05HexqGoV9//VXLli3TzTffrHHjxnl1AoQ3G2HN1uDeeOMNbdu2rVHZ5euczTFr1izT7+38+fOaNWuWBg4cqOXLlzvNPysqKpSdna3ExEQ9/vjjphsdRo0a9a9vSAb+EwwAAAAAV0Rubq4hyeknPz/f7X1z5851uicpKcnncaSlpTm1l5aW5vG++vp6w263mz6Dn5+f0a1bNyMyMtLw9/c3CgsLXbaTk5NjWK1W03Yu/QkLCzOio6ONkJAQj9dmZmZe1Wf3ZOPGjUZAQIDbMQYEBBjdu3c3IiIi3D6/xWIxVqxY4VW/Zr8bZu117NjRiIqKMtq1a+fx2qVLl3rVd1JSktP9Xbt2ddm23W43unfvbrRp08btGBISEoyKigqvP/uioiKXbbVt29aIiYkxIiIijKCgIKO+vt7rdgEAuBry8/M9/tt9NX9czXtcjcsbn376qcv+rFar8cADDxibNm0y6urqLt7T0NBglJSUGM8//7zRvn17l/PLgoKCZn3eQ4YMcft5zJkzx6d2hw0b5rLN1NRUY/v27Y2e1zAM49SpU8YXX3xhPPjgg0ZgYKBX39f8+fM9jiU7O9v03tmzZxtnzpy5eN3Zs2dN74+JiXG6Nzc312O/69evdzlum81mZGZmGkVFRcb58+cbjWHz5s1GWlqay/lwcHCwUVxc7LH/lvI3EgAAhuH7mt+/xeFwGD179vQ492jfvr0RHR1tBAUFebw2OTnZab7jitn9rtaQLBaLERERYXTu3NmwWCxux5CamtqktZ6DBw96XL9r166dERMTY3Tp0sVl//fcc4/x+uuvN/n79mW+8dRTT3n8LkJCQozo6GijW7duHr+7GTNmGN26dXMq/+qrrzx+fjNmzHDZbocOHYyYmBjDZrMZ06dPd7q3OX9v/PXXX8bgwYM9fg7BwcFGdHS0YbPZPF574403GpWVlV717+t82ZWW/P8KwBtkIgMAAAAg6UKGKrOMDtKF3V9lZWU6duyY6uvr3WadSE9P15o1a0yzVlzqzz//lMPhcJuBwWq1KisrS1lZWd49xFWSnJysjRs3uk3f//fff+vo0aOqqKgwzdQmSYGBgcrJyXF5jOXl5s2bpyVLlrjMWCZJhmHojz/+0O+//+72eMmAgACtWrVKjz76qFd9m8nIyNCTTz5pWnf69GkdPXrU7W7EpKQkbd26VZ06dfK6z8GDB2vQoEGmdXV1dTpy5IgqKip05swZHTx40Ot2AQCAdyZNmqS5c+ea1jU0NGjVqlW67bbbFBQUpE6dOik6Olo2m00JCQl65ZVXVFVV5XSfxWLR22+/raSkpGaNzdNRlVOnTvWp3YULF5pmhZAuZOMaMWKEQkJCFBkZqZ49eyo8PFzh4eFKTk5Wbm5uo0yxkhQfH6/U1FSntvbv3+9xLDfccINp+fz58xUWFqYePXqoc+fOCg0N9XjcT1PceeedpscLSVJNTY1ee+01DRkyRIGBgYqMjFRERITatm2rsWPHauXKlabz4eDgYK1du1YDBw68YuMEAABSVFSUCgsLPWbsqqqqksPhcHuktsVi0axZs5SXl6fAwECfx7R8+XINGzbMqdwwDFVUVOjEiRNuj7icOXOmVq5cKT8/P6/77N27t1asWOFyHiddOGb9yJEjKi8vN+1/0qRJ+uCDD7zus7kWLFigcePGub2murpaDodDZWVlLr+7sLAwrV69WosXL9aAAQOc6r/66iuPY0lPT3f5eVdWVurIkSOqqanxKhtxU9jtduXn52v8+PFur6utrZXD4VBNTY3b61JSUlRQUKCwsLArOUyg1SCIDAAAAMBFL7/8ssuAnUuZHUtzqYkTJ2rPnj2aMGGCz2OJj49XYWFhiznq5tZbb9Xu3bt9fqYbbrhBRUVFHl92Xu6xxx5TUVFRs16y3nLLLdq9e7emTJnicxv/WLhwod5++20FBwd7fU/79u2VlZWlrVu3qmPHjk3qz2KxaOXKlQoPD/d4raffSwAA4JuWFtj+j5SUFLVt29a0bsSIET4fQ5SYmKj3339fFovF5TXnzp3T8ePHdfjwYafjoS6Vnp6u7777znQOuXXrVo9juZYB9XPmzNG7777r9gVyfX29jh8/rpMnT7p9ERwbG6vt27e7PC4UAAA0T9euXbVt2zZlZWUpJCTEpzYGDx6sHTt26M0332xS8JYZm82mTZs26ZFHHnE7p7pcbGysNmzYoEWLFvk0hpSUFH355ZeKjY1t0n1t27bVq6++qjVr1qhNmzZN7tdXbdq00fr16/XEE0806XP6h9Vq1dSpU7V3716lpKRIujAPvtxnn33mdq4mSYMGDXK5ieBSJSUlV3TzgiSFhIQoLy9P2dnZioiI8KmNPn36KC8vT6tXr1ZQUNAVHR/QmhBEBgAAAOCidu3a6euvv9aMGTPcvizyZsdZjx49tG7dOu3Zs0czZsxQZGSkV/3fcccd2rBhg3bv3q2hQ4c2afxXW1RUlNatW6ddu3Zp2rRpbjOTSRcyj40ZM0YbNmzQDz/8oISEBJ/67d+/vwoKCrRjxw5NnTrVq4Aqu92u++67T/n5+dqxY4fi4uJ86tvM448/rh9//FGpqaluf09iY2M1b948/fbbb8rMzJTV6tufoPHx8SouLvb40vFK74QEAAD/r6UFtktSaGio7rrrLtO6pgbuX+7+++9XXl5ekzKoXqp///7asmWLcnJyFBwcrGHDhjm9CC0rK9O3337rtp1rHVD/8MMPN+t7b9eunTIzM1VSUuLVZhUAAOA7f39/ZWZmyuFw6I033tCgQYM8Bia1b99eKSkp2rx5s3bt2mWaPcxXwcHBeuedd7R161aNHDnS7ViGDh2q9957T/v379cdd9zRrH6TkpJUWlqq5cuXKzEx0e21HTp00MyZM1VaWqpnn33Wp0Cu5goMDNRbb72lnTt3asqUKR43blqtVg0cOFCZmZk6ePCgcnNz1bVr14v1qampTmtw+/fv18aNGz2O5bnnntOaNWsUHR3t8pozZ87o559/9tiWL6ZNm6bDhw/r3Xff1fDhwz2uJQYFBenOO+/Up59+qtLSUo/ZzAB4ZjE8hZwCAAAAaJWqqqpUWFioX375RVVVVfLz81NoaKiio6MVFxennj17NrnNQ4cO6aeffpLD4VBVVZUaGhpkt9vVoUMHxcXFKSEhwW3K+ZamoaFB+/bt0759+1RWVqba2loFBQUpPDxcPXr00NChQ11mx2gOwzB04MAB7du3T0ePHlVNTY0sFovsdrvCw8OVkJCguLi4Zi18jRw5Utu2bWtUNnfuXM2bN69RWU1NjQoLC3XgwAFVVVUpODhYXbt2VWJionr16uVz/67887LV4XBc/LzDwsJ03XXXKT4+vsmZzgAAuJIKCgo0atSoa9Z/WlqaVqxY4VTualy+Lg1//fXXysnJ0eeff65Tp065vdZutys5OVnTp0/XyJEjferPnS1btmjs2LGNyoKDg1VeXi6bzdbs9k+dOqVly5YpOztbhw4dcnttZGSkkpKSNGXKFN1+++1Oc7Fx48Zp06ZNjcomTpyotWvXehyHw+FQRkaG0/2XyszMdDoGvkePHjpy5EijstzcXJ+O+ty+fbuys7O1YcMGnT592u21AwYM0N13362MjAyf5mfz5s3Tiy++2KgsKSlJBQUFTW5LunC06cqVKxuVufrvBQCA/5LKykoVFxfr0KFDqqys1Llz52Sz2RQREaH4+Hj169ev2WtxZutP+fn5TnO/48eP65tvvtHhw4dVV1cnu92umJgY3XTTTT5nn/JGeXm5du7cqUOHDqm6uloBAQEXn3/gwIHNzrp2pdXX1+vHH3/U3r179eeff6q6ulo2m00dO3ZU586dNWTIENnt9qs6hoaGBhUXF6ukpEQnTpxQfX29QkJC1KVLF/Xu3Vvx8fFusxRfKdXV1SouLtZvv/2mkydP6uzZs7LZbAoPD1e/fv2UkJDQrGNXATgjiAwAAAAA4MTbIDIAANB6/RuB7S3J77//rl27dunEiRP666+/ZLVaFR4erk6dOikuLk69e/e+6mNoCQH1DQ0N2rt3r0pLS3Xs2DHV1tbK399foaGhio2N1YABA3zO4AYAAP73eBtEBgBo+f53tvgDAAAAAAAAAFoMi8Wivn37qm/fvtd6KP+KqKgoRUVFXdMxdOvWTZMnT76mY7BarUpISPD5qHYAAAAAQMvk/hBZAAAAAAAAAAAAAAAAAMB/GkFkAAAAAAAAAAAAAAAAANCKEUQGAAAAAAAAAAAAAAAAAK0YQWQAAAAAAAAAAAAAAAAA0IoRRAYAAAAAAAAAAAAAAAAArRhBZAAAAAAAAAAAAAAAAADQihFEBgAAAAAAAAAAAAAAAACtGEFkAAAAAAAAAAAAAAAAANCKEUQGAAAAAAAAAAAAAAAAAK2YxTAM41oPAgAAAAAAAAAAAAAAAABwbZCJDAAAAAAAAAAAAAAAAABaMYLIAAAAAAAAAAAAAAAAAKAVI4gMAAAAAAAAAAAAAAAAAFoxgsgAAAAAAAAAAAAAAAAAoBUjiAwAAAAAAAAAAAAAAAAAWjGCyAAAAAAAAAAAAAAAAACgFSOIDAAAAAAAAAAAAAAAAABaMYLIAAAAAAAAAAAAAAAAAKAVI4gMAAAAAAAAAAAAAAAAAFqx/wPEhQZQSJLevwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.rcParams[\"font.sans-serif\"] = \"Arial\"\n", + "\n", + "plt.rc('font', size=43) \n", + "plt.rc('axes', titlesize=43) \n", + "plt.rc('axes', labelsize=43) \n", + "plt.rc('xtick', labelsize=43) \n", + "plt.rc('ytick', labelsize=43) \n", + "plt.rc('figure', titlesize=43)\n", + "\n", + "covariates = ['Intercept', 'Elevation', 'Population']\n", + "pd.set_option(\"display.precision\", 8)\n", + "\n", + "fig = plt.figure(figsize=(32, 6.5))\n", + "colors = ['blue', 'green', 'red']\n", + "for i, covariate in enumerate(covariates):\n", + " \n", + " data_dict = {}\n", + " classical_ci_width = classical_ci[1][i] - classical_ci[0][i]\n", + " ptd_ci_width = ptd_ci[1][i] - ptd_ci[0][i]\n", + " data_dict['category'] = ['PTD (weighted)', 'Classical (weighted)','Naive']\n", + " data_dict['lower'] = [ptd_ci[0][i], classical_ci[0][i], naive_ci[0][i]]\n", + " data_dict['upper'] = [ptd_ci[1][i], classical_ci[1][i], naive_ci[1][i]]\n", + " data_dict['pointestimate'] = [ptd_pointestimate[i], classical_pointestimate[i], naive_pointestimate[i]]\n", + " dataset = pd.DataFrame(data_dict)\n", + " display(dataset)\n", + " \n", + " subplot = fig.add_subplot(141+i)\n", + " subplot.spines['top'].set_visible(False)\n", + " subplot.spines['right'].set_visible(False)\n", + " subplot.spines['left'].set_visible(False)\n", + " subplot.spines['bottom'].set_linewidth(2)\n", + " \n", + " # show true coefficient (yellow dotted line)\n", + " plt.axvline(true_coeff[i], color='tab:olive', linestyle='--', lw=4, label='True \\ncoefficient')\n", + " \n", + " # plot confidence intervals\n", + " for lower,upper,pointestimate,y in zip(dataset['lower'],dataset['upper'],dataset['pointestimate'],range(len(dataset))):\n", + " subplot.scatter([pointestimate], [y], color=colors[y], s=400)\n", + " subplot.scatter([lower, upper], [y, y], color=colors[y], marker='|', s=400, lw=5)\n", + " subplot.plot((lower,upper),(y,y),color=colors[y], lw=6)\n", + " if y == 0:\n", + " # compute PTD effective sample size improvement over classical method\n", + " ptd_effective_n_improvement = np.round((classical_ci_width/ptd_ci_width)**2, 1)\n", + " subplot.text((lower+upper)/2, 0.2, f'{ptd_effective_n_improvement}x', fontsize = 40, c='blue', weight='bold')\n", + " \n", + " subplot.tick_params(axis=u'both', which=u'both',length=0)\n", + " if i == 0:\n", + " subplot.set_yticks(range(len(dataset)),list(dataset['category']))\n", + " else:\n", + " subplot.set_yticks([])\n", + " subplot.set_xlabel(f'{covariate}')\n", + " subplot.set_ylim(-0.2)\n", + " \n", + "plt.tight_layout() \n", + "plt.show()" + ] + } + ], + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ppi_py/__init__.py b/ppi_py/__init__.py index 3457610..47cbd20 100644 --- a/ppi_py/__init__.py +++ b/ppi_py/__init__.py @@ -2,3 +2,4 @@ from .cross_ppi import * from .baselines import * from .ppi_power_analysis import * +from .ptd import * diff --git a/ppi_py/datasets/datasets.py b/ppi_py/datasets/datasets.py index 3c82b4a..02e1b77 100644 --- a/ppi_py/datasets/datasets.py +++ b/ppi_py/datasets/datasets.py @@ -27,6 +27,7 @@ def load_dataset(dataset_folder, dataset_name, download=True): "galaxies": "1pDLQesPhbH5fSZW1m4aWC-wnJWnp1rGV", "gene_expression": "17PwlvAAKeBYGLXPz9L2LVnNJ66XjuyZd", "plankton": "1KEk0ZFZ6KiB7_2tdPc5fyBDFNhhJUS_W", + "tree_cover": "1pdl66Wyz_RQ2Ef0xLFt-D8CLBc3ATF_B" } if dataset_name not in dataset_google_drive_ids.keys(): raise NotImplementedError( diff --git a/ppi_py/ptd.py b/ppi_py/ptd.py new file mode 100644 index 0000000..a9426da --- /dev/null +++ b/ppi_py/ptd.py @@ -0,0 +1,207 @@ +import numpy as np +import pandas as pd +from statsmodels.regression.linear_model import WLS, RegressionResults +from statsmodels.stats.weightstats import _zconfint_generic +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.genmod.families import Binomial +from statsmodels.genmod.families.links import Logit +import statsmodels +from tqdm import tqdm + +''' +HELPER FUNCTIONS +''' + +def resample_datapoints(data_truth, data_pred, data_pred_unlabeled, w, w_unlabeled): + ''' + Resamples datasets and weights with replacement (to be used in bootstrap step). + + Args: + data_truth (List[ndarray]): ground truth labeled data (each ndarray has n rows) + data_pred (List[ndarray]): predicted labeled data (each ndarray has n rows) + data_pred_unlabeled (List[ndarray]): predicted unlabeled data (each ndarray has N rows) + w (ndarray, optional): sample weights for labeled data (length n) + w_unlabeled (ndarray, optional): sample weights for unlabeled data (length N) + + Returns: + resampled version of each of the inputs + ''' + n = len(data_truth[0]) + N = len(data_pred_unlabeled[0]) + resampled_indices = np.random.choice(np.arange(0, n+N), size=n+N, replace=True) + + calibration_indices = resampled_indices[resampled_indices < n] + data_truth_b = [] + for data in data_truth: + data_truth_b.append(data[calibration_indices]) + data_pred_b = [] + for data in data_pred: + data_pred_b.append(data[calibration_indices]) + + pred_indices = resampled_indices[resampled_indices >= n] - n + data_pred_unlabeled_b = [] + for data in data_pred_unlabeled: + data_pred_unlabeled_b.append(data[pred_indices]) + + if w is None: + w_b = None + else: + w_b = w[calibration_indices] + + if w_unlabeled is None: + w_unlabeled_b = None + else: + w_unlabeled_b = w_unlabeled[pred_indices] + + return data_truth_b, data_pred_b, data_pred_unlabeled_b, w_b, w_unlabeled_b + +''' +MAIN PTD BOOTSTRAP FUNCTION +''' + +def ptd_bootstrap(algorithm, data_truth, data_pred, data_pred_unlabeled, w=None, w_unlabeled=None, B=2000, alpha=0.05, tuning_method='optimal_diagonal'): + """ + Computes tuning matrix, point estimates, and confidence intervals for regression coefficients using the Predict-then-Debias bootstrap algorithm from Kluger et al. (2025), 'Prediction-Powered Inference with Imputed Covariates and Nonuniform Sampling,' . + + Args: + algorithm (function): python function that takes in data and weights, and returns array containing parameters of interest (e.g., a function that computes linear regression or logistic regression coefficients) + data_truth (List[ndarray]): ground truth labeled data (each ndarray has n rows) + data_pred (List[ndarray]): predicted labeled data (each ndarray has n rows) + data_pred_unlabeled (List[ndarray]): predicted unlabeled data (each ndarray has N rows) + w (ndarray, optional): sample weights for labeled data (length n) + w_unlabeled (ndarray, optional): sample weights for unlabeled data (length N) + B (int, optional): number of bootstrap steps + alpha (float, optional): error level (must be in the range (0, 1)). The PTD confidence interval will target a coverage of 1 - alpha. + tuning_method (str, optional): method used to create the tuning matrix: "optimal_diagonal", "optimal", or None. (If tuning_method is None, the identity matrix is used.) + + Returns: + ndarray: the tuning matrix (dimensions d x d) computed from the selected tuning method + ndarray: PTD point estimate of the parameters of interest (length d) + tuple: lower and upper bounds of PTD confidence intervals with (1-alpha) coverage + """ + coeff_calibration_list = [] + coeff_pred_calibration_list = [] + coeff_pred_unlabeled_list = [] + + # compute bootstrap coefficient estimates + for b in range(B): + data_truth_b, data_pred_b, data_pred_unlabeled_b, w_b, w_unlabeled_b = resample_datapoints(data_truth, data_pred, data_pred_unlabeled, w, w_unlabeled) + + coeff_calibration = algorithm(data_truth_b, w_b) + coeff_calibration_list.append(coeff_calibration) + + coeff_pred_calibration = algorithm(data_pred_b, w_b) + coeff_pred_calibration_list.append(coeff_pred_calibration) + + coeff_pred_unlabeled = algorithm(data_pred_unlabeled_b, w_unlabeled_b) + coeff_pred_unlabeled_list.append(coeff_pred_unlabeled) + + coeff_calibration_list = np.array(coeff_calibration_list) + coeff_pred_calibration_list = np.array(coeff_pred_calibration_list) + coeff_pred_unlabeled_list = np.array(coeff_pred_unlabeled_list) + + # compute tuning matrix + d = coeff_calibration_list.shape[1] + if tuning_method is None: + tuning_matrix = np.identity(d) + else: + cross_cov_calibration = np.atleast_2d(np.cov(np.concatenate((coeff_calibration_list.T, coeff_pred_calibration_list.T)))[:d, d:]) + cov_pred_calibration = np.atleast_2d(np.cov(coeff_pred_calibration_list.T)) + cov_pred_unlabeled = np.atleast_2d(np.cov(coeff_pred_unlabeled_list.T)) + if tuning_method == "optimal": + tuning_matrix = cross_cov_calibration @ np.linalg.inv(cov_pred_calibration + cov_pred_unlabeled) + elif tuning_method == "optimal_diagonal": + tuning_matrix = np.diag(np.diag(cross_cov_calibration)/(np.diag(cov_pred_calibration) + np.diag(cov_pred_unlabeled))) + + # PTD point estimate + coeff_calibration = algorithm(data_truth, w) + coeff_pred_calibration = algorithm(data_pred, w) + coeff_pred_unlabeled = algorithm(data_pred_unlabeled, w_unlabeled) + ptd_pointestimate = coeff_pred_unlabeled @ tuning_matrix.T + (coeff_calibration - coeff_pred_calibration @ tuning_matrix.T) + + # PTD confidence interval + # compute B point estimates using the bootstrap coefficient estimates and tuning matrix + pointestimates = coeff_pred_unlabeled_list @ tuning_matrix.T + (coeff_calibration_list - coeff_pred_calibration_list @ tuning_matrix.T) + # compute lower and upper bounds for PTD confidence interval with (1-alpha) coverage + lo = np.percentile(pointestimates, 100*alpha/2, axis=0) + hi = np.percentile(pointestimates, 100*(1-alpha/2), axis=0) + ptd_ci = (lo, hi) + + return tuning_matrix, ptd_pointestimate, ptd_ci + +''' +LINEAR REGRESSION +''' + +def algorithm_linear_regression(data, w): + X, Y = data + if w is None: + regression = WLS(endog=Y, exog=X).fit() + else: + regression = WLS(endog=Y, exog=X, weights=w).fit() + coeff = regression.params + return coeff + +def ptd_linear_regression(X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, w=None, w_unlabeled=None, B=2000, alpha=0.05, tuning_method='optimal_diagonal'): + """ + Computes tuning matrix, point estimates, and confidence intervals for linear regression coefficients using the Predict-then-Debias bootstrap algorithm. + + Args: + X (ndarray): ground truth covariates in labeled data (dimensions n x p) + Xhat (ndarray): predicted covariates in labeled data (dimensions n x p) + Xhat_unlabeled (ndarray): predicted covariates in unlabeled data (dimensions N x p) + Y (ndarray): ground truth response variable in labeled data (dimensions n x 1) + Yhat (ndarray): predicted response variable in labeled data (dimensions n x 1) + Yhat_unlabeled (ndarray): predicted response variable in unlabeled data (dimensions N x 1) + w (ndarray, optional): sample weights for labeled data (length n) + w_unlabeled (ndarray, optional): sample weights for unlabeled data (length N) + B (int, optional): number of bootstrap steps + alpha (float, optional): error level (must be in the range (0, 1)). The PTD confidence interval will target a coverage of 1 - alpha. + tuning_method (str, optional): method used to create the tuning matrix: "optimal_diagonal", "optimal", or None. (If tuning_method is None, the identity matrix is used.) + + Returns: + ndarray: the tuning matrix (dimensions d x d) computed from the selected tuning method + ndarray: PTD point estimate of the regression coefficients (length d) + tuple: lower and upper bounds of PTD confidence intervals with (1-alpha) coverage + """ + data_truth = [X, Y] + data_pred = [Xhat, Yhat] + data_pred_unlabeled = [Xhat_unlabeled, Yhat_unlabeled] + return ptd_bootstrap(algorithm_linear_regression, data_truth, data_pred, data_pred_unlabeled, w=w, w_unlabeled=w_unlabeled, B=B, alpha=alpha, tuning_method=tuning_method) + +''' +LOGISTIC REGRESSION +''' + +def algorithm_logistic_regression(data, w): + X, Y = data + regression = GLM(endog=Y, exog=X, freq_weights=w, family=Binomial(link=Logit())).fit() + coeff = regression.params + return coeff + +def ptd_logistic_regression(X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, w=None, w_unlabeled=None, B=2000, alpha=0.05, tuning_method='optimal_diagonal'): + """ + Computes tuning matrix, point estimates, and confidence intervals for logistic regression coefficients using the Predict-then-Debias bootstrap algorithm. + + Args: + X (ndarray): ground truth covariates in labeled data (dimensions n x p) + Xhat (ndarray): predicted covariates in labeled data (dimensions n x p) + Xhat_unlabeled (ndarray): predicted covariates in unlabeled data (dimensions N x p) + Y (ndarray): ground truth response variable in labeled data (dimensions n x 1) + Yhat (ndarray): predicted response variable in labeled data (dimensions n x 1) + Yhat_unlabeled (ndarray): predicted response variable in unlabeled data (dimensions N x 1) + w (ndarray, optional): sample weights for labeled data (length n) + w_unlabeled (ndarray, optional): sample weights for unlabeled data (length N) + B (int, optional): number of bootstrap steps + alpha (float, optional): error level (must be in the range (0, 1)). The PTD confidence interval will target a coverage of 1 - alpha. + tuning_method (str, optional): method used to create the tuning matrix: "optimal_diagonal", "optimal", or None. (If tuning_method is None, the identity matrix is used.) + + Returns: + ndarray: the tuning matrix (dimensions d x d) computed from the selected tuning method + ndarray: PTD point estimate of the regression coefficients (length d) + tuple: lower and upper bounds of PTD confidence intervals with (1-alpha) coverage + """ + data_truth = [X, Y] + data_pred = [Xhat, Yhat] + data_pred_unlabeled = [Xhat_unlabeled, Yhat_unlabeled] + return ptd_bootstrap(algorithm_logistic_regression, data_truth, data_pred, data_pred_unlabeled, w=w, w_unlabeled=w_unlabeled, B=B, alpha=alpha, tuning_method=tuning_method) \ No newline at end of file diff --git a/tests/test_ptd.py b/tests/test_ptd.py new file mode 100644 index 0000000..0e80b9c --- /dev/null +++ b/tests/test_ptd.py @@ -0,0 +1,107 @@ +import numpy as np +import statsmodels.api as sm +from tqdm import tqdm +from concurrent.futures import ProcessPoolExecutor, as_completed + +from ppi_py import * + +""" + PTD test for logistic regression +""" + + +def ptd_logistic_ci_subtest(alphas, n, N, d): + includeds = np.zeros(len(alphas)) + # Make a synthetic regression problem + X = np.random.randn(n, d) + beta = np.random.randn(d) + beta_prediction = beta + np.random.randn(d) + 2 + Y = np.random.binomial(1, expit(X.dot(beta))) + Yhat = expit(X.dot(beta_prediction)) + # Make a synthetic unlabeled data set with predictions Yhat + X_unlabeled = np.random.randn(N, d) + Yhat_unlabeled = expit(X_unlabeled.dot(beta_prediction)) + + for j in range(len(alphas)): + _, _, beta_ppi_ci = ptd_logistic_regression( + X, + X, + X_unlabeled, + Y, + Yhat, + Yhat_unlabeled, + B=1000, + alpha=alphas[j], + ) + includeds[j] += int( + (beta_ppi_ci[0][0] <= beta[0]) & (beta[0] <= beta_ppi_ci[1][0]) + ) + return includeds + + +def test_ptd_logistic_ci_parallel(): + n = 100 + N = 1000 + d = 1 + alphas = np.array([0.05, 0.1, 0.2]) + epsilon = 0.1 + num_trials = 100 + + total_includeds = np.zeros(len(alphas)) + + with ProcessPoolExecutor() as executor: + futures = [ + executor.submit( + ptd_logistic_ci_subtest, + alphas, + n, + N, + d, + ) + for i in range(num_trials) + ] + + for future in tqdm(as_completed(futures), total=len(futures)): + total_includeds += future.result() + + print(total_includeds / num_trials) + faileds = [ + np.any(total_includeds / num_trials < 1 - alphas - epsilon) + ] + assert not np.any(faileds) + +""" + PTD test for linear regression +""" +def test_ptd_ols_ci(): + n = 100 + N = 1000 + d = 1 + alphas = np.array([0.05, 0.1, 0.2]) + epsilon = 0.05 + num_trials = 100 + includeds = np.zeros_like(alphas) + for i in tqdm(range(num_trials)): + # Make a synthetic regression problem + X = np.random.randn(n, d) + Xhat = X + np.random.randn(n, d) + beta = np.random.randn(d) + beta_prediction = beta + np.random.randn(d) + 2 + Y = X.dot(beta) + np.random.randn(n) + Yhat = X.dot(beta_prediction) + np.random.randn(n) + # Make a synthetic unlabeled data set with predictions Xhat_unlabeled and Yhat_unlabeled + X_unlabeled = np.random.randn(N, d) + Xhat_unlabeled = X_unlabeled + np.random.randn(N, d) + Yhat_unlabeled = X_unlabeled.dot(beta_prediction) + np.random.randn(N) + for j in range(alphas.shape[0]): + # Compute the confidence interval + _, _, beta_ppi_ci = ptd_linear_regression( + X, Xhat, Xhat_unlabeled, Y, Yhat, Yhat_unlabeled, B=200, alpha=alphas[j] + ) + # Check that the confidence interval contains the true beta + includeds[j] += int( + (beta_ppi_ci[0][0] <= beta[0]) & (beta[0] <= beta_ppi_ci[1][0]) + ) + print((includeds / num_trials)) + failed = np.any((includeds / num_trials) < (1 - alphas - epsilon)) + assert not failed \ No newline at end of file