{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Linear regression" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "*The explanations of statistical concepts are partly based on {cite:t}`Field2013`*\n", "\n", "Linear regression is the fundamental starting point for all regression methods and it is still a useful and widely used statistical learning method. Moreover, it serves as a good jumping point for newer approaches. Consequently, the importance of having a good understanding of linear regression before studying more complex learning methods cannot be overstated {cite:p}`James2021`.\n", "\n", ":::{note}\n", " Linear regression is a useful tool for predicting a quantitative response\n", ":::\n", "\n", "\n", "One of the simplest models we use in statistics is the **mean**. It is a (simple) model because it represents a summary of data. Therefore, let's use the mean as a baseline model and compare the quality of fit between the mean and a simple linear regression model with only one predictor. \n", "\n", "We use a small sample of 20 women from whom we obtained their height (this is our outcome variable) and the average height of their parents (this is our feature)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Python setup" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "from scipy import stats\n", "import statsmodels.formula.api as smf\n", "\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline \n", "import seaborn as sns \n", "\n", "# seaborn settings\n", "custom_params = {\"axes.spines.right\": False, \"axes.spines.top\": False}\n", "sns.set_theme(style=\"ticks\", rc=custom_params)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Import data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "# import data\n", "ROOT = \"https://raw.githubusercontent.com/kirenz/modern-statistics/main/data/\"\n", "DATA = \"height-clean.csv\"\n", "df = pd.read_csv(ROOT + DATA)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightaverage_height_parentsgender
0Stefanie1162161female
1Peter2163163male
2Stefanie3163163female
3Manuela4164165female
4Simon5164163male
\n", "
" ], "text/plain": [ " name id height average_height_parents gender\n", "0 Stefanie 1 162 161 female\n", "1 Peter 2 163 163 male\n", "2 Stefanie 3 163 163 female\n", "3 Manuela 4 164 165 female\n", "4 Simon 5 164 163 male" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show the first rows (i.e. head of the DataFrame)\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightaverage_height_parentsgender
15Marc16166166male
16Ralph17166166male
17Tom18167166male
18Steven19167167male
19Emanuel20168168male
\n", "
" ], "text/plain": [ " name id height average_height_parents gender\n", "15 Marc 16 166 166 male\n", "16 Ralph 17 166 166 male\n", "17 Tom 18 167 166 male\n", "18 Steven 19 167 167 male\n", "19 Emanuel 20 168 168 male" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show last rows\n", "df.tail()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 20 entries, 0 to 19\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 name 20 non-null object\n", " 1 id 20 non-null int64 \n", " 2 height 20 non-null int64 \n", " 3 average_height_parents 20 non-null int64 \n", " 4 gender 20 non-null object\n", "dtypes: int64(3), object(2)\n", "memory usage: 928.0+ bytes\n" ] } ], "source": [ "# data overview (with meta data)\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "Index(['name', 'id', 'height', 'average_height_parents', 'gender'], dtype='object')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show all variables in the data set\n", "df.columns" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Tidying data" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "# change data type\n", "df['name'] = pd.Categorical(df['name'])\n", "df['id'] = pd.Categorical(df['id'])\n", "df['gender'] = pd.Categorical(df['gender'])\n", "\n", "df.rename(columns = {\n", " \"average_height_parents\": \"height_parents\"},\n", " inplace=True\n", " )" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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i06fPq2lS5eqrq5OmzZt0rZt29SvXz/V1tZq1apVioqKUkJCgoqLixUTE3PVe3311Vf16aefKi4uTv369VN6erqCweDf7nXs2LGaNGmSduzYoaioKK1YsUIDBgzQli1bVFRUpJiYGA0ePLj5sS/Virlz56q2tlbV1dXKz89v378kzdm2bdtsxIgRduTIEQuFQjZt2jRbu3at5eXlWSgUMjOz/Px8e+utt8zMLDEx0SorK83MLCcnx5577jkzM6uoqLBnnnnGzMymT59uP/74o5mZ7d271yZOnOj9tNrNtm3bLCcnxx588EHbsmWLmZmVlpZaWlpahCe7Ns6fDwcOHGg+H95++23Lzs62hoYGMzMrKSmxsrIyMzt3PpiZFRUV2dKlS83MbPfu3ZacnGwHDx608vJyu/fee62mpsYaGxtt3Lhx9ssvv9jBgwev6c462tyJiYlWUVFhZmZr1661WbNmWSgUshkzZtiJEyfMzGz9+vU2a9YsMzv3Wlq5cqWZmZ04ccIyMzOttrbWzMzeffddmzdvnpmZpaWl2erVq5sfNy8vz8zMCgoKrLy83MzM0tPT7fjx42ZmtmTJEvvpp5+udq32+eefW3Z2tjU2Nlptba2lpaVddq/n+1BUVGRFRUXW2NhoY8aMsV9//dXMzObNm2c5OTlmdulWFBQUWEFBwVXP/U9E5O2FW265RTfddJMkaejQobrhhhtUUFCg9evXa9++fdq1a5cGDhzYfPz48eMlSTfffLNGjRolSerfv7/q6upUX1+vH374QYWFhc3H//XXX6qpqVFcXJzjs2o/NTU1OnbsmMaMGSNJeuihh1ReXh7hqa6dYcOGacCAAZLOnQ81NTWqrq7WI488Ikk6e/bsRX+5bN26VSUlJZLOvQWTmJjYfNtdd92l3r17S5IGDhyompoaXXfddV167piYGE2dOlWSlJWVpWXLlikYDKqsrEybNm3Svn379PXXXysYbPkY54477pAkfffddzpy5IhmzJghSQqHw+rVq1fzcePGjZN07nW7cePGi353WlqasrOzNWHCBE2aNEnJyclXNPPf+fLLL5WRkaHo6GhFR0drwoQJMrM293rhfN9884327Nmj+Ph4DR06tHkfr732WputuHAf7S0i0b3wT49AIKCamho98cQTeuyxxzRp0iQFg0HZBV8fjo6Obv7vqKioVo8VDocVHR3d6j2zo0ePNp+8XUEgEGi1j//dQWfXrVvLaRgIBBQbG6uMjAzNnz9fklRfX69QKNTqPlFRUa120tbjXeq4f6sjzR0MBhUIBCSde01ERUWpvr5eDz/8sDIzM3X33XcrKSlJ77zzTvN9evToIUkKhUIaOXKk3njjDUlSY2Oj6uvrm487/3o9//j/a/78+aqqqtIXX3yh/Px85eXlXfaDw7aeRzgcbvWzUCjU5l4vnM/MLvl6uVwrzu+jvXWIby8EAgGlpKQoOztbgwYN0ubNmy86WS8lNjZWgwYNal7k1q1b9eijj7bnuO569+6t/v37a/PmzZLUaT41/jcqKyt14sQJmZkWLlyoNWvWtLo9NTVV77//viRpz5492rt37yWjIJ0LWlNTU7vOLEVu7tOnT2vTpk2Szn0TYvz48dq/f78CgYCefvpp3XPPPaqsrPzb19Wdd96pXbt2ad++fZKk119/Xa+88kqbvy8qKkqhUEhNTU2aOHGi4uLiNGvWLE2ZMuVfffA3evRobdy4UWfOnNGff/6pzZs369SpU5fd64WSkpJ0/PhxVVVVSZI+/PBDSR2nFR3i2wsNDQ2qqqrS5MmTJUm33367Dh06dMX3Ly4u1sKFC7Vq1Sp1795dy5cvb/NE7oyKi4tVWFioFStWaMSIEZEep13FxsYqLy9PM2fOVDgcVnJysp566qlWx8yePVuFhYWaPHmyBg4cqL59+7Z5pdKnTx/1799fubm5WrduXZec+5NPPtHy5csVHx+vpUuXKi4uTsnJycrIyFAgENDYsWO1Y8eOi+7Xr18/LV68WM8++6zC4bBuvPFGFRcXt/m7Ro8erWXLlik2NlZz5szR448/rpiYGPXp00dLlixp875tue+++7Rz505lZWWpV69eio+P15AhQy671wt1795dy5YtU35+vrp169bqrYiO0Ar+GTA6pQ0bNighIUGjRo3S4cOHlZOTo88++6zVe5YdUXvNff7bEZ3dzp07tX//fmVlZens2bOaPn26Fi9e3KW+sdMhrnSBf2rIkCFasGCBwuGwgsGgXnrppQ4fXOnq525oaND06dP/9rY5c+Zc6zEjZvDgwSotLdXq1atlZpo6dWqXCq7ElS4AuOr4lwYA0IUQXQBwRHQBwBHRBQBHRBcAHBFdAHD0X+/Khxb7/RN/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# show missing values (missing values - if present - will be displayed in yellow )\n", "sns.heatmap(df.isnull(),yticklabels=False,cbar=False,cmap='viridis');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "We can also check the column-wise distribution of null values:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "name 0\n", "id 0\n", "height 0\n", "height_parents 0\n", "gender 0\n", "dtype: int64\n" ] } ], "source": [ "print(df.isnull().sum())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Transform data" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeanstdmin25%50%75%max
height20.0165.001.49162.0164.0165.0166.0168.0
height_parents20.0165.051.67161.0164.0165.0166.0168.0
\n", "
" ], "text/plain": [ " count mean std min 25% 50% 75% max\n", "height 20.0 165.00 1.49 162.0 164.0 165.0 166.0 168.0\n", "height_parents 20.0 165.05 1.67 161.0 164.0 165.0 166.0 168.0" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# summary statistics for all numerical columns (in transposed view)\n", "round(df.describe(),2).T" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
genderfemalemale
heightcount11.0000009.000000
mean164.363636165.777778
std1.1200651.563472
min162.000000163.000000
25%164.000000165.000000
50%165.000000166.000000
75%165.000000167.000000
max166.000000168.000000
height_parentscount11.0000009.000000
mean164.636364165.555556
std1.6292781.666667
min161.000000163.000000
25%164.000000165.000000
50%165.000000166.000000
75%165.500000166.000000
max167.000000168.000000
\n", "
" ], "text/plain": [ "gender female male\n", "height count 11.000000 9.000000\n", " mean 164.363636 165.777778\n", " std 1.120065 1.563472\n", " min 162.000000 163.000000\n", " 25% 164.000000 165.000000\n", " 50% 165.000000 166.000000\n", " 75% 165.000000 167.000000\n", " max 166.000000 168.000000\n", "height_parents count 11.000000 9.000000\n", " mean 164.636364 165.555556\n", " std 1.629278 1.666667\n", " min 161.000000 163.000000\n", " 25% 164.000000 165.000000\n", " 50% 165.000000 166.000000\n", " 75% 165.500000 166.000000\n", " max 167.000000 168.000000" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Grouped summary statistics for all numerical columns (in transposed view)\n", "df.groupby([\"gender\"]).describe().T" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidgender
count202020
unique19202
topStefanie1female
freq2111
\n", "
" ], "text/plain": [ " name id gender\n", "count 20 20 20\n", "unique 19 20 2\n", "top Stefanie 1 female\n", "freq 2 1 11" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# summary statistics for all categorical columns\n", "df.describe(include=['category'])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Visualize data" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# histogram with seaborn\n", "sns.pairplot(data=df);" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# histogram with seaborn\n", "sns.pairplot(data=df, hue=\"gender\");" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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8cYbWbhwIbt27Rq6z7Rp04Bzf3siKSmJp59+GoC+vj5Onz49tN3nT718vv6XlZWV8d577/H666/zwAMPsH79er8vNF/O9MLrZWr//v0cP34cy7LYvHkz1dXVw26/6aab2LdvHwDvv/8+H3744QUPejj3AzswMDChM8vkE6zj6MyZM7hcLuDcO3VuueUW2tvbCQkJIS8vj+9+97vs37//vP/pACQkJPCPf/yDjz76CICnnnqKhx9++KKPFxoais/nY2BggB/84AfMnj2btWvXsmrVqkn5QvF40pn8ZWjGjBmsX7+e3NxcBgcHsdvt/PSnPx22zbp169i4cSO33norV199NREREUNnQiOZM2cO0dHRrF69mt/85jcTvQsyCQT7OHr55Zf55S9/ybx589i+fTuzZ8/GbreTlpZGSEgIycnJvP322+fdb+7cuWzZsoX777+fwcFBrrrqKh555JGLPtb3v/99HnvsMWbMmMGGDRu45557CAsLY86cOWzbtu2i973c6dcaGGrPnj3ExMTwne98hyNHjnDXXXfx2muvDXuOU8SfiTqOPn/3jkw8nckbasGCBZSXlzM4OMiUKVNwOp0KvATsUo+j3t5e7rjjjhFv27Bhw3iPKRehM3kREYPp1E5ExGCKvIiIwRR5ERGDKfIiIgZT5EVEDKbIi4gY7P8BmKCViN0VaMMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# boxplot\n", "sns.boxplot(data=df);" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEJCAYAAAB/pOvWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcl0lEQVR4nO3df1DUdeLH8SeKKaTkD1IwGOe8K0FSjLOsOUb5glxxah1Z+IMzrBuLfuAFV7EISm0RnllXI3ejdJ2R2ChD5o+YM+VHTdLvGQ6TzJz24I5ix5JsXRSQZb9/OMdFH6K1/Owivh4zO8Pufj7vz+uDH/fFZz/7+ayf2+12IyIi8i1DfB1AREQGHpWDiIgYqBxERMRA5SAiIgYqBxERMbjgy6Grq4vm5ma6urp8HUVEZNC44MvBbreTkJCA3W73dRQRkUHjgi8HERE5/1QOIiJioHIQEREDlYOIiBioHERExMDUcnA6ncyfP5/m5mYA6urqSElJYd68eWRlZdHZ2QlAQ0MDCxcu5Oabb+aee+7B4XCYGUtERH6AaeVQX1/PkiVLaGxsBM4WRUZGBlarlYqKCgDKy8sBKCgoYOXKlezevZuf/exnvPDCC2bFEhERD5hWDmVlZeTn5zN+/HgAamtrmTFjBhEREQDk5eWRmJgIQHd3N21tbQCcPn2aESNGmBVLREQ84G/WwAUFBb3uNzU1ERgYSGZmJjabjZiYGCwWCwAWi4W77rqLJ598koCAAMrKyvoc0+FwGN5y0slvIuarrq5m//79Ps1w4sQJAEaPHu3THACJiYnEx8f7OoapTCuH73K5XBw4cIDt27czceJEcnNzKS4uZsWKFeTm5vLiiy8yffp0Nm/eTHZ2NsXFxYYxSkpKKCoq8lZkERlAWltbgYFRDhcDr5VDcHAw0dHRhIeHA5CUlERpaSmffvopw4cPZ/r06QAsWrSI5557rs8x0tLSSE5O7vWY3W4nNTXV3PAiF7n4+Hif/6Wck5MDQGFhoU9zXCy89lHW2NhYGhoaaGlpAaCmpoaoqCgmTZqE3W7HZrMBUFVVxbRp0/ocIygoiLCwsF63kJAQb62CiMhFw2t7DqGhoVitVtLT0+no6CAyMpLs7GwCAgIoLCzkwQcfxO12M27cOJ588klvxRIRkT6YXg7V1dU9P8fFxREXF2eYZs6cOcyZM8fsKCIi4iGdIS0iIgYqBxERMVA5iIiIgcpBREQMVA4iImKgchAREQOVg4iIGKgcRETEQOUgIiIGKgcRETFQOYiIiIHKQUREDFQOIiJioHIQEREDlYOIiBioHERExEDlICIiBioHERExUDmIiIiBykFERAxUDiIiYqByEBERA5WDiIgYqBxERMTA38zBnU4nixcvZuPGjYSFhVFXV0dhYSFtbW1MmTKFtWvX8tlnn2GxWHrmaW1t5bLLLuO1114zM5qIiPTDtD2H+vp6lixZQmNjI3C2KDIyMrBarVRUVABQXl5OZGQku3btYteuXWzbto3LLruMRx991KxYIiLiAdPKoaysjPz8fMaPHw9AbW0tM2bMICIiAoC8vDwSExN7zbNp0yauvfZaZs6caVYsERHxgGlvKxUUFPS639TURGBgIJmZmdhsNmJiYnq9nXTy5EnKysrYs2fP947pcDhwOBy9HrPb7ec3uMgA8vzzz2Oz2XwdY0D47+8hJyfHx0kGhsmTJ7NixQrTxjf1mMO3uVwuDhw4wPbt25k4cSK5ubkUFxeTkZEBwO7du5k7dy7jxo373jFKSkooKiryVmQRn7PZbBw93EDISK/9Vx2wAtzdAJz8zxEfJ/E9u7PL9GV4bYsLDg4mOjqa8PBwAJKSkigtLe15vrKyknvuuaffMdLS0khOTu71mN1uJzU19fwHFhkgQkb6c+f0sb6OIQPI5oOtpi/Da+UQGxvLhg0baGlpITQ0lJqaGqKiogBwu900NDRwzTXX9DtGUFAQQUFB3ogrInJR81o5hIaGYrVaSU9Pp6Ojg8jISLKzs4GzH18dNmwYw4cP91YcERHph+nlUF1d3fNzXFwccXFxhmnGjRtHbW2t2VFERMRDOkNaREQMVA4iImKgchAREQOVg4iIGKgcRETEQOUgIiIGKgcRETFQOYiIiIHKQUREDFQOIiJioHIQEREDlYOIiBioHERExEDlICIiBioHERExUDmIiIiBykFERAxUDiIiYqByEBERA5WDiIgYqBxERMRA5SAiIgYqBxERMVA5iIiIganl4HQ6mT9/Ps3NzQDU1dWRkpLCvHnzyMrKorOzEwCbzcayZcu4+eab+f3vf88333xjZiwREfkBppVDfX09S5YsobGxEThbFBkZGVitVioqKgAoLy/H7XZz7733smLFCnbv3k1kZCTFxcVmxRIREQ/4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3jwsFkvP4yIi4humlUN9fT1LliyhsbEROFsUGRkZWK1WKioqACgvL+fUqVNYrVY2b95MRUUFHR0dvPrqq2bFEhERD/ibNXBZWRn5+fk88sgjANTW1jJjxgwiIiIAyMvLw+VyERgYSHV1NcOGDeP06dMcP36coKCgPsd0OBw4HI5ej9ntdrNWwauqq6vZv3+/r2Ngs9kAyMnJ8WmOxMRE4uPjfZpB/mcgbJ8DZduEi2P7NK0cCgoKet1vamoiMDCQzMxMbDYbMTExWCwWAIYNG8abb77JI488wvjx44mNje1zzJKSEoqKisyKLMDYsWN9HUGkT9o2vcvP7Xa7zVxAfHw8L730Env27GHLli1s376diRMnkpubyxVXXEFGRkav6Z955hk+//xznn76acNY37fnkJqaSlVVFWFhYWauiojIRcNrn1YKDg4mOjqa8PBwhg4dSlJSEgcPHuTEiRMcOHCgZ7oFCxZw5MiRPscICgoiLCys1y0kJMRbqyAictHwWjnExsbS0NBAS0sLADU1NURFReF2u3n44Yf54osvANi7dy8xMTHeiiUiIn0w7ZjDd4WGhmK1WklPT6ejo4PIyEiys7MJCAjg8ccf55577sHPz49f/OIXPPbYY96KJSIifTD9mIPZmpubSUhI0DEHEZHzSGdIi4iIgcpBREQMVA4iImKgchAREQOVg4iIGKgcRETEQOUgIiIGKgcRETFQOYiIiIHKQUREDFQOIiJioHIQEREDlYOIiBioHERExEDlICIiBioHERExUDmIiIiBykFERAxUDiIiYqByEBERA5WDiIgYqBxERMRA5SAiIgYqB+mltbUVi8XC119/7esoIuJDppaD0+lk/vz5NDc3A1BXV0dKSgrz5s0jKyuLzs5OACorK7nlllu4+eabue+++/jmm2/MjCX92LZtGx9//DHbtm3zdRQR8SHTyqG+vp4lS5bQ2NgInC2KjIwMrFYrFRUVAJSXl+N0Onn00UcpLi5m9+7dTJkyhQ0bNpgVS/rR2tpKVVUVbrebyspK7T2IXMRMK4eysjLy8/MZP348ALW1tcyYMYOIiAgA8vLySExM5MyZM+Tn5zNhwgQApkyZQktLS59jOhwOmpube93sdrtZq3DR2bZtG93d3QB0d3dr70HkIuZv1sAFBQW97jc1NREYGEhmZiY2m42YmBgsFgvDhw8n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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# boxplot\n", "sns.boxplot(data=df, y=\"height\", x=\"gender\");" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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5YwYMYKPPvoIl8vFmjVreO+993j00Ud56623AHj33Xd57rnn+PDDD3nuued45ZVXzjnP0aNHL9h+oKiKJ6DthwrpOQkhguLtz3Nxec69ROXyKLz9ea5fek8A27dvp6CggClTpgANy2L069ev8fURI0YA0LlzZ6644goAMjIysNlsAPzud79j/fr1rFy5kr179zauLdXc9gOho/ScJJyEEEFRXlXfou2toSgKY8eOZe7cuUDDshiK8t9A/O79qO8up3HWtGnTuPrqq7n66qu55ppr+OUvf9mi9gNB9XSMnpNc1hNCBEVSgqVF21vj6quv5osvvqCiogJVVfn1r3/deMnuUqqrq8nPz+d//ud/GDFiBGvXrj0veNrSfmupPndA2w8V0nMSQgTFPWP78toHe8+5tGcy6LhnbF+/nSM7O5tHHnmEe++9F5/PR9++fZucobwp8fHx/PCHP2TcuHHo9XqGDRuG0+nE4XD4pf3WUj0dI5w0apg/blxYWMjo0aNZu3YtXbp0CXY5QnRYubm59O3bsmAJ1Gi9UNWa39FZZz/r/r3o9/S6YbyfKws90nMSQgTNyCsyIzqMAsHndV16pwgg95yEECKMqB5nsEtoFwHtOdntdu6++27+/Oc/c/z4cV5++eXG10pKShg0aBB/+ctfyM3NZc6cOdTV1TF06FB+85vfoNdLp04IIb7P5+4Y4RSwntPevXuZOnUq+fn5ANxwww2sWLGCFStW8Le//Y2YmBieeuopAH71q1/x7LPPsmrVKlRVZenSpYEqSwghwprP5bj0ThEgYOG0dOlS5s2bR0pKynmvvfTSS9x9991069aN06dP43Q6GTx4MACTJk1i5cqVTbZps9koLCw855/i4uJA/QhCCBEUF/us6yjhFLBrZwsWLGhye35+Pjt27Gh8vbS0lOTk5MbXk5OTKSkpafLYt956i9dee83/xQohRAi52Ged4qxrcnukafcbO0uWLGHatGmNT2b7fD40Gk3j66qqnvP9d917771MnDjxnG3FxcVMnz49cAULIUQ7u9hnnSrhFBhr1649Z2LEtLQ0ysrKGr8vLy9v8lIggNVqxWq1BrxGIUTHNmrUKN5+++2gPTt5sc86XwcJp3YdSl5ZWYnT6SQz87/PNXTu3BmTycSuXbsAWLFiReNkjEIIIc6lOOzBLqFdtGvPqbCwkLS0tPO2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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# check relationship with a joint plot\n", "sns.jointplot(x=\"height_parents\", y=\"height\", hue=\"gender\", data=df);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "We can observe a strong positive relationship between height and the average height of the parents. Hence, it would make sense to use the variable `height_parents` as a predictor for the outcome variable `height` in a statistical model." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Model" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "If we are interested in discovering something about a phenomenon in the real world, we need to collect data to test predictions from our hypotheses about that phenomenon. Testing these hypotheses involves building statistical **models** of the phenomenon of interest.\n", "\n", "It is important that the model accurately represents the real world, otherwise any conclusions we extrapolate to the real-world will be meaningless. Hence, the statistical model should represent the data collected (the observed data) as closely as possible. \n", "\n", "$$Outcome_i = (Model) + error_i$$\n", "\n", "This equation means that the data we observe can be predicted from the model we choose to fit plus some amount of error. There are different terms that basically refer to **error** like **residual**, **deviation** or **deviance**. The degree to which a statistical model represents the data collected is known as the **fit of the model** which is closely related to the error of the model.\n", "\n", "The model in the equation will vary depending on the design of your study, the type of data you have and what it is you’re trying to achieve with your model. Consequently, the model can also vary in its complexity.\n", "\n", "The important thing is that we can use the model computed in our **sample** to estimate the value in the **population** (which is the value in which we’re interested).\n", "\n", "**Parameters**\n", "\n", "Statistical models are made up of **variables** and **parameters**. Variables are measured constructs that vary across entities in the sample. In contrast, parameters are not measured and are (usually) constants believed to represent some fundamental truth about the relations between variables in the model.\n", "\n", "Some examples of parameters with which you already are familiar are: the **mean** and **median** (which estimate the centre of the distribution). We will also cover correlation and regression coefficients (which estimate the relationship between two variables) in other applications.\n", "\n", "If we’re interested only in summarizing the outcome, as we are when we compute a **mean**, then we won’t have any variables in the model, only a **parameter** (typically called *b*), so we could write our $Outcome_i = (Model) + error_i$ equation as:\n", "\n", "$Outcome_i = (b) + error_i$\n", "\n", "\n", "Let's say we would like to compare the **quality of fit** of two models to predict the height of women in our dataset: the simple mean and a second model in which we use information about the average height of their parents as a predictor in a linear regression model.\n", "\n", "\n", "**Model 1: Mean**\n", "\n", " * In the case of the **mean**, the *b* parameter is usually called $\\bar{x}$, which leads to:\n", "\n", "$height_i = (\\bar{x}) + error_i$\n", " \n", " * with\n", "\n", "$\\bar{x} = \\frac {\\sum_{i=1}^n x_{i}}{n}$\n", "\n", "\n", "**Model 2: Linear Regression**\n", "\n", " * In our second model, we use the variable height of parents as predictor in a linear regression model:\n", "\n", "$height_i = (b_0 + b_1 \\times heightparents_i ) + error_i$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Mean" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "165.0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the mean \n", "df[\"height\"].mean()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightheight_parentsgenderaverage
0Stefanie1162161female165.0
1Peter2163163male165.0
2Stefanie3163163female165.0
3Manuela4164165female165.0
4Simon5164163male165.0
\n", "
" ], "text/plain": [ " name id height height_parents gender average\n", "0 Stefanie 1 162 161 female 165.0\n", "1 Peter 2 163 163 male 165.0\n", "2 Stefanie 3 163 163 female 165.0\n", "3 Manuela 4 164 165 female 165.0\n", "4 Simon 5 164 163 male 165.0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# add the mean (we call it \"average\") to our DataFrame\n", "df = df.assign(average = df[\"height\"].mean())\n", "\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create a scatterplot (plt)\n", "plt = sns.scatterplot(x=\"id\", y=\"height\",data=df);\n", "\n", "# labels and title\n", "plt.set(xlabel='ID', ylabel='Height in cm', title='Error of the model');\n", "\n", "# add our model \n", "plt.plot([0, 20], [165, 165], linewidth=2, color='r');\n", "plt.text(1, 165.2,'mean = 165', rotation=0, color='r');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Regression model" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "# fit linear model with statsmodels.formula.api\n", "lm = smf.ols(formula ='height ~ height_parents', data=df).fit()\n", "\n", "# add the regression predictions (as \"pred\") to our DataFrame\n", "df['pred'] = lm.predict()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightheight_parentsgenderaveragepred
0Stefanie1162161female165.0161.711048
1Peter2163163male165.0163.335222
2Stefanie3163163female165.0163.335222
3Manuela4164165female165.0164.959396
4Simon5164163male165.0163.335222
\n", "
" ], "text/plain": [ " name id height height_parents gender average pred\n", "0 Stefanie 1 162 161 female 165.0 161.711048\n", "1 Peter 2 163 163 male 165.0 163.335222\n", "2 Stefanie 3 163 163 female 165.0 163.335222\n", "3 Manuela 4 164 165 female 165.0 164.959396\n", "4 Simon 5 164 163 male 165.0 163.335222" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(5)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
OLS Regression Results
Dep. Variable: height R-squared: 0.831
Model: OLS Adj. R-squared: 0.822
Method: Least Squares F-statistic: 88.78
Date: Sun, 05 Dec 2021 Prob (F-statistic): 2.21e-08
Time: 13:23:53 Log-Likelihood: -17.995
No. Observations: 20 AIC: 39.99
Df Residuals: 18 BIC: 41.98
Df Model: 1
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 30.9651 14.226 2.177 0.043 1.077 60.853
height_parents 0.8121 0.086 9.422 0.000 0.631 0.993
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 4.700 Durbin-Watson: 1.384
Prob(Omnibus): 0.095 Jarque-Bera (JB): 2.492
Skew: -0.684 Prob(JB): 0.288
Kurtosis: 4.058 Cond. No. 1.67e+04


Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 1.67e+04. This might indicate that there are
strong multicollinearity or other numerical problems." ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: height R-squared: 0.831\n", "Model: OLS Adj. R-squared: 0.822\n", "Method: Least Squares F-statistic: 88.78\n", "Date: Sun, 05 Dec 2021 Prob (F-statistic): 2.21e-08\n", "Time: 13:23:53 Log-Likelihood: -17.995\n", "No. Observations: 20 AIC: 39.99\n", "Df Residuals: 18 BIC: 41.98\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "----------------------------------------------------------------------------------\n", "Intercept 30.9651 14.226 2.177 0.043 1.077 60.853\n", "height_parents 0.8121 0.086 9.422 0.000 0.631 0.993\n", "==============================================================================\n", "Omnibus: 4.700 Durbin-Watson: 1.384\n", "Prob(Omnibus): 0.095 Jarque-Bera (JB): 2.492\n", "Skew: -0.684 Prob(JB): 0.288\n", "Kurtosis: 4.058 Cond. No. 1.67e+04\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 1.67e+04. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# summary of regression results\n", "lm.summary()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "193.39\n" ] } ], "source": [ "# This is just a simple example of how regression works.\n", "\n", "# our parameters\n", "b_0 = 30.9651\n", "b_1 = 0.8121\n", "\n", "# Make a prediction for X=200\n", "X = 200\n", "\n", "prediction = b_0 + b_1*(X)\n", "\n", "print(round(prediction,2))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "We use [Seaborn's lmplot](https://seaborn.pydata.org/generated/seaborn.lmplot.html) to plot the regression line:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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9Z///Mc6deqU9ec//9navXu3ZVmWFRMTYy1evNiyLMvKysqyRo4cabVp08ZaunSpV9R15vGsrCzLsizr5Zdftp599lnH68rLy7MiIyOt77//3rIsy3rssces9957z/G6zvj++++tbt26WbfffrvHaqpoXSNHjrT++c9/erSeitZVUlJi3XnnndaGDRssy7KsF154wZoxY4bjdf1cfn6+1b17d+urr77yiroGDhxopaWlWZZlWdOmTbNmzpxZ4dertne4SUlJTJkyhdDQUAA2bdpEu3btCA8PByAuLo6uXbsCsHLlSqKiooiOjvaauoqLi5kyZQoNGjQAoEWLFhw5csTxuoKCgli3bh0hISEUFBTwww8/ePTd5Yr8OZ4Z//Wvf/VYPRdT165du5g7dy49e/YkPj6eoqIix+vKyMggKCiIW2+9FYBRo0Z5tB9JRf8cAebOncuNN9540TtJK7uukpIS8vLyACgoKCAgIKDCr1flt/ZeSEJCQqnxoUOHCAoKIiYmhv3799OhQwdiY2MBePjhhwH4+uuvvaauOnXqnP2DLiwsJDExkSFDhjheF0Dt2rXZsGED48ePJzQ0lMjISK+o6+2336Zly5a0bdvWY/VUtK68vDwiIiJ44oknaNq0KbGxsbz++uvExMQ4WtdXX31FSEgIEydOZPfu3Vx77bVMnjzZIzVVpK4zTp06RVJSEitXrvRYTRWtKzY2luHDhzN16lQCAwNJSkqq8OtV2zvcX3K73aSnpzNu3DhSUlIoKCggMTHR6bJ+s65Tp04xYsQIwsPD6dOnj9fUddttt7F582Zuv/12nn76acfr2rt3L2vWrGH06NG21VKeui677DLefPNNmjVrhp+fH8OHD2fDhg2O1+VyudiyZQsDBw5k2bJlNGnShOnTpzte1xkrVqygS5cuXHXVVbbVVFZdhYWFTJo0iQULFpCens6gQYOYMGFCha9fYwI3JCSEtm3b0qRJE3x9fYmOjmbHjh1Ol1VmXceOHWPQoEG0aNHiV/8SO1XXyZMnSU9PP/t5PXv25P/9v//neF2ffPIJ33//Pf369WPEiBFnv3dO13X48GGSk5PPfp5lWeftImV3XVdffTVNmzaldevWAPTo0cPWn4ff+nlcu3Ytd999t231/FZde/fupU6dOrRp0waA+++/ny1btlT4+jUmcCMjI8nIyDg7D7p+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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot regression line \n", "sns.lmplot(x='height_parents', y='height', data=df, line_kws={'color':'red'}, height=5, ci=None);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Quality of fit" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "In order to evaluate the performance of a statistical model on a given data set, we need some way to measure how well its predictions actually match the observed data. That is, we need to quantify the extent to which the predicted response value for a given observation is close to\n", "the true response value for that observation. \n", "\n", "With most statistical models we can determine whether the model represents the data well by looking at how different the scores we observed in the data are from the values that the model predicts.\n", "\n", "$$observed_i = model_i + error_i$$\n", "\n", "hence\n", "\n", "$$error_i = observed_i - model_i$$\n", "\n", "In other words, the error for a particular entity is the score predicted by the model for that entity subtracted from the corresponding observed score." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Residuals and $R^2$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Note that residuals (errors) would cancel out because some are positive and others negative. Therefore, we square each deviation. If we add these squared deviations we get the **sum of squared residuals (SSR)** (also known as the residual sum of squares (RSS) or the sum of squared estimate of errors (SSE)).\n", "\n", "$ SSR = \\sum_{i=1}^n (observed_i - model_i)^2$ \n", "\n", "Using the **mean** of the outcome as a baseline model, we can calculate the difference between the observed values and the values predicted by the mean. We square these differences to give us the sum of squared differences. This sum of squared differences is known as the **total sum of squares** (denoted by $TSS$) and it represents how good the mean is as a model of the observed outcome scores:\n", "\n", "$$TSS = \\sum_{i=1}^n (observed_i - mean)^2$$\n", "\n", "We can use the values of $TSS$ and the sum of squared residuals ($SSR$) \n", "\n", "$$SSR = \\sum_{i=1}^n (observed_i - model_i )^2$$\n", "\n", "to calculate how much better the linear regression model is than the baseline model (the mean). The improvement in prediction resulting from using the linear model rather than the mean is calculated as the difference between $TSS$ and $SSR$.\n", "\n", "This difference shows us the reduction in the inaccuracy of the mean model resulting from fitting the regression model to the data. This improvement is the **model sum of squares** $SSM$ (also known as explained sum of squares (ESS))\n", "\n", "$$SSM = TSS - SSR$$\n", "\n", "- If the value of $SSM$ is *large*, then the linear model is very different from using the mean to predict the outcome variable. This implies that the linear model has made a big improvement to predicting the outcome variable. \n", "\n", "- If $SSM$ is *small* then using the linear model is little better than using the mean (i.e., the model is no better than predicting from ‘no relationship’). \n", "\n", "A useful measure arising from these sums of squares is the proportion of improvement due to the model. This is calculated by dividing the sum of squares for the model (SSR) by the total sum of squares (TSS) to give a quantity called $R^2$\n", "\n", "$$R^2 = \\frac {SS_M}{TSS}$$\n", "\n", "\n", "with \n", "\n", "$$TSS = \\sum_{i=1}^n (observed_i - mean)^2$$\n", "\n", "$$SSR = \\sum_{i=1}^n (observed_i - model_i )^2$$\n", "\n", "$$SSM = TSS - SS_R$$\n", "\n", "To express the $R^2$-value as a percentage multiply it by 100. \n", "\n", "$R^2$ represents the amount of variance in the outcome explained by the model ($SSM$) relative to how much variation there was to explain in the first place ($TSS$): \n", "\n", "- it represents the proportion of the variation in the outcome that can be predicted from the model. \n", "- Therefore, it can take any value between 0% and 100%. \n", "\n", "\n", "**Adjusted** $R^2$: \n", "\n", "Whereas $R^2$ tells us how much of the variance in Y overlaps with predicted values from the model in our sample, adjusted $R^2$ tells us how much variance in Y would be accounted for if the model had been derived from the **population** from which the sample was taken (takes degrees of freedom into account). Therefore, the adjusted value indicates the loss of predictive power or shrinkage. \n", "\n", "As a general rule it is preferrable to use the adjusted $R^2$ instead of the simple $R^2$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Mean" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightheight_parentsgenderaverageprederror
0Stefanie1162161female165.0161.711048-3.0
1Peter2163163male165.0163.335222-2.0
2Stefanie3163163female165.0163.335222-2.0
3Manuela4164165female165.0164.959396-1.0
4Simon5164163male165.0163.335222-1.0
\n", "
" ], "text/plain": [ " name id height height_parents gender average pred error\n", "0 Stefanie 1 162 161 female 165.0 161.711048 -3.0\n", "1 Peter 2 163 163 male 165.0 163.335222 -2.0\n", "2 Stefanie 3 163 163 female 165.0 163.335222 -2.0\n", "3 Manuela 4 164 165 female 165.0 164.959396 -1.0\n", "4 Simon 5 164 163 male 165.0 163.335222 -1.0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate error (observation - average) and assign it to dataframe\n", "df = df.assign(error = (df['height'] - df['average']))\n", "df.head(5)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Note, that we can’t simply add deviances (the individual errors) because some errors are positive and others negative and so we’d get a total of zero.\n", "\n", "total error = sum of errors \n", "\n", "total error $= \\sum_{i=1}^n (outcome_i - model_i)$ " ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the sum of the errors \n", "df.error.sum()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create a scatterplot (plt)\n", "plt = sns.scatterplot(x=\"id\", y=\"height\",data=df,);\n", "plt.set(xlabel='ID', ylabel='Height in cm', title='Error of th model');\n", "plt.plot([0, 20], [165, 165], linewidth=2, color='r');\n", "plt.text(1, 165.2,'mean = 165', rotation=0, color='r');" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# residual plot\n", "sns.residplot(x=\"average\", y=\"height\", data=df, scatter_kws={\"s\": 80});" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightheight_parentsgenderaverageprederrorerror_sq
0Stefanie1162161female165.0161.711048-3.09.0
1Peter2163163male165.0163.335222-2.04.0
2Stefanie3163163female165.0163.335222-2.04.0
3Manuela4164165female165.0164.959396-1.01.0
4Simon5164163male165.0163.335222-1.01.0
\n", "
" ], "text/plain": [ " name id height height_parents gender average pred error \\\n", "0 Stefanie 1 162 161 female 165.0 161.711048 -3.0 \n", "1 Peter 2 163 163 male 165.0 163.335222 -2.0 \n", "2 Stefanie 3 163 163 female 165.0 163.335222 -2.0 \n", "3 Manuela 4 164 165 female 165.0 164.959396 -1.0 \n", "4 Simon 5 164 163 male 165.0 163.335222 -1.0 \n", "\n", " error_sq \n", "0 9.0 \n", "1 4.0 \n", "2 4.0 \n", "3 1.0 \n", "4 1.0 " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate squared error and assign it to dataframe\n", "df = df.assign(error_sq = (df['height'] - df['average'])**2)\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sum of squared error (TSS) of model 1: 42.0\n" ] } ], "source": [ "# calculate sum of squared error (which is in case of the mean the total error)\n", "TSS = df.error_sq.sum()\n", "# print output\n", "print('Sum of squared error (TSS) of model 1:', TSS)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Regression" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "4.206412995699793e-12" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lm.resid.sum()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameidheightheight_parentsgenderaverageprederrorerror_sqerror_2error_sq_2
0Stefanie1162161female165.0161.711048-3.09.00.2889520.083493
1Peter2163163male165.0163.335222-2.04.0-0.3352220.112374
2Stefanie3163163female165.0163.335222-2.04.0-0.3352220.112374
3Manuela4164165female165.0164.959396-1.01.0-0.9593960.920440
4Simon5164163male165.0163.335222-1.01.00.6647780.441930
\n", "
" ], "text/plain": [ " name id height height_parents gender average pred error \\\n", "0 Stefanie 1 162 161 female 165.0 161.711048 -3.0 \n", "1 Peter 2 163 163 male 165.0 163.335222 -2.0 \n", "2 Stefanie 3 163 163 female 165.0 163.335222 -2.0 \n", "3 Manuela 4 164 165 female 165.0 164.959396 -1.0 \n", "4 Simon 5 164 163 male 165.0 163.335222 -1.0 \n", "\n", " error_sq error_2 error_sq_2 \n", "0 9.0 0.288952 0.083493 \n", "1 4.0 -0.335222 0.112374 \n", "2 4.0 -0.335222 0.112374 \n", "3 1.0 -0.959396 0.920440 \n", "4 1.0 0.664778 0.441930 " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# obtain the residuals from statsmodel (resid)\n", "df['error_2'] = lm.resid\n", "# square the residuals \n", "df['error_sq_2'] = df['error_2']**2\n", "# show df\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42.0\n" ] } ], "source": [ "# Total sum of squares (TSS: sum of squared errors of the base model, i.e. the mean)\n", "print(TSS)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7.0802644003777155\n" ] }, { "data": { "text/plain": [ "7.080264400377715" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Sum of squared residuals (SS_R)\n", "SSR = df['error_sq_2'].sum()\n", "print(SSR)\n", "# SSR – Sum of squared residuals from statsmodel function\n", "lm.ssr" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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9Z///Mc6deqU9ec//9navXu3ZVmWFRMTYy1evNiyLMvKysqyRo4cabVp08ZaunSpV9R15vGsrCzLsizr5Zdftp599lnH68rLy7MiIyOt77//3rIsy3rssces9957z/G6zvj++++tbt26WbfffrvHaqpoXSNHjrT++c9/erSeitZVUlJi3XnnndaGDRssy7KsF154wZoxY4bjdf1cfn6+1b17d+urr77yiroGDhxopaWlWZZlWdOmTbNmzpxZ4dertne4SUlJTJkyhdDQUAA2bdpEu3btCA8PByAuLo6uXbsCsHLlSqKiooiOjvaauoqLi5kyZQoNGjQAoEWLFhw5csTxuoKCgli3bh0hISEUFBTwww8/ePTd5Yr8OZ4Z//Wvf/VYPRdT165du5g7dy49e/YkPj6eoqIix+vKyMggKCiIW2+9FYBRo0Z5tB9JRf8cAebOncuNN9540TtJK7uukpIS8vLyACgoKCAgIKDCr1flt/ZeSEJCQqnxoUOHCAoKIiYmhv3799OhQwdiY2MBePjhhwH4+uuvvaauOnXqnP2DLiwsJDExkSFDhjheF0Dt2rXZsGED48ePJzQ0lMjISK+o6+2336Zly5a0bdvWY/VUtK68vDwiIiJ44oknaNq0KbGxsbz++uvExMQ4WtdXX31FSEgIEydOZPfu3Vx77bVMnjzZIzVVpK4zTp06RVJSEitXrvRYTRWtKzY2luHDhzN16lQCAwNJSkqq8OtV2zvcX3K73aSnpzNu3DhSUlIoKCggMTHR6bJ+s65Tp04xYsQIwsPD6dOnj9fUddttt7F582Zuv/12nn76acfr2rt3L2vWrGH06NG21VKeui677DLefPNNmjVrhp+fH8OHD2fDhg2O1+VyudiyZQsDBw5k2bJlNGnShOnTpzte1xkrVqygS5cuXHXVVbbVVFZdhYWFTJo0iQULFpCens6gQYOYMGFCha9fYwI3JCSEtm3b0qRJE3x9fYmOjmbHjh1Ol1VmXceOHWPQoEG0aNHiV/8SO1XXyZMnSU9PP/t5PXv25P/9v//neF2ffPIJ33//Pf369WPEiBFnv3dO13X48GGSk5PPfp5lWeftImV3XVdffTVNmzaldevWAPTo0cPWn4ff+nlcu3Ytd999t231/FZde/fupU6dOrRp0waA+++/ny1btlT4+jUmcCMjI8nIyDg7D7p+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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot regression line \n", "sns.lmplot(x='height_parents', y='height', data=df, line_kws={'color':'red'}, height=5, ci=None);" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.residplot(x=\"height_parents\", y=\"height\", data=df, scatter_kws={\"s\": 80});" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "34.919735599622285\n" ] }, { "data": { "text/plain": [ "34.919735599622285" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Explained sum of squares (SS_M = TSS - SS_R)\n", "SSM = TSS - SSR\n", "print(SSM)\n", "# Explained sum of squres (SS_M) from statsmodel function\n", "lm.ess" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "$R^2$ is the proportion of the variance in the dependent variable that is predictable from the independent variable" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.831422276181483\n" ] } ], "source": [ "# R_Squared: explained sum of squared residuals\n", "R_squared = SSM / TSS\n", "print(R_squared)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0.831422276181483" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# R_Squared of statsmodel\n", "lm.rsquared" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0.8220568470804543" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Adjusted R_Squared: \n", "lm.rsquared_adj" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Pearson's correlation coefficient" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "We just saw that $R^2$ represents the proportion of the variation in the outcome that can be predicted from the model: \n", "\n", "$R^2 = \\frac{SSM}{TSS}$\n", "\n", "with \n", "\n", "$TSS = \\sum_{i=1}^n (observed_i - mean)^2$\n", "\n", "$SSR = \\sum_{i=1}^n (observed_i - model_i )^2$\n", "\n", "$SSM = TSS - SSR$\n", "\n", "We can take the square root of this value to obtain **Pearson’s correlation coefficient** (we cover the topic of correlation in a separate application in detail) for the relationship between the values of the outcome predicted by the model and the observed values of the outcome. With only one predictor in the model this value will be the same as the Pearson correlation coefficient between the predictor and outcome variable.\n", "\n", "$r = \\sqrt{R^2} = \\sqrt{\\frac{SSM}{TSS}}$\n", "\n", "\n", "As such, the correlation coefficient provides us with a good estimate of the overall fit of the regression model (i.e., the correspondence between predicted values of the outcome and the actual values), and $R^2$ provides us with a gauge of the substantive size of the model fit.\n", "\n", "**Interpretation of r:**\n", "\n", "$- 1 ≤ r ≤ 1$\n", "\n", "With a perfect relationship (r = −1 or 1) the observed data basically fall exactly on the line (the model is a perfect fit to the data), but for a weaker relationship (r = −0.5 or 0.5) the observed data are scattered more widely around the line.\n", "\n", " * | r | = 0.10 (small effect)\n", " * | r | = 0.30 (medium effect)\n", " * | r | = 0.50 (large effect)\n", "\n", "It’s worth bearing in mind that r is not measured on a linear scale, so an effect with r = 0.6 isn’t twice as big as one with r = 0.3." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Let`s caculate the $R^2$ for our regression model:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.911823599267689\n" ] } ], "source": [ "# correlation coefficient r\n", "r = np.sqrt(R_squared)\n", "print(r)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "(0.9118235992676889, 2.2144128916549524e-08)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# correlation coefficient with p-value\n", "stats.pearsonr(df['height'], df['height_parents'])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### Mean squared error\n", "\n", "Although the **sum of squared errors (SS)** is a good measure of the accuracy of our model, it depends upon the quantity of data that has been collected – the more data points, the higher the SS. \n", "\n", "By using the **average error**, rather than the total, we can overcome this problem. This measure is called the \"**Mean Squared Error (MSE)**\". In the regression setting, it is the most commonly-used measure to evaluate the performance of a model. \n", "\n", "To compute the average error we divide the sum of squares by the number of values that we used to compute that total. We again come back to the problem that we’re usually interested in the error in the model in the **population** (not the **sample**). \n", "\n", "To estimate the mean error in the population we need to divide not by the number of scores contributing to the total, but by the **degrees of freedom (df)**, which is the number of scores used to compute the total adjusted for the fact that we’re trying to estimate the population value. Note: you may encounter different formulas for calculating the mse. Some only devide by the number of observations and not the df.\n", "\n", "Mean squared error of our regression model:\n", "\n", "$$ MSE = \\frac {SS}{df} = \\frac {\\sum_{i=1}^n (outcome_i - model_i)^2}{df}$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### Variance" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "In the case of our mean model, we use the **variance** as a measure of dispersion. Furthermore, the **standard deviation** is the square root of the variance:\n", "\n", "Variance = $s^2 = \\frac {SS}{df} = \\frac {\\sum_{i=1}^n (outcome_i - model_i)^2}{df}$\n", "\n", "Standard Deviation = $\\sqrt{s^2} = \\sqrt{\\frac{\\sum\\limits_{i=1}^{n} \\left(x_{i} - \\bar{x}\\right)^{2}} {df}}$\n", "\n", "which equals:\n", "\n", "$s = \\frac {\\sum_{i=1}^n (outcome_i - model_i)}{df}$\n", "\n", "A small **standard deviation** represents a scenario in which most data points are close to the mean, whereas a large standard deviation represents a situation in which data points are widely spread from the mean. " ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "variance of the mean: 2.210526315789474\n" ] } ], "source": [ "# calculate variance of the model mean\n", "# Number of obeservations (lenght of DataFrame)\n", "n = len(df[\"height\"])\n", "# calculate \n", "variance = (TSS/(n-1))\n", "# print output\n", "print('variance of the mean:', variance)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Variance = $\\frac {SS}{df} = \\frac {\\sum_{i=1}^n (outcome_i - model_i)^2}{df} = \\frac {\\sum_{i=1}^n(x_i-\\bar{x})^2}{df} = \\frac {42}{19} = 2.210$\n", "\n", "In our example, $n=20$, we have one parameter, p=1 (the mean), and therefore, the degrees of freedom are df = (p-1) = 20-1 = 19." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Standard deviation (SD) of model 1 = 1.49\n" ] } ], "source": [ "# obtain the standard deviation\n", "print(f'Standard deviation (SD) of model 1 = {round(np.sqrt(variance),2)}')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Linear Regression:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Statsmodel provide us with different options (we use mse_resid and mse_total): \n", "\n", " * mse_model : Mean squared error the model. This is the explained sum of squares divided by the model degrees of freedom.\n", " * mse_resid : Mean squared error of the residuals. The sum of squared residuals divided by the residual degrees of freedom.\n", " * mse_total : Total mean squared error. Defined as the uncentered total sum of squares divided by n the number of observations." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total mean squared error (MSE_T): 2.210526315789474\n" ] } ], "source": [ "# Total MSE_T (this is the MSE of the basline mean model) from statsmodel\n", "MSE_T = lm.mse_total\n", "# print output\n", "print('Total mean squared error (MSE_T):', MSE_T)\n", "# compare this result to mse... they are the same" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean squared error of residuals (MSE_R): 0.3933480222432064\n", "Mean squared error od residuals (MSE_R): 0.39334802224320636\n" ] } ], "source": [ "# Mean squared error of residuals (MSE_R)\n", "MSE_R = SSR / (20-2)\n", "print('Mean squared error of residuals (MSE_R):', MSE_R)\n", "# MSE of residuals from statsmodel (preferred)\n", "print(f'Mean squared error od residuals (MSE_R): {lm.mse_resid}')" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Standard deviation (SD) of model 2 = 0.63\n" ] } ], "source": [ "# the standard deviation equals the root of the MSE_R\n", "print(f'Standard deviation (SD) of model 2 = {round(np.sqrt(MSE_R),2)}')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### F-Statistic" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "A second use of the sums of squares in assessing the model is the **F-test**. Test statistics (like F) are usually the amount of **systematic variance** divided by the amount of **unsystematic variance**, or, put another way, the model compared to the error in the model. This is true here: F is based upon the ratio of the improvement due to the model ($SS_M$) and the error in the model ($SS_R$). \n", "\n", "Because the sums of squares depend on the number of differences that were added up, the **average sums of squares** (referred to as the **mean squares** or **MS**) are used to compute F. \n", "\n", "The **mean sum of squares** is the sum of squares divided by the associated degrees of freedom (this is comparable to calculating the variance from the sums of squares). \n", "\n", "For $SS_M$ the degrees of freedom are the number of predictors in the model (*p*), and for $SS_R$ they are the number of observations (*n*) minus the number of parameters being estimated (i.e., the number of b coefficients including the constant). \n", "\n", "We estimate a \"b\" for each predictor and the intercept ($b_0$), so the total number of b's estimated will be *p + 1*, giving us degrees of freedom of n - (p + 1) or, more simply, n - p - 1. Thus:\n", "\n", "$MS_M = \\frac{SS_M}{p}$\n", "\n", "$MS_R = \\frac{SS_R}{n-p-1}$\n", "\n", "**The F-statistic computed from these mean squares**\n", "\n", "$$F = \\frac{Systematic Variance}{Unsystematic Variance} = \\frac{MS_M}{MS_R}$$\n", "\n", "is a measure of how much the model has *improved* the prediction of the outcome compared to the level of inaccuracy of the model. If a model is good, then the improvement in prediction from using the model should be large ($MS_M$ will be large) and the difference between the model and the observed data should be small ($MS_R$ will be small). \n", "\n", "In short, for a good model the numerator in the equation above will be bigger than the denominator, resulting in a large F-statistic (greater than 1 at least).\n", "\n", "This F has an associated probability distribution from which a **p-value** can be derived to tell us the probability of getting an F at least as big as the one we have if the null hypothesis were true. The null hypothesis in this case is a flat model (predicted values of the outcome are the same regardless of the value of the predictors). \n", "\n", "The F-statistic is also used to calculate the significance of $R^2$ using the following equation:\n", "\n", "$F = \\frac{(n-p-1)R^2}{p(1-R^2)}$\n", "\n", "in which n is the number of cases or participants, and p is the number of predictors in the model. This F tests the null hypothesis that $R^2$ is zero (i.e., there is no improvement in the sum of squared error due to fitting the model)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Linear Regression:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSM = 34.919735599622285\n", "MS_M = 34.919735599622285\n" ] } ], "source": [ "# Mean squared error of the model (MSE_M)\n", "p = 1 # we only have one predictor (height_parents)\n", "MSM = (SSM / p)\n", "print('MSM =', MSM)\n", "# MSE_M of residuals from statsmodel\n", "print(f'MS_M = {lm.mse_model}')" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "88.77567351293678\n" ] } ], "source": [ "# Adjust notation and calculate F-value\n", "MSR = MSE_R\n", "# F-value\n", "F_value = (MSM / MSR)\n", "print(F_value)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "88.77567351293679\n", "88.77567351293679\n" ] } ], "source": [ "# statsmodel\n", "# Alternative way to obtain F-value (preferred)\n", "print(lm.fvalue)\n", "# which of course equals\n", "F_val = (lm.mse_model / lm.mse_resid)\n", "print(F_val)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Standard error" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "We just learned that the **standard deviation** tells us about how well the mean represents the sample data. However, if we’re using the **sample mean** to estimate this parameter in the **population** (like we did), then we need to know how well it represents the value in the population, especially because samples from a population differ. \n", "\n", "Imagine that we were interested in the height of *all* adult women in germany (so adult women in germany are the **population**). We could take a **sample** from this population (like we did with our 20 women), and when we do we are taking one of many possible samples. If we were to take several samples from the same population, then each sample would have its own mean, and some of these sample means will be different. \n", "\n", "Imagine we could obtain the height of all adult women in germany and could compute the mean of their height (which would equal $\\mu$ = 168 cm). Then we would know, as an absolute fact, that the mean of the height is 168 cm (this is the population mean, **µ**, the parameter that we’re trying to estimate).\n", "\n", "In reality, we don’t have access to the population, so we use a sample. In this sample we calculate the average height, known as the **sample mean** ($\\bar{x}$), and discover it is 168 cm; that is, adult women in our sample are 168 cm tall, on average. Now we take a second sample and find that women in this sample are, on average, only 167 cm tall. In other words, the sample mean is different in the second sample than in the first. \n", "\n", "This difference illustrates **sampling variation**: that is, samples vary because they contain different members of the population; a sample that, by chance, includes relatively tall women will have a higher average than a sample that, by chance, includes some women who are relatively short.\n", "\n", "Imagine that we now take a lot of samples (let's say 1000). If we plotted the resulting sample means as a histogram, we would observe a symmetrical distribution known as a **sampling distribution**. \n", "\n", "A **sampling distribution** is the frequency distribution of sample means (or whatever parameter you’re trying to estimate) from the same population. You need to imagine that we’re taking hundreds or thousands of samples to construct a sampling distribution. \n", "\n", "The sampling distribution of the mean tells us about the behaviour of samples from the population, and it is centred at around the same value as the mean of the population. Therefore, if we took the average of all sample means we’d get the value of the **population mean**. \n", "\n", "We can use the sampling distribution to tell us how *representative a sample* is of the population. Think back to the **standard deviation**. We used the standard deviation as a measure of how representative the mean was of the observed data. \n", "\n", "A small standard deviation represented a scenario in which most data points were close to the mean, whereas a large standard deviation represented a situation in which data points were widely spread from the mean. If our ‘observed data’ are sample means then the standard deviation of these sample means would similarly tell us how widely spread (i.e., how representative) sample means are around their average. Bearing in mind that the *average of the sample means* is the same as the *population mean*, the standard deviation of the sample means would therefore tell us how widely sample means are spread around the population mean: put another way, it tells us whether sample means are typically representative of the population mean.\n", "\n", "The standard deviation of sample means is known as the **standard error of the mean (SE)** or standard error for short. Theoretically, the standard error could be calculated by taking the difference between each sample mean and the overall mean, squaring these differences, adding them up, and then dividing by the number of samples. Finally, the square root of this value would need to be taken to get the standard deviation of sample means: the standard error. In the real world, it would be to costly to collect thousands of samples, and so we compute the standard error from a mathematical approximation. \n", "\n", "Statisticians have demonstrated something called the **central limit theorem**, which tells us that as samples get large (usually defined as greater than 30), the sampling distribution has a normal distribution with a mean equal to the population mean, and we can calculate the standard deviation as follows: \n", "\n", "$$\\sigma_{\\bar{X}} = \\frac{s} {\\sqrt{N}}$$\n", "\n", "Hence, if our sample is largeer than n=30 we can use the equation above to approximate the standard error (because it is the standard deviation of the sampling distribution).\n", "Note: when the sample is relatively small (fewer than 30) the sampling distribution is not normal: it has a different shape, known as a **t-distribution**, which we’ll cover later.\n", "\n", "**Summary**\n", "\n", " * The standard error of the mean is the standard deviation of sample means. \n", " * As such, it is a measure of how representative of the population a sample mean is likely to be. \n", " * A large standard error (relative to the sample mean) means that there is a lot of variability between the means of different samples and so the sample mean we have might not be representative of the population mean. \n", " * A small standard error indicates that most sample means are similar to the population mean (i.e., our sample mean is likely to accurately reflect the population mean)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Mean:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.33245498310218435\n" ] } ], "source": [ "# calculate standard error (...we ignore the fact that our sample is small since n < 30) \n", "se = df['height'].sem()\n", "print(se)\n", "# assign se to df\n", "df = df.assign(se=se)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.33245498310218435\n" ] } ], "source": [ "# alternative way to calculate standard error (se)\n", "# calculate standard deviation (s)\n", "s = df[\"height\"].std()\n", "# calculate se\n", "se = (s/np.sqrt(n))\n", "print(se)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Linear Regression:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Standard error (SE) od model 2: Intercept 14.226306\n", "height_parents 0.086190\n", "dtype: float64\n" ] } ], "source": [ "# Get standard error of parameters\n", "se_2 = lm.bse\n", "print('Standard error (SE) od model 2:', se_2)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Significance testing" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Next, we perform a statistical hypothesis test to asssess the slope of the model: \n", "\n", "- $H_0$: $\\beta_1 = 0$. The true linear model has slope zero.\n", "- $H_A$: $\\beta_1 \\neq 0$. The true linear model has a slope different than zero. The height of the parents is predictive for the height of their daughter.\n", "\n", "We would reject $H_0$ in favor of $H_A$ if the data provide strong evidence that the true slope parameter ($\\beta_{expected}$) is different than zero. To assess the hypothesis, we use the standard error for the estimate ($SE_\\beta$), compute a test statistic, and identify the p-value.\n", "\n", "The **p-value** is the probability of seeing an coefficient at least as extreme as our result (0.8121), had there truly been no difference between our cofficient and the expected coefficient (with a vlaue of 0.0). In other words: the p-value is the probability of obtaining a coefficient at least as extreme as the result actually observed, under the assumption that the null hypothesis is correct. Therefore, the lower p the better since a small p-value means that such an extreme observed outcome would be very unlikely under the null hypothesis. \n", "\n", "In particular, the null hypothesis is rejected if the p-value is less than a pre-defined threshold value $\\alpha$, which is referred to as the alpha level or significance level. By convention, we use an \\alpha level of 0.05. This means we reject $H_0$ if the p-value is equal or below 5%.\n", "\n", "To obtain the p-value for our coefficient, we use the parameter estimate and the respective standard error to compute a *t statistic* to tell us the likelihood of the observed parameter estimates compared to some expected value under the null hypothesis:\n", "\n", "$$\n", "\\begin{array}{c}\n", "t_{N - p} = \\frac{{\\beta_1} - \\beta_{expected}}{SE_{\\hat{\\beta}}}\\\\\n", "t_{N - p} = \\frac{{\\beta_1} - 0}{SE_{\\hat{\\beta}}}\\\\\n", "t_{N - p} = \\frac{{\\beta_1} }{SE_{\\hat{\\beta}}}\n", "\\end{array}\n", "$$\n", "\n", "*Review [this notebook](https://kirenz.github.io/inference/t_test.html) to learn more about the t-statistic.*" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 30.9651 14.226 2.177 0.043 1.077 60.853
height_parents 0.8121 0.086 9.422 0.000 0.631 0.993
" ], "text/plain": [ "" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lm.summary().tables[1]" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "t-statistic: 9.443023255813955\n" ] } ], "source": [ "model_result = pd.read_html(lm.summary().tables[1].as_html(),header=0,index_col=0)[0]\n", "\n", "t_statistic = model_result['coef'].values[1] / model_result['std err'].values[1]\n", "\n", "print(\"t-statistic:\", t_statistic)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We see that the intercept is significantly different from zero (which is not of importance) and that the effect of `height_parents` on `height` is significant (p = .000). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "To obtain this result, we first computed the t statistic by deviding the coefficient with the standard error and found that t = 9.422. The question that we want to ask next is: What is the likelihood that we would find a t statistic of this size, if the true coefficent value is zero (i.e. the null hypothesis)? \n", "\n", "We can use the t distribution to determine this probability. The result P>|t| = 0.000 is the probability of finding a value of the t statistic greater than or equal to our observed value under the assumption of $H_0$. We find that p(t > 9.422) = 0.000, which tells us that our observed t statistic value of 9.422 is relatively unlikely if the null hypothesis really is true.\n", "\n", "Since the p-value is below our significance level of 5%, we reject $H_0$.\n", "\n", "To learn more about the concept of p-values, review this excellent post series [\"Decision Making at Netflix\"](https://netflixtechblog.com/decision-making-at-netflix-33065fa06481) provided by Netflix Tech Blog." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Confidence interval" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "Now let's cover confidence intervalls. As a brief recap, we usually use a **sample value** as an estimate of a **parameter** (e.g., the mean or any other parameter b) in the **population**. We’ve just seen that the **estimate of a parameter** (e.g., the mean) will differ across samples, and we can use the **standard error** to get some idea of the extent to which these estimates differ across samples. We can also use this information to calculate boundaries within which we believe the population value will fall. Such boundaries are called **confidence intervals**. \n", "\n", "For example, perhaps we might want to know how often, *in the long run*, an interval contains the true value of the parameter we’re trying to estimate (in the case of model 1, the mean). This is what a **confidence interval** does. \n", "\n", "Typically, we look at 95% confidence intervals, and sometimes 99% confidence intervals, but they all have a similar interpretation: they are limits constructed such that, for a certain percentage of samples (be that 95% or 99%), the true value of the population parameter falls within the limits. So, when you see a 95% confidence interval for a mean, think of it like this: \n", "\n", " * if we’d collected 100 samples, and for each sample calculated the parameter (e.g. the mean) and a confidence interval for it, then for 95 of these samples, the confidence interval contains the value of the parameter (e.g. the mean) in the population, and in 5 of the samples the confidence interval does not contain the population paramater (e.g. the mean). \n", " \n", "The trouble is, you do not know whether the confidence interval from a particular sample is one of the 95% that contain the true value or one of the 5% that do not.\n", "\n", "Here is an example of a common wrong interpretation of confidence intervalls:\n", "\n", "\n", "* **Wrong** interpretation: a 95% confidence interval has a 95% probability of containing the population parameter. \n", "\n", "It is a common mistake, but this is *not* true. The 95% reflects a *long-run probability*. It means that if you take repeated samples and construct confidence intervals, then 95% of them will contain the population value. That is not the same as a particular confidence interval for a specific sample having a 95% probability of containing the value. In fact, for a specific confidence interval, the probability that it contains the population value is either 0 (it does not contain it) or 1 (it does contain it). You have no way of knowing which it is.\n", "\n", "We know (in large samples) that the sampling distribution of parameters (e.g. means) will be normal, and the **normal distribution** has been precisely defined such that it has a mean of 0 and a standard deviation of 1. We can use this information to compute the probability of a score occurring, or the limits between which a certain percentage of scores fall. \n", "\n", "We make use of the fact that 95% of **z-scores** fall between −1.96 and 1.96. This means that if our sample parameters (e.g. means) were normally distributed with a mean of 0 and a standard error of 1, then the limits of our confidence interval would be −1.96 and +1.96. Luckily we know from the **central limit theorem** that in large samples (above about 30) the sampling distribution will be normally distributed. \n", "\n", "**Visualize confidence intervals in plots**\n", "\n", "We saw that confidence intervals provide us with information about a parameter, and, therefore, you often see them displayed on graphs.\n", "\n", "The confidence interval is usually displayed using something called an **error bar**, which looks like the letter ‘I’. An error bar can represent the **standard deviation**, or the **standard error**, but more often than not it shows the **95% confidence interval** of the mean. So, often when you see a graph showing the mean, perhaps displayed as a bar or a symbol, it is accompanied by this I-shaped bar. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Model 1: The Mean" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "First of all, we convert scores so that they have a mean of 0 and standard deviation of 1 (**z-scores**) using this equation:\n", "\n", "$$z = \\frac{X-\\bar{X}}{s}$$" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 -2.070197\n", "1 -1.380131\n", "2 -1.380131\n", "3 -0.690066\n", "4 -0.690066\n", "5 -0.690066\n", "6 -0.690066\n", "7 0.000000\n", "8 0.000000\n", "9 0.000000\n", "10 0.000000\n", "11 0.000000\n", "12 0.000000\n", "13 0.690066\n", "14 0.690066\n", "15 0.690066\n", "16 0.690066\n", "17 1.380131\n", "18 1.380131\n", "19 2.070197\n", "Name: height, dtype: float64\n" ] } ], "source": [ "# calculate z-scores\n", "z = stats.zscore(df.height)\n", "print(z)\n", "# assign z-scores to df\n", "df = df.assign(z = z)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt = sns.histplot(x=\"z\", data = df, bins=5);\n", "\n", "# draw a vertical line\n", "plt.axvline(1.96, 0, 1, linewidth=2, color='r');\n", "\n", "# add text\n", "plt.text(2.1, 0.3,'z = 1.96', rotation=90, color='r');\n", "plt.axvline(-1.96, 0, 1, linewidth=2, color='r');\n", "plt.text(-2.2, 0.3,'z = -1.96', rotation=90, color='r');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "If we know that our limits are −1.96 and 1.96 as z-scores, then to find out the corresponding scores in our raw data we can replace z in the equation (because there are two values, we get two equations):\n", "\n", "$$1.96 = \\frac{X-\\bar{X}}{s}$$\n", "\n", "and \n", "\n", "$$-1.96 = \\frac{X-\\bar{X}}{s}$$\n", "\n", "We rearrange these equations to discover the value of X:\n", "\n", "$$1.96 \\times s = X - \\bar{X}$$ \n", "\n", "$$(1.96 \\times s) + \\bar{X} = X$$ \n", "\n", "and\n", "\n", "$$-1.96 \\times s = X - \\bar{X}$$\n", "\n", "$$(-1.96 \\times s) + \\bar{X} = X$$ \n", "\n", "Therefore, the confidence interval can easily be calculated once the **standard deviation** (s in the equation) and **mean** ($\\bar{x}$ in the equation) are known. \n", "\n", "However, we use the **standard error** and not the standard deviation because we’re interested in the variability of sample means, not the variability in observations within the sample. \n", "\n", "The lower boundary of the confidence interval is, therefore, the mean minus 1.96 times the standard error, and the upper boundary is the mean plus 1.96 standard errors: \n", "\n", "\n", "**lower boundary of confidence intervall** = $\\bar{X} - (1.96 \\times SE)$\n", "\n", "**upper boundary of confidence intervall** = $\\bar{X} + (1.96 \\times SE)$\n", "\n", "As such, the mean is always in the centre of the confidence interval. We know that 95% of confidence intervals contain the population mean, so we can assume this confidence interval contains the true mean; therefore, if the interval is small,the sample mean must be very close to the true man. Conversely, if the confidenve interval is very wide then the sample mean could be very different from the true mean, indicating that it is a bad representation of the population." ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lower boundary of CI 164.34838823311972\n", "Upper boundary of CI 165.65161176688028\n" ] } ], "source": [ "# lower boundary\n", "lb = (df.height.mean() - (1.96*se))\n", "# upper boundary\n", "up = (df.height.mean() + (1.96*se))\n", "print('Lower boundary of CI', lb)\n", "print('Upper boundary of CI', up)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "scrolled": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# draw limits of confidence intervall\n", "plt = sns.histplot(x=\"height\", data=df, bins=5);\n", "# draw a vertical line to mark the mean \n", "plt.axvline(165, 0, 1, linewidth=3, color='b');\n", "# add text\n", "plt.text(165.1, 0.1,'Mean = 165', rotation=90, color='b');\n", "# draw a vertical line to mark the lower limit of the confidence intervall\n", "plt.axvline(164.348388, 0, 1, linewidth=3, color='r');\n", "# add text\n", "plt.text(164, 0.15,'Lower limit = 164.34 ', rotation=90, color='r');\n", "# draw a vertical line to mark the upper limit of the confidence intervall\n", "plt.axvline(165.651612, 0, 1, linewidth=3, color='r');\n", "plt.text(165.8, 0.15,'Upper limit = 165.65', rotation=90, color='r');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Model 2: Linear Regression" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Confidence intervall for parameter $b_1$ (height_parents)\n", "\n", "**lower boundary of confidence intervall** = $b_1 - (1.96 \\times SE(b_1))$\n", "\n", "**upper boundary of confidence intervall** = $b_1 + (1.96 \\times SE(b_1))$" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "scrolled": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01
Intercept1.07670260.853420
height_parents0.6310090.993165
\n", "
" ], "text/plain": [ " 0 1\n", "Intercept 1.076702 60.853420\n", "height_parents 0.631009 0.993165" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Obtain confidence interval for fitted parameters \n", "lm.conf_int(alpha=0.05)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanmean_semean_ci_lowermean_ci_upperobs_ci_lowerobs_ci_upper
0167.40.29166.79168.01165.94168.85
\n", "
" ], "text/plain": [ " mean mean_se mean_ci_lower mean_ci_upper obs_ci_lower obs_ci_upper\n", "0 167.4 0.29 166.79 168.01 165.94 168.85" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make a prediction for height when parents average height is 168 cm\n", "to_predict = pd.DataFrame({'height_parents':[168]})\n", "results = lm.get_prediction(to_predict)\n", "round(results.summary_frame(alpha=0.05),2)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The predicted height for an average parents height of 168 cm is 167.4.\n", "- For 95% the confidence interval is [166.79, 168.01] and the prediction interval is [165.94, 168.85]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "How much will the outcome vary from our prediction? We use **prediction intervals** (obs_ci_lower and obs_ci_uppper) to answer this question. Prediction intervals are always wider than confidence intervals, because they incorporate both the error in the estimate for f(X) (the reducible error) and the uncertainty as to how much an individual point will differ from the population regression (the irreducible error). \n", "\n", "We interpret this to mean that 95% of intervals of this form will contain the true value of Y for parents with this average height. Note that both intervals are centered at 167.4 cm, but that the **prediction interval** is substantially wider than the confidence interval, reflecting the increased uncertainty about the individual height for given parents height in comparison to the average height of many parents. " ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAugAAAHsCAYAAACAI1gbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABlnElEQVR4nO3daXhUVbr28btSmYGEIYwGaUUFRAY52E60E040oCItghERVCYNg+c0cASbPvRBPHbry6RAUBEFFYSoILaiYVBwgm4ERZQWhDZKAAlkrgyV/X5YhgIETEhV7V1V/991eSkLqP2kxHhn5VnPclmWZQkAAACAI0TZXQAAAAAAHwI6AAAA4CAEdAAAAMBBCOgAAACAgxDQAQAAAAcJ+YBeUVGh7OxsVVRU2F0KAAAAUGshH9BzcnLUvXt35eTk2F0KAAAAUGshH9ABAACAcEJABwAAAByEgA4AAAA4CAEdAAAAcBACOgAAAOAgBHQAAADAQQjoAAAAgIMQ0AEAAAAHIaADAAAADkJABwAAAByEgA4AAAA4CAEdAAAAcBACOgAAAOAgBHQAAADAQQjoAAAAgIMQ0AEAAAAHIaADAAAADhLQgF5YWKhevXopOztbkrRlyxb169dPPXv21MMPP6yysjJJ0vbt29W3b1/dcsstGjZsmPLz8wNZFgAAAOBYAQvoW7du1YABA7Rnzx5JJqynp6drypQpWrVqlSRp2bJlkqSpU6dq1KhRWrFihc455xw999xzgSoLAAAAEW7zjv16ZM5G3Tf1PT0yZ6M279hvd0nHCVhAX7p0qSZPnqwmTZpIkjZu3KjOnTurbdu2kqRJkybphhtukCRVVlaqqKhIklRSUqL4+PhAlQUAAIAItnnHfmVkblNFaZnOS4nX4fwSzcvc5qiQHh2oF546depxP967d68SExM1duxY7d69W126dNGECRMkSRMmTNCQIUP02GOPKSEhQUuXLj3pa+bn5/+i/SUnJycwHwAAAADCzqqN3+nsulKdolxZscmKj42WRxXKXPeturZrand5kgIY0E/k9Xq1YcMGLVmyRC1atNDEiROVkZGhBx54QBMnTtQLL7ygjh07asGCBRo/frwyMjJ+8RoLFy7U7Nmzg1UyAAAAwonHo+j9++T2FKmkwlJ8/WRJUlyMWwdyi20uzidoAT0lJUWdOnVSy5YtJUk9evTQokWLtHPnTsXFxaljx46SpDvvvFMzZsw46WsMGjRIffr0OW4tJydHaWlpgS0eAAAAocvrlQ4flo4cUXy5R/klFYqLcR/96dJyr5o0TLSxwOMFbcxit27dtH37du3bt0+StHbtWrVv316tWrVSTk6Odu/eLUnKyspShw4dTvoaSUlJSk1NPe6vZs2aBetDAAAAQKjJz5e+/17KzZUqK3Xjpa3k9VoqLffKsix5yipUUWHp9mvOs7vSo4K2g968eXNNmTJFw4cPV2lpqdq1a6fx48crISFB06ZN05gxY2RZlho1aqTHHnssWGUBAAAgHHk80k8/SSUlkmUdXe7QOkW6UVr96V6VlFaqQVJd3X7NeY7pP5ckl2UdU3EIys7OVvfu3ZWVlaXU1FS7ywEAAICdvF6zW56XJ1VWnv7XNm4sNWgQnLpqIGg76AAAAEDAWJZpZzl0SKqosLuaWiGgAwAAILSdop0lVBHQAQAAEJoqKnztLGEQzKsQ0AEAABBaLMuE8tzckG9nORkCOgAAAEJHSYmvnSVMEdABAADgfBUV5gBofn5YtbOcDAEdAAAAzmVZ0pEjpp3F67W7mqAgoAMAAMCZiotNO4vHY3clQUVABwAAgLOUl5t2loKCsG9nORkCOgAAAJzBsqTDh81fEdLOcjIEdAAAANivqMjsmkdYO8vJENABAABgn7IyE8wLCyOyneVkCOgAAAAIvspKM50lwttZToaADgAAgOAqLDS75qWldlfiSAR0AAAABEdpqQnmRUW0s5wGAR0AAACBVVlpWlmOHKGdpRoI6AAAAAicggKza15WZnclIYOADgAAAP+jneWMEdABAADgP16vbzpLZaXd1YQkAjoAAAD8Iz9fys2lnaWWCOgAAACoHY/HtLMUF9PO4gcEdAAAAJwZr9c3nYV2Fr8hoAMAAKDmaGcJGAI6AAAAqs/jkX76SSopoZ0lQAjoAAAA+HVer9kxz8ujnSXACOgAAAA4vfx8s2teUWF3JRGBgA4AAICTo53FFgR0AAAAHI/pLLYioAMAAMCnsNDsmofrdBbLkt57T3ruOSklRXr3XSkqyu6qjkNABwAAgOkvP3TI9JuHYzuLZUnr10szZ0rbt5u15GTzhUh8vL21nYCADgAAEOnC+RCoZUmffCJNny59/rlv/dprpb/8xXHhXCKgAwAARK6yMhPMi4rCc9d882Zpxgzps898a1deKY0eLXXqJDVubF9tp0FABwAAiDSWZQ6BHj5sDoSGm23bTDDfsMG31rWrNGaMdMkltpVVXQR0AACASFJcbHbNPR67K/G/r782PeZZWb61jh3NjvmVV0oul3211QABHQAAIBJUVPhuAg23dpZdu6RZs6S//9231q6dCebXXBMywbwKAR0AACDcFRRIBw+G3yHQf/9bevppacUK37z2886T0tOlG2903PjE6iKgAwAAhKvyctPOUlgYXrvmP/4ozZkjZWb6vug4+2wTzHv2lNxue+urJQI6AABAOArH0YkHDkgZGdKrr5ovPiSpRQvpwQel226TosMj2obHRwEAAAAjHHfNc3Ol+fOlxYul0lKz1rixNGKEdMcdUmysvfX5GQEdAAAgXITbrnlenvT889KLL5rpM5LUoIE0bJg0YIAjLxnyBwI6AABAqCsrM4dAi4vDY9e8sFBauFBasMAccJWkpCTpvvukgQOlOnXsrS/ACOgAAAChyrKkI0dMC0g4XDhUUmLaWObPNx+XZML4vfeav5KSbCwueAjoAAAAocjjMbvmJSV2V1J7ZWXSkiXS3LmmRUcy7St33212zRs2tLe+ICOgAwAAhJLKSrNjfuSIb/Z3qCovN6MS58yR9u0zazExpr986FBzEDQCEdABAABCRWGh2WEuK7O7ktrxeqWVK6XZs6Xvvzdr0dHSH/5gJrM0a2ZvfTYjoAMAADhduIxOrKyU3nlHmjVL2r3brEVFmRnmI0dKLVvaWp5TENABAACcyrLMqMFDh0L7EKhlSVlZ0syZ0jffmDWXS/r976WHHpLOPdfe+hyGgA4AAOBE4XAI1LKkDz+UZsyQvvzSt37jjVJ6unTBBfbV5mABDeiFhYXq37+/5s6dq9TUVG3ZskXTpk1TUVGR2rRpo8cff1y7du3ShAkTjv6e3NxcJScn66233gpkaQAAAM5UWSkdPmz+CuVDoJ9+Kk2fLv3zn761q6+WRo2SLrrItrJCQcAC+tatWzVp0iTt2bNHkgnr6enpevbZZ9W2bVs9/PDDWrZsme666y69+eabkqSSkhLdcccd+vOf/xyosgAAwBnavGO/Mtd9q/25xWraMFG3X3OeurZrandZ4aWkRF9t+lrvrPtGPx0uUaPkeN14aSt1aJ1id2XVt2WLCeaffOJbu/xyafRo6eKLbSsrlAQsoC9dulSTJ0/WuHHjJEkbN25U586d1bZtW0nSpEmT5D2hl2revHm65JJL1LVr10CVBQAAzsDmHfs1L3OboqNdqpcQrcP5JZqXuU26vSMh3R9+Hp24/Z/f6pW/75Db7VKdeLfyC0u1ZPU30o1yfkjfvt20sqxf71vr0kUaM0a69FLbygpFAQvoU6dOPe7He/fuVWJiosaOHavdu3erS5cux7W2FBQUaOnSpVq5cuUpXzM/P1/5+fnHreXk5Pi3cAAA8AuZ675VdLRL8bEmOsTHRsujCmWu+5aAXltFRWZCS2mp3vnoO7ndLsXFuCVJcTFulcqr1Z/udW5A/+YbM5Xlvfd8axddZIJ5t27mMChqJGiHRL1erzZs2KAlS5aoRYsWmjhxojIyMpSeni5JWrFiha6//no1atTolK+xcOFCzZ49O1glAwCAn+3PLVa9hONjQ1yMWwdyi22qKAx4vWY6S17e0dGJh/I8qhPvPu6XxcZEKTfPY0eFp/fdd2aO+apVvtGPF1xgWlm6dyeY10LQAnpKSoo6deqklj/Pt+zRo4cWLVp09Offf/99DRs27LSvMWjQIPXp0+e4tZycHKWlpfm/YAAAcFTThok6nF9ydAddkkrLvWrSMNHGqkLYKS4capQcr/zC0qM76JJUVl6phsnxwa7w1L7/XnrmGemNN3yHWM85xxz+vPlmM9cctRK0gN6tWzfNmjVL+/btU/PmzbV27Vq1b99ekmRZlrZv366Lf+XgQFJSkpKSkoJRLgAAOMbt15yneZnb5FGFabso96qiwtLt15xnd2mhpaLCBPOCgpNeOHTjpa20ZPU3KpVXsTFRKiuvlNdr6cZLW9lQ7AlycqQ5c6Rly8zHIUmpqWZcYq9e5iZQ+EXQ3snmzZtrypQpGj58uEpLS9WuXTuNHz9ekhmtGBMTo7i4uGCVAwAAaqBru6bS7R2Vue5bHcgtVhOmuNRcQYGZa14Vbk+iQ+sU6UZp9ad7lZvnUUMnTHH56Sdp3jzp1Vd9O/7NmkkPPij16SPFxNhXW5hyWVYo3xcrZWdnq3v37srKylJqaqrd5QAAAByvrMz0mhcWnnTX3LEOH5aee05atMh3WVJKijRsmHTnnVI4bKw2biw1aGB3Fb/A9yIAAAACwbLMAdBDh8yB0FBRUCAtWCC98IKZMCNJ9etLQ4dKd90lJSTYWV1EIKADAAD4m8djWkOKQ2jKTVGR9NJL0vPPmy8sJKlePWnIEOmee6S6de2tL4IQ0AEAAPzFsqTcXNMeUjXhxOk8HumVV6SMDFO7JCUmmlA+ZIiUnGxvfRGIgA4AAOAPxcVm19zjwJnlJ1NWJr32mpnMcvCgWYuLk9LSpAcekBo2tLe+CEZABwAAqI2KCrPzfMyFQ45WXm5mmD/zjPTjj2YtJkbq39/0mTdpYmt5IKADAACcufx8s2t+mtGJjuH1mls/Z8+W9u41a263dPvt0siRUosW9taHowjoAAAANVVa6jsE6vRd88pK6b33pJkzpW+/NWtRUdItt5hZ5mefbW99+AUCOgAAQHVVVJgDoHl5zj8EalnSunXSjBnSjh2+9R49zO2frVvbVhpOj4AOAADwayxLOnLEhHOnt7NYlvTRRyaYb93qW7/2WmnMGKltW9tKQ/UQ0AEAAE6noMAcAi0ttbuSX7dpkwnmmzb51rp1k0aPljp2tK8u1AgBHQAA4GQ8HnMLaCj0mW/daoL5xo2+td/+1gTzrl3tqwtnhIAOAABwrPJys2Oen+/8YL5jhwnma9f61jp3Nq0sl10muVx2VYZaIKADAABIZgzhkSPmL6/X7mpO79tvzVSWd9/1rV14odkxv/pqgnmII6ADAIDIZllmt/zwYXO7ppPt3WvmmK9c6dvdP/98adQo6YYbCObV4XJJ8fFS/fpSnTp2V3NSBHQAABC5PB7fPHMn++EHc/Pn66/7dvdbtTLjEn//e3PhEE4vKkqqV09KSpISEuyu5rQI6AAAIPJUVpod88OHnT3PfP9+ae5c6bXXTG+8JJ11lrn587bbpGii3Gm5XFJMjAnlSUkh836FRpUAAAD+UlRkds2dPDbx0CFp/nzp5Zd9dTZpIo0YIf3hD1JsrL31OZ3LJSUmmlBet27Itf4Q0AEAQGSoqDDB18nTWY4ckRYskF580dd206iRNHSo1L+/6Z3GqbndJpTXqxfS7xUBHQAAhLeqQ6CHDjn3FtDCQumFF0w4Lyw0a8nJ0n33SXff7djDjI7gcpnvKCQnm2AeBv34BHQAABC+nH4ItLhYWrxYevZZs3sumZaMwYOlQYNM4MTJRUWZL1ySksLuCxgCOgAACD9erzkAeuSIMw+BlpZKr74qZWSYLyAkM1lk4EBpyBCpQQN763Mql8sc9KxqYwnTXnwCOgAACC8FBaadxYkzzcvKpOXLpTlzzIQWyYTMu+6SHnhASkmxtz6ncrvNLnnduubvIXbos6YI6AAAIDx4PCaYFxc77xBoRYW0YoW5ZOiHH8xaTIx0xx3S8OFS06b21udEUVHmuwr16plQHga95dVFQAcAAKGtosK0s+TlOa+dpbJSevttadYsac8es+Z2mxnmI0dKqal2Vuc8LpcUF2d2yuvWDdsWll9DQAcAAKHJskyP+eHDzpvOYlnS++9LM2dKO3eaNZdL6tVLeugh6Te/sbU8R3G5fOMR69YN6fGI/kJABwAAoae42Byu9HjsruR4liV98IE0Y4a0fbtv/aabpPR06fzz7avNaSKsr7wmCOgAACB0OPmyoY8/NsF8yxbf2rXXSqNGSRdeaF9dThLBfeU1QUAHAAChIT/f7Jo7rZ3lH/+Qpk+XPvvMt3bFFdLo0VLnznZV5RxVFwnVqxfRfeU1QUAHAADOVlrqu2zISbvmX3xhdsw//NC39h//YYL5pZfaV5cT0FdeKwR0AADgTJWVvsuGvF67q/H5+mtz+DMry7fWoYMJ5t26RXYvNX3lfkFABwAAzlNQIOXmmt1zp9i1y8wxf/tt31qbNiaYX3dd5IZRl8vXV163Ln3lfkBABwAAzlFaag6BFhU5p53l++9NMF+xwjdn/ZxzzOHPm282Bx8jDS0sAUVABwAA9nNiO8u+fdKcOdLy5b6DqS1bmjnmvXtH5k5xVJSUmOjbLY/U7xoEGAEdAADYq6DA7JqXldldiXHggJSRIb36qlRebtaaN5cefNDcABoTY2t5toiOlpKTTTBnCkvAEdABAIA9PB4znaWkxBntLLm50rPPSosX+y5AatxYGj5c6tcv8oJpVW95crI58BmJrTw2IaADAIDgqqgwYTgvzxnBPD9fev55aeFCM8pRkho0kIYOlQYMMCE1krjdZqc8KYnecpsQ0AEAQHBYlukxz811Rp95YaH00ksmnOfnm7WkJGnIEGngQNNjHSmqLhOqamOJxP56ByGgAwCAwCsp8bWz2K2kRHrlFdNnfviwWUtMlO69Vxo82IT0SBEVZdpXkpLMe8ChT0cgoAMAgMDxes2O+ZEj9rezlJVJS5dKc+dKBw+atfh4KS1Nuv9+qWFDe+sLpqoRiUlJUlyc3dXgBAR0AAAQGE6ZzlJeLr3xhvT002Z0omQmsfTvLw0bZg6CRorYWF8wjyYGOhX/ZgAAgH+VlZlgXlho76651yutXGkuGfr+e7MWHS317SuNGGFGJ0YCl8t8p6Cqv5w2FscjoAMAAP+orDStLIcP23sItLJSeucdE8x37TJrUVHSLbeYS4ZatrSvtmByuUx/edWYRIQMAjoAAKi9wkKza15aal8NliWtWSPNmCF9841vvWdPc8lQ69b21RZM9JeHPAI6AAA4c6Wl5hCone0sliVt2GCC+Rdf+NZvuEFKT5fatLGnrmCLiTG75fSXhzz+7QEAgJrzek07y5Ej9razfPaZNH269I9/+NZ+9ztp9GipQwfbygoal8vsktevb+a2c9tnWCCgAwCA6rMsM50lN9fe6Syff252zD/6yLd22WUmmHfpYltZQUN/eVgjoAMAgOopLjZ95nZeNrR9uzRzprRunW/t4otNML/8ctvKChq320xiSUoyk1kQlgjoAADg9MrKzI55QYF9feY7d0qzZkmrV/vW2rc3wfyqq8J/dGB0tNktT06mvzwCBPTfcGFhofr376+5c+cqNTVVW7Zs0bRp01RUVKQ2bdro8ccfV2xsrHbv3q3JkycrLy9PjRs31lNPPaXk5ORAlgYAAH7NCX3mTy7erJ3fHzn60xe0rK//TOsa2Bq++86MS1y1yvfFwQUXmGDevXt4B/Oq/vKq+eX0l0eMgP2b3rp1qwYMGKA9e/ZIMmE9PT1dU6ZM0apVqyRJy5Ytk2VZGjFihB544AGtWLFC7dq1U0ZGRqDKAgAAv8ayTCjfu9e0tJwknEvSzu+P6MnFmwNTQ3a29N//bUYkvvWWqek3v5Geekp6803p+uvDN5y7XObAZ4sW0tlnm4BOOI8oAdtBX7p0qSZPnqxx48ZJkjZu3KjOnTurbdu2kqRJkybJ6/Vq+/btSkxM1FVXXSVJGj58uPLz80/6mvn5+b/4uZycnEB9CAAARJ6CAnPRkMdz3PKJ4fzX1s/Y/v3SnDnSsmVSeblZS001Fwz17h3e7R1RUb755fSXR7SA/SmfOnXqcT/eu3evEhMTNXbsWO3evVtdunTRhAkTtGnTJqWkpOiRRx7Rjh07dO655+rRRx896WsuXLhQs2fPDlTJAABELo/H7JYXF9vTZ/7TT1JGhvTKK77pME2bSiNGSH37SrGxwa8pWKr6y5OSzCxzRLygfRnq9Xq1YcMGLVmyRC1atNDEiROVkZGhVq1a6bPPPtOiRYvUoUMHTZ8+XY8//rgef/zxX7zGoEGD1KdPn+PWcnJylJaWFqwPAwCA8OL1mh3zI0ekysrgP//IEem556SXXvJNh0lJkYYNk+68M3xvwnS5zC55cjLzy/ELQQvoKSkp6tSpk1q2bClJ6tGjhxYtWqSuXbuqVatW6vDzZQK9evXSqFGjTvoaSUlJSkpKClbJAACEt/z8as8zv6Bl/ZO2s1zQsv6ZPbugQHrhBfNXYaFZq19fuv9+KS1NSkw8s9d1uqgoE8iTksL3Y0StBe3LtW7dumn79u3at2+fJGnt2rVq3769Lr74YuXm5urrr7+WJK1Zs0bt27cPVlkAAESe0lLpxx9Nv3c1Lxv6z7SuvwjjZzTFpbjYtLJ0726msxQWmsCani5lZUkPPBCewTU6WmrUyBz6bNYsPD9G+E3QdtCbN2+uKVOmaPjw4SotLVW7du00fvx4xcfH6+mnn9akSZNUUlKiZs2a6YknnghWWQAARI4TxibWVK1GKno80quvmnB+6JBZS0yU7rlHGjzY7J6Hm6goKSHB7JbXrRu+U2fgdy7LsuvGAf/Izs5W9+7dlZWVpdTUVLvLAQDAeSxLyssz7SwVFcF9dlmZmcgyZ4504IBZi4szbSwPPCA1bBjceoKh6tBn3brh20OPgArjWUUAAEAFBSaYl5YG97kVFWZe+dNPSz/8YNZiYqR+/cwB0KZNg1tPoFUd+qxfn91y1BoBHQCAcFRUZIK5xxPcsYler/T226a//OfLCuV2S7ffbkYmnnVW8GoJBg59IgAI6AAAhJPyctPjXVAQ3GBuWdJ770kzZ0r/+pdZc7mkW26RHnxQatUqeLUEg9vtm10ezjPaYQsCOgAA4aCqz/zQoTM6AFqr565fL82YIX31lW/95pvNZJbzzgteLYHmcpkwnpws1atnQjoQAAR0AABCncdjbuIsLg7eMy1L+vhjE8w//9y3fu210ujRUrt2wasl0KKiTPtKcrJUp47d1SACENABAAhVlZWmzzzYt4Bu3myC+Wef+da6dTPBvGPH4NURaG63aWFJSmIaC4KKgA4AQCgqLDTtLMGczrJtmwnmGzb41rp2lcaMkS65JHh1BJLLZcJ4UhJtLLANAR0AgFBixyHQr782wXzNGt9ap05mx/yKK8JjpGBUlGlfSUqijQW2I6ADABAKLEvKzze95sE6BLprlzRrlvT3v/vW2rUzwfyaa8IjmFddKlSvHtNY4BgEdAAAnC7Yh0D//W8zx3zlSl9v+3nnmaksN95odptDWVUbS1UwD/WPB2GHgA4AgFN5vdLhw8E7BPrjj9KcOdLy5b5d+latzBzzXr1Cvx+baSwIEQR0AACcqKDA9JqXlQX+WQcOSPPmSUuWmB53SWrRwgTz224zbSChLDrad+iTaSwIASH+XxwAAGGmtNQE86KiwB8Czc2V5s+XFi/2TYNp0kQaPly6447Q7sl2uaSEBN9uOW0sCCEEdAAAnKCy0tfOEuhDoHl50vPPSy++6Otrb9hQGjZM6t9fio8P7PMDqWq3vG7d0P44ENEI6AAA2C1Y7SyFhdLChdKCBeaZktlhvu8+6e67Q7cvOyrK7JZXjUhktxwhjoAOAIBdSkpMMC8pCWw7S0mJaWOZP9/s0EsmyA4eLN17r+nNDjUu1/G75fSWI4wQ0AEACLbyctP/nZ8f2GBeWmoOfs6bZ8Y0SqbtY+BAs2veoEHgnh0oVZNY6tUzwTwcZrEDJyCgAwAQLF6v2cEOdJ95ebmUmSk984yUk2PWYmNNf/nQoVLjxoF7dqDExLBbjohBQAcAINCqbgE9fDiwfeYVFeZyodmzpexssxYdLf3hD9KIEVKzZoF7diAc21vObjkiCAEdAIBAKiw07SweT+CeUVkpvfOONHOm9N13Zi0qyswwHzlSatkycM/2N5fL7JZXtbCwW44IREAHACAQPB5zALS4OHB95pYlZWVJM2ZIO3eaNZdL6tlTeugh6ZxzAvPcQKC3HDiKgA4AgD+Vl5tWlry8wAbzDz80wfzLL33rN94opadLF1wQmOcGQnS0GfVYr15oX4wE+BEBHQAAfwjWRUOffipNny7985++tWuukUaNktq3D9xz/anqls+q3nLmlgPHIaADAFAblmUu/cnNDewB0C1bTDD/5BPf2uWXS6NHSxdfHLjn+pPbbXbKk5K45RM4DQI6AABnqrjY9Jl7PIFrZ9m+3bSyrF/vW+vSRRozRrr00sA805+qDn1WtbFEEz2AX8N/JQAA1FRpqdkxLywMXDDfuVOaNUtavdq3dtFFJph36+b8Q5Qulzn0yYhEoMYI6AAAVFdFhe+iocrKwDzju+/MHPNVq3zh/4ILTCtL9+7OD7putwnl9erRxgKcIQI6AAC/xrLMVJbcXBPSA+H7783Nn2+84Qv/55xjDn/efLOzD1K6XCaMV+2Wu912VwSENAI6AACnU1ho+sxLSwPz+jk50pw50rJlvvCfmmrGJfbq5eyebQ59AgHh4P/qAQCwUaAvGjp4UMrIkF591Tf9pVkzc/Pn7bebg5VO5HKZeeVVhz7ZLQf8joAOAMCxKipMK0t+fmD6zA8flp59Vlq0yHwRIEkpKdLw4VK/fs692j4qSqpTx+yW16ljdzVAWCOgAwAgmTB+5IgJ0IG4aCg/X3rhBfNXUZFZq19fGjpUuusuc3GPE7ndvt1yp37xAIQZAjoAAFUXDQWiz7yoSHrpJen5581BU8mE3SFDpHvuMYcqnSg21nwBQRsLEHQEdABA5PJ4pJ9+kkpK/N9n7vFIr7xi+sxzc81aYqIJ5UOGmF1pp6maxlK1Y+70kY5AmCKgAwAiT3m5r8/c38G8rEx67TUzmeXgQbMWHy+lpUn33y81bOjf5/mD2+3rL09MtLsaIOIR0AEAkcPr9V005O8+8/JyM8P8mWekH380azExUv/+ps+8SRP/Pq+2XC7T916vHrPLAYchoAMAwl9lpen/PnzY/xcNeb3SW2+Z2z///W+zFh1tRiWOGCG1aOHf59WGy2W+aKgK5Rz6BByJgA4ACF+W5TsAWjVr3F8qK6XVq6WZM6Vdu8xaVJR0yy3Sgw9KZ5/t3+fVRlSUaV2pGpFIbzngaAR0AEB4Kiw0wbxq1ri/WJa0dq00Y4b09de+9R49zO2frVv793m1ER1tQjkjEoGQQkAHAISXQN0AalnSxo0mmG/b5lu/7jpp9GipbVv/Pas2XC4TxqsmsURF2V0RgBoioAMAwkNZmekxD8Rklk2bpOnTpc2bfWvduplg3rGjf591pqoOfdav79zZ6gCqhYAOAAhtgZzMsnWr2THfuNG39tvfmmDetat/n3WmoqJMIE9Odu5tpABqhIAOAAhNlmV2yw8d8v9klq++Moc/1671rXXuLI0ZI112mTMOWbrdpr88KYn+ciDMENABAKGnqMgcAC0p8e/r/utf0qxZ0rvv+tYuvNDsmF99tTOCeXS02S1PTjb/DCDs8F82ACB0lJaaYF5Y6N8+8z17zBzzt97yve7550ujRkk33OCMYB4ba/rL69XjUiEgzBHQAQDOV1Hh6zOvrPTf6/7wg7n58/XXff3rv/mNGZfYo4f9QdjlkuLjfQc/nfCFAoCAI6ADAJyrstKE8sOH/XsAdP9+ae5c6bXXpPJys3bWWdLIkdJtt9nfOuJymQuF6tc3FwwBiCgB/QxUWFio/v37a+7cuUpNTdWWLVs0bdo0FRUVqU2bNnr88ccVGxur2bNna/ny5UpKSpIk9evXT2lpaYEsDQDgZJYl5eWZcO7PG0APHZLmz5deftm0y0hSkyYmmPfta9pI7BQV5Tv4GR9vby0AbBOwgL5161ZNmjRJe/bskWTCenp6up599lm1bdtWDz/8sJYtW6a77rpLX375pZ566ildfPHFgSoHABAqCgpMn3lVgK6mJxdv1s7vjxz98QUt6+s/034ehXjkiPT889JLL5kLjCSpUSNp6FCpf3/7w3BMjC+Yx8TYW8tpbN6xX5nrvtX+3GI1bZio2685T13bNbW7rLDD+4yABfSlS5dq8uTJGjdunCRp48aN6ty5s9r+fNPapEmT5P3525Vffvml5s2bpx9++EGXXHKJxo8frzhGRgFAZCkuNjvcHk+ND4CeGM4laef3RzTr+Q+UXrxNWrDAHCyVzPST+++X0tJMG4ldju0vr1PH8Td+bt6xX/Mytyk62qV6CdE6nF+ieZnbpNs7Eh79iPcZUgAD+tSpU4/78d69e5WYmKixY8dq9+7d6tKliyZMmKCioiK1a9dOf/zjH9WqVStNmDBBzzzzjMaOHfuL18zPz1d+fv5xazk5OYH6EAAAweDxmB3zoqIznsxyYjiPLS/VtTvW68Yv35dKi8xi3brS4MHSoEFmEopdQvRiocx13yo62qX4WBMd4mOj5VGFMtd9S3D0I95nSEE8JOr1erVhwwYtWbJELVq00MSJE5WRkaH09HTNnz//6K8bMmSIHnnkkZMG9IULF2r27NnBKhkAEEjl5ebwZ36+3yazRFeU6+pvPtTN21YryVNgFhMSpHvukYYMMbvVdnC5fG0s9eo5uo3lVPbnFqtewvGxIS7GrQO5xTZVFJ54nyEFMaCnpKSoU6dOatmypSSpR48eWrRokX788Ud99NFH+sMf/iBJsixL0ac4PT9o0CD16dPnuLWcnBwOlAJAKPF6fSMT/TSZxe2t0JX/+li/3/qOGhQfkSSVu6O1vs3vdP2zU02/uR2ioswUlnr1Qn5MYtOGiTqcX3J0Z1eSSsu9atKQKTP+xPsMKYgBvVu3bpo1a5b27dun5s2ba+3atWrfvr3i4+P117/+VZdeeqlSU1O1ePFi3XDDDSd9jaSkpKOTXgAAIcayzG754cP+m8xSUSG9+aamrfh/Sj5y0CxFubXhgiv19443qUnb3+h6O8K5221aWOrVk8LkTNXt15yneZnb5FGF4mLcKi33qqLC0u3XnGd3aWGF9xlSEAN68+bNNWXKFA0fPlylpaVq166dxo8fr4SEBE2ZMkUjRoxQeXm5unTposGDBwerLABAMBQWmj5zj8c/r1dZKb39tjRrlrRnj5IlVbqi9NF5l+ntTjfrUL1Gx09xCQaXy4Tx5GSzW273JUd+1rVdU+n2jspc960O5BarCdNFAoL3GZLksix/3pUcfNnZ2erevbuysrKUmppqdzkAgGN5PGYyS3HxGR8APY5lSe+/L82cKe3cadZcLqlXL+mhh8wtoMEWFWWmsCQl2TsVBkDY4CZRAID/lZX5DoD6K5h/8IE0Y4a0fbtv/aabpPR06fzza/+MmgrDNhYAzkBABwD4TwAOgOrjj00w37LFt3bttdLo0VK7dv55RnW5XOa20apgHmZtLACcgYAOAKg9y5Ly8kyfeUWFf17zH/+Qpk+XPvvMt3bllSaYd+rkn2dUl8tlprEkJ5s2lhCexgLA+QjoAIDaKSgwwby01D+v98UXZsf8ww99a127mmD+29/65xnVFR3tm11OGwuAICGgAwDOTFGRbzKLP/rMv/7aHP7MyvKtdewojRkjXXFF8Hatq3bLqw59RkUF57kA8DMCOgCgZjweE8yLivwTzHftkmbPNmMTq7Rta3bMr702eMHc7TahPCmJ3XIAtiKgAwCqp7TUTGYpKPBPMP/+exPMV6wwc80lqXVrM5XlppuCt3Ptdkv165v+8lPcZA0AwcRnIgDA6Xk8ZipLYaEvSNfGvn3SnDnS8uW+A6Vnn23mmPfqFbzJKFXTWJKSmMYCwFEI6ACAk/N4zI55YaF/dswPHJAyMqRXX5XKy81a8+bSgw9Kt90mxcTU/hm/pmpMYv365uAn/eUAHIiADgA4XkmJCeb+6jHPzZWefVZavNiEfklq3FgaPlzq188E5kA7dkxi3bqBfx4A1AIBHQBg+PvwZ36+9Pzz0sKFUnGxWWvQQBo6VBowQEpIqP0zfo3bbXbKk5Kk+PjAPw8A/KBaAf3999/X9ddff9zaG2+8odtuuy0QNQEAgsnfrSyFhdJLL5lwnp9v1pKSpPvuk+6+O/A72C6XaZepmsjCwU8AIea0n7XWrFmjiooKPfHEE6o85mBQRUWFZs2aRUAHgFDm76ksJSXSyy9L8+eb15XMHPF77zV/JSXV/hmnExV1/PxybvsEEKJOG9B37NihTz75RIcOHdJLL73k+03R0br33nsDXRsAIBDKynzB3B9TWcrKpKVLpblzpYMHzVp8vNktv+8+qWHD2j/jdLjtE0CYcVnWr2+bLF68WGlpacGop8ays7PVvXt3ZWVlKTU11e5yAMC5ysvNuMS8PP8E8/Jy6fXXpWeeMaMTJdNaMmCA6TNv3Lj2zzgdxiQCCFPVaszr27evVqxYodzcXB2b5wcPHhywwgAAflJRYUL5kSOS11v71/N6pZUrzSVD339v1qKjpb59pREjzOjEQIqLY0wigLBWrYD+n//5n9q3b58uuOACuejpA4DQ4PWaYH74sH+CeWWl9M470qxZ0u7dZi0qSrr1VjPLvGXL2j/jVFwuE8wbNDCHTPl/EYAwVq2AvnPnTr377ruKYqcCAJzPsnzBvOpCoNq+XlaWNHOm9M03vvWePc3tn+eeW/tnnIrLZcYx1q/P/HIAEaNaAb1Ro0aqqKhQbDAukwAAnBnLMgc/Dx82E1r88XobNkjTp0tffulbv+EGKT1datOm9s84FZfLBPLkZDOZBQAiyGkD+oIFCyRJjRs31sCBA9W9e3fFHHMVMz3oAOAQVcG86qbO2vrsMxPM//EP39rvfieNHi116OCfZ5xMVJTpLU9O5mIhABHrtAF9586dkqS6deuqbt26+u6774JSFACgmoqLze2fJSX+mWX++efSjBnSRx/51i67zATzLl1q//qnUhXM69dnVCKAiHfagD5t2rRg1QEAqAmPxwTzoiL/BPPt202P+bp1vrWLLzbB/PLLa//6pxIVZVpZGjQgmAPAz6rVg37dddcdN73F5XIpISFB559/viZMmKAmTZoErEAAwDH8ffvnzp1mKsvq1b619u1NML/qqsBNS3G5fDvmtLIAwHGqFdCvv/56FRUVKS0tTVFRUVq2bJmKiorUpk0b/elPf9LcuXMDXScARLayMjPHPD/fP5cMffedmWO+apUv6F9wgQnm3bsHNpjXqWNuFyWYA8BJVSugb968WZmZmUd/PGnSJP3hD3/QtGnTtHz58oAVBwARz9/BPDtbevpp6Y03fK93zjlmKkuPHoG7+MflMoG8YUMT0AEAp1StgF5UVKTCwkLV/XkGbWFhoTz+mhQAAPil8nITzPPy/BPMc3KkOXOk5ct9s9FTU80c8969zU2ggRIXZ4I5FwwBQLVU6zNy37591a9fP918882yLEurV6/WHXfcoZdeeknnBvKCCgCINGVlJpTn5/vn9s+ffpIyMqRXXjGvLUnNmkkjR0p9+kiBvN8iOtoc/kxODtzOPACEoWoF9KFDh+rCCy/U+vXrFR0drUcffVSXXXaZvvzyS/Xp0yfQNQJA+PN4TDAvKPDPjvnhw9Jzz0mLFpkRjJKUkiINGybdeWdgJ6a43ebwZ/365p8BADVy2oC+a9cutW7dWtu3b1eDBg102223Hf257du366KLLgp0fQAQ3oqLTSuLv8YlFhRIL7wgLVhgXlMyQfmBB6S0NCkhofbPOJWoKLNb3qBBYFtmACDMnfYz6BNPPKF58+YpPT39Fz/ncrmUlZUVsMIAIGxZllRYaHbM/XXBUHGx2S1/9lnzupIZYzh4sDRokOn/DpSqS4YaNAhsywwARIjTBvR58+ZJktasWROUYgAgrFVWmh3uI0dMP7g/grnHI736qukzP3TIrCUmSvfcIw0ZYna0A4VLhgAgIKo9xeXJJ5/Url27NGPGDD311FMaP3686jAqCwB+XUWF2dXOyzP/7A9lZdKyZWYyy4EDZi0uzrSxPPCAmZoSKARzAAioagX0//3f/1WTJk106NAhxcXFqbCwUH/605/05JNPBro+AAhdVcH8yBH/TGSpes033pCeeUb64QezFhMj9etnDoA2beqf55wMwRwAgqJaAX3Hjh2aNm2a1q9fr4SEBP3tb39Tr169Al0bAIQmr9eEcn8Gc69Xevttc/vnnj1mze2Wbr9dGjFCOuss/zznZKp6zOvXJ5gDQBBUK6BHnTC/1uv1/mINACKe1+vbMfdXK0tlpfTee9LMmdK335o1l0u65RbpwQelVq3885yTIZgDgC2qFdAvueQS/fWvf5XH49GHH36oRYsW6be//W2gawOA0FBZaS4Wys31XzC3LGndOhPMv/rKt37TTdKoUdJ55/nnOScTFSUlJZlgzlQWAAi6agX0//qv/1JGRobq1aun6dOnq1u3bnrwwQcDXRsAOJtlmWB++LDvlk5/vOZHH0kzZkhbt/rWr71WGj1aatfOP885mao55snJBHMAsFG1Avq2bdu0adMmeTweSWbs4po1a7Ry5cqAFgcAjlUVzEtL/feamzdL06dLmzb51rp1M8G8Y0f/PedEbrcvmMfEBO45AIBqqVZAf/TRR9WvXz+1a9dOLpcr0DUBgHMVFppg7vH4Z465JG3bZnbMN2zwrV1yiTRmjNS1q3+ecTJut2ljSU7m5k8AcJBqfUaOjY3VvffeG+BSAMDBCgvN4U9/3fwpSV9/bYL5sZfBdepkdsyvuMIcBg0EgjkAOFq1PjOfe+65+uKLL9ShQ4dA1wMAzlJUZHbM/RnMd+2SZs2S/v5331q7dmbH/OqrAxfMq3rM69enlQUAHOy0Ab13796SzE2iAwYMUMuWLRV9zG4LPegAwlZxsZnK4s9g/u9/mznmK1eayS+SmcYyapR0ww0mQAcCU1kAIKScNqA/+uijwaoDAJyhuNjsmBcX+y+Y//ijufkzM9N3cVGrVtJDD0k9e5qWk0BwuczNnw0bMsccAELIaQM6s84BRIxABPMDB6R586QlS6TycrPWooW5YOi22wLb/x0fLzVqJNWpE7hnAAACgtNBACJbIIJ5bq40f760eLFvDGOTJtLw4dIddwS2zSQ62uyYJycHrpcdABBQBHQAkSkQU1ny8qTnn5defNEEfsmE5aFDpQEDzK52oERFmR7zBg0C1zIDAAgKAjqAyGFZvmDuzznmhYUmlD//vFRQYNaSk6X77pPuvjuwbSb0mQNA2CGgAwh/lZUmOB854t+bP0tKTBvL/PnmtSUTxgcPlu69V6pXz3/POpHL5eszT0wM3HMAAEEX0IBeWFio/v37a+7cuUpNTdWWLVs0bdo0FRUVqU2bNnr88ccVe0wv5rp16zRlyhStOfbSDgABtXnHfmWu+1b7c4vVtGGibr/mPHVt19TusvyjokLKzzetJ1WHNP2htNQc/Jw3T/rpJ7OWkGB2y++7z7SZnOCtDbuUtSlbnrIKxcdGq/slqerVrfWZPT821uyY16tHn/kxwvrPMoCIEqChu9LWrVs1YMAA7dmzR5IJ6+np6ZoyZYpWrVolSVq2bNnRX//TTz/p//7v/wJVDoCT2Lxjv+ZlbtPh/BLVS4jW4fwSzcvcps079ttdWu2UlUkHD0p795oA7a9wXl5ugvmNN0pTp5rXjo2VBg2S3n9f+q//OmU4f3vjHpWWV8gdJZWWV+jtjXv01oZdNXu+2y2lpEhnn23mmhPOjwrbP8sAIlLAAvrSpUs1efJkNWnSRJK0ceNGde7cWW3btpUkTZo0STfccMPRXz9p0iQ99NBDp33N/Px8ZWdnH/dXTk5OoD4EIOxlrvtW0dEuxcdGy+Uyf4+Odilz3bd2l3ZmPB4pJ8dcCHT4sG/meG1VVEivvy7dfLP0pz+ZZ8TEmIOf770nPfKICc6nkLUpW3JJ7qgouVxRckdFSa6f16vD7TY75q1amb8H6kKjEBZ2f5YBRLSAtbhMnTr1uB/v3btXiYmJGjt2rHbv3q0uXbpowoQJkqQXX3xRF154oTp16nTa11y4cKFmz54dqJKBiLM/t1j1Eo7/NBAX49aB3GKbKjpDgRiVKJne9b//XZo1S/ruO7MWFWVmmI8cKbVsWa2X8ZSZnfNjRbnM+mlxA2i1hc2fZQBQEA+Jer1ebdiwQUuWLFGLFi00ceJEZWRk6KabbtLq1av1wgsv/Opu+KBBg9SnT5/j1nJycpSWlhbI0oGw1bRhog7nlyg+1vepoLTcqyYNQ+TQYSBGJUrmtbKypBkzpJ07zZrLZW79fOgh6ZxzavRy8bHRpr3lmI6USkvHve/HqZrM0qBBYEczhpGQ/7MMAMcIWkBPSUlRp06d1PLnHacePXpo0aJFsixLBw8eVN++fVVeXq4DBw7orrvu0ssvv/yL10hKSlJSUlKwSgbC3u3XnKd5mdvkUYXiYtwqLfeqosLS7decZ3dpp1Y1KvHwYXNY09/B/IMPpJkzpS+/9K3feKOUni5dcMEZvWz3S1L19sY98lZWKsplwrkss/4LCQlMZjkDIflnGQBOIWgBvVu3bpo1a5b27dun5s2ba+3atWrfvr1GjRqlUaNGSZKys7N1zz33nDScA/C/ru2aSrd3VOa6b3Ugt1hNnDz5IlCjEqt88ok0fbq0ZYtv7ZprpFGjpPbta/XSVdNaTjvFJTraBHMOf56RkPqzDAC/ImgBvXnz5poyZYqGDx+u0tJStWvXTuPHjw/W4wGcQtd2TZ0dYrxe36jEsjL/v/4//2laWT75xLd2+eXS6NHSxRf77TG9urU++VhFbgD1G8f/WQaAanJZlj+/Pxx82dnZ6t69u7KyspSaepJvFwMITRUVJpTn5Zl/9rcvvzTB/IMPfGv/8R8mmF96qf+fdyKXy1xq1KgRN4ACAI7DTaIAnKW83BfM/TUm8VjffGN6zN9/37d20UXSmDFSt26Bby+pugG0YUMT0AEAOAEBHYAzlJaaUJ6fb/rN/W33bmn2bOntt30HS9u0MT3m3bsHp+87Ls53AygAAKdAQAdgr5ISc/CzqCgwwfz776VnnpHeeMP3+ueea6ay3HxzcC79iY42PebJyVwyBAD4VQR0AMFXNSoxL8//M8yr5OSYYL58ua+HvWVLM8e8d+/gHMiMijKhvEEDE9IBAKgG/o8BIHiOnchSXh6YYH7woDRvnrRkiW/qS7Nm0oMPSn36SDEx/n/miaoOgDZsyEVDAIAaI6ADCLzSUhPM8/MDc/BTknJzpeeekxYtkjwes9a4sTRsmNSvX/AmpcTFmcksdesG53kAgLBDQAcQOMXFZrc8UP3lkgn9CxZICxea50impeSBB6S77jI3cwaD2212zOvX56IhAECtENAB+JdlmRs/8/LMTnagrlooKpJeesnsmufnm7WkJGnIEGngwODtYLtcZipLo0bBaZ8BAIQ9AjoA//B6TTA/ciQwN35W8XikV14xfeaHD5u1xERp0CBp8GBzKDNY4uOllBTzfAAA/ISADqB2An3jZ5WyMum116Q5c8xBUMkE5LQ06f77TXtJsNDOAgAIIAI6gDMTjIOfkpn28sYbZmTijz+atZgYqX9/aehQqUmTwD37RLSzAACCgIAOoGZKSsxueWFh4A5+Sib0v/WWuf3z3/82a9HR0u23SyNGSC1aBO7ZJxMXZ9pZ6tQJ7nMBABGHgA7g1wXjYqEqlZXSu+9Ks2ZJu3aZtago6ZZbzCzzs88O3LNPxu02U2EaNKCdBQAQFAR0AKdWdfAzL8/0gAcymFuWtHatNGOG9PXXvvXf/97c/tm6deCefTIul5kE06iRFBsb3GcDACIaAR3AL5WV+YJ5IA9+SiaYb9xogvm2bb717t2lUaOktm0D+/yTiY017SxcNgQAsAEBHYBPsPrLq2zaJE2fLm3e7Fv73e9MMO/YMfDPP1FUlJnM0rCh+WcAAGxAQAciXTD7y6t8/rnZMf/oI9/ab38rjR4tde0a+OefTGKi2TWPj7fn+QAA/IyADkSqYPaXV/nqK2nmTNNrXqVzZ2nMGOmyy+w5hOl2mz7z5GQOgQIAHIGADkSasjIzuzwvL7Dzy4/1r3+ZqSzvvutbu/BCE8yvusqeYMxMcwCAQxHQgUgR7P5ySdqzx8wxf+st3w79+eebVpbrr7dvx5pDoAAAByOgA+HMjv5yScrONjd/vvGGb5f+N7+R0tOlHj1MW4kdXC7fTHO7agAA4FcQ0IFw5PX62ljKy4MXzPfvl+bOlV57zTxXks46y8wxv+UWcxOoXRISzK55QoJ9NQAAUA0EdCCc2NFfLkmHDknz50svvyyVlpq1pk2lESOkvn3tveiHm0ABACGGgA6Eg+JiE8qLioLXXy5JR45Izz8vvfSSqUEyhy6HDZP695fi4oJXy4lcLjM6sXFjbgIFAIQUAjoQqiorff3lHk/w2lgk89wXXpAWLDD/LJkLfu67T7r7bhOM7RQdbdpZkpLsrQMAgDNAQAdCTXm5r42loiK4zy4ulhYtkp57zuyeS2YSyuDB0r332j8VxeUyobxRI3v73QEAqAX+DwaEiuJiE8yDOSaxSmmp9Oqr0rx5pt9cMrvk99xjwnn9+sGt52Ti4syueZ06dlcCAECtENABJ6u67TM/34TkYLaxSObQ6fLl0pw5ZkKLZILwgAHS0KFmp9puUVG+Q6BRUXZXAwBArRHQAScqLjY75QUFwZ3GUqWiQlqxwlwy9MMPZi0mRurXzxwAbdo0+DWdTEKCOQQaH293JQAA+A0BHXCKsjJfKC8rC/5uuWRaZ95+W5o1y9wCKpkxhX36SCNHmpnmTuB2Sw0bmtYaRicCAMIMAR2wU2WlGY1YUGB2zYPdW17FsqT33pNmzpT+9S+z5nJJPXua2z9/8xt76jqRy2V6zFNSGJ0IAAhbBHTADh6Pr7fcjhaWKpYlffCBNGOGtH27b/2mm0wwP/98+2o7UWys2TVndCIAIMwR0IFgqagwLSx2Hfg8lmVJn3wiTZ8uff65b/3aa6VRo6QLL7Srsl9yuaTkZHMg1e22uxoAAAKOgA4EkmWZ1pWCAnvGI57M5s1mx/yzz3xrV14pjR4tdepkX10nEx9v2lnsvvgIAIAgIqADgVBebkK5nQc+T/TFFyaYf/ihb61rVxPMf/tb++o6GUYnAgAiGAEd8KeSEnPDZlGRM3bLJenrr83hz6ws31rHjtKYMdIVVzhvCkpiotk1Z3QiACBCEdABfygslPLyTDuLE3bLJWnXLjPH/O23fWtt25od82uvdV4wd7tNME9Kcl5tAAAEEQEdOFOWZYL5kSNmKotTgvm//y09/bS5aKhqF791azOV5aabnNcy4nJJdeuacB4TY3c1AADYjoAO1NSx/eWlpXZX47NvnzRnjrR8uZkYI0lnny099JDUq5czJ6DExprpLPXq2V0JAACOQUAHqsOyfBcKOam/XJIOHJAyMqRXXzVfPEhSixbm5s/bbnPmrrTLZW4BbdjQmV84AABgIwI6cDplZb7d8vJy57SxSFJurvTss9LixabFRpIaN5ZGjJDuuMO5N23Gx5s6ExLsrgQAAEcioAMnqqw0u+T5+WYqi5N2yyVT1/PPSwsXmkOpkhlHOGyYNGCAc6efuN2+0YkcAgUA4JQI6EAVj8e3W17Vw+0khYXSiy9KCxaYkC6ZiSf33ScNHCjVqWNvfaficvlGJ8bF2V0NAACOR0BHZPN6faHcSZNYjlVSIr38sukzP3LErCUmSoMHS/fea0K6U0VHm3YWDoECAFBtBHREpuJiE8oLC01Id6KyMmnJEmnePOngQbMWHy/dfbfZNW/Y0N76TsflkpKTzYQWDoECAFAjBHREjmPHI5aVOXO3XDJ1vv669MwzZnSiZCaxDBggDR1qdqSdjEOgAADUCgEd4a3qMqGCArNr7rQDn8fyeqWVK83tn99/b9aio6W+fc1klubN7a3v13AIFAAAvyCgIzyVlppgnp9vDnw6dbdcMl80vPOONGuWtHu3WYuKMjPMR46UWra0tbxfVXUItHFj5452BAAghAQ0oBcWFqp///6aO3euUlNTtWXLFk2bNk1FRUVq06aNHn/8ccXGxuq9997TzJkzVVlZqQ4dOmjKlCmK5X/0qCmv1zce0eNx9m65ZL5oyMqSZs6UvvnGrLlcUs+e0oMPSueeG5Qy3tqwS1mbsuUpq1B8bLS6X5KqXt1aV+83R0eb6SxOPqgKAECIiQrUC2/dulUDBgzQnj17JJmwnp6erilTpmjVqlWSpGXLlqm4uFhTpkzRggULtGrVKpWWlur1118PVFkIR8XF5jbNPXuknBznt7JYlvTBB9If/mCCeFU4v+EG6c03pSefDGo4f3vjHpWWV8gdJZWWV+jtjXv01oZdp/+NVYdAzz6bcA4AgJ8FbAd96dKlmjx5ssaNGydJ2rhxozp37qy2bdtKkiZNmiSv16vExEStWbNGMTExKikp0aFDh5R0iv/h5+fnK79q/vPPcnJyAvUhwMnKy30tLE4+8HmiTz+Vpk+X/vlP39rVV0ujRkkXXRT0crI2ZUsuyR1lvlZ3uyRvZaWyNmWfehc9Ls7smjt17joAACEuYAF96tSpx/147969SkxM1NixY7V792516dJFEyZMkCTFxMRo/fr1GjdunJo0aaJu3bqd9DUXLlyo2bNnB6pkOF3Vgc/CQtPK4uRd8hN9/rkJ5h9/7Fu77DJp9GipSxe7qpKnzOycHyvKZdZ/oeoQaP36pkceAAAERNAOiXq9Xm3YsEFLlixRixYtNHHiRGVkZCg9PV2SdPXVV+vTTz/VU089pT//+c968sknf/EagwYNUp8+fY5by8nJUVpaWlA+BtjE4zGBPC/P9JmHym65JG3fLs2YIa1f71vr0sUE88sus6+un8XHRpv2lmOGrlRaZv0ol0uqW9fMNOdsCAAAARe0gJ6SkqJOnTqp5c8TKXr06KFFixbpyJEj+vLLL4/umvfu3Vtjx4496WskJSWdsv0FYcbr9Y1HLCkJrVAuSTt3mqksq1f71tq3l8aMkX73O8eMIex+Sare3rhH3spKRblMOJdl1iWZdpZGjUxABwAAQRG071N369ZN27dv176fL15Zu3at2rdvL8uy9Mc//lE//vijJOmdd95RFxu/5Q+bHXvgc/9+8+NQCufffSf9539Kt9ziC+cXXCA9/bS0fLl01VWOCeeS1Ktba/3+yt8oLiZa3kopLiZav7/yN+p19QUmmLdsSTgHACDIgraD3rx5c02ZMkXDhw9XaWmp2rVrp/HjxyshIUF/+ctfNGzYMLlcLp133nn6n//5n2CVBScIlRs+Tyc724TwN980u/+SdM455vDnzTc7ume7V7fWvgOhtLMAAGA7l2WFYhryyc7OVvfu3ZWVlaXU1FS7y0F1hfKBz2Pt3y/NmSMtW2a+0JCks86S0tOl3r3NnPBQQTsLAACOEELpAWHB4/GNRwy1A5/H+uknKSNDeuUVs+svSc2aSSNGSLffHlq7z263mczSoIGjd/oBAIgUBHQE3rE3fIbigc9jHT4sPfectGiR+VgkMxN82DDpzjvNLnSocLmkxERTfyjVDQBAmCOgI3BKSny95VV92aGqoEB64QVpwQLzxYZkdp0feEBKS5MSEuysruaio00wZyoSAACOQ0CHf1WNR8zLk0pLQ3u3XDJhfNEis2uel2fW6tWTBg+WBg0KvX5tl8uE8kaNQqs/HgCACML/oeEfHo/ZZa7qLQ91Ho/pL8/IkHJzzVpionTPPdKQIVJysr31nYm4OLNrXqeO3ZUAAIDTIKDjzFVW+g58hnpveZWyMum118xkloMHzVpcnGljeeABqWFDe+s7E1FR5gAoh0ABAAgJBHTUXHm5CeV5eVJFhd3V+EdFhfTGG9Izz0g//GDWYmKkfv3MAdCmTW0t74xwCBQAgJBEQEf1lZSYUF5YGLpzy0/k9UqrVkmzZ0t795o1t1vq29eMTGzRwt76zlRsrOkzr1fP7koAAEANEdBxepWV5qDkkSOmLzsc2lgk83G99540c6b07bdmLSrKXC704INSq1b21nemXC4zXaZhQ/OFBgAACDkEdJxcWZk59BlObSyS+QJj3Tppxgxpxw7f+s03S6NGSa1b21ZarcXHS40bh97IRwAAcBwCOo5XdaFQUVH4tLFIJph/9JEJ5lu3+tavu04aPVpq29a+2mqr6hBow4ZmBx0AAIQ0AjpMH3bViMRwmF1+ok2bTDDftMm31q2bCeYdO9pXlz9UHQKNj7e7EgAA4CcE9EhWWuprYwmH2eUn2rrVBPONG31rl1wijRkjde1qW1l+4XabQ6DJyeyaAwAQZgjokcayfG0sxcXh1cZSZccOE8zXrvWtde5sdswvvzy0A63LZW4vbdTITGoBAABhh4AeKbxeE8rz880B0HBrY5HMNJZZs6R33vGtXXihCeZXXx3awVwygbxhQykpye5KAABAABHQw53H4+svD8c2FsnML589W1q50veFx/nnm6ks118f+rdnulymlaVRI0YnAgAQAQjo4ciyzGVCVW0s4bhbLpkbP595Rnr9dd8XH61aSenp0u9/Hx5hNi7OjE5MTLS7EgAAECQE9HBSUeFrYykvD99gvn+/NG+etHSp+Tgl6ayzzAVDt94qRYfBH2u321w41KBB6H8HAAAA1EgYJBnI4zGhvKAgfNtYJOnQIWn+fOnll80EGklq0kQaMUL6wx/C49CkyyXVqWNGJ4bDxwMAAGqMgB6qvF7TxlJQIJWUhO9uuWTGQD7/vPTii6ZlRzKHJYcNk/r3D58Z4LGxps+8Xj27KwEAADYioIeSqhGJhYXm7+G8Wy6Zj3PhQmnBAvOFiGQOS95/v5SWZnaaw0HVTaC0swAAABHQQ0NpqW+3PJx7y6sUF0uLF0vPPisdOWLW6tSRBg+W7r03fHaYXS4pIYGbQAEAwHEI6E4VKZNYjlVaKr36qjkAeuiQWUtIkO6+W7rvPrPDHC6io303gQIAAByDgO40ZWVmpzxSdssl8zFnZpqRifv3m7XYWGnAAGnoULPDHC6qZpo3bBge02YAAIDfkRCcwLLMLnl+vuktr6y0u6LgqKiQVqwwlwz98INZi4kxE1lGjJCaNrW3Pn+LjzdfbDDTHAAAnAYB3U4VFb5bPsvKImO3XDJfgPz979LMmdKePWbN7TYzzB98UEpNtbU8v3O7fYdAXS67qwEAAA5HQLdDSYkJ5YWF4T+J5ViWJWVlSTNmSDt3mjWXS+rZU3roIemcc+ytz9+YaQ4AAM4AAT1YKit9u+UeT+TslkvmY/3gAxPMt2/3rd90k5SeLp1/vn21BQozzQEAwBkioAdaaakJ5nl5kbVbXuXjj00w37LFt3bNNdKoUVL79raVFTBRUVL9+qadxe22uxoAABCCCOiBEIkjEk/0j3+YYP7pp761K66QRo+WOne2rayASkiQGjdmpjkAAKgVAro/lZebUB5JIxJP9MUXJph/+KFv7T/+wwTzSy+1r65AcrvN2MT69TkECgAAao2A7g9FRSaUFxZGzojEE33zjZnK8v77vrUOHUww79YtPIMrh0ABAEAAENBrq6JC2rcvcoP57t1mjvnbb/u+Y9Cmjekx7949PIO5ZC4ZSkmRkpLsrgQAAIQZAjrOzPffS08/Lb35pu+Lk3PPNVNZbr7ZHJYMRy6XVLeu6TXnJlAAABAAJAzUzL590pw50vLl5rsHktSypZlj3rt3eE8uYdccAAAEAQEd1XPggJSRIb36qjkAK0nNm0sjR0p9+kgxMfbWF0hVveaNG4f3xwkAAByBgI7Ty82Vnn1WWrzYXLAkmaA6fLjUr1/4H450u82ueXKy3ZUAAIAIQUDHyeXnS88/Ly1caGa5S+bynaFDpQEDzMzvcMaEFgAAYBMCOo5XWCi99JIJ5/n5Zi0pSRoyRBo40ByQDHfR0ea7BPXq2V0JAACIQAR0GCUl0iuvmD7zw4fNWmKidO+90uDBkXEw0uUyH2ejRkxoAQAAtiGFRLqyMmnpUmnuXOngQbMWHy+lpUn3329uyIwEcXEmmEfCdwgAAICjEdAjVXm59MYbZpb5vn1mLSZG6t9fGjbMtHhEgqgoqX5984VIuM5uBwAAIYWAHmm8Xumtt8ztn//+t1mLjpb69jWTWVq0sLe+YEpIMF+IxMfbXQkAAMBRBPRIUVkprV4tzZwp7dpl1qKipFtvlR580Fw2FCncbrNjXr++6TsHAABwEAJ6uLMsae1aacYM6euvfes9e5pg3rq1fbUFG6MTAQBACCCghyvLkjZuNMF82zbf+vXXS+npUtu29tVmh5gYE8wZnQgAAByOgB6OPvvMBPPNm31rV10ljRoldehgX112cLnMLaANGzI6EQAAhISAjq0oLCxUr169lJ2dLUnasmWL+vXrp549e+rhhx9WWVmZJOn999/XrbfeqltuuUUjR45UXl5eIMsKX59/bmaWDxzoC+e//a308svS/PmRF87j46WzzpKaNCGcAwCAkBGwgL5161YNGDBAe/bskWTCenp6uqZMmaJVq1ZJkpYtW6bCwkL9+c9/VkZGhlasWKE2bdpo1qxZgSrLbzbv2K9H5mzUwzM+0KzXPtcXu36yr5ivvjKjEe+8U/roI7N28cXSCy+YW0H/4z/sq80OUVFmpnlqqrlsCQAAIIQEbFtx6dKlmjx5ssaNGydJ2rhxozp37qy2P/c+T5o0SV6vV+Xl5Zo8ebKaNm0qSWrTpo1WrlwZqLL8YvOO/ZqXuU3R0S41rhurgsOlWrL6G+lGqUPrlOAV8q9/SbNmSe++61tr314aPdq0tETihJLERNNrzuhEAAAQogIW0KdOnXrcj/fu3avExESNHTtWu3fvVpcuXTRhwgTFxcXphhtukCR5PB5lZGRo4MCBJ33N/Px85efnH7eWk5MTmA/gNDLXfavoaJfiY6PlcrkUF+1Wqdul1Z/uDU5A37PHBPNVq8xhUEk6/3wTzK+/PjKDeXS02TVPTra7EgAAgFoJWmOu1+vVhg0btGTJErVo0UITJ05URkaG0tPTJUkFBQV68MEH1bZtW/Xp0+ekr7Fw4ULNnj07WCWf0v7cYtVLOP6ti42JUm6eJ7APzs6WnnnG3ADq9Zq13/zGTGXp0cPM9440LpeZzNKokZnUAgAAEOKCFtBTUlLUqVMntfz5QpwePXpo0aJFkqQDBw7ovvvu02WXXaZHHnnklK8xaNCgX4T3nJwcpaWlBa7wk2jaMFGH80sUH+t7+8rKK9UwOUBtFfv3S3PnSq+9JpWXm7WzzpIeeki65ZbIPQAZG2vaWerWtbsSAAAAvwlasuvWrZtmzZqlffv2qXnz5lq7dq3at28vr9er4cOHq0ePHho5cuRpXyMpKUlJSUlBqvjUbr/mPM3L3CaPKlQvNkqlFV55vZZuvLSVfx906JCUkSG98opUWmrWmjaVRoyQ+vaN3Mt2XC6pQQPzVyR+1wAAAIS1oAX05s2ba8qUKRo+fLhKS0vVrl07jR8/XmvWrNFXX30lr9erd38+7HjRRRf9oofdSbq2ayrd3lGZ675VUXGpGteJU+8rz/Ff//mRI9Jzz5kJLCUlZi0lRRo6VOrfX4qL889zQlFCgtS4MYdAAQBA2HJZVtUpw9CUnZ2t7t27KysrS6mpqcEvoKLCHNqsrKz9axUUmNGIL7wgFRaatfr1pfvvl9LSIntkoNttLhuqXz8yD8ECAICIEaHNyw5TXCwtWiQ9+6xUdUlT3brSkCHSoEGR3WPtckl16pjvIERqSw8AAIgoBHQ7lZaa/vKMDNNvLpld8nvuMTeC1q9va3m2i4427Sz16tldCQAAQNAQ0O1QViYtW2Yms+zfb9bi4qS77pIeeMCMDIxkLpeZZ96wYeROqAEAABGL9BNMFRXSm29KTz8t/fCDWYuJkfr1k4YNMxNaIl1cnNk1j+R+ewAAENEI6MHg9Upvvy3Nnm0OlErm0GOfPtLIkWameaSLivKNToyKsrsaAAAA2xDQA8mypPfek2bOlP71L7Pmckm9epnbP1v5eW56qEpMNIdAGZ0IAABAQA8Iy5LWr5dmzJC++sq3ftNN0qhR0nnn2Vebk7jdJpgnJTE6EQAA4GcEdH+yLOnjj00w//xz3/q110qjR0vt2tlWmqO4XGZ0ZEqK6cEHAADAUQR0f9m82QTzzz7zrV1xhTRmjNSpk21lOU5srJlSw+hEAACAkyKg19amTdL48dKHH/rWunY1wfySS2wry3FcLjPXvWFD09oCAACAkyKg18Yzz0gPPuj7cceOJphfcQU91cdidCIAAEC1EdBrY+9e8/d27UyP+TXXEMyPxehEAACAGiOg18Zjj0mDBnHb5ckkJJhdc0YnAgAA1AjbmrXhdksXXMDu8LHcbhPMU1MJ5wAAAGeArV/4R9XoxEaNzKQWAAAAnBECOmqP0YkAAAB+Q0DHmWN0IgAAgN8R0HFmOAQKAAAQEAR01IzbbXbM69dnpCQAAEAAENBRPRwCBQAACAoCOn4dh0ABAACChoCOU3O5pORkE845BAoAABAUBHScXFycOQSamGh3JQAAABGFgI7juVxSgwbmICg3pAIAAAQdAR0+8fFm1zwhwe5KAAAAIhYBHWanvGrXnNGJAAAAtiKgR7r4eKlJEy4cAgAAcAgCeqRi1xwAAMCRCOiRiF1zAAAAxyKgRxJ2zQEAAByPgB4p2DUHAAAICQT0cMeuOQAAQEghoIczds0BAABCDgE9HLFrDgAAELII6OEmIcHcBsquOQAAQEgioIcLds0BAADCAgE9HLBrDgAAEDYI6KHM7Ta75g0asGsOAAAQJgjoocjlkhITpZQUKS7O7moAAADgRwT0UBMdbYJ5UpLdlQAAACAACOihwuUyobxRIxPSAQAAEJZIeqEgLs7smtepY3clAAAACDACupNFRUn165vRiVFRdlcDAACAICCgOxWjEwEAACISAd1p3G6zY16/PqMTAQAAIhAB3SlcLtNjnpIixcbaXQ0AAABsQkB3AkYnAgAA4GcEdDu5XFJysmlpYXQiAAAAJAV0NEhhYaF69eql7OxsSdKWLVvUr18/9ezZUw8//LDKysqO+/Xjxo1TZmZmIEtyjrg46ayzpCZNCOcAAAA4KmABfevWrRowYID27NkjyYT19PR0TZkyRatWrZIkLVu2TJK0f/9+DR8+XO+++26gynGOqChz2VDLllJiot3VAAAAwGECtnW7dOlSTZ48WePGjZMkbdy4UZ07d1bbtm0lSZMmTZLX65UkrVy5Ut27d1f9+vVP+5r5+fnKz88/bi0nJ8f/xQdKYqLpNWd0IgAAAE4hYAF96tSpx/147969SkxM1NixY7V792516dJFEyZMkCTdf//9kqR//OMfp33NhQsXavbs2YEpOJDcbrNrnpzM6EQAAACcVtCan71erzZs2KAlS5aoRYsWmjhxojIyMpSenl7t1xg0aJD69Olz3FpOTo7S0tL8Xa5/uFxS3bpm1zwmxu5qAAAAEAKCFtBTUlLUqVMntWzZUpLUo0cPLVq0qEavkZSUpKRQGUUYG2t2zevVs7sSAAAAhJCATnE5Vrdu3bR9+3bt27dPkrR27Vq1b98+WI8PHpdLatDAHAIlnAMAAKCGgraD3rx5c02ZMkXDhw9XaWmp2rVrp/Hjxwfr8cERHy81biwlJNhdCQAAAEKUy7Isy+4iaiM7O1vdu3dXVlaWUlNTg19ARYX0/ffmAGiDBhwCBQAAQK1wQ05tRUVJLVqYi4cAAACAWgpaD3rYiooinAMAAMBvCOgAAACAgxDQAQAAAAchoAMAAAAOQkAHAAAAHISADgAAADgIAR0AAABwEAI6AAAA4CAEdAAAAMBBCOgAAACAgxDQAQAAAAchoAMAAAAOQkAHAAAAHISADgAAADgIAR0AAABwEAI6AAAA4CAEdAAAAMBBCOgAAACAg0TbXUBteb1eSVJOTo7NlQAAAADV16xZM0VH/zKOh3xAP3jwoCQpLS3N5koAAACA6svKylJqauov1l2WZVk21OM3Ho9HX375pRo3biy32x3UZ+fk5CgtLU2LFy9Ws2bNgvrsSML7HHi8x8HB+xx4vMeBx3scHLzPgeeE9zhsd9Dj4+PVtWtXW2to1qzZSb/6gX/xPgce73Fw8D4HHu9x4PEeBwfvc+A58T3mkCgAAADgIAR0AAAAwEEI6AAAAICDENBrISkpSQ899JCSkpLsLiWs8T4HHu9xcPA+Bx7vceDxHgcH73PgOfk9DvkpLgAAAEA4YQcdAAAAcBACOgAAAOAgBPRqKCwsVK9evZSdnS1J2rJli/r166eePXvq4YcfVllZ2XG/fty4ccrMzLSj1JBW3ff5/fff16233qpbbrlFI0eOVF5enp1lh5TqvsfvvfeeevfurZ49e2rChAm/+DOO06vp54x169bpuuuus6PUkFXd93j27Nm69tprdeutt+rWW2/V4sWL7Sw7pFT3Pd69e7cGDhyoW265Rffddx+fk2uoOu/zjh07jv4ZvvXWW/W73/1OvXr1srny0FHdP8vbt29X3759dcstt2jYsGHKz8+3r2gLp/X5559bvXr1stq3b299//33VkFBgXXllVdaO3bssCzLssaOHWstXrzYsizLysnJsYYNG2Z17NjRWr58uZ1lh5zqvs9V6zk5OZZlWdb06dOtv/zlL3aWHjKq+x4XFRVZ3bp1sw4ePGhZlmWNGTPGevXVV+0sPaTU5HOGZVnWwYMHrZtvvtm69tpr7So55NTkPR42bJj1z3/+085yQ1J13+PKykrrxhtvtNavX29ZlmX99a9/tZ544gk7Sw8pNf18YVmWVVxcbPXs2dPatGmTHSWHnJq8xwMGDLDWrVtnWZZlTZs2zXrqqadsq5sd9F+xdOlSTZ48WU2aNJEkbdy4UZ07d1bbtm0lSZMmTdINN9wgSVq5cqW6d++uHj162FZvqKru+1xeXq7JkyeradOmkqQ2bdpo3759ttUdSqr7HicmJmrNmjVKSUlRSUmJDh065MgT7k5Vk88ZVT9+6KGHbKk1VNXkPf7yyy81b9489e7dW1OmTFFpaaltdYeS6r7H27dvV2Jioq666ipJ0vDhw5WWlmZb3aGmpp8vJGnevHm65JJLbL9FPVTU5D2urKxUUVGRJKmkpETx8fH2FC0p2rYnh4ipU6ce9+O9e/cqMTFRY8eO1e7du9WlSxdNmDBBknT//fdLkv7xj38Evc5QV933OS4u7uh/SB6PRxkZGRo4cKAdJYecmvxZjomJ0fr16zVu3Dg1adJE3bp1s6PkkFST9/nFF1/UhRdeqE6dOtlRasiq7ntcVFSkdu3a6Y9//KNatWqlCRMm6JlnntHYsWNtqjx0VPc93rRpk1JSUvTII49ox44dOvfcc/Xoo4/aVHXoqcnnC0kqKCjQ0qVLtXLlymCXGrJq8h5PmDBBQ4YM0WOPPaaEhAQtXbrUjpIl0YNeY16vVxs2bNDDDz+szMxMlZSUKCMjw+6yws6vvc8FBQUaOnSo2rZtqz59+thYaej6tff46quv1qeffqprr71Wf/7zn+0rNMSd6n3euXOnVq9erZEjR9pdYsg71Xtcp04dzZ8/X61bt1Z0dLSGDBmi9evX211uSDrVe1xRUaHPPvtMAwYM0Ouvv66WLVvq8ccft7vckPVrn5dXrFih66+/Xo0aNbKxytB2qvfY4/Fo4sSJeuGFF7RhwwbdddddGj9+vG11EtBrKCUlRZ06dVLLli3ldrvVo0cPbdu2ze6yws7p3ucDBw7orrvuUps2bX7xlTGq71Tv8ZEjR7Rhw4ajv65379765ptvbKw0tJ3qfX7nnXd08OBB9e3bV0OHDj365xo1d6r3+Mcff9SyZcuO/jrLshQdzTeOz8Sp3uPGjRurVatW6tChgySpV69e/D+xFn4tY7z//vv6/e9/b2OFoe9U7/HOnTsVFxenjh07SpLuvPNOffbZZ7bVSUCvoW7dumn79u1H+57Xrl2r9u3b21xV+DnV++z1ejV8+HD16NFDEydOlMvlsrnS0HWq99iyLP3xj3/Ujz/+KEl655131KVLFztLDWmnep9HjRqld999V2+++aYyMjLUpEkTvfzyyzZXG5pO9R7Hx8frr3/9q77//ntZlqXFixf/op8X1XOq9/jiiy9Wbm6uvv76a0nSmjVr+H9iLZwuY1iWpe3bt+viiy+2s8SQd6r3uFWrVsrJydHu3bslSVlZWUe/8LQDWwk11Lx5c02ZMkXDhw9XaWmp2rVrZ+u3QMLVqd7nNWvW6KuvvpLX69W7774rSbrooovYST8Dp3qPExIS9Je//EXDhg2Ty+XSeeedp//5n/+xu9yQxeeMwDvdn+UpU6ZoxIgRKi8vV5cuXTR48GC7yw1Jp3qP4+Pj9fTTT2vSpEkqKSlRs2bN9MQTT9hdbsg63eeL3NxcxcTEKC4uzuYqQ9vpPl9MmzZNY8aMkWVZatSokR577DHb6nRZlmXZ9nQAAAAAx6HFBQAAAHAQAjoAAADgIAR0AAAAwEEI6AAAAICDENABAAAAByGgA4DNPv30U/Xq1atGv+eBBx7Qt99+e9pfM2HCBD333HMn/bnZs2fr/fffr9Ezg6mgoED33HOP3WUAgC2Ygw4AIWj+/Pm1+v2ffvqpzjvvPD9V4395eXn64osv7C4DAGxBQAcAByguLtbYsWO1e/dulZaW6n//93/VsWNH/e1vf9OmTZvk9Xp14YUXatKkSapbt66uu+46zZgxQx06dFBGRoaWLVumOnXqqGvXrsrKytKaNWskSVu2bFH//v31008/6fzzz9eTTz6p119/XV9++aWeeOIJud3u096ueeGFF+qBBx7Qhx9+qOLiYj388MO68cYbVVxcrD//+c/au3evjhw5ojp16uhvf/ubzj33XA0cOFDJycnavXu3BgwYoNtuu01Tp07Vzp07VV5erssvv1zjxo1TdHS0OnTooKFDh2rjxo06cOCA7r//ft1111367//+b3k8Ht16663KzMzU008/rffee08xMTFq0KCBpk2bpiZNmgTrXw8ABBUtLgDgADk5Obr33nv15ptvqn///po1a5YyMjLkdruVmZmpFStWqEmTJvrb3/523O/78MMPlZmZqWXLlikzM1NFRUXH/fz+/fu1YMECvfvuu9q/f79Wr16ttLQ0XXTRRRo3btxpw7kkeb1eJSQkKDMzU9OnT9cjjzyi3NxcffDBB0pKStKSJUv07rvv6qKLLtLixYuP/r6kpCS9/fbbGjhwoB577DG1b99emZmZeuONN3T48GEtWLBAklRWVqYGDRro1Vdf1cyZMzVt2jSVlpZq2rRpio+P15tvvqkDBw5o4cKFWr58uTIzM3XllVdq27ZtfnrnAcB52EEHAAdo2bKlOnXqJElq27atli9frnXr1qmgoEAfffSRJKm8vFyNGjU67vetX79eN998s5KSkiRJaWlp+uSTT47+/PXXX6+EhARJ0vnnn6/c3Nwa13b33XcfreuCCy7Qpk2bdPPNN6tly5Z66aWXtHfvXn322We6+OKLj/6erl27Hv3ndevW6YsvvtCyZcskSR6P57jX7969uySpffv2KisrU3Fx8XE/37RpU7Vt21Z9+vTRVVddpauuukqXX355jT8OAAgVBHQAcICYmJij/+xyuWRZliorK/XII4/o6quvliQVFRWptLT0uN8XHR0ty7KO/tjtdv/i50983Zo69jUrKyvldrv18ssva+nSpUpLS1Pv3r1Vv359ZWdnH/11iYmJx/2eGTNmqHXr1pKk/Px8uVyuoz8fFxd3tD5Jv6gxKipKixYt0hdffKGPP/5Yjz32mH73u99p3LhxNf5YACAU0OICAA7VrVs3LV68WGVlZaqsrNSjjz6qp5566rhfc/XVV2v16tUqKCiQpKO71L/G7XaroqKiWr/2jTfekCRt375d3333nS655BJt2LBBffr00R133KFzzjlHa9askdfrPeXH8cILL8iyLJWVlWnEiBFatGjRaZ8ZHR0tr9cry7L09ddfq1evXmrdurWGDRume++9lwOkAMIaO+gA4FAjR47U//3f/6lPnz7yer1q166dJkyYcNyvufzyy9WvXz/deeedio+P1/nnn3+0peV0rrvuOj311FMqLy9Xnz59Tvtr//nPf2rp0qWqrKzU//t//0/JyckaMmSI/vSnPx39gqBz587auXPnSX//xIkTNXXqVPXu3Vvl5eW64oordP/995/2mY0bN1bHjh3Vs2dPLV68WD169FDfvn2VmJio+Ph4TZo06Vc/RgAIVS7rTL7fCQBwhC+++EJbtmw5OjN8wYIF2rp1q6ZPn+6X12/Tpo0+/vhjNWzY0C+vBwD4deygA0AIO+ecczR//nwtXbpULpdLzZs311/+8pdq//5nn31WK1euPOnP3Xffff4qEwBQA+ygAwAAAA7CIVEAAADAQQjoAAAAgIMQ0AEAAAAHIaADAAAADkJABwAAAByEgA4AAAA4yP8H9uhy2PtwVk4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot regression line with CI 95%\n", "sns.lmplot(x='height_parents', y='height', data=df, order=1, line_kws={'color':'red'}, height=7, aspect=1.5, ci=95);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### Confidence intervals in small samples\n", "\n", "The procedure we just used is fine when samples are large, because the central limit theorem tells us that the sampling distribution will be normal. However, for small samples, the sampling distribution is not normal – it has a t-distribution. The t-distribution is a family of probability distributions that change shape as the sample size gets bigger (when the sample is very big, it has the shape of a normal distribution). \n", "\n", "To construct a confidence interval in a small sample we use the same principle as before, but instead of using the value for z we use the value for t:\n", "\n", "lower boundary of confidence intervall = $\\bar{X} - (t_{n-1} \\times SE)$\n", "\n", "upper boundary of confidence intervall = $\\bar{X} + (t_{n-1} \\times SE)$\n", "\n", "The (n − 1) in the equations is the degrees of freedom and tells us which of the t-distributions to use. For a 95% confidence interval, we can calculate the value of t for a two-tailed test with probability of 0.05, for the appropriate degrees of freedom." ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.093024054408263\n", "Lower boundary of CI (t-statistics) 164.30416372335924\n", "Upper boundary of CI (t-statistics) 165.69583627664076\n" ] } ], "source": [ "# calculate t-statistic\n", "# 95% confidence interval, two tailed test, \n", "# p<0.05 (we need to take 0.025 at each side), n=20, df=19\n", "t = stats.t.ppf(1-0.025, 19)\n", "print(t)\n", "# lower boundary\n", "lb_t = (df.height.mean() - (t*se))\n", "# upper boundary\n", "up_t = (df.height.mean() + (t*se))\n", "print('Lower boundary of CI (t-statistics)', lb_t)\n", "print('Upper boundary of CI (t-statistics)', up_t)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "scrolled": true, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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17/+NebPnw9JktChQwcsX778vvfDJRCIiBSuzU/dEBFR81j0REQKx6InIlI4Fj0RkcKx6ImIFI5FTwFn375997yi4XPPPYezZ882+5iFCxfiww8/vOPHsrOz8e23397TPolaS5s/j57IFz744IPv9fx9+/ahR48erZSG6N6w6Ckg1dbWehaSstlsePPNNzFgwAD89re/xYEDB+ByudC3b18sXrwYYWFhGDduHP7whz8gJSUFK1euxNq1axEaGooHHngAW7ZsQU5ODoCGtcXnzJmDK1euoGfPnvjd736H9evX48SJE1ixYgU0Go3fX0FLysOpGwpIJpMJP/rRj/DFF19gzpw5eO+997By5UpoNBqsW7cOGzZsQExMDH772996PW/nzp1Yt24d1q5di3Xr1nmWkb2hvLwcH330ETZu3Ijy8nJs2rQJmZmZ6N+/P1577TWWPAnBI3oKSImJiZ6lkpOTk/HZZ59h27ZtqKmpwe7duwEADoej0eqH27dvx8SJEz33A8jMzMTevXs9Hx8/fjyCg4MBAD179kRlZaUvhkPULBY9BSSdTuf5u0qlgiRJcLvdWLRoEdLT0wEAVqu10c1EtFotbl01RKPRNPr47Z+XSDRO3RBdN2rUKKxevRp2ux1utxtLlizB22+/7fWY9PR0bNq0CTU1NQDgtVRxczQaDZxOZ6tnJmoJFj3RdS+++CLi4+ORkZGBSZMmQZIkr7sWAUBqaioef/xxzJ49GzNmzEBNTY1nqqY548aNw9tvv43169fLFZ+oSVy9kugeHD9+HN999x2efvppAMBHH32Eo0eP4ve//73YYETNYNET3QOLxYJFixahsLAQKpUKHTt2xLJlyzw3oSfyRyx6IiKF4xw9EZHCseiJiBSORU9EpHAseiIihWPRExEpHIueiEjh/h9TA7ofH2ygdgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# draw limits of confidence intervall for t-statistic\n", "plt = sns.histplot(x=\"height\", data=df, bins=5);\n", "# draw a vertical line to mark the mean \n", "plt.axvline(165, 0, 1, linewidth=3, color='b');\n", "# add text\n", "plt.text(165.1, 0.1,'Mean = 165', rotation=90, color='b');\n", "# draw a vertical line to mark the lower limit of the confidence intervall\n", "plt.axvline(164.304164, 0, 1, linewidth=3, color='r');\n", "# add text\n", "plt.text(164, 0.15,'Lower limit = 164.30 ', rotation=90, color='r');\n", "# draw a vertical line to mark the upper limit of the confidence intervall\n", "plt.axvline(165.695836, 0, 1, linewidth=3, color='r');\n", "plt.text(165.8, 0.15,'Upper limit = 165.69', rotation=90, color='r');" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "scrolled": true, "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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XrxYERERGjFiRDBKrldj+nj99dc1cOBADR06NBilNijQXq5evaoBAwZo0aJF6t27t1JTU7Vu3TrPIn4tQaC9HDlyRF26dFFaWppOnjypPn36aOnSpUGqun6NeY1JUmlpqTZv3qxt27bd6lL9akwfqampmjNnjrKystShQwdt3ry5yfPednv031ZbW6v9+/frmWeeUV5enioqKrR+/XrP7aWlpZo7d6769+9fZwG1lqahXmJiYnTo0CGNHDlSv/71r4NXaAN89fH5559r586dmj9/frBLDJivXu644w699tpruuuuuxQWFqY5c+aosLAw2OX65auXmpoaHT58WDNmzFB+fr569eqlFStWBLtcvxp6r2zdulWjR49W586dg1hlw3z1ce3aNS1ZskR/+MMftH//fs2cOVPPPvtsk+e57YO+S5cuGjp0qHr16qXQ0FCNGzdOx48flyT997//1cyZM3X33XfX+U3aEvnq5fLly9q/f79nu4kTJ+r06dNBrNQ/X31s375dly5d0pQpUzR37lzP89OS+erl/Pnz2rJli2c7y7LqrAHe0vjqpWvXrurdu7cGDx4sSYqNjfW8h1oqf+976fqJGOPHjw9ihYHx1cfnn3+udu3aeZaNmTZtmg4fPtzkeW77oB8xYoSKioo8x98/+OADDRo0SLW1tUpOTta4ceO0ZMmSOkskt0S+erEsS4sWLdL58+clSdu3b9fw4cODWapfvvpYsGCBduzYoXfffVfr169XRESE/vSnPwW5Wv989dK+fXu9+OKLKi4ulmVZ2rRpU51jxC2Nr16GDRumkpISnTp1SpJUUFCgQYMGBbPUBvnqRbr+S7eoqEjDhg0LZokB8dVH79695XQ6debMGUnX15i/8Yu4KVr2LkgAunfvrmXLlik5OVmVlZUaMGCAnn32WRUUFOizzz5TbW2tduzYIUm65557WvSeva9eOnTooMzMTM2bN08hISHq27evfvOb3wS7XJ989XE78vecLFu2TE888YSqq6s1fPhwPfbYY8Eu1y9fvbRv316/+93vlJ6eroqKCkVGRio7OzvY5frl7zVWUlKi8PBwtWvXLshVNszf6+uFF17QwoULZVmWOnfurKysrCbPwxIIAGC42/7QDQDAP4IeAAxH0AOA4Qh6ADAcQQ8AhiPo0eocOnSo0SsaPv744/rnP//pd5vU1FRt2LCh3ttycnK0e/fuRs0JNJfb/jx64FZ47bXXbur+hw4dUt++fZupGqBxCHq0SuXl5Z6FpCorK7V8+XINGTJEL730ko4cOaLa2loNHDhQ6enp6tSpk0aNGqVXXnlFgwcP1vr167Vlyxbdcccduu+++7Rnzx4VFBRIur62+PTp0/XVV1+pX79+WrlypfLz83XixAllZ2crNDS0xX+CFubh0A1aJafTqV/84hd69913NX36dK1du1br169XaGio8vLytHXrVkVEROill17yut++ffuUl5enLVu2KC8vz7OM7A0XL17Uxo0btWPHDl28eFE7d+5UYmKi7rnnHi1evJiQR1CwR49WqVevXp6lkvv376933nlHe/fuVWlpqQ4ePChJqq6urrP6YWFhocaOHev5PoDExER9/PHHnttHjx6tDh06SJL69eunkpKSW9EO4BdBj1YpPDzcczkkJESWZcntdistLU0xMTGSpKtXr9b5MpGwsDB9c9WQ0NDQOrd/+3GBYOPQDfC1ESNGaNOmTaqqqpLb7dbSpUu1atUqr21iYmK0c+dOlZaWSpLXUsX+hIaGqqamptlrBgJB0ANfmz9/vnr06KG4uDiNHz9elmV5fWuRJEVFRWnq1KmaNm2a4uPjVVpa6jlU48+oUaO0atUq5efn21U+4BOrVwKN8I9//EOffvqpZs+eLUnauHGjjh07ppdffjm4hQF+EPRAI5SVlSktLU1nzpxRSEiIunfvrszMTM+X0AMtEUEPAIbjGD0AGI6gBwDDEfQAYDiCHgAMR9ADgOEIegAw3P8BWvFI3xSMj/oAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# compare CI z-statistic with t-statistic\n", "# draw limits of confidence intervall\n", "plt = sns.histplot(x=\"height\", data=df, bins=5);\n", "# draw a vertical line to mark the mean \n", "plt.axvline(165, 0, 1, linewidth=3, color='b');\n", "# add text\n", "# draw vertical lines to mark the lower/upper limit of the confidence intervall (z)\n", "plt.axvline(164.348388, 0, 1, linewidth=3, color='w');\n", "plt.axvline(165.651612, 0, 1, linewidth=3, color='w');\n", "# draw vertical lines to mark the lower/upper limit of the confidence intervall (t)\n", "plt.axvline(164.304164, 0, 1, linewidth=3, color='r');\n", "plt.axvline(165.695836, 0, 1, linewidth=3, color='r');" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Additional measures" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "When fitting models, it is possible to increase the likelihood by adding parameters, but doing so may result in overfitting. \n", "\n", "Both the Bayesian information criterion (**BIC**) (also called the Schwarz criterion SBC or SBIC) and Akaike information criterion (**AIC**) attempt to resolve this problem by introducing a penalty term for the number of parameters in the model; the penalty term is larger in BIC than in AIC. \n", "\n", "Both measures are an estimator of the **relative quality** of statistical models for a given set of data. Hence, they are used to select the best performing model. \n", "\n", "For both measures, **lower** values are better" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Bayesian information criterion (BIC) " ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "scrolled": true, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "41.980585438104086" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# BIC\n", "lm.bic" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Akaike information criterion (AIC) " ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "39.989120890996105" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# AIC\n", "lm.aic" ] } ], "metadata": { "celltoolbar": "Slideshow", "interpreter": { "hash": "463226f144cc21b006ce6927bfc93dd00694e52c8bc6857abb6e555b983749e9" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }