diff --git a/notebooks/statsmodels_TP_solutions.ipynb b/notebooks/statsmodels_TP_solutions.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..cc99a3991a34be312e14337434162a90ffd8364e --- /dev/null +++ b/notebooks/statsmodels_TP_solutions.ipynb @@ -0,0 +1,3182 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "4e16caf7", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "from scipy import stats\n", + "import statsmodels.api as sm\n", + "import statsmodels.formula.api as smf\n", + "from statsmodels.stats import diagnostic\n", + "from statsmodels.stats.multitest import multipletests\n", + "from statsmodels.stats.outliers_influence import OLSInfluence" + ] + }, + { + "cell_type": "markdown", + "id": "c63b94db", + "metadata": {}, + "source": [ + "# Toy dataset for ANOVAs" + ] + }, + { + "cell_type": "markdown", + "id": "d294fe11", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Load the `../data/wheat.txt` toy dataset [[1]](https://campus.murraystate.edu/academic/faculty/cmecklin/STA565/wheat.txt)." + ] + }, + { + "cell_type": "markdown", + "id": "98dd9392", + "metadata": {}, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1143, + "id": "ed3d513e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>variety</th>\n", + " <th>location</th>\n", + " <th>yield</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>A</td>\n", + " <td>1</td>\n", + " <td>35.3</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>A</td>\n", + " <td>2</td>\n", + " <td>31.0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>A</td>\n", + " <td>3</td>\n", + " <td>32.7</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>A</td>\n", + " <td>4</td>\n", + " <td>36.8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>A</td>\n", + " <td>5</td>\n", + " <td>37.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>A</td>\n", + " <td>6</td>\n", + " <td>33.1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>B</td>\n", + " <td>1</td>\n", + " <td>33.7</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>B</td>\n", + " <td>2</td>\n", + " <td>32.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>B</td>\n", + " <td>3</td>\n", + " <td>31.4</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>B</td>\n", + " <td>4</td>\n", + " <td>32.7</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>B</td>\n", + " <td>5</td>\n", + " <td>35.0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>B</td>\n", + " <td>6</td>\n", + " <td>33.7</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>C</td>\n", + " <td>1</td>\n", + " <td>32.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>C</td>\n", + " <td>2</td>\n", + " <td>33.4</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>C</td>\n", + " <td>3</td>\n", + " <td>33.6</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>C</td>\n", + " <td>4</td>\n", + " <td>37.1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>C</td>\n", + " <td>5</td>\n", + " <td>37.3</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>C</td>\n", + " <td>6</td>\n", + " <td>38.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>D</td>\n", + " <td>1</td>\n", + " <td>32.9</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>D</td>\n", + " <td>2</td>\n", + " <td>36.1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>20</th>\n", + " <td>D</td>\n", + " <td>3</td>\n", + " <td>35.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>21</th>\n", + " <td>D</td>\n", + " <td>4</td>\n", + " <td>38.3</td>\n", + " </tr>\n", + " <tr>\n", + " <th>22</th>\n", + " <td>D</td>\n", + " <td>5</td>\n", + " <td>35.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>23</th>\n", + " <td>D</td>\n", + " <td>6</td>\n", + " <td>36.0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>24</th>\n", + " <td>E</td>\n", + " <td>1</td>\n", + " <td>32.4</td>\n", + " </tr>\n", + " <tr>\n", + " <th>25</th>\n", + " <td>E</td>\n", + " <td>2</td>\n", + " <td>30.9</td>\n", + " </tr>\n", + " <tr>\n", + " <th>26</th>\n", + " <td>E</td>\n", + " <td>3</td>\n", + " <td>31.2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>27</th>\n", + " <td>E</td>\n", + " <td>4</td>\n", + " <td>30.7</td>\n", + " </tr>\n", + " <tr>\n", + " <th>28</th>\n", + " <td>E</td>\n", + " <td>5</td>\n", + " <td>33.9</td>\n", + " </tr>\n", + " <tr>\n", + " <th>29</th>\n", + " <td>E</td>\n", + " <td>6</td>\n", + " <td>36.1</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " variety location yield\n", + "0 A 1 35.3\n", + "1 A 2 31.0\n", + "2 A 3 32.7\n", + "3 A 4 36.8\n", + "4 A 5 37.2\n", + "5 A 6 33.1\n", + "6 B 1 33.7\n", + "7 B 2 32.2\n", + "8 B 3 31.4\n", + "9 B 4 32.7\n", + "10 B 5 35.0\n", + "11 B 6 33.7\n", + "12 C 1 32.2\n", + "13 C 2 33.4\n", + "14 C 3 33.6\n", + "15 C 4 37.1\n", + "16 C 5 37.3\n", + "17 C 6 38.2\n", + "18 D 1 32.9\n", + "19 D 2 36.1\n", + "20 D 3 35.2\n", + "21 D 4 38.3\n", + "22 D 5 35.2\n", + "23 D 6 36.0\n", + "24 E 1 32.4\n", + "25 E 2 30.9\n", + "26 E 3 31.2\n", + "27 E 4 30.7\n", + "28 E 5 33.9\n", + "29 E 6 36.1" + ] + }, + "execution_count": 1143, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('../data/wheat.txt', sep=' ')\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78d65bc6", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "c29161d4", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Perform a one-way ANOVA fitting a linear model of response variable `yield` using `variety` only as independent variable. Print the summary tables and, if necessary, an ANOVA table." + ] + }, + { + "cell_type": "markdown", + "id": "c49d16f2", + "metadata": {}, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1145, + "id": "ff79b8f0", + "metadata": {}, + "outputs": [], + "source": [ + "df.rename(columns={'yield': 'Yield'}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 1146, + "id": "1b72ed71", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>OLS Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Yield</td> <th> R-squared: </th> <td> 0.285</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.171</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 2.492</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Prob (F-statistic):</th> <td>0.0688</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>14:37:39</td> <th> Log-Likelihood: </th> <td> -61.811</td>\n", + "</tr>\n", + "<tr>\n", + " <th>No. Observations:</th> <td> 30</td> <th> AIC: </th> <td> 133.6</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Residuals:</th> <td> 25</td> <th> BIC: </th> <td> 140.6</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Model:</th> <td> 4</td> <th> </th> <td> </td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> 34.3500</td> <td> 0.849</td> <td> 40.443</td> <td> 0.000</td> <td> 32.601</td> <td> 36.099</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.B]</th> <td> -1.2333</td> <td> 1.201</td> <td> -1.027</td> <td> 0.314</td> <td> -3.707</td> <td> 1.240</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.C]</th> <td> 0.9500</td> <td> 1.201</td> <td> 0.791</td> <td> 0.436</td> <td> -1.524</td> <td> 3.424</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.D]</th> <td> 1.2667</td> <td> 1.201</td> <td> 1.055</td> <td> 0.302</td> <td> -1.207</td> <td> 3.740</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.E]</th> <td> -1.8167</td> <td> 1.201</td> <td> -1.512</td> <td> 0.143</td> <td> -4.290</td> <td> 0.657</td>\n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <th>Omnibus:</th> <td> 3.001</td> <th> Durbin-Watson: </th> <td> 1.651</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Prob(Omnibus):</th> <td> 0.223</td> <th> Jarque-Bera (JB): </th> <td> 1.436</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Skew:</th> <td> 0.131</td> <th> Prob(JB): </th> <td> 0.488</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Kurtosis:</th> <td> 1.961</td> <th> Cond. No. </th> <td> 5.83</td>\n", + "</tr>\n", + "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified." + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Yield R-squared: 0.285\n", + "Model: OLS Adj. R-squared: 0.171\n", + "Method: Least Squares F-statistic: 2.492\n", + "Date: Mon, 26 Sep 2022 Prob (F-statistic): 0.0688\n", + "Time: 14:37:39 Log-Likelihood: -61.811\n", + "No. Observations: 30 AIC: 133.6\n", + "Df Residuals: 25 BIC: 140.6\n", + "Df Model: 4 \n", + "Covariance Type: nonrobust \n", + "===================================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "-----------------------------------------------------------------------------------\n", + "Intercept 34.3500 0.849 40.443 0.000 32.601 36.099\n", + "C(variety)[T.B] -1.2333 1.201 -1.027 0.314 -3.707 1.240\n", + "C(variety)[T.C] 0.9500 1.201 0.791 0.436 -1.524 3.424\n", + "C(variety)[T.D] 1.2667 1.201 1.055 0.302 -1.207 3.740\n", + "C(variety)[T.E] -1.8167 1.201 -1.512 0.143 -4.290 0.657\n", + "==============================================================================\n", + "Omnibus: 3.001 Durbin-Watson: 1.651\n", + "Prob(Omnibus): 0.223 Jarque-Bera (JB): 1.436\n", + "Skew: 0.131 Prob(JB): 0.488\n", + "Kurtosis: 1.961 Cond. No. 5.83\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", + "\"\"\"" + ] + }, + "execution_count": 1146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = smf.ols('Yield ~ C(variety)', df).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "id": "b55d606e", + "metadata": {}, + "source": [ + "There is no need to print an ANOVA table using `anova_lm`. All the information is already provided by the summary tables." + ] + }, + { + "cell_type": "code", + "execution_count": 941, + "id": "4be08184", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>sum_sq</th>\n", + " <th>df</th>\n", + " <th>F</th>\n", + " <th>PR(>F)</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>Intercept</th>\n", + " <td>7079.535000</td>\n", + " <td>1.0</td>\n", + " <td>1635.676494</td>\n", + " <td>2.644622e-24</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C(variety)</th>\n", + " <td>43.136667</td>\n", + " <td>4.0</td>\n", + " <td>2.491605</td>\n", + " <td>6.884095e-02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Residual</th>\n", + " <td>108.205000</td>\n", + " <td>25.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " sum_sq df F PR(>F)\n", + "Intercept 7079.535000 1.0 1635.676494 2.644622e-24\n", + "C(variety) 43.136667 4.0 2.491605 6.884095e-02\n", + "Residual 108.205000 25.0 NaN NaN" + ] + }, + "execution_count": 941, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sm.stats.anova_lm(model, typ=3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03c5778b", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "eaa2b679", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Perform a two-way ANOVA of `yield` using `variety` and `location` as categorical variables. Can we introduce an interaction term?" + ] + }, + { + "cell_type": "markdown", + "id": "3fcf7e63", + "metadata": {}, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1150, + "id": "f453ee96", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>OLS Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Yield</td> <th> R-squared: </th> <td> 0.600</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.421</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 3.340</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Prob (F-statistic):</th> <td>0.0118</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>14:40:23</td> <th> Log-Likelihood: </th> <td> -53.081</td>\n", + "</tr>\n", + "<tr>\n", + " <th>No. Observations:</th> <td> 30</td> <th> AIC: </th> <td> 126.2</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Residuals:</th> <td> 20</td> <th> BIC: </th> <td> 140.2</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Model:</th> <td> 9</td> <th> </th> <td> </td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> 33.4667</td> <td> 1.004</td> <td> 33.338</td> <td> 0.000</td> <td> 31.373</td> <td> 35.561</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.B]</th> <td> -1.2333</td> <td> 1.004</td> <td> -1.229</td> <td> 0.233</td> <td> -3.327</td> <td> 0.861</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.C]</th> <td> 0.9500</td> <td> 1.004</td> <td> 0.946</td> <td> 0.355</td> <td> -1.144</td> <td> 3.044</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.D]</th> <td> 1.2667</td> <td> 1.004</td> <td> 1.262</td> <td> 0.222</td> <td> -0.827</td> <td> 3.361</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(variety)[T.E]</th> <td> -1.8167</td> <td> 1.004</td> <td> -1.810</td> <td> 0.085</td> <td> -3.911</td> <td> 0.277</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(location)[T.2]</th> <td> -0.5800</td> <td> 1.100</td> <td> -0.527</td> <td> 0.604</td> <td> -2.874</td> <td> 1.714</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(location)[T.3]</th> <td> -0.4800</td> <td> 1.100</td> <td> -0.436</td> <td> 0.667</td> <td> -2.774</td> <td> 1.814</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(location)[T.4]</th> <td> 1.8200</td> <td> 1.100</td> <td> 1.655</td> <td> 0.114</td> <td> -0.474</td> <td> 4.114</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(location)[T.5]</th> <td> 2.4200</td> <td> 1.100</td> <td> 2.201</td> <td> 0.040</td> <td> 0.126</td> <td> 4.714</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(location)[T.6]</th> <td> 2.1200</td> <td> 1.100</td> <td> 1.928</td> <td> 0.068</td> <td> -0.174</td> <td> 4.414</td>\n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <th>Omnibus:</th> <td> 2.453</td> <th> Durbin-Watson: </th> <td> 2.188</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Prob(Omnibus):</th> <td> 0.293</td> <th> Jarque-Bera (JB): </th> <td> 1.509</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Skew:</th> <td>-0.282</td> <th> Prob(JB): </th> <td> 0.470</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Kurtosis:</th> <td> 2.057</td> <th> Cond. No. </th> <td> 7.47</td>\n", + "</tr>\n", + "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified." + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Yield R-squared: 0.600\n", + "Model: OLS Adj. R-squared: 0.421\n", + "Method: Least Squares F-statistic: 3.340\n", + "Date: Mon, 26 Sep 2022 Prob (F-statistic): 0.0118\n", + "Time: 14:40:23 Log-Likelihood: -53.081\n", + "No. Observations: 30 AIC: 126.2\n", + "Df Residuals: 20 BIC: 140.2\n", + "Df Model: 9 \n", + "Covariance Type: nonrobust \n", + "====================================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------------\n", + "Intercept 33.4667 1.004 33.338 0.000 31.373 35.561\n", + "C(variety)[T.B] -1.2333 1.004 -1.229 0.233 -3.327 0.861\n", + "C(variety)[T.C] 0.9500 1.004 0.946 0.355 -1.144 3.044\n", + "C(variety)[T.D] 1.2667 1.004 1.262 0.222 -0.827 3.361\n", + "C(variety)[T.E] -1.8167 1.004 -1.810 0.085 -3.911 0.277\n", + "C(location)[T.2] -0.5800 1.100 -0.527 0.604 -2.874 1.714\n", + "C(location)[T.3] -0.4800 1.100 -0.436 0.667 -2.774 1.814\n", + "C(location)[T.4] 1.8200 1.100 1.655 0.114 -0.474 4.114\n", + "C(location)[T.5] 2.4200 1.100 2.201 0.040 0.126 4.714\n", + "C(location)[T.6] 2.1200 1.100 1.928 0.068 -0.174 4.414\n", + "==============================================================================\n", + "Omnibus: 2.453 Durbin-Watson: 2.188\n", + "Prob(Omnibus): 0.293 Jarque-Bera (JB): 1.509\n", + "Skew: -0.282 Prob(JB): 0.470\n", + "Kurtosis: 2.057 Cond. No. 7.47\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", + "\"\"\"" + ] + }, + "execution_count": 1150, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = smf.ols('Yield ~ C(variety) + C(location)', df).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 1151, + "id": "623f55a4", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>sum_sq</th>\n", + " <th>df</th>\n", + " <th>F</th>\n", + " <th>PR(>F)</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>Intercept</th>\n", + " <td>3360.053333</td>\n", + " <td>1.0</td>\n", + " <td>1111.435029</td>\n", + " <td>5.290791e-19</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C(variety)</th>\n", + " <td>43.136667</td>\n", + " <td>4.0</td>\n", + " <td>3.567176</td>\n", + " <td>2.367502e-02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C(location)</th>\n", + " <td>47.741667</td>\n", + " <td>5.0</td>\n", + " <td>3.158388</td>\n", + " <td>2.915088e-02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Residual</th>\n", + " <td>60.463333</td>\n", + " <td>20.0</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " sum_sq df F PR(>F)\n", + "Intercept 3360.053333 1.0 1111.435029 5.290791e-19\n", + "C(variety) 43.136667 4.0 3.567176 2.367502e-02\n", + "C(location) 47.741667 5.0 3.158388 2.915088e-02\n", + "Residual 60.463333 20.0 NaN NaN" + ] + }, + "execution_count": 1151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sm.stats.anova_lm(model, typ=3)" + ] + }, + { + "cell_type": "markdown", + "id": "efe38dd7", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Q\n", + "\n", + "`variety` now appears to have a significant effect. Run pairwise *t* tests to determine which varieties exhibit different yields, with corrections for multiple comparisons." + ] + }, + { + "cell_type": "markdown", + "id": "33527d94", + "metadata": {}, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 937, + "id": "9f5945af", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>coef</th>\n", + " <th>std err</th>\n", + " <th>t</th>\n", + " <th>P>|t|</th>\n", + " <th>Conf. Int. Low</th>\n", + " <th>Conf. Int. Upp.</th>\n", + " <th>pvalue-hs</th>\n", + " <th>reject-hs</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>B-A</th>\n", + " <td>-1.233333</td>\n", + " <td>1.003854</td>\n", + " <td>-1.228599</td>\n", + " <td>0.233484</td>\n", + " <td>-3.327335</td>\n", + " <td>0.860669</td>\n", + " <td>0.714116</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C-A</th>\n", + " <td>0.950000</td>\n", + " <td>1.003854</td>\n", + " <td>0.946353</td>\n", + " <td>0.355263</td>\n", + " <td>-1.144002</td>\n", + " <td>3.044002</td>\n", + " <td>0.731992</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-A</th>\n", + " <td>1.266667</td>\n", + " <td>1.003854</td>\n", + " <td>1.261804</td>\n", + " <td>0.221537</td>\n", + " <td>-0.827335</td>\n", + " <td>3.360669</td>\n", + " <td>0.714116</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-A</th>\n", + " <td>-1.816667</td>\n", + " <td>1.003854</td>\n", + " <td>-1.809693</td>\n", + " <td>0.085398</td>\n", + " <td>-3.910669</td>\n", + " <td>0.277335</td>\n", + " <td>0.414682</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C-B</th>\n", + " <td>2.183333</td>\n", + " <td>1.003854</td>\n", + " <td>2.174952</td>\n", + " <td>0.041804</td>\n", + " <td>0.089331</td>\n", + " <td>4.277335</td>\n", + " <td>0.258383</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-B</th>\n", + " <td>2.500000</td>\n", + " <td>1.003854</td>\n", + " <td>2.490403</td>\n", + " <td>0.021673</td>\n", + " <td>0.405998</td>\n", + " <td>4.594002</td>\n", + " <td>0.160786</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-B</th>\n", + " <td>-0.583333</td>\n", + " <td>1.003854</td>\n", + " <td>-0.581094</td>\n", + " <td>0.567669</td>\n", + " <td>-2.677335</td>\n", + " <td>1.510669</td>\n", + " <td>0.813090</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-C</th>\n", + " <td>0.316667</td>\n", + " <td>1.003854</td>\n", + " <td>0.315451</td>\n", + " <td>0.755687</td>\n", + " <td>-1.777335</td>\n", + " <td>2.410669</td>\n", + " <td>0.813090</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-C</th>\n", + " <td>-2.766667</td>\n", + " <td>1.003854</td>\n", + " <td>-2.756046</td>\n", + " <td>0.012183</td>\n", + " <td>-4.860669</td>\n", + " <td>-0.672665</td>\n", + " <td>0.104454</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-D</th>\n", + " <td>-3.083333</td>\n", + " <td>1.003854</td>\n", + " <td>-3.071497</td>\n", + " <td>0.006021</td>\n", + " <td>-5.177335</td>\n", + " <td>-0.989331</td>\n", + " <td>0.058608</td>\n", + " <td>False</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " coef std err t P>|t| Conf. Int. Low Conf. Int. Upp. \\\n", + "B-A -1.233333 1.003854 -1.228599 0.233484 -3.327335 0.860669 \n", + "C-A 0.950000 1.003854 0.946353 0.355263 -1.144002 3.044002 \n", + "D-A 1.266667 1.003854 1.261804 0.221537 -0.827335 3.360669 \n", + "E-A -1.816667 1.003854 -1.809693 0.085398 -3.910669 0.277335 \n", + "C-B 2.183333 1.003854 2.174952 0.041804 0.089331 4.277335 \n", + "D-B 2.500000 1.003854 2.490403 0.021673 0.405998 4.594002 \n", + "E-B -0.583333 1.003854 -0.581094 0.567669 -2.677335 1.510669 \n", + "D-C 0.316667 1.003854 0.315451 0.755687 -1.777335 2.410669 \n", + "E-C -2.766667 1.003854 -2.756046 0.012183 -4.860669 -0.672665 \n", + "E-D -3.083333 1.003854 -3.071497 0.006021 -5.177335 -0.989331 \n", + "\n", + " pvalue-hs reject-hs \n", + "B-A 0.714116 False \n", + "C-A 0.731992 False \n", + "D-A 0.714116 False \n", + "E-A 0.414682 False \n", + "C-B 0.258383 False \n", + "D-B 0.160786 False \n", + "E-B 0.813090 False \n", + "D-C 0.813090 False \n", + "E-C 0.104454 False \n", + "E-D 0.058608 False " + ] + }, + "execution_count": 937, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.t_test_pairwise('C(variety)').result_frame" + ] + }, + { + "cell_type": "markdown", + "id": "b83e6070", + "metadata": {}, + "source": [ + "We performed too many comparisons! We should have been more careful in choosing varieties of interest." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a06e55df", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "358dce7a", + "metadata": {}, + "source": [ + "# Generalized linear models" + ] + }, + { + "cell_type": "markdown", + "id": "5a8fb393", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Load the `../data/titanic_tickets.csv` data file and look at it.\n", + "\n", + "Exclude the null-fare tickets." + ] + }, + { + "cell_type": "markdown", + "id": "fa73ad1b", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1127, + "id": "e9bf82b1", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>Fare</th>\n", + " <th>Pclass</th>\n", + " <th>Embarked</th>\n", + " <th>Deck</th>\n", + " <th>Cabins</th>\n", + " <th>Passengers</th>\n", + " <th>AdultMales</th>\n", + " <th>AdultFemales</th>\n", + " <th>Children</th>\n", + " <th>SibSp</th>\n", + " <th>Parch</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>110152</th>\n", + " <td>86.500</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>2</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110413</th>\n", + " <td>79.650</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>E</td>\n", + " <td>2</td>\n", + " <td>3</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110465</th>\n", + " <td>52.000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>A</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110469</th>\n", + " <td>26.000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>C</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110489</th>\n", + " <td>26.550</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>D</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>W./C. 6608</th>\n", + " <td>34.375</td>\n", + " <td>3</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>5</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>3</td>\n", + " </tr>\n", + " <tr>\n", + " <th>W./C. 6609</th>\n", + " <td>7.550</td>\n", + " <td>3</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>W.E.P. 5734</th>\n", + " <td>61.175</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>E</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>W/C 14208</th>\n", + " <td>10.500</td>\n", + " <td>2</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>WE/P 5735</th>\n", + " <td>71.000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>929 rows × 11 columns</p>\n", + "</div>" + ], + "text/plain": [ + " Fare Pclass Embarked Deck Cabins Passengers AdultMales \\\n", + "110152 86.500 1 S B 2 3 0 \n", + "110413 79.650 1 S E 2 3 1 \n", + "110465 52.000 1 S A 2 2 2 \n", + "110469 26.000 1 S C 1 1 1 \n", + "110489 26.550 1 S D 1 1 1 \n", + "... ... ... ... ... ... ... ... \n", + "W./C. 6608 34.375 3 S NaN 1 5 2 \n", + "W./C. 6609 7.550 3 S NaN 1 1 0 \n", + "W.E.P. 5734 61.175 1 S E 1 2 1 \n", + "W/C 14208 10.500 2 S NaN 1 1 1 \n", + "WE/P 5735 71.000 1 S B 1 2 1 \n", + "\n", + " AdultFemales Children SibSp Parch \n", + "110152 3 0 0 0 \n", + "110413 2 0 1 2 \n", + "110465 0 0 0 0 \n", + "110469 0 0 0 0 \n", + "110489 0 0 0 0 \n", + "... ... ... ... ... \n", + "W./C. 6608 2 1 2 3 \n", + "W./C. 6609 1 0 0 0 \n", + "W.E.P. 5734 1 0 1 0 \n", + "W/C 14208 0 0 0 0 \n", + "WE/P 5735 1 0 1 2 \n", + "\n", + "[929 rows x 11 columns]" + ] + }, + "execution_count": 1127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('../data/titanic_tickets.csv', index_col=0)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 1128, + "id": "78c8e549", + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>Fare</th>\n", + " <th>Pclass</th>\n", + " <th>Embarked</th>\n", + " <th>Deck</th>\n", + " <th>Cabins</th>\n", + " <th>Passengers</th>\n", + " <th>AdultMales</th>\n", + " <th>AdultFemales</th>\n", + " <th>Children</th>\n", + " <th>SibSp</th>\n", + " <th>Parch</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>112050</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>A</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>112051</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>112052</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>112058</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>4</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>112059</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19972</th>\n", + " <td>0.0</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>239853</th>\n", + " <td>0.0</td>\n", + " <td>2</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>3</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>239854</th>\n", + " <td>0.0</td>\n", + " <td>2</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>239855</th>\n", + " <td>0.0</td>\n", + " <td>2</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>239856</th>\n", + " <td>0.0</td>\n", + " <td>2</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>LINE</th>\n", + " <td>0.0</td>\n", + " <td>3</td>\n", + " <td>S</td>\n", + " <td>NaN</td>\n", + " <td>1</td>\n", + " <td>4</td>\n", + " <td>4</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " Fare Pclass Embarked Deck Cabins Passengers AdultMales \\\n", + "112050 0.0 1 S A 1 1 1 \n", + "112051 0.0 1 S NaN 1 1 1 \n", + "112052 0.0 1 S NaN 1 1 1 \n", + "112058 0.0 1 S B 4 2 2 \n", + "112059 0.0 1 S B 1 1 1 \n", + "19972 0.0 1 S NaN 1 1 1 \n", + "239853 0.0 2 S NaN 1 3 3 \n", + "239854 0.0 2 S NaN 1 1 1 \n", + "239855 0.0 2 S NaN 1 1 1 \n", + "239856 0.0 2 S NaN 1 1 1 \n", + "LINE 0.0 3 S NaN 1 4 4 \n", + "\n", + " AdultFemales Children SibSp Parch \n", + "112050 0 0 0 0 \n", + "112051 0 0 0 0 \n", + "112052 0 0 0 0 \n", + "112058 0 0 0 0 \n", + "112059 0 0 0 0 \n", + "19972 0 0 0 0 \n", + "239853 0 0 0 0 \n", + "239854 0 0 0 0 \n", + "239855 0 0 0 0 \n", + "239856 0 0 0 0 \n", + "LINE 0 0 0 0 " + ] + }, + "execution_count": 1128, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df['Fare']==0]" + ] + }, + { + "cell_type": "code", + "execution_count": 1129, + "id": "9b95655a", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "df = df[df['Fare'] > 0]" + ] + }, + { + "cell_type": "markdown", + "id": "11309422", + "metadata": {}, + "source": [ + "##" + ] + }, + { + "cell_type": "markdown", + "id": "70418637", + "metadata": {}, + "source": [ + "Meaning of some columns:\n", + "* `Pclass`: 1 = first class, 2 = second class, 3 = third class\n", + "* `Cabins`: number of cabins the ticket refers to\n", + "* `Passengers`: number of passengers registered on the ticket\n", + "* `SibSp`: maximum number of siblings or spouse\n", + "* `Parch`: maximum number of parents or children\n", + "* `Embarked`: C = Cherbourg (2nd port of embarkation), Q = Queenstown (3rd), S = Southampton (1st)\n", + "* `Deck`: <img src=\"images/titanic_decks.png\" style=\"height:600px\" />\n", + "\n", + "\n", + "## Q\n", + "\n", + "Instead of the classical `Survived` variable, we will try to explain the variations in `Fare`.\n", + "\n", + "Let us first consider the first-class tickets only. In order not to loose many data, replace the missing deck information by an empty string.\n", + "\n", + "Fit a _standard_ linear model for `Fare` as response variable, using `Embarked`, `Deck`, `Cabins`, `Passengers` and `Children` as independent variables (no interaction), and print the summary tables." + ] + }, + { + "cell_type": "markdown", + "id": "1fac1025", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1130, + "id": "2e76273a", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>Fare</th>\n", + " <th>Pclass</th>\n", + " <th>Embarked</th>\n", + " <th>Deck</th>\n", + " <th>Cabins</th>\n", + " <th>Passengers</th>\n", + " <th>AdultMales</th>\n", + " <th>AdultFemales</th>\n", + " <th>Children</th>\n", + " <th>SibSp</th>\n", + " <th>Parch</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>110152</th>\n", + " <td>86.5000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>2</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110413</th>\n", + " <td>79.6500</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>E</td>\n", + " <td>2</td>\n", + " <td>3</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110465</th>\n", + " <td>52.0000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>A</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110469</th>\n", + " <td>26.0000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>C</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>110489</th>\n", + " <td>26.5500</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>D</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>PC 17759</th>\n", + " <td>63.3583</td>\n", + " <td>1</td>\n", + " <td>C</td>\n", + " <td>D</td>\n", + " <td>2</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>PC 17760</th>\n", + " <td>135.6333</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>C</td>\n", + " <td>2</td>\n", + " <td>4</td>\n", + " <td>1</td>\n", + " <td>3</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>PC 17761</th>\n", + " <td>106.4250</td>\n", + " <td>1</td>\n", + " <td>C</td>\n", + " <td>C</td>\n", + " <td>1</td>\n", + " <td>3</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>W.E.P. 5734</th>\n", + " <td>61.1750</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>E</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>WE/P 5735</th>\n", + " <td>71.0000</td>\n", + " <td>1</td>\n", + " <td>S</td>\n", + " <td>B</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " <td>1</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>1</td>\n", + " <td>2</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>182 rows × 11 columns</p>\n", + "</div>" + ], + "text/plain": [ + " Fare Pclass Embarked Deck Cabins Passengers AdultMales \\\n", + "110152 86.5000 1 S B 2 3 0 \n", + "110413 79.6500 1 S E 2 3 1 \n", + "110465 52.0000 1 S A 2 2 2 \n", + "110469 26.0000 1 S C 1 1 1 \n", + "110489 26.5500 1 S D 1 1 1 \n", + "... ... ... ... ... ... ... ... \n", + "PC 17759 63.3583 1 C D 2 2 1 \n", + "PC 17760 135.6333 1 S C 2 4 1 \n", + "PC 17761 106.4250 1 C C 1 3 1 \n", + "W.E.P. 5734 61.1750 1 S E 1 2 1 \n", + "WE/P 5735 71.0000 1 S B 1 2 1 \n", + "\n", + " AdultFemales Children SibSp Parch \n", + "110152 3 0 0 0 \n", + "110413 2 0 1 2 \n", + "110465 0 0 0 0 \n", + "110469 0 0 0 0 \n", + "110489 0 0 0 0 \n", + "... ... ... ... ... \n", + "PC 17759 1 0 0 1 \n", + "PC 17760 3 0 0 0 \n", + "PC 17761 2 0 1 0 \n", + "W.E.P. 5734 1 0 1 0 \n", + "WE/P 5735 1 0 1 2 \n", + "\n", + "[182 rows x 11 columns]" + ] + }, + "execution_count": 1130, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "firstclass = df[df['Pclass']==1]\n", + "firstclass.loc[firstclass['Deck'].isnull(), 'Deck'] = ''\n", + "firstclass" + ] + }, + { + "cell_type": "code", + "execution_count": 1131, + "id": "cb997538", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>OLS Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Fare</td> <th> R-squared: </th> <td> 0.708</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.691</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 41.43</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Prob (F-statistic):</th> <td>1.30e-40</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>01:31:39</td> <th> Log-Likelihood: </th> <td> -883.75</td>\n", + "</tr>\n", + "<tr>\n", + " <th>No. Observations:</th> <td> 182</td> <th> AIC: </th> <td> 1789.</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Residuals:</th> <td> 171</td> <th> BIC: </th> <td> 1825.</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Model:</th> <td> 10</td> <th> </th> <td> </td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> -19.9204</td> <td> 7.232</td> <td> -2.755</td> <td> 0.007</td> <td> -34.195</td> <td> -5.645</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.Q]</th> <td> -18.8295</td> <td> 32.984</td> <td> -0.571</td> <td> 0.569</td> <td> -83.937</td> <td> 46.278</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.S]</th> <td> -4.8974</td> <td> 5.068</td> <td> -0.966</td> <td> 0.335</td> <td> -14.902</td> <td> 5.107</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.A]</th> <td> 2.2387</td> <td> 8.979</td> <td> 0.249</td> <td> 0.803</td> <td> -15.485</td> <td> 19.962</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.B]</th> <td> 13.0729</td> <td> 8.040</td> <td> 1.626</td> <td> 0.106</td> <td> -2.798</td> <td> 28.944</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.C]</th> <td> 2.2798</td> <td> 7.141</td> <td> 0.319</td> <td> 0.750</td> <td> -11.817</td> <td> 16.376</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.D]</th> <td> -6.4853</td> <td> 8.296</td> <td> -0.782</td> <td> 0.435</td> <td> -22.860</td> <td> 9.890</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.E]</th> <td> -9.9150</td> <td> 9.067</td> <td> -1.093</td> <td> 0.276</td> <td> -27.813</td> <td> 7.983</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Cabins</th> <td> 14.4727</td> <td> 5.619</td> <td> 2.575</td> <td> 0.011</td> <td> 3.380</td> <td> 25.565</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Passengers</th> <td> 37.3325</td> <td> 3.851</td> <td> 9.695</td> <td> 0.000</td> <td> 29.731</td> <td> 44.934</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Children</th> <td> -43.7836</td> <td> 13.835</td> <td> -3.165</td> <td> 0.002</td> <td> -71.092</td> <td> -16.475</td>\n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <th>Omnibus:</th> <td>249.208</td> <th> Durbin-Watson: </th> <td> 2.125</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Prob(Omnibus):</th> <td> 0.000</td> <th> Jarque-Bera (JB): </th> <td>23662.431</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Skew:</th> <td> 5.611</td> <th> Prob(JB): </th> <td> 0.00</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Kurtosis:</th> <td>57.721</td> <th> Cond. No. </th> <td> 37.6</td> \n", + "</tr>\n", + "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified." + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Fare R-squared: 0.708\n", + "Model: OLS Adj. R-squared: 0.691\n", + "Method: Least Squares F-statistic: 41.43\n", + "Date: Mon, 26 Sep 2022 Prob (F-statistic): 1.30e-40\n", + "Time: 01:31:39 Log-Likelihood: -883.75\n", + "No. Observations: 182 AIC: 1789.\n", + "Df Residuals: 171 BIC: 1825.\n", + "Df Model: 10 \n", + "Covariance Type: nonrobust \n", + "====================================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------------\n", + "Intercept -19.9204 7.232 -2.755 0.007 -34.195 -5.645\n", + "C(Embarked)[T.Q] -18.8295 32.984 -0.571 0.569 -83.937 46.278\n", + "C(Embarked)[T.S] -4.8974 5.068 -0.966 0.335 -14.902 5.107\n", + "C(Deck)[T.A] 2.2387 8.979 0.249 0.803 -15.485 19.962\n", + "C(Deck)[T.B] 13.0729 8.040 1.626 0.106 -2.798 28.944\n", + "C(Deck)[T.C] 2.2798 7.141 0.319 0.750 -11.817 16.376\n", + "C(Deck)[T.D] -6.4853 8.296 -0.782 0.435 -22.860 9.890\n", + "C(Deck)[T.E] -9.9150 9.067 -1.093 0.276 -27.813 7.983\n", + "Cabins 14.4727 5.619 2.575 0.011 3.380 25.565\n", + "Passengers 37.3325 3.851 9.695 0.000 29.731 44.934\n", + "Children -43.7836 13.835 -3.165 0.002 -71.092 -16.475\n", + "==============================================================================\n", + "Omnibus: 249.208 Durbin-Watson: 2.125\n", + "Prob(Omnibus): 0.000 Jarque-Bera (JB): 23662.431\n", + "Skew: 5.611 Prob(JB): 0.00\n", + "Kurtosis: 57.721 Cond. No. 37.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", + "\"\"\"" + ] + }, + "execution_count": 1131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = smf.ols('Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children', firstclass).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c4a0a71", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "dad27a5a", + "metadata": {}, + "source": [ + "##\n", + "\n", + "You may notice several issues, including the non-normality of the residuals, with high skewness and kurtosis.\n", + "\n", + "If you defined all variables as categorical, you may also be warned about multicollinearity.\n", + "\n", + "## Q\n", + "\n", + "Print the residuals as a function of the predicted values." + ] + }, + { + "cell_type": "markdown", + "id": "ee4d4394", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1132, + "id": "a82a7b4a", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGwCAYAAACjPMHLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYvklEQVR4nO3deVhU5eIH8O+wzMAAMwjDmmgYppJiqF0jt0pySSvLumVWml77adiiZUq3rOwWZrfVFm/d61KP2q1MS69apomiaGkQikqgKCgMmzLDOgPM+f2BczwDwyowC9/P88yTnHPmzHveDnO+vO973iMTBEEAEREREQEAXGxdACIiIiJ7wnBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQk4WbrAjgak8mEvLw8+Pj4QCaT2bo4RERE1AqCIKCsrAyhoaFwcWm+bYjhqI3y8vIQFhZm62IQERFRO+Tm5qJnz57NbsNw1EY+Pj4A6itXpVLZuDRERETUGnq9HmFhYeJ1vDkMR21k7kpTqVQMR0RERA6mNUNiOCCbiIiISILhiIiIiEiC4YiIiIhIguGIiIiISILhiIiIiEiC4YiIiIhIguGIiIiISILhiIiIiEiC4YiIiIhIguGIiIiISIKPDyEiciC6SiOKy43QV9dA5ekOjZccaqXc1sUicioMR0REDiKvtAqLN6Vhf2axuGx0Xw2WT41CqK+nDUtG5FzYrUZE5AB0lcZGwQgA9mUWY8mmNOgqjTYqGZHzYTgiInIAxeXGRsHIbF9mMYrLGY6IOgrDERGRA9BX1zS7vqyF9UTUegxHREQOQOXh3ux6nxbWE1HrMRwRETkAjbcco/tqrK4b3VcDjTfvWCPqKAxHREQOQK2UY/nUqEYBaXRfDd6aGsXb+Yk6EG/lJyJyEKG+nlg5LRrF5UaUVdfAx8MdGm/Oc0TU0RiOiIgciFrJMETU2RymW+3TTz9FVFQUVCoVVCoVYmJisGPHDnF9dXU14uLi4O/vD29vb0ydOhUFBQUW+8jJycGkSZOgVCoRGBiIRYsWoba2tqsPhYiIiOyYw4Sjnj17Yvny5Th69CiOHDmC22+/Hffccw/S09MBAAsWLMDWrVvxzTffIDExEXl5ebjvvvvE99fV1WHSpEkwGo04ePAg1q1bh7Vr12Lp0qW2OiQiIiKyQzJBEARbF6K9/Pz88Pbbb+P+++9HQEAANmzYgPvvvx8AcOrUKQwYMADJycm4+eabsWPHDkyePBl5eXkICgoCAKxatQqLFy9GUVER5PLWNVPr9Xqo1WrodDqoVKpOOzYiIiLqOG25fjtMy5FUXV0dvvrqK1RUVCAmJgZHjx5FTU0NYmNjxW369++PXr16ITk5GQCQnJyMQYMGicEIAMaPHw+9Xi+2PlljMBig1+stXkREROS8HCocHTt2DN7e3lAoFJg7dy42b96MyMhIaLVayOVy+Pr6WmwfFBQErVYLANBqtRbByLzevK4pCQkJUKvV4issLKxjD4qIiIjsikOFo379+iE1NRWHDx/GvHnzMGPGDJw4caJTPzM+Ph46nU585ebmdurnERERkW051K38crkcERERAIChQ4fit99+wwcffIAHH3wQRqMRpaWlFq1HBQUFCA4OBgAEBwfj119/tdif+W428zbWKBQKKBSKDj4SIiIislcO1XLUkMlkgsFgwNChQ+Hu7o7du3eL6zIyMpCTk4OYmBgAQExMDI4dO4bCwkJxm127dkGlUiEyMrLLy05ERET2yWFajuLj4zFx4kT06tULZWVl2LBhA/bu3Ysff/wRarUas2fPxsKFC+Hn5weVSoWnnnoKMTExuPnmmwEA48aNQ2RkJB599FGsWLECWq0WL730EuLi4tgyRERERCKHCUeFhYV47LHHkJ+fD7VajaioKPz444+44447AADvvfceXFxcMHXqVBgMBowfPx6ffPKJ+H5XV1ds27YN8+bNQ0xMDLy8vDBjxgwsW7bMVodEREREdsih5zmyBc5zRERE5Hicfp4jIiIios7CcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCTBcEREREQkwXBEREREJMFwRERERCThMOEoISEBN910E3x8fBAYGIgpU6YgIyPDYptbb70VMpnM4jV37lyLbXJycjBp0iQolUoEBgZi0aJFqK2t7cpDISIiIjvmZusCtFZiYiLi4uJw0003oba2Fi+++CLGjRuHEydOwMvLS9xuzpw5WLZsmfizUqkU/11XV4dJkyYhODgYBw8eRH5+Ph577DG4u7vjzTff7NLjISIiIvskEwRBsHUh2qOoqAiBgYFITEzE6NGjAdS3HN144414//33rb5nx44dmDx5MvLy8hAUFAQAWLVqFRYvXoyioiLI5fIWP1ev10OtVkOn00GlUnXY8RAREVHnacv122G61RrS6XQAAD8/P4vl69evh0ajwcCBAxEfH4/KykpxXXJyMgYNGiQGIwAYP3489Ho90tPTrX6OwWCAXq+3eBEREZHzcphuNSmTyYRnn30WI0aMwMCBA8XlDz/8MHr37o3Q0FCkpaVh8eLFyMjIwHfffQcA0Gq1FsEIgPizVqu1+lkJCQl47bXXOulIiIiIyN44ZDiKi4vD8ePHkZSUZLH8iSeeEP89aNAghISEYOzYsTh9+jSuu+66dn1WfHw8Fi5cKP6s1+sRFhbWvoITERGR3XO4brX58+dj27Zt+OWXX9CzZ89mtx0+fDgAICsrCwAQHByMgoICi23MPwcHB1vdh0KhgEqlsngRERGR83KYcCQIAubPn4/Nmzdjz549CA8Pb/E9qampAICQkBAAQExMDI4dO4bCwkJxm127dkGlUiEyMrJTyk1ERESOxWG61eLi4rBhwwZ8//338PHxEccIqdVqeHp64vTp09iwYQPuvPNO+Pv7Iy0tDQsWLMDo0aMRFRUFABg3bhwiIyPx6KOPYsWKFdBqtXjppZcQFxcHhUJhy8MjIiIiO+Ewt/LLZDKry9esWYOZM2ciNzcXjzzyCI4fP46KigqEhYXh3nvvxUsvvWTRFXbu3DnMmzcPe/fuhZeXF2bMmIHly5fDza11OZG38hMRETmetly/HSYc2QuGIyIiIsfTLeY5IiIiIuoMDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxHRERERBIMR0REREQSDEdEREREEgxH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\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# data to plot\n", + "residuals = pd.DataFrame({'Residual': model.resid, 'Predicted value': model.predict()})\n", + "# scatter plot\n", + "ax = sns.scatterplot(residuals, y='Residual', x='Predicted value')\n", + "# zero line\n", + "ax.axhline(0, linestyle=':', linewidth=1);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a280776d", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "18b74226", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "We have a clear case of heteroscedasticity, as could be expected from some statistics in the summary tables.\n", + "\n", + "Before we move to a generalized linear model, let us try to improve the current model removing outliers.\n", + "Plot the Cook's distance for each ticket. Remove the outlier(s) and fit the model again." + ] + }, + { + "cell_type": "markdown", + "id": "25e159b6", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1136, + "id": "92bc8372", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "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SnkHUBby8/Px8uVLmJmZFVgnKysLWVlZ8uGUlBRNhEZERETvsAp5q/Ft/e9//0NqaiqGDh1aYJ1ly5bB1NRU/rG1tdVghERERPQuqnSJl5+fHxYtWoQ9e/agTp06BdabO3cukpOT5Z+YmBgNRklERETvokp1q3HXrl0YN24c9u7dCzc3t0LrGhgYwMDAQEOREREREVWiK147d+6Et7c3du7ciY8++qi8wyEiIiJSUiGveKWmpuLevXvy4aioKISGhsLMzAz16tXD3Llz8fjxY/z2228ApLcXvby88OOPP8LZ2RlxcXEAACMjI5iampbLOhARERG9qUJe8bp+/TocHR3h6OgIAJg5cyYcHR3lXUPExsbi4cOH8vo///wzcnNzMWXKFFhZWck/06dPL5f4iYiIiFSp8P14aYq29QNCRERE2nf+rpBXvIiIiIgqIyZeRERERBrCxIuIiIhIQ5h4EREREWkIEy8iIiIiDWHiRURERKQhTLyIiIiINISJFxEREZGGMPEiIiIi0hAmXkREREQawsSLiIiISEOYeBERERFpCBMvIiIiIg1h4kVERESkIUy8iIiIiDSEiRcRERGRhjDxIiIiItIQJl5EREREGsLEi4iIiEhDmHgRERERaQgTLyIiIiINYeJFREREpCFMvIiIiIg0hIkXERERkYYw8SIiIiLSECZeRERERBrCxIuIiIhIQ5h4EREREWkIEy8iIiIiDWHiRURERKQhTLyIiIiINISJFxEREZGGMPEiIiIi0hAmXkREREQawsSLiIiISEOYeBERERFpCBMvIiIiIg1h4kVERESkIUy8iIiIiDSEiRcRERGRhjDxIiIiItKQCpl4nTt3Dv369YO1tTUkEgn++OOPIqc5c+YM2rZtCwMDAzRq1Ajbtm0r8ziJiIiISqJCJl5paWlo3bo11q5dW6z6UVFR+Oijj9CjRw+EhobiP//5D8aNG4djx46VcaRERERExVelvANQpW/fvujbt2+x62/YsAH29vb4/vvvAQDNmjXDhQsX8MMPP6B3795lFSYRERFRiVTIK14lFRgYCDc3N4Wy3r17IzAwsMBpsrKykJKSovAhIiIiKkuVIvGKi4uDhYWFQpmFhQVSUlKQkZGhcpply5bB1NRU/rG1tdVEqERERPQOqxSJlzrmzp2L5ORk+ScmJqa8QyIiIqJKrkK28SopS0tLPH36VKHs6dOnMDExgZGRkcppDAwMYGBgoInwiIiIiABUkiteLi4uOHXqlELZiRMn4OLiUk4RERERESmrkIlXamoqQkNDERoaCkDaXURoaCgePnwIQHqb0NPTU15/4sSJiIyMxBdffIGwsDCsW7cOe/bswYwZM8ojfCIiIiKVKmTidf36dTg6OsLR0REAMHPmTDg6OmLhwoUAgNjYWHkSBgD29vY4cuQITpw4gdatW+P777/HL7/8wq4kiIiIqEKRCCFEeQdREaSkpMDU1BTJyckwMTEp73CIiIioGLTt/F0hr3gRERERVUZv9VRjSkoKduzYgUuXLuHZs2fo2bMnvvjiCwBAREQEoqOj0bVrVxgaGpZKsERERETaTO3E6/jx4xgxYgRevHgBIQQkEglsbGzk48PDwzFgwADs3LkTQ4cOLZVgiYiIiLSZWrca79y5g4EDByI5ORmTJk3C7t278WZTsd69e8PY2BgHDx4slUCJiIiItJ1aV7yWLl2KzMxM7N27F4MGDQIADBs2TKGOvr4+2rRpgxs3brx9lERERESVgFpXvAICAtC6dWt50lWQunXrIjY2Vq3AiIiIiCobtRKvZ8+ewcHBoch6ubm5SEtLU2cRRERERJWOWomXqakpHj9+XGS9yMhI1KlTR51FEBEREVU6aiVebdu2RVBQkELv8W+6desWbty4AWdnZ7WDIyIiIqpM1Eq8xo0bh8zMTHh4eCAuLk5pfEJCAsaNGwchBMaNG/fWQRIRERFVBmolXkOGDMEnn3yCwMBANGzYEL169QIAXLx4Ee7u7mjQoAGuXr2KESNG8H2JRERERP9S+12NeXl5WLhwIVatWoWMjAyFcfr6+pg2bRqWL18OXV3dUgm0rGnbu56IiIhI+87fb/2S7BcvXiAgIACRkZHIz8+Hra0tevbsqXWN6rVtxxEREZH2nb/f6l2NAFCzZs0i+/MiIiIiIjXbeBERERFRyamVeO3cuRMNGjSAv79/gXX8/f3RoEED7Nu3T+3giIiIiCoTtROvpKQkuLq6FlinR48eePHiBXx9fdUOjoiIiKgyUSvxunnzJlq1agV9ff0C6xgYGKB169Z8STYRERHRv9RKvOLi4mBjY1NkPRsbG5UdrBIRERG9i9RKvIyNjZGYmFhkvcTExEKvihERERG9S9RKvN577z1cvHgRz58/L7DO8+fPceHCBTRt2lTt4IiIiIgqE7USr8GDByMtLQ2jRo1Cenq60viMjAyMHj0aGRkZGDJkyFsHSURERFQZqNVzfUZGBtq1a4ewsDBYWVlhxIgR8itbYWFh2LlzJ548eYImTZrg+vXrMDY2LvXAS5u29XxLRERE2nf+VvuVQY8ePcLAgQMRFBQEiUSiME4IAUdHRxw4cAD16tUrlUDLmrbtOCIiItK+87farwyqW7curl69ikOHDsHf3x8PHjwAANSrVw99+vSBu7u7UkJGRERE9C5765dkVxbaljETERGR9p2/+a5GIiIiIg1R+1ajTF5eHhITE5GZmVlgHW1p50VERERUltROvK5du4aFCxfi7NmzyMrKKrCeRCJBbm6uuoshIiIiqjTUSrwuX74MV1dX+VWumjVrasV9VSIiIqLypFbi5ePjg8zMTIwZMwbffPMNLCwsSjsuIiIiokpHrcTrypUraNKkCTZt2sQuI4iIiIiKSa2nGnNzc9GmTRsmXUREREQloFbi1bRpUyQkJJR2LERERESVmlqJ14QJE3D+/Hncv3+/tOMhIiIiqrTUTrw8PDzwwQcf4OjRo8jLyyvtuIiIiIgqHbUa1zdo0AAAEB0djX79+qFKlSqwsrKCjo5yHieRSHhljIiIiAhqJl7R0dHy70II5OTk4OHDhyrrsgE+ERERkZRaiVdUVFRpx0FERERU6amVeNWvX7+04yAiIiKq9NRqXE9EREREJVdhE6+1a9fCzs4OhoaGcHZ2xtWrVwutv2rVKjRp0gRGRkawtbXFjBkz5O+SJCIiIqoI1LrVKPP7779j7969CA8PR0pKCoQQSnXUeapx9+7dmDlzJjZs2ABnZ2esWrUKvXv3Rnh4OOrUqaNU38/PD3PmzMGWLVvQqVMnRERE4NNPP4VEIsHKlSvVXj8iIiKi0iQRqrKlIgghMHToUOzfv19lsgVIEy4hBCQSSYn7+XJ2dkb79u2xZs0aAEB+fj5sbW0xbdo0zJkzR6n+1KlTcefOHZw6dUpeNmvWLFy5cgUXLlwo1jJTUlJgamqK5ORkmJiYlCheIiIiKh/adv5W61bjpk2b8Pvvv6NVq1Y4duwYBg0aBIlEgvDwcBw+fBjDhg0DAMyfPx+RkZElmnd2djaCgoLg5ub2KkgdHbi5uSEwMFDlNJ06dUJQUJD8dmRkZCSOHj2KDz/8UJ3VIyIiIioTat1q3L59OwwMDPDXX3/B0tISfn5+AIDGjRujcePG+PDDD9GjRw9MnjwZ3bt3L9FTkAkJCcjLy4OFhYVCuYWFBcLCwlROM2LECCQkJOD999+HEAK5ubmYOHEivvzyywKXk5WVhaysLPlwSkpKsWMkIiIiUodaV7xu3boFFxcXWFpaAnjVSerrtx0nTJgABwcHrFixohTCLNyZM2ewdOlSrFu3DsHBwdi/fz+OHDmCr7/+usBpli1bBlNTU/nH1ta2zOMkIiKid5taiVdGRgasrKzkwwYGBgCUrxq1adMG169fL9G8a9WqBV1dXTx9+lSh/OnTp/JE700LFizA6NGjMW7cOLRs2RIDBw7E0qVLsWzZMuTn56ucZu7cuUhOTpZ/YmJiShQnERERUUmplXhZWFjg2bNn8mHZk4b37t1TqPf8+fMSd+mgr68PJycnhYby+fn5OHXqFFxcXFROk56ervSeSF1dXQAosPG/gYEBTExMFD5EREREZUmtxKtRo0YKjebbt28PIQQ2bNggL7tz5w7OnDmDhg0blnj+M2fOxKZNm/Drr7/izp07mDRpEtLS0uDt7Q0A8PT0xNy5c+X1+/Xrh/Xr12PXrl2IiorCiRMnsGDBAvTr10+egBERERGVN7Ua1/fq1Qtffvklbt++jebNm6NXr16wtbXFli1bEBoainr16uHUqVPIycmBp6dniec/bNgwPHv2DAsXLkRcXBzatGkDf39/eYP7hw8fKlzhmj9/PiQSCebPn4/Hjx+jdu3a6NevH7755ht1Vo+IiIioTKjVj9fDhw+xfft29OnTB05OTgCAy5cvY8CAAYiPj5fX69+/P/bt26cVV520rR8QIiIi0r7zt1qJV0EyMjJw7tw5PH/+HM2aNUObNm1Ka9ZlTtt2HBEREWnf+futXhn0JiMjI/Tu3bs0Z0lERERUaajVuN7V1RXfffddkfX+97//wdXVVZ1FEBEREVU6al3xOnPmDOzs7IqsFx4ejrNnz6qzCCIiIqJKR60rXsWVk5Oj1L8WERER0buqTLOiv//+G+bm5mW5CCIiIiKtUexbjWPGjFEYvnDhglKZTG5uLm7fvo3Q0FC4u7u/XYRERERElUSxu5N4/ZahRCIp8FU8r7O2tsbx48fRvHlz9SPUEG17HJWIiIi07/xd7CteW7duBSB99+GYMWPw/vvvY+zYsSrr6uvro27duujYsSP09PRKJ1IiIiIiLadWB6p2dnYYOnRosbqU0BbaljETERGR9p2/1epOIjo6upTDICIiIqr8SrXnegCIiorCzZs3Ub9+fa16ZRARERFRWVOrO4k///wTgwYNwtWrVxXKV6xYAQcHBwwaNAhOTk4FPvVIRERE9C5SK/H67bff4O/vj2bNmsnLwsLCMGfOHAgh0Lp1axgbG+PXX3/FoUOHSi1YIiIiIm2mVuIVEhKC1q1bo3r16vIyX19fAMC6desQHByMa9euQVdXFz///HPpREpERESk5dRKvBISEmBjY6NQdubMGRgZGeHTTz8FADRt2hTvv/8+/vnnn7cOkoiIiKgyUCvxyszMhK6urnw4Ly8PwcHBcHZ2hr6+vrzc2toacXFxbx8lERERUSWgVuJVp04d3L17Vz58+fJlZGRkoHPnzgr1MjIyULVq1beLkIiIiKiSUCvx6tSpE27cuIFdu3YhOTkZS5cuhUQigZubm0K9O3fuwNraulQCJSIiItJ2aiVes2fPRpUqVTBy5EiYmZnhr7/+Qtu2bdG1a1d5nZiYGISFhaF9+/alFiwRERGRNlMr8Wrbti2OHj2Kbt26oVmzZvj0009x+PBhhTp79uyBqakpevbsWSqBEhEREWk7td7VWBlp27ueiIiISPvO32pd8SIiIiKikmPiRURERKQhxXpJtqurKyQSCX799VfUrVsXrq6uxV6ARCLBqVOn1A6QiIiIqLIoVuJ15swZSCQSpKeny4eLSyKRqBUYERERUWVTrMQrICAAAFCvXj2FYSIiIiIqPj7V+C9teyqCiIiItO/8zcb1RERERBrCxIuIiIhIQ4rVxmvMmDFqL0AikWDz5s1qT09ERERUWRSrjZeOjuoLY7InFt+cxevlEokEeXl5bxtnmdO2e8RERESkfefvYl3x2rp1q1LZtWvXsG7dOlhaWmLo0KGwt7cHAERHR2Pv3r148uQJJk+ezJdkExEREf1Lracab926hQ4dOmDMmDH4/vvvYWBgoDA+Ozsbs2bNwpYtW3D58mW0bNmy1AIuK9qWMRMREZH2nb/VSryGDBmCkJAQ3L17t8DbkPn5+WjcuDHatGmD33///a0DLWvatuOIiIhI+87faj3VeO7cOTg7OxeYdAHSdmHOzs44f/682sERERERVSZqJV4vX77Eixcviqz34sULpKamqrMIIiIiokpHrcSrUaNGOHPmDCIiIgqsEx4ejoCAADRs2FDt4IiIiIgqE7USr7FjxyIrKwvdu3fHpk2b5C/PBoD09HT88ssv6NmzJ3JycjB27NhSC5aIiIhIm6nVuD4vLw9DhgzBwYMH5X121apVCwCQkJAAQNqHl7u7O/bv319oW7CKQtsa5xEREZH2nb/Vyoh0dXWxf/9+rF69Gg0aNIAQAs+ePcOzZ88ghIC9vT1++uknHDhwQCuSLiIiIiJNUDsrkkgkmDJlCu7evYtHjx7h8uXLuHz5MmJiYnDv3j1MnTpVfjVMHWvXroWdnR0MDQ3h7OyMq1evFlo/KSkJU6ZMgZWVFQwMDODg4ICjR4+qvXwiIiKi0lasnuuLYm1tDWtr69KYFQBg9+7dmDlzJjZs2ABnZ2esWrUKvXv3Rnh4OOrUqaNUPzs7Gx988AHq1KmDffv2wcbGBg8ePECNGjVKLSYiIiKit6VWG6+y5uzsjPbt22PNmjUApJ2x2traYtq0aZgzZ45S/Q0bNmDFihUICwuDnp6eWsvUtnvEREREpH3n7wrXACs7OxtBQUFwc3OTl+no6MDNzQ2BgYEqp/nzzz/h4uKCKVOmwMLCAi1atMDSpUu14uXcRERE9O4olVuNpSkhIQF5eXmwsLBQKLewsEBYWJjKaSIjI3H69GmMHDkSR48exb179zB58mTk5OTAx8dH5TRZWVnIysqSD6ekpJTeShARERGpUOGueKkjPz8fderUwc8//wwnJycMGzYM8+bNw4YNGwqcZtmyZTA1NZV/bG1tNRgxERERvYsqXOJVq1Yt6Orq4unTpwrlT58+haWlpcpprKys4ODgAF1dXXlZs2bNEBcXh+zsbJXTzJ07F8nJyfJPTExM6a0EERERkQoVLvHS19eHk5MTTp06JS/Lz8/HqVOn4OLionKazp074969e8jPz5eXRUREwMrKCvr6+iqnMTAwgImJicKHiIiIqCxVuMQLAGbOnIlNmzbh119/xZ07dzBp0iSkpaXB29sbAODp6Ym5c+fK60+aNAnPnz/H9OnTERERgSNHjmDp0qWYMmVKea0CERERkZJSb1yfkZGBiIgI1K1bF+bm5mrNY9iwYXj27BkWLlyIuLg4tGnTBv7+/vIG9w8fPlToEd/W1hbHjh3DjBkz0KpVK9jY2GD69OmYPXt2qawTERERUWlQqx+v8+fP48CBA/Dy8kLr1q3l5X5+fvi///s/pKenQ1dXF/Pnz8fChQtLNeCyom39gBAREZH2nb/VSrxGjx6N3bt348mTJ/KXY8fExKBx48bIzs5GjRo1kJSUBIlEgtOnT6Nbt26lHnhp07YdR0RERNp3/larjdeVK1fQunVredIFANu3b0d2dja++uorPH/+HGfPngUArFu3rnQiJSIiItJyaiVeCQkJqFu3rkLZ6dOnoa+vj5kzZwIAunTpgo4dOyIkJOTtoyQiIiKqBNRKvFJTU2FkZCQfFkLg2rVraNeuHapVqyYvt7Ozw5MnT94+SiIiIqJKQK3Ey8zMDNHR0fLhkJAQvHz5Ep06dVKol5OTU2A/WkRERETvGrUSr/bt2+Pq1avyl1b/+OOPkEgkcHV1Vah39+5dWFlZvX2URERERJWAWonX9OnTIYTA+++/DzMzM+zYsQMNGjRAr1695HUSEhLw999/w9HRsdSCJSIiItJmaiVebm5u2LJlC+rXr4/s7Gx069YNhw4dUujUdPv27cjPz9eKriSIiIiINEGtfryKIyMjA9nZ2ahWrZrCy6srKm3rB4SIiIi07/xd6q8MkjEyMlJ48pGIiIjoXVchX5JNREREVBkV64rXmDFjlMokEgk2b95c6gERERERVVbFauP1eqN5+YQSCfLy8sokqPKgbfeIiYiISPvO38W64hUQEFDWcRARERFVesVKvNglBBEREdHbU6txfU5OTrHrRkZGqrMIIiIiokpHrcTL09OzWPUePXoENzc3dRZBREREVOmolXjt3r0bX375ZaF14uPj4ebmhgcPHqgVGBEREVFlo1bi1bFjR3z77bf45ZdfVI5PSkpCr169EBERgUmTJr1VgERERESVhVqJ159//gl7e3tMnjwZx48fVxiXlpaGvn374ubNm/D09MSaNWtKJVCN+eefV99v3wZiYqTfMzOB4GDg5Uvp8NOnwI0br+qGhwOyq3s5OdK6ycnS4WfPgJCQV3Xv3gWioqTf8/KkdV+8kA4nJkqHZb183L8v/QDSsuBgaR1AOk1wsHQegHSed+++Wk5IiHTZgDSW4GBpbIA01vDwV3Vv3JCuEyBdx+Bg6ToD0m1w+/arun//DcTGSr+npUnrZmRIhx8/VtyG//wDPHok/Z6RIa2bmiodjo0Fbt58VffOHeDhQ+n3rCxp3ZSUV9s7NPRV3fBwIDpa+l22vZOSpMPPnkmHZe7eBWRtDWXb+/lz6fDz59Lh/HzpcGQkcO/eq2mDg4GEBOl32fbOzZUOR0UBERGv6oaGAvHx0u8pKdK62dnS4YcPgbCwV3Vv3gTi4qTfU1MVt/ejR4rb+9Yt4MkT6ff0dGnd9HTp8JMn0vEyt2+/2t6yY1a2vePiFLd3WNir7Z2drbi94+MVt3dExKtjNjdX8ZhNSFDc3vfuvdre+fmqt7fsmI2MVDxmg4NfHbNJSYrHbHS04jEbGvrqmJVt76ws6fDDh9LjSebmzVfHrGx7y47ZR4+Uj9nHj6XfZcdsWpp0ODZWevzL8DdCOszfCOl3/kZIv5fXb4S2EGoKDw8XZmZmwtTUVNy8eVMIIURGRobo3r27kEgkYsiQISI/P1/d2WtccnKyACCSraxeFbZsKcS0adLvd+8KAQgRECAd/u47IWrWfFW3Y0chxo6Vfn/yRFr38GHp8Jo1Qujrv6rbs6cQw4fLFiytu2ePdHjrVulwTo50uF8/6UcIaRkgrSOEdBpAOg8hpPPs2fPVcvT1pcsWQhoLII1NCGmsHTu+qluzpnSdhJCuIyBdZyGk26Bly1d1bWyE8PGRfr96VVr3xg3p8Jw5QjRs+Kqug4MQn38u/X7rlrTupUvS4a+/FsLS8lVdR0chJk+Wfo+KktY9cUI6/P33QlSv/qpu585CeHlJv8fHS+sePCgd3rBBCF3dV3V79RJiyBDp99RUaV0/P+nw9u3S4cxM6fDAgUJ8+OGraQEhNm2Sfv/9d+lwYqJ0eORIIbp1e1XX2FiIH3+Ufvf3l9aNiZEOT5ggRLt2r+rWqiXE0qXS7+fPS+uGhUmHZ8wQonnzV3Xr1xdi3jzp96Agad2gIOnwvHnS8TLNm0unF0I6P0A6fyGky6tV61Xddu2kcQkhjROQxi2EdD2MjV/V7dZNur5CSNcfkG4PIaTb5/Wfkg8/lG5HIaTbFZBuZyGk2x2Q7gchpPulV69X0+rqSvefENL9CUj3rxDS/d2586u61atLjwshpMcJID1uhJAeR46Or+paWkqPNyGkxx8gPR6FkB6fDg6v6jZsKD2OhZAe14D0OBdCetzb2Lyqy98I6TB/I6Tf+Rsh/a7h34jk+/el52/ZcV7BqZ14CSHEuXPnhKGhobC1tRWRkZHiww8/FBKJRPTp00fkyH4UtIQ88ZL9wQshxD//CPHwofR7Rob0QE5JkQ7HxQkRGvqqbliYENHR0u/Z2dK6SUnS4fh4IYKDX9WNiBAiMlL6PTdXWvf5c+lwQoJ0WJa03rsn/QghLQsKktYRQjpNUJB0HkJI5xkR8Wo5wcGvTlpJSdK62dnS4ejoV3/EQkjXJS5O+j0lRVo3I0M6/PChdFvI3Lz56sc5NVVaNz1dOvzo0asTmhDS77IflvR0ad2XL6XDT568+jEWQojbt4V48ED6PTNTWlf2hxQXJ0RIyKu6YWGvTrKy7f3ihXQ4Pv7Vj44Q0m1y/770u2x7y34YExOlw3l50uH791+dTISQjnv2TPpdtr1lx3ZkpBDh4a/qhoQI8fSp9HtysrRuVpZ0+MEDIe7ceVX3xg0hYmOl31++VNzeMTGK2/vvv4V4/Fj6PS1NWjctTTr8+LF0vMw//7za3rJjVra9Y2MVt/edO6+2d1aW4vZ++lRxe4eHvzpmc3IUj9lnzxS39927r7Z3Xp7q7S07Zu/fVzxmg4JeHbMvXiges1FRisdsSMirY1a2vWUnxwcPpMeTzI0br45Z2faWHbMxMcrH7KNH0u+yY1Z2EnjyRHr8y/A3QjrM3wjpd/5GSL9r+DciOSFBqxKvYvVcX5idO3di1KhRMDQ0REZGBrp06QJ/f3+te0G2tvV8S0RERNp3/n7rl2R7eHhgyZIlyMjIQPv27XHkyBGtS7qIiIiINKFYPde7uroWWUdPTw85OTlwd3dXKJdIJDh16pR60RERERFVIsVKvM6cOVOsmYW+/oTDvyQSSUniISIiIqq0+JJsIiIiIg3hS7KJiIiINOStG9cTERERUfEU64pXYZ48eYKzZ8/i8b89PdvY2KBr166wsbF56+CIiIiIKhO1E6/k5GRMnToVu3btQr7sVQr/0tHRgYeHB1avXg1TU9O3DpKIiIioMlAr8crMzISbmxuCg4MhhEDr1q3RsGFDAEBkZCRCQ0Ph6+uLsLAwnD9/HgYGBqUaNBEREZE2UquN1+rVqxEUFARHR0dcv34dISEh2LdvH/bt24fg4GAEBQXByckJQUFBWL16dWnHTERERKSV1HplULt27XDv3j3cv38f5ubmKuskJCSgUaNGaNSoEa5fv/7WgZY1bXvlABEREWnf+VutK14RERHo0aNHgUkXANSqVQs9evRAeHi42sERERERVSZqJV55eXnQ09Mrsp6enp5Sw3siIiKid5VaiZe9vT3OnTuHjIyMAutkZGTg3LlzsLe3Vzs4IiIiospErcTL3d0d8fHxGDlyJJ49e6Y0/tmzZ/JxAwYMeNsYiYiIiCoFtRrXv3jxAo6OjoiJiYGxsTH69Okjv7IVGRkJf39/ZGRkoH79+ggODkaNGjVKO+5Sp22N84iIiEj7zt9q9eNVs2ZNBAQEwMPDA1evXsXvv/8OiUQCAJDlcc7OzvDz89OKpIuIiIhIE9Tuud7e3h6XL1/GxYsXcebMGYVXBnXv3h2dO3cutSCJiIiIKgO1bjVqytq1a7FixQrExcWhdevWWL16NTp06FDkdLt27YKHhwf69++PP/74o1jL0rZLlURERKR952+1Gtdrwu7duzFz5kz4+PggODgYrVu3Ru/evREfH1/odNHR0fj888/RpUsXDUVKREREVDxvlXglJiZi+fLl6N27N1q0aIEWLVqgd+/e+Pbbb5GYmPhWga1cuRLjx4+Ht7c3mjdvjg0bNsDY2BhbtmwpcJq8vDyMHDkSixYtQoMGDd5q+URERESlTe02XsePH4eHhweSkpLw+t3K27dv4+TJk1ixYgX8/PzQq1evEs87OzsbQUFBmDt3rrxMR0cHbm5uCAwMLHC6xYsXo06dOhg7dizOnz9f4uUSERERlSW1Eq+7d+9i0KBBSE9PR6tWreDt7Y2GDRsCkHYnsW3bNoSGhmLQoEEICQlB48aNSzT/hIQE5OXlwcLCQqHcwsICYWFhKqe5cOECNm/ejNDQ0GItIysrC1lZWfLhlJSUEsVIREREVFJq3Wpcvnw50tPT8dVXXyE0NBTTp0/Hxx9/jI8//hifffYZgoODsWjRIqSnp+Pbb78t7ZiVvHz5EqNHj8amTZtQq1atYk2zbNkymJqayj+2trZlHCURERG969R6qtHOzg5GRka4c+dOofWaNWuGjIwMREdHl2j+2dnZMDY2xr59+xR6vvfy8kJSUhIOHjyoUD80NBSOjo7Q1dWVl8neEamjo4Pw8HD5FTkZVVe8bG1tteapCCIiInpHnmqMi4tD27Zti6zXtm1bxMXFlXj++vr6cHJywqlTp+Rl+fn5OHXqFFxcXJTqN23aFH///TdCQ0PlH3d3d/To0QOhoaEqr2YZGBjAxMRE4UNERERUltRq41W1atUiu3UAgPj4eFStWlWdRWDmzJnw8vJCu3bt0KFDB6xatQppaWnw9vYGAHh6esLGxgbLli2DoaEhWrRooTC9rMf8N8uJiIiIyotaiVebNm1w7tw5/P3332jZsqXKOjdv3sTZs2fV7k9r2LBhePbsGRYuXIi4uDi0adMG/v7+8gb3Dx8+hI5Ohe2GjIiIiEiJWm28du3ahREjRqB27drw8fGBp6cnqlWrBgBITU3Ftm3b8PXXXyMhIQF+fn4YNmxYqQde2rTtHjERERFp3/lb7VcGeXl5Yfv27fKXY5ubmwOAvONUIQQ8PT2xbdu20om0jGnbjiMiIiLtO3+rfa/u119/xbp162Bvbw8hBBISEpCQkAAhBBo0aID169drTdJFREREpAml8pLsx48f4/HjxwAAGxsb2NjYvHVgmqZtGTMRERFp3/lb7VcGvU5bky0iIiIiTSp24nXt2jXExsaiWbNmRb4CKCIiAmFhYbC2tka7du3eOkgiIiKiyqBYiVdCQgJ69uyJ6tWrF+tdiDVr1sTkyZORnp6OyMhIeZ9aRERERO+yYjWu37FjB1JTU7Fo0SLUrl27yPq1a9fG4sWLkZSUhB07drx1kERERESVQbESr6NHj6Jq1arw8vIq9oxHjx6NatWq4fDhw2oHR0RERFSZFCvxunXrFpydnaGnp1fsGevp6aFDhw74+++/1Q6OiIiIqDIpVuL1/PlzWFpalnjmFhYW8g5ViYiIiN51xUq8DAwMkJaWVuKZp6enw8DAoMTTEREREVVGxUq8LC0tcfPmzRLP/ObNm2pdKSMiIiKqjIqVeHXq1AnR0dG4dOlSsWd88eJFREVFoVOnTmoHR0RERFSZFCvxGjlyJIQQmDBhApKTk4usn5SUhAkTJkAikcDDw+OtgyQiIiKqDIqVeLm5uaFnz564ffs2nJyc8Oeff0LVKx6FEDh48CDatWuHsLAwdO/eHb169Sr1oImIiIi0UbFfkp2YmIjOnTsjIiICEokENWrUQNu2bVGnTh0AQHx8PIKDg5GUlAQhBBo1aoRLly6hVq1aZboCpUXbXrJJRERE2nf+LnbiBUhXburUqdi5cyfy8vKkM5BIAEB+BUxHRwceHh5YvXq1Vr0qSNt2HBEREWnf+btEiZdMVFQUDh8+jOvXr+PZs2cApK8JcnJywscff4wGDRqUeqBlTdt2HBEREWnf+VutxKsy0rYdR0RERNp3/i5W43oiIiIientMvIiIiIg0hIkXERERkYYw8SIiIiLSECZeRERERBrCxIuIiIhIQ5h4EREREWkIEy8iIiIiDWHiRURERKQhTLyIiIiINISJFxEREZGGMPEiIiIi0hAmXkREREQawsSLiIiISEOYeBERERFpCBMvIiIiIg1h4kVERESkIUy8iIiIiDSEiRcRERGRhjDxIiIiItIQJl5EREREGsLEi4iIiEhDmHgRERERaUiFTrzWrl0LOzs7GBoawtnZGVevXi2w7qZNm9ClSxfUrFkTNWvWhJubW6H1iYiIiDStwiZeu3fvxsyZM+Hj44Pg4GC0bt0avXv3Rnx8vMr6Z86cgYeHBwICAhAYGAhbW1v06tULjx8/1nDkRERERKpJhBCivINQxdnZGe3bt8eaNWsAAPn5+bC1tcW0adMwZ86cIqfPy8tDzZo1sWbNGnh6ehZZPyUlBaampkhOToaJiclbx09ERERlT9vO3xXyild2djaCgoLg5uYmL9PR0YGbmxsCAwOLNY/09HTk5OTAzMxM5fisrCykpKQofIiIiIjKUoVMvBISEpCXlwcLCwuFcgsLC8TFxRVrHrNnz4a1tbVC8va6ZcuWwdTUVP6xtbV967iJiIiIClMhE6+3tXz5cuzatQsHDhyAoaGhyjpz585FcnKy/BMTE6PhKImIiOhdU6W8A1ClVq1a0NXVxdOnTxXKnz59CktLy0Kn/d///ofly5fj5MmTaNWqVYH1DAwMYGBgUCrxEhERERVHhbzipa+vDycnJ5w6dUpelp+fj1OnTsHFxaXA6b777jt8/fXX8Pf3R7t27TQRKhERUYWwbds2SCQS+cfQ0BAODg6YOnWq0oUMQHox4/PPP0fTpk1hbGyMqlWrwsnJCUuWLEFSUlKhy4qNjcWcOXPQo0cPVK9eHRKJBGfOnFGqFx0drRDTm5/x48crTRMcHAx3d3eYmZnB2NgYLVq0wE8//aRU79KlS3j//fflF2S++OILpKamKtW7e/cuhg8fjrp168LY2BhNmzbF4sWLkZ6eXug6lpUKecULAGbOnAkvLy+0a9cOHTp0wKpVq5CWlgZvb28AgKenJ2xsbLBs2TIAwLfffouFCxfCz88PdnZ28rZg1apVQ7Vq1cptPYiIiDRp8eLFsLe3R2ZmJi5cuID169fj6NGjuHXrFoyNjQEA165dw4cffojU1FSMGjUKTk5OAIDr169j+fLlOHfuHI4fP17gMsLDw/Htt9+icePGaNmyZYEPvtWuXRvbt29XKvf394evry969eqlUH78+HH069cPjo6OWLBgAapVq4b79+/j0aNHCvVCQ0PRs2dPNGvWDN988w1mzpyJbdu24cGDB/jrr7/k9WJiYtChQweYmppi6tSpMDMzQ2BgIHx8fBAUFISDBw8Wb6OWJlGBrV69WtSrV0/o6+uLDh06iMuXL8vHdevWTXh5ecmH69evLwAofXx8fIq1rOTkZAFAJCcnl/JaEBERlb2tW7cKAOLatWsK5TNnzhQAhJ+fnxBCiBcvXggbGxthYWEh7ty5ozSfuLg48fXXXxe6rJSUFJGYmCiEEGLv3r0CgAgICCh2rD179hQmJiYiIyNDXpacnCwsLCzEwIEDRV5eXqHT9+3bV1hZWYnk5GT5+funn34SAMSxY8fk9b755hsBQNy6dUthek9PTwFAPH/+vNgxl5YKeatRZurUqXjw4AGysrJw5coVODs7y8edOXMG27Ztkw9HR0dDCKH0+eqrrzQfOBERUQXh6uoKAIiKigIAbNy4EY8fP8bKlSvRtGlTpfoWFhaYP39+ofOsXr16gd01FSU2NhYBAQEYNGiQwgNwfn5+ePr0Kb755hvo6OggLS0N+fn5StOnpKTgxIkTGDVqlEK/XR4eHqhWrRr27NmjUFe2Tq+zsrKCjo4O9PX11VqHt1GhEy8iIiJ6O/fv3wcAmJubAwD+/PNPGBkZYciQIeUSz65du5Cfn4+RI0cqlJ88eRImJiZ4/PgxmjRpgmrVqsHExASTJk1CZmamvN7ff/+N3Nxcpbbc+vr6aNOmDUJCQuRl3bt3BwCMHTsWoaGhiImJwe7du7F+/Xp89tlnqFq1atmtaAGYeBEREVUiycnJSEhIwKNHj7B7924sXrwYRkZG+PjjjwEAd+7cgYODQ7lc7QEAX19fWFlZya/Eydy9exe5ubno378/evfujd9//x1jxozBhg0b5O27AekVM0B61epNVlZWePLkiXy4T58++Prrr3HixAk4OjqiXr16GD58OKZNm4YffvihjNawcBW2cT0RERGV3Jsdh9evXx++vr6wsbEBIL39Vr169fIIDREREQgKCsKMGTOgo6N47Sc1NRXp6emYOHGi/CnGQYMGITs7Gxs3bsTixYvRuHFjZGRkAIDKLqEMDQ3l42Xs7OzQtWtXDB48GObm5jhy5AiWLl0KS0tLTJ06tYzWtGBMvIiIiCqRtWvXwsHBAVWqVIGFhQWaNGmikOSYmJjg5cuX5RKbr68vACjdZgQAIyMjANK2Wq8bMWIENm7ciMDAQDRu3FheLysrS2kemZmZ8vGA9LbmhAkTEBERgbp16wKQJnP5+fmYPXs2PDw85LdgNYW3GomIiCqRDh06wM3NDd27d0ezZs2Uriw1bdoUERERyM7O1nhsfn5+aNKkibz7itdZW1sDUG4IX6dOHQDAixcvALy6xSi75fi62NhY+XwAYN26dXB0dJQnXTLu7u5IT09XaA+mKUy8iIioTBXVIWZOTg4WLVqEBg0awMDAAA0aNMCSJUuQm5urMJ8zZ84U2BHn5cuXNb1aWqtfv37IyMjA77//rtHlXrlyBffu3VN5tQuAPBl7/PixQrmszVbt2rUBAC1atECVKlVw/fp1hXrZ2dkIDQ1FmzZt5GVPnz5FXl6e0rJycnIAQOkY0wQmXkREVGaOHz8OFxcXxMfHY8GCBfjxxx/x8ccfK3SIOWrUKCxatAiurq748ccf0bVrVyxYsACTJ09WOc/PPvsM27dvV/g0atRIU6uk9SZOnAgrKyvMmjULERERSuPj4+OxZMmSUl+un58fAOmtQ1WGDh0KANi8ebNC+S+//IIqVarIn1A0NTWFm5sbduzYoXDLdNeuXUhNTcUnn3wiL3NwcEBISIjSeu7cuRM6OjqFvlqwzGi857AKih2oEhGVruJ0iHn16lUBQCxYsEChfNasWUIikYgbN27IywICAgQAsXfv3jKNW1sV1IGqKpcvXxZmZmbCyMhIjB8/XmzYsEFs2LBBTJgwQVSvXl306tWryHl8/fXX4uuvvxbDhw8XAMSYMWPkZW/Kzc0VFhYWomPHjoXOc8yYMQKAGDp0qFi7dq345JNPBAAxd+5chXpBQUHCwMBAODo6ipUrVwoAwtDQUCnus2fPCl1dXVGnTh2xePFisXbtWtG3b18BQIwbN67IdSwLTLz+xcSLiKh0rV+/XgAQt2/fFkIIkZqaqpSAff/99wKA+OeffxTKr127JgCIL7/8Ul72euKVkpIicnJyyn4ltIgs8dp84IT4I+SRuHQvQeTm5RdY/8mTJ2LGjBnCwcFBGBoaCmNjY+Hk5CS++eabYp0LoeJtMbLPm/z9/eW9yxcmOztbfPXVV6J+/fpCT09PNGrUSPzwww8q654/f1506tRJGBoaCgBi/PjxIiUlRanelStXRN++fYWlpaXQ09MTDg4O4ptvvim340cihBCau75WcaWkpMDU1BTJyckKPeESEZF6hgwZghMnTuD333/HlClTEBERgapVq2L06NH44YcfYGhoiGXLluHLL79EZGQk7O3t5dPevn0b7733Hnr37g1/f38A0jZePXr0QLVq1ZCamgpdXV106dIFK1asUOpM813kfysWiw7dRmzyq85GrUwN4dOvOfq0UO7zqrLQtvM323gREVGZKE6HmE2aNAEAXLx4UWHa8+fPA1BsaK2vr4/Bgwfjxx9/xMGDB7FkyRL8/fff6NKlS7k8nVaR+N+KxaQdwQpJFwDEJWdi0o5g+N9SfgKQygeveP1L2zJmIqKKrmHDhoiMjMTEiROxfv16efnEiROxceNGREREwNbWFk2bNkVmZibWrVsHJycnXLlyBZMnT0ZycjLq16+Pe/fuFbiMe/fuoVWrVujatav8yti7Ji9f4P1vTyslXTISAJamhrgw2xW6OhLNBqcB2nb+5hUvIqr0UlNT4ePjgz59+sDMzAwSiQTbtm1TWTc/Px/r169HmzZtYGRkBHNzc7i6uuLGjRsK9e7du4chQ4agZs2aMDY2xvvvv4+AgIC3micgfa/eiBEjUKdOHRgZGaFx48aYN2/eW2+D8lBYh5gAEBgYCENDQxw5cgTm5uYYPHgw7Ozs4OnpiYULF8LMzAzVqlUrdBmNGjVC//79ERAQoLLbgHfB1ajnBSZdgLTRVWxyJq5GPddcUFQgJl5EVCaKk+zk5+dj27ZtcHd3h62tLapWrYoWLVpgyZIlCi/FBYBt27YV2IeTRCKR94itSp8+fbB48WJcvHgRrVu3Vhj39OlTeHt7yxOd2rVrY9q0aXBycsLq1auxcOFC1KtXD/Hx8fJpYmJi4OLiggsXLuC///0vli1bhtTUVPTq1Qvnzp1TWv6YMWPw2WefFTpPAAgNDYWTkxNu3LiBWbNmYfXq1fDw8FB495w2KW6HmO+99x5u3bqFW7du4fz583jy5AnGjx+PhIQEODg4FLkcW1tbZGdnIy0trZTXQDvEvyw46VKnHpWxcmnSXwHxqUai0hUVFSUAiHr16onu3bsLAGLr1q0KdV6+fCkAiI4dO4olS5aIn3/+WXh7ewsdHR3RvXt3kZ//6oms+/fvi+3btyt92rZtK3R1dUVsbKzKOH7//XdhbGwsAIgpU6bIn5bbunWrSE5OFo0aNRLVq1cX8+fPlz/KDkD4+voWuG6TJ08WVapUEWFhYfKytLQ0YWtrK9q2batQd/fu3QKA2L9/f6HbKy8vT7Ro0UI4OzuL9PT0Qutqizlz5ggA4tSpUwrlp06dKnIbHzlyRAAQGzduLHI5gwcPFoaGhkpPTMqe8pN9DAwMROPGjcWUKVNEXFyc0nzi4uLErFmzRJMmTYSRkZEwNjYWbdu2FV9//bV48eJFoTE8efJEzJ49W3Tv3l1Uq1ZNABABAQFK9WR/FwV9Xu/iQPYUp6pPYGCgvN6lewnCwLaFynqG9m1F/dmHRf3Zh8WlewlCCCEiIiLEsGHDhI2NjTAyMhJNmjQRixYtEmlpaUVu64pI287ffFcjEZUJKysrxMbGwtLSEtevX0f79u2V6ujr6+PixYvo1KmTvGz8+PGws7ODj48PTp06JX/hb4MGDdCgQQOF6TMyMjB58mS4urrC0tJSaf6ZmZmYNWsW5syZg4ULFyqN37hxI+7du4dTp07B1dUVHTt2RIcOHSCEwMyZM9G3b1/UrFlTabrz58/D0dFR3jAcAIyNjeHu7o61a9fi7t27aNy4MQBg5cqV6NChAwYOHIj8/HxkZGSgatWqSvM8fvw4bt26haNHj8LIyAjp6ekwMDCArq5uQZu4whs6dCiWL1+OzZs3w9XVVV7+ZoeYb8rIyMCCBQtgZWWlcJvy2bNn8t7LZW7cuIE///wTffv2VXo1jszixYthb2+PzMxMXLhwAevXr8fRo0dx69YtGBsbAwCuXbuGDz/8EKmpqRg1apS8F/Xr169j+fLlOHfuHI4fP17guoaHh+Pbb79F48aN0bJlSwQGBqqsV7t2bWzfvl2p3N/fH76+vujVq5fSuM8++0zp7+f1DmM72JtBv4oOcqvXQo1uXgr1dKuZydt4dbA3Q0xMDDp06ABTU1NMnToVZmZmCAwMhI+PD4KCgnDw4MEC15FKBxMvIioTBgYGKpOh1+nr6yskXTIDBw6Ej48P7ty5I0+8VDl06BBevnxZ4CtIvvvuO+Tn5+Pzzz9XmXidP38etWvXhqurK1JSUnD16lVMnjwZd+7cwdOnT2FmZgZ7e3ssX75c3qs2IH05r6qETHYSDwoKQuPGjRXm+eWXX2L16tVITU1VOc+TJ08CkG63du3aISgoCPr6+hg4cCDWrVsHMzOzArdDReXo6IgxY8Zgy5YtyM3NRbdu3XDmzBns3bsXc+fOld+KHDp0KKytrdG8eXOkpKRgy5YtiIyMxJEjR1C9enX5/IYNGwYjIyN06tQJderUwe3bt/Hzzz/D2NgYy5cvLzCOvn37yrubGDduHMzNzbFy5UocPHgQHh4eSEpKwsCBA6Grq4uQkBA0bdpUYfpvvvkGmzZtKnRdnZyckJiYCDMzM+zbt0+h9/TXVa1aFaNGjVIq37ZtG0xMTNCvXz+lcV26dMGQIUMKXLaujgR25lUR9tIY1d/rgdefmJM1pffp1xy6OhJs374dSUlJuHDhAt577z0AwIQJE5Cfn4/ffvsNL168UHlsU+lh4kVEFU5cXBwAoFatWoXW8/X1hZGREQYNGqQ07uHDh1i+fDm2bNkib+T9pqysLPm4+/fvQwiBXbt2yV8ePGzYMERFRWH48OEwMTFBnz59AEi7QDh//jxevnypkBhcuHABwKsuEF6fZ5UqVfDdd9/B1NQUP/74o9I87969C0CahPTp0wdz587FjRs3sGzZMsTExODChQuQSLTvibS169ZDUq0W/tzrh/0HDsCufn388MMP+M9//iOv065dO2zduhUbN26EkZERunTpAj8/P4V37gHAgAED4Ovri5UrVyIlJQW1a9fGoEGD4OPjU6JXBrm6umLlypWIiooCIL3y+fjxY/j6+iolXYC0jdr8+fMLnefrx0FJxcbGIiAgAJ6enjA0NFRZ5+XLlzAyMkKVKqpP22ZV9WFdwwgW1fTw5HkKdPSlx7XlG/14paSkAFBud2dlZQUdHR3o6+urvR5UTOV8q7PC0LZ7xETa5PV2VcXh5uYmTExMCm1Xk5iYKPT19cXQoUNVjh8yZIjo1KmTfBgq2nhNmzZN6OjoiOjoaHHu3Dl5u5gPPvhAABBTp04VL1++FLVq1RKdO3eWz+vo0aMCgOjbt68IDg4W4eHhYvr06UJPT08AkL8y5fV5Xr58WT69qnm6uroKAKJPnz4K67Fs2TIBQJw4caJY264i+evvJ6Lj0pPyNkb1Zx8WHZeeFH/9/UQjyy/oFTo//vijACA2bNgghBCiU6dOwsjISGRlZZXKcvfu3VtgGy9VZK+8eXMfy9p4ydqM6erqiu7du6t8JVC3bt2Enp6e0NfXFwBEDfPa4tMps0RGpuI6/fXXXwKAcHd3FyEhIeLhw4di165dwsTERPznP/9Re53Lk7adv/lUIxFVKEuXLsXJkyexfPly1KhRo8B6+/btQ3Z2tsrbjAEBAfj999+xatWqQpc1btw46OrqYujQofKX6NasWVP+ZGJGRgaqVauGfv364erVq8jNzQUgvXW1evVqnDt3Dm3btkWTJk1w5MgRfPPNNwAg7wJBdjXN3t4ezs7O8uWqmmdRXS9cunSp0HWpaCpSh57JyclISEjAo0ePsHv3bixevBhGRkb4+OOPAQB37tyBg4NDuV3t8fX1hZWVlUI7OKBkHcY2bNgQ8+bNw86dO/Hbb7+ha2cXbFv7Pbw8RyvU69OnD77++mucOHECjo6OqFevHoYPH45p06bhhx9+KPN1Jd5qJKIKZPfu3Zg/fz7Gjh2LSZMmFVrX19cXZmZm6Nu3r0J5bm4uPvvsM4wePVplg/7XtWrVCn5+fpg4cSLGjRsHQNoNxk8//YRJkybJE6g6deogJycHaWlpMDU1BQBMnToV3t7euHnzJvT19dGmTRts3rwZAORdIBTUnYKqeRa36wVtkJcvsOjQbYW2RjIC0nZHiw7dxgfNLTXSoeeb7QTr168PX19f2NjYAJDefnubW4VvIyIiAkFBQZgxY4bSwwGdOnVSaAPp7u6OIUOGoFWrVpg7d65Ch7GyY09m9OjRmDBhAjZt2oQZM2agY8eO8nF2dnbo2rUrBg8eDHNzcxw5cgRLly6FpaUlpk6dWkZrSjJMvIioQjhx4gQ8PT3x0UcfYcOGDYXWffjwIc6fP48JEyZAT09PYdxvv/2G8PBwbNy4EdHR0QrjXr58qdQn1pAhQ+Du7o4bN26gb9++MDY2lj89KUugnjx5AkNDQ6WTc9WqVeHi4iIfPnnyJIyMjNC5c2cA0sTL0tJS4bU3Mm/O08nJCZs2bVKqK4v3zaf5KrKSdOjp0tC8zONZu3YtHBwcUKVKFVhYWKBJkyYKSY6JiQlevnxZ5nGoIut/rqAHRN4k6zB2//79yMvLK/Sp11mzZmHTpk04efKkPPHatWsXJkyYgIiICNStWxcAMGjQIOTn52P27Nnw8PCAuXnZ75N3GW81ElG5u3LlCgYOHIh27dphz549BTYgltm5cyeEECpPVg8fPkROTg46d+4Me3t7+QeQJmX9+/dXmkZfXx/t27fHqFGjEBMTg19++QWA9EpJQkICDh48CFdX1wK7KwCktwL379+PsWPHyq+KAdIG+jExMThx4oS8TNU8+/fvDwMDA2zduhX5+fnyurJYPvjgg0K3SUVS0Tr07NChA9zc3NC9e3c0a9ZMaT82bdoUERER8ocqNMnPzw9NmjSRd19RHMXtMNbW1hYA8Pz5qx7r161bB0dHR3nSJePu7o709PR3/p2XmsArXkRUru7cuYOPPvoIdnZ2OHz4cIFPIL7Oz88P9erVw/vvv680bvjw4UpPwwHSLiocHBzQoEED+Pv749ChQ3j06BEAYNq0aTA1NcXcuXOxc+dO7N27F40bN8aRI0ewYcMG5OTkYOnSpfJ5PXjwAEOHDoW7uzssLS3xzz//YMOGDWjVqpVCPQCYO3cu9uzZg8GDB2PmzJkwNTVVOU9LS0vMmzcPCxcuRJ8+fTBgwADcuHEDmzZtgoeHR5G3TSuSOtVVP5mnbr2y1q9fPwQGBuL3339XamNXlq5cuYJ79+5h8eLFJZouMjIShoaGRb5OKTIyEoDi1dKnT5+q7C4iJycHAORtDqnsMPEiojKzZs0aJCUlyW+XvZns6OjooHfv3njx4gX++9//4siRIwrTN2zYUOFWHgDcunULN2/exJw5c1R2r9C0aVOVXQIA0vY0skb0+/fvx/79+wFIO+Zs1aoVoqKi5F1MxMXFYd68eXBxccGOHTsUXjVkYmICKysrrFmzBs+fP4eNjQ0+++wzzJs3T+l2pIWFBS5cuIDPP/8cP/zwA3JyclTOEwDmz5+PmjVrYvXq1fjPf/6jkIxpkw72ZrAyNURccqbKdl6vd+hZEUycOBGrV6/GrFmz4OTkpPSaovj4ePz8889FdilRUn5+fgBePUDxpuJ2GJuSkgIDAwMYGBjI6wkhsGTJEgBA79695eUODg44fvw4IiIiFNZz586d0NHRQatWrUpn5ahAEiGEqr+Ld462vd2cSBvY2dnhwYMHKsfJ+lCS3QZUxcvLS+n9jnPnzsXy5ctx8+ZNtGzZslhx+N+KRd+W1qje9iOYfSBttG/1b/9Gv34zExcvXsTTp09Rq1YtuLu7Y9GiRfJG7aQe2VONAFR26Ll+VFt531JlZdu2bfD29sa1a9fkHagW5MqVK/jwww+RkZGh0HN9cHAwdu7cCRcXFxw7dqzQecgSnX/++Qe7du3CmDFj5Mf3m0lbXl4ebGxsYG9vX2Av966urio7jNXT00NgYCCaNWsGADhz5gw8PDzg4eGBRo0aISMjAwcOHMDFixcxYcIEbNy4UT7Pc+fOwdXVFebm5pg6dSrMzc1x+PBh/PXXXxg3blyRHcVWRNp2/mbi9S9t23FEFZ3/rVgsOnRboZG11RudOWoqjkk7gpWuvGgyAXhXlfcxIEu8Ll+5inzzBoh/mYk61aVX2lQ9TRkbG4sVK1bgyJEjePjwIXR0dNCsWTMMGjQIU6dOLfLcUFgHt2+eao8dO4Y+ffrgp59+wrRp01RO89NPP8HX1xf37t2Tdxjbs2dPpQ5jo6KiMHv2bFy7dg1xcXHyuMePH48JEyYoxXX16lV89dVXCAkJQWJiIuzt7eHl5YUvvviiyPaVFZG2nb+ZeP1L23YcUUVWUZKdvHyB9789XeATdrJbXhdmu2qkW4N3UV6+wNWo50UmPWWlvJM/Knvadv7mU41EVKqK6sMJkPbhlJdf9v/zlaRbAyobujoSuDQ0R/82NnBpaK7xpKuidOJKJMPEi4hKVUVKdipatwakORXpHwCi1zHxIqJSVZGSHW3r1oBKT0X6B4DodUy8iKhUVaRkR9atQUE3tySQtvepKN0aUOmpSP8AEL2OiRcRlaqKlOzo6kjg06+5fLlvxgEAPv2as2F9JVSR/gEgeh0TLyIqVRUt2enTwgrrR7WFpaniCdbS1JBdSVRiFekfAKLXsTuJf2nb46hUdsr78ffK4m0f4y/t/cD9WnkVtG8rQieuVPa07fzNxOtf2rbjqGywz5/SpW6yw/1AxVXUscJj6e1owz8s2nb+ZuL1L23bcVT6Kkqnn++6wvaDADDDrTHsalXlVTAVKtv6FKW4f7Pv2nYpTEm2hbYkrdp2/mbi9S9t23FUutjDecVQ1H5409ucBLTlpFJcRa1PZUs+KtLfrLZs25Ic89r0j6i2nb+ZeP2rrHacqj9IAFrxR/ouCbyfCI9Nl4ust3N8R7g0NNdARO+m4u4HGXVPAtp0UimOotZnQld7/HkjttATrrYkDzLFPVZ8xzqjc+NaBY5/2/XWlgS+JMd8RUpqi0PbEi/texumFlH1B2msrwsdiQSpWbnyMnX+SF//sahV1QCQAAmpWVrxg1kSpZG4FueHtSL0+VMR9ml5n3zjUkq2fQWkJ4FFh27jg+aWxYq1qB7NizM/dbZTSacpbv3i9NC+8VyU0ri45ExM3BGMGW6NkZyRgz9Cn+B5WrZ8fFkkD6V5fBX3b3GKXzCWD26pcj0KSpoWfNQMNasaFPm7c+xWHCb7BSvNV/ZKooqSwJf0mC9u57OX7yfKk9ry/u3QJrzi9a/SzpgL+u+iMP/p2Qj1zavieVo2zKoZoE416ck3PiVToexa9HNsuxSNpIwclfOpYaQHr0710cHeXGlaVfOrqGWPkjJw8I2TgarEVdX61jDWR1K66nmoqv88PRtrA+4XuY+mdG+ITg1rlfp6V4R9WtxtVZJlWJoon7RkSaWqbbDpfCTSsvOK3A+qTO7eEOZV9YuM5XJkIkb+cqXI+c37sCmaW5sWa1+ZVdVD/9bWqFvTuETb1ruzHaa6NlbaPiVZxqV7CVh7puhjV13F/V0qqEz2z8OLtGx8fUQxyXmb46u4f7My60Y4oncLK/l2jnqWhlWn7hZr2moGuhACCsdmVX0dpGfnF/obX91QF4v6tYCFiaHGfj9f/2cNkB5XF+4+K9YxIvsbik5Mx/bLD4qsb6yni/Fd7SGBpNjHa1n8M6ltV7wqdOK1du1arFixAnFxcWjdujVWr16NDh06FFh/7969WLBgAaKjo9G4cWN8++23+PDDD4u1rNLccSVtp0JUmdUw1gMAJKWrTio1qYaxHrJz85GuZnJXFoz1daFfRadCbJ/KTALA1FjvndnOFenvTpXSvKKqbYlXhe1Adffu3Zg5cyZ8fHwQHByM1q1bo3fv3oiPj1dZ/9KlS/Dw8MDYsWMREhKCAQMGYMCAAbh165aGIy/6HWFE75Kk9JwK8+OflJ5ToZIuAEjPzqsw26cyE6i4SUhZqEh/d6rIbsf634ot71A0rsJe8XJ2dkb79u2xZs0aAEB+fj5sbW0xbdo0zJkzR6n+sGHDkJaWhsOHD8vLOnbsiDZt2mDDhg1FLq80M+aDoY8xfVfoW82DiIioMiutRvq84lUKsrOzERQUBDc3N3mZjo4O3NzcEBgYqHKawMBAhfoA0Lt37wLrZ2VlISUlReFTWvjuLyIiosLJGulfjXpe3qFoVIVMvBISEpCXlwcLCwuFcgsLC8TFxamcJi4urkT1ly1bBlNTU/nH1ta2dILHq3eEERERUeHK8mnxiqhCJl6aMHfuXCQnJ8s/MTExpTbv118STERERAV71+4SVcjEq1atWtDV1cXTp08Vyp8+fQpLS0uV01haWpaovoGBAUxMTBQ+palPCytsGNVW/mQJERGRtpEAZXYek0D6dKOs64t3RYVMvPT19eHk5IRTp07Jy/Lz83Hq1Cm4uLionMbFxUWhPgCcOHGiwPqa0KeFFYLmf4AZbg6oYcQEjIioLLG7zrKxfFDLUr+QINtXPv2av3MdrVbYnutnzpwJLy8vtGvXDh06dMCqVauQlpYGb29vAICnpydsbGywbNkyAMD06dPRrVs3fP/99/joo4+wa9cuXL9+HT///HN5rgZ0dSSY7tYYU10bKfTqq6ozQXXIOiBU1YFdZaGq80JVZSWdR1HKqx+c8t6n6myrwqizHWWdizauU12508232C+qpn2b+anq0LcwqrZtUcsv6TKKmp/KbVDI9i4tsh7h78anYevFqDI5ri3/7RsKgFKP9OpsF1XbvqBOnMt6+5VUYetb3GP+zb62PmhuiTWn7xW6/4p7vFpWwNcqaUqF7U4CANasWSPvQLVNmzb46aef4OzsDADo3r077OzssG3bNnn9vXv3Yv78+fIOVL/77rty6UC1uFS9Ikad3oll/y28zfwqapmqns9VvcLjzfWV9Vxf0t7TC+r5OS45Q6M9TpfXPi3ptirt+RW1DYqz79/mWCruflbnGCnpsVxayyhsfqpe71Lax5wmjuu3OW6K2i7FLXtzuZr4zVDn2Czu36SsXkGvqVL3eGXP9RU88dIkbdtxREREpH3n7wrZxouIiIioMmLiRURERKQhTLyIiIiINISJFxEREZGGMPEiIiIi0hAmXkREREQawsSLiIiISEOYeBERERFpCBMvIiIiIg2psO9q1DRZB/4pKSnlHAkREREVl+y8rS0v4mHi9a+XL18CAGxtbcs5EiIiIiqply9fwtTUtLzDKBLf1fiv/Px8PHnyBNWrV4dEUjov7pRJSUmBra0tYmJitOI9UqWF6/1urTfw7q471/vdWm/g3V33irjeQgi8fPkS1tbW0NGp+C2oeMXrXzo6Oqhbt26ZLsPExKTCHKiaxPV+97yr6871fve8q+te0dZbG650yVT81JCIiIiokmDiRURERKQhTLw0wMDAAD4+PjAwMCjvUDSK6/1urTfw7q471/vdWm/g3V33d3W9SxMb1xMRERFpCK94EREREWkIEy8iIiIiDWHiRURERKQhTLyIiIiINISJVxlbu3Yt7OzsYGhoCGdnZ1y9erW8QypVy5YtQ/v27VG9enXUqVMHAwYMQHh4uEKd7t27QyKRKHwmTpxYThGXnq+++kppvZo2bSofn5mZiSlTpsDc3BzVqlXD4MGD8fTp03KMuHTY2dkprbdEIsGUKVMAVJ79fe7cOfTr1w/W1taQSCT4448/FMYLIbBw4UJYWVnByMgIbm5uuHv3rkKd58+fY+TIkTAxMUGNGjUwduxYpKamanAt1FPYuufk5GD27Nlo2bIlqlatCmtra3h6euLJkycK81B1nCxfvlzDa1IyRe3zTz/9VGmd+vTpo1BHG/d5Ueut6u9dIpFgxYoV8jrauL/LCxOvMrR7927MnDkTPj4+CA4ORuvWrdG7d2/Ex8eXd2il5uzZs5gyZQouX76MEydOICcnB7169UJaWppCvfHjxyM2Nlb++e6778op4tL13nvvKazXhQsX5ONmzJiBQ4cOYe/evTh79iyePHmCQYMGlWO0pePatWsK63zixAkAwCeffCKvUxn2d1paGlq3bo21a9eqHP/dd9/hp59+woYNG3DlyhVUrVoVvXv3RmZmprzOyJEj8c8//+DEiRM4fPgwzp07hwkTJmhqFdRW2Lqnp6cjODgYCxYsQHBwMPbv34/w8HC4u7sr1V28eLHCcTBt2jRNhK+2ovY5APTp00dhnXbu3KkwXhv3eVHr/fr6xsbGYsuWLZBIJBg8eLBCPW3b3+VGUJnp0KGDmDJlinw4Ly9PWFtbi2XLlpVjVGUrPj5eABBnz56Vl3Xr1k1Mnz69/IIqIz4+PqJ169YqxyUlJQk9PT2xd+9eedmdO3cEABEYGKihCDVj+vTpomHDhiI/P18IUTn3NwBx4MAB+XB+fr6wtLQUK1askJclJSUJAwMDsXPnTiGEELdv3xYAxLVr1+R1/vrrLyGRSMTjx481FvvbenPdVbl69aoAIB48eCAvq1+/vvjhhx/KNrgypGq9vby8RP/+/QucpjLs8+Ls7/79+wtXV1eFMm3f35rEK15lJDs7G0FBQXBzc5OX6ejowM3NDYGBgeUYWdlKTk4GAJiZmSmU+/r6olatWmjRogXmzp2L9PT08giv1N29exfW1tZo0KABRo4ciYcPHwIAgoKCkJOTo7D/mzZtinr16lWq/Z+dnY0dO3ZgzJgxCi+Xr6z7WyYqKgpxcXEK+9fU1BTOzs7y/RsYGIgaNWqgXbt28jpubm7Q0dHBlStXNB5zWUpOToZEIkGNGjUUypcvXw5zc3M4OjpixYoVyM3NLZ8AS9GZM2dQp04dNGnSBJMmTUJiYqJ83Luwz58+fYojR45g7NixSuMq4/4uC3xJdhlJSEhAXl4eLCwsFMotLCwQFhZWTlGVrfz8fPznP/9B586d0aJFC3n5iBEjUL9+fVhbW+PmzZuYPXs2wsPDsX///nKM9u05Oztj27ZtaNKkCWJjY7Fo0SJ06dIFt27dQlxcHPT19ZVORBYWFoiLiyufgMvAH3/8gaSkJHz66afyssq6v18n24eq/r5l4+Li4lCnTh2F8VWqVIGZmVmlOgYyMzMxe/ZseHh4KLw0+bPPPkPbtm1hZmaGS5cuYe7cuYiNjcXKlSvLMdq306dPHwwaNAj29va4f/8+vvzyS/Tt2xeBgYHQ1dV9J/b5r7/+iurVqys1m6iM+7usMPGiUjNlyhTcunVLoZ0TAIX2DS1btoSVlRV69uyJ+/fvo2HDhpoOs9T07dtX/r1Vq1ZwdnZG/fr1sWfPHhgZGZVjZJqzefNm9O3bF9bW1vKyyrq/SVlOTg6GDh0KIQTWr1+vMG7mzJny761atYK+vj7+7//+D8uWLdPa180MHz5c/r1ly5Zo1aoVGjZsiDNnzqBnz57lGJnmbNmyBSNHjoShoaFCeWXc32WFtxrLSK1ataCrq6v0FNvTp09haWlZTlGVnalTp+Lw4cMICAhA3bp1C63r7OwMALh3754mQtOYGjVqwMHBAffu3YOlpSWys7ORlJSkUKcy7f8HDx7g5MmTGDduXKH1KuP+lu3Dwv6+LS0tlR6kyc3NxfPnzyvFMSBLuh48eIATJ04oXO1SxdnZGbm5uYiOjtZMgBrQoEED1KpVS35sV/Z9fv78eYSHhxf5Nw9Uzv1dWph4lRF9fX04OTnh1KlT8rL8/HycOnUKLi4u5RhZ6RJCYOrUqThw4ABOnz4Ne3v7IqcJDQ0FAFhZWZVxdJqVmpqK+/fvw8rKCk5OTtDT01PY/+Hh4Xj48GGl2f9bt25FnTp18NFHHxVarzLub3t7e1haWirs35SUFFy5ckW+f11cXJCUlISgoCB5ndOnTyM/P1+ejGorWdJ19+5dnDx5Eubm5kVOExoaCh0dHaVbcdrs0aNHSExMlB/blXmfA9Ir3E5OTmjdunWRdSvj/i415d26vzLbtWuXMDAwENu2bRO3b98WEyZMEDVq1BBxcXHlHVqpmTRpkjA1NRVnzpwRsbGx8k96eroQQoh79+6JxYsXi+vXr4uoqChx8OBB0aBBA9G1a9dyjvztzZo1S5w5c0ZERUWJixcvCjc3N1GrVi0RHx8vhBBi4sSJol69euL06dPi+vXrwsXFRbi4uJRz1KUjLy9P1KtXT8yePVuhvDLt75cvX4qQkBAREhIiAIiVK1eKkJAQ+ZN7y5cvFzVq1BAHDx4UN2/eFP379xf29vYiIyNDPo8+ffoIR0dHceXKFXHhwgXRuHFj4eHhUV6rVGyFrXt2drZwd3cXdevWFaGhoQp/91lZWUIIIS5duiR++OEHERoaKu7fvy927NghateuLTw9Pct5zQpX2Hq/fPlSfP755yIwMFBERUWJkydPirZt24rGjRuLzMxM+Ty0cZ8XdawLIURycrIwNjYW69evV5peW/d3eWHiVcZWr14t6tWrJ/T19UWHDh3E5cuXyzukUgVA5Wfr1q1CCCEePnwounbtKszMzISBgYFo1KiR+O9//yuSk5PLN/BSMGzYMGFlZSX09fWFjY2NGDZsmLh37558fEZGhpg8ebKoWbOmMDY2FgMHDhSxsbHlGHHpOXbsmAAgwsPDFcor0/4OCAhQeWx7eXkJIaRdSixYsEBYWFgIAwMD0bNnT6XtkZiYKDw8PES1atWEiYmJ8Pb2Fi9fviyHtSmZwtY9KiqqwL/7gIAAIYQQQUFBwtnZWZiamgpDQ0PRrFkzsXTpUoUEpSIqbL3T09NFr169RO3atYWenp6oX7++GD9+vNI/0tq4z4s61oUQYuPGjcLIyEgkJSUpTa+t+7u8SIQQokwvqRERERERALbxIiIiItIYJl5EREREGsLEi4iIiEhDmHgRERERaQgTLyIiIiINYeJFREREpCFMvIiIiIg0hIkX0TtECIHdu3dj0KBBsLW1haGhIWrWrIk2bdrgiy++wMOHD1VO99VXX0EikeCrr77SbMCV1JkzZyCRSNC9e/fyDoWINIyJF9E74smTJ+jYsSOGDx+OP/74A5aWlhgwYAC6dOmCx48fY8WKFXBwcMDatWvLO1StJ5FIIJFIyjsMIqqAqpR3AERU9l68eIEuXbogMjISjo6O2L59O9577z35+NzcXPz444+YPXs2pk6diry8PHz22WflGHHl1qFDB9y5cwfGxsblHQoRaRiveBG9A6ZOnYrIyEjY29vj9OnTCkkXAFSpUgWzZs3Cjz/+CAD4/PPPcefOnfII9Z1gbGyMpk2bol69euUdChFpGBMvokouMjISu3btAgD873//Q40aNQqsO3nyZLRu3Ro5OTn47rvvVNZ58OABPD09YWVlBUNDQzg4OOCrr75CRkaGyvp79+6Fm5sbzM3NoaenB3NzczRv3hzjx4/HzZs3VU6zb98+9OnTB7Vr14a+vj5sbGwwatQo3L59W6ludHQ0JBIJ7OzskJeXh5UrV8LR0RHVqlWDRCJBUlISjIyMoKuri8ePHxe47kOGDIFEIpEnn7J1/fbbb+Hq6op69erBwMAANWrUwPvvv4+NGzciPz9fYR6ytnAysluOsk90dDSAott4hYWFwdvbG/Xr14eBgQHMzMzQs2dP7NmzR2X919vgPXv2DFOmTIGtrS309fVha2uLadOmISkpqcB1JyLN4a1Gokru0KFDyM/PR40aNeDu7l5oXYlEgtGjR+PGjRs4dOgQhBAKiURUVBScnJxQpUoVdO3aFRkZGQgICMCiRYtw8uRJnDx5EoaGhvL6ixcvho+PD6pUqYJOnTrBxsYGycnJePjwITZv3oz33nsPrVq1ktfPzc3FyJEjsWfPHhgYGMDJyQk2NjaIiIiAr68v9u/fj/3796NPnz5KsQshMGjQIPj7+6NLly5o1qwZ/vnnH9SoUQMDBw7Ezp07sX37dsyZM0dp2sTERBw6dAj6+voYNWqUvHz79u1YsGAB7O3t4eDggM6dOyM2NhaBgYG4ePEijh8/jn379sm3UZs2beDl5YVff/0VAODl5aWwnGrVqhW6/QHgyJEjGDJkCDIzM9GkSRMMGjQI8fHxOHv2LE6fPo1jx45h8+bNKqeNiYlB27ZtkZOTg86dOyMzMxMXL17EmjVrcOXKFVy8eBF6enpFxkBEZUgQUaU2evRoAUD06NGjWPXPnj0rAAgAIjIyUgghhI+Pj7ysf//+Ij09XV4/JiZGODg4CABizpw58vLMzExhZGQkqlWrJsLCwpSWEx0dLe7cuaNQ9uWXXwoAwtnZWb5smb179wpdXV1Rs2ZN8eLFC3l5VFSUPLa6deuK8PBwpWWdOHFCABBNmzZVuc4//vijACAGDx6sUH716lXx999/K9V//PixaN26tQAg9uzZozReFk9BAgICBADRrVs3hfK4uDhhamoqAIglS5aI/Px8+bhr166JmjVrCgDi559/Vpju9f3z6aefiszMTPm4hw8fChsbGwFA+Pn5FRgTEWkGEy+iSq5Pnz4CgBg+fHix6oeFhclP4leuXBFCvDqxGxkZidjYWKVpDh06JAAIExMTkZGRIYQQIj4+XgAQrVq1KtZyExMThZGRkTA0NBSPHj1SWWfy5MkCgFi9erW87PXE67ffflM5XX5+vqhfv74AIC5duqQ0vk2bNgKAOHz4cLFiFUKIY8eOCQDik08+URqnbuL19ddfCwDCyclJ5XT/+9//BADRuHFjhXLZ/qlbt65IS0tTmm758uUCgBgzZkwx1oyIyhLbeBGRAiFEgeN69eoFS0tLpfKPP/4Y5ubmSElJQXBwMACgdu3asLOzw82bNzFr1iyV7bNeFxAQgIyMDHTu3Bk2NjYq68jaRF26dEnl+MGDB6ssl0gk8tt+27ZtUxgXGhqK0NBQWFlZqbyFmZWVhUOHDmHhwoWYOHEivL298emnn2Ljxo0AgPDw8ELXqyTOnDkDQPkWpczYsWMBAHfv3sWTJ0+Uxvfs2VPlk5LNmjUDgELbuBGRZrCNF1ElV6tWLQDA06dPi1U/Pj5e/r127doK4+zt7Quczs7ODomJiXj06JG87LfffsOQIUOwcuVKrFy5EmZmZnB2dsYHH3yA0aNHy2MDpA8BAMCpU6eK7APr2bNnSmV16tQptHsGb29vfP3119i9ezdWrVoFIyMjAMDWrVsBAJ6entDV1VWY5vLlyxg2bFiBHcsCQEpKSqGxloQsMSpoO9eoUQNmZmZ4/vw5Hj16BGtra4XxBT0laWJiAgDIzMwstViJSD1MvIgqOScnJ+zYsQPBwcHIzc1FlSqF/9lfvXoVAGBubg47O7sSL+/1K2ZdunRBdHQ0jhw5grNnz+LSpUs4duwY/vrrL/j4+ODAgQPo2bMnAMifEGzUqBE6d+5c6DKaNm2qVCZLpApiZ2eHHj164PTp0zhw4ABGjBiBnJwc+Pn5AZAmZq9LT0/HgAED8PTpU3h7e2PSpElo1KgRTExMoKuri4iICDRp0qTQK4SapqPDmxhEFR0TL6JKrl+/fpg1axaSk5Nx8ODBAm/HAdKkafv27QCktw/fvPIUFRVV4LSyrhLq1q2rUG5kZIQhQ4ZgyJAhAKRXq+bPn4+ff/4ZY8aMwYMHDwAAtra2AIAmTZoo3Q4sLd7e3jh9+jS2bt2KESNG4NChQ0hISECnTp3QpEkThbrnzp3D06dP0bZtW2zZskVpXnfv3i31+GxsbBAWFia/+vem5ORkPH/+XF6XiLQP/z0iquQaNmyIoUOHAgD++9//Ftqf07p163Dz5k1UqVIF//3vf5XGHz9+XOFWpMzRo0eRmJiI6tWrw8nJqdB4ateuLe8j7OHDh3jx4gUAafskfX19nDlzRuUySsPgwYNhamqK06dPIyYmRn6b8c2rXQDkCU5Bt+927NhR4HJkXTbk5uaWKD5ZGzZZdxRvkiWAjRs3ZuJFpKWYeBG9A9auXQs7OztERUXB1dUV//zzj8L43NxcrFy5EtOnTwcAfPvtt0q92wNARkYGJk2apNBZ6pMnTzBr1iwAwMSJE+X9eD148AC//PKLyjZQhw4dAgDUrFlT3v7IwsIC06ZNQ1paGvr164e///5babqsrCz8+eefCAsLU2czwMjICMOHD0d+fj6+/fZb+Pv7w9jYGMOGDVOqK2uQfurUKaUHA37++Wfs3r27wOXIrvq9uZ2LMn78eJiYmCA4OBhLly5VuI0ZEhKCJUuWAIDKpJiItES5PlNJRBrz6NEj0a5dOwFASCQS0b59ezF8+HDh7u4uateuLQAIfX19sWrVKqVpZd0VeHp6CjMzM2FpaSk++eQT0a9fP1G1alUBQLi4uCj07xUSEiIACD09PdG+fXsxdOhQMXToUOHo6CiP4ZdfflFYTk5OjhgxYoQAIHR0dISjo6MYPHiwGDZsmOjcubN8WX/99Zd8Gll3EvXr1y/Wdrh8+bK8uwfZOhWkf//+8u3Sq1cvMXz4cNG0aVMhkUjEvHnzClzu559/LgCIWrVqiaFDh4qxY8eKsWPHioSEBCFEwd1JCCHtmsPQ0FDe75iHh4fo2bOnqFKligAgvL29laaR7R8fHx+V61HY8ohIs5h4Eb1D8vLyxM6dO0X//v2FtbW10NfXFyYmJqJly5Zi1qxZIioqSuV0r5/YIyMjhYeHh7CwsBD6+vqiUaNGYuHChUr9R6WkpIhVq1aJgQMHisaNG4tq1aqJqlWrCgcHB+Hp6SmuX79eYJxHjx4VgwYNEjY2NkJPT0/UqFFDNGvWTAwfPlz4+fkpLKukiZcQQrz33nvyxCsgIKDAetnZ2WLFihWiZcuWwtjYWJiZmYlevXqJ48ePF7rcjIwM8cUXX4hGjRoJfX19+bJk27eoROj27dvCy8tL1K1bV77+PXr0ELt27VJZn4kXkfaQCFGBHskhIiIiqsTYxouIiIhIQ5h4EREREWkIEy8iIiIiDWHiRURERKQhTLyIiIiINISJFxEREZGGMPEiIiIi0hAmXkREREQawsSLiIiISEOYeBERERFpCBMvIiIiIg1h4kVERESkIUy8iIiIiDTk/wEOBRHcvMVNowAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = OLSInfluence(model).plot_index(threshold=0.05)\n", + "fig.gca().axhline(0.5, color='r', linestyle=':', linewidth=1);" + ] + }, + { + "cell_type": "code", + "execution_count": 1139, + "id": "059fdf55", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>OLS Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Fare</td> <th> R-squared: </th> <td> 0.834</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>OLS</td> <th> Adj. R-squared: </th> <td> 0.825</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>Least Squares</td> <th> F-statistic: </th> <td> 85.62</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Prob (F-statistic):</th> <td>5.14e-61</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>01:36:48</td> <th> Log-Likelihood: </th> <td> -790.26</td>\n", + "</tr>\n", + "<tr>\n", + " <th>No. Observations:</th> <td> 181</td> <th> AIC: </th> <td> 1603.</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Residuals:</th> <td> 170</td> <th> BIC: </th> <td> 1638.</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Df Model:</th> <td> 10</td> <th> </th> <td> </td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>t</th> <th>P>|t|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> -10.3426</td> <td> 4.469</td> <td> -2.314</td> <td> 0.022</td> <td> -19.164</td> <td> -1.521</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.Q]</th> <td> -26.2113</td> <td> 20.221</td> <td> -1.296</td> <td> 0.197</td> <td> -66.128</td> <td> 13.706</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.S]</th> <td> -3.3575</td> <td> 3.108</td> <td> -1.080</td> <td> 0.282</td> <td> -9.492</td> <td> 2.777</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.A]</th> <td> 3.9948</td> <td> 5.504</td> <td> 0.726</td> <td> 0.469</td> <td> -6.871</td> <td> 14.860</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.B]</th> <td> 7.4801</td> <td> 4.939</td> <td> 1.514</td> <td> 0.132</td> <td> -2.270</td> <td> 17.230</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.C]</th> <td> 4.4306</td> <td> 4.379</td> <td> 1.012</td> <td> 0.313</td> <td> -4.213</td> <td> 13.075</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.D]</th> <td> -5.0043</td> <td> 5.085</td> <td> -0.984</td> <td> 0.326</td> <td> -15.043</td> <td> 5.034</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.E]</th> <td> -7.5249</td> <td> 5.559</td> <td> -1.354</td> <td> 0.178</td> <td> -18.499</td> <td> 3.449</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Cabins</th> <td> -0.3417</td> <td> 3.554</td> <td> -0.096</td> <td> 0.924</td> <td> -7.358</td> <td> 6.674</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Passengers</th> <td> 40.8216</td> <td> 2.369</td> <td> 17.229</td> <td> 0.000</td> <td> 36.145</td> <td> 45.499</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Children</th> <td> -40.5959</td> <td> 8.482</td> <td> -4.786</td> <td> 0.000</td> <td> -57.339</td> <td> -23.853</td>\n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <th>Omnibus:</th> <td>114.735</td> <th> Durbin-Watson: </th> <td> 2.002</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Prob(Omnibus):</th> <td> 0.000</td> <th> Jarque-Bera (JB): </th> <td>1355.085</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Skew:</th> <td> 2.116</td> <th> Prob(JB): </th> <td>5.58e-295</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Kurtosis:</th> <td>15.719</td> <th> Cond. No. </th> <td> 37.1</td> \n", + "</tr>\n", + "</table><br/><br/>Notes:<br/>[1] Standard Errors assume that the covariance matrix of the errors is correctly specified." + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Fare R-squared: 0.834\n", + "Model: OLS Adj. R-squared: 0.825\n", + "Method: Least Squares F-statistic: 85.62\n", + "Date: Mon, 26 Sep 2022 Prob (F-statistic): 5.14e-61\n", + "Time: 01:36:48 Log-Likelihood: -790.26\n", + "No. Observations: 181 AIC: 1603.\n", + "Df Residuals: 170 BIC: 1638.\n", + "Df Model: 10 \n", + "Covariance Type: nonrobust \n", + "====================================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------------\n", + "Intercept -10.3426 4.469 -2.314 0.022 -19.164 -1.521\n", + "C(Embarked)[T.Q] -26.2113 20.221 -1.296 0.197 -66.128 13.706\n", + "C(Embarked)[T.S] -3.3575 3.108 -1.080 0.282 -9.492 2.777\n", + "C(Deck)[T.A] 3.9948 5.504 0.726 0.469 -6.871 14.860\n", + "C(Deck)[T.B] 7.4801 4.939 1.514 0.132 -2.270 17.230\n", + "C(Deck)[T.C] 4.4306 4.379 1.012 0.313 -4.213 13.075\n", + "C(Deck)[T.D] -5.0043 5.085 -0.984 0.326 -15.043 5.034\n", + "C(Deck)[T.E] -7.5249 5.559 -1.354 0.178 -18.499 3.449\n", + "Cabins -0.3417 3.554 -0.096 0.924 -7.358 6.674\n", + "Passengers 40.8216 2.369 17.229 0.000 36.145 45.499\n", + "Children -40.5959 8.482 -4.786 0.000 -57.339 -23.853\n", + "==============================================================================\n", + "Omnibus: 114.735 Durbin-Watson: 2.002\n", + "Prob(Omnibus): 0.000 Jarque-Bera (JB): 1355.085\n", + "Skew: 2.116 Prob(JB): 5.58e-295\n", + "Kurtosis: 15.719 Cond. No. 37.1\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", + "\"\"\"" + ] + }, + "execution_count": 1139, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "firstclass_clean = firstclass.drop(labels=['PC 17755'])\n", + "model = smf.ols('Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children', firstclass_clean).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 1140, + "id": "0ac923df", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "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AGzbtg233HILzp49i9jY2CY/x2g0wmg0it/rdDrExcVBq9VCpVJ1/hslIiKidtPpdFCr1S26f7tNi48z+fn5KCkpwbhx48RtarUaw4YNQ0ZGBgAgIyMDoaGhYugBgHHjxsHHxwcHDhywe94lS5ZArVaLX3FxcZ37RoiIiMilPCL4lJSUAACioqJstkdFRYn7SkpKEBkZabPfz88P4eHh4jGNLVq0CFqtVvwqLCzshNITERGRu/BzdQFcSaFQQKFQuLoYRERE1EU8osUnOjoaAHD+/Hmb7efPnxf3RUdH48KFCzb7a2trcenSJfEYIiIikjaPCD4JCQmIjo7G9u3bxW06nQ4HDhzA8OHDAQDDhw9HRUUFDh06JB6zY8cOWCwWDBs2rMvLTERERO7HbR516fV65Obmit/n5+fjyJEjCA8PR/fu3fHEE0/gb3/7G5KSkpCQkIDnn38esbGx4sivvn37YsKECZg1axZWrFgBs9mMOXPm4M9//rPdEV1EREQkPW4TfA4ePIjrr79e/H7+/PkAgOnTp2PNmjV45plnUFVVhYceeggVFRUYOXIktm3bhoCAAPE169atw5w5czB27Fj4+PhgypQpeOedd7r8vRAREZF7cst5fFylNfMAEBERkXvwunl8iIiIiDoCgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSYbHBJ8ePXpAJpM1+Zo9ezYAYMyYMU32Pfzwwy4uNREREbkTP1cXoKV+/vln1NXVid8fO3YMN954I+68805x26xZs/Dyyy+L3yuVyi4tIxEREbk3jwk+3bp1s/l+6dKl6NWrF0aPHi1uUyqViI6ObvE5jUYjjEaj+L1Op2t/QYmIiMhtecyjroZMJhP+85//YObMmZDJZOL2devWQaPRoH///li0aBEMBoPT8yxZsgRqtVr8iouL6+yiExERkQvJBEEQXF2I1vriiy9wzz33oKCgALGxsQCAlStXIj4+HrGxscjKysKCBQtw7bXXYuPGjQ7PY6/FJy4uDlqtFiqVqtPfBxEREbWfTqeDWq1u0f3bI4PP+PHjIZfLsWXLFofH7NixA2PHjkVubi569erVovO2puKIiIjIPbTm/u1xj7rOnDmDH374AQ8++KDT44YNGwYAyM3N7YpiERERkQfwuOCzevVqREZG4tZbb3V63JEjRwAAMTExXVAqIiIi8gQeM6oLACwWC1avXo3p06fDz+9K0fPy8vDpp5/illtuQUREBLKysjBv3jykpqYiOTnZhSUmIiIid+JRweeHH35AQUEBZs6cabNdLpfjhx9+wNtvv42qqirExcVhypQpeO6551xUUiJyd1qDCaV6E3Q1ZqgC/aEJkkOtlLu6WETUyTyyc3NnYedmImkoqqjGgg1Z2JtTKm5LTdJg6ZRkxIYGurBkRNQWXt25mYioPbQGU5PQAwB7ckqxcEMWtAaTi0pGRF2BwYeIJKVUb2oSeqz25JSiVM/gQ+TNGHyISFJ0NWan+yub2U9Eno3Bh4gkRRXg73R/SDP7icizMfiQR9EaTMi7oEdmQTnyLurZH4NaTRMsR2qSxu6+1CQNNMEc2UXkzTxqODtJG0fiUEdQK+VYOiUZCzdkYU+ja+n1Kckc0k7k5TicvQEOZ3dfWoMJc9Zn2u2UmpqkwfKpKbxhUatY5/GprDEjJMAfmmDO40PkqVpz/2aLD3mElozE4U2LWkOtZNAhkiL28SGPwJE4RETUERh8yCNwJA4REXUEBh/yCByJQ0REHYHBhzyCdSRO4/DDkThERNQa7NxMHiM2NBDLp6a0aSQOV+ImIiKAwYc8TFtG4nD+HyIisuKjLvJqXImbiIgaYvAhr8aVuImIqCEGH/JqnP+HiIgaYvAhr8b5f4iIqCEGH/JqnP+HiIgaYvAhr8b5f4iIqCEOZyev1575f4iIyLsw+JAkcCVuIiIC+KiLiIiIJIQtPkREDXB5EyLvxuBDRHQZlzch8n581EVEBC5vQiQVDD5ERODyJkRSweBDRAQub0IkFQw+RETg8iZEUsHgQ0QELm9CJBUMPkRE4PImRFLB4exERJdxeRMi7+cxLT4vvvgiZDKZzVefPn3E/TU1NZg9ezYiIiIQHByMKVOm4Pz58y4sMRF5IrVSjl6RwRjUPQy9IoMZeoi8jMcEHwC45pprUFxcLH6lp6eL++bNm4ctW7bgyy+/xO7du1FUVIQ77rjDhaUlIiIid+NRj7r8/PwQHR3dZLtWq8XHH3+MTz/9FDfccAMAYPXq1ejbty/279+PP/zhD11dVCIiInJDHtXik5OTg9jYWPTs2RPTpk1DQUEBAODQoUMwm80YN26ceGyfPn3QvXt3ZGRkODyf0WiETqez+SIiIiLv5THBZ9iwYVizZg22bduGDz74APn5+Rg1ahQqKytRUlICuVyO0NBQm9dERUWhpKTE4TmXLFkCtVotfsXFxXXyuyAiIiJX8phHXTfffLP47+TkZAwbNgzx8fH44osvEBjYtsUDFy1ahPnz54vf63Q6hh8iIiIv5jEtPo2Fhobid7/7HXJzcxEdHQ2TyYSKigqbY86fP2+3T5CVQqGASqWy+SIiIiLv5bHBR6/XIy8vDzExMRgyZAj8/f2xfft2cX92djYKCgowfPhwF5aSiIiI3InHPOp66qmnMGnSJMTHx6OoqAgvvPACfH19MXXqVKjVajzwwAOYP38+wsPDoVKp8Nhjj2H48OEc0UVERESiFgefb775psUn/eMf/9imwjhz9uxZTJ06FWVlZejWrRtGjhyJ/fv3o1u3bgCAf/zjH/Dx8cGUKVNgNBoxfvx4vP/++x1eDiIiIvJcMkEQhJYc6OPTsqdiMpkMdXV17SqUq+h0OqjVami1Wvb3ISIi8hCtuX+3uMXHYrG0u2BEREREruSxnZuJiIiIWqvNnZurqqqwe/duFBQUwGQy2ex7/PHH210wIiIioo7WpuCTmZmJW265BQaDAVVVVQgPD0dpaSmUSiUiIyMZfIiIiMgttelR17x58zBp0iSUl5cjMDAQ+/fvx5kzZzBkyBD8/e9/7+gyEhEREXWINgWfI0eO4Mknn4SPjw98fX1hNBoRFxeHZcuW4a9//WtHl5GI2kFrMCHvgh6ZBeXIu6iH1mBq/kVERF6qTY+6/P39xeHtkZGRKCgoQN++faFWq1FYWNihBSSitiuqqMaCDVnYm1MqbktN0mDplGTEhrZtjTsiIk/WphaflJQU/PzzzwCA0aNHY/HixVi3bh2eeOIJ9O/fv0MLSERtozWYmoQeANiTU4qFG7LY8kNEktSm4PPaa68hJiYGAPDqq68iLCwMjzzyCC5evIiVK1d2aAGJqG1K9aYmocdqT04pSvUMPkQkPW161DV06FDx35GRkdi2bVuHFYiIOoauxux0f2Uz+4mIvBEnMCTyUqoAf6f7Q5rZT0TkjdrU4pOQkACZTOZw/2+//dbmAhFRx9AEy5GapMEeO4+7UpM00ATLXVAqIiLXalPweeKJJ2y+N5vNyMzMxLZt2/D00093RLmIqJ3USjmWTknGwg1ZNuEnNUmD16ckQ61k8CEi6WlT8Jk7d67d7e+99x4OHjzYrgIRUceJDQ3E8qkpKNWbUFljRkiAPzTBcoYeIpIsmSAIQked7LfffsOgQYOg0+k66pRdqjXL2hMREZF7aM39u0M7N3/11VcIDw/vyFMSERERdZg2PepKSUmx6dwsCAJKSkpw8eJFvP/++x1WOCIiIqKO1KbgM3nyZJvvfXx80K1bN4wZMwZ9+vTpiHIRERERdbgO7ePj6djHh4iIyPO05v7d4haf1nRYZmggIiIid9Ti4BMaGup00sKG6urq2lwgIiIios7S4uCzc+dO8d+nT5/GwoULMWPGDAwfPhwAkJGRgbVr12LJkiUdX0oiIiKiDtCmPj5jx47Fgw8+iKlTp9ps//TTT7Fy5Urs2rWro8rXpdjHh4iIyPN0+jw+GRkZNiu0Ww0dOhQ//fRTW05JRERE1OnaFHzi4uLw0UcfNdn+r3/9C3Fxce0uFBERuRetwYS8C3pkFpQj76IeWoPJ1UUiapM2zePzj3/8A1OmTMF3332HYcOGAQB++ukn5OTkYMOGDR1aQCIicq2iimos2JCFvY0Wu106JRmxoYEuLBlR67WpxeeWW27Br7/+ikmTJuHSpUu4dOkSJk2ahF9//RW33HJLR5eRiIhcRGswNQk9ALAnpxQLN2Sx5Yc8TptafID6x12vvfZaR5aFiIjcTKne1CT0WO3JKUWp3gS1Ut7FpXINrcGEUr0JuhozVIH+0ATJJfPevUmLg09WVhb69+8PHx8fZGVlOT02OTm53QUjItfghzs1pKsxO91f2cx+b8HHfd6jxcFn0KBBKCkpQWRkJAYNGgSZTAZ7I+FlMhknMCTyUPxwp8ZUAf5O94c0s98bNPe4b/nUFP5x4EFaHHzy8/PRrVs38d9E5F344U72aILlSE3SYI+dx12pSRpogr3/muDjPu/S4uATHx9v999E5B344U72qJVyLJ2SjIUbsmzCT2qSBq9PSZbENcHHfd6lTZ2b165dC41Gg1tvvRUA8Mwzz2DlypXo168f1q9fz2BE5IH44U6OxIYGYvnUFJTqTaisMSMkwB+aYOn0/eLjPu/SpuHsr732GgID65/3Z2Rk4N1338WyZcug0Wgwb968Di2g1ZIlS/D73/8eISEhiIyMxOTJk5GdnW1zzJgxYyCTyWy+Hn744U4pD5G34Yc7OaNWytErMhiDuoehV2SwZEIPcOVxnz1SedznTdoUfAoLC5GYmAgA2Lx5M/70pz/hoYcewpIlS7B3794OLaDV7t27MXv2bOzfvx9paWkwm8246aabUFVVZXPcrFmzUFxcLH4tW7asU8pD5G344U5kn/VxX+PfDyk97vMmbXrUFRwcjLKyMnTv3h3ff/895s+fDwAICAhAdXV1hxbQatu2bTbfr1mzBpGRkTh06BBSU1PF7UqlEtHR0Z1SBiJvxr4cRI5J/XGfN2lT8Lnxxhvx4IMPIiUlxWa25uPHj6NHjx4dWT6HtFotACA8PNxm+7p16/Cf//wH0dHRmDRpEp5//nkolUq75zAajTAajeL3Op2u8wpM5AH44U7kmFrJ3wVv0Kbg89577+G5555DYWEhNmzYgIiICADAoUOHMHXq1A4toD0WiwVPPPEERowYgf79+4vb77nnHsTHxyM2NhZZWVlYsGABsrOzsXHjRrvnWbJkCV566aVOLy+RJ+GHOxF5M5lgbxZCN/fII4/gu+++Q3p6Oq6++mqHx+3YsQNjx45Fbm4uevXq1WS/vRafuLg4aLVaqFSqTik7ERERdSydTge1Wt2i+3ebOjcDwN69e3Hvvffiuuuuw7lz5wAA//73v5Gent7WU7bInDlzsHXrVuzcudNp6AEgrhyfm5trd79CoYBKpbL5IiIiIu/VpuCzYcMGjB8/HoGBgTh8+LDYaqLVajtt4VJBEDBnzhxs2rQJO3bsQEJCQrOvOXLkCAAgJiamU8pEREREnqVNwedvf/sbVqxYgY8++gj+/lfm9hgxYgQOHz7cYYVraPbs2fjPf/6DTz/9FCEhISgpKUFJSYk4iiwvLw+vvPIKDh06hNOnT+Obb77Bfffdh9TUVC6aSkRERADa2Lk5OzvbZgi5lVqtRkVFRXvLZNcHH3wAoH6SwoZWr16NGTNmQC6X44cffsDbb7+NqqoqxMXFYcqUKXjuuec6pTyuxNWziYiI2qZNwSc6Ohq5ublNhq6np6ejZ8+eHVGuJprrgx0XF4fdu3d3ys9ur44MKufKDThTZkBFtRkB/r7YfuoCsot1eOm2/lw9m4iIqBltCj6zZs3C3LlzsWrVKshkMhQVFSEjIwNPPvkkFi9e3NFl9GhFFdVNVrxOTdJg6ZRkp0HFXliqrKnFgo1Z2JdbJh43IjEC949IwOKvj+HNOwey5YeIiMiJNgWfhQsXwmKxYOzYsTAYDEhNTYVCocDTTz+NBx98sKPL6LG0BlOT0APUr3S9cEMWlk9NsRtU7IWlJXcMwLdZRTahB4D4fUr3MJToaiQffPgYkIiInGlT52aZTIZnn30Wly5dwrFjx7B//35cvHgRarW6RaOtpKJUb2oSeqz25JSiVG9qst1RWIoMUWBvo9BjtS+3DClxoThbXg2toek5paKoohpz1mdi7Fu7cfv7P2Lsm7vx2PpMFFV0zjIqRETkeVoVfIxGIxYtWoShQ4dixIgR+Pbbb9GvXz8cP34cvXv3xj//+c9OW53dE+lqzE73V9rZ7ygsGWstTs9l3W8vTElBc61rUg6ERER0RasedS1evBgffvghxo0bhx9//BF33nkn7r//fuzfvx9vvvkm7rzzTvj6+nZWWT2OKsDf6f4QO/sdhSWFn/OMqg70R8ZvZYgIkuZjnZa0rvGRFxERtarF58svv8Qnn3yCr776Ct9//z3q6upQW1uLX375BX/+858ZehrRBMuRmqSxuy81SQNNcNMbsaOwlFlYgRGJEXb3jUyMQEiAH1al59sNU1LQltY1IiKSnlYFn7Nnz2LIkCEAgP79+0OhUGDevHmQyWSdUjhPp1bKsXRKcpPwk5qkwetTku22QDgKS6vS8/HYDUkY1WjfqEQNnh7fBzPX/Iyh8WF2w5QUtKV1jYiIpKdVj7rq6uogl1+5sfr5+SE4OLjDC+VNYkMDsXxqCkr1JlTWmBES4A9NsOORRtawtHBDFvY0eHQzND4MPcKVeHdqCkp0NThbXt9hN7OwAlM/2o8RvSLw4h+vQanehN9Kqzx2RFNbR2VZA+MeO4+7HLWuEVHLccQkeYtWrc7u4+ODm2++GQqFAgCwZcsW3HDDDQgKCrI5buPGjR1byi7SmtVdO5v1Q8ZRWGq4XxXoD7mvDxZtOtrq+YLcSVvnPGr4+saB0dq6FuMhdUDkjtr7u0nU2Vpz/25V8Ln//vtbdNzq1atbekq34k7BpzW0BhPmrM+027k3NUnjcL4gd9JR78FRYORfq0Rt4w2fL+T9WnP/btWjLk8NNJ6oNTdqZyOaDp4pR4XB7PY3/Y4alaVWNn1v/GuVqO04YpK8TZtmbqb2aS7UtPZG7WhEk1Lui3empuC5zUdtJj90x5u+s/cwc2QCjLV1yCwob3Vwa25+n1du649LBpPbBkIiV+OISfI2DD5drLlQ05ZlLhyNaJo5MgGr9+U3WeaiuSUzXMHee7AGt9X78vHujlxxe2uCW3N/reZe1OOBtQdbfV4iqeCISfI2bVqygtqmJbMLt2WZC0dD4FPiQpuEnubO5Sr23kNzwa3hbMxagwl5F/Q4fOYSTpXo8Ov5Svx2UY86QYBS7nh+qYYzYnOWZ+mxXjeZBeXIu6jn/70dbZmPjMidscWnC7Uk1LSlWdnREPjmaKvdp4na3ntIiQu1aelpqGHfAnutaNZV6z/7qQDvTE3B4+szYTDVNTlP4xmx2WdBOtj3q2Ucfb44m4+MyJ0x+HShloSatjYr25svyGxxvr6Xs5YQV2j8HswW5wMOK2vMDlvRGq5av2ZfPmaOTGgSokYkRiCzsMLuecm7teWRspS1dj4yInfGR11dKFjhPGcGKfyabVYODvBz2DSvVsrRKzIYg7qHoVdkMHxkMofLXIxIjICvj/vNuN3wPYQ386EaEuDvtBXNump9em4ZrutpWw/WFqFV6fl2z0verS2PlKWu8ecLQw95Krb4dCG5rw9GJEbY7XczIjECcl8fp83Kf5vcH89uOoofTl6w2e6oad7PR4b7RyQAgM3PtN703TH4NBQc4IeRiRFIt1NfIxMjEBzgh6KKaqfnsPbhCfD3xfb5o1FZY0aQwg8Hz5TbffzFPgvSwJFKRNLF4NOFKqpNToOIttoEIAixoYF4486BKK8yQVdTC1WgH1QB/nj1vydsQg9g2zQPwGaYfLDCD5//VICU7mGYOSIBxloLFH4+yCyswOc/FeDvdw7ssvfeFlXGWswYkQABTetrxogEVBlrm300aO3Dow70R6/IK8urBCn88F18GPssSBRHKhFJF4NPFwpW+GPqRwcwc2RCkyDy+PpMbJkzEoD9TpejkjSYfl0P7My+2KSV4uCZcpQbzHj+62M2r7mxbySen9gPz20+1mQ4uCfc4CsMJjy+PtNhff3ngWHo1S0Io5I0dh9bjErU4Og5LUbZacVhnwVp49puRNLVqiUrvF1nLVlxrtwAXU0t9DW1qLVYsC+vDKvS820CzKgkDd693GrjaHr4EYkRSOke1qST7pwbEvFLQbnNJIVWN/aNxN9uHwB9Ta3H3eBPFesw4Z97He7fNncUYtQBOFmsw/KduU1aheZcn4TCS1W4NiECFkGAttp9Z66mrse13Yi8R6ctWUGtV1hWhXPaagQp/FBrERAS4I+RiREY1iMc//efQzCY6jAiMQKPjkmEsdaCyppap511Z15+VNaQs2HfaScvYOHNtTaPeTyFj4/MaZ8oXx8ZSvUmzFx70G6r0ANrf8ans/6An09fwtNfZYmv9ZYhy1x/rH3Y6kckTQw+nai43ABjnQXLd9i2RoxMjMCLf+yPjY8Ox7nyGvEmvfGR61BtbjrXTEMNJ9xryLq0Q0pcKIy1FgT4++JwQTlWped7bEfNlnTO1labYTDVOQx+RnMdXvjmuM02bxiyzDloOoa9td2IyLsx+HQis0XAC98cb9JikZ5bhhe/OYZXJw8Ql0sAAF1NLSKCnH8IhwbadrpMTdIgLjwQ796TglXptks7jEqMwLv3pEAV6JkdNSOC5Fjy7UmnnbObe1BbZaqzO3GhJ09UyDloiIjajsGnE1WZ6hwuGZGeWwZDo9YdVUD9PD439o1E7xhVk9ab7GIdekUGi8OyrU3zNbUWvLLlRJNh3/V9fmT4+13uPXrLEbVSjpdu64+FG7Kcds521El1VJIGhwvKHZ7fU1vCuFo2EVHbMfh0Il0zS0I0vPGOTIxA2OU+Gs9P7IdFm47a3OxHJkbgtdsHIEoVgAA/E/x8ZKgy1eLXC3qEKPwwsHsYDhVUNGnd2JtbCl21GVGqgI59c12kuX4YzuY9evm2/rjlHcedoz11yDLnoCEiajsGn07U3COmkAB/bH1sJPRGM65SByJKFQCtwYRnNx+z+3jsuc3HsOSOASgsr8byHTlN+r04WpPKndbkaovm+mE4CkfGWgsGdw91OgGiJ+qoOWjYOZqIpMgzP/k9RLDc1+nMw0p/X4z++y6xs3NJRTWqTHXNPsZoHHqAK51/7a1J5W5rcnUGe+Hot4v6ZidA9EQdMQcNO0cTkVRxra5OpAr0x98mD8DIRutljUyMwN8mD8D/ThYDqG/Neev7UzDXWXCpyvkaQcZax/2GrGtTNTQiMQJBcmnmW221GY+vz0RK9zB8PH0o3p82GB9PH4qU7mF4fH1ms48i3ZX18V7jNd1aOjFlc52jG67/RkTkbaR5R+wiaqUcNaY6PHtrPwgAKqvNCAn0hwwCzl4y4O20+pYZTbAcc8f1xsJNR+3O09NQcyGm4XD3EYkReOyGJIQqPbMvS3upAvydDnX31D4+QPvmoGHnaCKSMgafThYVGogAuS9K9SboARRXVCOzsMJm5ubXpyTj5a31w95Tuoc5X8jU33kjXVx4IN6fNhgKPx9cqDSiR7hSsjcxR4+ElHJfPD+xHyyCgMyCco/t39LWOWjYOZqIpIzBpwtYb1CmOgvuWrm/yf5IlUIMOqvS8/HO5aUr7E3aV1tncRiMRiVpECT3gyZYAVWgH/pfpXbr0Vyd3bnW3ogvpdwXq2b8Hu/tyMWijUfFY6XUv4ULdBKRlDH4dKHwILndzs76miujsAymuiYLc8aHK/Hd8RJsPnwWC2/ui7/e3BcluhrIZDJxdubrekXgyRt743SZATXmOuiNtcgsqMCY33Vzy3WHuqpzbeNHQmFKOZ7bfAx7c6U7+R8X6CQiKfPK4PPee+/hjTfeQElJCQYOHIjly5fj2muvdXWxEKUKwGu3D8BfNx21CT+qRsOqG/dL+W7uKKQmaXDXkKuxaNNR21XbEzX472MjUW2uw9++PdGklShBEwSl3NetbuZdPfNww3NVmWqbhJ6GP79EV9Pmn+0pw8OdzX3Uks7RRESezOuCz+eff4758+djxYoVGDZsGN5++22MHz8e2dnZiIyMdHXx0D0iCG/eNQjlVSboamqhCvBDSICfw2HvoxI1UPj5QKkKwLObjjZZgX1vbin251/Ct1lFDoe4vzZ5gFvdzLq6c23D1qX3pw12euzZ8mpEqwJa/fM9bXg4F+gkIqnyuuHsb731FmbNmoX7778f/fr1w4oVK6BUKrFq1SpXF00UpQpAnxgVrk0IR58YFa4KU+K125sOex+RGIHpI3pg4vJ0nC2vbhJ6rCJDFA737cstQ5XJvear6crOtY1blxR+zV/ypfrWDef21OHhaqUcvSKDMah7GHpFBjP0EJEkeFXwMZlMOHToEMaNGydu8/Hxwbhx45CRkdHkeKPRCJ1OZ/MFAL+e14nH5JyvRFFFNQCgxlyHY+e00F+e+O5ipREniq4cm3dRj7PlBgCAuc6CY+e04k2+TG/EsXNa8dj80ioUXqo/ts4iQFdTixcmXYP/PTEK/7x7EBZP7ItBcaHiTMy5F/QO33eOk30AUKStAVAfOI6d08JcVz/k/Wy5AXkXr7z2RJEOFyuNAAC9sRbHzmlRc3k9saKKauScrxSPPVWiwwVd/XkNJttjS7Q1+LXBsb+er0Sx9kodllwujyPW0W7G2vr6tgahi5VGHC+6Uod5F/ViHVrr2zpLtbW+G7cuZRZWYGSvcLs/97pe4cgsrEDO+UqcLq0Stx87pxXnV9Ia6uuw9nIdFl4yILOwwmkLVvHl93uuotrm//FksQ4XKuv3VTWq72KtbX1nl1Ti/OX6rjbV10v15Xo6r6tBdsmVY3Ma1fexc1pxssYLlTU4WXzlms29oMe5y9e3qdZiU9+letv6/q1Bfdda69tQf+ylKpPN9X26tAoFZfXHWiwCjp3TouJyAKww1B9bZ6lfYbagzID8RvVdpq+/DrXVttds4SXba/Z4kVa8ZisvX9/G2roG9X2lXk4WX7lm7dV342vWep1a69Bw+Q+IC7oanCrp+s+IhvVdfrm+hcur9J4pq8KZsvo6FIT6Y8sbXbPW+i685Li+3eUzwuaa1TW+ZivFa7YjPiMa1rf1mq1zcM1aGlyzrfmM+K3RNVuqt71mTZenIeFnRPs/I1rCq4JPaWkp6urqEBUVZbM9KioKJSUlTY5fsmQJ1Gq1+BUXFwcAePjfh8VjHlufiZV7fgNQ/8s6cXk6jp6t/8/bePgspn50ZZTWU1/+guXb6/vmlFeZMHF5Og6evgQA+O/RYtzx/o/isc9tPopl/8sGUP+hMHF5On49r4dFAOZ+fgQvbz2J93bmiSFg4+GziAsLxKZHrwMAPDK6J76bOwrPTOiNpd+dclov1oU6D56+hInL08UPxOXbc/HUl7+Ix039aD82Hj4LADh6VouJy9PFD/+Ve37DY+szxWNnrPoZ6w4UAAByzusxcXm6eGGuzTiNWZ9cWXX+4X8fwup9pwEABZcMeGTdYQy6Wm23rMEKX3x95BwA4ILOiInL0/FjbinyLujx3s5c3LkiQ2xBWfBVFt7+IQdA/bpoE5en46f8+vredrwEt723r0nr0qr0fDw9oa/dn/2X4T2wKj0f/zlQgJe2HBe3T1yeju+P118/Gb+VYuLydPHG9ub32Xjj8v+jI9Yb3bs7cjH/iyPi9mn/OoAvD9bX94liHSYuTxc/YP61Nx+PrrtyHc5c8zP+nXEGQP2H+cTl6eIN6d8ZZzBzzc/isY+uO4x/7c0HUP9BOnF5Ok5c/iD78uBZTPvXAfHY+V8cEfuTlVXV1/fhggoAwJZfivCnD678wbBo41G8+X39e9Ub66/ZjN/qA9/3x0swcXm6eOxLW47j1W9PAADMFgsmLk/HzuwLAIDdv17ExOXpYkBZuu0kFn99THztbe/tw7bL9f1Tfv01a51s8u0fcrDgqyzx2Ls/3C9eL78U1l+zF3T1H4grduVh7mdX6vu+VT/h858LAQCnSioxcXk6Ci4ZoDWY8I/vf8WM1T8h76IeWoMJsz45iLUZpwHU3xAnLk9Hzvn6+l53oAAzVl2p7678jEi/3D/th5PnMXF5unhjeGXrCbyytb6+6ywCJi5Pxw8nzwMA0nPrr1lrcFv2v2w8t/nKiMY73v8R/z1aP5mqu3xGTFyejlOXb9Sf/1yI+1b9JB4797MjWLErD8CVz4hfCuvr++sj53D3h1fquyWfEVaLvz6GpdtOAqgPVBOXp2P3rxcBADuzL2Di8nSYLfU311e/PdGqz4iGI0j/9EEGtvxSBAA4XFCBicvTUVZVf83yM6LtnxGVrZiQViZY/2TwAkVFRbjqqqvw448/Yvjw4eL2Z555Brt378aBAwdsjjcajTAajeL3Op0OcXFx+PnXQgxNuhpAfTIOUvghNjQQNeb6lpcemiAEK/xwsdKIi5VG9ItVAai/2BR+Prg6TAlznQXZJZXoHqGEKsAfZXojirU16H9V/Q0/v7QKfj4yxIUrUWcRcLJYh7gwJU6V6HC3nSHvj4xJwN1Du+O5TUeRnndJ3P6HhDA8MKon1v542m4foZS4UDx3ax8M6REBXY0ZBWUG9I4Ogb+vD86WG2CstaBXt2AA9X/NdQtRoFuIAnpjLU6XViExMhgB/r4oqqhGlbEWSVEhAOr/mgtXyhGpCoDBVIvfLl45tkRbA12NGb+7fOyv5ysREuCHGPWVOgzw98HLW0406Vz7yOhe6K4JwlWhgTDW1uHH3DKs3JOHjN8u2Ry3dEoyqs11kPv6IC78Sn3HhSuhDrxS34H+vhj71m6bOpk7LhG1dQJ+F1VfD+Y6C/bllWLLkSL8vkc4FkzojSCFP3poggDU/3URGxqI8CA5tAYzCssN6BMdAj9fH7EFYsbqn+HItrmj0CdGhXMV1ag21SExsr6+TxbrEBEsR2RIAKqMtchvUN/F2mroa67Ud3ZJJUKV/ohSBaDaVIe8i3r06haMQLkvzutqUGEwo3d0iHjNBjeq7wRNEIIUfrhQWYMyvQl9Y+qv2dwLegTKfXFVaCBMtRb8er4S8RFKhAT4o1RvxHldDa6Jrb9mf7uoh//l+q6ts+BUSSXiwpRQK/1xqcqEoopq8fo+XVoFH5kM3SOUsFgEnCjW4eqwQIQq5agwmHC2vBp9Y1Tw9ZGhoMyAOkFAQoP6jlEHICJYAW21GYWXrlyzhZcMMNVduWaPF2kRGRKAbiEKVNaYcabMgKSoYCj8fC/Xdy0SI0Ou1HdQ/TVrre8guS8Wf3O8Sd+sh1J7IjEyBNHqALEOe3YLglLuhwu6GlwymNAnWiXWd1d+RqiV/iivMuFcRTWuiVVBJpOJrT3xEUEQBAHHi3S4KjQQYQ2uWWt9F14yoNZiv77d6TNCvGZ1NSiranjNViJQ7id+RuSc14vX7MVKIy5UXrlm8y7qm/2MaFjfvpevWWt9N75m+8Wo4HP5mrUIQos/I8x1FvRscM1GqQKgCb5yzf4uKgRyPx9+RrTjMyJGKUATHgatVguVSuXw8xjwsuBjMpmgVCrx1VdfYfLkyeL26dOno6KiAl9//bXT1+t0OqjV6hZVXGc5WazDzf9suqL41sdG4vXvTtrtyzOuTySendgXzzVa3HREYgQeuz4JsaEB6B4R1KnlbgvrKChHnWu1BhPmrM+0+xgpNUnTotFfWoMJj63PtAlYSrkv3pmagjX78m3ConVUU2uH/9v7Ga0tJ3W9jri+iMg9tOb+7VWjuuRyOYYMGYLt27eLwcdisWD79u2YM2eOawvXQo5GePn5yBx2YP7h1AU8PaE3UrqHiXP/KPx8kFlYgZlrf8bmR0d0RdHbTAAAWdPtHTH6S62UY8kdA3BRb0KNqQ5BCl8AMuRcqMSyKcmoNlvaPaqJw8M9E5fuIJImrwo+ADB//nxMnz4dQ4cOxbXXXou3334bVVVVuP/++11dtBa5OkyJV28fgGcbzfWjq3E+MktXXYuUuFBEqhTQ19QhJMAPKXGhUMp9mx1F5QotGf7dEaO/iiqqsXDDUZu5e6xrmMlkMvS63KTcXhwe7nm4dAeRNHld8Ln77rtx8eJFLF68GCUlJRg0aBC2bdvWpMOzO4uPCMLSKcmorKkVb6KWZp5IKhW+yLk8gsVYa0G1uQ4XdDX4dNYfIMC9nma2dALD9i6toDWYsOCrrCYTFlofB05MjsUt/aM7LJy0de0scg0u3UEkTV4XfABgzpw5HvNoy5Grw5Q23+df1DtdvFTp74tvjxbbtBKNSoxAz27BiFW713pdLX3E0JalFRrOnhwo93U4S/O+3DLMHJHAxxkSxqU7iKTJq4azezMZgMduSMIIO5McPnZDEo4XaTGoexg+nj4U708bjFUzfo+B3cPw0Z7fUGtxsxafaucT+lnn2bD2nUlN0tjsd9R3pqiiGnPWZ2LsW7tx+/s/4reLVXDGWGvh4wwJa+31RUTewStbfLxRmcEEc60FEwfE2nRgvqAzIkalgMFUi8yCcps1vqwruhvrLMi7oHebNaSUcueXnVLuK/67pX1n7D0+a26WZoWfj6QfZ3jK2mKdiX2ziKSHwcdDqAL88ZePf8LMkQmIVCnE7ee01aipteDj9HyHa3U9f2s/m7lsXL2GlK+PDKMSNXYfQ41K1MDXx3aIV0v6zth7fJZZWIFRiRF2R8ONSIzAhUojhsaHteEdeD5PW1usM7FvFpG0MPh4iMgQBYbEh9m06FjdOiDGbt8foD78NH7Q1VmroLeUwtcHc27ohZsHRCNKFQBjreXypGbVSIoMRqCfT6tbqOyN0FmVno9370kBILM7qqtHuFKSN7yWdi4nIvJGDD4eQq2U4/UpyU1uWKMSI8Q1VhzR29nvynlKTBYLqkx1djtjD510DV7cchw/nLoobm9JS4S9EToGUx3mfJqJh1J74tmJfaGvqYVS7osguR9Clf6Svblz/hoikjIGHw8SGxqIv985EHkX9KioNouTFAYpnP83BjvYr23F2iYdySLA7qO5vblleHnLcQzqHmYTfFrSEuFohI7BVIfDZ8px/3U9oI5u2i9Iin1cOH8NEUkZg4+HiVIFoM4i2MwSPKR7qOM+M0ka1NZZ8PH0oeIjpcMF5ViVnm/TibgrWSyCw0dz6blluH9EQpPtLWmJePbWvpheXg2ZTCa+x6HxYQ5HgEm1j4u1dUwp98XMkQlIiQu1uTZUgZ7T4Vuq4ZWI2o7BxwM1HokSqPDFK5P74/nNR2068o5KjMArt/XHy1uPY0eDFpQRiRH4ePpQ+PnaWSeiC1hXiXbEWGuxu91RS4S9EDMqSYNvHx+FMDuPtKTex0UTLMeNfSNx97XdsXpfvk2/sZGJEfjz0DgXlq7lpBxeiajtvGqR0vZyh0VK2yK7RIeLOiMiQuQQIENltRkhgf4Ilvvi5Ub9ZaxGJWrwt9v7I94Fi5fmXdA3WTEduNICMf6aKBReqrZpnTKY6rB9/ugmS0y0ZaFJRz/fyt7P8Tbnyg14ZkOW3ZY3T1igkwuMElFDkl2kVKpClXIs23YKfWPV4mMLvbEWkSqF3dADAHtzS2Fy0LLS2ez1x7GumN64BWJEYgTemZqCz34qsDuTbqnehENnyjHnhsQmj2xWpefbfTzGPi5Ajdni8HGjJ3RwZgdtImorBh8vEKUKwAuTrsFfNx21CQ2rpg91+rrmRoN1Fnurmc8cmYDV++zPRSQD8NrtA+zeyPRGs9PAZC/EcI0mzw9/nl5+InIdBh8v0T0iCG/eNQjlVSboamqhCvCDj8x5Hx5X3uAb91NS+PvanaMIqO/wXOkgpKkD/bHsf9kOJ2989pa+KKqotunzwTWaPD/8eXr5ich1uFaXF4lSBaBPjArXJoSjT4wKUSpFk3WIrNzhBq9WytErMhiDuodBX+O89clgrLO7vabW8SObfbllMJjqsHBDFrSGK+uDcY2mK+HPHne4Nprj6eUnItdhi48Xs/dICXDPG7y6mSHUjvbrqp0Hpot6o90+H1Jfo8mTrg17PL38ROQ6DD5ezlNu8FEqBUYlaex2WB2VpEFUg/XJGlIFOL+E5b71jZr2+nxIfY0mT7k2HPH08hORazD4SIAn3OAdLsmRpMEyJ3/BhwXJMTIxwmbpC6sRiRHILKwAwD4fjnjCteGMp5efiLoegw+5jdjQQLzbzF/w9mbqfe32AXh2k+3kjSMSI3D/iAQ8vj6TfT6IiEjE4ENuxdlf8I5m6n19SjL+ftcglBtMOFdeDQDILKzA4+szHS5ZwaUOiIikiTM3N+CpMzdLQUtn6rUGGmd9PrjUARGRd+HMzeR1WjpTr70Wo4atO8EKPxw8U45DZ8qbnEMK63QREUkd5/Ehj9DWmXrPlRtwvEiH7POVKDeY8fUvRUg7UYJ3pqY0WZ3eGqBIOrQGE/Iu6JFZUI68i3qb+Z6IyDuxxYc8Qltm6j17yYCFG7NsRnyNStTgyfG98eHuXMwcmdBktmgudSAdfORJJE0MPuQRWrrMhPWxVp0g4JUtx5sMc9+bWwoBAp6Z0AeX7LTucNi7NGgNpiahB+AjT6LO5C6DShh8yCM0N1MvAJwurcLzm+uHtX88fajN8PaG0nPL8EhNLdRK25DDYe/SwdXdibqWO7WwMviQx3A0U6/BVIdvj5Ug7UQJBnYPw4wRCVDKnV/a2ur6vzisuNSBtHB1d6Ku424trAw+5JEEAJDVL1L6/NfHcO+weNz7h3isSs/Huzty8fH0oU5fr/DzgdFch42PDEeAvy+CFH5NOju7E3dpIvYWXN2dqOu4Wwsrgw95DHtNpaOSNJh+XQ+EBcnx9/+dEvv0ZBZWYERihN2V261LWYzoFYF9eWViB2d36djaMOSoA/0h9/XBok1H3aKJ2Fu0tM8YEbWfu7Wwcjg7eQRHTaV7c0qxel8+5H4+Nn16VqXn4/4RCRiRGGFzvHUpixNFWuzLK0NKXKi4z9rs6sohzUUV1ZizPhNj39qN29//ERszz2HBRsdNxBx+3TbWPmOpSRqb7XzkSdTx3K2FlS0+5BGcNZXuyy2DvqbWZpvBVIfH12di5sgEzLzc58dgqkVmYQU+PXAG9wyLx+PrM/H3OwfavM6VHVvthbuUuNAmQ+6t2Am3fbi6O1HXcLcWVgYf8gjNNZXa659jMNWJoWHLYyNQbjCJLTyPr8+EwVQHhV/TRk9XdWy1F+6MtRanr2En3Pbh6u5Ena+5Ubld/TvI4ENuxVEn3uaaSgP8fe326VHKffH8rX1hNNcHCJlMJu6z9vVpzFUdW+2FO3vBrCF2wiUiT+BOLawMPuQ2nM3z0FxTqVLui8duSAIAMfwo5b74ePpQvL8zF3s3HROPH5EYgY+nD0WN2YLZnx5uci5XdWy1F+6cddJmJ1wi8iTu0sLKzs3kFpqb5wGA086oMaGBiA9XYmJybH3YmTYYnz30h/rQ0yg07Mstw/u78lCqN8JgqmtyLlf9YlrDXUPWTtojG3XSdnVZiYg8lUwQBMHVhWjO6dOn8corr2DHjh0oKSlBbGws7r33Xjz77LOQy+XiMQkJCU1em5GRgT/84Q8t+jmtWdaeOlbeBT3GvrXb4f7t80ejV2QwzutqUF5lgq6mFqpAP4Qp5YhSBYjHWR+VVdaYEeDviwn/3OvwnGnzUuEjk7m82bWhoopqm+fgSrkvXvrjNRgaH4Zqcx0MpjqoA/0RGaJweVmJiNxFa+7fHvGo69SpU7BYLPjwww+RmJiIY8eOYdasWaiqqsLf//53m2N/+OEHXHPNNeL3ERERjU9Hbqgl8zy0ZMrzhk2pmQXlTs9ZZazFoO5h7Sx5x2r4HLzKaIYqUI7nNx/D019licdY37Na6cKCEhF5KI8IPhMmTMCECRPE73v27Ins7Gx88MEHTYJPREQEoqOju7qI1E7NdV4OUvi1espzd5s7oqWs4U1rMGHO+kzszXWPad6JiLyBx/bx0Wq1CA8Pb7L9j3/8IyIjIzFy5Eh88803Ts9hNBqh0+lsvsg17PVvsUpN0kDu69PslOetPae7dwxuyTTvRETUOh4ZfHJzc7F8+XL83//9n7gtODgYb775Jr788kv897//xciRIzF58mSn4WfJkiVQq9XiV1xcXFcUn+xobibdimrnN3l789l4+uy87jbNOxGRN3Bp5+aFCxfi9ddfd3rMyZMn0adPH/H7c+fOYfTo0RgzZgz+9a9/OX3tfffdh/z8fOzda7+Dq9FohNFoFL/X6XSIi4tj52YXatg5uWGH45Z2fm7NOd1de94zEZGUeEzn5ieffBIzZsxwekzPnj3FfxcVFeH666/Hddddh5UrVzZ7/mHDhiEtLc3hfoVCAYVC0eLyujNvWb3b0TwP7Zny3F3mjmgtd5vmnYjIG7g0+HTr1g3dunVr0bHnzp3D9ddfjyFDhmD16tXw8Wn+Kd2RI0cQExPT3mK6vZaMdvJ07jbleVfo7PfsLWGZiKg1PGIen3PnzmHMmDGIj4/H2rVr4et7ZV0m6wiutWvXQi6XIyUlBQCwceNGPP/88/jXv/6F+++/v0U/xxPn8RFH/jhoFfC2kT+e+tiqPRy95/YEFymEZSKSDo951NVSaWlpyM3NRW5uLq6++mqbfQ1z2yuvvIIzZ87Az88Pffr0weeff44//elPXV3cLtWSkT/eFAw89bFVe9h7z+0JLs3Nku1tYZmIqCGPGNU1Y8YMCIJg98tq+vTpOHHiBKqqqqDVanHgwAGvDz0AR/5IUXPBRWtwPgKOw+SJSMo8IviQY546SR+1XXuDC8MyEUkZg4+H8/RJ+qj12htcGJaJSMo8oo8POSbF0U5S197gogmW48a+kegdo0JKXCiMtRYE+PvicEE5sot1DMtE5NUYfLxAw4UtpTTaSaraO7+PWinH8xP7YdGmo3h3R664fWRiBF67fQCvGyLyanzU5SXUSjl6RQZjUPcw9IoM5s3Li7V3KQ6twYRnNx/Dvtwym+3puWV4bvOxZjtHExF5Mrb4EHmg1rbyNZzzJ1Dui4FxoTh0phwGU53Ncd44BQIRUUMMPkQeqqVzGtmb82dEYgTemZqCx9dnNgk/HNVFRN6Mj7qIvJijOX/25ZZh9b58zByZ0OQ1HNVFRN6MwYfIizmb82dfbhlS4kJttnEKBCLydnzURR6FC2u2TnNz/hhrLeK/OQUCEUkBgw95DC6s2XrNzfnTUxOEzY9exykQiEgy+KiLPEJ716eSquZm9o5RB3AKBCKSFAYf8ghcWLNt2jvnDxGRt+GjLvIIXFiz7TizNxHRFQw+5BG4sGb7tHTOHyIib8dHXeQRuAo9ERF1BAYf8gjsq0JERB2Bj7rIY7CvChERtReDD3kU9lUhIqL24KMuIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgzO40NE1IjWYEKp3gRdjRmqQH9ogjh/FJG3YPAhImqgqKIaCzZkYW9OqbgtNUmDpVOSERsa6MKSEVFH4KMuIqLLtAZTk9ADAHtySrFwQxa0BpOLSkZEHYXBh4joslK9qUnosdqTU4pSPYMPkadj8CEiukxXY3a6v7KZ/UTk/hh8iIguUwX4O90f0sx+InJ/DD5ERJdpguVITdLY3ZeapIEmmCO7iDydxwSfHj16QCaT2XwtXbrU5pisrCyMGjUKAQEBiIuLw7Jly1xUWiLyRGqlHEunJDcJP6lJGrw+JZlD2om8gEcNZ3/55Zcxa9Ys8fuQkBDx3zqdDjfddBPGjRuHFStW4OjRo5g5cyZCQ0Px0EMPuaK4ROSBYkMDsXxqCkr1JlTWmBES4A9NMOfxIfIWHhV8QkJCEB0dbXffunXrYDKZsGrVKsjlclxzzTU4cuQI3nrrLQYfImoVtZJBh8hbecyjLgBYunQpIiIikJKSgjfeeAO1tbXivoyMDKSmpkIuv/JhNX78eGRnZ6O8vNzu+YxGI3Q6nc0XEREReS+PafF5/PHHMXjwYISHh+PHH3/EokWLUFxcjLfeegsAUFJSgoSEBJvXREVFifvCwsKanHPJkiV46aWXOr/wRERE5BZc2uKzcOHCJh2WG3+dOnUKADB//nyMGTMGycnJePjhh/Hmm29i+fLlMBqNbf75ixYtglarFb8KCws76q0RERGRG3Jpi8+TTz6JGTNmOD2mZ8+edrcPGzYMtbW1OH36NHr37o3o6GicP3/e5hjr9476BSkUCigUitYXnIiIiDySS4NPt27d0K1btza99siRI/Dx8UFkZCQAYPjw4Xj22WdhNpvh718/yVhaWhp69+5t9zEXERERSY9HdG7OyMjA22+/jV9++QW//fYb1q1bh3nz5uHee+8VQ80999wDuVyOBx54AMePH8fnn3+Of/7zn5g/f76LS09ERETuwiM6NysUCnz22Wd48cUXYTQakZCQgHnz5tmEGrVaje+//x6zZ8/GkCFDoNFosHjxYg5lJyIiIpFMEATB1YVwFzqdDmq1GlqtFiqVytXFISIiohZozf3bIx51EREREXUEBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDI9YpJSIqCtoDSaU6k3Q1ZihCvSHJkgOtVLu6mIRUQdi8CEiAlBUUY0FG7KwN6dU3JaapMHSKcmIDQ10YcmIqCPxURcRSZ7WYGoSegBgT04pFm7IgtZgclHJiKijMfgQkeSV6k1NQo/VnpxSlOoZfIi8BYMPEUmersbsdH9lM/uJyHMw+BCR5KkC/J3uD2lmPxF5DgYfIpI8TbAcqUkau/tSkzTQBHNkF5G3YPAhIslTK+VYOiW5SfhJTdLg9SnJHNJO5EU4nJ2ICEBsaCCWT01Bqd6EyhozQgL8oQnmPD5E3obBh4joMrWSQYfI2/FRFxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGgw8RERFJBoMPERERSQaDDxEREUkGl6xoQBAEAIBOp3NxSYiIiKilrPdt633cGQafBiorKwEAcXFxLi4JERERtVZlZSXUarXTY2RCS+KRRFgsFhQVFSEkJAQymczVxXF7Op0OcXFxKCwshEqlcnVxvAbrtXOwXjsH67VzsF5bRxAEVFZWIjY2Fj4+znvxsMWnAR8fH1x99dWuLobHUalU/MXsBKzXzsF67Rys187Bem255lp6rNi5mYiIiCSDwYeIiIgkg8GH2kyhUOCFF16AQqFwdVG8Cuu1c7BeOwfrtXOwXjsPOzcTERGRZLDFh4iIiCSDwYeIiIgkg8GHiIiIJIPBh4iIiCSDwYecevHFFyGTyWy++vTpI+6vqanB7NmzERERgeDgYEyZMgXnz593YYnd0549ezBp0iTExsZCJpNh8+bNNvsFQcDixYsRExODwMBAjBs3Djk5OTbHXLp0CdOmTYNKpUJoaCgeeOAB6PX6LnwX7qe5ep0xY0aT63fChAk2x7Bem1qyZAl+//vfIyQkBJGRkZg8eTKys7NtjmnJ735BQQFuvfVWKJVKREZG4umnn0ZtbW1XvhW30pJ6HTNmTJNr9uGHH7Y5hvXaPgw+1KxrrrkGxcXF4ld6erq4b968ediyZQu+/PJL7N69G0VFRbjjjjtcWFr3VFVVhYEDB+K9996zu3/ZsmV45513sGLFChw4cABBQUEYP348ampqxGOmTZuG48ePIy0tDVu3bsWePXvw0EMPddVbcEvN1SsATJgwweb6Xb9+vc1+1mtTu3fvxuzZs7F//36kpaXBbDbjpptuQlVVlXhMc7/7dXV1uPXWW2EymfDjjz9i7dq1WLNmDRYvXuyKt+QWWlKvADBr1iyba3bZsmXiPtZrBxCInHjhhReEgQMH2t1XUVEh+Pv7C19++aW47eTJkwIAISMjo4tK6HkACJs2bRK/t1gsQnR0tPDGG2+I2yoqKgSFQiGsX79eEARBOHHihABA+Pnnn8VjvvvuO0Emkwnnzp3rsrK7s8b1KgiCMH36dOG2225z+BrWa8tcuHBBACDs3r1bEISW/e5/++23go+Pj1BSUiIe88EHHwgqlUowGo1d+wbcVON6FQRBGD16tDB37lyHr2G9th9bfKhZOTk5iI2NRc+ePTFt2jQUFBQAAA4dOgSz2Yxx48aJx/bp0wfdu3dHRkaGq4rrcfLz81FSUmJTj2q1GsOGDRPrMSMjA6GhoRg6dKh4zLhx4+Dj44MDBw50eZk9ya5duxAZGYnevXvjkUceQVlZmbiP9doyWq0WABAeHg6gZb/7GRkZGDBgAKKiosRjxo8fD51Oh+PHj3dh6d1X43q1WrduHTQaDfr3749FixbBYDCI+1iv7cdFSsmpYcOGYc2aNejduzeKi4vx0ksvYdSoUTh27BhKSkogl8sRGhpq85qoqCiUlJS4psAeyFpXDT/IrN9b95WUlCAyMtJmv5+fH8LDw1nXTkyYMAF33HEHEhISkJeXh7/+9a+4+eabkZGRAV9fX9ZrC1gsFjzxxBMYMWIE+vfvDwAt+t0vKSmxe01b90mdvXoFgHvuuQfx8fGIjY1FVlYWFixYgOzsbGzcuBEA67UjMPiQUzfffLP47+TkZAwbNgzx8fH44osvEBgY6MKSETXvz3/+s/jvAQMGIDk5Gb169cKuXbswduxYF5bMc8yePRvHjh2z6dtH7eeoXhv2LxswYABiYmIwduxY5OXloVevXl1dTK/ER13UKqGhofjd736H3NxcREdHw2QyoaKiwuaY8+fPIzo62jUF9EDWumo8IqZhPUZHR+PChQs2+2tra3Hp0iXWdSv07NkTGo0Gubm5AFivzZkzZw62bt2KnTt34uqrrxa3t+R3Pzo62u41bd0nZY7q1Z5hw4YBgM01y3ptHwYfahW9Xo+8vDzExMRgyJAh8Pf3x/bt28X92dnZKCgowPDhw11YSs+SkJCA6Ohom3rU6XQ4cOCAWI/Dhw9HRUUFDh06JB6zY8cOWCwW8YORmnf27FmUlZUhJiYGAOvVEUEQMGfOHGzatAk7duxAQkKCzf6W/O4PHz4cR48etQmWaWlpUKlU6NevX9e8ETfTXL3ac+TIEQCwuWZZr+3k6t7V5N6efPJJYdeuXUJ+fr6wb98+Ydy4cYJGoxEuXLggCIIgPPzww0L37t2FHTt2CAcPHhSGDx8uDB8+3MWldj+VlZVCZmamkJmZKQAQ3nrrLSEzM1M4c+aMIAiCsHTpUiE0NFT4+uuvhaysLOG2224TEhIShOrqavEcEyZMEFJSUoQDBw4I6enpQlJSkjB16lRXvSW34KxeKysrhaeeekrIyMgQ8vPzhR9++EEYPHiwkJSUJNTU1IjnYL029cgjjwhqtVrYtWuXUFxcLH4ZDAbxmOZ+92tra4X+/fsLN910k3DkyBFh27ZtQrdu3YRFixa54i25hebqNTc3V3j55ZeFgwcPCvn5+cLXX38t9OzZU0hNTRXPwXptPwYfcuruu+8WYmJiBLlcLlx11VXC3XffLeTm5or7q6urhUcffVQICwsTlEqlcPvttwvFxcUuLLF72rlzpwCgydf06dMFQagf0v78888LUVFRgkKhEMaOHStkZ2fbnKOsrEyYOnWqEBwcLKhUKuH+++8XKisrXfBu3IezejUYDMJNN90kdOvWTfD39xfi4+OFWbNm2QwDFgTWqz326hSAsHr1avGYlvzunz59Wrj55puFwMBAQaPRCE8++aRgNpu7+N24j+bqtaCgQEhNTRXCw8MFhUIhJCYmCk8//bSg1WptzsN6bR+ZIAhC17UvEREREbkO+/gQERGRZDD4EBERkWQw+BAREZFkMPgQERGRZDD4EBERkWQw+BAREZFkMPgQERGRZDD4EBERkWQw+BCRW5gxYwYmT54sfj9mzBg88cQTXV6OXbt2QSaTNVmAsyOdPn0aMplMXIeJiLoOgw8ROTRjxgzIZDLIZDLI5XIkJibi5ZdfRm1tbaf/7I0bN+KVV15p0bFdEVaIyDv4uboAROTeJkyYgNWrV8NoNOLbb7/F7Nmz4e/vj0WLFjU51mQyQS6Xd8jPDQ8P75DzEBE1xBYfInJKoVAgOjoa8fHxeOSRRzBu3Dh88803AK48nnr11VcRGxuL3r17AwAKCwtx1113ITQ0FOHh4bjttttw+vRp8Zx1dXWYP38+QkNDERERgWeeeQaNlw1s/KjLaDRiwYIFiIuLg0KhQGJiIj7++GOcPn0a119/PQAgLCwMMpkMM2bMAABYLBYsWbIECQkJCAwMxMCBA/HVV1/Z/Jxvv/0Wv/vd7xAYGIjrr7/eppz23HPPPbj77rtttpnNZmg0GnzyyScAgG3btmHkyJHi+5s4cSLy8vIcnnPNmjUIDQ212bZ582bIZDKbbV9//TUGDx6MgIAA9OzZEy+99FKXtL4ReRMGHyJqlcDAQJhMJvH77du3Izs7G2lpadi6dSvMZjPGjx+PkJAQ7N27F/v27UNwcDAmTJggvu7NN9/EmjVrsGrVKqSnp+PSpUvYtGmT05973333Yf369XjnnXdw8uRJfPjhhwgODkZcXBw2bNgAAMjOzkZxcTH++c9/AgCWLFmCTz75BCtWrMDx48cxb9483Hvvvdi9ezeA+oB2xx13YNKkSThy5AgefPBBLFy40Gk5pk2bhi1btkCv14vb/ve//8FgMOD2228HAFRVVWH+/Pk4ePAgtm/fDh8fH9x+++2wWCytrO0r9u7di/vuuw9z587FiRMn8OGHH2LNmjV49dVX23xOIkly8erwROTGpk+fLtx2222CIAiCxWIR0tLSBIVCITz11FPi/qioKMFoNIqv+fe//y307t1bsFgs4jaj0SgEBgYK//vf/wRBEISYmBhh2bJl4n6z2SxcffXV4s8SBEEYPXq0MHfuXEEQBCE7O1sAIKSlpdkt586dOwUAQnl5ubitpqZGUCqVwo8//mhz7AMPPCBMnTpVEARBWLRokdCvXz+b/QsWLGhyrobMZrOg0WiETz75RNw2depU4e6777Z7vCAIwsWLFwUAwtGjRwVBEIT8/HwBgJCZmSkIgiCsXr1aUKvVNq/ZtGmT0PAjeuzYscJrr71mc8y///1vISYmxuHPJaKm2MeHiJzaunUrgoODYTabYbFYcM899+DFF18U9w8YMMCmX88vv/yC3NxchISE2JynpqYGeXl50Gq1KC4uxrBhw8R9fn5+GDp0aJPHXVZHjhyBr68vRo8e3eJy5+bmwmAw4MYbb7TZbjKZkJKSAgA4efKkTTkAYPjw4U7P6+fnh7vuugvr1q3DX/7yF1RVVeHrr7/GZ599Jh6Tk5ODxYsX48CBAygtLRVbegoKCtC/f/8Wv4eGfvnlF+zbt8+mhaeurg41NTUwGAxQKpVtOi+R1DD4EJFT119/PT744API5XLExsbCz8/2YyMoKMjme71ejyFDhmDdunVNztWtW7c2lSEwMLDVr7E+ivrvf/+Lq666ymafQqFoUzmspk2bhtGjR+PChQtIS0tDYGAgJkyYIO6fNGkS4uPj8dFHHyE2NhYWiwX9+/e3eUTYkI+PT5PQZzabm7yfl156CXfccUeT1wcEBLTr/RBJCYMPETkVFBSExMTEFh8/ePBgfP7554iMjIRKpbJ7TExMDA4cOIDU1FQAQG1tLQ4dOoTBgwfbPX7AgAGwWCzYvXs3xo0b12S/tcWprq5O3NavXz8oFAoUFBQ4bCnq27ev2FHbav/+/c2+x+uuuw5xcXH4/PPP8d133+HOO++Ev78/AKCsrAzZ2dn46KOPMGrUKABAenq60/N169YNlZWVqKqqEoNk4zl+Bg8ejOzs7Fb9XxBRU+zcTEQdatq0adBoNLjtttuwd+9e5OfnY9euXXj88cdx9uxZAMDcuXOxdOlSbN68GadOncKjjz7qdA6eHj16YPr06Zg5cyY2b94snvOLL74AAMTHx0Mmk2Hr1q24ePEi9Ho9QkJC8NRTT2HevHlYu3Yt8vLycPjwYSxfvhxr164FADz88MPIycnB008/jezsbHz66adYs2ZNi97nPffcgxUrViAtLQ3Tpk0Tt4eFhSEiIgIrV65Ebm4uduzYgfnz5zs917Bhw6BUKvHXv/4VeXl5dsuxePFifPLJJ3jppZdw/PhxnDx5Ep999hmee+65FpWXiC5zdScjInJfDTs3t2Z/cXGxcN999wkajUZQKBRCz549hVmzZglarVYQhPoOwnPnzhVUKpUQGhoqzJ8/X7jvvvscdm4WBEGorq4W5s2bJ8TExAhyuVxITEwUVq1aJe5/+eWXhejoaEEmkwnTp08XBKG+Q/bbb78t9O7dW/D39xe6desmjB8/Xti9e7f4ui1btgiJiYmCQqEQRo0aJaxatcpp52arEydOCACE+Ph4m47cgiAIaWlpQt++fQWFQiEkJycLu3btEgAImzZtEgShaedmQajvzJyYmCgEBgYKEydOFFauXCk0/ojetm2bcN111wmBgYGCSqUSrr32WmHlypVOy0lEtmSC4KA3IREREZGX4aMuIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpIMBh8iIiKSDAYfIiIikgwGHyIiIpKM/wfqRsHBoq1vNAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "residuals = pd.DataFrame({'Residual': model.resid, 'Predicted value': model.predict()})\n", + "ax = sns.scatterplot(residuals, y='Residual', x='Predicted value')\n", + "ax.axhline(0, linestyle=':', linewidth=1);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa11ead0", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "556b852a", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Plot the density of `Fare` for first-class passengers and overlay a fitted distribution function from the exponential family." + ] + }, + { + "cell_type": "markdown", + "id": "5c7e48ea", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1123, + "id": "2edf81b9", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAGwCAYAAABSN5pGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNN0lEQVR4nO3de3wU5d338c9uks2JHAghCYFEUE4i52BiUItKalC8NZUqUixIKdpWLJpqFR8Eq/WO2kKBwiOlrVJbKRRvy6Oo3I1B8UDkkICIAgICQXIihCTknOzO80fIwi4JJCHJ7obv+/XaV8jMNTO/GYL5es0115gMwzAQERERETuzqwsQERERcTcKSCIiIiJOFJBEREREnCggiYiIiDhRQBIRERFxooAkIiIi4kQBSURERMSJt6sL8FQ2m43c3FyCgoIwmUyuLkdERERawDAMTp8+TXR0NGZz8/1ECkhtlJubS0xMjKvLEBERkTY4duwYffr0aXa9AlIbBQUFAQ0XODg42MXViIiISEuUlZURExNj/z3eHAWkNmq8rRYcHKyAJCIi4mEuNjxGg7RFREREnCggiYiIiDhxi4C0fPly+vbti5+fHwkJCWzbtu2C7detW8fgwYPx8/Nj2LBhvPfeew7rn332WQYPHkxgYCDdu3cnKSmJrVu3OrQpLi5m6tSpBAcHExoaysyZMykvL2/3cxMRERHP4/KAtHbtWlJTU1mwYAHZ2dmMGDGC5ORkCgsLm2y/ZcsWpkyZwsyZM9m5cycpKSmkpKSwZ88ee5uBAweybNkyvvzySz799FP69u3LrbfeyokTJ+xtpk6dyldffUV6ejobNmzg448/5sEHH+zw8xURERH3ZzIMw3BlAQkJCVx77bUsW7YMaJhfKCYmhkceeYSnnnrqvPaTJ0+moqKCDRs22Jddd911jBw5khUrVjR5jLKyMkJCQvjggw8YP348e/fuZciQIWzfvp0xY8YAsHHjRm6//Xa+++47oqOjz9tHTU0NNTU1DvuMiYmhtLRUg7RFREQ8RGMmuNjvb5f2INXW1pKVlUVSUpJ9mdlsJikpiczMzCa3yczMdGgPkJyc3Gz72tpaVq5cSUhICCNGjLDvIzQ01B6OAJKSkjCbzefdimuUlpZGSEiI/aM5kERERLoulwakoqIirFYrkZGRDssjIyPJz89vcpv8/PwWtd+wYQPdunXDz8+PP/zhD6SnpxMeHm7fR0REhEN7b29vwsLCmj3u3LlzKS0ttX+OHTvWqnMVERERz9Fl50G6+eab2bVrF0VFRfz5z3/m3nvvZevWrecFo5by9fXF19e3nasUERERd+TSHqTw8HC8vLwoKChwWF5QUEBUVFST20RFRbWofWBgIP379+e6667jr3/9K97e3vz1r3+178N5EHh9fT3FxcXNHldEREQuHy4NSBaLhbi4ODIyMuzLbDYbGRkZJCYmNrlNYmKiQ3uA9PT0Ztufu9/GQdaJiYmUlJSQlZVlX79p0yZsNhsJCQltPR0RERHpIlx+iy01NZXp06czZswY4uPjWbx4MRUVFcyYMQOAadOm0bt3b9LS0gCYM2cO48aNY+HChUycOJE1a9awY8cOVq5cCUBFRQUvvPACd955J7169aKoqIjly5dz/Phx7rnnHgCuvvpqJkyYwKxZs1ixYgV1dXXMnj2b++67r8kn2EREROTy4vKANHnyZE6cOMH8+fPJz89n5MiRbNy40T4QOycnB7P5bEfX2LFjWb16NfPmzePpp59mwIABrF+/nqFDhwLg5eXFvn37+Nvf/kZRURE9evTg2muv5ZNPPuGaa66x7+eNN95g9uzZjB8/HrPZzKRJk1i6dGnnnryIiIi4JZfPg+SpWjqPgoiIiLgPj5gHSURERMQdufwWm7SvnJwcioqKWr1deHg4sbGxHVCRiIiI51FA6kJycnIYPPhqqqoqW72tv38A+/btVUgSERFBAalLKSoqoqqqkoSfLCC4V98Wb1eWd4Str/6GoqIiBSQREREUkLqk4F59CYsd5OoyREREPJYGaYuIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiVsEpOXLl9O3b1/8/PxISEhg27ZtF2y/bt06Bg8ejJ+fH8OGDeO9996zr6urq+PJJ59k2LBhBAYGEh0dzbRp08jNzXXYR9++fTGZTA6fF198sUPOT0RERDyLywPS2rVrSU1NZcGCBWRnZzNixAiSk5MpLCxssv2WLVuYMmUKM2fOZOfOnaSkpJCSksKePXsAqKysJDs7m2eeeYbs7Gzeeust9u/fz5133nnevp577jny8vLsn0ceeaRDz1VEREQ8g7erC1i0aBGzZs1ixowZAKxYsYJ3332XV199laeeeuq89kuWLGHChAk88cQTADz//POkp6ezbNkyVqxYQUhICOnp6Q7bLFu2jPj4eHJycoiNjbUvDwoKIioqqkV11tTUUFNTY/++rKys1ecqIiIinsGlPUi1tbVkZWWRlJRkX2Y2m0lKSiIzM7PJbTIzMx3aAyQnJzfbHqC0tBSTyURoaKjD8hdffJEePXowatQofve731FfX9/sPtLS0ggJCbF/YmJiWnCGIiIi4olc2oNUVFSE1WolMjLSYXlkZCT79u1rcpv8/Pwm2+fn5zfZvrq6mieffJIpU6YQHBxsX/7LX/6S0aNHExYWxpYtW5g7dy55eXksWrSoyf3MnTuX1NRU+/dlZWUKSSIiIl2Uy2+xdaS6ujruvfdeDMPglVdecVh3btgZPnw4FouFhx56iLS0NHx9fc/bl6+vb5PLRUREpOtx6S228PBwvLy8KCgocFheUFDQ7NigqKioFrVvDEdHjx4lPT3dofeoKQkJCdTX13PkyJHWn4iIiIh0KS4NSBaLhbi4ODIyMuzLbDYbGRkZJCYmNrlNYmKiQ3uA9PR0h/aN4ejAgQN88MEH9OjR46K17Nq1C7PZTERERBvPRkRERLoKl99iS01NZfr06YwZM4b4+HgWL15MRUWF/am2adOm0bt3b9LS0gCYM2cO48aNY+HChUycOJE1a9awY8cOVq5cCTSEox/+8IdkZ2ezYcMGrFarfXxSWFgYFouFzMxMtm7dys0330xQUBCZmZk89thj3H///XTv3t01F0JERETchssD0uTJkzlx4gTz588nPz+fkSNHsnHjRvtA7JycHMzmsx1dY8eOZfXq1cybN4+nn36aAQMGsH79eoYOHQrA8ePHefvttwEYOXKkw7E+/PBDbrrpJnx9fVmzZg3PPvssNTU19OvXj8cee8xhXJKIiIhcvkyGYRiuLsITlZWVERISQmlp6UXHN3WW7Oxs4uLi+P7/eY2w2EEt3q44Zz/pL8wgKyuL0aNHd2CFIiIirtXS398un0lbRERExN0oIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJwoIImIiIg4UUASERERcaKAJCIiIuJEAUlERETEiQKSiIiIiBMFJBEREREnCkgiIiIiThSQRERERJy4RUBavnw5ffv2xc/Pj4SEBLZt23bB9uvWrWPw4MH4+fkxbNgw3nvvPfu6uro6nnzySYYNG0ZgYCDR0dFMmzaN3Nxch30UFxczdepUgoODCQ0NZebMmZSXl3fI+YmIiIhncXlAWrt2LampqSxYsIDs7GxGjBhBcnIyhYWFTbbfsmULU6ZMYebMmezcuZOUlBRSUlLYs2cPAJWVlWRnZ/PMM8+QnZ3NW2+9xf79+7nzzjsd9jN16lS++uor0tPT2bBhAx9//DEPPvhgh5+viIiIuD+TYRiGKwtISEjg2muvZdmyZQDYbDZiYmJ45JFHeOqpp85rP3nyZCoqKtiwYYN92XXXXcfIkSNZsWJFk8fYvn078fHxHD16lNjYWPbu3cuQIUPYvn07Y8aMAWDjxo3cfvvtfPfdd0RHR1+07rKyMkJCQigtLSU4OLgtp97usrOziYuL4/v/5zXCYge1eLvinP2kvzCDrKwsRo8e3YEVioiIuFZLf3+7tAeptraWrKwskpKS7MvMZjNJSUlkZmY2uU1mZqZDe4Dk5ORm2wOUlpZiMpkIDQ21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M2cO48aNY+HChUycOJE1a9awY8cOVq5cad9ncXExOTk55ObmArB//37g7FN3hw4dYvXq1dx+++306NGD3bt389hjj/G9732P4cOHt+VyuI0TlVZMXj6YMLB4tyYg1WHU15FXDt8WVXBVz24dWKWIiIj7a1NASklJaZeDT548mRMnTjB//nzy8/MZOXIkGzdutA/EzsnJwWw++4t+7NixrF69mnnz5vH0008zYMAA1q9fz9ChQ+1t3n77bXvAArjvvvsAWLBgAc8++ywWi4UPPvjAHsZiYmKYNGkS8+bNa5dzcqXjpxveq+aDtVUD580mg+pjX+LfbzQZewsUkERE5LJnMnRPpU3KysoICQmhtLTUbcYj/WbNJ7y2q4xuphqG9mv57cLinP18/v7/EPb9nxHfL4x/PXRptyxFRETcVUt/f7dpDBJASUkJf/nLX5g7dy7FxcVAw62148ePt3WXcolyz/QgWahv9baVBxte8ZJ19BQllbXtWpeIiIinaVNA2r17NwMHDuSll17i97//PSUlJUDDe9Dmzp3bnvVJKzQGJB+TtdXbWssKiQ3xxmoz2PzNifYuTURExKO0KSClpqbywAMPcODAAfz8/OzLb7/9dj7++ON2K05ap3EMkqUNAQlgTC9fAD7Y2/S78ERERC4XbQpI27dv56GHHjpvee/evVs9q7W0j4qaeoqrbABYaGNAim4Iu5v3F1JntbVbbSIiIp6mTQHJ19e3yXeRffPNN/Ts2fOSi5LWO3KyAgBrZSlepraNux8Q5kNYoIWy6np2HDnVnuWJiIh4lDYFpDvvvJPnnnuOuro6oGE25pycHJ588kkmTZrUrgVKy3x7oiEg1RW3fZC8l9nETYMaAm7G3oKLtBYREem62hSQFi5cSHl5OT179qSqqopx48bRv39/goKCeOGFF9q7RmmBw0UNAan+1KU9RZh0dcMcVJv2aRySiIhcvto0UWRISAjp6el89tlnfPHFF5SXlzN69GiSkpLauz5poW9PlANQd/I4MLLN+7lxQDheZhPfFlVwrLiSmLCA9ilQRETEg7Q6INlsNlatWsVbb73FkSNHMJlM9OvXj6ioKAzDaNUMztJ+GnuQ6i6xBynIz4eRMaFkHT3FpweLmBIf2x7liYiIeJRW3WIzDIM777yTn/70pxw/fpxhw4ZxzTXXcPToUR544AF+8IMf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/Z955hkjMjLS8PX1NcaPH2/s37/fYR8nT540pkyZYnTr1s0IDg42ZsyYYZw+fdoFZ+Oemrq+gPHaa6/Z21RVVRm/+MUvjO7duxsBAQHGD37wAyMvL89hP0eOHDFuu+02w9/f3wgPDzd+9atfGXV1dZ18Nu7nJz/5iXHFFVcYFovF6NmzpzF+/Hh7ODIMXduO4hyQdJ0vzeTJk41evXoZFovF6N27tzF58mTj4MGD9vWefH1NhmEYrum7EhEREXFPGoMkIiIi4kQBSURERMSJApKIiIiIEwUkEREREScKSCIiIiJOFJBEREREnCggiYiIiDhRQBIRERFxooAkIiIi4kQBSUS6tAceeACTyXTe5+DBg64uTUTcmLerCxAR6WgTJkzgtddec1jWs2fPVu3DarViMpkwm/X/lSKXA/1LF5Euz9fXl6ioKIfPkiVLGDZsGIGBgcTExPCLX/yC8vJy+zarVq0iNDSUt99+myFDhuDr60tOTg41NTU8/vjj9O7dm8DAQBISEvjoo49cd3Ii0iEUkETksmQ2m1m6dClfffUVf/vb39i0aRO//vWvHdpUVlby0ksv8Ze//IWvvvqKiIgIZs+eTWZmJmvWrGH37t3cc889TJgwgQMHDrjoTESkI5gMwzBcXYSISEd54IEH+Mc//oGfn5992W233ca6desc2r355pv87Gc/o6ioCGjoQZoxYwa7du1ixIgRAOTk5HDllVeSk5NDdHS0fdukpCTi4+P57//+7044IxHpDBqDJCJd3s0338wrr7xi/z4wMJAPPviAtLQ09u3bR1lZGfX19VRXV1NZWUlAQAAAFouF4cOH27f78ssvsVqtDBw40GH/NTU19OjRo3NORkQ6hQKSiHR5gYGB9O/f3/79kSNHuOOOO/j5z3/OCy+8QFhYGJ9++ikzZ86ktrbWHpD8/f0xmUz27crLy/Hy8iIrKwsvLy+HY3Tr1q1zTkZEOoUCkohcdrKysrDZbCxcuND+VNq//vWvi243atQorFYrhYWF3HjjjR1dpoi4kAZpi8hlp3///tTV1fHHP/6Rb7/9lr///e+sWLHiotsNHDiQqVOnMm3aNN566y0OHz7Mtm3bSEtL49133+2EykWksyggichlZ8SIESxatIiXXnqJoUOH8sYbb5CWltaibV977TWmTZvGr371KwYNGkRKSgrbt28nNja2g6sWkc6kp9hEREREnKgHSURERMSJApKIiIiIEwUkEREREScKSCIiIiJOFJBEREREnCggiYiIiDhRQBIRERFxooAkIiIi4kQBSURERMSJApKIiIiIEwUkERERESf/H5hveE6nSbpJAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot a density histogram\n", + "ax = sns.histplot(firstclass, x='Fare', stat='density')\n", + "# fit an inverse Gaussian (works better than gamma)\n", + "#distrib = stats.gamma\n", + "distrib = stats.invgauss\n", + "distrib = distrib(*distrib.fit(firstclass['Fare']))\n", + "# plot the pdf\n", + "xmin, xmax = ax.get_xlim()\n", + "xgrid = np.linspace(xmin, xmax, 100)\n", + "ax.plot(xgrid, distrib.pdf(xgrid))\n", + "ax.set_xlim(xmin, xmax);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fec96b60", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "af2b537e", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Fit a generalized linear model using an inverse Gaussian distribution of `Fare` using `Embarked`, `Deck`, `Cabins`, `Passengers` and `Children` for the linear predictor.\n", + "\n", + "Compare fares between decks, with corrections for multiple comparisons." + ] + }, + { + "cell_type": "markdown", + "id": "ecc8cb21", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1080, + "id": "ed8726e1", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>Generalized Linear Model Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Fare</td> <th> No. Observations: </th> <td> 182</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 171</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Model Family:</th> <td>InverseGaussian</td> <th> Df Model: </th> <td> 10</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Link Function:</th> <td>log</td> <th> Scale: </th> <td>0.0016691</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -725.75</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Deviance: </th> <td> 0.29921</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>01:10:16</td> <th> Pearson chi2: </th> <td> 0.285</td> \n", + "</tr>\n", + "<tr>\n", + " <th>No. Iterations:</th> <td>34</td> <th> Pseudo R-squ. (CS):</th> <td>0.9871</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> 2.9337</td> <td> 0.071</td> <td> 41.130</td> <td> 0.000</td> <td> 2.794</td> <td> 3.074</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.Q]</th> <td> -0.6461</td> <td> 0.397</td> <td> -1.628</td> <td> 0.104</td> <td> -1.424</td> <td> 0.132</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.S]</th> <td> -0.1006</td> <td> 0.043</td> <td> -2.331</td> <td> 0.020</td> <td> -0.185</td> <td> -0.016</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.A]</th> <td> 0.1500</td> <td> 0.069</td> <td> 2.172</td> <td> 0.030</td> <td> 0.015</td> <td> 0.285</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.B]</th> <td> 0.1134</td> <td> 0.069</td> <td> 1.651</td> <td> 0.099</td> <td> -0.021</td> <td> 0.248</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.C]</th> <td> 0.0508</td> <td> 0.057</td> <td> 0.896</td> <td> 0.370</td> <td> -0.060</td> <td> 0.162</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.D]</th> <td> -0.0231</td> <td> 0.066</td> <td> -0.351</td> <td> 0.726</td> <td> -0.152</td> <td> 0.106</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.E]</th> <td> -0.0561</td> <td> 0.070</td> <td> -0.800</td> <td> 0.423</td> <td> -0.194</td> <td> 0.081</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Cabins</th> <td> -0.3206</td> <td> 0.056</td> <td> -5.727</td> <td> 0.000</td> <td> -0.430</td> <td> -0.211</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Passengers</th> <td> 0.8273</td> <td> 0.042</td> <td> 19.571</td> <td> 0.000</td> <td> 0.744</td> <td> 0.910</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Children</th> <td> -0.8798</td> <td> 0.209</td> <td> -4.201</td> <td> 0.000</td> <td> -1.290</td> <td> -0.469</td>\n", + "</tr>\n", + "</table>" + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " Generalized Linear Model Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Fare No. Observations: 182\n", + "Model: GLM Df Residuals: 171\n", + "Model Family: InverseGaussian Df Model: 10\n", + "Link Function: log Scale: 0.0016691\n", + "Method: IRLS Log-Likelihood: -725.75\n", + "Date: Mon, 26 Sep 2022 Deviance: 0.29921\n", + "Time: 01:10:16 Pearson chi2: 0.285\n", + "No. Iterations: 34 Pseudo R-squ. (CS): 0.9871\n", + "Covariance Type: nonrobust \n", + "====================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "------------------------------------------------------------------------------------\n", + "Intercept 2.9337 0.071 41.130 0.000 2.794 3.074\n", + "C(Embarked)[T.Q] -0.6461 0.397 -1.628 0.104 -1.424 0.132\n", + "C(Embarked)[T.S] -0.1006 0.043 -2.331 0.020 -0.185 -0.016\n", + "C(Deck)[T.A] 0.1500 0.069 2.172 0.030 0.015 0.285\n", + "C(Deck)[T.B] 0.1134 0.069 1.651 0.099 -0.021 0.248\n", + "C(Deck)[T.C] 0.0508 0.057 0.896 0.370 -0.060 0.162\n", + "C(Deck)[T.D] -0.0231 0.066 -0.351 0.726 -0.152 0.106\n", + "C(Deck)[T.E] -0.0561 0.070 -0.800 0.423 -0.194 0.081\n", + "Cabins -0.3206 0.056 -5.727 0.000 -0.430 -0.211\n", + "Passengers 0.8273 0.042 19.571 0.000 0.744 0.910\n", + "Children -0.8798 0.209 -4.201 0.000 -1.290 -0.469\n", + "====================================================================================\n", + "\"\"\"" + ] + }, + "execution_count": 1080, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = smf.glm('Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children', firstclass, family=sm.families.InverseGaussian(sm.families.links.log())).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 1081, + "id": "7ecad003", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>coef</th>\n", + " <th>std err</th>\n", + " <th>z</th>\n", + " <th>P>|z|</th>\n", + " <th>Conf. Int. Low</th>\n", + " <th>Conf. Int. Upp.</th>\n", + " <th>pvalue-hs</th>\n", + " <th>reject-hs</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>A-</th>\n", + " <td>0.149984</td>\n", + " <td>0.069067</td>\n", + " <td>2.171580</td>\n", + " <td>0.029887</td>\n", + " <td>0.014616</td>\n", + " <td>0.285353</td>\n", + " <td>0.346101</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>B-</th>\n", + " <td>0.113435</td>\n", + " <td>0.068689</td>\n", + " <td>1.651437</td>\n", + " <td>0.098649</td>\n", + " <td>-0.021192</td>\n", + " <td>0.248063</td>\n", + " <td>0.646053</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C-</th>\n", + " <td>0.050751</td>\n", + " <td>0.056667</td>\n", + " <td>0.895590</td>\n", + " <td>0.370472</td>\n", + " <td>-0.060315</td>\n", + " <td>0.161817</td>\n", + " <td>0.937757</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-</th>\n", + " <td>-0.023128</td>\n", + " <td>0.065929</td>\n", + " <td>-0.350801</td>\n", + " <td>0.725737</td>\n", + " <td>-0.152345</td>\n", + " <td>0.106090</td>\n", + " <td>0.958609</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-</th>\n", + " <td>-0.056123</td>\n", + " <td>0.070112</td>\n", + " <td>-0.800477</td>\n", + " <td>0.423435</td>\n", + " <td>-0.193539</td>\n", + " <td>0.081294</td>\n", + " <td>0.937757</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>B-A</th>\n", + " <td>-0.036549</td>\n", + " <td>0.081565</td>\n", + " <td>-0.448094</td>\n", + " <td>0.654085</td>\n", + " <td>-0.196414</td>\n", + " <td>0.123316</td>\n", + " <td>0.958609</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C-A</th>\n", + " <td>-0.099234</td>\n", + " <td>0.072961</td>\n", + " <td>-1.360084</td>\n", + " <td>0.173803</td>\n", + " <td>-0.242235</td>\n", + " <td>0.043768</td>\n", + " <td>0.782896</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-A</th>\n", + " <td>-0.173112</td>\n", + " <td>0.081149</td>\n", + " <td>-2.133259</td>\n", + " <td>0.032903</td>\n", + " <td>-0.332162</td>\n", + " <td>-0.014063</td>\n", + " <td>0.352697</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-A</th>\n", + " <td>-0.206107</td>\n", + " <td>0.085097</td>\n", + " <td>-2.422033</td>\n", + " <td>0.015434</td>\n", + " <td>-0.372894</td>\n", + " <td>-0.039321</td>\n", + " <td>0.208095</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>C-B</th>\n", + " <td>-0.062685</td>\n", + " <td>0.070876</td>\n", + " <td>-0.884430</td>\n", + " <td>0.376464</td>\n", + " <td>-0.201599</td>\n", + " <td>0.076229</td>\n", + " <td>0.937757</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-B</th>\n", + " <td>-0.136563</td>\n", + " <td>0.078450</td>\n", + " <td>-1.740758</td>\n", + " <td>0.081726</td>\n", + " <td>-0.290323</td>\n", + " <td>0.017197</td>\n", + " <td>0.608533</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-B</th>\n", + " <td>-0.169558</td>\n", + " <td>0.082167</td>\n", + " <td>-2.063593</td>\n", + " <td>0.039056</td>\n", + " <td>-0.330602</td>\n", + " <td>-0.008515</td>\n", + " <td>0.380024</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>D-C</th>\n", + " <td>-0.073879</td>\n", + " <td>0.068552</td>\n", + " <td>-1.077704</td>\n", + " <td>0.281166</td>\n", + " <td>-0.208238</td>\n", + " <td>0.060481</td>\n", + " <td>0.900825</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-C</th>\n", + " <td>-0.106874</td>\n", + " <td>0.072787</td>\n", + " <td>-1.468304</td>\n", + " <td>0.142022</td>\n", + " <td>-0.249534</td>\n", + " <td>0.035787</td>\n", + " <td>0.748066</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>E-D</th>\n", + " <td>-0.032995</td>\n", + " <td>0.079207</td>\n", + " <td>-0.416568</td>\n", + " <td>0.676995</td>\n", + " <td>-0.188237</td>\n", + " <td>0.122247</td>\n", + " <td>0.958609</td>\n", + " <td>False</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " coef std err z P>|z| Conf. Int. Low Conf. Int. Upp. \\\n", + "A- 0.149984 0.069067 2.171580 0.029887 0.014616 0.285353 \n", + "B- 0.113435 0.068689 1.651437 0.098649 -0.021192 0.248063 \n", + "C- 0.050751 0.056667 0.895590 0.370472 -0.060315 0.161817 \n", + "D- -0.023128 0.065929 -0.350801 0.725737 -0.152345 0.106090 \n", + "E- -0.056123 0.070112 -0.800477 0.423435 -0.193539 0.081294 \n", + "B-A -0.036549 0.081565 -0.448094 0.654085 -0.196414 0.123316 \n", + "C-A -0.099234 0.072961 -1.360084 0.173803 -0.242235 0.043768 \n", + "D-A -0.173112 0.081149 -2.133259 0.032903 -0.332162 -0.014063 \n", + "E-A -0.206107 0.085097 -2.422033 0.015434 -0.372894 -0.039321 \n", + "C-B -0.062685 0.070876 -0.884430 0.376464 -0.201599 0.076229 \n", + "D-B -0.136563 0.078450 -1.740758 0.081726 -0.290323 0.017197 \n", + "E-B -0.169558 0.082167 -2.063593 0.039056 -0.330602 -0.008515 \n", + "D-C -0.073879 0.068552 -1.077704 0.281166 -0.208238 0.060481 \n", + "E-C -0.106874 0.072787 -1.468304 0.142022 -0.249534 0.035787 \n", + "E-D -0.032995 0.079207 -0.416568 0.676995 -0.188237 0.122247 \n", + "\n", + " pvalue-hs reject-hs \n", + "A- 0.346101 False \n", + "B- 0.646053 False \n", + "C- 0.937757 False \n", + "D- 0.958609 False \n", + "E- 0.937757 False \n", + "B-A 0.958609 False \n", + "C-A 0.782896 False \n", + "D-A 0.352697 False \n", + "E-A 0.208095 False \n", + "C-B 0.937757 False \n", + "D-B 0.608533 False \n", + "E-B 0.380024 False \n", + "D-C 0.900825 False \n", + "E-C 0.748066 False \n", + "E-D 0.958609 False " + ] + }, + "execution_count": 1081, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.t_test_pairwise('C(Deck)').result_frame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c239b5f3", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "a27f7b48", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Group the decks so that *A*, *B* and *C* are labelled *ABC*, and *D* and *E* are labelled *DE*. Check whether the simplified model unveils any difference of fare between the grouped decks." + ] + }, + { + "cell_type": "markdown", + "id": "562b2ee0", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": 1082, + "id": "0ffbb960", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "deck = firstclass['Deck']\n", + "for d in 'ABC':\n", + " firstclass.loc[deck==d, 'Deck'] = 'ABC'\n", + "for d in 'DE':\n", + " firstclass.loc[deck==d, 'Deck'] = 'DE'" + ] + }, + { + "cell_type": "code", + "execution_count": 1083, + "id": "543ada9d", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<table class=\"simpletable\">\n", + "<caption>Generalized Linear Model Regression Results</caption>\n", + "<tr>\n", + " <th>Dep. Variable:</th> <td>Fare</td> <th> No. Observations: </th> <td> 182</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Model:</th> <td>GLM</td> <th> Df Residuals: </th> <td> 174</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Model Family:</th> <td>InverseGaussian</td> <th> Df Model: </th> <td> 7</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Link Function:</th> <td>log</td> <th> Scale: </th> <td>0.0016739</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Method:</th> <td>IRLS</td> <th> Log-Likelihood: </th> <td> -726.86</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Date:</th> <td>Mon, 26 Sep 2022</td> <th> Deviance: </th> <td> 0.30293</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Time:</th> <td>01:10:17</td> <th> Pearson chi2: </th> <td> 0.291</td> \n", + "</tr>\n", + "<tr>\n", + " <th>No. Iterations:</th> <td>33</td> <th> Pseudo R-squ. (CS):</th> <td>0.9868</td> \n", + "</tr>\n", + "<tr>\n", + " <th>Covariance Type:</th> <td>nonrobust</td> <th> </th> <td> </td> \n", + "</tr>\n", + "</table>\n", + "<table class=\"simpletable\">\n", + "<tr>\n", + " <td></td> <th>coef</th> <th>std err</th> <th>z</th> <th>P>|z|</th> <th>[0.025</th> <th>0.975]</th> \n", + "</tr>\n", + "<tr>\n", + " <th>Intercept</th> <td> 2.9418</td> <td> 0.070</td> <td> 42.150</td> <td> 0.000</td> <td> 2.805</td> <td> 3.079</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.Q]</th> <td> -0.6779</td> <td> 0.397</td> <td> -1.708</td> <td> 0.088</td> <td> -1.456</td> <td> 0.100</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Embarked)[T.S]</th> <td> -0.1094</td> <td> 0.043</td> <td> -2.565</td> <td> 0.010</td> <td> -0.193</td> <td> -0.026</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.ABC]</th> <td> 0.0954</td> <td> 0.048</td> <td> 1.999</td> <td> 0.046</td> <td> 0.002</td> <td> 0.189</td>\n", + "</tr>\n", + "<tr>\n", + " <th>C(Deck)[T.DE]</th> <td> -0.0357</td> <td> 0.055</td> <td> -0.646</td> <td> 0.518</td> <td> -0.144</td> <td> 0.073</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Cabins</th> <td> -0.3121</td> <td> 0.054</td> <td> -5.732</td> <td> 0.000</td> <td> -0.419</td> <td> -0.205</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Passengers</th> <td> 0.8175</td> <td> 0.042</td> <td> 19.612</td> <td> 0.000</td> <td> 0.736</td> <td> 0.899</td>\n", + "</tr>\n", + "<tr>\n", + " <th>Children</th> <td> -0.8372</td> <td> 0.210</td> <td> -3.982</td> <td> 0.000</td> <td> -1.249</td> <td> -0.425</td>\n", + "</tr>\n", + "</table>" + ], + "text/plain": [ + "<class 'statsmodels.iolib.summary.Summary'>\n", + "\"\"\"\n", + " Generalized Linear Model Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Fare No. Observations: 182\n", + "Model: GLM Df Residuals: 174\n", + "Model Family: InverseGaussian Df Model: 7\n", + "Link Function: log Scale: 0.0016739\n", + "Method: IRLS Log-Likelihood: -726.86\n", + "Date: Mon, 26 Sep 2022 Deviance: 0.30293\n", + "Time: 01:10:17 Pearson chi2: 0.291\n", + "No. Iterations: 33 Pseudo R-squ. (CS): 0.9868\n", + "Covariance Type: nonrobust \n", + "====================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "------------------------------------------------------------------------------------\n", + "Intercept 2.9418 0.070 42.150 0.000 2.805 3.079\n", + "C(Embarked)[T.Q] -0.6779 0.397 -1.708 0.088 -1.456 0.100\n", + "C(Embarked)[T.S] -0.1094 0.043 -2.565 0.010 -0.193 -0.026\n", + "C(Deck)[T.ABC] 0.0954 0.048 1.999 0.046 0.002 0.189\n", + "C(Deck)[T.DE] -0.0357 0.055 -0.646 0.518 -0.144 0.073\n", + "Cabins -0.3121 0.054 -5.732 0.000 -0.419 -0.205\n", + "Passengers 0.8175 0.042 19.612 0.000 0.736 0.899\n", + "Children -0.8372 0.210 -3.982 0.000 -1.249 -0.425\n", + "====================================================================================\n", + "\"\"\"" + ] + }, + "execution_count": 1083, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = smf.glm('Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children', firstclass, family=sm.families.InverseGaussian(sm.families.links.log())).fit()\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": 1084, + "id": "148277f8", + "metadata": { + "hidden": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>coef</th>\n", + " <th>std err</th>\n", + " <th>z</th>\n", + " <th>P>|z|</th>\n", + " <th>Conf. Int. Low</th>\n", + " <th>Conf. Int. Upp.</th>\n", + " <th>pvalue-hs</th>\n", + " <th>reject-hs</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>ABC-</th>\n", + " <td>0.095376</td>\n", + " <td>0.047713</td>\n", + " <td>1.998945</td>\n", + " <td>0.045614</td>\n", + " <td>0.001860</td>\n", + " <td>0.188892</td>\n", + " <td>0.089148</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>DE-</th>\n", + " <td>-0.035664</td>\n", + " <td>0.055219</td>\n", + " <td>-0.645874</td>\n", + " <td>0.518361</td>\n", + " <td>-0.143891</td>\n", + " <td>0.072563</td>\n", + " <td>0.518361</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>DE-ABC</th>\n", + " <td>-0.131041</td>\n", + " <td>0.050564</td>\n", + " <td>-2.591565</td>\n", + " <td>0.009554</td>\n", + " <td>-0.230145</td>\n", + " <td>-0.031936</td>\n", + " <td>0.028389</td>\n", + " <td>True</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " coef std err z P>|z| Conf. Int. Low \\\n", + "ABC- 0.095376 0.047713 1.998945 0.045614 0.001860 \n", + "DE- -0.035664 0.055219 -0.645874 0.518361 -0.143891 \n", + "DE-ABC -0.131041 0.050564 -2.591565 0.009554 -0.230145 \n", + "\n", + " Conf. Int. Upp. pvalue-hs reject-hs \n", + "ABC- 0.188892 0.089148 False \n", + "DE- 0.072563 0.518361 False \n", + "DE-ABC -0.031936 0.028389 True " + ] + }, + "execution_count": 1084, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.t_test_pairwise('C(Deck)').result_frame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98447386", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9ce08870", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Programmatically search for a model with interaction terms that minimize the AIC.\n", + "\n", + "You may for example look for the best model among those with a single `A * B` interaction term, and then repeat the procedure with the `A * B` term as a replacement for both `A` and `B`." + ] + }, + { + "cell_type": "markdown", + "id": "24b92142", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71e87548", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "model_spec = 'Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children'\n", + "model_aic = {model_spec: model.aic}\n", + "\n", + "def explore_1level(model_aic, terms):\n", + " for i in range(len(terms)-1):\n", + " for j in range(i+1, len(terms)):\n", + " interaction_term = ' * '.join((terms[i], terms[j]))\n", + " model_terms = ['Fare ~ ' + interaction_term]\n", + " for k in range(len(terms)):\n", + " if k not in (i, j):\n", + " model_terms.append(terms[k])\n", + " model_spec = ' + '.join(model_terms)\n", + " fitted_model = smf.glm(model_spec, firstclass, family=sm.families.InverseGaussian(sm.families.links.log())).fit()\n", + " model_aic[model_spec] = fitted_model.aic\n", + " return model_aic\n", + "\n", + "terms = ['C(Embarked)', 'C(Deck)', 'Cabins', 'Passengers', 'Children']\n", + "explore_1level(model_aic, terms)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "67fe2f97", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "terms = ['C(Embarked)', 'C(Deck)', 'Cabins * Passengers', 'Children']\n", + "explore_1level({}, terms)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34b28cdc", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "terms = ['C(Embarked) * Cabins * Passengers', 'C(Deck)', 'Children']\n", + "explore_1level({}, terms)" + ] + }, + { + "cell_type": "markdown", + "id": "af0edee7", + "metadata": {}, + "source": [ + "## Q\n", + "\n", + "Draw a [stripplot](https://seaborn.pydata.org/generated/seaborn.stripplot.html) of the AIC for the various models explored.\n", + "\n", + "Example:\n", + "<img src=\"images/stripplot.png\" />" + ] + }, + { + "cell_type": "markdown", + "id": "e6f1a428", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## A" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62b235cf", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "model_spec = 'Fare ~ C(Embarked) + C(Deck) + Cabins + Passengers + Children'\n", + "model_aic = {model_spec: model.aic}\n", + "\n", + "terms = ['C(Embarked)', 'C(Deck)', 'Cabins', 'Passengers', 'Children']\n", + "explore_1level(model_aic, terms)\n", + "terms = ['C(Embarked)', 'C(Deck)', 'Cabins * Passengers', 'Children']\n", + "explore_1level(model_aic, terms)\n", + "terms = ['C(Embarked) * Cabins * Passengers', 'C(Deck)', 'Children']\n", + "explore_1level(model_aic, terms)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d714cc2", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "model_aic = pd.DataFrame(zip(model_aic.keys(), model_aic.values()), columns=['models', 'AIC'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7529481", + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "ax = sns.stripplot(y='models', x='AIC', data=model_aic, size=10, orient=\"h\", jitter=False, palette=\"flare_r\", hue='models', linewidth=1, edgecolor=\"w\")\n", + "ax.yaxis.grid(True)\n", + "ax.yaxis.set_ticks_position('right');" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "scientific_python", + "language": "python", + "name": "scientific_python" + }, + "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.10.4" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": false, + "sideBar": false, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": false, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}