{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# <b>1 <span style='color:lightseagreen'>|</span> Introduction</b>\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>1.1 | What is PCA ?</b></p>\n</div>\n\nPrincipal Component Analysis (PCA) is a statistical method that allows simplifying the complexity of sample spaces with many dimensions while preserving their information. Suppose there is a sample with n individuals each with $p$ variables $(X_1, X_2, ..., X_p)$, i.e. the sample space has $p$ dimensions. PCA allows to find a number of underlying factors ($z<p$) that explain approximately the same as the original $p$ variables. Where previously $p$ values were needed to characterise each individual, now $z$ values are sufficient. Each of these z new variables is called principal component.\n\nPrincipal Component Analysis belongs to the family of techniques known as unsupervised learning. The supervised learning methods aim to predict a response variable Y from a set of predictors. For this purpose, $p$ features ($X_1, X_2 ... X_p$) and the target variable Y measured in $n$ observations are available. In the case of unsupervised learning, the target variable Y is not taken into account since the objective is not to predict Y but to extract information using the predictors, e.g. to identify subgroups. The main problem faced by unsupervised learning methods is the difficulty in validating the results because there is no response variable to test them against.\n\nThe PCA method therefore allows the information provided by multiple variables to be \"condensed\" into just a few components. This makes it a very useful method to apply after using other statistical techniques such as regression, clustering, etc. Even so, it should not be forgotten that it is still necessary to have the value of the original variables to calculate the components. \n\n# <b>2 <span style='color:lightseagreen'>|</span>Mathematical Concepts</b>\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.1 | Linear Algebra</b></p>\n</div>\n\nThis section describes two of the mathematical concepts applied in the PCA: eigenvectors and eigenvalues. This is simply an intuitive description with the sole purpose of facilitating the understanding of the principal component calculation.\n\n### 2.1.1 | Eigenvectors\n\nEigenvectors are a particular case of multiplication between a matrix and a vector. Note the following multiplication:\n\n$$\n\\begin{equation}\n\\begin{pmatrix}\n2 & 2\\\\\n3 & 1\\\\\n\\end{pmatrix}\n\\begin{pmatrix}\n3\\\\\n2\n\\end{pmatrix}\n=\n\\begin{pmatrix}\n3\\\\\n2\n\\end{pmatrix}\n\\end{equation} \n$$\n\nThe vector resulting from the multiplication is an integer multiple of the original vector. The eigenvectors of a matrix are all those vectors which, when multiplied by that matrix, result in the same vector or an integer multiple of it. Eigenvectors have a number of specific mathematical properties:\n\n* Eigenvectors only exist for square matrices and not for all matrices. In the case of an $n x n$ matrix having eigenvectors, the number of eigenvectors is n.\n* If you scale an eigenvector before multiplying it by the matrix, you get a multiple of the same eigenvector. This is because if you scale a vector by multiplying it by a certain amount, you only change its length but the direction is the same.\n* All the eigenvectors of a matrix are perpendicular (orthogonal) to each other, regardless of their dimensions.\n\nGiven the property that multiplying an eigenvector only changes its length but not its eigenvector nature, it is common to scale them so that their length is 1. In this way they are all standardised. An example is shown below:\n\nThe eigenvector $\\begin{pmatrix}\n3\\\\\n2\n\\end{pmatrix}$ has a length of $\\sqrt{3^2 + 2^2} = \\sqrt{13}$. Dividing each dimension by the length of the vector gives the standardised eigenvector with length 1. This vector is called unitary vector in Mathematics.  \n\n### 2.1.2 | Eigenvalue\n\nWhen a matrix is multiplied by one of its eigenvectors, a multiple of the original vector is obtained, i.e. the result is the same vector multiplied by a number. The value by which the resulting eigenvector is multiplied is known as the eigenvalue. To every eigenvector corresponds an eigenvalue and vice versa.\n\nIn the PCA method, each of the components corresponds to an eigenvector, and the component order is established by decreasing order of eigenvalue. Thus, the first component is the eigenvector with the highest associated eigenvalue.\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.2 | Geometric Interpretation of Principal Components </b></p>\n</div>\n\nAn intuitive way to understand the PCA process is to interpret the principal components from a geometric point of view. Assume a set of observations for which two variables $(X_1, X_2)$ are available. The vector defining the first principal component $(Z_1)$ follows the direction in which the observations vary the most (red line). The projection of each observation in that direction equals the value of the first component score for that observation (principal component scores, $z_{i1}$).\n\n![](data:image/png;base64,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)\n\nThe second component $(Z_2)$ follows the second direction in which the data show the highest variance and which is uncorrelated with the first component. The condition of no correlation between principal components is equivalent to saying that their directions are perpendicular/orthogonal.\n\n![](data:image/png;base64,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LVWLNisrq372LHH8+PGNGzfOmDFDtYsbHg8PD4Vj2rdvz0AkRigvL08tY4AxaNgy3h07dqj8SJcuXeratav0ETMzs0GDBg0aNEjlawIAgBESxdXuN2uyUam52xNeXqmurmlcbiqXy+PzkZykmdoXKrS4OKS4OLS4uL86mmmsX79e4QDdaWutdUFBQU2aNKEZgGFYZGQkY/EYlcrKSoVjKioqGIgE6L6GJdATJkzo37//gwcPGnSvioqKadOm9e7d+99//23QHQEAANATC+haZR/39Ex1c0tzdRXw+fLadlB5M/L0DCkuDi0qCrl7V70RnlVU+PH48eP79++r90H1l7W19U8//UQz4KuvvurevTtj8RiVVq1aKRzTunVrBiIBuq/BJRyZmZkdO3ZcunTp1KlTlelDmZGRMWnSJFjxAAAAakSt6EOymtmldehACgTKVGiYmJgMUne6XAefz3/37p3CYS9evOByuRoV6taNAAAgAElEQVSNRI/Ex8e/fPkyMTGx/j9ueHj41q1btRKVMQgICFD4hUn//v2ZCQbouIbNQFPlFjweLy4urnfv3nfu3KEZXFZWNnr06MGDB1PZM5fLPX36dGNiBcbg7Nmz0dHR3bt39/T0DAwMTExMfPv2rbaDAkDn2DjU9gGwXmctXaFBCgRIfoUGCyFJhYams2eEkJmZmTJNNpo1a6bpSPQIhmGrV68+d+7csGHDqE5/VlZWAwYMSEpKOnLkiDK73APVBAUFdezYkWaAn59fr169GIsH6LKGJdAZGRm7d++mGrhcunSpc+fOS5YsEQqF9Ufu2bOnQ4cO+/btQwixWKz4+Pi8vLyAgAC1BA0MEo/HGzFihL+//86dO69fv37nzp1Tp07NnDnT3d0dPnoBUMfrMbX94N4L3itfoTG4uJipGBFCCMOwLl260I+xsrJyc3NjJh494uvrm5SUdO/evbKysvv37588eXLYsGEYhmk7LkPGZrMPHDjQvHlzmWednJz27NnDcEhAZzV4L9Bx48bdvn07IiICISQQCObNm/fZZ59dv35dMuDhw4cDBw4cO3Ys1e/T29v78uXLa9asMTc3V2PcwPCMHj36zz//rH+8rKwsLCzs6tWrzIcEgA7K8PBI5XLTuFyMrMmlSKxey2aEEEImkuWARUWhqanMhlnr66+/ph8watQoaAUNdISXl9f169eD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c92fSpKkd999d+HChfn5+ZU7AwMD58yZM336dFe/wM5ms2VnZ9+2WWZmZvv27VWoBwAA50eARiMICwuLi4vTuor/Wrly5bx582o9tGPHjri4uA0bNtTxqex2+7hx42q2z8vLmzlz5rlz51JSUlz6duUGg8FkMpWUlDhu5uvrq049AAA4P9cePANqKioqmjNnjoMGGzduPHLkSB2fbdOmTQ7S9j/+8Y/PPvtMWX1ORqfTde3a1XEbk8nUsWNHdeoBAMD5EaDhbr7++usbN244bvPpp5/W8dnef//9BjZwfn/7298cNxgxYoS/v786xQAA4PwI0HA3P/30U6O0EUIUFBRkZGQ4bnPkyBGr1VqnypxVfHx8jx49bnW0SZMmCxcuVLMeAACcHAEa7ua203nr2EYIkZ2dfdtVOyoqKupyEZ4zM5lMe/bsiY6OrnmoTZs2e/bsadeunfpVAQDgtLiIEO4mLCzstm3Cw8Pr8lR1XEskMDCwLs2cWatWrdLT07du3frpp5/++OOPpaWlHTp0GD58eFxcHJM3AACohgANd/PII494eXk5vjPIo48+WpenatasWZs2bf7v//7PQZu2bds2adJEWYlOyWAwjB49evTo0VoXAgCAs2MKB9xNWFjY2LFjHTTo3LnzX/7yl7o8lU6nc/xUQojbNgAAAG6GAA03tGzZsqioqFoPhYaGfv75597e3nV8qldfffXee++91dFu3bq98sor9SkRAAC4LAI03JC/v/933303Z86cqrOTvb29Y2NjT5w44SAQ1/pUX3/9de/evWse6tevX2pqKncYAQDA0zAHGu7JbDa//fbbr7/++rFjx7KysoKCgiIjI+t3PVybNm3S09N37dr1+eefy+vfdenSZeTIkcOGDavfPQiLiop27tx59OhRq9UaEhIycODAIUOGuPTtDAEA8CgEaLgzb2/vWldnU8rLy2vEiBEjRozIz88XdV6do1ZbtmyZMmVKbm5u5Z758+dHRER88sknDhZjBgAAzoMpHIB6UlJSRo8eXTU9y06ePDlgwIAzZ85oUhUAAFCEAA2o5Ndff506deqt7sxy8+bNCRMm3Pa+LQAAQHMEaEAl69evLyoqctDg8OHDx48fV60eAABQP8yBhnOx2+0ZGRknT560Wq1t2rQZMGBA06ZNtS6qcRw8eLAubSIjI1UoBgAA1BsBGk5k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L168ePHi5cuXS0pKvLy8duzY4eAhly9f3rZt25kzZwoKCoKCgiIiIkaNGtW6dWvVagYaLjs7+8CBAydPnrxy5Up+fr7JZGrVqlVUVNTw4cP9/PxqfQg9H27g7NmzGRkZ58+f/+23327evCmEaNq0aZcuXYYNG9ahQ4daH0LPh5vJycmZMmWKvNrMihUr7rrrrpptnLDbswqHc9m9e/fq1aur7nEcoNPT05csWSJJktlsDg4OzsnJKSsrMxqNCQkJ9913352vF2gEmZmZ8fHxle9FRqOxrKxM3m7SpEliYuLdd99d7SH0fLiHN99884cffpC3jUajzWaT/xB0Ot2YMWNGjRpVrT09H+7n9ddflxetE7cI0M7Z7QnQzmXv3r179+6955577rnnnry8vNWrVzsI0FlZWc8//7zNZhs2bNi4ceNMJpPVal21atW3337r4+OzevVqlsuFS/jll1+mTZvWt2/ffv36denSxc/Pz2q1Hj58eN26dfn5+S1atEhKSvL29q5sT8+H29i+fbter+/atWuLFi18fX3Ly8svXbq0fv36U6dOCSEWLVpUdRFcej7cz9dff71ixYrevXsfOnRI1BagnbbbMwfauQwePPjtt98eN25c3759g4ODHTfeunWrzWbr2LHjxIkTTSaTEMLHx+fFF19s3bq11Wp1PPEDcB7NmjVbs2bN9OnTo6Ki5AkbPj4+gwcPnjFjhhAiKyurcnBCRs+H23jyySdHjBjRvn17X19fIYTBYOjUqdO8efPk9//09PSqjen5cDO5ubkpKSnNmzePjY29VRun7fYEaFclSdLBgweFEI8//njV21MZDIahQ4cKIfbv369ZcYASvr6+zZo1q7k/IiJCHlrIzMys3EnPh9szGo3ytKXS0tLKnfR8uJ+kpCSr1TplyhQ5GdfkzN2eAO2qrl69arVahRDdunWrdqhHjx5CiOzs7D/++EODyoDGZrFYKrfp+XB7ZWVlP//8sxCi6nWE9Hy4mb179/7www9DhgyJiIi4VRtn7vYEaFclj8kZDIaQkJBqh1q2bFm1DeCiTp48mZeXp9PpunfvXrmTng83VlhYePr06cTExNzc3E6dOj388MOVh+j5cCc3btxYu3ZtYGDg+PHjHTRz5m7PMnauqqCgQAjh5+dX9UcNmcVi0ev1kiQVFhZqURrQCIqLi1etWiWE6N+/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)\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.3 | Calculating Principal Components </b></p>\n</div>\n\nEach principal component $(Z_i)$ is obtained by linear combination of the original variables. They can be understood as new variables obtained by combining the original variables in a certain way. The first principal component of a group of variables $(X_1, X_2, ..., X_p)$ is the normalised linear combination of these variables that has the highest variance:\n\n$$\n\\begin{equation}\nZ_1=\\phi_{11}X_1+\\phi_{21}X_2+\\cdots+\\phi_{p1}X_p\n\\end{equation}\n$$\n\nThat the linear combination is normalised implies that:\n\n$$\n\\begin{equation}\n\\sum_{j=1}^{p}\\phi_{j1}^2 = 1\n\\end{equation}\n$$\n\nThe terms $\\phi_{11} \\cdots \\phi_{1p}$ are called loadings and define the component $\\phi_{11}$ is the loading of the variable $X_1$ of the first principal component. The loadings can be interpreted as the weight/importance that each variable has in each component and, therefore, they help to know what type of information is collected by each of the components.\n\nGiven a dataset $X$ with $n$ observations and $p$ variables, the process to be followed to calculate the first principal component is as follows:\n\n* Centralisation of the variables: the mean of the variable to which it belongs is subtracted from each value. This ensures that all the variables have zero mean.\n* An optimisation problem is solved to find the value of the loadings with which the variance is maximised. One way to solve this optimisation is by calculating the eigenvector-eigenvalue of the covariance matrix.\n\nOnce the first component $(Z_1)$ the second component $(Z_2)$ is calculated by repeating the same process, but adding the condition that the linear combination cannot be correlated with the first component. This is equivalent to saying that $Z_1$ and $Z_2$ must be perpendicular. It's usually said that we have an orthonormal set of vectors {$Z_1, Z_2$}. The process is repeated iteratively until all possible components are calculated $(min(n-1, p))$ or until it is decided to stop the process. The order of importance of the components is given by the magnitude of the eigenvalue associated with each eigenvector.\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.4 | Scaling of Variables</b></p>\n</div>\n\nThe PCA process identifies those directions in which the variance is greatest. As the variance of a variable is measured on its own scale squared, if all variables are not standardised to have mean 0 and standard deviation 1 before calculating the components, those variables whose scale is larger will dominate the rest. Hence, it is always advisable to standardise the data.\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.5 | Component reproducibility</b></p>\n</div>\n\nThe PCA process always generates the same principal components regardless of the software used, i.e. the value of the resulting loadings is the same. The only difference that can occur is that the sign of all loadings is inverted. This is because the vector of loadings determines the direction of the component, and this direction is the same regardless of the sign (the component follows a line extending in both directions). Similarly, the specific value of the components obtained for each observation (principal component scores) is always the same, except for the sign. \n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.6 | Outliers Influence</b></p>\n</div>\n\nWhen working with variances, the PCA method is highly sensitive to outliers, so it is highly recommended to check for them. The detection of outliers with respect to a given dimension is relatively easy to do by means of graphical checks. However, when dealing with multiple dimensions the process becomes more complicated. For example, consider a man who is 2 metres tall and weighs 50 kg. Neither of the two values are outliers individually, but together they would be very exceptional. The Mahalanobis distance is a measure of distance between a point and the mean that adjusts for correlation between dimensions and allows finding potential outliers in multivariate distributions.\n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.7 | Explained Variance Ratio</b></p>\n</div>\n\nOne of the most frequent questions that arises after performing a PCA is: How much information present in the original dataset is lost when projecting the observations into a lower dimensional space? In other words, how much information is able to be captured by each of the principal components obtained? To answer these questions, the proportion of variance explained by each principal component is used.\n\nAssuming that the variables have been normalised to have zero mean, the total variance present in the dataset is defined as\n\n$$\n\\begin{equation}\n\\sum_{j=1}^{p} Var(X_j) = \\sum_{j=1}^{p} \\frac{1}{n} \\sum_{i=1}^{n} x_{ij}^{2}\n\\end{equation}\n$$\n\nand the variance explained by the $m$ component is\n\n$$\n\\begin{equation}\n\\frac{1}{n} \\sum_{i=1}^{n} z_{im}^{2} = \\frac{1}{n} \\sum_{i=1}^{n} (\\sum_{j=1}^{p} \\phi_{jm} x_{ij})^2\n\\end{equation}\n$$\n\nTherefore, the proportion of variance explained by the $m$ component is given by the ratio\n\n$$\n\\begin{equation}\n\\frac{\\sum_{i=1}^{n} (\\sum_{j=1}^{p} \\phi_{jm} x_{ij})^2}{\\sum_{j=1}^{p} \\sum_{i=1}^{n} x_{ij}^{2}}\n\\end{equation}\n$$\n\nBoth the proportion of variance explained and the proportion of variance explained cumulatively are two very useful values when deciding on the number of principal components to use in subsequent analyses. If all the principal components of a dataset are calculated, then, although transformed, all the information present in the original data is being stored. The sum of the cumulative proportion of variance explained by all components is always 1. \n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>2.8 | Optimal Number of Principal Components</b></p>\n</div>\n\nGenerally, given a data matrix of dimension $n$ x $p$, the number of principal components that can be calculated is at most $n-1$ or $p$ (the smaller of the two values is the limiting one). However, since the aim of PCA is to reduce dimensionality, it is often of interest to use the minimum number of components that are sufficient to explain the data. There is no single answer or method to identify the optimal number of principal components to use. A widespread approach is to assess the proportion of cumulative explained variance and select the minimum number of components beyond which the increase is no longer substantial.\n\n![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAJmCAMAAACkOhnuAAADAFBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycoKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////isF19AAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nO2dB3wUZfrHnw1JaAlNCFb0RBTLeXfm5PRQgbP8VRwI0hFQpAii6B0qnHKHBRGwBZHmiXRFWqTooRwWsFFtiAgCAoLCQBKSkAQSsv+Z2TKzu7O78+y8yc6S3/fzYXfKO8887Mw3M++U9yU3ACBhoXgnAACIHQgMQAIDgQFIYCAwAAkMBAYggYHAACQwEBiABAYCA5DAhBW4YsfHy3N8VGVGAADLhBF435CGZKBqcwIAWMTczbUNiCAwAI7H1M3cxpQ6dB7RpDdGXU3Ue9Giqs4KAGAJU4HHEK1QZtFOZXhVhmtiFecEALCIqcCt6Qa3T2D3N6nJW2yuZMUSC7y94G0rxayxaIG4WIsXLFgoLtpCof/LBYvFRVuwSFystxcI3QDi/pfKxhS4AQRvTEsbYI8FgRvRWE3gH7SxATTQpsDtMgEAQgi6JWQqcDLNUz5TaKM2NocusivwaxYKHZGP2lyNgVK5Qlisk7JcKCyYuyBfXKwiWT4hLppcLC5WriyLC3ZCLhcWq1yWjwkL5i7MFRerWJZLopc6YUngNHpL+WxMS7Sx+VTHZm4QWAcCs4HAOtYEbknqdavWNFwbe4zSbeYGgXUgMBsIrGNN4B40QPl8nBrtV752plMrm7lBYB0IzAYC61gTeAY1Uz53pFDGyFeHpRNNspkbBNaBwGwgsI41gY+m0hrla7z3Oax2ZTZzg8A6EJgNBNaxJrC7IK9U/ZrbXNE3/RELcSMDgXUgMBsIrGNRYD97N2w9GXtOPiCwDgRmA4F1uAKLAQLrQGA2EFgHAvOBwHwgMBsIbAQC84HAbCCwAQjMBgKzOd0FrmuOzdwgsA4EZgOBdaIJTOYERcn/6D8jukodQ6LvmtC3U7/sX0KmQ2AdCMwGAutEE7ijl1aKtc3atm97nvL9l47Bqq6UVEIEXpcldR3cWer8VfAMCKwDgdlAYB2LdeA1jWsM26UN7RxaI2NtyOwnZq5bGSLwr3dK00rdx1+UugfvoxBYBwKzqR4C52/cUhC9lDWBdzdw6cUWuc7Yb1LmixCBJ0rDVWvKBkuzguZAYB0IzKY6CLwlqxZR3Z7bo5WzJvCDdJdhrJv3tcJAQgQu7y6t0QZypP5BZSGwDgRmUw0Enp3qudhUZ3mUgtYEbkHzDWOz6BKTMiEC75akQ9rALkkKUhEC60BgNqe/wBuSfZeLa++MXNKawLVpqWFsoWmLHCECr5M6eaQplqRvA2dBYB0IzOb0F/h2/YZP38glrQnckP5tGPsnNTIpEyLwe1If71CW9Lln4NAsD20nF0dHlo9YKGWRAvm4sFiFspwnLFhxXq64WPnKnxZx0eRj4mIdlWVxwQrlImGxlL95IjfAUSFhjqTqAtePvOPmZy6xIHAbavKbf+TAGdTOisDvSP28Q92kjzwDW7wN6bXJlgEARvZ/t27ljGcfHditzSWNjc9c/BhxqYOZCy0IPJfo4vU+US8irY3KqAKbHIEhMAAG9m9aOe/VZ4d1u6XVJUGdF+nsiBjBmsDaOflfRr4277UR6hMdklmREIHX+urAJf468BFvW9Rtp5RERzmFtlDKIoVysbBYyllXvrBgJXm54mKpp9DioskF4mIpp9DighXKx4XFOq7Uh4QFK8k/GrXI0R2fL3vj+RH9O7Ru2dgVxtkGhhkNI4c7ZukU2l3SwxD+rlJLAuMqtCVwEYtNwl3EKj6wafns7NGD7mh92VnhDrQNL2t9x6DR2bOXbzpwwi3p0++NvEbLbyOtus1zZTvl9g/MC0S6DxycBATWgcBsEkHgkgNb1y2fPnpYnzsyz0oO42ytsy67qc+w0dkL1209ELh7fuW/ipW2J/IaGa8TFn+5dO7SL8M+nhn6JFa250ms8sHSzKA5EFgHArNxqsDFB9a+aeVA22eEcqBdtyvSplpQy1M8/f0o6xT3PrBB4JX9H1K/fu0kTTvhLsaz0BGBwGwcJLDxQJti4UB7ymrg73ukK3Xhe3dHKydG4PxevXp1kyTl8yl1dIHUS5v8SZbUdUgXqfPm4PIQWAcCsxEo8Mf9rrzohnFHWMtYrdFaONBGouDb74qilxIjcK7k4zF11Cew+6fxfTvd/RLeB44EBGYjTOCSnh7dzng3WkGLB9qe9zEPtBEQ3aROxY6Pl+f4sJkbBNaBwGyECdzFJ1/Nz0JnGg+04e73BB9oHfs+sHvfkIbGxG3mBoF1IDAbUQJ/oO/QV2kTbNdoHSvw2qDnRGzmBoF1IDAbUQL3NezRHW5vdX7dMM6mnv37dj0eeHLSgg+/PRi5WwOnCpzbmFKHziOa9Maoq4l6L1pkMzcIrAOB2QgSOP/iMMJGPdCGxakCjyFaoTZwp76buCrDNdFubhBYBwKzsS3wL6snDWl3ZrCzKWf9vl33B0ZPeuvDbw/E+DM6VeDWdIPbJ7D7m9TkLTZzg8A6EJhN7AKX71w27p5W9U2OuM/vELEdnCpwIxqrzqIftLEBNNBmbhBYBwKziUXgE7uWj+uTWcd4wL3QcAqdKmYrOFXgZO0FwhTaqI3NoYts5gaBdSAwG57A+ZsWju56WQ2DuvUzu45euLXcfTDdP2momMycKnAavaV8NibPm0vzTZvU4QCBdSAwG6sC566bPuKOC433cBu2HjRu+S7/rrDYp/XVgjaoUwVuSep1q9be1igfo3SbuUFgHQjMJrrAB1ZnD7opw1jHPeumYdNXHwout/ZKdV7NBy08s2gJpwrcgwYon49TI7VB6J3p1MpmbhBYBwKziSDwSZOq7h0jZm8KZ2jFpolj5/EehY6EUwWeQc2Uzx0plDHy1WFKxWGSzdwgsA4EZmMqcPiqbkSc2SqlikiBj6aS+m7+eO8v067MZm4QWAcCswkSOGpVNxLVQ2B3QZ7WjM7c5sqvk/6IhbiRgcA6EJiNX+AwVd3fIi8eQDUR2M/eDVsjPw1qCQisA4HZnJBLtKqu8dnlyFXd8FQ3gcUAgXUgMAu1qtv5EmNVt56Vqm5YIHAsQGAdCGw1RGhVN7OP1apuWCBwLEBgHQgcFa2q2zSwqjsom1XVDcvpLvBUc2zmBoF1IHB4TppWdad/uNcxjdoF4TyByRybuUFgHQhsxrGQu7o1L1Oqupu0myEOapUyCAhsAAKzOR0Ezt0027Sqa3irHgLrRBN4nTk2c4PAOhDYx4HV04eZVHV/DSkIgXVwEYsPBGZT8eXyteEf31OruoNah1R114X7lSGwDgTmA4GZnBijHlfr/z3UlNKtSlU3s2ZIVTfynguBdSAwHwjMo+CvXjkvMjTx76nqJkWq6oYFAutAYD4QmEcfv6N/VTeCVtUNaFEuTFU3LBBYBwLzgcAsfjJcUe4/qHWa5apuWCCwjjWBzwjGZm4QWOe0F3iS2X3ItD/3Gbt0e4yvpUJgHWsC4z6wEQhsncMfTb0qcNdp0ua+7Pf32goKgXWsCdzex62ZqUTXtW9vMzcIrHO6Chxa1VX4w+qDAhKDwDrsOnDhczVbbI85KS8QWOe0E/jE94vH9LyqDpnxuJDEILBODBex3qHmdvc5CKxzGgnsuatbyyCself3df02ryukq/eYgMA6sVyFvoWeji0lPxBY57QQOOJd3af8E/uKSQwC68Qi8AS6IraU/EBgnQQXWKvqnmU8Tdbu6hqruqeGeOfcYbsxNQ8QWCcWgadTWmwp+YHAOokqcJn2ALPxrm6ydle3wKTs++3rUmrbt0RtAgisE4vAD1O92FLyA4F1Ek/gEyFV3dTLuo6YvSmS77n7HNE7YSjVUOBt6JmhugpsXtVduDX6A8xx750wHNVD4D1+fvzfCOWs6RWbuUFgncQQOLSq27C1UtXdZTUWBGZTiU9itbPbNDQE1nG4wGW7VmcPap1u2PrJF940zLyqGwEIzKbSBK430vYjdhBYx7ECn1g3b1wfZlU3LBCYjUiBn/Dz9Cv/E/CELATWcaDAalW362WxVHXDh4TAXPA6oREIbIncdUpV98LYq7rhA0NgLhDYCASOjFlVt8397KpuWCAwGwhsBAKH48TWhUpVt7ZJVTf+DbuHAQLrQGA+p4vAeSFV3QYBVV0IzMbRAlcUyH5s5gaBdeIhsLWqLgRm41yBd/z9imTD9raZGwTWqVKBw93VNd2HITAbxwo8OTXwUQ6buUFgHYECb3miZ9+X9pvPC1/VDQsEZuNUgd9XtnfjOwYM9WMzNwisI0zgw5LmZcqIoOfkwlV1o0oAgdk4VeCbyDUhxhYETYHAOqIEzr/C52cf36RwVV2LPwUEZuNUgetTNxEp+YHAOqIEHq5rusxT1a1nraobFgjMxqkC16UpIlLyA4F1BAl8soFua/3Qqu7xGEJCYDZOFfhymigiJT/tppVFRxHYQimLHJdPCotVomxzYcHKjuUJCbOFQmh4Tb/xy3eciDmkXCQkM42jsiwuWLEc+38qmBOynC8sWNkxgbtskSwfj17qeOZSCwI/QV2ECtw2WwZiyTGqe2abARNyvo93SqAKOJi50ILAvzVNWitSYByBdSrhCFxfSEQcgfk49Qjs3nhG+hRBTQpqAqMO7EdUHdjQP/ZtQiKiDszHqXVgt/vXP1Hda+/o6MNmbhBYR4zABX0MR+B3RESEwDHgWIH33hx4fcRmbhBYR4jAGy4ybJzeAgKqQGA2ThX412bavcS6fmzmBoF1BAhckZ1KVGtMe03flEfttljmAwKzcarADxFdtVTgFoDAOvYF3t9W8fbSr93ujf/s1vN5ez13GoHAbJwq8EXUUuDGhMBGbAucc4b6+KT2pIYjeic0BQKzESlwLRorIiU/EFjHpsAlwxR9Gy/zjEBgNtVD4LNpuoiU/EBgHXsCb/294u/ffvGOQWA21UPgTvSIiJT8QGAdOwJXTK9NlDza39wrBGZTPQT+0HWmwP8lBDZiQ+DDdyiH3ws+0ydAYDbVQ2D3GLrhNwE5+YDAOrELvPps9eqVMRUIzKZ6CJyTcxel95u+OMeHzdwgsE6sAp8cnURUb17ANAjMpnoIHPKmms3cILBOjAJv/5OyGVr9FDgRArOBwLEAgXViE3h2GlHSsOBnriAwm+oh8FvB2MwNAuvEInB+T+WP6HmfhEyHwGyqh8CigcA6MQj8xe8Uf+80+XUgMBsIHAsQWIctcNnoGkS1s81mQWA2EDgWILAOV+Cfr1MOv1d8ZzoPArOBwLEAgXWYAi9qSOQaVmo+EwKzgcCxAIF1WAIXDFIOvxnvhpsNgdlUD4HPCMZmbhBYhyPwxhaKvzcfDDsfArOpHgLjPrCReAmsNbxRc9yp8CUgMJvqIXB7H7dmKvvQde3b28wNAutYFvi3W5W/nC2/ilQEArOpHgIbKHyuZovtMSflBQLrWBX4ncbqqwtFEctAYDbVTmBlT6LmdluBgcA61gQuGeYiqr8gSikIzKYaCuy+hZ6OLSU/EFjHksDfX6kcftuG6btbBwKzqY4CT6ArYkvJDwTWsSLw7DpqwxvR91oIzKY6Cjyd0mJLyQ8E1okusCwph9/zP7UQCwKzqY4CP0z1YkvJDwTWiSrwGrXhja55VmJBYDbVUOBt6dQqxpx8QGCdKAKXqQ1vpM+xFgsCs6keAu/x8+P/RqQRvWIzNwisE1ng3dcqh9+rd1qMBYHZVA+Bg57Dame39x0IrBNRYLXhDdcwy1JCYDbVUOB6I21vWAisE0HgY3cpP/eZq6zHgsBsqofAT/h5+pX/CdisEFgnvMBfNlf8zTrCiAWB2VQPgUUDgXXCCVw+LoWolmnDG2GBwGwgcCxAYJ0wAu+9QTn8Xv4tLxYEZgOBYwEC65gLvLgRkWvQcWYsCMymegh86p2cHf6RHTnL7MoAgXXMBC5W+wxtsoIdCwKzqR4Cf0Su7/0j21y02lZmENiIicCbLlb8vekAPxYEZlM9BL6PrjWM/ZXus5GXCgTWCRFYa3gjZXSEhjfCAoHZVA+B/0j/Noz9i660kZcKBNYJFvjQ7crh95ItMcWCwGyqh8BNaK5hbC6l28hLBQLrBAn8/pnBfYYygMBsqofAKWRsC2IBJdvISwUC6wQI7Gl4481YY0FgNtVD4Kb0vGFsAmXYyEsFAusYBd72R+Xwe83umGNBYDbVQ+A2dL1h7DpqbSMvFQisYxB4dl1rDW+EBQKzqR4CP0eGc+j5RGNsZQaBjfgFzuuuHH6brbMTCwKzqR4CH61HNSeVaYNlE1OpHucBezMgsI5P4A/PUfztYm8HgMBsqofA7nnKznVO/xemvdBfbd9lnt3cILCOR2Ctz9D06TZjQWA21URg9/Sa/veBa82wnRsE1tEE3vNX5Yf9846ohaMAgdlUF4Hd2+6uq+mb1u9H26lBYAOqwAsbsBreCAsEZlNtBFbO8jYtm7dss5CfDgLrFOQf6638YWz6XwGxIDCbaiSwQCCwTsGaixR//+9XEbEgMBsI7GHXhL6d+mX/EhQ8Z3j3zoNnhP5AENhPxXit4Q0x2UFgNhBYY12W1HVwZ6lzQOeX+cMkqUf/DlLvfcHFIbCPfW2Uw+9l3wiKBoHZVB+BK3Z8vDzHR9C8X++UppW6j78odTc+2Dta6qsInTtaGhjcDC0E9rK0kfrqArfhjbBAYDbVReB9Qxoam5YNmjtRGq76UTZYmqVP3C1J69Xvkruld4PKQ2ANreGNM6L1GcoAArOpJgKvbRDYtHvg3PLu0hptIEfqr09dKXX3DEyRHgsKB4FVtv5e+SX/9qPdzpYNQGA21UPg3MaUOnQe0aQ3Rl1N1HvRosDZyrH2kDawS5J06d6U7vcMLJKygn5wCKw2vFFTfXXhlLUOvq0BgdlUD4HHEK1Q+2dQ++hZleGaGDR7ndTJo0exJOkNoS7Xj8CS9zLWkSUe2k4piY4sH7FQyiKFcrGwWIom+baD7L9NOfxe8HFJSV6ugJS85Ct/WsRFkwvExTqq7I3CKJSPC4t1XJbzhAUryT8qLlaBbGUDHMtcYkHg1nSD2yew+5vU5KAGX96T+niHsqTP/VN/lKTN6ndpP0n6wTNpS6aHNtlyNWdxU8Xfbj/HOw2Q6BzMXGhB4EY0VhPY4+EAGhg4+x2pn3eom/SRPnm4dM93bnf+M5IkfQ2BjRwYpvYZOjXeaYDEx5rAydoLSCm0URubQxdZOQK7f+svSb0HdZAmS5L3+elDszy0nVwcHeUU2kIpixTIx4XFKlTOumwF+OoPap+hWz0jebkCUvKinkKLiyYfExdLOYUWF6xQLhIWS6kPidwAR8XFOiZb2QD5lk6h0+gt5bMxecrOpzqBs9f66sAlxjqwUqWf90Dnro99+pMkBV3BqN4XsdSGN2qM8N0bx0UsNriIpWPtIlZLUq9btabh2thjwa1Sml+F9rPSf4D2UZ0Fzu+hNrzxiX8cArOBwDrWBO5BA5TPx6nRfuVrZzq1CpxtuA98r8nSw6UpQVOqscCf/07x907D/wwCs4HAOtYEnkHNlM8dKZQx8tVh6USTguZne57EKh8szQxd+H0pK/hh6GorsNbwRu2APkMhMBsIrGOxTaxUUg+x473PYbUrC5r/aydp2gl3se9Z6JX9H1K/Nq88XOGW53SUFgbHq64C/3yd8utlBraIAIHZQGAdi49SFuSVql9z1T7j0x8JjftJltR1SBeps3bj171A6qV+rZSkrC6S1CG0Ca1qKvDChiYNb0BgNhBYh/s64d4NW4NfLdL4aXzfTne/5H0f2CvwvmkP9riz/8SdoaWrpcAFg5S/fhnB73VAYD4QWActcvCJTeANLRR/bzkYMh0Cs4HAOhCYTywCa32G1hpn0mcoBGYDgXUgMJ8YBP7t/5TD76Vfmc2CwGwgsA4E5sMXOOcMteGNItN5EJgNBNaBwHy4Amt9hjYI1/AGBGYDgXUgMB+mwN9fqd46/yXcbAjMBgLrQGA+LIErpteJ3GcoBGYDgXUgMB+OwIfvUBve+CxCCQjMBgLrQGA+DIH/p3bm2DUvUhEIzAYC60BgPpYFLhudRFRvbuRCEJgNBNaBwHysCrz9KuXw28rkSdIAIDAbCKwDgflYFHh2mvrqgumT40YgMBsIrCOmaxUu1UDgY72Uw+95H0ePBoHZQGAdMV2rcDn9Bf7iQuVX6nTEQjQIzAYC6wjpWoXN6S5w+biU4IY3wgKB2UBgHSFdq7A5zQXee73yN+7ybyOW8QOB2UBgHSFdq7A5vQVerDW8UWoxGgRmA4F1rAkcpWsVNqezwFqfoU1WWo4GgdlAYB1rAkfpWoXNaSzwposVf28KbXgjLBCYDQTWsSZwlK5V2Jy2AmsNb9Q0a3gjLBCYDQTWsSZwlK5V2JyuAv+m9hnaklfBgMBsILCOkK5V2JymAr9/ZviGN8ICgdlAYB0hXauwOS0F1hreqP8WNxoEZgOBdcR0rcLldBR4m9pn6LW72dEgMBsIrCOmaxUup6HAs6M0vBEWCMwGAusI6lqFyWknsNxB+WHOXxdLNAjMBgLriOpahcfpJvCac9SGN2LbeBCYDQTWwfvAfIIF1hreSJ8eYzQIzAYC60BgPkEC7/mrcvj9845Yo0FgNhBYBwLzCRTY0/BG7N5AYDYQWAcC8zEKfOwu5fDbdJWNaBCYDQTWiSZwXXNs5nbaCLxevSzf0UrDG2GBwGwgsE40gckcm7mdJgKfyk4hqpVtLzIEZgOBdaIJ3NFLK8XaZm3btz1P+f5Lx442czs9BN53g/JjXPaNzWgQmA0E1rFYB17TuMawXdrQzqE1MtbazS2RBT61KOvCc6999oh7SSMi16DjduNBYDYQWMeawLsbuPRii1xn7LeVWUILfKSdpxLRuJPa8MZy+wEhMBsIrGNN4AfpLsNYN+9rhbGTuAKXX2u4EnDjAQERITAbCKxjTeAWNN8wNosusZGXSuIKPFPX1zWa0/BGWCAwGwisY03g2rTUMLawGrfIcbNBYBHHXwgcAxBYx5rADenfhrF/UiMbeakkrsBnGc6gPxASEQKzgcA61gRuQ01+848cOIPa2coskQWuZxDYbg9RHiAwGwisY03guUQXr/cOf3ERaW1U2iFxBb7UIPBGIREhMBsIrGPxPvDt6vMbI1+b99oI9YkOyW5uiSvwg7q/jcXsRRCYDQTWsShwSQ/Dkecuq72GhCVxBd5V0/8zjBMSEALzgcA6lt9GWnVbsrbbptwu4NpN4grsnuvy+tvBbsNgXiAwGwisw3idsPjLpXOXfmm7PSyVBBb4xxqavg3HCvIXAvOBwDp4H5hJF6J7pk96V8jfMQ0IzAYC60BgHt8kUfqBqB18c4DAbCCwDgTmcRvRU1E7+GYBgdlAYB3rAlfs+Hh5jg+buSWswJ8SnXEMAvOBwGzECrxvSEO0yKEkTvR8lA6+uUBgNhBYx6LAaxuIbVJnWnl0FIEtlLJIsVwmIMoqorMKyktluUBAMC/H8sTFKlS2ubhocpG4WIrA4oKVyCeExTohy/nCgpUXCNxllb/Gx6OXKs5cGuiWqZu5jSl16DyiSW+Mupqo96JFNgVumy0nJH8mmhDvHAAwcDBzoQWBxxCtUBu426kMr8pwTbTpr7vd1JPRUY7AFkpZ5Lh8wn6QxUTNik6eVM5tjtkP5iM/T1ysAlkuFhdNLhQX66gsiwt2XC4VFks5nRK4AY4J3GWV06mi6KWKLB2BW9MNbp/A7m9Sk3l90JsInJB14FN/IJrljtDBd0ygDswGdWAda3XgRjRWnUU/aGMDaKDN3BJT4PlEF6vPX0FgPhCYjUiBk7UXCFO8L9DNoYts5paQApdfQqRV/iEwHwjMRqTAafSW8tmYlmhj86tnkzqvEV2ptYIFgflAYDYiBW5J6nWr1t7WKB+jdJu5JaLApecRvasNQWA+EJiNSIF70ADl83FqpDYIvTOdWtnMLREFziZq7RmCwHwgMBuRAs+gZsrnjhTKGPnqsHSiSTZzS0CBi5oSfegZhMB8IDAbkQIfTaU1ytd473NY7ey+C5uAAj9LdLN3EALzgcBshD5KWZCnNaMzV+1NM/0R2y/DJp7A+Y2IvvAOQ2A+EJhN5bxOuHfD1pOx5+Qj8QR+gsjfJSME5gOB2eB9YCM2BZbTKelr3wgE5gOB2UBgIzYFfpiol38EAvOBwGxECnzqnZwd/pEdOcvs3pJJNIEP1KYa2/1jEJgPBGYjUuCPyPW9f2Sbi1bbyizxBB5E2o1wLxCYDwRmI1Lg++haw9hf6T4beakkmMC7Uyl1tz4KgflAYDYiBf5jQO+E/6IrbeSlkmAC30X0kGEUAvOBwGxECtyE5hrG5lazZ6G3JlHd3wzjEJgPBGYjUuAUWmAYW0DJNvJSSSyBOxH90zgOgflAYDYiBW5KzxvGJlCGjbxUEkrgTS6qH5AJBOYDgdmI7eD7esPYdb7XcmImoQS+hWhMwAQIzAcCsxEp8HNkOIeeH7xD80kkgdcRNS4ImAKB+UBgNkLfRqpHNSd5XkEqm5hK9Y7YzC2RBG5D9FLgFAjMBwKzEfoo5TwiOqf/C9Ne6H+2MjTPbm4JJPB/ic4O2pEhMB8IzEbss9DT9Z7pa82wnVviCFzRimh60DQIzAcCsxH8MsO2u+tq+qb1+9F2agkk8GKiC4KdgMB8IDAb4W8jlW1aNm/ZZiE/XcIIXH4ZBTzDogGB+UBgNnid0EiMAs8hujxkZ4HAfCAwGwhsJDaBTzYnWho6FQKzgcBsILCR2ASeSpQZuhwE5gOB2YgReOrUqV9rn4HYzC1BBC45l2hV6GQIzAcCsxEjMKld0rspGJu5JYjAL5LpQ6MQmA8EZgOBjcQicGEG0Ucm0yEwHwjMRozA69at+0X7DMRmbokh8NNEt5pNh8B8IDAbXMQyEoPAeQ3Jtd5sBgTmA4HZQGAjMQg8kuhO0xkQmA8EZgOBjfAFPpxOSd+YzoHAfCAwGwhshC/wg0R9zOdAYD4QmI2w+8Bm2MwtAQTeW5NSfjKfBYH5QGKbs2EAACAASURBVGA2wm4jmWEztwQQuD+Fbf0aAvOBwGwgsBGuwDuSqda+MPMgMB8IzEbYfWAzbObmfIF7EP0j3DwIzAcCs8FFLCNMgb9LorRD4WZCYD4QmA0ENsIUuAPRqLAzITAfCMwGAhvhCbzRRQ3CbwoIzAcCs4HARngC30T0XPi5EJgPBGYjWOATC3q2SHOltej5toBdxOECryVqUhB+NgTmA4HZiBX4vWb+W0gXvG87N4cLfAPRxAizITAfCMxGqMAzkhRzM6658ZomynfSLLu5OVvglUTNSiPMh8B8IDAbkQJvTaWkQd97Bvu7KPV7m7k5WuCKPxG9HqkABOYDgdmIFPgecr3tH5lPdK+tzBwu8NtELcoiFYDAfCAwG5ECn0s9DGOdqZmNvFScLHD5pURvRiwBgflAYDYiBU4N6M9sJtW0kZeKkwWeSXTFqYglIDAfCMxGpMBnkrHUQjonpMSuCX079cv+JSj4O4/2yOo58t2Qn9vBAp+8kGhZlCIQmA0EZiNS4Pb0lGFsFHUILrAuS+o6uLPU+SvjxIIHJanH4G6SNDx4T3CwwK8S/TlKUQjMBwKzESnwCmqq//6HmtAHQfN/vVOaVuo+/qLU3bg3TpK6fOF2V3yYJc0MKu9cgUvOIVodpQwE5gOB2Qi9DzyMLv/aO7j5Uno0ePZEabjqR9lgyXiLuLfkuRj0mjQkqLxzBZ5AdH20MhCYDwRmI1LgnJzbyNXmyTmL54y+wUVSjhff7PLu0hpPOam/Yamu0lrt+z1pYFA8xwqstuX+SbRCEJgPBGYjUuAo7XLsliTPy7O7JMkg3UjJ07f9i9ILQfEcK/BoovZRC0FgPhCYTRUKvE7q5NGjWJK+1ZfaemeHBYdO/jpT6vurd0reag9tp5RG54h8xEIpixTKJRZKHaxHri+jljouy/n2M/KRlysu1jFZLhIXTS4QF+uoLIsLViQXC4ulaJInLFhp/lFxsQqU44SFUplLLAj8ljm+2e9JvgZYs6TPDYv9+GQHSZKyXvMfSbdkemiTLTuSB4g6xDsHABgczFxoQeAovCP18w51kz4yTF/7kNRtcBepn//1JYcLvLU21fgs3kkAwECIwGGOwEukvhvd7oq1PSRfL/eHZnloO7k4OrJ8xEIpixTIx6MXGkTUx0KsQuWsy3ZCfvJyxcXKV866xEWTj4mLpZxCiwtWKBcJi1UkyyI3wFFxsZT6kIUNkG/pFDoKa3114BJjHTi3s7RBG1gjdQm66OPMi1g/16SUXRZi4SIWH1zEYlMpTersf+jqq/qF9BhkfhX6cynL81JPgSR9F7iAMwW+h+h+K7EgMB8IzEakwB/XSN6ofu/KUC8+p7wTNNtwH9jwouEag8CbAxdwpMA/JlOt/VZiQWA+EJiNSIFH0JXa9+2KvY2I6gc3mZzteRKrfLDxocntkuTpXne17wDtx5ECd6PQR8xMgcB8IDAbkQJf69m1fyK6+Zh7QQ0aEzT/107StBPuYt+z0Cv7P6R8VtzvuYj1SXfp8aDyThT420htuQcAgflAYDYiBb6AtGecXyTaoXxl0XXBBT7JkroO6SJ19pwqL5B6qV97ekvabSRpwOGg4k4UuD3RaGuxIDAfCMxGpMBptEL96kh/VL8mU+OQEj+N79vp7pe87wN7BXYfm//37h17PLo4JA8HCrzeRWdY3JIQmA8EZiNS4GTSmsTKoL+rX4spxWZuDhT4b0QTLMaCwHwgMBuRAjfRdu6vibQnMuZTbZu5OU/g1URnHbcYCwLzgcBsRAp8I2WeUl8KTjqijo2lC2zm5jyBryF61WosCMwHArMRKfCrRJ1znkqmm7WxDnSbzdwcJ/AyovMjteUeAATmA4HZiBS4pKX2+mCNz9SRotqWa4vhcJrAp/5INNNyLAjMBwKzEfoo5b62ir8NPW3LTiPaYjM3pwn8JtHFEdtyDwAC84HAbAQ/C737g8+84d6dOp3VWbYJDhO4XDnBeDv87GAgMB8IzAb9AxuJKPDrRL+P3JZ7ABCYDwRmA4GNRBL4xO/I86CKRSAwHwjMRrTAJWtfG/+M3aS8OEvgiUStOJUCCMwHArMRK3DhI/V8zdg92vwGu7k5SuCiM4nWcGJBYD4QmI3Yq9At9HYoNxB9ZjM3Rwn8HNGNrFgQmA8EZiNS4LIrlZ18/n+9DcleRMGvB3JxksD5jYg+DzPPHAjMBwKzESnwa0RK9Xe/V+BB1M5mbk4SeBSF9tUWGQjMBwKzESnwTdobwD6BJ9NZNnNzkMByOrm+Mp8VDgjMBwKzEfs20ituXeAFp1MH3/8g6sGMBYH5QGA2IgVOoUVuXeC5p9HrhAfrUI0fmLEgMB8IzEakwI1J7abMJ/BTdJ7N3Jwj8GCi/qYzIgCB+UBgNmIbtbvLrQt8FfeqTwiOEXhPKqXu5saCwHwgMBuRAo+hmj/4BZ5JNM1mbo4RuA/Rg+xYEJgPBGYjUuAj9emCzR6BT76cQmdZCBwRpwi8PZlq/8KOBYH5QGA2Qp/EWuCipHYPEL088ByiGqvt5uYUgTsTjeTHgsB8IDAbsc9Cz63r79Y7bbHt3Bwi8CYX1Y9hHRCYDwRmI/qF/iENPPr2Z1/0CcUhAt9K9HQMsSAwHwjMRvj7wKe+XTEvZ4P1lmci4AyBPyVqHMvGg8B8IDAbvNBvxEzgtkQvxhILAvOBwGwgsBETgVcx2nIPAALzgcBsILARE4H/QjQ1plgQmA8EZgOBjYQKvJTogtj2dgjMBwKzgcBGQgQ+9Qei2bHFgsB8IDAbCGwkROC5RJfEeEUdAvOBwGwgsJFggU82J4r1gRQIzAcCs4HARoIFnk50Vaz9S0BgPhCYDQQ2EiRwyXlE78UaCwLzgcBsILCRIIFfImodcywIzAcCs4HARgIFLmpK9FHMsSAwHwjMBgIbCRR4DNEtsceCwHwgMBvRAlfs+Hh5jg+bucVZ4LxGRF/GHgsC84HAbMQKvG9IQzJgM7c4C/xPok42YkFgPhCYjVCB1zYgOm0EPpxOSV/biAWB+UBgNiIFzm1MqUPnEU16Y9TVRL0XLbKZW3wFfoi0RjZjBgLzgcBsxLZKqfaATbRTGV6V4ZpoN7e4CnygNiVvtxMLAvOBwGxECtya1C6BPQK7v0lN3mIzt7gKPJBokK1YEJgPBGYjUuBGNFadRZ5OSAbQQJu5xVPgnSlUa5+tWBCYDwRmI1LgZJrnVntI2qiNzaGLbOYWT4F7ET1sLxYE5gOB2YgUOI3ecqs9JC3RxuZTHZu5xVHgrUlU9zd7sSAwHwjMRqTALUm9btWahmtjj1G6zdziKHAW0RM2Y0FgPhCYjUiBe9AA5fNxarRf+dqZTq1s5hY/gTe6qIHdsBCYDwRmI1LgGdRM+dyRQhkjXx2WTjTJZm7xE/hmomftxoLAfCAwG5ECH02lNcrXeO9zWO3stu4eN4HXETUusBsLAvOBwGyEPkpZkFeqfs1truib/ojdzgnjJ3Abopdtx4LAfCAwm8p5nXDvhq0nY8/JR7tp5dFRBLZQyiLFcpnyuYLo7ELbsUplucB+Rj6O5YmLVahsc3HR5CJxsRSBxQUrkU8Ii3VClvOFBSsvELjLKn+Nj0cvVZy5lCWwGNpmy/Hg8J+IXorLmgGoHA5mLrQg8M6dhw1jJ3butClwuyml0TkiH7FQyiJFcklp6ZtEzQvtxzqu/NG2H8VHfq64WMdkuUhcNLlAXKyjsiwuWJFcLCyWcqKaJyxYaf5RcbEKlJqahVKZSywITFT7TX3suwR9nbD8MtKeKLML6sB8UAdmI7IOrF56ftT/oyWqwLOILj8lIBYE5gOB2YgVOJnoFl9yCSrwyQuJ7LYFpAGB+UBgNmIFXqicfjbf6hlLUIGnEGXG2pZ7ABCYDwRmI1bgrwqyiNI89eXEFLj4XKL3hcSCwHwgMBvBArsrnnSRa5R6CEtMgScQXScmFgTmA4HZiBbY7V5Wj0g6lqAC/5xB9LGYWBCYDwRmI15g9w8XE7XcnpgCjyC6TVAsCMwHArOpBIHd+e2J6q9MRIF/a0Cu9YJiQWA+EJhNZQjsPvU4UdLdCSjwI0RdRMWCwHwgMJtKEdjtXpyWiA27/1qHanwvKhgE5gOB2VSSwO7vmiegwA8Q9RUWDALzgcBsRAo8c6bBpdw+N95oJzF31Qu8tyal2H0BQwcC84HAbNC9qM69RP2EPISlAYH5QGA2ENjPjmSq9Q0E5gKB2UBgA+IE7k70sAyBuUBgNo4WuDzvVz82c6tagb9NorT9EJgNBGbjXIF/fOjSpETtH1gi+ncpBGYDgdk4VuDXUhO3g+8NLmqQC4H5QGA2ThX4UxdRRpeHRvixmVuVCvw3onFuCMwHArNxqsBZRE/abczdSFUK/AnRmUUQOAYgMBunCpxBt4pIyU9VCnwt0StuCBwDEJiNUwVO0XonFEcVCrycqFkpBI4FCMzGqQKfS1NFpOSn6gSu+CPRDDcEjgUIzMapAveioSJS8lN1Ai8gaqHW3iEwHwjMxqkCb0huKPD3r0KByy8leksdgMB8IDAbpwrsnuS6+hcBOfmoMoFnEP1ea8sdAvOBwGycKnBOzj1U5+7pi3N82MytqgQ+8Tui5doQBOYDgdk4VWAKxmZuVSXwJKKrPeJCYD4QmA0ENmBf4OJziP7nGYTAfCAwG6cK/FYwNnOrIoHHEd3gHYTAfCAwG6cKLJqqETj/DKLPvcMQmA8EZgOBDdgW+N9Ed/iGITAfCMwGAhuwK/CReuTa4huBwHwgMBsIbMCuwI8QdfePQGA+EJiNkwWu2PHx8kS6D3ywDtXY5h+DwHwgMBvnCrxvSMMEu400hKifPgaB+UBgNo4VeG2DRLsP/HMqpe7SRyEwHwjMxqkC5zam1KHziCa9Mepqot6LFtnMrQoEvpvoAcMoBOYDgdk4VeAxRCvU57HU7klWZbhsv91f+QL/mEy1ja9fQGA+EJiNUwVurT3R5BHY/U1q8hazQgwqX+AuRI8ZxyEwHwjMxqkCN6Kx6iz6QRsbQANt5lbpAn+TRGmHjRMgMB8IzMapAifTPLfaMtZGbWwOXWQzt0oX+HaiJwMmQGA+EJiNUwVO05q1aExLtLH5VMdmbpUt8KdEZwRuFgjMBwKzcarALbVWKVvTcG3sMUq3mVtlC9yO6PnAKRCYDwRm41SBe9AA5fNxarRf+dqZTq1s5lbJAn9AdNbxwEkQmA8EZuNUgWdQM+VzRwpljHx1WDrRJJu5VbLA1xBNDpoEgflAYDZOFfhoKq1RvsZ7n8NqZ7eblcoVOIfo/OD9GALzgcBsnCqwuyCvVP2a21zRN/0RC3EjU6kCn/oD0azgiRCYDwRm41iB/ezdsPVk7Dn5qFSB5xNdHHKKAIH5QGA2zhdYDJUpcPklRAtDpkJgPhCYDQQ2EKPArxFdeSpkKgTmA4HZJK7Auyb07dQvO6D3hmOSn7uCSleiwKXnEb1rMhkCs4HAbJwn8NSpU7/WPgMJDrMuS+o6uLPU+SvDtIJeXjpITwYVr0SBs4n+ajIZAvOBwGycJzBpzzRFa9j91zulaaXu4y9K3U32xtyO0mdBkypP4KKmRB+aTIfAfCAwm0QVeKI0XPWjbLAUcv/G7V4k9Q7+vStP4GeJbjabDoH5QGA2zhN43bp1v2ifgQQWKu8urdEGcqT+oasYJM0InlRpAuc3IvrCbAYE5gOB2ThPYEvslqRD2sAuSQqR7jtJ2hs8rdIEfoKoo+kMCMwHArNxqsCFBQWRgqyTOnn0KJakb4NnviQ94h/OW+2h7ZTS6ByRj1goFcCBdEraYDqnUC7hBgvLcVnOFxasNC9XXKxjslwkLppcIC7WUVkWF6xILhYWS9EkT1iw0vyj4mIVKMcJC6Uyl1gQmOi2SAK/J/XxDmVJnwfNO95Zet8/siXTQ5tsuVIYTNS5ciID4EgOZgY9tWQqcCqNiSTwO5KvBeZu0kchcnfVz8QqWeDvalGNLyolMgDOxJrA59OESAJHOgL/XTK0YXngFQ9tXi2KjiwfsVDKyL1E94SZdUxmxoqAcm6TJy5a7lFxsfKUCp24aHK+uFhHZIEb4JhcKCxWoSznCgtWlMvdZSOQL1vZALmWTqF7Ut9IAq/11YFLQurAuyVpW+gClXMRa08qpe4OMw8XsfjgIhYbp17EWuuquy9CkAhXoadLg00WqByBexM9FG4eBOYDgdk4VWD3aLrM5EDqw3Af+N7AOSd7SUtMFqgUgbcmUd3fws2EwHwgMBunCpyT052Sbx83P1zvhNmeJ7HKB0szA2d8ImXlmcSrFIE7Ef0z7EwIzAcCs3GqwFGfhe4kTTvhLvY9C72yv+9UdpT0rFm8yhB4k4vqh18AAvOBwGwSVWD3J1lS1yFdpM6btbEFUi/P5EMdpA1m8SpD4P8jeib8XAjMBwKzcarAbwUTUuKn8X073f2S931gv8DzpLtD3613V4rA64gaR3hcDALzgcBsnCqwaCpB4DZEL0WYDYH5QGA2ENgAS+D/Ep0daX+DwHwgMBsIbIAjcEUrommRCkBgPhCYDQQ2wBF4MdEFEXddCMwHArNxssAVOz5eHu4+MBfRAp+6kmhuxBIQmA8EZuNcgfcNaRjpNhIT0QLPIbo88jaFwHwgMBvHCry2QeT7wEwEC3yyOZHZE5sGIDAfCMzGqQLnNqbUofOIJr0x6mqi3osW2cxNsMBTiTKj+AmB+UBgNk4VeAzRCvV5rJ3K8KoM10SzMhzEClxyLtGqKGUgMB8IzMapAremG9w+gd3fpCZvsZmbWIFfJGodrQwE5gOB2ThV4EY0Vp1FP2hjA2igzdyEClyYQfRRtEIQmA8EZuNUgZNpnvKZQhu1sTl0kc3chAr8NNGtUQtBYD4QmI1TBU4j9fWFxt5LvfOpjs3cRAqc15Bc66OWgsB8IDAbpwrcktTrVq1puDb2GKXbzE2kwCOJ7oxeCgLzgcBsnCpwDxqgfD5OjfYrXzvTqZXN3AQKfDidkr6JXgwC84HAbJwq8AxqpnzuSKGMka8OSyeaZDM3gQIPI+oTvRQEjgEIzMapAh9NJbXVuvHe57DaldnMTZzAe2tSyk8WgkFgPhCYjVMFdhfklapfc5sr+qY/YiFuZMQJ3J/oPitrhMB8IDAbxwrsZ++GrSdjz8mHMIF3JFOtSC1W+4HAfCAwG+cLLAZhAvck+oelNUJgPhCYjVMFXiZwt1ARJfB3SZR2yNIaITAfCMzGqQJTo0GfiBNAnMAdiEZZWyME5gOB2ThWYIXzHrNwu9UiggTe6KIGFn8xCMwHArNxqsBPt9RuH10+do+AxNzCBL6JtJcsrACB+UBgNk4V2O3ePPxcVWFX6ykiNoQYgdcSNYnQlnsAEJgPBGbjXIHd7oqPBjZSHU5uP7/Ibm5iBL6ByHLTAhCYDwRm42SBFU4u615HdbjuXbYyEyTwSqJmpVbXCIH5QGA2DhdYoXDubcnOaNSu4k9E/7G8RgjMBwKzcb7AbvfRMamOEPhtohbWn8mGwHwgMBvHC1z05h0pzmhWtvxSojetrxEC84HAbJwt8MkVPet6qsDv2ktNhMAzia4w7brUHAjMBwKzcbDAFR8P0i5Cp7R/87jt3OwLfPJConcYa4TAfCAwG8cKrN8GPiIgNQECv0r0Z46SEJgPBGbjVIEv0R7EumLszyIScwsQuOQcotWcNUJgPhCYjVMFVuxtJvBRaPsCTyC6nrVGCMwHArNxqsCN7hP6MpJtgdW23D9hrREC84HAbJwqsIBGOAKwK/Boova8NUJgPhCYjVMFFo1NgY/UIxezeyYIzAcCs4HABsIL/ChRV+YaITAfCMwGAhsIK/DBOlRjG3ONEJgPBGYDgQ2EFXgo0T3cNUJgPhCYDQQ2EE7gn2tSyi7uGiEwHwjMBgIbCCfwPUT3s9cIgflAYDYQ2EAYgX9Mplr72WuEwHwgMBsIbCCMwN2IHuWvEQLzgcBsILABc4G/tdyWewAQmA8EZgOBDZgL3J5odAxrhMB8IDAbCGzAVOD1LmqYF8MaITAfCMwmIQTe+8MPP8SYk4/YBf4b0fhY1giB+UBgNgkhcOs4tom1muismBoEgcB8IDAbCGzATOBriF6NaY0QmA8EZpMQAndv3rx5jDn5aDe9IjqKwMGT3iE6v8TCoqGUyKdiWs6ME4rAwoJVFOSLi6UIXCoumnxcXCxFYHHBSuUyYbHKFIGFBasozBUX67gsF0cvVZq5lCuwANpmy7Fw+AqiV2JaEoDTk4OZC+MgcLsppdE5Ih8JmjKbqEWRhSVNKJJLYlvQBOVPY76wYKX5ueJiHZPlGH8fM+QCcbGOKucGwiiSi4XFUk5U84QFK80/Ki5WgXKiZ6FU5pJ4CBxTHbi8JdHbMa4RdWA+qAOzSYg6sABiE/h1ot8z2nIPAALzgcBsILCBYIFP/I5oRaxrhMB8IDAbBwt8YkHPFmmutBY93xawi8Qk8ESiVjFbCIH5QGA2zhX4vWbk44L3becWi8BFZxKtiXmNEJgPBGbjWIFnJCnmZlxz4zVNlO+kWXZzi0Xg54hujH2NEJgPBGbjVIG3plLSoO89g/1dlPq9zdxiEDi/EdHnsa8RAvOBwGycKvA95NLv38wnutdWZjEJ/C+iDjbWCIH5QGA2ThX4XOphGOtMzWzkpcIXWE4n11c21giB+UBgNk4VOJXmGcZmUk0beanwBf4HBfwNYQOB+UBgNk4V+EwyllpI59jIS4UtsNqWu62XkCEwHwjMxqkCt6enDGOjbNVGVdgCDybqb2uNEJgPBGbjVIFXUFP99z/UhD6wlRlf4D2plLrb1hohMB8IzMapAruH0eVfewc3XxpLs66BcAXuQ/SgvTVCYD4QmI1TBc7JuY1cbZ6cs3jO6BtcJOV4iTk3psDbk6n2LzGvTAMC84HAbJwqMJkTc25MgTsTjYx5XR4gMB8IzAYCG/ALvMlF9cN1FWwVCMwHArNxqsBvmRNzbjyBbyV6OuZVeYHAfCAwG6cKLBqWwJ8SNbb9G0NgPhCYDQQ24BO4LdELttcIgflAYDYQ2IBX4FWxtuUeAATmA4HZOFrgsm/eX/z+t0J+Oo7AfyGaan+NEJgPBGbjYIHXd6ujXXmu22Oj7dQ4Ai8lukDATgmB+UBgNo4VuOKxJP/No6THbedmXeBTfyCabXt9EDgWIDAbxwr8qCJu0+6jnhvVvaky9E+7uVkXeC7RJWV2V+eGwLEAgdk4VeAtSdRgpudHK5tRj5K+NivEwLLAZZcQLba5Mg0IzAcCs3GqwIModZN/ZEMKDbaVGUPg6URXCTEPAvOBwGycKnALGmQYG0AX28hLxarAJecRvWdzXR4gMB8IzMapAtehOYax2ZRmIy8VqwK/RNTa5qq8QGA+EJiNcwWeaxibQ3Vt5KViQeDy94b3fbgh0Uc2V+UFAvOBwGycKnBzGmoYG0otbOSlEl3gtc0996xa2VyTDwjMBwKzcarA91Ltbf6RH+rQAFuZWRD4f6nem86pa22uygsE5gOB2ThV4PUuyljmHV5xJrk22MwtmsDFek9MF5baXJcHCMwHArNxqsDuBxSVWgx5adpL91+sDD1sN7doAi8ytBqwLHJRi0BgPhCYjWMFPnW/QakHY+1l2080gR82rM12C3oaEJgPBGbjWIHd7o/uSPFUSjt8Yju1qAL3Ngh8j/3VuSFwLEBgNk4VuLCgwO0u+TJnbs6XQqqk0QR+0CDwP0SsEALHAARm41SBiW4TkZKfaALPNQj8duSiFoHAfCAwG6cKnEpjRKTkJ5rABRl+f88uErJGCMwHArNxqsDn0wQRKfmJeh94ie/14xorxKwRAvOBwGycKnBP6isiJT/Rn8Ra0ljzN2O5oDVCYD4QmI1TBV7rqrtPRE4+LDwLXTjjrva9Z9pvzc4LBOYDgdk4VWD3aLpsm+mM2OB38G0XCMwHArNxqsA5Od0p+fZx83Nsd2vmAQLrQGA2EFgnxr6RbOYGgXUgMBsIrAOB+UBgPhCYTaV2bmYzNwisA4HZQGAd53etIgYIzAcCs4HABiAwGwjMpjoIvDt7QNf+L+8Wk5YGBNaBwGwgsE50gcuHJ2vXrZKHi/vVILAOBGYDgXWiC6y/yj80eFbMQGAdCMwGAutEFXizYu5fxr0xrpXyvUVUbhBYBwKzgcA6UQUeSvSYNvCowEMwBNaBwGwgsE5Ugf9IzT1NYJ26kP4kJjMIbAQCs4HAOlEFbkAPeIeGUkMRealAYB0IzAYC60QVOIme9Q6NoSQRealAYB0IzAYC60QVmOg579Bzth+B9tPu/lnRmTJ5ioVSFnl98kxhsWZMnvyasGCzpk8TF+u1yZNniIs2+T/iYk2dPFlcsBmT3xAW643Jk6cLCzbrtaniYv1n8uTXo5eaEReBO7SzQJs2bawUs0hbgbGEZtZWYGZtxf5kAjPDxuTHatPGUrR34yCwJdpl3lyl67PMV5mZz8Q7B3MmZmYKaLW7Mrgz88/xTsGcnzMzxTRcLJzZmZnvxLBYqMDnt/ZwPlFrHyISjAYEZgOB2VQDgc0QkWA0IDAbCMwGAlcaEJgNBGZz2gu8xxQB+UUFArOBwGxOe4HjBwRmA4HZQOBKAwKzgcBsIHClsXn95ninYE7B+vUiWzcQyN716wU+CiSSb9avj3cK5pSsX/9jvHMw5+D69YdjWMw5AgMA2EBgABIYCAxAAgOBAUhgIDAACYwzBM7/6D8jukod452GCYeWju6b1f3vbwl8I1gMW2c/3r9z54Ev74h3IuYc7iZJP8c7iWAWSV5ejncmoWx76d47ez38xiHucs4QeKX2szpQ4F86KHl1Vv713RPvVIJ4Sk1Mya7DonhnYsq/JUcK3KmXxrR4ZxJMxWvezbmWu6QzBF7zxMx1K50o8M9ZL6wvdB9fc5c08GS8cwlk6bKfitxl25+QJJE9OYviA2msIwWe0uhEmAAACoJJREFUEO8UwjBD6rEyz33q8Ie7uEs6Q2CVL5wocJG3ZZivJcmZTyacuEey0l5RFXOk+4B9ENg62zt03hPjohDYGr2lpfFOwZwnpUnxTiGUp6SvD0Fg64yTZsS6KAS2Rm/pv/FOwRTlCLwq3jmEsEbKdjtT4AGP3D3o6dVl8U4kiPLO0o49Ux4b+ep3/GUhsCW+ljr8Eu8cTCj89nHpEXFNNgoit2fvAocK7OHBWB46rkR+kjqszNIye5XdmCoEtkLxYOmFeOcQwrfqFu+9SGDDsoJ4RlrndqTAa978IbfswJt3Sg846xi8QerQ8cGtJ3Pf7CAt5C4LgS1Q/qTU33E3gt3b+9/bWZIe3hrvPIL5WFLfvnSiwF6+6iC9H+8cAlgrSV2018qmS90stA0dAASOzqnnpT5OPIFW+CVbynKYwfm9uquX7h0ssPspyVkveH+pnDtrA7Ikcd+phcBROfWC1HtfvJMIy8vSY/FOIZAJ0nvql5MFXiCJ6zpXBFslablnqKvnx2MAgaNRPkHqvTfeSYRng9RZXC8yIhgo9e6jcJck9eoT882RymWhdH+8UwjgmCR5m2vvKa1kLguBo1A+ztH+uj+TspwmsM4r8U7GnLHS6HinEMh90uvadwH/eSEIHJnysc72t+Jp6e/xzsEUB55C+/7Q7ejoO2N1Cm9KvbWLV4ukztyLpRA4Io71d+eT6/KV9H54RlLv2TgQBwq8+4m1uW534XvdpQGl8c4lkOO9pbEFbveXXaU3uIs6Q+D8Xr16dVMqTb16PRXvVALZLEmdPS+w9JoV71wC2K6+vdKjoyRlLYl3KuY4UOBd6m/WvYMkDdwf71SC+aG7lDWkjyQ9xb5B7QyBc/21JoddUt2s1+ec9Qpa6ccvD+3VsfvDrztuX/TiQIGP5zw7qHvWXY8v595rrQKOTBt4Z/eRq/mXM5whMAAgJiAwAAkMBAYggYHAACQwEBiABAYCA5DAQGAAEhgIDEACA4EBSGAgMAAJDAQGIIGBwEAo64imii/KLFyNgMBVy0/jb/5dWs2z//bvH+KdSQg7R4/+yn4UCFy1QOCqRO5fg3z8n9MU/i/RTPtRIHDVAoGrkG0XKuKef/cTYx5sm0x0XrzTCUKMwL88//zX4otC4HBA4Krj8NlELb2tDuaOrndOfLMJQYzAlQUENgcCVx23El2T5x/be2ccUzEDAiciELjK+IyovrF96VOerw0DWtRNu3iw72TyLaIc99rO59Zq8Xe1B5/fRl2R1uCm940z35POrtns3u/1QGYRNvdultr0zi/0QkfHtG6SknHzf8rCFPrCXznPNF3Aj0kOnpx7XVCTCv2imWeRO77dmSlpV/Rfqf7nA4oG/a9yZ/a+PD258XVjfX/xILA5ELjK6E40ImTiqYddHm2S/umZoO7NYz3Tzt/n3nSmZ+5kfebDnimpsyJFmJyiTXL5G2Z+u75Xzyv3mxcKFjh4AT8mOaiTntSyKAiwMiSLtxr4VvKOO1DgoIgFqb6CTT7zTIHA5kDgqqKiMdG2kKkPEtW+f87sAcqu/rg2Qdmbe1PT4dOevYTo5l/PSOqcPaWrsmPv8M28nZo+uXRudxclvR8+wj2uBvdPyb6FqKZnOfdcF6X2mrbwleuILi40LVS6ZxbR83sUDpou4MckB2VSd6rTe/wztwYIHJLF64rk1z+/YO6/rlUOuQECB0fMo2b9s9+c9+z1RI08vdpAYHMgcFWxnahBSJtlHxNlaKeNG+pR0gZ1QNmb6bp8ZeD4H4n+lP6JOm080T/cvpmXqz0PuRck0fknwke4WutA819ED2nL7a5L53vOTp8hejRMIWMdOHQBPyY5qJNaepuwM1gZvILttajmAk+p73cEFQ2KWPo/79qWp9DQgLggEAhcVXxI9OeQiRLRMs/QDOUopn4re3Par9qUJf5T57Iz6Aq3d6bLW9UdRLQgbIQ6nqPWySZ0qTYwhFwbvWu8keqVmBcyChy6gB+THJRJNXxdrBmsDF7BPUSTjJEMRYMj6gylhhXGwiAQCFxVLCa6KXhaSSq18A6WNaW6alfdyt7czzNFJqrrVecOStb2YmVmG2/574l6ho1wt3dSF0pSp5xqQO18q5xPtNa0kFFgkwX8hOagTrrNN9tgZdAKytLonIArYoaiwRF15hHtNBYGgUDgqsJM4C+JhviGuxN949b25uneKcl0rXdogHp5yDPzSV/5DM3cyBEeIlKv4n5L9MB+L4qmr5kWMgpssoCf0BzUSeN8kwxWBq1gE1H/gP+9oWhwRLf7p1HXZ3ivZH1sLAwCgcBVhdkpdA7RS77hUUTqBRxlb17snVKX7vAODSXS6ojKzDm+8tdQWtQII4jU0/EVFMB400JGgU0W8BOagzppvm+SwcqgFSwjeiHgf28oGhzR/WKqvvrlxsIgEAhcVZhdxJpL5O/w4TnPHq/dFPVQl3y9RRkE9lmh1E1dUSN41ZkX6OMzpoWMApss4Cc0B2OwwJu7wVkE9m5h4rovolK20T+WbNi2c+ckbxwIbA4ErirU20jfB00zP35GFNjSEThIHaVQdtCaIwtssoBxSZMjsAWBOUfgiyjDe/v5DQgcEQhcZShV1OCen5Qa7P2G2d+6ows82le+ia8OHCGCV50NRIOC1hxZYJMFjEsG5WBR4M0R6sBBEfcSjfROGAWBIwKBq4xPQx+lLE2li71j5fo15IgC3+CdtNVzvTZyBK86Idd/TQX+gMjXuaXJAsYlg3KwKLAS9OxwV6GDIip/QF71TrkaAkcEAlcdtxBdq7/MsCfLrd3FXekZnUnUQ/2OJrBri2fSAKK33dEi+NzsH3JKbFLoM6JXfLNDFzAuGZyDNYHd/SLcBw6MqHg8zDNB+asCgSMBgauO384iuuRdz/DRf6errxN+QnTmdnV8UwP9OaqIAtOlh9ShN110gfbMUsQIPnV2p1HKTO+0TY+FKXTQfwfabAE/JjlYFPhH/UmsbcFPYgVGPJlO6drd3+/OhMCRgcBVyNYLlN3xvD4jnxp6fTLRBeqkB4nqPDB3zqBUw5PMEQWWqMm/Fs3qQpS0yjMvUgSfOu7FNYiuenr+21Puv4SahyvUklJG5Pz3v5+bLuDHJAeLArtfJ+1Z6HlPXu8KehY6OOJwovQRb84dWJPugsARgcBVyeG7/U3quDrtUaecGuZ7l8h71SaawDnDve/tzPTOixTBr477gzP9N4VuCFdosSdQpukCfkxysCqwe166L+ayoKJBEUtu8Iwnv7wIAkcEAlctO5+78fy6Nc/625M/+aZs6N+8Tp0Wg3ztyUUV2P3eHWelnnuP8X3gsBF0ddzF0+44t1bqWW3/+Wn4Qp90Oa+m/33goAX8mORgWWC3/MxfGyen/37QBxXBRYP+VycnXl23dvN7N7khcGQgcCJhNOX0ycEJ/6uEBQInEk7Y1SGwo4DAiYQTdnUI7CggcCLhhF0dAjsKCJxIOGFXh8COAgInEk7Y1SGwo4DAACQwEBiABAYCA5DAQGAAEhgIDEACA4EBSGAgMAAJDAQGIIGBwAAkMBAYgAQGAgOQwEBgABIYCAxAAgOBAUhgIDAACcz/A+QjTkNpW7udAAAAAElFTkSuQmCC)\n\n---\n# <b>3 <span style='color:lightseagreen'>|</span> PCA for Data Science</b>\n\n---\n\nAfter the extensive explanatory sections we come to the part that will interest you most. From now on we will calculate the principal components, and put into practice everything we have learned previously. We'll work through several applications of PCA to the [*Ames*](https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data) dataset. \n\n<div style=\"color:white;display:fill;border-radius:8px;\n            background-color:#323232;font-size:150%;\n            font-family:Nexa;letter-spacing:0.5px\">\n    <p style=\"padding: 8px;color:white;\"><b>3.1 | Feature Engineering</b></p>\n</div>\n\nThere are two ways you could use PCA for feature engineering.\n\nThe first way is to use it as a descriptive technique. Since the components tell you about the variation, you could compute the MI scores for the components and see what kind of variation is most predictive of your target. That could give you ideas for kinds of features to create. You could even try clustering on one or more of the high-scoring components.\n\nThe second way is to use the components themselves as features. Because the components expose the variational structure of the data directly, they can often be more informative than the original features. Here are some use-cases:\n\n* Dimensionality reduction: When your features are highly redundant (multicollinear, specifically), PCA will partition out the redundancy into one or more near-zero variance components, which you can then drop since they will contain little or no information.\n* Anomaly detection: Unusual variation, not apparent from the original features, will often show up in the low-variance components. These components could be highly informative in an anomaly or outlier detection task.\n* Noise reduction: A collection of sensor readings will often share some common background noise. PCA can sometimes collect the (informative) signal into a smaller number of features while leaving the noise alone, thus boosting the signal-to-noise ratio.\n* Decorrelation: Some ML algorithms struggle with highly-correlated features. PCA transforms correlated features into uncorrelated components, which could be easier for your algorithm to work with.\n\nPCA basically gives you direct access to the correlational structure of your data. You'll no doubt come up with applications of your own!\n\n<div class=\"alert alert-block alert-info\"> 📌 PCA Best Practices. There are a few things to keep in mind when applying PCA:\n\n* PCA only works with numeric features, like continuous quantities or counts.\n* PCA is sensitive to scale. It's good practice to standardize your data before applying PCA, unless you know you have good reason not to.\n* Consider removing or constraining outliers, since they can an have an undue influence on the results. \n</div>","metadata":{"_uuid":"7746e782-6dde-46e3-a0d3-d6a9ceee5acb","_cell_guid":"6ef2ceea-f541-4f7f-9d57-1c0a3ac81a5d","trusted":true}},{"cell_type":"code","source":"# Setup feedback system\nfrom learntools.core import binder\nbinder.bind(globals())\nfrom learntools.feature_engineering_new.ex5 import *\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nfrom sklearn.decomposition import PCA\nfrom sklearn.feature_selection import mutual_info_regression\nfrom sklearn.model_selection import cross_val_score\nfrom xgboost import XGBRegressor\n\n# Set Matplotlib defaults\nplt.style.use(\"seaborn-whitegrid\")\nplt.rc(\"figure\", autolayout=True)\nplt.rc(\n    \"axes\",\n    labelweight=\"bold\",\n    labelsize=\"large\",\n    titleweight=\"bold\",\n    titlesize=14,\n    titlepad=10,\n)\n\n\ndef apply_pca(X, standardize=True):\n    # Standardize\n    if standardize:\n        X = (X - X.mean(axis=0)) / X.std(axis=0)\n    # Create principal components\n    pca = PCA()\n    X_pca = pca.fit_transform(X)\n    # Convert to dataframe\n    component_names = [f\"PC{i+1}\" for i in range(X_pca.shape[1])]\n    X_pca = pd.DataFrame(X_pca, columns=component_names)\n    # Create loadings\n    loadings = pd.DataFrame(\n        pca.components_.T,  # transpose the matrix of loadings\n        columns=component_names,  # so the columns are the principal components\n        index=X.columns,  # and the rows are the original features\n    )\n    return pca, X_pca, loadings\n\n\ndef plot_variance(pca, width=8, dpi=100):\n    # Create figure\n    fig, axs = plt.subplots(1, 2)\n    n = pca.n_components_\n    grid = np.arange(1, n + 1)\n    # Explained variance\n    evr = pca.explained_variance_ratio_\n    axs[0].bar(grid, evr)\n    axs[0].set(\n        xlabel=\"Component\", title=\"% Explained Variance\", ylim=(0.0, 1.0)\n    )\n    # Cumulative Variance\n    cv = np.cumsum(evr)\n    axs[1].plot(np.r_[0, grid], np.r_[0, cv], \"o-\")\n    axs[1].set(\n        xlabel=\"Component\", title=\"% Cumulative Variance\", ylim=(0.0, 1.0)\n    )\n    # Set up figure\n    fig.set(figwidth=8, dpi=100)\n    return axs\n\n\ndef make_mi_scores(X, y):\n    X = X.copy()\n    for colname in X.select_dtypes([\"object\", \"category\"]):\n        X[colname], _ = X[colname].factorize()\n    # All discrete features should now have integer dtypes\n    discrete_features = [pd.api.types.is_integer_dtype(t) for t in X.dtypes]\n    mi_scores = mutual_info_regression(X, y, discrete_features=discrete_features, random_state=0)\n    mi_scores = pd.Series(mi_scores, name=\"MI Scores\", index=X.columns)\n    mi_scores = mi_scores.sort_values(ascending=False)\n    return mi_scores\n\n\ndef score_dataset(X, y, model=XGBRegressor()):\n    # Label encoding for categoricals\n    for colname in X.select_dtypes([\"category\", \"object\"]):\n        X[colname], _ = X[colname].factorize()\n    # Metric for Housing competition is RMSLE (Root Mean Squared Log Error)\n    score = cross_val_score(\n        model, X, y, cv=5, scoring=\"neg_mean_squared_log_error\",\n    )\n    score = -1 * score.mean()\n    score = np.sqrt(score)\n    return score\n\n\ndf = pd.read_csv(\"../input/fe-course-data/ames.csv\")","metadata":{"_uuid":"35494212-a9cc-4cbb-b740-8e31bc4cbc92","_cell_guid":"b2dfb909-a4ca-4e6e-8498-b5e4d450f554","collapsed":false,"jupyter":{"outputs_hidden":false},"_kg_hide-input":true,"execution":{"iopub.status.busy":"2022-07-05T10:33:57.827751Z","iopub.execute_input":"2022-07-05T10:33:57.82823Z","iopub.status.idle":"2022-07-05T10:33:59.821492Z","shell.execute_reply.started":"2022-07-05T10:33:57.828146Z","shell.execute_reply":"2022-07-05T10:33:59.820706Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's choose a few features that are highly correlated with our target, `SalePrice`.","metadata":{"_uuid":"e3f48a39-5170-4591-8c4b-d7e867e799cf","_cell_guid":"71ab37ba-712b-4b26-acfe-2142bbc9b86b","trusted":true}},{"cell_type":"code","source":"features = [\n    \"GarageArea\",\n    \"YearRemodAdd\",\n    \"TotalBsmtSF\",\n    \"GrLivArea\",\n]\n\nprint(\"Correlation with SalePrice:\\n\")\nprint(df[features].corrwith(df.SalePrice))","metadata":{"_uuid":"c7820d00-82ba-462a-a35b-5a6109e41804","_cell_guid":"e55fc760-6ab3-4684-926c-72f229ca5113","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:33:59.823114Z","iopub.execute_input":"2022-07-05T10:33:59.823633Z","iopub.status.idle":"2022-07-05T10:33:59.848053Z","shell.execute_reply.started":"2022-07-05T10:33:59.823597Z","shell.execute_reply":"2022-07-05T10:33:59.847401Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"We'll rely on PCA to untangle the correlational structure of these features and suggest relationships that might be usefully modeled with new features. Run this cell to apply PCA and extract the loadings.","metadata":{"_uuid":"2e4e1a44-ef6a-48fe-823f-bf630243ede2","_cell_guid":"f3348b07-7ccb-4ba1-b1a4-732e3c15bd82","trusted":true}},{"cell_type":"code","source":"X = df.copy()\ny = X.pop(\"SalePrice\")\nX = X.loc[:, features]\n\n# `apply_pca`, defined above, reproduces the code from the tutorial\npca, X_pca, loadings = apply_pca(X)\nprint(loadings)","metadata":{"_uuid":"3ae6474a-0a94-469f-bc0e-888221501544","_cell_guid":"a3df0ef6-c13f-4af5-8f5b-b07b4bd6e80c","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:33:59.849513Z","iopub.execute_input":"2022-07-05T10:33:59.849996Z","iopub.status.idle":"2022-07-05T10:33:59.895832Z","shell.execute_reply.started":"2022-07-05T10:33:59.849959Z","shell.execute_reply":"2022-07-05T10:33:59.894536Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plot_variance(pca)","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:33:59.897828Z","iopub.execute_input":"2022-07-05T10:33:59.898173Z","iopub.status.idle":"2022-07-05T10:34:00.361192Z","shell.execute_reply.started":"2022-07-05T10:33:59.898122Z","shell.execute_reply":"2022-07-05T10:34:00.360108Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### 3.1.1 | Interpret Component Loadings\n\nLook at the loadings for components `PC1` and `PC3`. Can you think of a description of what kind of contrast each component has captured? After you've thought about it, run the next cell for a solution.","metadata":{"_uuid":"d3a5fc97-3d80-4e8a-ab18-f2e2fa2b9507","_cell_guid":"dbbba74d-2cd6-4348-8022-a02d0aa696fc","trusted":true}},{"cell_type":"code","source":"# View the solution (Run this cell to receive credit!)\nq_1.check()","metadata":{"_uuid":"a646c0a5-a099-4a4d-bade-03ab38ba7c42","_cell_guid":"270523d8-26bf-40fe-b0a7-d775e3c57497","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:00.36263Z","iopub.execute_input":"2022-07-05T10:34:00.363141Z","iopub.status.idle":"2022-07-05T10:34:00.374227Z","shell.execute_reply.started":"2022-07-05T10:34:00.363097Z","shell.execute_reply":"2022-07-05T10:34:00.373248Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"-------------------------------------------------------------------------------\n\nYour goal in this question is to use the results of PCA to discover one or more new features that improve the performance of your model. One option is to create features inspired by the loadings, like we did in the tutorial. Another option is to use the components themselves as features (that is, add one or more columns of `X_pca` to `X`).\n\n### 3.1.2 | Create New Features\n\nAdd one or more new features to the dataset `X`. For a correct solution, get a validation score below 0.140 RMSLE. (If you get stuck, feel free to use the `hint` below!). For this first option we'll create some new features based on what PCA tells about the relations between previous features. ","metadata":{"_uuid":"3ae129fb-a01d-4277-b437-82cf4121c270","_cell_guid":"a331c2e1-bfe3-414a-bd01-be6c184b6b68","trusted":true}},{"cell_type":"code","source":"X = df.copy()\ny = X.pop(\"SalePrice\")\n\n# YOUR CODE HERE: Add new features to X.\nX[\"Feature1\"] = X.GrLivArea + X.TotalBsmtSF\nX[\"Feature2\"] = X.YearRemodAdd * X.TotalBsmtSF\n\nscore = score_dataset(X, y)\nprint(f\"Your score: {score:.5f} RMSLE\")\n\n# Check your answer\nq_2.check()","metadata":{"_uuid":"f85c812e-dde4-4f9c-ba10-6c8a3c5da4bf","_cell_guid":"0533bf18-b228-4e87-8577-971e1cb4115f","collapsed":false,"lines_to_next_cell":0,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:00.37561Z","iopub.execute_input":"2022-07-05T10:34:00.376939Z","iopub.status.idle":"2022-07-05T10:34:08.03073Z","shell.execute_reply.started":"2022-07-05T10:34:00.376893Z","shell.execute_reply":"2022-07-05T10:34:08.029818Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Lines below will give you a hint or solution code\n#q_2.hint()\n#q_2.solution()","metadata":{"_uuid":"216ef7db-b90b-4f53-9024-ffcc55373721","_cell_guid":"85eef27e-89b6-4679-9fdd-554a25da4675","collapsed":false,"lines_to_next_cell":0,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:08.031989Z","iopub.execute_input":"2022-07-05T10:34:08.032305Z","iopub.status.idle":"2022-07-05T10:34:08.035954Z","shell.execute_reply.started":"2022-07-05T10:34:08.032273Z","shell.execute_reply":"2022-07-05T10:34:08.034841Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X = df.copy()\nX[\"Feature1\"] = X.GrLivArea + X.TotalBsmtSF\nX[\"Feature2\"] = X.YearRemodAdd * X.TotalBsmtSF\nsns.regplot(x=\"Feature1\", y='SalePrice', data=X);","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:08.037343Z","iopub.execute_input":"2022-07-05T10:34:08.037702Z","iopub.status.idle":"2022-07-05T10:34:08.498295Z","shell.execute_reply.started":"2022-07-05T10:34:08.037666Z","shell.execute_reply":"2022-07-05T10:34:08.49743Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X[\"Feature2\"] = X.YearRemodAdd * X.TotalBsmtSF\nsns.regplot(x=\"Feature2\", y='SalePrice', data=X);","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:08.499659Z","iopub.execute_input":"2022-07-05T10:34:08.499919Z","iopub.status.idle":"2022-07-05T10:34:08.933395Z","shell.execute_reply.started":"2022-07-05T10:34:08.499888Z","shell.execute_reply":"2022-07-05T10:34:08.932841Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's go on with 2nd option. We'll use now principal components as features. ","metadata":{}},{"cell_type":"code","source":"# Solution 2: Uses components\nX = X.join(X_pca)\ny = X.pop(\"SalePrice\")\n\nscore = score_dataset(X, y)\nprint(f\"Your score: {score:.5f} RMSLE\")","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:08.935291Z","iopub.execute_input":"2022-07-05T10:34:08.935696Z","iopub.status.idle":"2022-07-05T10:34:14.349719Z","shell.execute_reply.started":"2022-07-05T10:34:08.93566Z","shell.execute_reply":"2022-07-05T10:34:14.349031Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"-------------------------------------------------------------------------------\n\nThe next question explores a way you can use PCA to detect outliers in the dataset (meaning, data points that are unusually extreme in some way). Outliers can have a detrimental effect on model performance, so it's good to be aware of them in case you need to take corrective action. PCA in particular can show you anomalous *variation* which might not be apparent from the original features: neither small houses nor houses with large basements are unusual, but it is unusual for small houses to have large basements. That's the kind of thing a principal component can show you.\n\nRun the next cell to show distribution plots for each of the principal components you created above.","metadata":{"_uuid":"c344d2a9-8afb-4be8-9eb1-4f96e19642ab","_cell_guid":"758cb23d-70c9-46da-8b55-6caf8c14545e","trusted":true}},{"cell_type":"code","source":"sns.catplot(\n    y=\"value\",\n    col=\"variable\",\n    data=X_pca.melt(),\n    kind='boxen',\n    sharey=False,\n    col_wrap=2,\n);","metadata":{"_uuid":"db73b492-bb95-4630-b154-44846c78e3de","_cell_guid":"f8196c57-a18b-41c2-a671-23dbf7847465","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:14.350798Z","iopub.execute_input":"2022-07-05T10:34:14.351053Z","iopub.status.idle":"2022-07-05T10:34:15.012505Z","shell.execute_reply.started":"2022-07-05T10:34:14.351023Z","shell.execute_reply":"2022-07-05T10:34:15.011521Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"As you can see, in each of the components there are several points lying at the extreme ends of the distributions -- outliers, that is.\n\nNow run the next cell to see those houses that sit at the extremes of a component:","metadata":{"_uuid":"8bb51c20-6561-472a-a890-d1be986fe805","_cell_guid":"bfe1ac56-fdfd-48df-9f91-aa00dddd4aca","trusted":true}},{"cell_type":"code","source":"# You can change PC1 to PC2, PC3, or PC4\ncomponent = \"PC1\"\n\nidx = X_pca[component].sort_values(ascending=False).index\ndf.loc[idx, [\"SalePrice\", \"Neighborhood\", \"SaleCondition\"] + features]","metadata":{"_uuid":"b8ab8659-20e0-428f-b847-8a030aa63af1","_cell_guid":"c9fd2e4a-a4dc-4864-971a-b828a285a966","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:15.013682Z","iopub.execute_input":"2022-07-05T10:34:15.013911Z","iopub.status.idle":"2022-07-05T10:34:15.038621Z","shell.execute_reply.started":"2022-07-05T10:34:15.013879Z","shell.execute_reply":"2022-07-05T10:34:15.037709Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### 3.1.3 | Outlier Detection\n\nDo you notice any patterns in the extreme values? Does it seem like the outliers are coming from some special subset of the data? After you've thought about your answer, run the next cell for the solution and some discussion.","metadata":{"_uuid":"c0ed9f55-050f-4325-98f2-823c289a60f8","_cell_guid":"443893bd-d0b4-4f9b-84ae-3d3f43836ef7","trusted":true}},{"cell_type":"code","source":"# View the solution (Run this cell to receive credit!)\nq_3.check()","metadata":{"_uuid":"c1d8a8dd-5d64-4c8b-9992-76bfb9f6d350","_cell_guid":"9e062e1d-e6b7-4a32-baa6-31b3ab3f2c0f","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2022-07-05T10:34:15.039957Z","iopub.execute_input":"2022-07-05T10:34:15.040172Z","iopub.status.idle":"2022-07-05T10:34:15.047854Z","shell.execute_reply.started":"2022-07-05T10:34:15.040147Z","shell.execute_reply":"2022-07-05T10:34:15.047009Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"In addition, I'll include how I always try to detect outliers. As it's well known, an outlier can be of two types: Univariate and Multivariate. These outliers can be found when we look at distribution of a single variable. Multi-variate outliers are outliers in an n-dimensional space. We'll start by detecting whether there are univariate outliers in our dataset or not. \n\n### 3.1.4 | Univariate Outliers\n\n#### 3.1.4.1 | Grubbs Test\n\n$$\n\\begin{array}{l}{\\text { Grubbs' test is defined for the hypothesis: }} \\\\ {\\begin{array}{ll}{\\text { Ho: }}  {\\text { There are no outliers in the data set }} \\\\ {\\mathrm{H}_{\\mathrm{1}} :}  {\\text { There is exactly one outlier in the data set }}\\end{array}}\\end{array}\n$$\n$$\n\\begin{array}{l}{\\text {The Grubbs' test statistic is defined as: }} \\\\ {\\qquad G_{calculated}=\\frac{\\max \\left|X_{i}-\\overline{X}\\right|}{SD}} \\\\ {\\text { with } \\overline{X} \\text { and } SD \\text { denoting the sample mean and standard deviation, respectively. }} \\end{array}\n$$\n$$\nG_{critical}=\\frac{(N-1)}{\\sqrt{N}} \\sqrt{\\frac{\\left(t_{\\alpha /(2 N), N-2}\\right)^{2}}{N-2+\\left(t_{\\alpha /(2 N), N-2}\\right)^{2}}}\n$$\n$$\n\\begin{array}{l}{\\text { If the calculated value is greater than critical, you can reject the null hypothesis and conclude that one of the values is an outlier }}\\end{array}$$","metadata":{}},{"cell_type":"code","source":"import scipy.stats as stats\ndef grubbs_test(x, feature):\n    n = len(x)\n    mean_x = np.mean(x)\n    sd_x = np.std(x)\n    numerator = max(abs(x-mean_x))\n    g_calculated = numerator/sd_x\n    print(\"Feature:\", feature)\n    print(\"Grubbs Calculated Value:\",g_calculated)\n    t_value = stats.t.ppf(1 - 0.05 / (2 * n), n - 2)\n    g_critical = ((n - 1) * np.sqrt(np.square(t_value))) / (np.sqrt(n) * np.sqrt(n - 2 + np.square(t_value)))\n    print(\"Grubbs Critical Value:\",g_critical)\n    if g_critical > g_calculated:\n        print(\"From grubbs_test we observe that calculated value is lesser than critical value, Accept null hypothesis and conclude that there is no outliers\\n\")\n    else:\n        print(\"From grubbs_test we observe that calculated value is greater than critical value, Reject null hypothesis and conclude that there is an outliers\\n\")\n    \n    print(\"==============================================================================================================================================\")\n    \ngrubbs_test(X['PC1'], 'PC1')\ngrubbs_test(X['PC2'], 'PC2')\ngrubbs_test(X['PC3'], 'PC3')\ngrubbs_test(X['PC4'], 'PC4')","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:15.04931Z","iopub.execute_input":"2022-07-05T10:34:15.049837Z","iopub.status.idle":"2022-07-05T10:34:15.201488Z","shell.execute_reply.started":"2022-07-05T10:34:15.049801Z","shell.execute_reply":"2022-07-05T10:34:15.200548Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### 3.1.4.2 | Z-score method\n\nUsing Z score method,we can find out how many standard deviations value away from the mean. \n\n![minipic](https://i.pinimg.com/originals/cd/14/73/cd1473c4c82980c6596ea9f535a7f41c.jpg)\n\n Figure in the left shows area under normal curve and how much area that standard deviation covers.\n* 68% of the data points lie between + or - 1 standard deviation.\n* 95% of the data points lie between + or - 2 standard deviation\n* 99.7% of the data points lie between + or - 3 standard deviation\n\n$\\begin{array}{l} {R.Z.score=\\frac{0.6745*( X_{i} - Median)}{MAD}}  \\end{array}$\n\nIf the z score of a data point is more than 3 (because it cover 99.7% of area), it indicates that the data value is quite different from the other values. It is taken as outliers.","metadata":{}},{"cell_type":"code","source":"out=[]\ndef Zscore_outlier(df):\n    m = np.mean(df)\n    sd = np.std(df)\n    row = 0\n    for i in df: \n        z = (i-m)/sd\n        if np.abs(z) > 3: \n            out.append(row)\n        row += 1\n    return out\n\nZscore_outlier(X['PC1'])","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:15.202854Z","iopub.execute_input":"2022-07-05T10:34:15.203599Z","iopub.status.idle":"2022-07-05T10:34:15.21844Z","shell.execute_reply.started":"2022-07-05T10:34:15.203551Z","shell.execute_reply":"2022-07-05T10:34:15.217785Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### 3.1.4.3 | Isolation Forest\n\n[Isolation Forest](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest) is implemented in scikit-learn. \nIsolation forest is an algorithm to detect outliers. It partitions the data using a set of trees and provides an anomaly score looking at how isolated the point is in the structure found. The anomaly score is then used to tell apart outliers from normal observations.\nAn important concept in this method is the isolation number. The isolation number is the number of splits needed to isolate a data point. This number of splits is ascertained by following these steps:\n\n* A point “a” to isolate is selected randomly.\n* A random data point “b” is selected that is between the minimum and maximum value and different from “a”.\n* If the value of “b” is lower than the value of “a”, the value of “b” becomes the new lower limit.\n* If the value of “b” is greater than the value of “a”, the value of “b” becomes the new upper limit.\n* This procedure is repeated as long as there are data points other than “a” between the upper and the lower limit.\n\nIt requires fewer splits to isolate an outlier than it does to isolate a non-outlier, i.e. an outlier has a lower isolation number in comparison to a non-outlier point. A data point is therefore defined as an outlier if its isolation number is lower than the threshold. The threshold is defined based on the estimated percentage of outliers in the data, which is the starting point of this outlier detection algorithm.\n\n![](https://www.kaggleusercontent.com/kf/33744443/eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..8nGSn_Y5wFxWrNoIVVu6ew.dLV2C-XFHADo38CTSmX2o7tDuQZNl1RY02dizN_eFKjvPYnZR5yd3p6UKLtvB_j88LbdYZzDztJPobIykrcFD7jCZgGUXD-mOgKiBIXlWZYHKtQhhqaPFWkgBIz68fR2pkmu3spDf4k6CE5vtmoYyk9vpal13mgIwTebfqGFHoS_MVnjqAqb1vATxA8kA3m_7yQbilWntvPapMMs8f0gc6FzhbTprW4D-lC7MjbL6vrzTvvXhZlaEnEGvY1nTQqlia2sJk8fV2GhLJH9R8k32VE8oxmI592Xly6S-y2aN2huiKAX7yzzz9qEgIA3qXuNyzA2gZePG69uEgBjAjC_p2rUmVSshIjauPz-fj0sQHXXjmdSCjQErQ6lYFhob-Vo2XIC-CNpN3n1qJ_A77CHXgFu5zimbP-WnNZKiOiowyEI6MbH-9LGIrZBXiokrsx_Lwkv7eOyzr3jJ5ptXHU0S3aBYPM8dlHKroRpkfrlpNK0oITbrABJOTgFU3ZUM9Ilh6ie3ZZpWK-ijjTWSB513KvotTm5kMLQDV1nRN67KjRt3gQYrtg-toELsD57P18ZqGfOAT8ebArZa1p4QsDnNu7Cf5cQBn3o_85-uMosbQVdQRGGvHgWSRgiKUhT1MlZCNyFaMu0GxNkYWhl8M0NI_DV_Rrb9os512Dq7VWnWP8-LkMKjjKw8WiiIgM_8Rx3.SdNVeAUMSsMbl6mjz4Uo9w/__results___files/__results___77_0.png)","metadata":{}},{"cell_type":"code","source":"from sklearn.ensemble import IsolationForest\nfig, axs = plt.subplots(2, 3, figsize=(22, 12), facecolor='w', edgecolor='k')\naxs = axs.ravel()\n\nfor i, column in enumerate(X[['PC1','PC2','PC3','PC3','GrLivArea','TotalBsmtSF']].columns):\n    isolation_forest = IsolationForest(contamination='auto')\n    isolation_forest.fit(X[column].values.reshape(-1,1))\n\n    xx = np.linspace(X[column].min(), X[column].max(), len(X)).reshape(-1,1)\n    anomaly_score = isolation_forest.decision_function(xx)\n    outlier = isolation_forest.predict(xx)\n    \n    axs[i].plot(xx, anomaly_score, label='anomaly score')\n    axs[i].fill_between(xx.T[0], np.min(anomaly_score), np.max(anomaly_score), \n                     where=outlier==-1, color='r', \n                     alpha=.4, label='outlier region')\n    axs[i].legend()\n    axs[i].set_title(column)","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:15.219752Z","iopub.execute_input":"2022-07-05T10:34:15.220704Z","iopub.status.idle":"2022-07-05T10:34:18.388541Z","shell.execute_reply.started":"2022-07-05T10:34:15.220667Z","shell.execute_reply":"2022-07-05T10:34:18.387331Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Let's analyse for example how much ratio of outliers are in `TotalBsmtSF` feature. ","metadata":{}},{"cell_type":"code","source":"X[(X['TotalBsmtSF'] > 2000) | (X['TotalBsmtSF'] < 650)].shape[0] / X.shape[0]","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:18.389929Z","iopub.execute_input":"2022-07-05T10:34:18.390415Z","iopub.status.idle":"2022-07-05T10:34:18.399287Z","shell.execute_reply.started":"2022-07-05T10:34:18.390381Z","shell.execute_reply":"2022-07-05T10:34:18.39814Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### 3.1.5 | Multivariate Outliers\n\nI will show multivariate outlier detection using two scikit-learn methods: For normally distributed data, use EllipticEnvelope.\n\n#### 3.1.5.1 | EllipticEnvelope","metadata":{}},{"cell_type":"code","source":"from sklearn.covariance import EllipticEnvelope\nfrom sklearn.cluster import DBSCAN\nclf = EllipticEnvelope()\n\ncols = ['PC1','PC2']\nX2 = X[cols].copy()\n\nlegend = {}\nxx, yy = np.meshgrid(np.linspace(-35, 35, 500), np.linspace(-35, 35, 500))\nplt.figure(1, figsize=(10,10))\nclf.fit(X2.values[:,:2])\nZ = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])\nZ = Z.reshape(xx.shape)\nlegend['EllipticEnvelope'] = plt.contour(\n    xx, yy, Z, levels=[0], linewidths=2, colors=['m'])\n\nlegend_values_list = list(legend.values())\nlegend_keys_list = list(legend.keys())\n\nplt.figure(1, figsize=(10,10))# two clusters\nplt.title(\"Outlier detection on first two columns of dummydf\")\nplt.scatter(X2.values[:, 0], X.values[:, 1], color='black')\nbbox_args = dict(boxstyle=\"round\", fc=\"0.8\")\narrow_args = dict(arrowstyle=\"->\")\n\nplt.xlim((xx.min(), xx.max()))\nplt.ylim((yy.min(), yy.max()))\nplt.legend(legend_values_list[0].collections, legend_keys_list,\n           loc=\"upper center\");\nplt.ylabel(X2.columns[1]);\nplt.xlabel(X2.columns[0]);","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:18.400813Z","iopub.execute_input":"2022-07-05T10:34:18.401051Z","iopub.status.idle":"2022-07-05T10:34:19.986621Z","shell.execute_reply.started":"2022-07-05T10:34:18.401025Z","shell.execute_reply":"2022-07-05T10:34:19.985625Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### 3.1.5.2 | DBSCAN (Density-Based Spatial Clustering of Applications with Noise)\n\nThis is a clustering algorithm (an alternative to K-Means) that clusters points together and identifies any points not belonging to a cluster as outliers. It’s like K-means, except the number of clusters does not need to be specified in advance.\nI will show you an example of using DBScan but before we start, let’s cover some important concepts. DBScan has three important concepts:\n\n- Core Points: In order to understand the concept of the core points, we need to visit some of the hyperparameters used to define DBScan job. First hyperparameter (HP) is min_samples. This is simply the minimum number of core points needed in order to form a cluster. second important HP is 'eps'. 'eps' is the maximum distance between two samples for them to be considered as in the same cluster.\n- Border Points are in the same cluster as core points but much further away from the centre of the cluster.\n- Everything else is called Noise Points, those are data points that do not belong to any cluster. They can be anomalous or non-anomalous and they need further investigation. Now, let’s see some code.\n\n![](https://www.kaggleusercontent.com/kf/33744443/eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..8nGSn_Y5wFxWrNoIVVu6ew.dLV2C-XFHADo38CTSmX2o7tDuQZNl1RY02dizN_eFKjvPYnZR5yd3p6UKLtvB_j88LbdYZzDztJPobIykrcFD7jCZgGUXD-mOgKiBIXlWZYHKtQhhqaPFWkgBIz68fR2pkmu3spDf4k6CE5vtmoYyk9vpal13mgIwTebfqGFHoS_MVnjqAqb1vATxA8kA3m_7yQbilWntvPapMMs8f0gc6FzhbTprW4D-lC7MjbL6vrzTvvXhZlaEnEGvY1nTQqlia2sJk8fV2GhLJH9R8k32VE8oxmI592Xly6S-y2aN2huiKAX7yzzz9qEgIA3qXuNyzA2gZePG69uEgBjAjC_p2rUmVSshIjauPz-fj0sQHXXjmdSCjQErQ6lYFhob-Vo2XIC-CNpN3n1qJ_A77CHXgFu5zimbP-WnNZKiOiowyEI6MbH-9LGIrZBXiokrsx_Lwkv7eOyzr3jJ5ptXHU0S3aBYPM8dlHKroRpkfrlpNK0oITbrABJOTgFU3ZUM9Ilh6ie3ZZpWK-ijjTWSB513KvotTm5kMLQDV1nRN67KjRt3gQYrtg-toELsD57P18ZqGfOAT8ebArZa1p4QsDnNu7Cf5cQBn3o_85-uMosbQVdQRGGvHgWSRgiKUhT1MlZCNyFaMu0GxNkYWhl8M0NI_DV_Rrb9os512Dq7VWnWP8-LkMKjjKw8WiiIgM_8Rx3.SdNVeAUMSsMbl6mjz4Uo9w/__results___files/__results___84_0.png)","metadata":{}},{"cell_type":"code","source":"from sklearn.cluster import DBSCAN\nfrom sklearn.preprocessing import StandardScaler\n# scale data first\nX = StandardScaler().fit_transform(X2[cols].values)\n\ndb = DBSCAN(eps=3.0, min_samples=10).fit(X)\nlabels = db.labels_\n\npd.Series(labels).value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:19.988081Z","iopub.execute_input":"2022-07-05T10:34:19.988405Z","iopub.status.idle":"2022-07-05T10:34:20.169746Z","shell.execute_reply.started":"2022-07-05T10:34:19.988364Z","shell.execute_reply":"2022-07-05T10:34:20.168947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Visualize the outlier samples in the context of the first two features, Rooms and Price","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(10,10))\n\nunique_labels = set(labels)\ncolors = ['blue', 'red']\n\nfor color,label in zip(colors, unique_labels):\n    sample_mask = [True if l == label else False for l in labels]\n    plt.plot(X[:,0][sample_mask], X[:, 1][sample_mask], 'o', color=color);\nplt.xlabel(X2.columns[0]);\nplt.ylabel(X2.columns[1]);","metadata":{"execution":{"iopub.status.busy":"2022-07-05T10:34:20.170818Z","iopub.execute_input":"2022-07-05T10:34:20.171029Z","iopub.status.idle":"2022-07-05T10:34:20.44717Z","shell.execute_reply.started":"2022-07-05T10:34:20.171004Z","shell.execute_reply":"2022-07-05T10:34:20.446286Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <b>4 <span style='color:lightseagreen'>|</span>References</b>\n\n* [Análisis de Componentes Principales](https://www.cienciadedatos.net/documentos/35_principal_component_analysis)\n* [Kaggle PCA Module, from Feature Engineering Course](https://www.kaggle.com/learn/feature-engineering)\n* [Outlier Detection Techniques: Simplified](https://www.kaggle.com/code/rpsuraj/outlier-detection-techniques-simplified#1)-DBSCAN-(Density-Based-Spatial-Clustering-of-Applications-with-Noise):)\n* [Outlier Detection Practice: uni/multivariate](https://www.kaggle.com/code/kevinarvai/outlier-detection-practice-uni-multivariate#Table-of-Contents)","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}