{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "searching-reference", "metadata": { "tags": [ "remove-cell" ] }, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "markdown", "id": "catholic-silence", "metadata": {}, "source": [ "# Spatial Regression\n", "\n", "## Introduction" ] }, { "cell_type": "markdown", "id": "controlled-mortgage", "metadata": {}, "source": [ "### *What* is spatial regression and *why* should I care?\n", "\n", "Regression (and prediction more generally) provides us a perfect case to examine how spatial structure can help us understand and analyze our data. \n", "Usually, spatial structure helps models in one of two ways. \n", "The first (and most clear) way space can have an impact on our data is when the process *generating* the data is itself explicitly spatial.\n", "Here, think of something like the prices for single family homes. \n", "It's often the case that individuals pay a premium on their house price in order to live in a better school district for the same quality house. \n", "Alternatively, homes closer to noise or chemical polluters like waste water treatment plants, recycling facilities, or wide highways, may actually be cheaper than we would otherwise anticipate. \n", "Finally, in cases like asthma incidence, the locations individuals tend to travel to throughout the day, such as their places of work or recreation, may have more impact on their health than their residential addresses. \n", "In this case, it may be necessary to use data *from other sites* to predict the asthma incidence at a given site. \n", "Regardless of the specific case at play, here, *geography is a feature*: it directly helps us make predictions about outcomes *because those outcomes obtain from geographical processes*. \n", "\n", "An alternative (and more skeptical understanding) reluctantly acknowledges geography's instrumental value. \n", "Often, in the analysis of predictive methods and classifiers, we are interested in analyzing what we get wrong.\n", "This is common in econometrics; an analyst may be concerned that the model *systematically* mis-predicts some types of observations.\n", "If we know our model routinely performs poorly on a known set of observations or type of input, we might make a better model if we can account for this. \n", "Among other kinds of error diagnostics, geography provides us with an exceptionally-useful embedding to assess structure in our errors.\n", "Mapping classification/prediction error can help show whether or not there are *clusters of error* in our data.\n", "If we *know* that errors tend to be larger in some areas than in other areas (or if error is \"contagious\" between observations), then we might be able to exploit this structure to make better predictions.\n", "\n", "Spatial structure in our errors might arise from when geography *should be* an attribute somehow, but we are not sure exactly how to include it in our model. \n", "They might also arise because there is some *other* feature whose omission causes the spatial patterns in the error we see; if this additional feature were included, the structure would disappear. \n", "Or, it might arise from the complex interactions and interdependencies between the features that we have chosen to use as predictors, resulting in intrinsic structure in mis-prediction. \n", "Most of the predictors we use in models of social processes contain *embodied* spatial information: patterning intrinsic to the feature that we get for free in the model. \n", "If we intend to or not, using a spatially-patterned predictor in a model can result in spatially-patterned errors; using more than one can amplify this effect. \n", "Thus, *regardless of whether or not the true process is explicitly geographic*, additional information about the spatial relationships between our observations or more information about nearby sites can make our predictions better. \n", "\n", "### The Data: San Diego AirBnB\n", "\n", "To learn a little more about how regression works, we'll examine some information about [AirBnB](https://www.airbnb.com/) in San Diego, CA. \n", "This dataset contains house intrinsic characteristics, both continuous (number of beds as in `beds`) and categorical (type of renting or, in AirBnB jargon, property group as in the series of `pg_X` binary variables), but also variables that explicitly refer to the location and spatial configuration of the dataset (e.g. distance to Balboa Park, `d2balboa` or neighborhood id, `neighbourhood_cleansed`)." ] }, { "cell_type": "code", "execution_count": 2, "id": "consecutive-assignment", "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "from pysal.model import spreg\n", "from pysal.lib import weights\n", "from pysal.explore import esda\n", "from scipy import stats\n", "import statsmodels.formula.api as sm\n", "import numpy\n", "import pandas\n", "import geopandas\n", "import matplotlib.pyplot as plt\n", "import seaborn" ] }, { "cell_type": "code", "execution_count": 3, "id": "appointed-preliminary", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 6110 entries, 0 to 6109\n", "Data columns (total 20 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 accommodates 6110 non-null int64 \n", " 1 bathrooms 6110 non-null float64 \n", " 2 bedrooms 6110 non-null float64 \n", " 3 beds 6110 non-null float64 \n", " 4 neighborhood 6110 non-null object \n", " 5 pool 6110 non-null int64 \n", " 6 d2balboa 6110 non-null float64 \n", " 7 coastal 6110 non-null int64 \n", " 8 price 6110 non-null float64 \n", " 9 log_price 6110 non-null float64 \n", " 10 id 6110 non-null int64 \n", " 11 pg_Apartment 6110 non-null int64 \n", " 12 pg_Condominium 6110 non-null int64 \n", " 13 pg_House 6110 non-null int64 \n", " 14 pg_Other 6110 non-null int64 \n", " 15 pg_Townhouse 6110 non-null int64 \n", " 16 rt_Entire_home/apt 6110 non-null int64 \n", " 17 rt_Private_room 6110 non-null int64 \n", " 18 rt_Shared_room 6110 non-null int64 \n", " 19 geometry 6110 non-null geometry\n", "dtypes: float64(6), geometry(1), int64(12), object(1)\n", "memory usage: 954.8+ KB\n" ] } ], "source": [ "db = geopandas.read_file('../data/airbnb/regression_db.geojson')\n", "db.info()" ] }, { "cell_type": "markdown", "id": "blind-courtesy", "metadata": {}, "source": [ "These are the explanatory variables we will use throughout the chapter." ] }, { "cell_type": "code", "execution_count": 4, "id": "monetary-insight", "metadata": {}, "outputs": [], "source": [ "variable_names = [\n", " 'accommodates', \n", " 'bathrooms', \n", " 'bedrooms', \n", " 'beds', \n", " 'rt_Private_room', \n", " 'rt_Shared_room',\n", " 'pg_Condominium', \n", " 'pg_House', \n", " 'pg_Other', \n", " 'pg_Townhouse'\n", "]" ] }, { "cell_type": "markdown", "id": "driving-latvia", "metadata": {}, "source": [ "## Non-spatial regression, a (very) quick refresh\n", "\n", "Before we discuss how to explicitly include space into the linear regression framework, let us show how basic regression can be carried out in Python, and how one can begin to interpret the results. By no means is this a formal and complete introduction to regression so, if that is what you are looking for, we recommend {cite}`Gelman_2006`, in particular chapters 3 and 4, which provide a fantastic, non-spatial introduction.\n", "\n", "The core idea of linear regression is to explain the variation in a given (*dependent*) variable as a linear function of a collection of other (*explanatory*) variables. For example, in our case, we may want to express/explain the price of a house as a function of whether it is new and the degree of deprivation of the area where it is located. At the individual level, we can express this as:\n", "\n", "$$\n", "P_i = \\alpha + \\sum_k \\mathbf{X}_{ik}\\beta_k + \\epsilon_i\n", "$$\n", "\n", "where $P_i$ is the AirBnB price of house $i$, and $X$ is a set of covariates that we use to explain such price. $\\beta$ is a vector of parameters that give us information about in which way and to what extent each variable is related to the price, and $\\alpha$, the constant term, is the average house price when all the other variables are zero. The term $\\epsilon_i$ is usually referred to as \"error\" and captures elements that influence the price of a house but are not included in $X$. We can also express this relation in matrix form, excluding subindices for $i$, which yields:\n", "\n", "$$\n", "P = \\alpha + \\mathbf{X}\\beta + \\epsilon\n", "$$\n", "\n", "A regression can be seen as a multivariate extension of bivariate correlations. Indeed, one way to interpret the $\\beta_k$ coefficients in the equation above is as the degree of correlation between the explanatory variable $k$ and the dependent variable, *keeping all the other explanatory variables constant*. When one calculates bivariate correlations, the coefficient of a variable is picking up the correlation between the variables, but it is also subsuming into it variation associated with other correlated variables -- also called confounding factors. Regression allows us to isolate the distinct effect that a single variable has on the dependent one, once we *control* for those other variables.\n", "\n", "Practically speaking, linear regressions in Python are rather streamlined and easy to work with. There are also several packages which will run them (e.g. `statsmodels`, `scikit-learn`, `PySAL`). In the context of this chapter, it makes sense to start with `PySAL` as that is the only library that will allow us to move into explicitly spatial econometric models. To fit the model specified in the equation above with $X$ as the list defined, we only need the following line of code:" ] }, { "cell_type": "code", "execution_count": 5, "id": "supported-layout", "metadata": {}, "outputs": [], "source": [ "m1 = spreg.OLS(\n", " db[['log_price']].values, \n", " db[variable_names].values,\n", " name_y='log_price', \n", " name_x=variable_names\n", ")" ] }, { "cell_type": "markdown", "id": "involved-tenant", "metadata": {}, "source": [ "We use the command `OLS`, part of the `spreg` sub-package, and specify the dependent variable (the log of the price, so we can interpret results in terms of percentage change) and the explanatory ones. Note that both objects need to be arrays, so we extract them from the `pandas.DataFrame` object using `.values`.\n", "\n", "In order to inspect the results of the model, we can call `summary`:" ] }, { "cell_type": "code", "execution_count": 6, "id": "hollywood-neighbor", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES\n", "-----------------------------------------\n", "Data set : unknown\n", "Weights matrix : None\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 11\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6099\n", "R-squared : 0.6683\n", "Adjusted R-squared : 0.6678\n", "Sum squared residual: 1320.148 F-statistic : 1229.0564\n", "Sigma-square : 0.216 Prob(F-statistic) : 0\n", "S.E. of regression : 0.465 Log likelihood : -3988.895\n", "Sigma-square ML : 0.216 Akaike info criterion : 7999.790\n", "S.E of regression ML: 0.4648 Schwarz criterion : 8073.685\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error t-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " CONSTANT 4.3883830 0.0161147 272.3217773 0.0000000\n", " accommodates 0.0834523 0.0050781 16.4336318 0.0000000\n", " bathrooms 0.1923790 0.0109668 17.5419773 0.0000000\n", " bedrooms 0.1525221 0.0111323 13.7009195 0.0000000\n", " beds -0.0417231 0.0069383 -6.0134430 0.0000000\n", " rt_Private_room -0.5506868 0.0159046 -34.6244758 0.0000000\n", " rt_Shared_room -1.2383055 0.0384329 -32.2198992 0.0000000\n", " pg_Condominium 0.1436347 0.0221499 6.4846529 0.0000000\n", " pg_House -0.0104894 0.0145315 -0.7218393 0.4704209\n", " pg_Other 0.1411546 0.0228016 6.1905633 0.0000000\n", " pg_Townhouse -0.0416702 0.0342758 -1.2157316 0.2241342\n", "------------------------------------------------------------------------------------\n", "\n", "REGRESSION DIAGNOSTICS\n", "MULTICOLLINEARITY CONDITION NUMBER 11.964\n", "\n", "TEST ON NORMALITY OF ERRORS\n", "TEST DF VALUE PROB\n", "Jarque-Bera 2 2671.611 0.0000\n", "\n", "DIAGNOSTICS FOR HETEROSKEDASTICITY\n", "RANDOM COEFFICIENTS\n", "TEST DF VALUE PROB\n", "Breusch-Pagan test 10 322.532 0.0000\n", "Koenker-Bassett test 10 135.581 0.0000\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "print(m1.summary)" ] }, { "cell_type": "markdown", "id": "proud-quantity", "metadata": {}, "source": [ "A full detailed explanation of the output is beyond the scope of this chapter, so we will focus on the relevant bits for our main purpose. This is concentrated on the `Coefficients` section, which gives us the estimates for $\\beta_k$ in our model. In other words, these numbers express the relationship between each explanatory variable and the dependent one, once the effect of confounding factors has been accounted for. Keep in mind however that regression is no magic; we are only discounting the effect of confounding factors that we include in the model, not of *all* potentially confounding factors.\n", "\n", "Results are largely as expected: houses tend to be significantly more expensive if they accommodate more people (`accommodates`), if they have more bathrooms and bedrooms, and if they are a condominium or part of the \"other\" category of house type. Conversely, given a number of rooms, houses with more beds (i.e.. listings that are more \"crowded\") tend to go for cheaper, as it is the case for properties where one does not rent the entire house but only a room (`rt_Private_room`) or even shares it (`rt_Shared_room`). Of course, you might conceptually doubt the assumption that it is possible to *arbitrarily* change the number of beds within an AirBnB without eventually changing the number of people it accommodates, but methods to address these concerns using *interaction effects* won't be discussed here. \n", "\n", "### Hidden Structures\n", "\n", "In general, our model performs well, being able to predict slightly about two-thirds ($R^2=0.67$) of the variation in the mean nightly price using the covariates we've discussed above.\n", "But, our model might display some clustering in errors. \n", "To interrogate this, we can do a few things. \n", "One simple concept might be to look at the correlation between the error in predicting an AirBnB and the error in predicting its nearest neighbor. \n", "To examine this, we first might want to split our data up by regions and see if we've got some spatial structure in our residuals. \n", "One reasonable theory might be that our model does not include any information about *beaches*, a critical aspect of why people live and vacation in San Diego. \n", "Therefore, we might want to see whether or not our errors are higher or lower depending on whether or not an AirBnB is in a \"beach\" neighborhood, a neighborhood near the ocean:" ] }, { "cell_type": "code", "execution_count": 7, "id": "through-shelf", "metadata": { "caption": "Distributions of prediction errors (residuals) for the basic linear model. Residuals for coastal Airbnbs are generally positive, meaning that the model under-predicts their prices.", "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAYH0lEQVR4nO3dfXBV9Z3H8fe3MRCtmEKSAoIaio8gEDSKK10FH5agVkanBR8qYLtN6YI1Mw4grDqK2mJh20B1y2ALKEsX2hFcRp5aO7HorHYDbYgC2xYUyhWhgJVCBXnod/9IYHNjSG7ITX7JL5/XDCO/e84953sCfDz3e8/5HXN3RESk7ftM6AJERCQ9FOgiIpFQoIuIREKBLiISCQW6iEgkzgi149zcXM/Pzw+1exGRNmn9+vV73T2vrmXBAj0/P59169aF2r2ISJtkZttPtUwtFxGRSCjQRUQioUAXEYlEsB66iLQdR48eJZFIcPjw4dCltBtZWVn07NmTzMzMlN+jQBeRBiUSCTp16kR+fj5mFrqc6Lk7+/btI5FI0KtXr5Tfp5aLiDTo8OHD5OTkKMxbiJmRk5PT6E9EDQa6mc0zsz+b2TunWG5mNtvMtphZpZld0agKRKRNUJi3rNP5eadyhr4AKKpn+XDgoupfxcCPGl2FiIg0WYM9dHdfa2b59awyAnjRqyZWf8vMPmdm3d39g3QVKSKtS/7DK9K6vW3Tb01pvV27dlFSUkJ5eTkdO3YkPz+f0tJSLr744ibXUFpaSnFxMWeddVa96w0ZMoSZM2dSWFjY5H2mWzp66D2AHTXGierXPsXMis1snZmt27NnTxp2LSLthbtzxx13MGTIELZu3cqmTZv4zne+w+7du9Oy/dLSUj7++OO0bCuUdFzlUlejp87HILn7XGAuQGFhoR6V1I7NnTs3aVxcXByoEmkrysrKyMzMZNy4cSdfKygowN2ZOHEiq1atwsx45JFHGDVqFAcPHmTEiBH85S9/4ejRozz11FOMGDGCv/3tb4wcOZJEIsHx48d59NFH2b17Nzt37mTo0KHk5uZSVlbGt771LcrLyzl06BBf/vKXeeKJJwIefWrSEegJ4Lwa457AzjRsVyL2zW9+M2msQJeGvPPOO1x55ZWfen3p0qVUVFSwYcMG9u7dy1VXXcV1111HXl4ey5Yt45xzzmHv3r1cc8013H777axevZpzzz2XFSuq2kb79+8nOzub73//+5SVlZGbmwvA008/TZcuXTh+/Dg33ngjlZWV9O/fv0WPubHS0XJZDoyuvtrlGmC/+uci0lLeeOMN7r77bjIyMujatSvXX3895eXluDtTp06lf//+3HTTTbz//vvs3r2bfv368eqrrzJ58mRef/11srOz69zuz372M6644goGDhzIxo0b2bRpUwsfWeOlctnifwJvApeYWcLMvm5m48zsxOeelcC7wBbgeeBfmq1aEWm3+vbty/r16z/1+qkedL9o0SL27NnD+vXrqaiooGvXrhw+fJiLL76Y9evX069fP6ZMmcK0adM+9d733nuPmTNn8qtf/YrKykpuvfXWNnGXbCpXudzdwHIHxqetImkXvvGNb4QuQdqYG264galTp/L888+f/PtTXl5O586dWbJkCWPGjOHDDz9k7dq1zJgxgyVLlvD5z3+ezMxMysrK2L69atbZnTt30qVLF7761a9y9tlns2DBAgA6derEgQMHyM3N5a9//Suf/exnyc7OZvfu3axatYohQ4YEOvLU6dZ/ObXH6/4omg5zz629ryX11LG/2eqQ05PqZYbpZGYsW7aMkpISpk+fTlZW1snLFg8ePMiAAQMwM773ve/RrVs37r33Xr70pS9RWFhIQUEBl156KQBvv/02EydO5DOf+QyZmZn86EdVt84UFxczfPhwunfvTllZGQMHDqRv37584QtfYPDgwS1+vKfDTvVxpbkVFha6HnDRyjVjoDeKAj24zZs3c9lll4Uuo92p6+duZuvdvc6L4DWXi4hIJBToIiKRUA9dUlej9ZHuW7+hRl+2tbR6RNoYnaGLiERCZ+gSxAcLHkwadx876+RZ/7as5HVP99NAiCsxotfcn570BXiTKNAliCO7t4YuQSQ6armISJtgZjz00EMnxzNnzuTxxx+v9z0vv/xyvbfsv/jii1x++eX07duXPn36MHPmzHSVS0VFBStXrmxwvddee43bbrstLftUoItIm9CxY0eWLl3K3r17U35PfYG+atUqSktL+cUvfsHGjRv57W9/e8p5XU5HqoGeTmq5SBDdxpSGLkHSoak970b05M844wyKi4v5wQ9+wNNPP520bPv27Xzta19jz5495OXlMX/+fBKJBMuXL+fXv/41Tz31FC+99BK9e/c++Z7vfve7zJw5k3PP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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "is_coastal = db.coastal.astype(bool)\n", "coastal = m1.u[is_coastal]\n", "not_coastal = m1.u[~is_coastal]\n", "plt.hist(coastal, density=True, label='Coastal')\n", "plt.hist(\n", " not_coastal, \n", " histtype='step',\n", " density=True, \n", " linewidth=4, \n", " label='Not Coastal'\n", ")\n", "plt.vlines(0,0,1, linestyle=\":\", color='k', linewidth=4)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "bibliographic-cardiff", "metadata": {}, "source": [ "While it appears that the neighborhoods on the coast have only slightly higher average errors (and have lower variance in their prediction errors), the two distributions are significantly distinct from one another when compared using a classic $t$ test:" ] }, { "cell_type": "code", "execution_count": 8, "id": "furnished-approval", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Ttest_indResult(statistic=array([13.98193858]), pvalue=array([9.442438e-44]))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.ttest_ind(coastal, not_coastal)" ] }, { "cell_type": "markdown", "id": "ordinary-placement", "metadata": {}, "source": [ "There are more sophisticated (and harder to fool) tests that may be applicable for this data, however. We cover them in the [Challenge](#Challenge) section. " ] }, { "cell_type": "markdown", "id": "fleet-fault", "metadata": {}, "source": [ "Additionally, it might be the case that some neighborhoods are more desirable than other neighborhoods due to unmodeled latent preferences or marketing. \n", "For instance, despite its presence close to the sea, living near Camp Pendleton -a Marine base in the North of the city- may incur some significant penalties on area desirability due to noise and pollution. \n", "For us to determine whether this is the case, we might be interested in the full distribution of model residuals within each neighborhood. \n", "\n", "To make this more clear, we'll first sort the data by the median residual in that neighborhood, and then make a box plot, which shows the distribution of residuals in each neighborhood:" ] }, { "cell_type": "code", "execution_count": 9, "id": "greater-elite", "metadata": { "caption": "Boxplot of prediction errors by neighborhood in San Diego, showing that the basic model systematically over- (or under-) predicts the nightly price of some neighborhoods' Airbnbs.", "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "db['residual'] = m1.u\n", "medians = db.groupby(\n", " \"neighborhood\"\n", ").residual.median().to_frame(\n", " 'hood_residual'\n", ")\n", "\n", "f = plt.figure(figsize=(15,3))\n", "ax = plt.gca()\n", "seaborn.boxplot(\n", " 'neighborhood', \n", " 'residual', \n", " ax = ax,\n", " data=db.merge(\n", " medians, \n", " how='left',\n", " left_on='neighborhood',\n", " right_index=True\n", " ).sort_values(\n", " 'hood_residual'), palette='bwr'\n", ")\n", "f.autofmt_xdate()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "auburn-injury", "metadata": {}, "source": [ "No neighborhood is disjoint from one another, but some do appear to be higher than others, such as the well-known downtown tourist neighborhoods areas of the Gaslamp Quarter, Little Italy, or The Core. \n", "Thus, there may be a distinctive effect of intangible neighborhood fashionableness that matters in this model. \n", "\n", "Noting that many of the most over- and under-predicted neighborhoods are near one another in the city, it may also be the case that there is some sort of *contagion* or spatial spillovers in the nightly rent price. \n", "This often is apparent when individuals seek to price their AirBnB listings to compete with similar nearby listings. \n", "Since our model is not aware of this behavior, its errors may tend to cluster. \n", "One exceptionally simple way we can look into this structure is by examining the relationship between an observation's residuals and its surrounding residuals. \n", "\n", "To do this, we will use *spatial weights* to represent the geographic relationships between observations. \n", "We cover spatial weights in detail in another chapter, so we will not repeat ourselves here.\n", "For this example, we'll start off with a $KNN$ matrix where $k=1$, meaning we're focusing only on the linkages of each AirBnB to their closest other listing." ] }, { "cell_type": "code", "execution_count": 10, "id": "authentic-citizenship", "metadata": {}, "outputs": [], "source": [ "knn = weights.KNN.from_dataframe(db, k=1)" ] }, { "cell_type": "markdown", "id": "representative-subcommittee", "metadata": {}, "source": [ "This means that, when we compute the *spatial lag* of that $KNN$ weight and the residual, we get the residual of the AirBnB listing closest to each observation." ] }, { "cell_type": "code", "execution_count": 11, "id": "brazilian-andrew", "metadata": { "caption": "The relationship between prediction error for an Airbnb and the nearest Airbnb's prediction error. This suggests that if an Airbnb's nightly price is over-predicted, its nearby Airbnbs will also be over-predicted.", "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lag_residual = weights.spatial_lag.lag_spatial(knn, m1.u)\n", "ax = seaborn.regplot(\n", " m1.u.flatten(), \n", " lag_residual.flatten(), \n", " line_kws=dict(color='orangered'),\n", " ci=None\n", ")\n", "ax.set_xlabel('Model Residuals - $u$')\n", "ax.set_ylabel('Spatial Lag of Model Residuals - $W u$');" ] }, { "cell_type": "markdown", "id": "spectacular-general", "metadata": {}, "source": [ "In this plot, we see that our prediction errors tend to cluster!\n", "Above, we show the relationship between our prediction error at each site and the prediction error at the site nearest to it. \n", "Here, we're using this nearest site to stand in for the *surroundings* of that AirBnB. \n", "This means that, when the model tends to over-predict a given AirBnB's nightly log price, sites around that AirBnB are more likely to *also be over-predicted*. " ] }, { "cell_type": "markdown", "id": "signed-enhancement", "metadata": {}, "source": [ "An interesting property of this relationship is that it tends to stabilize as the number of nearest neighbors used to construct each AirBnB's surroundings increases.\n", "Consult the [Challenge](#Challenge) section for more on this property. \n", "\n", "Given this behavior, let's look at the stable $k=20$ number of neighbors.\n", "Examining the relationship between this stable *surrounding* average and the focal AirBnB, we can even find clusters in our model error. \n", "Recalling the *local Moran* statistics, we can identify certain areas where our predictions of the nightly (log) AirBnB price tend to be significantly off:" ] }, { "cell_type": "code", "execution_count": 12, "id": "sharing-chuck", "metadata": { "caption": "Map of cluters in regression errors, according to the Local Moran's $I_i$.", "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "knn.reweight(k=20, inplace=True)\n", "outliers = esda.moran.Moran_Local(m1.u, knn, permutations=9999)\n", "error_clusters = (outliers.q % 2 == 1) # only the cluster cores\n", "error_clusters &= (outliers.p_sim <= .001) # filtering out non-significant clusters\n", "db.assign(\n", " error_clusters = error_clusters,\n", " local_I = outliers.Is\n", ").query(\n", " \"error_clusters\"\n", ").sort_values(\n", " 'local_I'\n", ").plot(\n", " 'local_I', cmap='bwr', marker='.'\n", ");" ] }, { "cell_type": "markdown", "id": "thermal-hundred", "metadata": {}, "source": [ "Thus, these areas tend to be locations where our model significantly under-predicts the nightly AirBnB price both for that specific observation and observations in its immediate surroundings. \n", "This is critical since, if we can identify how these areas are structured — if they have a *consistent geography* that we can model — then we might make our predictions even better, or at least not systematically mis-predict prices in some areas while correctly predicting prices in other areas. \n", "\n", "Since significant under- and over-predictions do appear to cluster in a highly structured way, we might be able to use a better model to fix the geography of our model errors. \n" ] }, { "cell_type": "markdown", "id": "underlying-uzbekistan", "metadata": {}, "source": [ "## Bringing space into the regression framework\n", "\n", "There are many different ways that spatial structure shows up in our models, predictions, and our data, even if we do not explicitly intend to study it.\n", "Fortunately, there are nearly as many techniques, called *spatial regression* methods, that are designed to handle these sorts of structures.\n", "Spatial regression is about *explicitly* introducing space or geographical context into the statistical framework of a regression. \n", "Conceptually, we want to introduce space into our model whenever we think it plays an important role in the process we are interested in, or when space can act as a reasonable proxy for other factors we cannot but should include in our model. \n", "As an example of the former, we can imagine how houses at the seafront are probably more expensive than those in the second row, given their better views. \n", "To illustrate the latter, we can think of how the character of a neighborhood is important in determining the price of a house; however, it is very hard to identify and quantify \"character\" *per se,* although it might be easier to get at its spatial variation, hence a case of space as a proxy.\n", "\n", "Spatial regression is a large field of development in the econometrics and statistics literatures. \n", "In this brief introduction, we will consider two related but very different processes that give rise to spatial effects: spatial heterogeneity and spatial dependence. \n", "For more rigorous treatments of the topics introduced here, the reader is\n", "referred to {cite}`Anselin_2003,Anselin_2014,Gelman_2006`.\n", "\n", "### Spatial Feature Engineering\n", "\n", "Using geographic information to \"construct\" new data is a common approach to bring in spatial information into geographic analysis. \n", "Often, this reflects the fact that processes are not the same everywhere in the map of analysis, or that geographical information may be useful to predict our outcome of interest. In this section, we will briefly present how to use *spatial features*, or $X$ variables that are constructed from geographical relationships, in a standard linear model. We discuss spatial feature engineering extensively in the next chapter, though, and the depth and extent of spatial feature engineering is difficult to overstate. In this, we will consider only the simplest of spatial features: proximity variables. \n", "\n", "#### Proximity variables\n", "\n", "For a start, one relevant proximity-driven variable that could influence our model is based on the listings proximity to Balboa Park. A common tourist destination, Balboa park is a central recreation hub for the city of San Diego, containing many museums and the San Diego zoo. Thus, it could be the case that people searching for AirBnBs in San Diego are willing to pay a premium to live closer to the park. If this were true *and* we omitted this from our model, we may indeed see a significant spatial pattern caused by this distance decay effect. \n", "\n", "Therefore, this is sometimes called a *spatially-patterned omitted covariate*: geographic information our model needs to make good predictions which we have left out of our model. Therefore, let's build a new model containing this distance to Balboa Park covariate. First, though, it helps to visualize the structure of this distance covariate itself:" ] }, { "cell_type": "code", "execution_count": 13, "id": "israeli-antigua", "metadata": { "caption": "A map showing the 'Distance to Balboa Park' variable.", "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "db.plot('d2balboa', marker='.', s=5)" ] }, { "cell_type": "code", "execution_count": 14, "id": "african-ocean", "metadata": {}, "outputs": [], "source": [ "base_names = variable_names\n", "balboa_names = variable_names + ['d2balboa']" ] }, { "cell_type": "code", "execution_count": 15, "id": "sufficient-newfoundland", "metadata": {}, "outputs": [], "source": [ "m2 = spreg.OLS(\n", " db[['log_price']].values, \n", " db[balboa_names].values, \n", " name_y = 'log_price', \n", " name_x = balboa_names\n", ")" ] }, { "cell_type": "markdown", "id": "complicated-austin", "metadata": {}, "source": [ "Unfortunately, when you inspect the regression diagnostics and output, you see that this covariate is not quite as helpful as we might anticipate. It is not statistically significant at conventional significance levels, the model fit does not substantially change:" ] }, { "cell_type": "code", "execution_count": 16, "id": "western-palestinian", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES\n", "-----------------------------------------\n", "Data set : unknown\n", "Weights matrix : None\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 12\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6098\n", "R-squared : 0.6685\n", "Adjusted R-squared : 0.6679\n", "Sum squared residual: 1319.522 F-statistic : 1117.9338\n", "Sigma-square : 0.216 Prob(F-statistic) : 0\n", "S.E. of regression : 0.465 Log likelihood : -3987.446\n", "Sigma-square ML : 0.216 Akaike info criterion : 7998.892\n", "S.E of regression ML: 0.4647 Schwarz criterion : 8079.504\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error t-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " CONSTANT 4.3796237 0.0169152 258.9162210 0.0000000\n", " accommodates 0.0836436 0.0050786 16.4698200 0.0000000\n", " bathrooms 0.1907912 0.0110047 17.3371724 0.0000000\n", " bedrooms 0.1507462 0.0111794 13.4842887 0.0000000\n", " beds -0.0414762 0.0069387 -5.9774814 0.0000000\n", " rt_Private_room -0.5529958 0.0159599 -34.6490178 0.0000000\n", " rt_Shared_room -1.2355206 0.0384618 -32.1232754 0.0000000\n", " pg_Condominium 0.1404588 0.0222251 6.3198282 0.0000000\n", " pg_House -0.0133019 0.0146230 -0.9096565 0.3630396\n", " pg_Other 0.1411756 0.0227980 6.1924442 0.0000000\n", " pg_Townhouse -0.0457839 0.0343557 -1.3326417 0.1826992\n", " d2balboa 0.0016453 0.0009673 1.7008587 0.0890205\n", "------------------------------------------------------------------------------------\n", "\n", "REGRESSION DIAGNOSTICS\n", "MULTICOLLINEARITY CONDITION NUMBER 12.745\n", "\n", "TEST ON NORMALITY OF ERRORS\n", "TEST DF VALUE PROB\n", "Jarque-Bera 2 2710.322 0.0000\n", "\n", "DIAGNOSTICS FOR HETEROSKEDASTICITY\n", "RANDOM COEFFICIENTS\n", "TEST DF VALUE PROB\n", "Breusch-Pagan test 11 317.519 0.0000\n", "Koenker-Bassett test 11 132.860 0.0000\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "print(m2.summary)" ] }, { "cell_type": "markdown", "id": "identical-aside", "metadata": {}, "source": [ "And, there still appears to be spatial structure in our model's errors:" ] }, { "cell_type": "code", "execution_count": 17, "id": "numeric-harrison", "metadata": { "caption": "The relationship between prediction error and the nearest Airbnb's prediction error for the model including the 'Distance to Balboa Park' variable. Note the much stronger relationship here than before.", "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAB2oUlEQVR4nO39e5wc9Xnni7+/VdW3me65aC4SQpKlAYFsMNjcDJYsy7cYxAbiLOwxOdnN5uUs5KwTNtnYB++J7XOOk/0FXtnfJvbreE/Qj80v6zhrn1i5mA0SxJjIQhgZkDA2WDKCEaD73KfvXbfv+eNbVdPd0z3TM9Mz0zNTb7+wZqarq6q7q596vs/l8wgpJSEhISEhqx9tuU8gJCQkJGRpCA1+SEhIyBohNPghISEha4TQ4IeEhISsEUKDHxISErJGMJb7BGait7dXbt26dblPIyQkJGTFcOzYsREpZV+tx1ra4G/dupWXXnppuU8jJCQkZMUghHi73mNhSCckJCRkjRAa/JCQkJA1QmjwQ0JCQtYIocEPCQkJWSOEBj8kJCRkjdDSVTohq5NDJ4d49PAgZ8bzbO5u44HdA+zZ0b/cpxUSsuoJPfyQJeXQySG+/PhrDGWKdCUiDGWKfPnx1zh0cmi5Ty0kZNUTGvyQJeXRw4NEdEFb1EAI9W9EFzx6eHC5Ty0kZNUTGvyQJeXMeJ5ERK/4WyKic3Y8v0xnFBKydggNfsiSsrm7jYLlVPytYDls6m5bpjMKCVk7hAY/ZEl5YPcAliPJmzZSqn8tR/LA7oHlPrWmcOjkEPftO8quR57hvn1Hw9xESEsRVum0EGuhemXPjn6+gorlnx3Ps2kZXudivc9+Qjqii4qE9Fdg1X2OISsT0cozbW+66Sa5VsTTyo1FIqJTsBwsR/KVu64JjUUTWcz3+b59RxnKFGmLTvlRedOmPxXnW/ffutBTDwlpCCHEMSnlTbUea4qHL4S4HfgqoAOPSSkfrrHNHuBPgQgwIqX8cDOOvVoor14BaIsa5E2bRw8PLprBXwkrimaf42K+z2fG83QlIhV/m2tCeiV8JiErlwXH8IUQOvB14A7gPcB9Qoj3VG3TBfwX4C4p5TXAvQs97mpjqatXVkI9/GKc42K+zwtNSK+EzyRkZdOMpO0twBtSykEppQl8G7i7aptfAf5WSvkOgJQyvIKrWOrqlZVQD78Y57iY7/NCE9Ir4TMJWdk0w+BfDpwp+/2s97dyrgK6hRCHhBDHhBD/qt7OhBD3CyFeEkK8NDw83ITTWxksdfXKSqiHX4xzXMz3ec+Ofr5y1zX0p+JMFiz6U/E55QZWwmcSsrJpRgxf1PhbdSbYAG4EPgYkgOeFEEellK9Pe6KU+4B9oJK2TTi/FcFSV69s7m6blmBstXr4xTjHxX6f9+zon/e+VsJnErKyaYbBPwtsLvt9E3C+xjYjUsockBNCHAauB6YZ/LXMQozFXHlg9wBffvw18qZdUa3SzBXFQhOQi3GOrZwUXYrPJGRt04yQzovAdiHENiFEFPg08HjVNt8FPiSEMIQQbcAHgBNNOHbIPFlo+GE2FpqA9A1zrmQxnClxMV1s6Bxnanxq9aToYn8mISEL9vCllLYQ4reAp1BlmX8upXxNCPGb3uN/JqU8IYR4EvgJ4KJKN19d6LFDFsZirigWUv74tadf5+uH3sR2XWK6RmdbhIiuz+qNz9b4tBylr3NlKVd5IWuPptThSykPAAeq/vZnVb//MfDHzTheSOsz35r0QyeH+PqhN3GlJKJrOBJGsxY9SWY1zLMZ9GbUyS82rRxyCln5hNIKIYvCfBOQjx4exHElhiYQCIQAy3W4lC4xlDG5b9/RwAhWG8dTQxk2dMQr9ldu0Fs9KRpKM4QsNqF42hplsUW+5lv+eGY8T8zQsF1JyXYoWA62C66EmC4CI/i1p1+fFo/PFG1Gc6WK/ZUb9FYXbgvr8EMWm9DDX4MshSc5l/LHck89XbAQSGx3ekVuKh6hLWowki3y1WfeACRxQ6cvFSMVj9DdFmEsZ9EWNWpWubSCcNtMrISQU8jKJjT4a5D5JC/nE1tuJAF56OQQn9//Cpmije26CMByVXOHEMqzB9AFZEs2iaLFSMbEcSUxQ2C7kvMTRTZ2QW8yhu249KfidQ26f07+6/nid19l8+HWMPytHnIKWfmEBn8NMldPcqErgpluFl/8+58ykjWRgCbUfz66piy+JgSGLjAdl4uTRSzvLmDaEkMDTRMMZ0rommD7+g4e2D0QHM8Ph5SfZ/nr0QW8fGacz3zjJa7qT/LQ7TsA5nRzq/X65roPqF+Hf9vAOu7bdzRM5IYsmFAeeQ0yVxnfmbYvN661jFEtDx4h6ExE6G2PcvJStu55vvfyTtIFi/OTBQCklNju9O0MTbV2X97Vxj03XM7+4+dmlD/2X4/tSM5PFtAQSNSNJRk3EEBHIkK6YDKas3AltEV1fnP3AA9+/KqKY9eSW04XLCTQmYjMKMHs3yhODWUwbZeILuhPxZFSkjOVZ3/bwLpZX89iEVYMrUxmkkcOk7ZrkLkmL+tpvJy6lJ61kemRJ08ynlcGUEoVrrEcyWjWZHAkF2wnhPqvnLxpAxKkxHIqjX35po4L7VGDr9x1DQdfvchQusg7Y3lOj+RwXDkt8em/npFsCQ2Bpqn/HCnJlmwyRZt0wWI4awUhpbzp8NVn3uBrT1c2h9dKtGaKNtmSPWPy1b8RHnt7jJGsSbpoM1GwGM+b5C2XP7j7Wr51/608Pzi2LIncVm9SC5kfocFfg8y1o7OewqTpKGPquJLTIzneGcszlC7yyJMng+0GR3JoQhl7p2wxKQGz+g9lv27qjBHVNc5OFNF1jZheeTeQVT9HdMHDB0/w80sZXCnRtan4vu24FeEq//WYjhvcZKSEqK7huBLbdRnNmcDUjUigwk2PHTldcR61boa26+KUJZ3TBYuLk0VeeGssqIjyb4SWI1W+AnXjGs9bFQZ9PoJqzajACiuGViehwV+j7NnRz7fuv5VnH/oo37r/1hmX6vVWBFFDw3ZcZVRdZWRdKXl9KDvNyNju9FhMhUdf9nNEF/zhp66jqy3K1p42tvensGeIPEZ1wWWdCd4ayyOlSvQKBJpQdfyX0qWKxKf/evzzdaVESuhLxdA1gaFpuFV3FOHlF3Jm5Y2v1s3Q0DSVf4AgJGU6bkVZ6RtD2al8hW/xgZLtVtwcUjFjTnLOzfLMQ+XO1Ulo8ENmpd6KYHt/ikvpkmcMvUYpRIUnuK2nDVdCdZWlAAzPyEV1QcLQ0DSIGRq//ZErg85Y3+jMlGvqTEQQQq00NAGOK3FdiZTqP8t1K8JV/uvZuq4NRyoP+7JOZeyTMYNU3Jgyxt5h/ZtAe7TSCNa6GabiBsmYqnwayZa81yvo74gHnrLtvR4hmKYtW35zGM6WSBeshsNvzfLMl3o+Q8jSEFbphDREvRLLz3zjRXQhghi9i2RjKs6poQz37TvKcLYEKKNabtcMTcVJDE1yRV+SbMmeVkZZq0yxFnnTIVO0lKH3DiIEOF5oZ2Bd+7Rzry7PPDuepz8V50t3qmFtX/y7n3B2sqTCRRpI1L5/Y9e2afupru339/Ho4UHeGs0T05WxT8VVZVQioqN7Jaea8Ix/2ZtTfnMAiGiC7vZYQ70DzarlD5U7VyehwQ+ZN3t29LO9L8lbY3kcVxLVNXqTcUzHIVO0GcoUuawzQUTXGM2p2nldgKapWLkANnTEyZTsaVUgh04OMZE3eWs0T0QXRDRBqSzm7+cFJFC0VVhJK6vbd1xJbypKRNf5wh3vnvE11DKeR/7Dx/na06/z2JHT5EyH9ojOb+zaNq1KZ6Z97NnRX1HhlC5YjGRLlGyXqK6ja2C50rtZqhtKVIONXerm4G9ftF1uaY/xB3dfO2uVTLNq+Vu9SS1kfoRlmYvAaipnm+211CpLPDteoLstQl9qStcmb9pEdY2utihnx/O0R3XOTxQwXaluBF445T/dcz1AsE/bcbmULmE6Lq4EXYOIrqkksB+2gUB7x3JdJbrmStqiOl/79PuX9b333x/TdoJEMBJ6U1FsRxLTBcM5CwBdCDoSBn2peBD7d6XEdUHTVFjps3uuqHnTqT5eI2Wcy3mdrqbvSKsxU1lmaPCbzFy+cK1Oo6+lPCyyqbuN1y+luawzgSjLykopmSxYPPvQRwG4/U9+wBvDOXShEqe25+kmIhpbe9oxHXda3b9puwxlShWyybYjGc+bZaEcQdzQ6E1GcSXB8ZaTQyeHePDbL5Mz7QopiOFMkfG8xabuBImIzmhOCcR1xHUmC/ZUl7F3k3O8JrRHf/XGGSUq/Lr+qD7ViFbL2C/XdbqaviOtSFiHv4S0Qjlbs4TRGn0te3b088DuATZ1t3FmPI/lyCBZCapS5Y3hLEOZUnA+p0fzKiwDFbo5BcvlxMUMb4/mOHUpw8mLaQaHs9iOqvJ59Fdv5JatPfQkY2ztSfLH91zPlX1JNCGIaBoRTWA7knMTRaTrLqpAXKPs2dFPRyLCuzd0MNCXDGL5fjOa//72JuN0xg0myow9qHLNouViORLLdmteS+XVORs64vSlYrTFInU95+W8TquP7biSoXSRB755bFk/p7VAGMNvMsstgNVMYbRGX0v1MR3XZSijwhcxQ+PcRBGAy7viwfk4rqsSll65ZvU603ZVKWdUV/X074wVEAI+842XiBka6xJGIJ0QlEqWlTdKV3IpaxKLTpUnfn7/K/S0R8mazqxhhEZCWbUeP3RyiIcPnuD0qHqPBnrbeej2HTVj6yVbrVTKKVoOuhDoGhU5Cx8XOHUpPe3vjzx5kqF0EUeqXEpfKhYY8FqvcTmv0/JjZ4oW5yeKqLQ4oST0IhMa/Caz3AJYjQijNRo/bfS1VB+zN6li97mSw3je8jRyBOcni0R1jY6EQdTQMW13WrlmNao5S20kvVKgvOmQNx06YhpDhsb5ySI9bRHSRZuSNVXvL10ZnFO2aDOcNRnOmrRFNHIliwe+eYxU3GB7f2pawvjLj7+G5ThM5i0uTBY4/s54ED+vd1O95+wEjz07SLo0Vc74+qUMn9//Cv/y1nex//i5iqoXXRN0tlUa3ZLjEjd0b9VT+80xq24Eh04O8fpQFt1rEMtbTlAdNFmwau5jMa7T+VxXw5mSV5oqgmuo1aaQrSbCkE6TWW7N9dkaZg6dHOJz+1/h5TPjXEoXefnMOJ/b/0rNZXSjr+XUUIYLE4Ug/JIpWvS0x+hMREjFjaCaxu9+HcmYGJqguy1SIZEwV9Ill3PjBXQBEwUlgxA1NCK6KhN1Jfz03CSvnpvkUmYqxJS3XMbzNiXbZSRr8tJbo/ybv3yJm/7we9y37ygPHzyB5TiMZi0cqeLnrpR8/dCbgVFTCeWyDuNMka8fepOMZ+z97lxHwmTB4vnBsWm9DJ/dcwURXWc4U2RwOMuJC2lcqRrP3Blya1Gj8mvrn48rlWwFUh275EgyRXtBn22jzKXhq/zYJdtRFUpIepMxIGzwWkxCg99klnsQ9WwNMw8fPMFE3kK6qipEujCRt3j44PSZ8o28lkMnh8gUbSy3Us5gNKe6W01baR37jVmabwmBP77nenZsSC3o9ZZsF9uVmI5UtfLez+XMVpbg6/tkChZDmSKnhrOMZkq4UmI5LiXLxXbUz74Hazsu5yYK5E2VcCxaLiXbrTyW91JNR1YYMH+b6zZ1cc8NlzOetyjaDlFd0J2IkCk55dGp8t2pRGx/5Xt2ZjzP+lRMVS1RqVLR3Rbh4YMnpuUymn2dziUnUH5sXdPQNMHGzgQdXpgnbPBaAGZpxofDkM4isJyDqGdrmPGTpZrXSiqECn34Medqyl9LuYZ8MqojhODUUCYQNbMdGTRUjeUs/uhTA/zed35MzpQULQeJp0mjKcPl7/s9X36SfJVkQaP4DV+gbiqmU0NOswF8w9wWNYhoGkXbRZSZb+n936vnxrFdlVye8bxq3GVqhYHaozqbuhMVoZVYtshE3lKVS1KpgWpCefAdicg0L9wPkfj3Uum90VFNEDM0Tg1n2erKmjmdZl2nc80JlDe+ffnx1zB0gZQybPCaD2YRXnoKDn8Hjj4+46ahh7/KWKwVRvmSXRdw8lKWExcz0+SKLa90MBVTYaW86eC4Ux6nBFyXYPkOSno4oi0kuKOY5mHPk/Ud6tyqvWUJZErurMa+FhcmC1iOM80DHhzJTQvB9bTH6E3G+PNfu5l3b0ihaxpCCK7sa+df3fouHj08WOGt+yGSqKFhaEKFtTSNy7oSXMqUiGjaolfjzFeKYblXxCuWUgGO/C380a/AvX3wf/wSPPNXkM/M+LTQw1+FzOS5DfS2c2ooiwh0ZpQX2RbVgqV+LcqX7CfOT9bcRgIxXUMISEQNHvjmMUo1BOwllSJk2/tTvDWa5aInZVBNzNBq7qeZ+BIKAIauBdIH/mAWpKqQmQ8dMZ1sSQ1iH8maXkdyjFRcff0KllMzeVr9OdatwLrrGr5y1zU8fPAEp4azRIRgg6cNZDmSTV31B7s3i2ZIMbRuR1CLUMzDiweVJ/+jf4DilLw4mg7XfwR23wvfe6DuLppi8IUQtwNfBXTgMSnlw3W2uxk4CvxPUsr9zTh2yNx46PYdfH7/K0wWrCDWrWvQETdmLIc7M55HF6ia+Bm+mRKJZUsuTBYqGq/K0QUMeUnUQyeHGM+V6hp7Q1N1+h1xA12DfMmpWa7YDFxgOFMkauhs708yWbQYy5pefmDuCFSiOms66mYhISpEMHilx46yraeNvOVWGMp0wSKiCXY98gypmIGUkqyp/t4e0+lMKANeXr9+w5buQEKiXBsoqmvTwlyLESOfrxTDUsxXXtEUcvDiAXh2Pxz9ByiV3ag1Hd73UWXkP/hL0NXnPbCIBl8IoQNfBz4BnAVeFEI8LqX8WY3tHgGeWugxQ+bPnh39/PE91/Pgt1/GlQ4xQ3mbHYnIjOVwqZjBqaFsIPtbD8szxrac8pir8fdRXv5Yy6BGdIEA4hGdqKGRKdp0t0eJGRpnxguzlnQ2giaUDj6A5brkTYeHf/k6AD63/xWvSkdMSwTPhn/eoGrr/b9JQGiAp33vH8s3lMmYgUSFxnQBp4bURLDLu+LkTYeC6RAz1H5r1q/fdU3F1DL/PV4KEbT55ATmM1951VPIwo+eUEb+hSdU+MZHN+D9H4MP3aOMfGfvnHbdDA//FuANKeUggBDi28DdwM+qtvtt4G+Am5twzJAF4Hd+blnXVuGFz7TUDyQ4ZrF7vsY8kmD2bDWmI9nUGQ2+7BcmzZrb+TcPy7FJRDTaozrjeYtUTOeq/uSM4xHrnVtU17xKHjVSMKJrDPQlg9c4WbCCZGK+5FR0Ac8FVRYqVVLc+1t/Kka2ZKtja4K2mBEYtfLxi76sxOCwd4OVMJI1iRnKWx/2VkeN1K+3ugjacjcqtgyFrPLgn/2OCttUG/kbPjFl5DvWzfswzTD4lwNnyn4/C3ygfAMhxOXAp4CPMovBF0LcD9wPsGXLliacXkgt5tp4kzUdLu+KM5I1KdUpqNEFXN6VUIqQljNj6KfkSE4NZdCYMuz1iOiCguWSt1TnbV8qzkO37+Df/vfjc6ru8Ydm+fc412vievXcZHCc9R1x7vjTw7w+lMV11ZD08qTzTAhRWZ1jaKpqSBPq5/6OOL6Z9WcCV1NuAE3HDVZDpuOysTPB+ckCRdvxJnCpOiK/0a2eoVzOqrHZWO5GxWUln1Gx+MOekTeLU48ZEbjxF5SRv+1uSHU35ZDNMPi11vjV348/BR6SUjr14rrBE6XcB+wDJZ7WhPMLqUEjSbbyzsl0QXXMlqzpBrYjbuBKl609yWDFcH6yUDnTsIrJgoWhaxRmMdi6mLoh+KWTP7+U4d/+9+M1z8XfTng/uHLqAlW9AgSljtXFNqYjOTNeIKoLlbSFmkPT61Lj5UqpwkaJqN5QWKXcAEZ1Ta0wJF6HcoSSrbqMS7Yaz7g+FV/R9etrTnc/NwnP/w8VrnnpSbDK6uYjUbjhF1RM/ra7INnV9MM3w+CfBTaX/b4JOF+1zU3Atz1j0AvsFULYUsq/b8LxQ+bBbEv9rz39Ol8/9GagTKlpgnRxuoEVqKEgzw+OBYbKN0BnxvN14+ymI+vG7sv3Xeue4UoCz77GwKipUsrqKJScPmoxmDJYpqVvOZJYRCPCzHX9tY5drtOfM5UnHtEFrjcvYLJgzRhW8Q3gSFbN4vUT1H6OJWroQdx/NdSvt3rIqSnkJuH5x5Unf+wpsMpCmJEY3PRJ+NC9cNsvQnvnop7KguWRhRAG8DrwMeAc8CLwK1LK1+ps/xfAPzRSpbMS5ZFXA4dODvHAN48Fw8ClBLNGjbtv8DriBl/79PunSd4Op4sVujLVRGp42eWUDzRpFh1xg6guyJQcLMcNBpc7UlYcyx89ONPhI7rAcWRQrmloSp7ZX5H4JapqgLtkQ0eMzevaZ9Wa8W+2/pwA13VxEVzVn+Sh23dMa4RrlqEMNeqbSHZiysgf/8fpRv7mO5Qn/4F/Bu0dTT30TPLIC/bwpZS2EOK3UNU3OvDnUsrXhBC/6T3+Zws9RkjzmenL/ejhQRxXBkNFyhOPUDZ83PtjuqiShffccDkHfnohqCyZraJnpnBJ0qtdbzaZkq2mbqFuZMU6JzGbH6SjcgBRQyNmaKSLNrYL5SNvLdcNBpo7jsvZiSKxiE7JsvnR6VGeHxylLarzm7sHKoaaPD84Nq37Nm/adLVFpyVkm2GQfYXPU8NZIprG+o5YhSDc84Nj4U2gEdJj8Px3Vbjm+PfALhOui8YrjXzbwiRF5ks4AGWVU8uwA9O88fIBFLseeYbxnIntyECCoWQ7db1tTcC23nbSBQuJGiqeiOicvJiZtcqlVljE32ezvftmEjO0wChnihbDmRJFS9Xb+1+poAyTmVcKuib4dx+9MjD6ux55hi5vMLtPumByMV2iLxULZC1qjYacK+Ud1K4rEULdCDd2xSnZDmO5qQEt5dcJEK4GANKj8NzfKyP/8tPg2FOPxRJw817PyN8JieSSnNKievghrUu9ppa2iBaU8gXGynZ48Nsv87VPv59UzODSZAHLBeGoCpOZ/IJUzKAtanBuvAACLutMAOp5Mxl8vzEJmLZdKxt78ETbHDfQc1dD0yu3kVX/VuObc03AY0dOBwa/unIlU7Q4N1HE8JLJbwyrDsvy+QJf8fY1VyPsl8aqecMCIQQukuFMCSmlNyqyskb+kSdPkjOdtdssNTkCP/x7Fa758TNVRr5NGffd9ypjn2hfttOsRWjwVzH1mlpOj+bZ3p8kU7Q4M5YPvNJM0ebBbx33kp4CXai4tl9Pr9cwahpTxtp23cArzRQtrFmEzCTTDX0r4Vf6BB57masuBFxKl9A1Ma0cs1ECMTlRKTVRXblycVKV661PxRnJltA9lbSRrMlAX5K8afPwwRPkLXfORtjvoHZciSVlUEJqOhJXSuLGdKntU0PZipDTmmiWmhiG5/5OGflX/gncsnBjvF2FaT50D9yyF+KtWykVGvxVTL2mFlAlfBcmChUGXEKQZO1LRsmbDqbjBvF8CWhS4kgq5q2WbFdJLrigCRmsGgxdw1lkDZxFp/z9Kfs5FdXIWS6WqwzkbL0EtW6W/u5tR9Iem/oq7tnRr4apHDlNznRwpaS3PUJHIsL5yUJg8P0KooUY4WRU543hHF7zL65UFVRRXWBoWqD34+MLpM00c2HVMD4Ez/2tMvI/OaRU/3zi7XDrLypP/qbbW9rIlxMa/FVMvaaWgd52cubMmjQTBSvQKD95Ma0qdoSgNE0dE0AivAYjV8JbntRy+ZwOPxzdwimjaUhUyMmpsQrJmS6XdcRIl5yGmr8MXcOto+bpSCUXffuf/ICs6ZCKGQxnVbx+S0TnjaEs43mbtqilavO9z82XhJiLEa7O6WRLKhyh6xrCdbGl16ega/zm7oFpU7osR7Ktp62u4NuKZ/ySUqE8/B346Q8qjXwiCbfepTz5m29XMfoVRmjwVzH1mlq+dOcOAH79L16sG1+WkmAQueOq0I4rphqggu28f3Uv9lvemeq4kDAEBVuuKENfTi1j7/cHCE3ja5++Lkh6lqzaBl3ArGqfIzmL0ZxFbzLCULqI6UjGciaJiE5nIsJozuRSpsj6VEzNCJawoSMWTKoa6G2f1QjXyulcSBdZ1xYhb7qYUtBmaPQmo7gSHvz4VVy3qWta6SewupqlRi9MefI/PVzplbR1lHnyn1TVNiuY0OCvYmZratmxIcXrlzI1Qw22K3Eth3MTBZAqdOOH5P3NhQAhCZp/XAB3KtatawJHqhLG5hdYLh8StXoZypSC9/iLf/9Tzk4Ua25vaOBSe6VQvd/hbOUMWtuVjOct1rVFmCzauBKu7GtHCEG2pOQZGjXCtXI6EU0jU3IqpmiVyz7UK/38Cmp6ml+CO9DbWsnJWRk9D8/+jTLyrx2ZbuQ/eLdqhrrxFyAaq7+fFUZo8JeA5WxoqaWpft++o5wZz0NVs1E1rgRdqFpzq9ZQba8xqTp+LT05g/aIxmTJQWP20sSVhiamFD8fPTzIcNasm9Te2NXGSLZUkZhtBCXLoFZO6aLNDVu6K5Qwq5mtY7VWTmd9R4yzE8V5eet5y60o2Wz5Sp2Rc8rIP/sdeO25SiOf7FKaNbvvhfd/fFUZ+XJCg7/ItJLe96GTQ3x+/ytM5E3sBgXBbFc1ENVipudLYLI0JS3gyNauyJkrroQNyUjw2VqOW/Pm6QJvj80vmakSug5CCGw5uxGerRGrVk7H0DWu6k/S1RadU8fuYskaN905GjoDRzxP/mc/rHws1a3UJz90r5IcjkTnf5wVQmjwF5lW0vt+5MmTjGbNOU1uaqRxaLbnL9bAkuUkEdFACIYyxSDHMRPzfQ8tFyKaZHtfsub1Us9A1vr7TDmduV6LiyFr3DTnaOgdOLxfefInjlY+lloHOz+lPPnrP7ImjHw5ocFfZFpJ73twJFcRf69OpNYzSqvPXC8cTROcmyg23hE8R4uvC4gYSudHEyKYZlVO+QCZybzFhckCx98ZZ++16zn2zmSF4fz8/lfoaY+SK1nB/Nvt/al5e9BzkTVu1GtfkHN08S3V7frsfjj5o8rHOnpg5y97Rn6Pkh5eo4QGf5FpNb3vCk2cqt9Dw944kwVVztjo4sWXSdbEzN3HPo4Ex3IRQCqu1zWQluMwmrVwpaqEKtkuf/fjC3QlDDavU4lUx0v8Zko2V/YlK+L0811lziZr7Bv5U0MZNamsLUJvMjaj114+RtP0hO16k9H6ztGF056R/w78/MXKxzp7K428Hpo6CA3+otNKet/betr4+aWs6qStYXN8aV9qeP8hzcGVkpihpm5VK3TWQgK5kh0MmPeFzk6P5mcs9Zws2HQWLDoSEYYzJTSvm1aI+tOx5sJMFWDloZl8ycaVktGcSczQZxylWT5GU/dkOc5NFNneX6ZBc2FQxeMPfwdOHas8qa5+2PXLqk7+ug+HRr4G4TuyyLSS3vcX7ng3v/2t42RqqFAKpkITQhJ0XoY0D//93Xvtev7hpxepkwufhiNV2ecf/tJ7+dz+V5jIq2E0M0WJJMpj3iLaMB21UvAbtaAyrHjo5BCPPHmSwRGl0bOtp40v3PHuWa/Rekni8tCM5Uk8S1f1dXR4wnq1vPZpYzS9fzdkz8C3/kh58m+8XPmk7vWw658rI//e3aBXNp+FVBIa/CWgVUbM7dnRz7/50AB/8vSpaYZC16bkijVfDjn08puKADQNnnptaFYphmrOTRR59PAg2ZKNLgSaJjCdmcs8XQnnxgvBcJfe5FSpoR9W9Cu3xr2bCChxts/tf4X/dM/187puy/NW/tQuUSYFUS+kWT5Gc2PuDP9s4gh7x59je/ZNOFy24boNysjvvheu2RUa+TkQGvw1xvODY+iaCOat+k5Vuc7ZKiyqaQn8MEXenXsbmgRev5QOVC2hsTywBCK6RltUrzkd69HDg2SKNromgt4C4UqypfmHfMrzVn2pGOcnirioiV9+Z3CtkOYtxjDXvvmPfGToB2xLv1n5YM/GKSP/ng+GRn6ehAZ/jXFmPE/MUHosQZxeTCUVV1GpfMvhJ2ur5scEf5vprReoBjc/PCJE7UqrcnRNsGNDismCxR/cfW3NsOIXv/sqtutilIV7hBfvn28lWXneKhkz6ElGGMtZJCJa0Bkc3EjeORHE5P/zW69W7Gc41suh/t1c8c9/nRtu36uWRyELIjT4q5zqkrhkVMd2DEZzauSaH7oRQG97lKGsOdPuQppAPb2dmQx+bzKCRBA1NCbyFtKVs96gI5oIwif1woqbu9sYyZRUd3SZwJ2uiWk6PI02RFXnrbb2JPmjT3nbSwlv/wy+8V9UTP7tn1U8dzjexxOdO3ly3S7SW2/kf73jPdzQAuHQ1UJo8FcBMzXf+NUSuoCX3xnH9FQtU3GDvOlSslVCrzcZIZWIhAZ/mZgtf2voGlt7kjyweyCo0lEDS2TdfIBpu6QLFl+68z119/vA7oEghi89cTzHlQipQkj37TvKbQPr2H/83JwaoipuMFLCW6/Cf/u/lDd/5mTlxv1bOHPNXv5j9lre6H438WhEhZ2scLnZbMIRhyuMauNe/mWsHkP36OFBhjJFMgWL4axZMXDD0JXWeW97NBDiSsYMTl7MhLnaFqUjbnDNxs4g/v3o4UF+dHq0rpcfj2hsXdfGk7/74Rn3W16lo+r5Jb3JGL3JGAXL4ex4gXXtEXqTU0qRvsBaXW0fKeH0T6dKKM/+vPLx9VtVZc3ue+Hqm7nv//ejaf0qsx4jpCbhiMMVyGyzaH1P6+uH3mRde4TOhPoyltdY+40svrEHT7ZYQl9bhG29yYov064/ejo09i2KLsB23KBrVqJmB9f7vISAK/uSTBasOltMUe6N37fvaIXhbYsaOK5kMm9VGPyapZVSwuArU7IGZ1+vfHzDNmXgP3QPXHXTVAyJuXekL6cg4UomNPgtSD1NkfaoPq313HElY1mTdMGe1p24ubuNl8+MK8++KlOYKdoVX6avPf06ZydLS/tCQ2bFj+27UqlTDnrzbCO64LLORN2krZTz6+iuZXhjhkbRrqwsCvYtpaqNP/wd1fV6/o3KHW68QomTfege2H5DhZEvZ65SDa0iSLjSCA1+C1JPU+TUUIaYoZcZ9hi6JlTHpZDTuhMf2D3AZ77hhcTKDIPhPaf8y/TYkdPA6pMxXskYAuyqXiT/Z9ORpAtW3c/Lr+qZa0d3LcObihvYeTnVLW7aDEz8nC85r8G//p9V92s5G69Unvzue+GK99U18uXMpSO9lQQJVxqhwV8C5rr8rOVl2Y6L7YJwXHQhsB3J+ckCjlNlEfxfpWTPjn6u6k/y5nAW01HNLxFvNq0AJvImux55hs3dbWSKNhHNH1kY0grYVZbcH6ruf8Yj2VJFw1w5EU3wlbuumbMBrGV4o4bOZz+8mUvHnuOaE0/xsdEjrM+dr3zipquUJ7/7Xhi4riEjX85cOtJbSZBwpdEUgy+EuB34Kmq40WNSyoerHv+fgYe8X7PA/yKlfKUZx25Fyg18MqozmjPpSEQaXn7W8rIuZUpEdQF4BtvTPnCBvqQ3os7z/DckY8GwjYdu31GhqFhyXDQhSBgapuMG1TuS0NgvFvNdNdUUtyv7Q62BKsL7b6CvfV7eboXhHcvxYfkWD4hjbP7GAbj0duXGm66e8uS3vXfORr7WsRs551YTJFxJLNjgCyF04OvAJ4CzwItCiMellOUFtqeBD0spx4UQdwD7gA8s9NitSHV88Y3hLLYjaY8ZDQtX1VvebuqKI4RgOFPCdFwingZCRyLKhk71UWaKFhcni0hUAu6B3QNBxc5ZTXlO47kSlitxXMmFyZJq4iEM5TSLZjWwRXUNy50arFLdsFV+nIguguf0JqNznq7lOylnx7LcVHidey8cYueFH7C+NFS54bveMxWT33rNgo189fEbWQW3kiDhSqMZHv4twBtSykEAIcS3gbuBwOBLKctHzRwFNjXhuC1JdXzR8RpkhjMlUnG1DJ1t+VlreRvVlUfeFjWC/eRNm6iukTMd8qaN7bhqwDVweVd8ajVx1zUV1Tg3/eH3yJdsCp5LH9G10Ng3EV0TCCmnzQCeK66XkS037OX7imiq3daVSrZgoE+pSpbPpG2EQz+7yF9/8zv88+HD7L74A/pLwxWPD7ZvRey+l22//K+VwW8yc03CtpIg4UqjGQb/cuBM2e9nmdl7/wxwsN6DQoj7gfsBtmzZ0oTTW1qq44tRXcNy3EA4CiqXn/U8m1qzaOtNKwJ18R9/ZxxDF6xPxelITN0UHj08GGxzaijDaM6sqO4oP7eQhaPCKoK2iBp9WB0qExAIms2E5Sop5UREY6JgT7txOBJcV+khWY7Dzy6kkZ4ufkQTgaRyTVxXzXU9/B2ue+pb7CmOVDz888S7+F7Ph3jtyk/yemwT/e1xvrUIxh7ml4RtFUHClUYzDH6tNV3NS1kI8RGUwd9Vb2dSyn2okA833XTTinM8q+OLvckY5yYKGNp04aq5eDazeTV7dvSz65Fn6EpEEGXL7ERE59SlNJ/f/wqZok1xBg31kOagCcFlnXEMXQSe9lCmyMXJIrYj0TRByWos5OK6LgULLuuMkS7Y5MtCNa6UaICN+hI63h1E12CiYE2/lhxHGflnv6OGeY9dAGCdt78TiW080bWL7/Xs4u22zThSsiPVQULOX1enEcIkbHPwncdI39b31tumGQb/LLC57PdNwPnqjYQQ1wGPAXdIKUebcNyWpDq+aOiCrrYIfckYkwWrwlDft+/onDybWl7/ffuOVujkFCwn2F+6YHEpU6TkuZhNCreGzELRdilaDn3xGGfH8/zB3dfy5cdfIxU3GM6WcGbphdLKgvWapjqie9pjjGRNDG1qYpaUyth7myIEGEKpXmaKNhs6Dfb94BR7Sj9TNfJH/gbGLlYc642O7fxt8jYOdO3kfPsmLFetEAxvdQGLnxANk7ALp9x5RLp2ve2aYfBfBLYLIbYB54BPA79SvoEQYgvwt8C/lFK+Pn0Xq4danviX7nxP08vLaq0O0gUrWFqVx/ODis0Vt15auVzKlLiUKaFrgt/7zo/pT8VxXbfm0BM/7KekjAU7NnQAlbH4oUxRacs7kogugu3LkRIsKYlImxvSr/HpCy9w64UfwN+MV2545Q0MvvsOfn90By/bPViOqySxHYkuwEEpe3ZHNU5dymC57uwhogUQJmEXTnVYrB4LNvhSSlsI8VvAU6iyzD+XUr4mhPhN7/E/A74M9AD/xQs32PW0HlYDS1FeVivuCcp4dLVFVTxfE2zojPP2qLqBhPZ+6XFcyVjOUuJkQGfCYKJQ6YCpclqheiWAn1+YxPRuDKbtcu+Nm9h//BxRQ5A3neBzLPf2denwgcxPuXPiCJ+ceJ5ee7LiGCdSV/Pyuz7GwKd+jVs/dAu/v+8oQ6kizlieiKGhORLbVSMXY4a6AY3lbSK6YFNXAsuVDXezzrXvJEzCLpxazmMtmlKHL6U8AByo+tuflf38G8BvNONYq4n5eDb+l+mFt8aIG6rb1k/QJiI6F9NFutqi2K4k5pXqqdb4MHa/XPj18xKmGXsf25GqicqRuEyJ3F2YLPKXR99m15U9HHj1UpDwBZCOze7sT7h9/Dk+OfFDeux0xT5fTV3N93s/xAubPspk5yZ1fT2f4yt9Q4GB8CdSGbqGrqk5u5u6EwxnSvSlYtPEzGbrZp2v7EGYhF0YtZzHWoSdtsvIXD2brz39Ol8/9Ca2Fxoo2g7nJwsAdCQijOZKZIo2Q5kica+x6vxEMajRDlkeGulxcIFNqRgjeQvpguYF8l0pyRRtvn9ymE3dCVIGXDdyjJ0XDnHL+cN0Vxn54+1Xc6BrJ9/v/RDxyweCUl5BZY5oc3cbp0eyOK5UEtlCzTGOGBqWFzZKRCqnSjUSbgxlD5aHcudxJkKDvwzMR+nv0Mkhvn7oTVwpiegaNmoJjiYZyZYwdMFYzqK7LUJb1KA3GVPSC9LFnEHi3g8lhCwejb67BdvF9FZi0lGevC7AcC1uHP8J9535EbdePEKHVW3kd/BUz4d4qmsn52J99LRH2dabnDFHdO+Nm3jhrTE0QSCp4QCXtUUqpLWrw43tUb2iUKD62g0rbpaHcucRodW166HBXwRmGkjyyJMneX0oS0QXrE/FGl7yPnp4EMeVGJpAIDyv3cVxJUXbpT8VZyJvBoOq/TDPO2P1v2gqPBD22LYCmoDJgjXVOeta7Mz8mDvHn+MTk0fpcrIV2/+s+7380/rdPN29k585XTheVU1P3CBq6MG82no5oucHx+hPRQOV1faoRkfCYHNPMrgOq8ONk55Ym+XKuuGasOJm+fDDYuKBt35ab5vQ4DeZejHMe85OsP/4OYbSRVTlFJyfLLKxM0FEF7Muectn0foxXEMXSCS3bF3Ht+6/tULLPFO0uJQuzmrKO+I6w9kwvr/c9LRHyefy7J48zl7PyHc6ueBxieAnXdfy7IYP8+LlH+GssS4YdAO1w4I/OTsRhABjukZnW4SIrm4GX/zuq/S0xyo07mVZvf1s3d5QO1wTVty0NuHEqyZTPUACVLLLT4K9M5ZXrfcIXFdi6IJtve1MFiyefeijM+739EiWkayJ48rAkAtgXXuEq9Z3cNvAOv7y6NtMFqyGwjTl8rshy0PMNflQ+mU+lX2eD438kA53akXmIngheQ0Hunbyo8t286ZUnryhC67obWfvey/j+cGxQKRPCEGmZJOM6mRLNhfSRTRULb/jKvnsz+65ggc/ftW067Rcg+mGLd01w4y1GvuklNOu3UCXJ6y4WRbCiVeLSHX45vVLaS7rTFRsYzsu6aJN3rSDJbuhCYRQJXmNLHn92aNujX78ZMxgKKOqOTLFxow9hMZ+uYi5JrvTx9k7foSPTb5QYeQdNF5IXsMT3bt4quuDDEe6/QfQhUqmuhIupIt84+jbdCYi6ALe8AajdLcZXJwsegZeGXspYVN3Al0TPD84xoNUeuJ1NZioDDM2Gq4JK25al9DgL4Ba4ZtsyWEkW6LPa5jJFC3OTRTRhGq5B7yh02p4uK6Jhpa8e3b009MeJVOycTylS00IdE0wkjUZ6EvyzmgulDhuUWJuiT3pY+wdf46PTb5A0i0EjzloHE1dy4GuXTzVdRsjvpGvwpGgI3Cky2TBRhPQHjUYyZronuTpaM4ioqmkvuOqRi4XyXCmxLbe9pohm5k0mMoNdxiuWfmEBn8B1CpBW9ceYSxn0R4zVF38pPKcetqjTBQsdCGQQnqaKjCwrp0v3PHuhjyirOlwZV8SIQQnL6aDL7kvfhaW2rcWcbfIR9PHuGP8CB+dfJF2txg8ZqPxfOo6nuz6IE92fZDRSBdxQ9XEz6SqZpUJ3bkS3vaS8hFNCba5EkreNkHYr85K0vfE62kwVVfWhA1SK5/Q4C+AWiVoPe0xLEfSn4pzdjyPRC2TOxJR2qIGI9kSLgJDCB791Rvn9GUpX1L7bfagumuBirh+GK1ZHhJOkT3pl7hz/Dk+kp5u5H+Yup4D3Tv5x87bGIt0Vjw3qgucBnJqtbZQK7vpj1iOiyZAF/VXknOprAnDNSub0OAvgHpflO39qUB/3k+OgSqV7EhEyJs2EU1V5nzxu682XItfvqTuTUY5M15QHh3w6rnJpg3eCJkbbU6Bj6RfYu/4ET6Sfok2d2oYvIXODzuu50DXTv6x61bGjc66+0mXHPqSEUayVt0bdvXfq2/u3iC04DFXSiSCK/raeej2HdOusUMnhzg7nufMeAGBuul0t0eD0s6Q1UVo8BdAIzHNWts0Us9ciz07+rnn7ASPHTlNplipjy5R4lmhd780tDkFPjb5AnsnnmPP5DEScsrIm8LgudT1HOjexT923sqkkZp1f/7nli46pOIGjutSsNS0q3o3ckMTOK6s+Mx1XRABEALT9p6P5NxEgZ+cnZimtvr5/a8wnrcwNHBcKDmqke/Bj25vumZOyPITGvwF0GhMsz2qMziiqii29bTRl4zNWs9ci0Mnh9h//Bx9qRiZYu0Wan9AeWj0m0+7k+djky+yd/wIe9LHiMupFmZTGBxJvS8w8mkjOad9Swi0j3KmQ0wXbFnXFkw3SxdMzowX0IQIynJtrxFvU3dC5YoEbO9XN5eLkwWGs+r8IrqgYDl89Zk3AHjw41cB6rrNFG10TaAJjYgOrisRGkE1Tz3mq5kTsryEdfiLSPmXonwFkDdtNnTEp9UzX0wX2d6fmlZX7XtP5Z2TPz03Oathj2gCK4zxLIikk+djkz/izvHn+HD6GDE5JWZfEgbPpt7Pge5dPN35gTkb+XJ8sTTdU8B0vdVafypGf0ecU0MZkLChM86FiQIlL38T0wWb1rUF0tiGprTwy2faagIMTcN2XYQ3nMUvIZ4sWBi6hvDmGEmpBNQ2dMT5g7uvrevB1+s36U/FK8Zphiw9YR3+MlFPSMq03YpBJUCF8Fl5XXV5XXSuZAU1/pqYXd++kQRgyHRSTo6PT/yIvRNH2J0+TkxOraZKIsLhjht4omsX3++6hYze3rTjOhIcTyIZ1M38UqbEeN7EdiWbuxOk4hFSGyKkCxYj2VIgq/GlO98TdNaaVeVariwbYyllRQmxwAsFiuBhBDCUKfGv/+JFAK/D263w4EPNnJVJaPAbZD7xynpfiqguAk/f9/zLhc8Gh7NByaVfY5831dDxN4ayOFIG9fvVlHv9oXPfOB12lk9M/og7xo/woczL04z8oY4beaJ7F8903kJWb64uTPVKrfpjs70uWd9oZ4q+sXdojxrBtfjo4cEgvFPu4Zej5p6LoIQ46NwW6qiOK9UwlLKzKNkuw1mTvmQ0CDuGmjkrk9DgN8B845V1q3jWdwQhGj/2Xy58ZjouSDzpWhgcztIe1SlaDpoQwQi8WiGd0MY3Tqed4Rcmj7J3/Ag7M68QLTPyRRHlUMeNHOjexfc7bybXZCMPBI13UV3DlUoET1St3PwwT097lLGcCieNZEzwGvnaonpwLfoOhum4FdU65fR51xhMlRD3JWNBjilqCGxv8LooW2q4rpJp9j34sAlrZRIa/AaYr8b3TF+K6nrm8piolLKiiSpnOuRMtfzubo+QNx1Mx8Xwmm2sMm2dkJnpstN8YuIod048x870j4kw5QkXRIx/6ryRg107+X7nLeT1xAx7WjgSaIsI0iUHvSykUo4r1f/FDI1UTCdXcrwE79Twm3KN+2AUIhLb9UYXeuga9HdMiaVVlxCD0su5lC4i/Ikt/nmhPH3fg292E9ZsK+iwIqg5hAa/AeYbr6z+UrRHdaK6pmrvD1detP7N4ex4rm7HrJqYZLHRi+OfnyxUCKlV48s5GJpY0xOvuu1JfmHiKHeOH+G2zE8qjHxei/FMx80c7N7JMx03U9DjM+ypOfiK1BJIl9TnMlP5JRLOTRS5sq+drOmwZV1bza7Y8mHpozkTTRNoEnpTUSwvNzCbR765u42RbAnprTCpuGGIiu2b1YQ12wo6rAhqHqHBb4CFxCv9L4Vf85wp2tiuy0imxOf3v8If33N9sM09Zyf4k++fmnF/GoKR7FTN90xm3JWq6sJdg8nbddYkn5x8nr2ekTfK3ill5G/hie6dHOq4aUmMfDm1Pg5Z5++gPmPXlbwzrm7wI9lShe6Nfy2WOxi2k8Z0JFFDY2tPMjDUs3nkD+we4HP7X2Eib6mRi97bFtGV0uZiGNjZVtDhFK3mERr8BmhGvPKRJ08ynrfQNYGhKwXD8bzFI0+eDC7a5wfH0MVUe33trkqJ6UikZ8xns+UzGZLVRo81wScnnmfvxBFuzfy0wsjntDjPdN7ME127ONR5I0VtaY18MyiYDlFDo2i5vDOWpzcZoSMRZbJgEdU1dj3yzKzhjtkM5J4d/fyne67n4YMnOD2aR9dgoLd2l26zmG0FHVYENY/Q4DdAM+KVgyO5CsVMV6oRhScuZrhv31Ee2D0QDDkp2a4S0SrDr8me9OqtdU1QsmtXYpQ/Z7U3YvVa49w+oTz5D2RfRS8z8hktwfc7b+FA9y5+0HEDJS02w56WDr/mfl6TJeVUf8Vw1iKmawhUor863AHMKe5dHSdvVNRvocy2gg4rgppH2Hi1RFz9xYNIKdG9YRSW4wZG2NCUzHFfewRbqlLMWgZ/Q2cM25H0tEd5Yzg7ozqmhufdL9LrWU76rDFun/ghd44f4Zbsa2hlrzKjJXi68wMc6N7F4Y4bKGnRZTzT6SiBNC8+Pkd0AVFDDRaXqGuoPWrQl4pNa4CKaIK85U5r+vvKXdfUNOL1mgTrbd9Mqo89ki0xnrdIxQ2296e4bWAd+4+fW5ZzW4kseuOVEOJ24KuADjwmpXy46nHhPb4XyAP/Wkp5vBnHXils62njjeEcrjPdezc0Fca5lDXpTEQQVOqj+Mb74qQaVq57dZl6HS9RTbtdXfSbo9wx8UP2Thzh5uzPKox8Wm/ne50f4EDXTp7tuAFTi8ywp+XD0ASJqE66UFsWYzbKbxS+w5Au2nS3TQ93/PxSJggPRnWNvlRsxlGayxknL19Bn7qUJlNyWNceoaddzXzef/wc99xwOQdfvcipITXbd1tP6N3PhwUbfCGEDnwd+ARwFnhRCPG4lPJnZZvdAWz3/vsA8H97/64ZvnDHu/ntbx0nW5oehnGlPwjFpS+pdHIMob6obVGdCU9szZ9kNZpTAy8cqBmgXy1e/XpzRBn58SPclDtRYeQn9Xa+13krT3Tv4rnU+1rWyFciyZfsabX2c8Es08P3b/hvjxWIGyU2dKq8xPmJApYjsZBEdSXVcH6iyGWdsbpx76WIk89UWukXLlRLNvg3noOvXiRnOmzqTgReflipM3ea4eHfArwhpRwEEEJ8G7gbKDf4dwPfkCp+dFQI0SWEuExKeaEJx18R7NnRT2ciQs50pn3ZTcclgiCma2RLNjds6Q4u+sHhLBqq61agOi6l1xRjO6vNj4fLzGHumPghd4w/x825n1U8NqEn+ceuWznQtYvnUtdjrQgjr4hokIpHGMtbs2/M7HkXjcrVXdF2eWt0unG2HDUWUQi4lC7x/i21p2nNN05ebcRvG1gXzNktN+qNllbWu/GcGsqyqTsRVuoskGYY/MuBM2W/n2W6915rm8uBaQZfCHE/cD/Ali1bmnB6y4v/hXj9UprRnOU1S00PxViOJBUzgoSwXxVkOmoUIlIQM7RA98SRctUkYzeaQ9wx/hx3ThzhhtzPKx4b11M81XUbB7t28sPUdSvKyJdjuzRk7DVgY2eMoiMZyZoVj5WH8ALN+1lWCxIV/onoAlvWryyrnnF7KV3Ccl0imuDQyaFZ4/5diQinR7K88NYY/aloEI7xjXqjIaN6Nx5Qhr+csFJn7jTD4Isaf6tVUTjbNuqPUu4D9oFK2i7s1JaX8i9E0ZoaQ1jrzdCF6qj1PaKpqqCCl7D1l+tFXFS4x3LUF0H9rHbcwjn4CjaVLnH7xHPcOf4c789XGvkxvYMnu27jYPdOnk9dhy1WfjFZIx+LJmBde5R/cfMW/vLo2zUeb2wiVvU+XQmaJhhY1z5jueZXUOXDb43mieiCTV0JLFfWDZ1UG/FMUc3ZTRdsepPxCqPeaMioXgn0tp62aYKDYaXO3GnGN+kssLns903A+Xlss+oo/0KYjhuU01WXSuqaIG5oJCJasPz1vyTbetpUzF5TFQo9STUzNxFREe2S5SDE7J5eK7CpdJE7x49wx8RzvC9f2WA2anTwVNcHeaJrF0dT78URep29rD68CZVs70vyhTvezaOHB+lIRMgUbaWvg7pWbCkDLz+4fuok7YOEv4CoodGfirP3vZdx376jdcs0/SanrT1tOK4afG46LroQFf0iPtVG3PTGKRYsh8HhLKbjEtU1JvMm29d3NBQyqlcCDYTaPU2gGQb/RWC7EGIbcA74NPArVds8DvyWF9//ADC5FuL35V8IfwZtVFfJV9/oRw2Nq9anAi3x6mVywVLaKVFdY7JgsbUnyR99aiou6nfvtmplzmbPyO+dOMJ1+TcqHhsxOnmq6zae6NrFj9aYkS/nlq09Fcb3i999lUzeDOQwfOMtJaxLRonpgkuZkjfHduZ4v+3ClX1t7H3vZUFp42wxdF3AhckSwhNuc13J60PZaaGd6vBLVNfU9SrBdiS6UAqftiuD0spGDHY9yYZwgPrCaUodvhBiL/CnqLLMP5dS/kchxG8CSCn/zCvL/L+A21Flmb8upZy1wL7ROvxWFVYqrzhIFyzOTxaAyoTb5V1xDF0L6orLh5z4zDRYwn/tZ8fzjOZM8nVkcZeSdxXPc+fEEfaOP8e1hTcrHhs2uniy64Mc6N7Fj5LX4K5RI1/Ov//4dgAeO3KanOnUrdE3NHjsX90MKG/XtB0yRZuC6eCiwoKaUFU50tseYENngnTBoj2m05uc6jAuv6786+j4O+PB4HNNqKEpvs7P1etTHPyd3cHza9XPX0yX0DWIeN3kUkJPMhLIO4QGe/GZqQ5/xTdeLWfDyGzM1FDSl4whpfRKzaaqG154a4yYLujviAfj7aSUTBYsnn3oozMeb9cjz3B+orAsOvjbiufYO36EvRPPcU1hsOKxIaObg90f5EDXLl5Mvic08jXwZZA1ASW79geoCRj8ozuByhv9pu42zozlGMkpbfuortEe1RnLWxi64Mq+JCcvZhDA5d4QFZi6rnzRtYiupJHfHitMO7YuACH4r//qppoqlv55vHZ+0pNXnqr/T8aMhq7fkOawqidetZqwUvVq454bLuf5wTHOjufZ1pvk4RpeTfmNIW5omI7L+YkiG7tUKV+tWGf5cZJRnWzJ5uxEcQlfKQwUz7J3/Ah3Thzh3YW3Kh67FFnHga6dHOjeybH2d4dGfhZcCQbCk96ovUorv5FXhz2qnYs3vAal9Sk1SjPmXVfDmVJg8P3rqvo7FDdKQThJE6ALdV5CY9r3aiaZb5+8aYfJ1RZhxRv8VhJWqlVrvP/4uRlXG4dODvHgt18mbzrEDNVoZRZcJJKhdDGYbFUe6yw/ji7g9UvZJYvfX1E444VrjrCjWFlJciHSw8EyIy+FtkRntTqwHBddm/nGeNMffo/t/amaCdfyGLdEhQt9Rc3eZIzzkwWKtoOUsiKG/sXvvlrxHdrQGQ9q+n3FVZBEhcYLb40F2k+1rulwMEprs+INfisIK5XHP4XwvKqomHW14RvunGljaIKS7ZI3nSABZzmSs+MFBnor56Y+engQ03YYzdoV2y8W2wtvs3fiOfaOH+Hq4jsVj52P9HKweydPdO3i5farQyO/ACRKOqHetCqAfMmum3Atl+J+8Nsvc3aiQDxr0pdSg1JKtkPedJgsWBXVL+mCxYXJAnFDpy81XWDOv75sxyVmaDPq0S9EaLBVc3GriRVv8Jfboyj3th3XRRMiSM52JCIzrjb8pXTc0CnZbjDMpLzqYkNHDLNqgPTrl9Kki7ZKii3Gi5KSq4tvBzH57cUzFQ+fjfZxsGsnB7t2hkZ+jsxkzEF5+YYucKs68wQQi2hYrsRx1ervgW8e44Yt3RWG0b8e26Lqu2A6LmfG8uieXpNf+lne/Vq+7bnxgqrO8ZpFDK/Hw5XK2+/viM/qyMxnMEo45GRpWPEGv9mj1uZKefwzZujYrkRIGMmW6EjUjr/7+OGovlSMt8va4v2vukDppGhKWYEHv/0yX/v0+7EcNdTEbWYcR0p2FN5i78QR7hx/jitKZyvPNbo+iMm/0nZV2cDTkLkghGf0y+y5oYmgMkeiQpIdMchZygmwHYmhiaDP4u3RfOAYvDWa5cuPv8Y9Zyd4fnCsYpW5sTPBpXQRS0qkK9ncrRqpPrf/lWCObfm2I9lSIM3d2x4hU3Qo2W5Fv4gf/5/JkZmPp95qubjVyoo3+NC8UWvzoTyH0JeKcX6iCN6Qkrxpz7ja8MNRqXhE1TtXDTTxf/SNQ65k8+XHX8NyXJoioyMl7ymc5g4vXHNF6VzFw+9E13OgexdPdO3ip21XhkZ+geiayrnEIzp508aVBAnV3mQMQxf0p+I8sHuAz+9/BdtxgoH1livRqgfeCBjNWrTHHL5+6E02dScqVpkbOxP4VXiuhHfGChi6wHEk2aI9bduBviRSSk5eTDOet9G9c/ONvl728ddzZObrqbdSLm41syoMfjOYb/ywPIeQikfY2AUXJ4tICL689fZTHo6K6gLLBU0yTT7ZRwKm7QQyDfNCSq4pvBl0vG4rVfa/vR3doIx89y5eTVwRGvkm4rgSKeBrn34/wLRyYn9y1QPfPIYQsK5Nie3ZrhPUtJdfGYZQomiTBaXAWb3KvJguUioLDSldHfW76bgkIrVXpFFDx/Q1QLxyUb+2vzrhW818PfVWyMWtBUKDz8Lih9U5BF1TNfSN9AGUh6MuTBaVHs4MuBKGMiWqnLzZ4/hScq1n5PeOH+Fd5sWKh0/HLuNA1y4OdO/itcRAaOQXEV1MTaFKxYygFr49qgeTq3zPeyxvoXsG15ASs0yHSQnwSSyvZj+mCTJFC8eVlGpMxhHe/5WvEOqtSNuiOn3JKCNZE9NL1K6L6kwW7YqEb63re76e+nLn4lYqtRzVmQgNPguLHzaSQ5hNB/wnZyd44a2xQOiqHgL1uAA0DRx3BmMvJdflTwWJ1y3mpYqH34xdzoHuXRzo2smJxLbQyC8RjoShTDGQzbAcyR/cfS2PHh7E8uL1btkqzwbiEQ3HBSEkXQmDyYIKB5V/+H5Fl64JoroIZifUQwhRd0Xqd3sP9CWD7fOmzRX9qZrd3uVs7m7j9EiWTNEOtHRScYNtvckZn7fcubiVSD1HVYslO+o9JzT4LDx+OFMOoZHVw2NHTqMJMHSdku3UNfrlybOIrlFwqxp0pOR9+dcDI7/JHKp4+M3YJp7o3smBrl2cTGwNjfwyoIbaTHcsfA2b85NFNKHyOT627SI0QWfcIG+6GF5vRnly3wVcVyV3QRDRASlxJMH+ZJnoWkQX3sjN2ivS+Xrbtw2sC5wXTagVy3DW5FduWTfrc5czF7cSqeeoau1dG+o9JzT4LG78sN6H8vDBE8EXPV20A90TQ9MqphpV4487LHka4UK6gZG/Y+I5NpnDFdufim/mQNcunujeyevxd4VGfpnwDa0ETl5ME9VVojYVNzjrrfxePjOOhkDTBXbZzdwFNncmSMUNLk4WyJQchGfudU1gaCLojPVj80ozR/LOWAGEqgRypaQsNM/FdLGhJq65eNvPDyo9/HRhysPvSBg8PzjGg016L5eaVu0PqOeoCt2Y3kzhERp85h4/nMsFUOtDsR2Xt0YL9BctJr2hGLYLUqqEWZ3OekB5TQYu12RPsHfiOW4f/yGXW5VG/ufxLUF1zRuJlT9EZjXge+Om7WJoSk3y/GSBHjvKtl4lLPaZb7yEQGJVjbz1nf2RbGkqVONJHkQ8bWX/hpKI6EEoJm/aXL1e/fzmSA7bVUPUL+ucEuyrd+3O19s+M56npz1WIdImpWx6tc1SGeFW7g+o56hKxy7Ve05o8JmbRzPXC6DWh3IpU0IXgtGshfC8L9tVy2/fc69GSJcbcye86pofssEarXj8RHwrB7xwzZuJzTX3EbK8GJq6sVsuRDQ1p3I8bwX6Shs745wZny5cJoGz43lcCRs6Y3S3RXh7rIArJZpwEUINtpdSJWzLK2m+dOd7as6KBRalzn0pqm2W0gi3cn9APUfVzU1crPec0OB7NOrRzPUCqPehGN66WhNqCS+lgyMruzA16XBT9gR3TDzHHRPPscEaq9j3zxLbONC1k4PdO3kzHhr5VsfQNTShumltFxIRQVvMCK6b9qheMcawHFequLvvOccM1SSlqmo0LuuMU7IdciWnZiXNUtW5L0W1zVIa4VbuD6jnqH7koWy63nNCgz9H5noB1PpQorrG60MZItpUPN3QNOK6oFAyuS1/gk+OPcvt4z+k3x6v2N9riQGe6N7Fwa6dnI5f3vTXF1JJM+cGS+lLIGs4UnJZV4L+1FToYyRn1pxaphKxsuI8OuIGI1kzqI0v2Q4RXedrn76u4ZXmYtS5L0W1zVIa4VbvD5hr6C00+HNkPhdALSnbf/OXLwUNVLp0uCX7Kp/KPM9HRo7QZ09UPP+niSsCgbK34xub+4JCZqRZxl7zauBdZFAdky5YRDTBrkeeYXN3G/mSg66r2lzXG1aPBFcqbXm/CD9dsJgoqHCgqt2XjOUsPrtnS0NNfotd597sapvqeH0qZizZfNvV1h8QGvw5MtsF0GgyKS5cbk6/wp0TR/jkxPP02pMVj7/Stt3TrtnFmVjdKquQFqZ8dSAlXNYZ41K6hC0l/e0xirYaFOLHoQuWg6ZNCaz53r4GpOIGEhV3H8mqnJyhaWzsUoNy8qY9YyVM+ZDyU55W/rae1vBSZ6JWvH6yYAUNaEtx81pN/QFr3uDPNds/0wUwazLJseHH/4Sz7+v84Mw/sc6uDLX9pP0qXtj0UR7vuI2fOj1KIEuouZGb17UFGuUhrUl1+McXOAPQNIEr4f2eumX1KEsli6DhuC7RiI7rJe8lgFdH35eMIYQqwayeitZoSENNWEsEhrJVKk7qUSteDxDRBN3tsSUxwqupP2BNG/z5ZvvrXQC1Ls5Sscjzf/3f2ZN8FX7495Ae5WNlz3m57Wqe6N7Jwa5dXIj3c3lXgj+4+1r+l786RsFylX6KgHfGQmPf6tQL/xi6apoqH/FXPXQEYH1HjLMTRTZ0xoORmMNZk/5UlJ72mOfJulzVn8R03DmHNFq54qQe9eL1kwWLJ3935q7fkOmsaYPf7C+Af3Hqrs31I8fYef6fuPXis3RYlZ78j1Pv5n907OTJ7g9yPqaOIyUICZMFi9/7zo+xywZhLMeM2pDZiegiECOrh+/lZ0pOxaSoWrkgQ9e4qj9JV1uUs+N58qZDfyoaVOb416eUEsvTvplLSKOVK07q0epJ05XGmjb4Tf0CWCa/WPwx15/4HjuHnyNlZSofv2Yn7L4Xdv1zfuPRE4znTBzPyPtIoD2mky6ozhuX2lUiUV1w1foUI9kSF9OlWTV4QhaHmYx9+edmOpL+ZIS3RrM88M1jRHWB4yrDFTM01nfEgkaoL925I3A2dj3yTM2mvbPjJZIxHcuRRA2tZrdsLVai8VxtSdPlZk0b/AV/AcwSHP8eHP4OPP9dHspNJV5dBK91Xcsz/R/m5l/9DT546/XBY9v7z/LWaJaRTIlypWNdQG8yzkg2jS4EVlUpnr+N6Ugupov0JWOMZU3M0NrPG4EKuczmqc+2D/+mGzU0bMetqKWP6Er5ElTFTamsk7Zou7w9VmBTV5w//KX3Vhjt6uszU7Q4N1HE0AXJmMGlTImc6TCRNxs6z5VoPFdb0nS5WdMGf15fALMIx74Hz34HfvhdyJeFa4RgYuBW/i51G99NfoDEhi08sHuAD1ZdnA/sHuBz+19BIoh6M6tNRylbpT1N9FoSt+oQgrgh6EvGyJnOVFYwZN7Y1eMEPfe80VuAZKpZyh8HqAn1WWkoHfyZ7sm6gOHsdKNdfX1enCwCkIoZSmTN0zv++aUMn/nGS1zVn+Sh23fUNYZ7dvRzz9kJHjtympzp0B7V+Y1d21reeK6mpOlysyCDL4RYB/w/wFbgLeBfSCnHq7bZDHwD2ICKUuyTUn51IcdtFg17D2YRXnpKefJHH4d8WbhG0+C9u+FD98KuX6Zr3QZ+Hfj1WY7bl4ypqUNejbUmJI6UXEoXkVLWHYJiu5LLu+IMjuTY1J1QyofevNLQ0Z87td6yWs1PjSBQjVWuo+rsLUfOJIsU4Kjp5dNyR9XXpwQu74ozkjXRUJU7/o0mqsHpkdyMRQeHTg6x//g5+lIxtngOzv7j57huU1doUNcIC/XwvwB8X0r5sBDiC97vD1VtYwO/J6U8LoRIAceEEN+TUv5sgcduCnW9h1IBXnxSefJH/wcUslOPaRq898NeTP6XoXv9nI+bKdlc2Z9EeOqVmaLFmbE8lpRE9Znddt/7T0R0orqG7UiEEDOqbIYsPuUTpeYaInIknBrKTPt7+fXp6+GYjosupubgakKVfTquJKKL4MZRXXI8kTdXXJVOSHNZqMG/G9jj/fzfgENUGXwp5QXggvdzRghxArgcmJPBXxJ1vGIeXjyoPPkf/QMUc1OPaRpc/xH40D2w85ehe2HHro7P+nNtpVvfu/cZzZlc0dtOwXLoTcY4P1lYUAw6ZOFoQsXvlXjZ3J+va0pJcyb8EI+uCdyyMJGhaUiptPb9ooNaJcdvjebZ1BWv2GerV+mENJeFGvz1nkFHSnlBCDGjFRRCbAXeD/xohm3uB+4H2LJFSfsuqjpeMQ8vHFCe/I+eqDLyOrzvo8qT/+AvQVdfQ7ts5OZ028A6vn7oTWzXJaZrdLZFcKRkc3eCkaxJyXbrG34JX7jj3Xxu/ytkS3Zo7BeRuVRACUQQI/JlkvwJZZKpDtppx0CJ6M22svNDPA8fPMGp4WwwZER4sg19qVhQdFCr5DiiCy6lS3QkosE+W71KJ6S5zGrwhRBPo+Lv1fz+XA4khEgCfwP8jpSyrpqblHIfsA/gpptukrAIDSOFHLzwhPLkXzgApTIPRzfg/R9TMfkP3g2dvXPa9Uw3J/+1vH4pTbbk0BbVMG1ByXYZy1lcllLleabjBpLJ1RiaWr6DMiSzzcENWRiaEGzuTvD2LI1vrlQiZuXP29Sd4PxEEYnqqSjVuTG7QH97dNYxgDAV4jl0cigw/AIlm+znDR7YPVC7sSsV4+xEYUVV6YQ0l1kNvpTy4/UeE0JcEkJc5nn3lwFDdbaLoIz9X0kp/3auJ9mUevlCFo7+g/LkXzyoYvQ+ugE3fEJ58rfdDR2zj2OrR72b0yNPniRnOkR0QdFycaUkV3IDLZThTJGxgk0pY6qkbZ24gO2C7br8+l+82DRhr5D6OK7kUkZVx9S7CfvevOPlX2xv1GAyZtCTjDCWs0jFdJyChRC1S0Btd26Gt9zw+0ldfybtnh39bD5cu7Fre19ymiQBqPxAq010Cmk+Cw3pPA78GvCw9+93qzcQKiv5X4ETUsr/PJ+DzLtePpee8uRfPKiqbXyMSKWRT3XP+bxqhW7q3ZxODWXZ1J2gLWoESTcJDGdKSKni8v5M0lIDTnto7JcGP1wS00VNnXpQj2/ojBHVNS6lS95gEhHIYSRjOtvXdzCeK/HWWB7NG1Bou24Q8ulLxupW1swUHqxXdFCv5NgfiFK+/1ad6BTSfBZq8B8G/loI8RngHeBeACHERuAxKeVeYCfwL4GfCiF+7D3vf5NSHmj0IHOql8+l4fnHlSf/0lNglU37ikThhl/wjPxdkOyaz2sGKr8ouoCX3xnnM994kZiu47huxYi3gieElYioovugskZTM0hHsspIuJ5aWjwiAunkkOYT0wWpRATTdtEEpIv2tDi9QDVM3fgutdp7azTLxclS0Pbgbx7VBes74iRjBq8PZYnogi3rEpRst0IHZyhTJF2wvBGHAk0TRIQWqGhmS1VzDVmYMW605Hgl6uuEzJ8FGXwp5ShUaIH5fz8P7PV+PsI824MGh3OBVvg9N1zO84NjtS/e3KQy8oe/A8eeAqusiSUSg5s+qWLyt/0itHfO51Sm4X9RHFdyYbKkVC2FwHIchjLKWE8JXkm29bQFGt5+ZQ2uqqEv2S6Oq0IGWjhkfNGRQG97lFPDOWK6QAhBRKiwiizbxnQktw2s47pNXXz58deCBK6vj9OXjNLfEWeyYNHVFmVrT1tgOAe9pGq6YNObjAd/z5kOritxXNV/0ZdSsffyQSg+9YzxwwdPNFSx1kjD0mLr67TqAHCfVj+/ZtPSnba26waezf7j5/jKXddMfRjZCfjeN5SRP/6P0438zXeoEspbfxHaO+oeY74fuP9FOT2SQ3ijCiVq/nhfe5RcycHQrIo4qb9KScUNeuwo43mLtpiBYbtkSzaGdwMJ6+kXF9ORvDGcwxBguRLXlQhNoFWNF4zqImhM+spd1/Dgt18mbyr9m95kDCHgjaEsEhjKlNjQESs7hlo9lH+WiYiOLlQzlitlxaSqWqtV/xpLFyxvgLmLhjrnbb2yKSGYxdTXafVwUauf32LQ0gZfE8r78j2bbz79Y/a8c94z8t8D25raOBpXRn73vfCBfwZtqVn3v5AP3P+ilGzX+/Kqv/vGYLJgVcjhAhVL7G29yWB49aGTQzzwzWNYtls3ThzSXGxX4ngTo4QgaGICFcoRCDZ2xdE1wcMHT9DdHlPhO03QkTAAydlx1RVtaIKSI3lnrEBf0mF9Z4KoV20V1bVgv8poQ3dbhEzRDqqz9l67jkcPD/LF775a4XRs7m7j9EiW0ZzqrNWFWg2qxlxZ8d2YbwhmMfV1Wj1c1Orntxi0tMEHSJppbr34LDvP/xPvG3kJZFmzeiwBN+9VnvwH7mzIyJezkA/8gd0DfH7/K9OqNizHZTRXYmvP9BK7WqMO/eqIvmSUcxPFac8pp5nzVUNUsrWWOJ0faknFI1yczDOctYBsIJ0wnCkhUCsCW00oIaIpz3soa5KI6qTiBsNZk46EgZSSguUwnrdY1x6hNxmnz7tUhzNFDrx6iU3diWlOxwO7B3jgm8cAENrU+RqaSvbPdfhJLRZTnKzV5Zhb/fwWg5Y2+BtzZ/jLf7wLo9rI33Kn8uRv2QuJ2WuX67GQD3zPjn562qNMFixMRyrVRQ0QgrGcxR99amYPqXp1UbCcWY15LSXGkOYQNzQkyvvu8+Lp6YLlGXuFqqyR6AIQkqiuI5BomkBDIITrKZmWuGFLN79yy7qKvNNkwaKnPVZx3EzRxnZcLk4WgxVBR8Lg0cODPLB7AFdKbEf9F9UFcUPDlZVhv4WGYBZLnKzV5Zhb/fwWA232TZaPNiuPIR0Kepxn1u/htV9/DP56GL70Hfjwv1iQsQf1gfsVND5z+cCzpsNV61O8a10bbVEdhCCqa6Ri+qxfoPLVhb8012bI1wrAcV0ihjbjdiFzw38rN3TGWdceYTxvBUNG/Pp7UGEff2i4K1Wsv2S7lOfYhRC0RTT6UzG+df+tXLepC5haRfQlY9Out6Ll4EjvRuLV+Y9kTF49N6FkFIQgoqvrykXNtnWlKhCQUg1BWUgIxl9l7nrkGe7bd5RDJ2u20syLB3YPBINamnGuzabVz28xaGmDn42m+P33/h/85i8eRPv9/4dr7vsMJNqbtv+FfuD+DaMjEWGgL8mODR1s6IyzfX39JLHPmfF8UKbZCL/78e1s6ExwZV9yTs8LmZ24oZGKR+hpj5GKG/SnVOVNzd43Tz1BE0qhtGi7lGwH21UaOp1tETZ1twUruKFMMQjVDGdLpAtWxfXmosJImhBemEjdVfKWS0QXbOiMq4MK1ck7mjNxXFXnfzFdpD8VryxmmAO1zvHLj7/WNKO/Z0c/X7nrmuD9XMi5Lgatfn6LQUuHdJJbr+I//n//90Xb/0Ljl37CazhTDJJwuia4+/qNsz63ejmZLjMw5bF6XYOr+lM8+PGreH5wjKFMkd5kjFw443ZBxLzQiMA3qmp1t70/xbfuV7NS79t3lGNvj6lZBVXGXxNKl36yoGr4XUeyrs0IKm4aHb59KV2gZHuVQmJKmllKSSKiI4RgYxdcnCzia6u9a10imJC1kHj7UiQtW13LvtXPr9m0tMFfChbygfsDJapF0P7y6Nsc+OkFsqYTVF2AEr06PaoMdX8qVtGQdSlTDJKCuhCqcsTr2Hzo9h3A1A0mMovIVsjMbOqMUbRdMiWHde0RkjGj5upODarJMJ4zg/p7UB55T3uUvlScTq9k0he78z3EWlo2tYZv37fvKKdHsmSKdhDDjxoa6aLDiYtp4oYe1Or7oR1f/GyhxnktJi3XOmve4C+U5wfHAskEULr2w5mC0rvvSzKUKfK5/a9gWg55yw3i7xcmi7THdCKaCMIHvUk/CaxcuagxlQ/w+wXypk2uRldmyOxoAq5en+Lg7+wOxMdOj+YZy1kM9LZXzJMFdUP/T/dcX3GjHuhtD1ZZAB2JCB2JCFJKJgtW8FmlCxYXJ4tBmW6Hl5ivzg/5N/ENnQaJiM5orsRQxiQV08mZDqbjcm68gCNVjN8/LizcOK/FpOVap6Vj+CcvZpqeSGo21bH44YwaKl5eJ50t2aRLDo4rsRxf715Ssly622M8+9BHGehtV3NPhSAWUV6e40r6UvGKWOuGjjgS5WWGzJ2Hbt8RvJ8TBQvDGxwyOJLjJ2cnpm2/Z0c/T/7uh/n5H97Bz//wDg7+zm6uWt9RN9nv77s9piNQjVfnJwsMZ4o180PVceRcyaEvGWXzunY2evX8SnFD0NMepaPMI1+ocV6LSctWZzGT6NDiHr6hiYaboZarRbraSzIdFwEVDTclTxcnaNuXqtLDdd3AQwukdct7+72/V8daHa+iw3WmDzkPqY/uLa8ePTyIaTtBQ5NAVdz856dPceCnF/jCHe+e8dqZqVnJ/6w6E3Fihs5wpkTRdsibDg//8nWzSiDseuSZIMxSvnq4mC4SNfSmNkg1qwZ/rckTLBZL0fnb0h4+TA1uePTwYN1tFrvaYCaqvSRdCFxJsPROF6z6RlkQeGhZ0+HyrriSV5ASQxfe/NISx98Z5+3RHIPDWTJFNeTccUNj3+gixxdC62mPBoYpU7TLVCtlsK+3xvKzXju+Vx7VNU4NZTk7XqAtor5Ktaqv/BtKI9QrFd7en1qUipI9O/r51v238uxDH+Vb9986L2O/XN+91UatUu3ZbN9caWkP32e2WOVCRaYWQrWXtK23neFsCUMX02q5a+F7aP5KYaBvqrdgOFMkU3ICrR7blZyfKGIIGTZfeRgazGZLJbCxM0EqbnDWuxYuThYxNFExQEb1OlTOhZ2JnOmwqTsReNxffvw1UjGDgqXCd+cnisFnJwQNeWszrR5asaJkLcoTLBZLkURfEQZ/tlhlrTfKdlzeGi2w1W2OyNRM1JJMePTwIKcupQPPrpYswtXrVX/9ffuOcmooQ6Zok4iocruS7eJISVfCoCMe5fxkASEBJHm7MWu/uTvBmfHC7BuuMDoTBqmoznBOdcG6rltzdKCP773719EDuwc4/s44TpkGEqiQT/lc2JmoZ+ikVHmaoXQRkCDVKmJ9Sq3eZjOEiyl1sBiElT7NYymS6C1v8BtJJNV6oy5lSkQ0rSmex1xjlP5jX378NbIlB6tMDiHiyS9oQnDHtRuCmN2GjjiuW2Asb6kQhKZ0WsbzNnlTqYbmTUfVhDfIRN5cdfo7HXGDr/5P7w/e40Mnh3jkyZOcuJip+xwJXMoUKyZCfXbPFXz90Jv4gTFDU154bzLW0JesnqGbLFj8wd3X8sA3jyFRoaTeZDyIxTcq29GqBr6asNKneSymkJ1PS8fwHVc2FKusV22wvqNSt2Q+nsd8Y5S+B7ihM46uacqgoMIPmhB8ds8VPD84VhGzK9muV2stkEIEnqlpu0wULHqTMbasa0PXREPx60xpdn2elcbGzind+K89/ToPfPMYp4ays74fUlJxHT348at49Fdv5N0bUp5cghpAcylTZLJg1f2S+VUUw5kSbwxnSRemtHZ8Q7dnRz83bOlmy7o2BvqSQWXNajSEYaVP81iKzt+W9vCv3jDV9TgTtZbBvjxtOfP5ws03Rul7gH6n5HCmRMl20DWNR3/1Rvbs6Oevyyoy/POTKOMkYNrADd9Lveu6Dfz9jy/M6XWsBjpiGpYr+fLjrwUNb64nTwzUGfouMDTB+7d0T/u8/N8/v/8VJWLmuiDr30y/9vTrfP3Qm0GVlGm5nJsoALKi8xWWxltrBVZaCKrVWezVXUsb/LlQK47ejC/cfGOU5UvdVDxCKh4hb9r0p+LBefrbOK7kwkShYsyepHIYh+koxa68aXPiQoZU3CBTtFedB18PXUCm5JIdyRE1NP7sB4PYrktE1wKp4lrBK9eVpNoidT/3hw+eIFOysVwVzzcdl8mCxb/978dZ1x6t6JQuv8FICZomEEjOTRRoixpEDS2oqKhnCGH1DQxfSSGotc6qMfjVNOsLN98YZSMenq+pP563KgZwzMRI1mQ0axI1NCXDoAkc1521UmUlkYjolGyn4gZYvtJxXUnRcYnpyvAKQUW1TTkRQ+OP77m+7oDwU8NZrzpn6u+mIzEdh74kQQivLaJV3GCEAD9TbEtJXypGIqJPKw4IB4aHtBKr1uBDc75wtw2sm6aVU28kXfWxZ1vq+pr6mZId1IL7ErnVlA/Plqi4fszQcKRcVcYelGRwvdufMvACTXjpVgkulT0JUV0LboRQ/7N99PAgEU1TMsfgKVKqx4RQN9eBviR50+b0aJ6YruF4Nxh/m5It1efgSk6P5DAdF10IHnnyZIUkxpnxPOmCRXtMpzOh8hCtVMIYNk+tDVa1wa9mrvH4QyeH2H/83LSRdJ/ds6WhL0MjS92s6XBlX5LTIzlsr3NWML2pSvckAMoRQqALsLzYT3VFzoqt0Ck7cf/H8gZkKSEV1ZksOcrwl5dWiqn3ynIkEsl9+47WNGBnxvOs74jx9liB6oiQUTaP1m+k6myLMJq1cJGBuJ1EVQ75Nfe6JnBdyetDWb729OvsP34ucDAuThYpmA4xQ2/KtKpmEa481g4tXaXTbGp1Qc70hfNvEH2pOAN9Sd59WQebuhMc+OmFpuld+J2VvckYLhLLcYPQRXny0JWyatiG+reWZruf8F2Jxt7QBFFNC7SCar2GREQjZ7lENG8wuFe1pKaOqalgpvc+RjXqVlalYgaX0qXgOP6xBKBpWiCPUbAcBnrbieg6PcmId5N10YRgc3eCdNGearDy/hfRBY8dOV1RhRUzNBAqge/TCpU7S9HhGdIaLMjgCyHWCSG+J4Q45f3bPcO2uhDiZSHEPyzkmAthrhOuat0gbMfl1HC2aa3kflmboYuKksOYodGXjAaGz5VUTLoyNBEMT9eVHSFqaMQjGoYuaDAl0FL4IS3TcYPzj+oiKGk1NFWymimpEkBNqG1jhkZ3W0S9D9qUVIIuYGN3W00DdujkEMPZErYr1WhKD01Mddz2JqNBmeFDt+/gK3ddw9aeJD3JGLds7eHRX72RP7j7WizXRUqJlErX3kWyPhUjZzoV148vt1G0nZYqYZyrIxSyclloSOcLwPellA8LIb7g/f5QnW3/HXACmH0c1CIx11K5xW7ogumx/lTcoD2m05v04rwxg3PjeWwJuqbRldCZLNo4UhLTBJ3tEYYyJVIxjaw5ZShrhXNaPcTjx+T93ITlSC7rjNORiHqy06UgmasBeCEt25WYRZuIrhHRNYqeDHVPe7Ru6OTRw4N0JiK0Rw1GsiWk7Xo3EbiyP4kQgmzJrmjWgtohju19Sd4ay+O4kqiu0ZtUXbXtUXWN+ddKRyJCyRNSmyxYLVPCGDZPrR0WavDvBvZ4P/834BA1DL4QYhNwJ/AfgX+/wGPOm7nWDNe7QWzqildst1BvqDzWX11OqmuCy7raKhow/ASb/xpMy2U0b1Xss5Zhb2Vj71OqqrZ5Z6xAzCjhSGVM+1IxhjImmhdCAa9KR7rYlmRjVwLbcbFcyXjBIhE1amrRB30SURE0Rvma9k/+7oeD7fz3+ovffbUimVme5ExGdVIxdZzy6+Q3dm1j//FzFddP1NDrqmYuF2ulZyBk4QZ/vZTyAoCU8oIQot5V/KfA/wqkFni8BTOXmuHFbOiayzFrVfeUG/9/85cvAcvrwcc9r9x1ZcV0qIUigaJXhuS6DkVbxe4dScVYQOmFvNqiBv0dcc5PFJFIRjwhu2oD1ohXWy+Zec/ZiYpkrN8wF9W1aZ77dZu6Wr4pKWyeWjvMavCFEE8DG2o89PuNHEAI8c+AISnlMSHEnga2vx+4H2DLli2NHGJRWayGrrkccyYePTyIlGpWarUY2FJStN0g/t2XjDLijQVsJq6EzriOK6EtqleMBbRcFQoCSMUjbOyCoXSRou1OC8tAY15tvaqux46cpi8VmzavtqstysHf2V1xziulKWmlnOdqYDlLYGc1+FLKj9d7TAhxSQhxmefdXwbUylzuBO4SQuwF4kCHEOKbUspfrXO8fcA+gJtuuqnlohCt4g35F80Lb40FCcyYoc9Yw77Y+CsMXVfVK+cmlDS0SmQufN9RT74gEdGIGnowFrBgOZwdL9DZNtURnYpH0DVBfypeU56jkc+xXpd1znTYEiY5Q+bBcpfALjSk8zjwa8DD3r/frd5ASvkfgP8A4Hn4n6tn7FcKy+0NlV80hoCSq8o2bdeZ/clz4N9/fDsAf3Z4kLw5874FEI/opOIGuZKDkdDY3p9ESsnJS1lgqrJoPp6/EH6jk8t1m7qC6VK+sb77+o3T4uWzrbxm+xzrhX2qk7H+38MkZ8hsLPf8gIUa/IeBvxZCfAZ4B7gXQAixEXhMSrl3gftfdSx0OXfo5BAPfvtl8qbjlTDO35/XBXUHqXTEDR78+FUAwb+7HnkGXcDbY9M19iO6KpHsTcaYLFg8+9BHg8eu/uJBNQ1MUyGX+axCXKnCRkKo7udaxrrZ8fJ6YZ9aydgwyRnSCMs9P2BBBl9KOQp8rMbfzwPTjL2U8hCqkmdNstDlnP/8nGljaALTdoOB5hJlFCMaWLPET2KGhuu6M07NypkOh04OVZzX5u423hrN1kwOu145ZcFySMaMCr2ivvYIFzMmwq1sHpuJIDxUdlMSQFfCYP/xc1y3qaum+mUzvaSZwj4rIRkb0nosdwmskMuV5WuAm266Sb700kvLfRpN4759R6d92L6CZiMy0P7zL04WVe25Z/A1ARFdae5v623n5xczuMhAEEx1jqoyxvWpGBfSJVW/7tSPresCLu+eXg76wDePYbsutbTKLuuMBfIQnWUliumCRdFysFyJ4zVFzbQy6W2PsH19B7cNrOOxI6fJmw4xQ6M3GaMjEZnTexYS0kqUO33lq8Nm6t4LIY5JKW+q9dia0tJZbuaynKsV+vGfn4wZDGVKgZftemWJfSk1rWl9KsqFjIkupkokHRfuet8GLqZNYhGdi5NFhJB1h2urJqbpI/kc18XTJAv0+v0O4K09ScZzJSxXTqtg6U3G6GqLBh7xqaEMI1lz2nE3dycqwkF/fewsW9a1IcqWBmGCdDqh+NnKYKFFHwv9nEODv4Q0upyrF/oRwOuXMpiOnDakoythoGuq3jyViGJLKsoWU3GDi2kzuGmYjhto0NTytU3HZXA4x5vDOd79pYO0xwzG81ZQ727oGlLCxq54RTXMrqqhLjA1+q+8ZHHXI8/wrnUJRrJmcI69yei0hG4yqvPzi+lAETTqyShs600Soljuyo+QuTHf0GMzPuc1JZ623DQ6Dq6WmJVpO1yYLAShkGojPZ6fGomWKdn0JmMM9CXZsaGDgb4kvckYZz2voGA5RD2DXY/y5qmC5TKSNXFdVf7pSHAcF5BcnCxWvIZG9Yo2d7dh6FrFORq6Nq3x6fxEAcudEjcr2S5DmRK3Daxr8F1f/YTiZ2uDZnzOocFfQhqdWVlLzMqfbuU3N5UT1QUuBMu7mYyuf9PpSBi4c6yPVKEh9RxbDeBCUjkrttGbWq3t0gWL8VwpUCF95MmTmK6aMOW/bl9E7fnBsTmd+2omFD9bGzTjcw5DOktMI8u5WqGfkq0GsAghyJtOEIpRRlAQ0Qni7TN1kZbHEC0nQ65kU5itrKeMar39bT1t02QfGolRVm+XjBlIwHJlsFx9a1RdyBFNIITmHV9iO+68jNlqjXMvd+VHyNLQjM85NPgtSC2DrWuCzrYIMUPnrdF8pVY+ko2peGAEZzO61Ted7f/bASyvekZ4idjZmJr6NL3OstEYZfl29+07ium4FcneiO6VnkpRof9vaNqcjdlixblb4SYSip+tDZrxOYcGvwWpZbD9TlJdE8R0QcmL5Ud1wYbOBIauEqfl+2jU8FzZn+TUUFYlcQUUG/D4o5pgQ2ecbMme12usplYF0/pUjHfGCkojyLsLuRK6ZxhKXo/F6HBslWRpq8h9hCwuzficQ4PfoszUSTpZsKBo090WoTcZW7BH99DtO/j8/lfIFG1sx51RdTNuaKzviFfUwzeDWstVQ9e4er2qxjnthXe297Xz0O075mzMFqPDcbnb5MtZbrmPkKVhoZ9zaPBXENWyyM3y6Pbs6OeP77m+Ip5+bjxPwXKwvQoZTUAqbtCbjJGI6E2f1lRvufqlO9/TFEPm31AcVzKcKQXDxrf1ts97n8vdJh8SMldCg79CWQwZgWoZ6OobCixe2GCxwxIP7B7g8/tfYTxvBRU/tisZzpamSUg0SpgsDVlphNIKa4BWSCy2Arf/yQ+qRhHGgtxHLZmG2d63pWiTDwmZKzNJK4R1+Ksc3yg1a+j6SiZrOlxZ1ujljySsJ20x2/vWaF9FSEirEIZ0VjnNSiyuhlXCXEIwjb5vYbI0ZCURevgrgEMnh7hv39GgA3Uu3nkzuvNWyyqh0S5gCLtXQ1YnocFvcRZqbBvVtpmJxdZqWcgNbS7MJQTTjPctJKTVCEM6Lc5CQzLN6M5bzPLDpW5eajQEE3avhqxGQg+/xZkptNCIZ9yMxOJierutqvQYJmRDViOhh9/izDRI+8uPv4blOEzmLS5MFjj+zjif3XNFMIPWZ6GJxcX0dlu5eSlMyIasNkIPv8Wpl2gUQmA5DqNZC0eqCVWulHz90JuLEgNvi2icHS9waihLVNea5u2GsfKQkKUjNPgtTr3QQqZkM5m3EELNqhUIdCFwXMkjT55sWhLUj7FbrmR7f5JN3QlypjP7ExtkLpUzISEhCyMM6awAaoUWNh9u48JkgYg+dc+WEnRN8PpQlq09bU1Jgi62QJgvqfDwwROcGsoCMLAAfZuQkJD6hB7+CuWB3QMYmobjSqSUuK7EReK6bkUS1HYkQ5kiD3zz2Ly8/aWqR89bLpu6E2zvT2I67oqs8w8JaXUWZPCFEOuEEN8TQpzy/u2us12XEGK/EOKkEOKEEOK2hRw3RHnGn91zBZoQ2K7E0AU97VFclI48QLpgcX6ygOtKHNedV8PUUsTYW7VSJyRktbFQD/8LwPellNuB73u/1+KrwJNSyh3A9cCJBR43BHjw41fx6K/eyM1b17GuPcq23iTbvWHgACPZEhoCIQQxQ68wpI02Oy1FjD3sag0JWRoWpJYphPg5sEdKeUEIcRlwSEp5ddU2HcArwICc48FCtcy5U97I9M6YPwpRsLErTioeQUrJxXQxMP6NqDw2U3u/FvftOzqt9NQfrlJLxTIkJKQ+M6llLjRpu15KeQHAM/q1rMAAMAz8/4UQ1wPHgH8npczVOdn7gfsBtmzZssDTW3tU6soXEMCGTmXsQYVjTNulM9F4Inax69HDrtaQkKVh1pCOEOJpIcSrNf67u8FjGMANwP8tpXw/kKN+6Acp5T4p5U1Sypv6+voaPERIOXt29POt+2/l0V+9kf6OOLomKsIxvmdfznKGUMKu1pCQpWFWD19K+fF6jwkhLgkhLisL6dQKBJ8Fzkopf+T9vp8ZDH5I86g3RerRw4MtN6kp7GoNCVl8FhrSeRz4NeBh79/vVm8gpbwohDgjhLhaSvlz4GPAzxZ43JAGqWdIwxBKSMjaY6FVOg8DnxBCnAI+4f2OEGKjEOJA2Xa/DfyVEOInwPuA/88CjxuyAMIQSkjI2iScaRsSEhKyighn2oaEhISEhAY/JCQkZK0QGvyQkJCQNUJo8ENCQkLWCKHBDwkJCVkjtHSVjhBiGHh7uc9jCegFRpb7JFqI8P2YInwvpgjfiylmei/eJaWsKVPQ0gZ/rSCEeKleGdVaJHw/pgjfiynC92KK+b4XYUgnJCQkZI0QGvyQkJCQNUJo8FuDfct9Ai1G+H5MEb4XU4TvxRTzei/CGH5ISEjIGiH08ENCQkLWCKHBDwkJCVkjhAa/RRBC3CuEeE0I4Qoh1mTpmRDidiHEz4UQbwgh1vSQHCHEnwshhoQQry73uSw3QojNQoh/EkKc8L4j/265z2m5EELEhRAvCCFe8d6L/3Muzw8NfuvwKvDLwOHlPpHlQAihA18H7gDeA9wnhHjP8p7VsvIXwO3LfRItgg38npTy3cCtwGfX8LVRAj4qpbweNVvkdiHErY0+OTT4LYKU8oQ3EWytcgvwhpRyUEppAt8GGp2bvOqQUh4Gxpb7PFoBKeUFKeVx7+cMcAK4fHnPanmQiqz3a8T7r+HKm9Dgh7QKlwNnyn4/yxr9UofURwixFXg/8KNZNl21CCF0IcSPUTPEv1c2L3xWFjrTNmQOCCGeBjbUeOj3pZTT5gGvMUSNv4U1wyEBQogk8DfA70gp08t9PsuFlNIB3ieE6AL+TghxrZSyoVxPaPCXECnlx5f7HFqYs8Dmst83AeeX6VxCWgwhRARl7P9KSvm3y30+rYCUckIIcQiV62nI4IchnZBW4UVguxBimxAiCnwaeHyZzymkBRBCCOC/AieklP95uc9nORFC9HmePUKIBPBx4GSjzw8NfosghPiUEOIscBvwhBDiqeU+p6VESmkDvwU8hUrK/bWU8rXlPavlQwjxLeB54GohxFkhxGeW+5yWkZ3AvwQ+KoT4sfff3uU+qWXiMuCfhBA/QTlJ35NS/kOjTw6lFUJCQkLWCKGHHxISErJGCA1+SEhIyBohNPghISEha4TQ4IeEhISsEUKDHxISErJGCA1+SEhIyBohNPghISEha4T/FyP5GNjzT48EAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lag_residual = weights.spatial_lag.lag_spatial(knn, m2.u)\n", "seaborn.regplot(\n", " m2.u.flatten(), \n", " lag_residual.flatten(), \n", " line_kws=dict(color='orangered'),\n", " ci=None\n", ");" ] }, { "cell_type": "markdown", "id": "unknown-ministry", "metadata": {}, "source": [ "Finally, the distance to Balboa Park variable does not fit our theory about how distance to amenity should affect the price of an AirBnB; the coefficient estimate is *positive*, meaning that people are paying a premium to be *further* from the Park. We will revisit this result later on, when we consider spatial heterogeneity and will be able to shed some light on this. Further, the next chapter is an extensive treatment of spatial fixed effects, presenting many more spatial feature engineering methods. Here, we have only showed how to include these engineered features in a standard linear modeling framework. " ] }, { "cell_type": "markdown", "id": "ancient-movie", "metadata": {}, "source": [ "### Spatial Heterogeneity\n", "\n", "While we've assumed that our proximity variable might stand in for a difficult-to-measure premium individuals pay when they're close to a recreational zone. However, not all neighborhoods are created equal; some neighborhoods may be more lucrative than others, regardless of their proximity to Balboa Park. When this is the case, we need some way to account for the fact that each neighborhood may experience these kinds of *gestalt*, unique effects. One way to do this is by capturing *spatial heterogeneity*. At its most basic, *spatial heterogeneity* means that parts of the model may change in different places. For example, changes to the intercept, $\\alpha$, may reflect the fact that different areas have different baseline exposures to a given process. Changes to the slope terms, $\\beta$, may indicate some kind of geographical mediating factor, such as when a governmental policy is not consistently applied across jurisdictions. Finally, changes to the variance of the residuals, commonly denoted $\\sigma^2$, can introduce spatial heteroskedasticity. We deal with the first two in this section. \n", "\n", "To illustrate spatial fixed effects, let us consider the house price example from the previous section to introduce a more general illustration for \"space as a proxy\". Given we are only including two explanatory variables in the model, it is likely we are missing some important factors that play a role at determining the price at which a house is sold. Some of them, however, are likely to vary systematically over space (e.g. different neighborhood characteristics). If that is the case, we can control for those unobserved factors by using traditional dummy variables but basing their creation on a spatial rule. For example, let us include a binary variable for every neighborhood, indicating whether a given house is located within such area (`1`) or not (`0`). Mathematically, we are now fitting the following equation:\n", "\n", "$$\n", "\\log{P_i} = \\alpha_r + \\sum_k \\mathbf{X}_{ik}\\beta_k + \\epsilon_i\n", "$$\n", "\n", "where the main difference is that we are now allowing the constant term, $\\alpha$, to vary by neighborhood $r$, $\\alpha_r$.\n", "\n", "Programmatically, we will show two different ways can estimate this: one,\n", "using `statsmodels`; and two, with `PySAL`. First, we will use `statsmodels`. This package provides a formula-like API, which allows us to express the *equation* we wish to estimate directly:" ] }, { "cell_type": "code", "execution_count": 18, "id": "associate-egypt", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "log_price ~ accommodates + bathrooms + bedrooms + beds + rt_Private_room + rt_Shared_room + pg_Condominium + pg_House + pg_Other + pg_Townhouse + neighborhood - 1\n" ] } ], "source": [ "f = 'log_price ~ ' + ' + '.join(variable_names) + ' + neighborhood - 1'\n", "print(f)" ] }, { "cell_type": "markdown", "id": "invalid-criminal", "metadata": {}, "source": [ "The *tilde* operator in this statement is usually read as \"log price is a function of ...\", to account for the fact that many different model specifications can be fit according to that functional relationship between `log_price` and our covariate list. Critically, note that the trailing `-1` term means that we are fitting this model without an intercept term. This is necessary, since including an intercept term alongside unique means for every neighborhood would make the underlying system of equations underspecified. \n", "\n", "Using this expression, we can estimate the unique effects of each neighborhood, fitting the model in `statsmodels`: " ] }, { "cell_type": "code", "execution_count": 19, "id": "random-benjamin", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Results: Ordinary least squares\n", "======================================================================================\n", "Model: OLS Adj. R-squared: 0.709 \n", "Dependent Variable: log_price AIC: 7229.6640\n", "Date: 2021-05-12 16:45 BIC: 7599.1365\n", "No. Observations: 6110 Log-Likelihood: -3559.8 \n", "Df Model: 54 F-statistic: 276.9 \n", "Df Residuals: 6055 Prob (F-statistic): 0.00 \n", "R-squared: 0.712 Scale: 0.18946 \n", "--------------------------------------------------------------------------------------\n", " Coef. Std.Err. t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "neighborhood[Balboa Park] 4.2808 0.0333 128.5836 0.0000 4.2155 4.3460\n", "neighborhood[Bay Ho] 4.1983 0.0769 54.6089 0.0000 4.0475 4.3490\n", "neighborhood[Bay Park] 4.3292 0.0510 84.9084 0.0000 4.2293 4.4292\n", "neighborhood[Carmel Valley] 4.3893 0.0566 77.6126 0.0000 4.2784 4.5001\n", "neighborhood[City Heights West] 4.0535 0.0584 69.4358 0.0000 3.9391 4.1680\n", "neighborhood[Clairemont Mesa] 4.0953 0.0477 85.8559 0.0000 4.0018 4.1888\n", "neighborhood[College Area] 4.0337 0.0583 69.2386 0.0000 3.9195 4.1479\n", "neighborhood[Core] 4.7262 0.0526 89.7775 0.0000 4.6230 4.8294\n", "neighborhood[Cortez Hill] 4.6081 0.0515 89.4322 0.0000 4.5071 4.7091\n", "neighborhood[Del Mar Heights] 4.4969 0.0543 82.7599 0.0000 4.3904 4.6034\n", "neighborhood[East Village] 4.5455 0.0294 154.7473 0.0000 4.4879 4.6031\n", "neighborhood[Gaslamp Quarter] 4.7758 0.0473 100.9589 0.0000 4.6831 4.8685\n", "neighborhood[Grant Hill] 4.3067 0.0524 82.2442 0.0000 4.2041 4.4094\n", "neighborhood[Grantville] 4.0533 0.0714 56.7719 0.0000 3.9133 4.1933\n", "neighborhood[Kensington] 4.3027 0.0772 55.7511 0.0000 4.1514 4.4540\n", "neighborhood[La Jolla] 4.6821 0.0258 181.4137 0.0000 4.6315 4.7327\n", "neighborhood[La Jolla Village] 4.3303 0.0772 56.0653 0.0000 4.1789 4.4817\n", "neighborhood[Linda Vista] 4.1911 0.0569 73.6380 0.0000 4.0796 4.3027\n", "neighborhood[Little Italy] 4.6667 0.0468 99.6364 0.0000 4.5749 4.7586\n", "neighborhood[Loma Portal] 4.3019 0.0332 129.4346 0.0000 4.2368 4.3671\n", "neighborhood[Marina] 4.5583 0.0480 94.9761 0.0000 4.4642 4.6524\n", "neighborhood[Midtown] 4.3667 0.0284 153.7902 0.0000 4.3110 4.4223\n", "neighborhood[Midtown District] 4.5849 0.0651 70.4436 0.0000 4.4573 4.7125\n", "neighborhood[Mira Mesa] 3.9896 0.0561 71.1135 0.0000 3.8796 4.0995\n", "neighborhood[Mission Bay] 4.5155 0.0224 201.3850 0.0000 4.4715 4.5594\n", "neighborhood[Mission Valley] 4.2760 0.0742 57.6031 0.0000 4.1304 4.4215\n", "neighborhood[Moreno Mission] 4.4009 0.0567 77.5773 0.0000 4.2897 4.5122\n", "neighborhood[Normal Heights] 4.0974 0.0490 83.5821 0.0000 4.0013 4.1935\n", "neighborhood[North Clairemont] 3.9844 0.0691 57.6209 0.0000 3.8489 4.1200\n", "neighborhood[North Hills] 4.2534 0.0255 166.9470 0.0000 4.2035 4.3034\n", "neighborhood[Northwest] 4.1738 0.0697 59.8572 0.0000 4.0371 4.3104\n", "neighborhood[Ocean Beach] 4.4372 0.0301 147.4709 0.0000 4.3782 4.4961\n", "neighborhood[Old Town] 4.4202 0.0419 105.5098 0.0000 4.3380 4.5023\n", "neighborhood[Otay Ranch] 4.1859 0.0816 51.2999 0.0000 4.0260 4.3459\n", "neighborhood[Pacific Beach] 4.4388 0.0224 198.0136 0.0000 4.3949 4.4828\n", "neighborhood[Park West] 4.4409 0.0448 99.1988 0.0000 4.3531 4.5287\n", "neighborhood[Rancho Bernadino] 4.1809 0.0720 58.0598 0.0000 4.0397 4.3221\n", "neighborhood[Rancho Penasquitos] 4.1624 0.0618 67.3789 0.0000 4.0413 4.2835\n", "neighborhood[Roseville] 4.3870 0.0586 74.8346 0.0000 4.2721 4.5019\n", "neighborhood[San Carlos] 4.3350 0.0830 52.2035 0.0000 4.1722 4.4978\n", "neighborhood[Scripps Ranch] 4.0824 0.0762 53.5440 0.0000 3.9329 4.2318\n", "neighborhood[Serra Mesa] 4.3130 0.0599 71.9725 0.0000 4.1955 4.4304\n", "neighborhood[South Park] 4.2253 0.0536 78.7676 0.0000 4.1202 4.3305\n", "neighborhood[University City] 4.1937 0.0370 113.4516 0.0000 4.1213 4.2662\n", "neighborhood[West University Heights] 4.2977 0.0431 99.6359 0.0000 4.2131 4.3822\n", "accommodates 0.0728 0.0048 15.0672 0.0000 0.0633 0.0822\n", "bathrooms 0.1702 0.0105 16.2171 0.0000 0.1496 0.1908\n", "bedrooms 0.1686 0.0106 15.8731 0.0000 0.1478 0.1894\n", "beds -0.0416 0.0065 -6.3508 0.0000 -0.0544 -0.0287\n", "rt_Private_room -0.4873 0.0154 -31.6225 0.0000 -0.5175 -0.4570\n", "rt_Shared_room -1.2396 0.0368 -33.6657 0.0000 -1.3118 -1.1674\n", "pg_Condominium 0.1329 0.0210 6.3333 0.0000 0.0918 0.1741\n", "pg_House 0.0400 0.0144 2.7868 0.0053 0.0119 0.0681\n", "pg_Other 0.0610 0.0224 2.7290 0.0064 0.0172 0.1048\n", "pg_Townhouse -0.0075 0.0324 -0.2323 0.8163 -0.0710 0.0560\n", "--------------------------------------------------------------------------------------\n", "Omnibus: 1215.551 Durbin-Watson: 1.835 \n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 4115.510\n", "Skew: 0.989 Prob(JB): 0.000 \n", "Kurtosis: 6.500 Condition No.: 132 \n", "======================================================================================\n", "\n" ] } ], "source": [ "m3 = sm.ols(f, data=db).fit()\n", "print(m3.summary2())" ] }, { "cell_type": "markdown", "id": "formal-words", "metadata": {}, "source": [ "The approach above shows how spatial FE are a particular case of a linear regression with a categorical variable. Neighborhood membership is modeled using binary dummy variables. Thanks to the formula grammar used in `statsmodels`, we can express the model abstractly, and Python parses it, appropriately creating binary variables as required.\n", "\n", "The second approach leverages `PySAL` Regimes functionality, which allows the user to specify which variables are to be estimated separately for each \"regime\". In this case however, instead of describing the model in a formula, we need to pass each element of the model as separate arguments." ] }, { "cell_type": "code", "execution_count": 20, "id": "nasty-session", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES - REGIMES\n", "---------------------------------------------------\n", "Data set : unknown\n", "Weights matrix : None\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 55\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6055\n", "R-squared : 0.7118\n", "Adjusted R-squared : 0.7092\n", "Sum squared residual: 1147.169 F-statistic : 276.9408\n", "Sigma-square : 0.189 Prob(F-statistic) : 0\n", "S.E. of regression : 0.435 Log likelihood : -3559.832\n", "Sigma-square ML : 0.188 Akaike info criterion : 7229.664\n", "S.E of regression ML: 0.4333 Schwarz criterion : 7599.137\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error t-Statistic Probability\n", "------------------------------------------------------------------------------------\n", "Balboa Park_CONSTANT 4.2807664 0.0332917 128.5835585 0.0000000\n", " Bay Ho_CONSTANT 4.1982505 0.0768784 54.6089479 0.0000000\n", " Bay Park_CONSTANT 4.3292234 0.0509870 84.9083655 0.0000000\n", "Carmel Valley_CONSTANT 4.3892614 0.0565535 77.6125622 0.0000000\n", "City Heights West_CONSTANT 4.0535183 0.0583780 69.4357707 0.0000000\n", "Clairemont Mesa_CONSTANT 4.0952589 0.0476992 85.8558747 0.0000000\n", "College Area_CONSTANT 4.0336972 0.0582579 69.2386376 0.0000000\n", " Core_CONSTANT 4.7261863 0.0526433 89.7775229 0.0000000\n", "Cortez Hill_CONSTANT 4.6080896 0.0515261 89.4322167 0.0000000\n", "Del Mar Heights_CONSTANT 4.4969102 0.0543368 82.7599068 0.0000000\n", "East Village_CONSTANT 4.5454690 0.0293735 154.7473234 0.0000000\n", "Gaslamp Quarter_CONSTANT 4.7757987 0.0473044 100.9588995 0.0000000\n", " Grant Hill_CONSTANT 4.3067425 0.0523653 82.2441742 0.0000000\n", " Grantville_CONSTANT 4.0532975 0.0713962 56.7718990 0.0000000\n", " Kensington_CONSTANT 4.3026710 0.0771765 55.7510746 0.0000000\n", " La Jolla_CONSTANT 4.6820840 0.0258089 181.4136961 0.0000000\n", "La Jolla Village_CONSTANT 4.3303114 0.0772369 56.0652857 0.0000000\n", "Linda Vista_CONSTANT 4.1911487 0.0569155 73.6380443 0.0000000\n", "Little Italy_CONSTANT 4.6667423 0.0468377 99.6363950 0.0000000\n", "Loma Portal_CONSTANT 4.3019094 0.0332362 129.4346151 0.0000000\n", " Marina_CONSTANT 4.5582979 0.0479941 94.9761422 0.0000000\n", " Midtown_CONSTANT 4.3666608 0.0283936 153.7902257 0.0000000\n", "Midtown District_CONSTANT 4.5849382 0.0650866 70.4436292 0.0000000\n", " Mira Mesa_CONSTANT 3.9895616 0.0561013 71.1135365 0.0000000\n", "Mission Bay_CONSTANT 4.5154791 0.0224221 201.3849675 0.0000000\n", "Mission Valley_CONSTANT 4.2759604 0.0742315 57.6030636 0.0000000\n", "Moreno Mission_CONSTANT 4.4009417 0.0567298 77.5773078 0.0000000\n", "Normal Heights_CONSTANT 4.0973996 0.0490225 83.5820603 0.0000000\n", "North Clairemont_CONSTANT 3.9844398 0.0691492 57.6208858 0.0000000\n", "North Hills_CONSTANT 4.2534252 0.0254777 166.9470009 0.0000000\n", " Northwest_CONSTANT 4.1737520 0.0697284 59.8572467 0.0000000\n", "Ocean Beach_CONSTANT 4.4371642 0.0300884 147.4709376 0.0000000\n", " Old Town_CONSTANT 4.4201603 0.0418934 105.5097966 0.0000000\n", " Otay Ranch_CONSTANT 4.1859412 0.0815974 51.2999205 0.0000000\n", "Pacific Beach_CONSTANT 4.4388288 0.0224168 198.0136040 0.0000000\n", " Park West_CONSTANT 4.4409072 0.0447677 99.1988153 0.0000000\n", "Rancho Bernadino_CONSTANT 4.1809062 0.0720103 58.0598088 0.0000000\n", "Rancho Penasquitos_CONSTANT 4.1624276 0.0617764 67.3788989 0.0000000\n", " Roseville_CONSTANT 4.3869921 0.0586225 74.8346070 0.0000000\n", " San Carlos_CONSTANT 4.3349911 0.0830403 52.2034885 0.0000000\n", "Scripps Ranch_CONSTANT 4.0823805 0.0762435 53.5439686 0.0000000\n", " Serra Mesa_CONSTANT 4.3129674 0.0599252 71.9725317 0.0000000\n", " South Park_CONSTANT 4.2253108 0.0536428 78.7675791 0.0000000\n", "University City_CONSTANT 4.1937181 0.0369648 113.4516038 0.0000000\n", "West University Heights_CONSTANT 4.2976715 0.0431338 99.6358857 0.0000000\n", "_Global_accommodates 0.0727766 0.0048301 15.0671860 0.0000000\n", " _Global_bathrooms 0.1702080 0.0104956 16.2171367 0.0000000\n", " _Global_bedrooms 0.1685720 0.0106200 15.8731267 0.0000000\n", " _Global_beds -0.0415809 0.0065474 -6.3507569 0.0000000\n", "_Global_rt_Private_room -0.4872544 0.0154085 -31.6225002 0.0000000\n", "_Global_rt_Shared_room -1.2395926 0.0368206 -33.6656955 0.0000000\n", "_Global_pg_Condominium 0.1329341 0.0209896 6.3333214 0.0000000\n", " _Global_pg_House 0.0399982 0.0143528 2.7867915 0.0053399\n", " _Global_pg_Other 0.0610112 0.0223565 2.7290143 0.0063707\n", "_Global_pg_Townhouse -0.0075250 0.0323876 -0.2323436 0.8162790\n", "------------------------------------------------------------------------------------\n", "Regimes variable: unknown\n", "\n", "REGRESSION DIAGNOSTICS\n", "MULTICOLLINEARITY CONDITION NUMBER 12.143\n", "\n", "TEST ON NORMALITY OF ERRORS\n", "TEST DF VALUE PROB\n", "Jarque-Bera 2 4115.510 0.0000\n", "\n", "DIAGNOSTICS FOR HETEROSKEDASTICITY\n", "RANDOM COEFFICIENTS\n", "TEST DF VALUE PROB\n", "Breusch-Pagan test 54 854.587 0.0000\n", "Koenker-Bassett test 54 310.744 0.0000\n", "\n", "REGIMES DIAGNOSTICS - CHOW TEST\n", " VARIABLE DF VALUE PROB\n", " CONSTANT 44 913.016 0.0000\n", " Global test 44 913.016 0.0000\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "# PySAL implementation\n", "m4 = spreg.OLS_Regimes(\n", " db[['log_price']].values, \n", " db[variable_names].values,\n", " db['neighborhood'].tolist(),\n", " constant_regi='many',\n", " cols2regi=[False]*len(variable_names),\n", " regime_err_sep=False,\n", " name_y='log_price', \n", " name_x=variable_names\n", ")\n", "print(m4.summary)" ] }, { "cell_type": "markdown", "id": "criminal-moral", "metadata": {}, "source": [ "Econometrically speaking, what the neighborhood FEs we have introduced imply is that, instead of comparing all house prices across San Diego as equal, we only derive variation from within each postcode. Remember that the interpretation of $\\beta_k$ is the effect of variable $k$, *given all the other explanatory variables included remain constant*. By including a single variable for each area, we are effectively forcing the model to compare as equal only house prices that share the same value for each variable; or, in other words, only houses located within the same area. Introducing FE affords a higher degree of isolation of the effects of the variables we introduce in the model because we can control for unobserved effects that align spatially with the distribution of the FE introduced (by postcode, in our case).\n", "\n", "To make a map of neighborhood fixed effects, we need to process the results from our model slightly.\n", "\n", "First, we extract only the effects pertaining to the neighborhoods:" ] }, { "cell_type": "code", "execution_count": 21, "id": "indirect-shame", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "neighborhood[Balboa Park] 4.280766\n", "neighborhood[Bay Ho] 4.198251\n", "neighborhood[Bay Park] 4.329223\n", "neighborhood[Carmel Valley] 4.389261\n", "neighborhood[City Heights West] 4.053518\n", "dtype: float64" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neighborhood_effects = m3.params.filter(like='neighborhood')\n", "neighborhood_effects.head()" ] }, { "cell_type": "markdown", "id": "inappropriate-monday", "metadata": {}, "source": [ "Then, we need to extract just the neighborhood name from the index of this Series. A simple way to do this is to strip all the characters that come before and after our neighborhood names:" ] }, { "cell_type": "code", "execution_count": 22, "id": "finnish-moment", "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", "
fixed_effect
Balboa Park4.280766
Bay Ho4.198251
Bay Park4.329223
Carmel Valley4.389261
City Heights West4.053518
\n", "
" ], "text/plain": [ " fixed_effect\n", "Balboa Park 4.280766\n", "Bay Ho 4.198251\n", "Bay Park 4.329223\n", "Carmel Valley 4.389261\n", "City Heights West 4.053518" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stripped = neighborhood_effects.index.str.strip('neighborhood[').str.strip(']')\n", "neighborhood_effects.index = stripped\n", "neighborhood_effects = neighborhood_effects.to_frame('fixed_effect')\n", "neighborhood_effects.head()" ] }, { "cell_type": "markdown", "id": "exempt-helen", "metadata": {}, "source": [ "Good, we're back to our raw neighborhood names. Now, we can join them back up with the neighborhood shapes:" ] }, { "cell_type": "code", "execution_count": 23, "id": "dominant-banana", "metadata": {}, "outputs": [], "source": [ "sd_path = '../data/airbnb/neighbourhoods.geojson'\n", "neighborhoods = geopandas.read_file(sd_path)" ] }, { "cell_type": "code", "execution_count": 24, "id": "proper-drama", "metadata": { "caption": "Neighborhood effects on Airbnb nightly prices. Neighborhoods shown in grey are 'not statistically significant' in their effect on Airbnb prices.", "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = neighborhoods.plot(\n", " color='k', alpha=0.5, figsize=(12,6)\n", ")\n", "neighborhoods.merge(\n", " neighborhood_effects, \n", " how='left',\n", " left_on='neighbourhood', \n", " right_index=True\n", ").dropna(\n", " subset=['fixed_effect']\n", ").plot(\n", " 'fixed_effect', ax=ax\n", ")\n", "ax.set_title(\"San Diego Neighborhood Fixed Effects\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "rubber-tribune", "metadata": {}, "source": [ "#### Spatial Regimes\n", "\n", "At the core of estimating spatial FEs is the idea that, instead of assuming the dependent variable behaves uniformly over space, there are systematic effects following a geographical pattern that affect its behavior. In other words, spatial FEs introduce econometrically the notion of spatial heterogeneity. They do this in the simplest possible form: by allowing the constant term to vary geographically. The other elements of the regression are left untouched and hence apply uniformly across space. The idea of spatial regimes (SRs) is to generalize the spatial FE approach to allow not only the constant term to vary but also any other explanatory variable. This implies that the equation we will be estimating is:\n", "\n", "$$\n", "\\log{P_i} = \\alpha_r + \\sum_k \\mathbf{X}_{ki}\\beta_{k-r} + \\epsilon_i\n", "$$\n", "\n", "where we are not only allowing the constant term to vary by region ($\\alpha_r$), but also every other parameter ($\\beta_{k-r}$).\n", "\n", "To illustrate this approach, we will use the \"spatial differentiator\" of whether a house is in a coastal neighborhood or not (`coastal_neig`) to define the regimes. The rationale behind this choice is that renting a house close to the ocean might be a strong enough pull that people might be willing to pay at different *rates* for each of the house's characteristics.\n", "\n", "To implement this in Python, we use the `OLS_Regimes` class in `PySAL`, which does most of the heavy lifting for us:" ] }, { "cell_type": "code", "execution_count": 25, "id": "younger-annex", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES - REGIMES\n", "---------------------------------------------------\n", "Data set : unknown\n", "Weights matrix : None\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 22\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6088\n", "R-squared : 0.6853\n", "Adjusted R-squared : 0.6843\n", "Sum squared residual: 1252.489 F-statistic : 631.4283\n", "Sigma-square : 0.206 Prob(F-statistic) : 0\n", "S.E. of regression : 0.454 Log likelihood : -3828.169\n", "Sigma-square ML : 0.205 Akaike info criterion : 7700.339\n", "S.E of regression ML: 0.4528 Schwarz criterion : 7848.128\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error t-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " 0_CONSTANT 4.4072424 0.0215156 204.8392695 0.0000000\n", " 0_accommodates 0.0901860 0.0064737 13.9311338 0.0000000\n", " 0_bathrooms 0.1433760 0.0142680 10.0487871 0.0000000\n", " 0_bedrooms 0.1129626 0.0138273 8.1695568 0.0000000\n", " 0_beds -0.0262719 0.0088380 -2.9726102 0.0029644\n", " 0_rt_Private_room -0.5293343 0.0189179 -27.9805699 0.0000000\n", " 0_rt_Shared_room -1.2244586 0.0425969 -28.7452834 0.0000000\n", " 0_pg_Condominium 0.1053065 0.0281309 3.7434523 0.0001832\n", " 0_pg_House -0.0454471 0.0179571 -2.5308637 0.0114032\n", " 0_pg_Other 0.0607526 0.0276365 2.1982715 0.0279673\n", " 0_pg_Townhouse -0.0103973 0.0456730 -0.2276456 0.8199294\n", " 1_CONSTANT 4.4799043 0.0250938 178.5260014 0.0000000\n", " 1_accommodates 0.0484639 0.0078806 6.1497397 0.0000000\n", " 1_bathrooms 0.2474779 0.0165661 14.9388057 0.0000000\n", " 1_bedrooms 0.1897404 0.0179229 10.5864676 0.0000000\n", " 1_beds -0.0506077 0.0107429 -4.7107925 0.0000025\n", " 1_rt_Private_room -0.5586281 0.0283122 -19.7309699 0.0000000\n", " 1_rt_Shared_room -1.0528541 0.0841745 -12.5079997 0.0000000\n", " 1_pg_Condominium 0.2044470 0.0339434 6.0231780 0.0000000\n", " 1_pg_House 0.0753534 0.0233783 3.2232188 0.0012743\n", " 1_pg_Other 0.2954848 0.0386455 7.6460385 0.0000000\n", " 1_pg_Townhouse -0.0735077 0.0493672 -1.4889984 0.1365396\n", "------------------------------------------------------------------------------------\n", "Regimes variable: unknown\n", "\n", "REGRESSION DIAGNOSTICS\n", "MULTICOLLINEARITY CONDITION NUMBER 14.033\n", "\n", "TEST ON NORMALITY OF ERRORS\n", "TEST DF VALUE PROB\n", "Jarque-Bera 2 3977.425 0.0000\n", "\n", "DIAGNOSTICS FOR HETEROSKEDASTICITY\n", "RANDOM COEFFICIENTS\n", "TEST DF VALUE PROB\n", "Breusch-Pagan test 21 443.593 0.0000\n", "Koenker-Bassett test 21 164.276 0.0000\n", "\n", "REGIMES DIAGNOSTICS - CHOW TEST\n", " VARIABLE DF VALUE PROB\n", " CONSTANT 1 4.832 0.0279\n", " accommodates 1 16.736 0.0000\n", " bathrooms 1 22.671 0.0000\n", " bedrooms 1 11.504 0.0007\n", " beds 1 3.060 0.0802\n", " pg_Condominium 1 5.057 0.0245\n", " pg_House 1 16.793 0.0000\n", " pg_Other 1 24.410 0.0000\n", " pg_Townhouse 1 0.881 0.3480\n", " rt_Private_room 1 0.740 0.3896\n", " rt_Shared_room 1 3.309 0.0689\n", " Global test 11 328.869 0.0000\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "m4 = spreg.OLS_Regimes(\n", " db[['log_price']].values, \n", " db[variable_names].values,\n", " db['coastal'].tolist(),\n", " constant_regi='many',\n", " regime_err_sep=False,\n", " name_y='log_price', \n", " name_x=variable_names\n", ")\n", "print(m4.summary)" ] }, { "cell_type": "markdown", "id": "homeless-fairy", "metadata": {}, "source": [ "### Spatial Dependence\n", "\n", "As we have just discussed, SH is about effects of phenomena that are *explicitly linked*\n", "to geography and that hence cause spatial variation and clustering. This\n", "encompasses many of the kinds of spatial effects we may be interested in when we fit\n", "linear regressions. However, in other cases, our focus is on the effect of the *spatial\n", "configuration* of the observations, and the extent to which that has an effect on the\n", "outcome we are considering. For example, we might think that the price of a house not\n", "only depends on whether it is a townhouse or an apartment, but also on\n", "whether it is surrounded by many more townhouses than skyscrapers with more\n", "apartments. This, we could hypothesize, might be related to the different \"look and feel\" a\n", "neighborhood with low-height, historic buildings has as compared to one with\n", "modern high-rises. To the extent these two different spatial configurations\n", "enter differently the house price determination process, we will be\n", "interested in capturing not only the characteristics of a house, but also of\n", "its surrounding ones.\n", "This kind of spatial effect is fundamentally different\n", "from SH in that is it not related to inherent characteristics of the geography but relates \n", "to the characteristics of the observations in our dataset and, specially, to their spatial\n", "arrangement. We call this phenomenon by which the values of observations are related to\n", "each other through distance *spatial dependence* {cite}`Anselin_1988`." ] }, { "cell_type": "markdown", "id": "worldwide-bicycle", "metadata": {}, "source": [ "There are several ways to introduce spatial dependence in an econometric\n", "framework, with varying degrees of econometric sophistication (see\n", "{cite}`Anselin_2002` for a good overview). Common to all of them however is the way space is\n", "formally encapsulated: through *spatial weights matrices ($\\mathbf{W}$)*, which we discussed in Chapter 4.\n", "\n", "#### Exogenous effects: The SLX Model\n", "\n", "Let us come back to the house price example we have been working with. So far, we\n", "have hypothesized that the price of a house rented in San Diego through AirBnB can\n", "be explained using information about its own characteristics as well as some \n", "relating to its location such as the neighborhood or the distance to the main\n", "park in the city. However, it is also reasonable to think that prospective renters\n", "care about the larger area around a house, not only about the house itself, and would\n", "be willing to pay more for a house that was surrounded by certain types of houses, \n", "and less if it was located in the middle of other types. How could we test this idea?\n", "\n", "The most straightforward way to introduce spatial dependence in a regression is by \n", "considering not only a given explanatory variable, but also its spatial lag. In our\n", "example case, in addition to including a dummy for the type of house (`pg_XXX`), we \n", "can also include the spatial lag of each type of house. This addition implies\n", "we are also including as explanatory factor of the price of a given house the proportion \n", "neighboring houses in each type. Mathematically, this implies estimating the following model:\n", "\n", "$$\n", "\\log(P_i) = \\alpha + \\sum^{p}_{k=1}X_{ij}\\beta_j + \\sum^{p}_{k=1}\\left(\\sum^{N}_{j=1}w_{ij}x_{jk}\\right)\\gamma_k + \\epsilon_i\n", "$$\n", "\n", "where $\\sum_{j=1}^N w_{ij}x_{jk}$ represents the spatial lag of the $k$th explanatory variable.\n", "This can be stated in *matrix* form using the spatial weights matrix, $\\mathbf{W}$, as:\n", "$$\n", "\\log(P_i) = \\alpha + \\mathbf{X}\\beta + \\mathbf{WX}\\gamma + \\epsilon\n", "$$\n", "\n", "This splits the model to focus on two main effects: $\\beta$ and $\\gamma$. The\n", "$\\beta$ effect describes the change in $y_i$ when $X_{ik}$ changes by one. \n", "^[Since we use the log price for a $y$ variable, our\n", "$\\beta$ coefficients are still all interpreted as *elasticities*, meaning that a\n", "unit change in the $x_i$ variate results in a $\\beta$ percent change in the\n", "price *y_i*]. The subscript for site $i$ is important here: since we're dealing \n", "with a $\\mathbf{W}$ matrix, it's useful to be clear about where the change occurs. \n", "\n", "Indeed, this matters for the $\\gamma$ effect, which represents an \n", "*indirect* effect of a change in $X_i$. This can be conceptualized in two ways. \n", "First, one could think of $\\gamma$ as simply *the effect of a unit change in your average surroundings.*\n", "This is useful and simple. But, this interpretation ignores where this change\n", "might occur. In truth, a change in a variable at site $i$ will result in a *spillover* to its surroundings:\n", "when $x_i$ changes, so too does the *spatial lag* of any site near $i$. \n", "The precise size of this will depend on the structure of $\\mathbf{W}$, and can be \n", "different for every site. For example, think of a very highly-connected \"focal\" site in a \n", "row-standardized weight matrix. This focal site will not be strongly affected \n", "if a neighbor changes by a single unit, since each site only contributes a \n", "small amount to the lag at the focal site. Alternatively, consider a site with only \n", "one neighbor: its lag will change by *exactly* the amount its sole neighbor changes.\n", "Thus, to discover the exact indirect effect of a change $y$ caused by the change\n", "at a specific site $x_i$ you would need to compute the *change in the spatial lag*,\n", "and then use that as your *change* in $X$. We will discuss this in the following section. \n", "\n", "In Python, we can calculate the spatial lag of each variable whose name starts by `pg_`\n", "by first creating a list of all of those names, and then applying `PySAL`'s\n", "`lag_spatial` to each of them:" ] }, { "cell_type": "code", "execution_count": 26, "id": "passing-hamilton", "metadata": {}, "outputs": [], "source": [ "wx = db.filter(\n", " like='pg'\n", ").apply(\n", " lambda y: weights.spatial_lag.lag_spatial(knn, y)\n", ").rename(\n", " columns=lambda c: 'w_'+c\n", ").drop(\n", " 'w_pg_Apartment', axis=1\n", ")" ] }, { "cell_type": "markdown", "id": "studied-palestine", "metadata": {}, "source": [ "Once computed, we can run the model using OLS estimation because, in this\n", "context, the spatial lags included do not violate any of the assumptions OLS\n", "relies on (they are essentially additional exogenous variables):" ] }, { "cell_type": "code", "execution_count": 27, "id": "dynamic-plaintiff", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES\n", "-----------------------------------------\n", "Data set : unknown\n", "Weights matrix : None\n", "Dependent Variable : l_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 15\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6095\n", "R-squared : 0.6800\n", "Adjusted R-squared : 0.6792\n", "Sum squared residual: 1273.933 F-statistic : 924.9423\n", "Sigma-square : 0.209 Prob(F-statistic) : 0\n", "S.E. of regression : 0.457 Log likelihood : -3880.030\n", "Sigma-square ML : 0.208 Akaike info criterion : 7790.061\n", "S.E of regression ML: 0.4566 Schwarz criterion : 7890.826\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error t-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " CONSTANT 4.3205814 0.0234977 183.8727044 0.0000000\n", " accommodates 0.0809972 0.0050046 16.1843874 0.0000000\n", " bathrooms 0.1893447 0.0108059 17.5224026 0.0000000\n", " bedrooms 0.1635998 0.0109764 14.9047058 0.0000000\n", " beds -0.0451529 0.0068249 -6.6159365 0.0000000\n", " rt_Private_room -0.5293783 0.0157308 -33.6524367 0.0000000\n", " rt_Shared_room -1.2892590 0.0381443 -33.7995105 0.0000000\n", " pg_Condominium 0.1063490 0.0221782 4.7952003 0.0000017\n", " pg_House 0.0327806 0.0156954 2.0885538 0.0367893\n", " pg_Other 0.0861857 0.0239774 3.5944620 0.0003276\n", " pg_Townhouse -0.0277116 0.0338485 -0.8186965 0.4129916\n", " w_pg_Condominium 0.5928369 0.0689612 8.5966706 0.0000000\n", " w_pg_House -0.0774462 0.0318830 -2.4290766 0.0151661\n", " w_pg_Other 0.4851047 0.0551461 8.7967121 0.0000000\n", " w_pg_Townhouse -0.2724493 0.1223388 -2.2270058 0.0259833\n", "------------------------------------------------------------------------------------\n", "\n", "REGRESSION DIAGNOSTICS\n", "MULTICOLLINEARITY CONDITION NUMBER 14.277\n", "\n", "TEST ON NORMALITY OF ERRORS\n", "TEST DF VALUE PROB\n", "Jarque-Bera 2 2458.006 0.0000\n", "\n", "DIAGNOSTICS FOR HETEROSKEDASTICITY\n", "RANDOM COEFFICIENTS\n", "TEST DF VALUE PROB\n", "Breusch-Pagan test 14 393.052 0.0000\n", "Koenker-Bassett test 14 169.585 0.0000\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "slx_exog = db[variable_names].join(wx)\n", "m5 = spreg.OLS(\n", " db[['log_price']].values, \n", " slx_exog.values,\n", " name_y='l_price', \n", " name_x=slx_exog.columns.tolist()\n", ")\n", "print(m5.summary)" ] }, { "cell_type": "markdown", "id": "invisible-poland", "metadata": {}, "source": [ "The way to interpret the table of results is similar to that of any other\n", "non-spatial regression. The variables we included in the original regression\n", "display similar behavior, albeit with small changes in size, and can be\n", "interpreted also in a similar way. The spatial lag of each type of property\n", "(`w_pg_XXX`) is the new addition. We observe that, except for the case\n", "of townhouses (same as with the binary variable, `pg_Townhouse`), they are all\n", "significant, suggesting our initial hypothesis on the role of the surrounding\n", "houses might indeed be at work here. \n", "\n", "As an illustration, let's look at some of the direct/indirect effects. \n", "The direct effect of the `pg_Condominium` variable means that condominiums are\n", "typically 11% more expensive ($\\beta_{pg\\_Condominium}=0.1063$) than the benchmark\n", "property type, apartments. More relevant to this section, any given house surrounded by \n", "condominiums *also* receives a price premium. But, since $pg_Condominium$ is a dummy variable,\n", "the spatial lag at site $i$ represents the *percentage* of properties near $i$ that are\n", "condominiums, which is between $0$ and $1$.[^Discover]\n", "So, a *unit* change in this variable means that you would increase the condominium \n", "percentage by 100%. Thus, a $.1$ increase in `w_pg_Condominium` (a change of ten percentage points)\n", "would result in a 5.92% increase in the property house price ($\\beta_{w_pg\\_Condominium} = 0.6$). \n", "Similar interpretations can be derived for all other spatially lagged variables to derive the\n", "*indirect* effect of a change in the spatial lag. \n", "\n", "However, to compute the indirect change for a given site $i$, you may need to examine the predicted values for $y_i$. In this example, since we are using a row-standardized weights matrix with twenty nearest neighbors, the impact of changing $x_i$ is the same for all of its neighbors and for any site $i$. Thus, the effect is always $\\frac{\\gamma}{20}$, or about $0.0296$. However, this would not be the same for many other kinds of weights (like `Kernel`, `Queen`, `Rook`, `DistanceBand`, or `Voronoi`), so we will demonstrate how to construct the indirect effect for a specific $i$:condominium \n", "\n", "First, predicted values for $y_i$ are stored in the `predy` attribute of any model:\n", "\n", "[^Discover]:Discover this for yourself: what is the average of `numpy.array([True, True, True, False, False, True)]`?" ] }, { "cell_type": "code", "execution_count": 28, "id": "crazy-monitor", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[5.43610121],\n", " [5.38596868],\n", " [4.25377454],\n", " ...,\n", " [4.29145318],\n", " [4.89174746],\n", " [4.85867698]])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m5.predy" ] }, { "cell_type": "markdown", "id": "constitutional-garage", "metadata": {}, "source": [ "To build new predictions, we need to follow the equation stated above.\n", "\n", "Showing this process below, let's first change a property to be a condominium. Consider the third observation, which is the first apartment in the data:" ] }, { "cell_type": "code", "execution_count": 29, "id": "historical-quebec", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "accommodates 2\n", "bathrooms 1.0\n", "bedrooms 1.0\n", "beds 1.0\n", "neighborhood North Hills\n", "pool 0\n", "d2balboa 2.493893\n", "coastal 0\n", "price 99.0\n", "log_price 4.59512\n", "id 9553\n", "pg_Apartment 1\n", "pg_Condominium 0\n", "pg_House 0\n", "pg_Other 0\n", "pg_Townhouse 0\n", "rt_Entire_home/apt 0\n", "rt_Private_room 1\n", "rt_Shared_room 0\n", "geometry POINT (-117.1412083878189 32.75326632438691)\n", "residual 0.287341\n", "Name: 2, dtype: object" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "db.loc[2]" ] }, { "cell_type": "markdown", "id": "suspended-better", "metadata": {}, "source": [ "This is an apartment. Let's make a copy of our data and change this apartment into a condominium:" ] }, { "cell_type": "code", "execution_count": 30, "id": "brave-utilization", "metadata": {}, "outputs": [], "source": [ "db_scenario = db.copy()\n", "# make Apartment 0 and condo 1\n", "db_scenario.loc[2, ['pg_Apartment', 'pg_Condominium']] = [0,1]" ] }, { "cell_type": "markdown", "id": "close-affiliate", "metadata": {}, "source": [ "We've successfully made the change:" ] }, { "cell_type": "code", "execution_count": 31, "id": "celtic-chemical", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "accommodates 2\n", "bathrooms 1.0\n", "bedrooms 1.0\n", "beds 1.0\n", "neighborhood North Hills\n", "pool 0\n", "d2balboa 2.493893\n", "coastal 0\n", "price 99.0\n", "log_price 4.59512\n", "id 9553\n", "pg_Apartment 0\n", "pg_Condominium 1\n", "pg_House 0\n", "pg_Other 0\n", "pg_Townhouse 0\n", "rt_Entire_home/apt 0\n", "rt_Private_room 1\n", "rt_Shared_room 0\n", "geometry POINT (-117.1412083878189 32.75326632438691)\n", "residual 0.287341\n", "Name: 2, dtype: object" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "db_scenario.loc[2]" ] }, { "cell_type": "markdown", "id": "endangered-favor", "metadata": {}, "source": [ "Now, we need to *also* update the spatial lag variates:" ] }, { "cell_type": "code", "execution_count": 32, "id": "widespread-tiffany", "metadata": {}, "outputs": [], "source": [ "wx_scenario = db_scenario.filter(\n", " like='pg'\n", ").apply(\n", " lambda y: weights.spatial_lag.lag_spatial(knn, y)\n", ").rename(\n", " columns=lambda c: 'w_'+c\n", ").drop(\n", " 'w_pg_Apartment', axis=1\n", ")" ] }, { "cell_type": "markdown", "id": "incorporate-steam", "metadata": {}, "source": [ "And build a new exogenous $\\mathbf{X}$ matrix, including the a constant 1 as the leading column" ] }, { "cell_type": "code", "execution_count": 33, "id": "legal-worcester", "metadata": {}, "outputs": [], "source": [ "slx_exog_scenario = db_scenario[variable_names].join(wx_scenario)" ] }, { "cell_type": "markdown", "id": "hungarian-cradle", "metadata": {}, "source": [ "Now, our new prediction (in the scenario where we have changed site `2` from an apartment into a condominium), is:" ] }, { "cell_type": "code", "execution_count": 34, "id": "seasonal-liechtenstein", "metadata": {}, "outputs": [], "source": [ "y_pred_scenario = m5.betas[0] + slx_exog_scenario @ m5.betas[1:]" ] }, { "cell_type": "markdown", "id": "controlling-cemetery", "metadata": {}, "source": [ "This prediction will be exactly the same for all sites, except site `2` and its neighbors. So, the *neighbors* to site `2` are:" ] }, { "cell_type": "code", "execution_count": 35, "id": "paperback-dayton", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[772,\n", " 2212,\n", " 139,\n", " 4653,\n", " 2786,\n", " 1218,\n", " 138,\n", " 808,\n", " 1480,\n", " 4241,\n", " 1631,\n", " 3617,\n", " 2612,\n", " 1162,\n", " 135,\n", " 23,\n", " 5528,\n", " 3591,\n", " 407,\n", " 6088]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "knn.neighbors[2]" ] }, { "cell_type": "markdown", "id": "allied-crystal", "metadata": {}, "source": [ "And the effect of changing site `2` into a condominium is associated with the following changes to $y_i$:" ] }, { "cell_type": "code", "execution_count": 36, "id": "informational-acquisition", "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", "
0
20.106349
7720.029642
22120.029642
1390.029642
46530.029642
27860.029642
12180.029642
1380.029642
8080.029642
14800.029642
42410.029642
16310.029642
36170.029642
26120.029642
11620.029642
1350.029642
230.029642
55280.029642
35910.029642
4070.029642
60880.029642
\n", "
" ], "text/plain": [ " 0\n", "2 0.106349\n", "772 0.029642\n", "2212 0.029642\n", "139 0.029642\n", "4653 0.029642\n", "2786 0.029642\n", "1218 0.029642\n", "138 0.029642\n", "808 0.029642\n", "1480 0.029642\n", "4241 0.029642\n", "1631 0.029642\n", "3617 0.029642\n", "2612 0.029642\n", "1162 0.029642\n", "135 0.029642\n", "23 0.029642\n", "5528 0.029642\n", "3591 0.029642\n", "407 0.029642\n", "6088 0.029642" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(y_pred_scenario - m5.predy).loc[[2] + knn.neighbors[2]]" ] }, { "cell_type": "markdown", "id": "varied-fraction", "metadata": {}, "source": [ "We see the first row, representing the direct effect, is equal exactly to the estimate for `pg_Condominium`. For the other effects, though, we have only changed `w_pg_Condominium` by $.05$" ] }, { "cell_type": "code", "execution_count": 37, "id": "neutral-package", "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", "
w_pg_Condominium_scenariow_pg_Condominium_original
7720.100.05
22120.100.05
1390.100.05
46530.100.05
27860.100.05
12180.100.05
1380.100.05
8080.050.00
14800.100.05
42410.100.05
16310.100.05
36170.100.05
26120.100.05
11620.050.00
1350.050.00
230.100.05
55280.050.00
35910.050.00
4070.050.00
60880.100.05
\n", "
" ], "text/plain": [ " w_pg_Condominium_scenario w_pg_Condominium_original\n", "772 0.10 0.05\n", "2212 0.10 0.05\n", "139 0.10 0.05\n", "4653 0.10 0.05\n", "2786 0.10 0.05\n", "1218 0.10 0.05\n", "138 0.10 0.05\n", "808 0.05 0.00\n", "1480 0.10 0.05\n", "4241 0.10 0.05\n", "1631 0.10 0.05\n", "3617 0.10 0.05\n", "2612 0.10 0.05\n", "1162 0.05 0.00\n", "135 0.05 0.00\n", "23 0.10 0.05\n", "5528 0.05 0.00\n", "3591 0.05 0.00\n", "407 0.05 0.00\n", "6088 0.10 0.05" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scenario_near_2 = slx_exog_scenario.loc[knn.neighbors[2], ['w_pg_Condominium']]\n", "orig_near_2 = slx_exog.loc[knn.neighbors[2], ['w_pg_Condominium']]\n", "scenario_near_2.join(orig_near_2, lsuffix='_scenario', rsuffix= '_original')" ] }, { "cell_type": "markdown", "id": "included-genealogy", "metadata": {}, "source": [ "Introducing a spatial lag of an explanatory variable, as we have just seen, is the most straightforward way of incorporating the notion of spatial dependence in a linear regression framework. It does not require additional changes, it can be estimated with OLS, and the interpretation is rather similar to interpreting non-spatial variables, so long as aggregate changes are required. \n", "\n", "The field of spatial econometrics however is a much broader one and has produced over the last decades many techniques to deal with spatial effects and spatial dependence in different ways. Although this might be an over simplification, one can say that most of such efforts for the case of a single cross-section are focused on two main variations: the spatial lag and the spatial error model. Both are similar to the case we have seen in that they are based on the introduction of a spatial lag, but they differ in the component of the model they modify and affect.\n", "\n", "#### Spatial Error\n", "\n", "The spatial error model includes a spatial lag in the *error* term of the equation:\n", "\n", "$$\n", "\\log{P_i} = \\alpha + \\sum_k \\beta_k X_{ki} + u_i\n", "$$\n", "\n", "$$\n", "u_i = \\lambda u_{lag-i} + \\epsilon_i\n", "$$\n", "\n", "where $u_{lag-i} = \\sum_j w_{i,j} u_j$. \n", "Although it appears similar, this specification violates the assumptions about the\n", "error term in a classical OLS model. Hence, alternative estimation methods are\n", "required. `PySAL` incorporates functionality to estimate several of the most\n", "advanced techniques developed by the literature on spatial econometrics. For\n", "example, we can use a general method of moments that account for \n", "heterogeneity {cite}`arraiz2010`:" ] }, { "cell_type": "code", "execution_count": 38, "id": "returning-degree", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: SPATIALLY WEIGHTED LEAST SQUARES (HET)\n", "---------------------------------------------------------\n", "Data set : unknown\n", "Weights matrix : unknown\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 11\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6099\n", "Pseudo R-squared : 0.6655\n", "N. of iterations : 1 Step1c computed : No\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error z-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " CONSTANT 4.4262033 0.0217088 203.8898738 0.0000000\n", " accommodates 0.0695536 0.0063268 10.9934495 0.0000000\n", " bathrooms 0.1614101 0.0151312 10.6673765 0.0000000\n", " bedrooms 0.1739251 0.0146697 11.8560847 0.0000000\n", " beds -0.0377710 0.0088293 -4.2779023 0.0000189\n", " rt_Private_room -0.4947947 0.0163843 -30.1993140 0.0000000\n", " rt_Shared_room -1.1613985 0.0515304 -22.5381175 0.0000000\n", " pg_Condominium 0.1003761 0.0213148 4.7092198 0.0000025\n", " pg_House 0.0308334 0.0147100 2.0960849 0.0360747\n", " pg_Other 0.0861768 0.0254942 3.3802547 0.0007242\n", " pg_Townhouse -0.0074515 0.0292873 -0.2544285 0.7991646\n", " lambda 0.6448728 0.0186626 34.5543739 0.0000000\n", " lambda 0.6448728 0.0186626 34.5543739 0.0000000\n", "------------------------------------------------------------------------------------\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "m6 = spreg.GM_Error_Het(\n", " db[['log_price']].values, \n", " db[variable_names].values,\n", " w=knn, \n", " name_y='log_price', \n", " name_x=variable_names\n", ")\n", "print(m6.summary)" ] }, { "cell_type": "markdown", "id": "regulation-springer", "metadata": {}, "source": [ "#### Spatial Lag\n", "\n", "The spatial lag model introduces a spatial lag of the *dependent* variable. In the example we have covered, this would translate into:\n", "\n", "$$\n", "\\log{P_i} = \\alpha + \\rho \\log{P_{lag-i}} + \\sum_k \\beta_k X_{ki} + \\epsilon_i\n", "$$\n", "\n", "Although it might not seem very different from the previous equation, this model violates \n", "the exogeneity assumption, crucial for OLS to work. \n", "Put simply, this occurs when $P_i$ exists on both \"sides\" of the equals sign.\n", "In theory, since $P_i$ is included in computing $P_{lag-i}$, exogeneity is violated. \n", "Similarly to the case of\n", "the spatial error, several techniques have been proposed to overcome this\n", "limitation, and `PySAL` implements several of them. In the example below, we\n", "use a two-stage least squares estimation {cite}`Anselin_1988`, where the spatial\n", "lag of all the explanatory variables is used as instrument for the endogenous\n", "lag:" ] }, { "cell_type": "code", "execution_count": 39, "id": "retained-guide", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "REGRESSION\n", "----------\n", "SUMMARY OF OUTPUT: SPATIAL TWO STAGE LEAST SQUARES\n", "--------------------------------------------------\n", "Data set : unknown\n", "Weights matrix : unknown\n", "Dependent Variable : log_price Number of Observations: 6110\n", "Mean dependent var : 4.9958 Number of Variables : 12\n", "S.D. dependent var : 0.8072 Degrees of Freedom : 6098\n", "Pseudo R-squared : 0.7057\n", "Spatial Pseudo R-squared: 0.6883\n", "\n", "------------------------------------------------------------------------------------\n", " Variable Coefficient Std.Error z-Statistic Probability\n", "------------------------------------------------------------------------------------\n", " CONSTANT 2.7440254 0.0727290 37.7294400 0.0000000\n", " accommodates 0.0697596 0.0048157 14.4859187 0.0000000\n", " bathrooms 0.1626725 0.0104007 15.6405467 0.0000000\n", " bedrooms 0.1604137 0.0104823 15.3033012 0.0000000\n", " beds -0.0365065 0.0065336 -5.5874750 0.0000000\n", " rt_Private_room -0.4981415 0.0151396 -32.9031780 0.0000000\n", " rt_Shared_room -1.1157392 0.0365563 -30.5210777 0.0000000\n", " pg_Condominium 0.1072995 0.0209048 5.1327614 0.0000003\n", " pg_House -0.0004017 0.0136828 -0.0293598 0.9765777\n", " pg_Other 0.1207503 0.0214771 5.6222929 0.0000000\n", " pg_Townhouse -0.0185543 0.0322730 -0.5749190 0.5653461\n", " W_log_price 0.3416482 0.0147787 23.1175620 0.0000000\n", "------------------------------------------------------------------------------------\n", "Instrumented: W_log_price\n", "Instruments: W_accommodates, W_bathrooms, W_bedrooms, W_beds,\n", " W_pg_Condominium, W_pg_House, W_pg_Other, W_pg_Townhouse,\n", " W_rt_Private_room, W_rt_Shared_room\n", "================================ END OF REPORT =====================================\n" ] } ], "source": [ "m7 = spreg.GM_Lag(\n", " db[['log_price']].values, \n", " db[variable_names].values,\n", " w=knn, \n", " name_y='log_price', \n", " name_x=variable_names\n", ")\n", "print(m7.summary)" ] }, { "cell_type": "markdown", "id": "incorporate-officer", "metadata": {}, "source": [ "Similarly to the effects in the SLX regression, changes in the spatial lag regression need to be interpreted with care. Here, `w_log_price` applies consistently over all observations, and actually changes the effective strength of each of the $\\beta$ coefficients. Thus, it is useful to use predictions and scenario-building to predict $y$ when changing $X$, which allows you to analyze the *direct* and *indirect* components. \n", "\n", "#### Other ways of bringing space into regression\n", "\n", "While these are some kinds of spatial regressions, many other advanced spatial regression methods see routine use in statistics, data science, and applied analysis. For example, Generalized Additive Models {cite}`Gibbons_2015,Wood_2006` haven been used to apply spatial kernel smoothing directly within a regression function. Other similar smoothing methods, such as spatial Gaussian process models {cite}`Brunsdon_2010` or Kriging, conceptualize the dependence between locations as smooth as well. Other methods in spatial regression that consider graph-based geographies (rather than distance/kernel effects) include variations on conditional autoregressive model, which examines spatial relationships at locations *conditional* on their surroundings, rather than as jointly co-emergent with them. Full coverage of these topics is beyond the scope of this book, however, though {cite}`Banerjee_2008` provides a detailed and comprehensive discussion. " ] }, { "cell_type": "markdown", "id": "statistical-nickel", "metadata": {}, "source": [ "## Questions\n", "\n", "1. One common kind of spatial econometric model is the \"Spatial Durbin Model,\" which combines the SLX model with the spatial lag model. Alternatively, the \"Spatial Durbin Error Model\" combines the SLX model with the spatial error model. Fit a Spatial Durbin variant of the spatial models fit in this chapter. \n", " - Do these variants improve the model fit?\n", " - What happens to the spatial autocorrelation parameters ($\\rho$, $\\lambda$) when the SLX term is added? Why might this occur?\n", "2. Fortunately for us, spatial error models recover the same estimates (asymptotically) as a typical OLS estimate, although their confidence intervals will change. Statistically, this occurs because OLS is *inefficient* when there is spatial correlation and/or spatial heteroskedasticity. How much do the confidence intervals change when the spatial error model is fit?\n", "3. One common justification for the SLX model (and the Spatial Durbin variants) is about *omitted, spatially-patterned variables*. That is, if an omitted variable is associated with the included variables *and* is spatially-patterned, then we can use the spatial structure of our existing variables to mimic the omitted variable. In our spatial lag model, \n", " - what variables might we be missing that are important to predict the price of an AirBnB?\n", " - would these omitted variables have a similar spatial pattern to our included variables? why or why not? \n", "4. Where *spatial* regression models generally focus on how nearby observations are similar to one another, *platial* models focus on how observations in the same spatial group are similar to one another. These are often dealt with using multilevel or spatial mixed-effect models. When do these two ideas work together well? And, when might these disagree?\n", "\n", "### Challenge Questions\n", "\n", "The following discussions are a bit challenging, but reflect extra enhancements to the discussions in the chapter that may solidify or enhance an advanced understanding of the material. \n", "\n", "#### The random coast\n", "In the section analyzing our naive model residuals, we ran a classic two-sample $t$-test to identify whether or not our coastal and not-coastal residential districts tended to have the same prediction errors. Often, though, it's better to use straightforward, data-driven testing and simulation methods than assuming that the mathematical assumptions of the $t$-statistic are met.\n", "\n", "To do this, we can shuffle our assignments to coast and not-coast, and check whether or not there are differences in the distributions of the *observed* residual distributions and random distributions. In this way, we shuffle the observations that are on the coast, and plot the resulting cumulative distributions.\n", "\n", "Below, we do this; running 100 simulated re-assignments of districts to either \"coast\" or \"not coast,\" and comparing the distributions of randomly-assigned residuals to the observed distributions of residuals. Further, we do this plotting by the *empirical cumulative density function*, not the histogram directly. This is because the *empirical cumulative density function* is usually easier to examine visually, especially for subtle differences. \n", "\n", "Below, the black lines represent our simulations, and the colored patches below them represents the observed distribution of residuals. If the black lines tend to be on the left of the colored patch, then, the simulations (where prediction error is totally random with respect to our categories of \"coastal\" and \"not coastal\") tend to have more negative residuals than our actual model. If the black lines tend to be on the right, then they tend to have more positive residuals. As a refresher, positive residuals mean that our model is under-predicting, and negative residuals mean that our model is over-predicting. Below, our simulations provide direct evidence for the claim that our model may be systematically under-predicting coastal price and over-predicting non-coastal prices. " ] }, { "cell_type": "code", "execution_count": 40, "id": "homeless-behavior", "metadata": { "caption": "Distributions showing the differences between coastal and non-coastal prediction errors. Some 'random' simulations are shown in black in each plot, where observations are randomly assigned to either 'Coastal' or 'Not Coastal' groups.", "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n_simulations = 100\n", "f, ax = plt.subplots(1,2,figsize=(12,3), sharex=True, sharey=True)\n", "ax[0].hist(\n", " coastal, \n", " color='r', \n", " alpha=.5, \n", " density=True, \n", " bins=30, \n", " label='Coastal', \n", " cumulative=True\n", ")\n", "ax[1].hist(\n", " not_coastal, \n", " color='b', \n", " alpha=.5,\n", " density=True, \n", " bins=30, \n", " label='Not Coastal', \n", " cumulative=True\n", ")\n", "for simulation in range(n_simulations):\n", " shuffled_residuals = m1.u[numpy.random.permutation(m1.n)]\n", " random_coast, random_notcoast = (\n", " shuffled_residuals[is_coastal], \n", " shuffled_residuals[~is_coastal]\n", " )\n", " if simulation == 0:\n", " label = 'Simulations'\n", " else:\n", " label = None\n", " ax[0].hist(\n", " random_coast, \n", " density=True, \n", " histtype='step',\n", " color='k', alpha=.05, bins=30, \n", " label=label, \n", " cumulative=True\n", " )\n", " ax[1].hist(\n", " random_coast, \n", " density=True, \n", " histtype='step',\n", " color='k', alpha=.05, bins=30, \n", " label=label, \n", " cumulative=True\n", " )\n", "ax[0].legend()\n", "ax[1].legend()\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "married-mistress", "metadata": {}, "source": [ "#### The K-neighbor correlogram\n", "\n", "Further, it might be the case that spatial dependence in our mis-predictions only matters for sites that are extremely close to one another, and decays quickly with distance. \n", "To investigate this, we can examine the correlation between each sites' residual and the *average* of the $k$th nearest neighbors' residuals, increasing $k$ until the estimate stabilizes. \n", "This main idea is central to the geostatistical concept, the *correlogram*, which gives the correlation between sites of an attribute being studied as distance increases.\n", "\n", "One quick way to check whether or not what we've seen is *unique* or *significant* is to compare it to what happens when we just assign neighbors randomly. \n", "If what we observe is substantially different from what emerges when neighbors are random, then the structure of the neighbors embeds a structure in the residuals. \n", "We won't spend too much time on this theory specifically, but we can quickly and efficiently compute the correlation between our observed residuals and the spatial lag of an increasing $k$-nearest neighbor set:" ] }, { "cell_type": "code", "execution_count": 41, "id": "premium-series", "metadata": {}, "outputs": [], "source": [ "correlations = []\n", "nulls = []\n", "for order in range(1, 51, 5):\n", " knn.reweight(k=order, inplace=True) #operates in place, quickly and efficiently avoiding copies\n", " knn.transform = 'r'\n", " lag_residual = weights.spatial_lag.lag_spatial(knn, m1.u)\n", " random_residual = m1.u[numpy.random.permutation(len(m1.u))] \n", " random_lag_residual = weights.spatial_lag.lag_spatial(\n", " knn, random_residual\n", " ) # identical to random neighbors in KNN \n", " correlations.append(\n", " numpy.corrcoef(m1.u.flatten(), lag_residual.flatten())[0,1]\n", " )\n", " nulls.append(\n", " numpy.corrcoef(m1.u.flatten(), random_lag_residual.flatten())[0,1]\n", " )" ] }, { "cell_type": "code", "execution_count": 42, "id": "primary-intranet", "metadata": { "caption": "Correlogram showing the change in correlation between prediction error at an Airbnb and its surroundings as the number of nearest neighbors increase. The null hypothesis, where residuals are shuffled around the map, shows no significant correlation at any distance. ", "tags": [] }, "outputs": [ { "data": { "image/png": "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baE+lql4snOUWau28uKC3/khKZn6sTHcd+FpXN+tKXWq23MuxlQk4RiMNAFoB9wOVAZOBSaJyJMiMrCwiubYdTAjmzcWrafnmHmMeGsF+9Oy+Mflp7Pwr+cxomdLSz4hFBsbW2rHioqKIi4ujnbt2nHxxRezd+/ekO1769atDBw4kJNPPpk2bdrQr18/fv3115DtP7+ifm579+49bHBXgLPOOivkccyaNYvTTjuNli1bHjb4rL+0tDS6du1Khw4daNu2LY899thh67Ozs+nYsSP9+/cPeXzFEfax4ESkMdAeOB1op6o3hPWAYWRjwYXengMZvL5oA68tWs/uAxnENanD8HNPpnebhmEbQPNYFxsbS0pKSqkfa/DgwZx66qk8/PDDR71fVeWss85i8ODBDB8+HHAjZO/fv59zzjknqPqqSqVKlQKWizqXQNavX0///v3zRuQOh+zsbE499VRmz55N48aN6dKlC2+//TZt2rQ5bDtV5cCBA8TGxpKZmUn37t0ZO3YsZ5xxBgDPPfccy5YtY9++fXzyySdhizdXxKZjUNUkVZ2pqv8sz8nHhNbG3ak89vEqznr6S/4951c6NqnDu7eeybTbz6JPuz9Z8illzz33HO3ataNdu3Y8//zzgPtCbd26Nbfccgtt27blggsu4ODBg3l1Ro8eTatWrejduzfXXnvtYVM/BHLmmWeyadOmvH23a9cub92YMWN4/PHHgzouwFdffUXlypXzkg9AXFxcXvIp7Hxuv/12OnXqxNdff31YOXdakClTptC1a1fi4uK49dZbyc4+8rHGyy67jM6dO9O2bVsmTpwIwAMPPMDvv/9OXFwc9913H3DoqqkkP99AlixZQsuWLTnppJOIiYlh4MCBfPzxx0dsJyJ5x87MzCQzMzOvo05SUhKffvopQ4cOLfRYpSI389ur6Ffnzp3VHJ0fk/bqHW+t0BYPfKItH/pU7303QX/dui/SYR1TatSocVh52bJl2q5dO01JSdH9+/drmzZtdMWKFbpu3TqNiorSlStXqqrqVVddpW+88Yaqqi5dulQ7dOigqampum/fPm3ZsqU+++yzBR4rKytLr7zySv3ss89UVXXdunXatm3bvO2effZZfeyxx/LWFXTcXGPHjtWRI0cGPL/CzkdEdNGiRXnH8S+rqq5evVr79++vGRkZqqp622236WuvvXbE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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(range(1,51,5), correlations)\n", "plt.plot(range(1,51,5), nulls, color='orangered')\n", "plt.hlines(numpy.mean(correlations[-3:]),*plt.xlim(),linestyle=':', color='k')\n", "plt.hlines(numpy.mean(nulls[-3:]),*plt.xlim(),linestyle=':', color='k')\n", "plt.text(s='Long-Run Correlation: ${:.2f}$'.format(numpy.mean(correlations[-3:])), x=25,y=.3)\n", "plt.text(s='Long-Run Null: ${:.2f}$'.format(numpy.mean(nulls[-3:])), x=25, y=.05)\n", "plt.xlabel('$K$: number of nearest neighbors')\n", "plt.ylabel(\"Correlation between site \\n and neighborhood average of size $K$\")\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "spatial-authorization", "metadata": {}, "source": [ "Clearly, the two curves are different. The observed correlation reaches a peak around $r=.34$ when around 20 nearest listings are used. This means that adding more than 20 nearest neighbors does not significantly change the correlation in the residuals. Further, the lowest correlation is for the single nearest neighbor, and correlation rapidly increases as more neighbors are added close to the listing. Thus, this means that there does appear to be an unmeasured spatial structure in the residuals, since they are more similar to one another when they are near than when they are far apart. Further, while it's not shown here (since computationally, it becomes intractable), as the number of nearest neighbors gets very large (approaching the number of observations in the dataset), the average of the $k$th nearest neighbors' residuals goes to zero, the global average of residuals. This means that the correlation of the residuals and a vector that is nearly constant begins to approach zero. \n", "\n", "The null correlations, however, use randomly-chosen neighbors (without reassignment).\n", "Thus, since sampling is truly random in this case, each average of $k$ randomly-chosen neighbors is usually zero (the global mean). \n", "So, the correlation between the observed residual and the average of $k$ randomly-chosen residuals is also usually zero. \n", "Thus, increasing the number of randomly-chosen neighbors does not significantly adjust the long-run average of zero.\n", "Taken together, we can conclude that there is distinct positive spatial dependence in the error. \n", "This means that our over- and under-predictions are likely to cluster. " ] } ], "metadata": { "jupytext": { "formats": "ipynb,md" }, "kernelspec": { "display_name": "Python 3", "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.6.13" } }, "nbformat": 4, "nbformat_minor": 5 }