{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TP3 - Outils numériques pour les Statistiques Descriptives \n",
    "\n",
    "Rappel : les commandes écrites en Python s'exécutent directement dans ce notebook Jupyter avec la commande `Ctrl+Entrée`, ou `Shift+Entrée` pour passer directement à la cellule suivante.\n",
    "\n",
    "Le but de ce TP3 est d’effectuer des calculs et de tracer des graphiques sur plusieurs sous-\n",
    "groupes, parfois appelés **classes** ou **strates**, d’une même population afin de comparer ces sous-groupes, entre eux ou à la population totale."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# On importe tous les noms des bibliothèques qui nous seront utiles.\n",
    "from pandas import *  # Pour lire, importer et manipuler le tableau de données.\n",
    "from numpy import *  # pour faire des calculs.\n",
    "from matplotlib.pylab import * # Pour faire des graphiques"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(181, 14)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Country</th>\n",
       "      <th>SDGi</th>\n",
       "      <th>Life Expectancy</th>\n",
       "      <th>HDI</th>\n",
       "      <th>Per Capita GDP</th>\n",
       "      <th>Region</th>\n",
       "      <th>Income Group</th>\n",
       "      <th>Population (millions)</th>\n",
       "      <th>Total Ecological Footprint (Production)</th>\n",
       "      <th>Total Ecological Footprint (Consumption)</th>\n",
       "      <th>Total biocapacity</th>\n",
       "      <th>Ecological (Deficit) or Reserve</th>\n",
       "      <th>Number of Earths required</th>\n",
       "      <th>Number of Countries required</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Afghanistan</td>\n",
       "      <td>51.847886</td>\n",
       "      <td>63.565</td>\n",
       "      <td>0.488</td>\n",
       "      <td>2439.68</td>\n",
       "      <td>Middle East/Central Asia</td>\n",
       "      <td>LI</td>\n",
       "      <td>38.042</td>\n",
       "      <td>0.750444</td>\n",
       "      <td>0.885011</td>\n",
       "      <td>0.578479</td>\n",
       "      <td>-0.306532</td>\n",
       "      <td>0.570763</td>\n",
       "      <td>1.529894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Albania</td>\n",
       "      <td>71.486061</td>\n",
       "      <td>79.282</td>\n",
       "      <td>0.81</td>\n",
       "      <td>13862.6</td>\n",
       "      <td>Other Europe</td>\n",
       "      <td>UM</td>\n",
       "      <td>2.881</td>\n",
       "      <td>1.566569</td>\n",
       "      <td>2.102276</td>\n",
       "      <td>1.124433</td>\n",
       "      <td>-0.977842</td>\n",
       "      <td>1.355804</td>\n",
       "      <td>1.869631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Algeria</td>\n",
       "      <td>70.510917</td>\n",
       "      <td>76.474</td>\n",
       "      <td>0.748</td>\n",
       "      <td>11412.2</td>\n",
       "      <td>Africa</td>\n",
       "      <td>UM</td>\n",
       "      <td>43.053</td>\n",
       "      <td>1.812774</td>\n",
       "      <td>2.367408</td>\n",
       "      <td>0.702314</td>\n",
       "      <td>-1.665094</td>\n",
       "      <td>1.526794</td>\n",
       "      <td>3.370868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Angola</td>\n",
       "      <td>50.974803</td>\n",
       "      <td>62.448</td>\n",
       "      <td>0.595</td>\n",
       "      <td>7034.84</td>\n",
       "      <td>Africa</td>\n",
       "      <td>LM</td>\n",
       "      <td>31.825</td>\n",
       "      <td>0.686062</td>\n",
       "      <td>1.006983</td>\n",
       "      <td>1.738573</td>\n",
       "      <td>0.731590</td>\n",
       "      <td>0.649426</td>\n",
       "      <td>0.579201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Antigua and Barbuda</td>\n",
       "      <td>NaN</td>\n",
       "      <td>78.691</td>\n",
       "      <td>0.8</td>\n",
       "      <td>22000.2</td>\n",
       "      <td>Central America/Caribbean</td>\n",
       "      <td>HI</td>\n",
       "      <td>0.097</td>\n",
       "      <td>1.541982</td>\n",
       "      <td>3.919553</td>\n",
       "      <td>0.931722</td>\n",
       "      <td>-2.987832</td>\n",
       "      <td>2.527807</td>\n",
       "      <td>4.206785</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               Country       SDGi Life Expectancy    HDI Per Capita GDP  \\\n",
       "0          Afghanistan  51.847886          63.565  0.488        2439.68   \n",
       "1              Albania  71.486061          79.282   0.81        13862.6   \n",
       "2              Algeria  70.510917          76.474  0.748        11412.2   \n",
       "3               Angola  50.974803          62.448  0.595        7034.84   \n",
       "4  Antigua and Barbuda        NaN          78.691    0.8        22000.2   \n",
       "\n",
       "                      Region Income Group  Population (millions)  \\\n",
       "0   Middle East/Central Asia           LI                 38.042   \n",
       "1               Other Europe           UM                  2.881   \n",
       "2                     Africa           UM                 43.053   \n",
       "3                     Africa           LM                 31.825   \n",
       "4  Central America/Caribbean           HI                  0.097   \n",
       "\n",
       "   Total Ecological Footprint (Production)  \\\n",
       "0                                 0.750444   \n",
       "1                                 1.566569   \n",
       "2                                 1.812774   \n",
       "3                                 0.686062   \n",
       "4                                 1.541982   \n",
       "\n",
       "   Total Ecological Footprint (Consumption)  Total biocapacity   \\\n",
       "0                                  0.885011            0.578479   \n",
       "1                                  2.102276            1.124433   \n",
       "2                                  2.367408            0.702314   \n",
       "3                                  1.006983            1.738573   \n",
       "4                                  3.919553            0.931722   \n",
       "\n",
       "   Ecological (Deficit) or Reserve  Number of Earths required  \\\n",
       "0                        -0.306532                   0.570763   \n",
       "1                        -0.977842                   1.355804   \n",
       "2                        -1.665094                   1.526794   \n",
       "3                         0.731590                   0.649426   \n",
       "4                        -2.987832                   2.527807   \n",
       "\n",
       "   Number of Countries required  \n",
       "0                      1.529894  \n",
       "1                      1.869631  \n",
       "2                      3.370868  \n",
       "3                      0.579201  \n",
       "4                      4.206785  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Importation des données dans un dataframe\n",
    "df = read_excel('footprint.xlsx')\n",
    "print(shape(df)) # Affiche le nombre de pays et le nombre de variables (en\n",
    "# comptabilisant le nom du pays comme une variable).\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 0\n",
    "Chercher les définitions de chacune des variables et exécuter le bloc suivant visant à renommer les colonnes pour plus de simplicité."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PAYS</th>\n",
       "      <th>SDG</th>\n",
       "      <th>LIFE</th>\n",
       "      <th>HDI</th>\n",
       "      <th>GDP</th>\n",
       "      <th>REG</th>\n",
       "      <th>IC</th>\n",
       "      <th>POP</th>\n",
       "      <th>PROD</th>\n",
       "      <th>CONSU</th>\n",
       "      <th>BCAP</th>\n",
       "      <th>ECO</th>\n",
       "      <th>NEARTH</th>\n",
       "      <th>NCOUNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Afghanistan</td>\n",
       "      <td>51.847886</td>\n",
       "      <td>63.565</td>\n",
       "      <td>0.488</td>\n",
       "      <td>2439.68</td>\n",
       "      <td>Middle East/Central Asia</td>\n",
       "      <td>LI</td>\n",
       "      <td>38.042</td>\n",
       "      <td>0.750444</td>\n",
       "      <td>0.885011</td>\n",
       "      <td>0.578479</td>\n",
       "      <td>-0.306532</td>\n",
       "      <td>0.570763</td>\n",
       "      <td>1.529894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Albania</td>\n",
       "      <td>71.486061</td>\n",
       "      <td>79.282</td>\n",
       "      <td>0.81</td>\n",
       "      <td>13862.6</td>\n",
       "      <td>Other Europe</td>\n",
       "      <td>UM</td>\n",
       "      <td>2.881</td>\n",
       "      <td>1.566569</td>\n",
       "      <td>2.102276</td>\n",
       "      <td>1.124433</td>\n",
       "      <td>-0.977842</td>\n",
       "      <td>1.355804</td>\n",
       "      <td>1.869631</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Algeria</td>\n",
       "      <td>70.510917</td>\n",
       "      <td>76.474</td>\n",
       "      <td>0.748</td>\n",
       "      <td>11412.2</td>\n",
       "      <td>Africa</td>\n",
       "      <td>UM</td>\n",
       "      <td>43.053</td>\n",
       "      <td>1.812774</td>\n",
       "      <td>2.367408</td>\n",
       "      <td>0.702314</td>\n",
       "      <td>-1.665094</td>\n",
       "      <td>1.526794</td>\n",
       "      <td>3.370868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Angola</td>\n",
       "      <td>50.974803</td>\n",
       "      <td>62.448</td>\n",
       "      <td>0.595</td>\n",
       "      <td>7034.84</td>\n",
       "      <td>Africa</td>\n",
       "      <td>LM</td>\n",
       "      <td>31.825</td>\n",
       "      <td>0.686062</td>\n",
       "      <td>1.006983</td>\n",
       "      <td>1.738573</td>\n",
       "      <td>0.731590</td>\n",
       "      <td>0.649426</td>\n",
       "      <td>0.579201</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Antigua and Barbuda</td>\n",
       "      <td>NaN</td>\n",
       "      <td>78.691</td>\n",
       "      <td>0.8</td>\n",
       "      <td>22000.2</td>\n",
       "      <td>Central America/Caribbean</td>\n",
       "      <td>HI</td>\n",
       "      <td>0.097</td>\n",
       "      <td>1.541982</td>\n",
       "      <td>3.919553</td>\n",
       "      <td>0.931722</td>\n",
       "      <td>-2.987832</td>\n",
       "      <td>2.527807</td>\n",
       "      <td>4.206785</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  PAYS        SDG    LIFE    HDI      GDP  \\\n",
       "0          Afghanistan  51.847886  63.565  0.488  2439.68   \n",
       "1              Albania  71.486061  79.282   0.81  13862.6   \n",
       "2              Algeria  70.510917  76.474  0.748  11412.2   \n",
       "3               Angola  50.974803  62.448  0.595  7034.84   \n",
       "4  Antigua and Barbuda        NaN  78.691    0.8  22000.2   \n",
       "\n",
       "                         REG  IC     POP      PROD     CONSU      BCAP  \\\n",
       "0   Middle East/Central Asia  LI  38.042  0.750444  0.885011  0.578479   \n",
       "1               Other Europe  UM   2.881  1.566569  2.102276  1.124433   \n",
       "2                     Africa  UM  43.053  1.812774  2.367408  0.702314   \n",
       "3                     Africa  LM  31.825  0.686062  1.006983  1.738573   \n",
       "4  Central America/Caribbean  HI   0.097  1.541982  3.919553  0.931722   \n",
       "\n",
       "        ECO    NEARTH    NCOUNT  \n",
       "0 -0.306532  0.570763  1.529894  \n",
       "1 -0.977842  1.355804  1.869631  \n",
       "2 -1.665094  1.526794  3.370868  \n",
       "3  0.731590  0.649426  0.579201  \n",
       "4 -2.987832  2.527807  4.206785  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# On renomme les noms des colonnes.\n",
    "colonnes = [\n",
    "    \"PAYS\",\"SDG\",\"LIFE\",\"HDI\",\"GDP\",\"REG\",\"IC\",\"POP\",\n",
    "    \"PROD\",\"CONSU\",\"BCAP\",\"ECO\",\"NEARTH\",\"NCOUNT\"\n",
    "]\n",
    "df.columns = colonnes\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 1 \n",
    "\n",
    "**Question 1.** La classe dataframe de la bibliothèque Panda permet de sélectionner des données de\n",
    "manière assez simple et intuitive, et de faire des calculs. Exécuter les cellules ci-dessous et observer les résultats. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Voici les 3 premières lignes de df:\n",
      "          PAYS        SDG    LIFE    HDI      GDP                       REG  \\\n",
      "0  Afghanistan  51.847886  63.565  0.488  2439.68  Middle East/Central Asia   \n",
      "1      Albania  71.486061  79.282   0.81  13862.6              Other Europe   \n",
      "2      Algeria  70.510917  76.474  0.748  11412.2                    Africa   \n",
      "\n",
      "   IC     POP      PROD     CONSU      BCAP       ECO    NEARTH    NCOUNT  \n",
      "0  LI  38.042  0.750444  0.885011  0.578479 -0.306532  0.570763  1.529894  \n",
      "1  UM   2.881  1.566569  2.102276  1.124433 -0.977842  1.355804  1.869631  \n",
      "2  UM  43.053  1.812774  2.367408  0.702314 -1.665094  1.526794  3.370868  \n",
      "Voici les 3 premières lignes de la colonne POP de df:\n",
      "0    38.042\n",
      "1     2.881\n",
      "2    43.053\n",
      "Name: POP, dtype: float64\n",
      "Voici la colonne POP des 3 premières lignes de df:\n",
      "0    38.042\n",
      "1     2.881\n",
      "2    43.053\n",
      "Name: POP, dtype: float64\n",
      "Le type de pop est <class 'pandas.Series'> et le type de X est <class 'numpy.ndarray'>\n",
      "Comparer les 3 premières lignes de pop ci-dessous ...\n",
      "0    38.042\n",
      "1     2.881\n",
      "2    43.053\n",
      "Name: POP, dtype: float64\n",
      "... avec les 3 premières lignes de X ci-dessous :\n",
      "[38.042  2.881 43.053]\n"
     ]
    }
   ],
   "source": [
    "# Exécuter, observer les lignes d'instruction ci-dessous\n",
    "print(\"Voici les 3 premières lignes de df:\")\n",
    "print(df[0:3])\n",
    "print(\"Voici les 3 premières lignes de la colonne POP de df:\")\n",
    "print(df.POP[0:3])\n",
    "print(\"Voici la colonne POP des 3 premières lignes de df:\")\n",
    "print(df[0:3].POP)\n",
    "pop = df.POP\n",
    "X = df.POP.values\n",
    "print(\"Le type de pop est\", type(pop), \"et le type de X est\", type(X))\n",
    "print(\"Comparer les 3 premières lignes de pop ci-dessous ...\")\n",
    "print(pop[0:3])\n",
    "print(\"... avec les 3 premières lignes de X ci-dessous :\")\n",
    "print(X[0:3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "42.39262430939226 23380.918212974877\n",
      "42.39262430939226 23380.918212974877\n"
     ]
    }
   ],
   "source": [
    "# Exécuter, observer et commenter les lignes d'instruction ci-dessous\n",
    "print(mean(df.POP), var(df.POP))\n",
    "print(mean(X), var(X))\n",
    "# Commentaire. Les fonctions mean et var de numpy s'appliquent indistinctement\n",
    "# sur des pandas.Series et sur des numpy.ndarray."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Que se passe-t-il avec l'instruction ci-dessous? Commenter.\n",
    "#print(mean(df.REG.values)) # On a pris soin de désactiver cette instruction.\n",
    "# L'instruction déclenche une erreur car elle est invalide. En effet, il n'est\n",
    "# pas possible de calculer la moyenne d'une variable qualitative (ici la\n",
    "# variable REG correspondant aux noms des régions (type chaîne de caractères))."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 2.** Observer dans la cellule ci-dessous l’utilisation des booléens pour sélectionner des données. Rappel : la variable POP donne la population en millions d’habitants."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "14\n",
      "                         PAYS        SDG       LIFE    HDI      GDP  \\\n",
      "11                 Bangladesh  63.417508     72.806  0.644  5113.78   \n",
      "21                     Brazil  72.682032     75.338  0.766  14799.5   \n",
      "33                      China  71.980012     77.968  0.762    15893   \n",
      "49                      Egypt  67.570268     71.358  0.735  11940.2   \n",
      "55                   Ethiopia  56.399547     65.838  0.498  2641.01   \n",
      "76                      India   60.38518      70.91  0.645  6683.45   \n",
      "77                  Indonesia  68.416705     70.518  0.716  11976.5   \n",
      "84                      Japan  79.319742  84.356341  0.924  41723.6   \n",
      "107                    Mexico  70.337857     74.202  0.779  19925.8   \n",
      "119                   Nigeria  54.066445      52.91  0.538  5135.49   \n",
      "122                  Pakistan  59.151852     66.756  0.546  5412.61   \n",
      "127               Philippines   66.66352     71.865  0.718  8983.41   \n",
      "135        Russian Federation  73.696452  73.083902  0.845  27341.1   \n",
      "172  United States of America  74.402211  78.787805   0.93  62417.6   \n",
      "\n",
      "               REG  IC       POP      PROD     CONSU      BCAP       ECO  \\\n",
      "11    Asia-Pacific  LI   163.046  0.485815  0.708539  0.252668 -0.455870   \n",
      "21   South America  UM   211.050  3.322804  2.600708  8.294001  5.693293   \n",
      "33    Asia-Pacific  UM  1465.634  3.230469  3.510020  0.798626 -2.711394   \n",
      "49          Africa  LM   100.388  1.081353  1.617001  0.314186 -1.302815   \n",
      "55          Africa  LI   112.079  0.865362  0.903794  0.478106 -0.425688   \n",
      "76    Asia-Pacific  LM  1366.418  1.017207  1.069030  0.355736 -0.713294   \n",
      "77    Asia-Pacific  LM   270.626  1.845979  1.683977  1.246901 -0.437076   \n",
      "84    Asia-Pacific  HI   126.860  3.381101  4.235759  0.631134 -3.604625   \n",
      "107  North America  UM   127.576  2.114546  2.520611  1.243432 -1.277179   \n",
      "119         Africa  LM   200.964  0.768103  0.850849  0.480522 -0.370328   \n",
      "122   Asia-Pacific  LM   216.565  0.690093  0.705300  0.366391 -0.338909   \n",
      "127   Asia-Pacific  LM   108.117  0.946925  1.283765  0.415587 -0.868178   \n",
      "135   Other Europe  UM   145.872  7.144748  5.816537  7.545711  1.729174   \n",
      "172  North America  HI   329.065  7.666494  7.776182  3.722449 -4.053733   \n",
      "\n",
      "       NEARTH    NCOUNT  \n",
      "11   0.456952  2.804223  \n",
      "21   1.677254  0.313565  \n",
      "33   2.263690  4.395076  \n",
      "49   1.042840  5.146639  \n",
      "55   0.582877  1.890362  \n",
      "76   0.689441  3.005125  \n",
      "77   1.086034  1.350530  \n",
      "84   2.731735  6.711350  \n",
      "107  1.625598  2.027140  \n",
      "119  0.548732  1.770679  \n",
      "122  0.454864  1.924992  \n",
      "127  0.827928  3.089044  \n",
      "135  3.751214  0.770840  \n",
      "172  5.015033  2.088996  \n",
      "11                   Bangladesh\n",
      "21                       Brazil\n",
      "33                        China\n",
      "49                        Egypt\n",
      "55                     Ethiopia\n",
      "76                        India\n",
      "77                    Indonesia\n",
      "84                        Japan\n",
      "107                      Mexico\n",
      "119                     Nigeria\n",
      "122                    Pakistan\n",
      "127                 Philippines\n",
      "135          Russian Federation\n",
      "172    United States of America\n",
      "Name: PAYS, dtype: str\n"
     ]
    }
   ],
   "source": [
    "# Commenter les lignes d'instruction en précisant ce qui est affiché.\n",
    "print(sum(df.POP>100))  # On affiche le nombre de pays qui ont plus de 100\n",
    "# millions d'habitants.\n",
    "print(df[df.POP>100])   # On affiche le pandas.DataFrame construit à partir de\n",
    "# df en ne gardant que les 14 pays de plus de 100 millions d'habitants.\n",
    "print(df.PAYS[df.POP>100])  # On affiche la colonne PAYS (pandas.Series) du\n",
    "# DataFrame précédent."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 3.** Pour la suite du TP, on va s'intéresser uniquement aux pays de plus d’un million d’habitants, et dans cette question plus particulièrement à la variable LIFE (Life expectancy: espérance de vie) sur l'ensemble de ces pays. Pour cela, commencer par définir un dataframe contenant uniquement les données d'intérêt puis compléter les \"print\" ci-dessous."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Nombre de pays de plus d'un million d'habitants : 153\n",
      "Moyenne de la variable LIFE pour ces pays : 72.16\n",
      "Ecart-type de la variable LIFE pour ces pays : 7.85\n",
      "Médiane de la variable LIFE pour ces pays : 73.2\n"
     ]
    }
   ],
   "source": [
    "dfsup1 = df[df.POP>1] # Toutes les données pour les pays de plus d'un million\n",
    "# d'habitants\n",
    "life = dfsup1.LIFE # la variable LIFE pour ces pays\n",
    "print(\"Nombre de pays de plus d'un million d'habitants :\", len(life)) \n",
    "print(\"Moyenne de la variable LIFE pour ces pays :\", round(mean(life), 2))\n",
    "print(\"Ecart-type de la variable LIFE pour ces pays :\", round(std(life), 2)) \n",
    "print(\"Médiane de la variable LIFE pour ces pays :\", round(median(life), 2)) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 2 - Boîte à moustaches\n",
    "\n",
    "On travaille dans cet exercice avec les **données restreintes aux pays de plus d'un million d'habitants**, donc avec le dataframe que vous avez défini précédemment. Cette restriction ne sera plus rappelée !"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 1.** Calculer la médiane et les quartiles de la variable LIFE puis tracer la boîte à moustaches de cette variable en utilisant la fonction `boxplot`. Commenter les résultats. Pour plus de détails, en particuliers concernant les moustaches, aller visiter la page http://python-simple.com/python-matplotlib/boxplot.php."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "65.876\n",
      "73.198\n",
      "78.002\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAG0CAYAAABue26rAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAJ9dJREFUeJzt3Qm0XVVhP+ATppDIPM8zmAAWAS0ilKEySBGZCg5gQSoyKVQRJbWIYoECtUutiqgVpOAAiqKoqIBIRaoMglJmZIaIIhAgDELOf/2O//PWfTf3vZeQ/ZKX3O9b6/F4dzrn7rvPPr+zh5txdV3XFQBAAQuVeBEAAMECAChKjwUAUIxgAQAUI1gAAMUIFgBAMYIFAFCMYAEAFCNYzIL777+/+uhHP1r99re/LVfyALAAEixG8Oc//7naf//9q9/85jfVJptsUvWjhKpx48YtsNudV+9vQXDllVc2ZZffc9vBBx9crbPOOtVYMJb2ZXY+q177ncfkmGidc845zW333ntvNVZ072MveV9vetObipffN7/5zQWiPvRtsGgr9FA///u//zvq+/DBD36wWnjhhavzzz+/WmihMV1cwBiSNiptWOvpp5+uTjzxxOqNb3xjtdxyy810P3N+rhirpk+f3gShuRXATznllOo73/lONa8sUs0HTjrppGrddded6fYNNthgVLf7xBNPVMsuu2z13e9+t5owYcKobouZ/cu//Et1/PHHKxoWCH/84x+btmyttdaqNttss7ney7PddttVzz77bLXYYovN1vPe8Y53VG9961ur8ePHj9q+LWi++MUvVjNmzBgULD72sY81/7/DDjvMlWDx93//99Vee+1VzQvzRbDYbbfdqte85jVzfbvLLLNM9ZGPfGS2nvPMM89Ur3jFK0Ztn/rJIoss0vzAgmDVVVetHnnkkWqVVVaprrvuuuq1r33tXN1+elwXX3zx2X5eemzzw6xbdNFF+7q4Fpi+/a9//evVlltuWS255JLVUkstVb3qVa+qPvWpT83UVXbVVVdVhx12WLX88ss3j/uHf/iH6vHHH5/p9X74wx9Wf/M3f9OEhLzm7rvvXv3f//3fTONoSyyxRHX33XdXf/d3f9c87oADDmju+5//+Z9qv/32a65OkvTXXHPN6n3ve19zxdDrNR566KEmXeb/V1xxxeoDH/hA9dJLLw16bBJw3lPeWxqIPC7dqmmkOp133nlNWaSXJV2uudp44IEHZqkcf/7znzcNXl5//fXXr84666whH/tytpPxyXwOP/vZz2a6L9vKfTfffPOwcx/G0vu78847q3333bc5WeQ111hjjeZxTz755LD7kauWTTfdtLr++uur17/+9c020iv3+c9/ftDjXnjhhSbcZj+WXnrppj6mXv70pz8deEz+geKM5+65554zbee5555rnpc63/rP//zPZr7QxIkTmx65hPavfvWrI5bdgw8+2NTR7MNKK63U1Ofnn3++52N/+ctfNnUz2852tt9+++rqq6+e5XHsb3zjG9U///M/N+Wa7b35zW8e8TMear5H5gZ0DztMnTq1euc739l8Xjk+c9JP+c3KPIJ0Meezy+ed39/+9rerWZHt5P28XG1bkcnkmTuQ/1999dWrz372s839mVz+t3/7t015rb322jN9pi93PsxQcyw+97nPNfUo72u11VarjjrqqKaXt1c9v+WWW6odd9yxqQvZ59NPP32Wtp36lXqWti7ta+pB6uHsyDH/13/9183ntd5661XnnnvuoPv/9Kc/Ne1t2tWUac4LuZi96aaber5e2uWR6ubBHXMsUm7Z/0ivRTuU384Ryfy9PD77ln3M6x5yyCHVY489Nug12/bwrrvuah6fC98cX6nH6RFp5TG5wP3KV74ysK08Pp566qnqn/7pn5p9y+eW43jnnXeubrjhhqqk+eJyMI10uhE7pbASDuInP/lJ9ba3va16wxveUJ122mnNbbfeemvTkB1zzDGDnvee97yn+UDyId1+++3VmWeeWd13330DB13893//d3XQQQdVu+66a/N6+dDyuG233bb69a9/PWhSzosvvtg8Lvf9+7//e3PgxIUXXtg874gjjmj281e/+lXToOegyH3dFTWvsdVWWzWvcdlll1Wf+MQnmhNfnt/6x3/8x+YgT6V/17ve1Ww7ASZzTdoenZNPPrk64YQTmgmnecwf/vCHZrvpBs2+570PJQ3TLrvs0hwEKZ+8fsaEV1555Zke+3K3k4CWg/eCCy5oTjadcjJJQ5WGaChj6f3lpJ/PLY3fe9/73qZBSEC85JJLmgY2B/1wEmgTSLON1N+UST7vdFWnYYlp06ZVX/rSl5r7Dz300KZh+K//+q9mu6lTr371q5t6e+CBBzaNdRrJhKDW9773veY1cn/bRXv00Uc33aQ5NhI80rAlCLz97W8fcl8TiHN85aSW5+dEkuPkiiuumOmxuS11NGEo5Zsr5bPPPrs56aW+ppEfSco/7+tDH/pQ9eijj1af/OQnq5122qm68cYbiwxLJgzmQiGfW47nbCPtSN7fcJPufvzjHzfP3XjjjatTTz21afzbgDI3pK1I2aYe5vPO3K+0aTnBffjDH24ubPbZZ58moOaiaeutt+45jDyncvzkJJnPJHW2bUuvvfbapt3tvGJPPU/IzH6lrufiIp9rTuR5L8PJsZeAn7qZAJ66lTZkVuUknLqetjNt+pe//OXmJJu62U7G/93vfteExVwIpqx+//vfNxccaZ8SiFLX56Rurrjiik3ZpJz23nvvphzir/7qr5rfqXfZh9SjtCGpl1/4whea32nbuy+uUobZz9S/BIK0DwkI7bkvx2XKLcfZu9/97ua2nEvi8MMPb8o/dSZ1OPU3wSvnyy222KIqph7Dzj777Dq72Otn/PjxA4875phj6qWWWqp+8cUXR3ytLbfcsn7hhRcGbj/99NOb2y+++OLm76eeeqpeZpll6kMPPXTQ86dOnVovvfTSg24/6KCDmucef/zxM21v+vTpM9126qmn1uPGjavvu+++mV7jpJNOGvTYzTffvNnX1hVXXNE87uijj57pdWfMmNH8vvfee+uFF164Pvnkkwfd/9vf/rZeZJFFZrq921577VUvvvjig/bvlltuaV6zs6rM6Xbe9ra31SuttNKgz+uRRx6pF1pooUHlcOKJJxbdbun39+tf/7p53oUXXljPru2337557ic+8YmB255//vn61a9+dVM2bR1NGeX2To8//ni98sor14cccsjAbbfffnvzemeeeeagx775zW+u11lnnYE6sueee9abbLLJbO/vJz/5yeb1L7jggoHbnnnmmXqDDTZobv/pT3/a3JbtbLjhhvWuu+46sM32eFh33XXrnXfeedjt5HXyequvvno9bdq0gduz3dz+qU99atCxs/baa8/03HZfWvfcc09ze9qAtvzy9xlnnDHb5ZDPZ9VVV62feOKJgdt+/OMfN6/XuS8jufbaawft06xo24pTTjll4La8lwkTJjTtyte//vWB22+77bbmsTmGhiuf7jKM7ue1bWfKMR599NF6scUWq3fZZZf6pZdeGnjcZz7zmeZxX/7yl2eq5+ee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MYIFAFCMYAEAFCNYAADFCBYAQDGCBQBQjGABABQjWAAAxQgWAEAxggUAUIxgAQAIFgDA2KPHAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwCgGMECAChGsAAAihEsAIBiBAsAoBjBAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwCgGMECAChGsAAAihEsAIBiBAsAoBjBAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwCgmEWquayu6+b3tGnT5vamAYCXqT1vt+fxMRMsnnrqqeb3mmuuObc3DQAUOI8vvfTSQ94/rh4pehQ2Y8aM6uGHH66WXHLJaty4cdWCkOASkh544IFqqaWWmte7M+YoH+Wj7ji2tD0LRrucuJBQsdpqq1ULLbTQ2OmxyM6sscYa1YImH45goXzUH8eWtmds0TaXLZvheipaJm8CAMUIFgBAMYLFHBo/fnx14oknNr9RPupPOY4t5aP+zJ/H1lyfvAkALLj0WAAAxQgWAEAxggUAUIxgAQAUI1jMgo9+9KPNt4R2/kyaNGng/h122GGm+w8//PCqnzz00EPVgQceWC2//PLVhAkTqle96lXVddddN3B/5gh/5CMfqVZdddXm/p122qm68847q34xUvkcfPDBM9WhN77xjVU/WGeddWZ67/k56qijmvufe+655v9TdksssUS17777Vr///e+rfjBS2fR72/PSSy9VJ5xwQrXuuus2x9X6669fffzjHx/0b1n0a9szK2UzWu3OXP/mzfnVJptsUl122WUDfy+yyOCiO/TQQ6uTTjpp4O+JEydW/eLxxx+vttlmm2rHHXesfvjDH1Yrrrhic+Auu+yyA485/fTTq09/+tPVV77ylaaip8Lvuuuu1S233FItvvjiVb+XT+SAPvvsswf+7pclzNdee23TCLZuvvnmauedd67222+/5u/3ve991fe///3qwgsvbL717z3veU+1zz77VFdffXXV72XT723PaaedVp155plNu5I2OmH9ne98Z1NPjj766L5ue06bhbIZtXYny00Z3oknnlhvttlmQ96//fbb18ccc0zfFuOHPvShettttx3y/hkzZtSrrLJKfcYZZwzc9sQTT9Tjx4+vv/a1r9X9Xj5x0EEH1Xvuuedc26exLMfS+uuv39Sb1JNFF120vvDCCwfuv/XWW3PJVV9zzTV1P5dN9Hvbs/vuu9eHHHLIoNv22Wef+oADDqj7ve3ZfYSyGc12x1DILMoVZv7hlfXWW6864IADqvvvv3/Q/eeff361wgorVJtuumk1ZcqUavr06VW/+O53v1u95jWvaa6iVlpppWrzzTevvvjFLw7cf88991RTp05tuiBbSc1bbbVVdc0111T9Xj6tK6+8srn/la98ZXXEEUdUjz32WNVvXnjhheq8886rDjnkkKZb9vrrr6/+/Oc/D6o7GYZca621+qLuDFc2rX5ue17/+tdXl19+eXXHHXc0f990003Vz3/+82q33Xar+r3tef0IZTOq7U7xqLIA+sEPflBfcMEF9U033VRfeuml9dZbb12vtdZa9bRp05r7zzrrrOb23/zmN/V5551Xr7766vXee+9d94uk//xMmTKlvuGGG5ryWHzxxetzzjmnuf/qq69urjAffvjhQc/bb7/96v3337/u9/KJXD1dfPHFTR369re/XU+ePLl+7WtfW7/44ot1P/nGN75RL7zwwvVDDz3U/H3++efXiy222EyPS9l88IMfrPu5bKLf256XXnqp6REcN25cvcgiizS/TznllIH7+7nteWmEshnNdkeweBkef/zxeqmllqq/9KUv9bz/8ssvbyrzXXfdVfeDdFUnbHV673vfW7/uda+r+/3gnpXy6eXuu+9uyuyyyy6r+8kuu+xSv+lNbxr4W7AYumx66be2JyfGNdZYo/mdk+O5555bL7fcci5q6pHLZjTbHUMhL8MyyyxTbbTRRtVdd93V8/50s8VQ9y9oMtt64403HnTb5MmTB4aLVlllleZ390z+/N3e18/l00uG3NK93S91KO67775mgvS73vWugdtSPzIE8MQTT/Rl3RmubHrpt7bnuOOOq44//vjqrW99a7PS6h3veEcz2ffUU0+t+r3tOW6EshnNdkeweBmefvrp6u67725OGL3ceOONze+h7l/QZMXD7bffPui2jOutvfbazf9nJnYO4oz3taZNm1b98pe/rLbeeuuq38unlwcffLAZ6+yXOhSZmZ6x3t13333gti233LJadNFFB9WdlGVCWT/UneHKppd+a3syn2ShhQafxhZeeOFqxowZVb+3PdNHKJtRbXfmqL+jTxx77LH1lVdeWd9zzz1Nt/5OO+1Ur7DCCvWjjz7adDmedNJJ9XXXXdfcn/Gq9dZbr95uu+3qfvGrX/2qGcM7+eST6zvvvLPpvp44cWIz5tv6t3/7t3qZZZYZGM/LTOR11123fvbZZ+t+L5+nnnqq/sAHPtCsckgdSjfkFltsUW+44Yb1c889V/eDjAdn3lLGhLsdfvjhzX1XXHFFc5xlWKl7aKkfy0bb85dVDZlXcskllzTHzkUXXdS0zZ3zb/q17TlohLIZzXZHsJgFb3nLW+pVV121mUSWDyp/t2OY999/fxMiMnaVCXobbLBBfdxxx9VPPvlk3U++973v1ZtuumlTBpMmTaq/8IUvDLo/y75OOOGEeuWVV24e84Y3vKG+/fbb634xXPlMnz69GT9fccUVm/kYa6+9dn3ooYfWU6dOrfvFj370o2Zst1edyAngyCOPrJdddtkmkGVy4iOPPFL3e9loe+pmAn2W2yZ4ZUJ0Luo+/OEP188//3zd723PtBHKZjTbHf9sOgBQjDkWAEAxggUAUIxgAQAUI1gAAMUIFgBAMYIFAFCMYAEAFCNYAADFCBYAQDGCBQBQjGABABQjWAAAVSn/D3pw1TfVdbFFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Calculer la médiane et les quartiles\n",
    "print(quantile(life, 0.25))\n",
    "print(quantile(life, 0.5))\n",
    "print(quantile(life, 0.75))\n",
    "# Tracer la boîte à moustaches \n",
    "boxplot([life], vert=False)\n",
    "title(\"Espérance de vie des pays de plus d'1 million d'habitants\")\n",
    "show()\n",
    "# Commenter. La boîte au centre du diagramme indique de gauche à droite par un\n",
    "# trait vertical le premier quartile (Q1), la médiane et le troisième quartile\n",
    "# (Q3)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAG0CAYAAABue26rAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAKsBJREFUeJzt3QeUFFX+9vE7ZJCogGAgijKKi4KuEhRZMS1GEAzgoqyYwxpQ0VUUV1hl9ahrQl1FFyOKCTMomDAAgrKSVEQkiAGYUZJAvee5/mve6p6enp6ZX8/0TH8/54wj3dVV1bdv3Xrq3ls9OUEQBA4AAMBANYuVAAAAECwAAIApeiwAAIAZggUAADBDsAAAAGYIFgAAwAzBAgAAmCFYAAAAMwSLFHz77bfu+uuvd59//rldyQMAUAURLIrx22+/uYEDB7rPPvvM7bXXXi4bKVTl5ORU2e1W1PurCqZNm+bLTr/L2+mnn+7atGnjMkEm7UtJPqtE+61ldEyExo8f7x/75ptvXKaI38dE9L6OPvpo8/J75plnqkR9yNpgEVboon4+/PDDtO/DFVdc4apXr+4ee+wxV61aRhcXgAyiNkptWOiXX35xI0eOdEceeaTbfvvtCz2Psp8rMtX69et9ECqvAD569Gj3/PPPu4pSw1UCo0aNcm3bti30+G677ZbW7a5du9Y1adLEvfjii65u3bpp3RYK+/vf/+6uuuoqigZVwo8//ujbslatWrnOnTuXey/PwQcf7DZs2OBq1apVoteddtpp7uSTT3a1a9dO275VNQ888IDbtm1bTLC44YYb/P8fcsgh5RIsTjzxRHf88ce7ilApgsVRRx3l9ttvv3LfbuPGjd11111Xotf8+uuvbrvttkvbPmWTGjVq+B+gKmjZsqVbuXKla9GihZs5c6bbf//9y3X76nGtU6dOiV+nHlv9IHU1a9bM6uKqMn37Tz75pOvatatr0KCBa9iwodt7773dHXfcUair7J133nFnn32222GHHfxyf/nLX9yaNWsKre/VV191Bx10kA8JWmffvn3d//73v0LjaPXr13dfffWV+/Of/+yXGzRokH/u3XffdQMGDPBXJ0r6u+66q7vkkkv8FUOidSxfvtynS/1/s2bN3OWXX+62bt0as6wSsN6T3psaCC2nblU1UlETJkzwZaFeFnW56mpj2bJlKZXje++95xs8rb99+/Zu3LhxRS5bmu1ofFKfw/Tp0ws9p23puXnz5iWd+5BJ72/x4sWuf//+/mShde6yyy5+uXXr1iXdD121dOrUyc2aNct1797db0O9cvfdd1/Mcps3b/bhVvvRqFEjXx9VL99+++2CZfQHijWee9xxxxXazsaNG/3rVOdD//73v/18oXr16vkeOYX2xx9/vNiy++6773wd1T40b97c1+dNmzYlXPajjz7ydVPb1nZ69erl3n///ZTHsZ966il39dVX+3LV9o499thiP+Oi5ntobkD8sMOqVavcGWec4T8vHZ866av8UplHoC5mfXb6vPX7ueeec6nQdvR+SitsKzSZXHMH9P8777yzu/vuu/3zmlz+pz/9yZdX69atC32mpZ0PU9Qci3vuucfXI72vnXbayZ1//vm+lzdRPf/iiy9c7969fV3QPt9yyy0pbVv1S/VMbZ3aV9UD1cOS0DH/xz/+0X9e7dq1c48++mjM8z///LNvb9Wuqkx1XtDF7Ny5cxOuT+1ycXXz9MgcC5Wb9l/UaxEO5YdzRDR/T8tr37SPWu/QoUPdTz/9FLPOsD388ssv/fK68NXxpXqsHpGQltEF7iOPPFKwLS0v+fn57m9/+5vfN31uOo4PO+wwN3v2bGepUlwOqpFWN2KUCkvhQN588013yimnuEMPPdTdfPPN/rH58+f7huziiy+Oed0FF1zgPxB9SAsXLnT33nuvW7p0acFBJ//973/dkCFD3BFHHOHXpw9Ny/Xs2dN9+umnMZNytmzZ4pfTc//617/8gSMTJ070rzv33HP9fn788ce+QddBoefiK6rWccABB/h1TJkyxd16663+xKfXh/7617/6g1yV/swzz/TbVoDRXJOwR+emm25y1157rZ9wqmV++OEHv111g2rf9d6Loobp8MMP9weBykfr15jwjjvuWGjZ0m5HAU0H79NPP+1PNlE6maihUkNUlEx6fzrp63NT43fhhRf6BkEBcfLkyb6B1UGfjAKtAqm2ofqrMtHnra5qNSySl5fnHnzwQf/8sGHDfMPwn//8x29XdWqfffbx9Xbw4MG+sVYjqRAUeumll/w69HzYRXvRRRf5blIdGwoeatgUBE499dQi91WBWMeXTmp6vU4kOk7eeuutQsvqMdVRhSGVr66UH374YX/SU31VI18clb/e15VXXulWr17tbr/9dtenTx83Z84ck2FJhUFdKOhz0/Gsbagd0ftLNunujTfe8K/dc8893ZgxY3zjHwaU8qC2QmWreqjPW3O/1KbpBHfNNdf4C5t+/fr5gKqLpm7duiUcRi4rHT86SeozUZ0N29JPPvnEt7vRK3bVc4VM7Zfqui4u9LnqRK73koyOPQV81U0FcNUttSGp0klYdV1tp9r0hx56yJ9kVTfDyfhff/21D4u6EFRZff/99/6CQ+2TApHqelnqZrNmzXzZqJxOOOEEXw7yhz/8wf9WvdM+qB6pDVG9vP/++/1vte3xF1cqQ+2n6p8CgdoHBYTw3KfjUuWm4+yss87yj+lcIuecc44vf9UZ1WHVXwUvnS+7dOnizAQZ7OGHHw60i4l+ateuXbDcxRdfHDRs2DDYsmVLsevq2rVrsHnz5oLHb7nlFv/4Cy+84P+dn58fNG7cOBg2bFjM61etWhU0atQo5vEhQ4b411511VWFtrd+/fpCj40ZMybIyckJli5dWmgdo0aNill233339fsaeuutt/xyF110UaH1btu2zf/+5ptvgurVqwc33XRTzPOff/55UKNGjUKPxzv++OODOnXqxOzfF1984dcZrSpl3c4pp5wSNG/ePObzWrlyZVCtWrWYchg5cqTpdq3f36effupfN3HixKCkevXq5V976623Fjy2adOmYJ999vFlE9ZRlZEej1qzZk2w4447BkOHDi14bOHChX599957b8yyxx57bNCmTZuCOnLccccFe+21V4n39/bbb/frf/rppwse+/XXX4PddtvNP/7222/7x7SdDh06BEcccUTBNsPjoW3btsFhhx2WdDtaj9a38847B3l5eQWPa7t6/I477og5dlq3bl3oteG+hJYsWeIfVxsQlp/+PXbs2BKXgz6fli1bBmvXri147I033vDri+5LcT755JOYfUpF2FaMHj264DG9l7p16/p25cknnyx4fMGCBX5ZHUPJyie+DCX+dWHbqXKU1atXB7Vq1QoOP/zwYOvWrQXL3XXXXX65hx56qFA9f/TRRwseU31u0aJF0L9//6Tvd86cOf615513Xszjp556aqF9TETvS8u98847BY9p33XuuOyyywoe27hxY8z7EL1XLRdtj8pSN3/44Yci9znRueKJJ54otO9hexg97uWEE04Idthhh5jHtttuO78P8XQOO//884N0qxRD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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Remarque. Les \"moustaches\" (traits horizontaux à gauche et à droite de la\n",
    "# boîte sont tracées en utilisant la distance interquartile IQ = Q3 - Q1.\n",
    "# - L'extrémité de la moustache gauche est placée par défaut à Q1 - 1.5IQ (ou\n",
    "#   au minimum de la série si min > Q1 - 1.5IQ)\n",
    "# - L'extrémité de la moustache droite est placée par défaut au Q3 + 1.5IQ (ou\n",
    "#   au maximum de la série si max < Q1 - 1.5IQ)\n",
    "# On peut changer arbitrairement 1.5 par un autre facteur comme ci-dessous où\n",
    "# 1.5 a été remplacé par 0.5 grâce au paramètre whis :\n",
    "boxplot([life], vert=False, whis=0.5) # whiskers signifie moustache\n",
    "title(\"Espérance de vie des pays de plus d'1 million d'habitants\")\n",
    "show()\n",
    "# Les points sortant des moustaches sont représentés par des cercles. Avec la\n",
    "# convention par défaut whis=1.5, on considères ces points comme anormaux. Ils\n",
    "# sont dits outliers en anglais. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 2.** Calculer la médiane et les quartiles de la variable POP (sur tous les pays ou sur ceux de plus d'un million d'habitants, peu importe), tracer sa boîte à moustaches. Que constatez-vous ? "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.379\n",
      "11.539\n",
      "37.411\n"
     ]
    },
    {
     "data": {
      "image/png": "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gvDFF1+81XXzuuuuC+FPofTuu+8Oz+lYTrdNjVP41TI6ttRG3H777aGN/fbbb8P7oOcXLVoULm5UN+P0nNajOhyVX22sgp+Og6zlkfDEE0947ZK33nrL//zzz37BggX+ueee83Xr1vVVqlTxP/zwg581a1ZY5pxzzsm356666qrw/Pjx4xPPNW/ePDw3YsSIxHPLly/3jRo18p06dUo8N2jQoLBcQdszb968xHMHH3xw+Ips2LDBr127Nt/v/fbbb75Bgwb+rLPOSjyn8ui1tK5kyevfkjJOmjQp8dySJUt8pUqV/JVXXllo7Ro9enT43dtvvz1feQ488MDwvMof6datm+/YsaNfs2ZN4rlNmzb5/fff37du3Trx3O677+579Ojhiyva1507d/br1q1LPK9t0/NjxoxJPLd69erNfv/888/3VatWzbd9++23n99nn33yLTdy5MjwehMmTAj/HzVqVPj/tGnTirW92scVK1YMZdV+iPztb38Lr9evX7/Ec4MHD/bVqlXzX375Zb7XuPbaa3358uX9999/X+i60q3HKlO8bNHvxreloHrcq1cvv+uuu/riuueee8I6X3jhhcRzv//+u995550325aiaP3xbSpKVN4OHTrkqzO9e/f2eXl5/sgjj8y3vOqD9kdc8v5JtQ/18+TfSz6Wjz322FAfvvnmm8RzixYt8jVq1PAHHXTQZvW8e/fu+erNFVdcEerCsmXLCi3zHnvsEd73+HJvvPFGeM3kbSyonYm3S3LccceFNjYu1TF2+OGH+5122smsburYSbXN6bapapf1mtr2pUuXJp4fM2ZMeP6VV15JPHfxxRenbOP79+/va9asGdaZS7gVkkL37t3DFaS6SU855ZSQZHUlratlDcIRXa3G6ape1L0Wpyuo6Gpaou51dVv++OOPWx0My5cvnxiQpDS/dOnScBtD3ci6GtgSxS2jrl50tRTRvmvTpk1I7EWtR1cj6kmJl0dXU3Eqk65AdaWjKwNNV9OXrpZ0FaErFl2Ni674dfWm57aEblPoKiOibdM2RvtEdHUaibZH5VfPgG7XRPQ+64o76vGSZ555JtQr9SBE2yuvvvpquI2Trrfeeiv0TGhfxbtVUw1Ee/HFF8P26Qo12nf6Uj3X7Rvd/ilKSddj7QddPca7kNOh96VRo0ahpyOiWyl6H0uL9kO8zqh3QOf+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YPHAAw+4Fi1auMqVK7t99tnHTZ061WWrIUOGuL333jt85Hn9+vXdscce67744ot8y6xZs8ZdfPHFrm7duq569eruhBNOcD/99FO+Zb7//nvXo0cPV7Vq1fA6V199tduwYYPLFrfddlv4yPfLL788p8u9cOFCd9ppp4UyValSxXXs2NFNnz498XNN2rrhhhtco0aNws+7d+/uvvrqq3yvsXTpUtenT5/wiYW1a9d2Z599tlu1apXLVBs3bnTXX3+9a9myZShTq1at3ODBg/P9YaNcKPekSZNcz549w8cfqy6PHj0638+tyvjJJ5+4Aw88MLR/+mjo22+/3WVimdevX+8GDBgQ6ni1atXCMqeffnr4Ew/ZXOZ03uu4Cy64ICxzzz33ZH25C+Sz3HPPPecrVqzoH3/8cf/ZZ5/5c88919euXdv/9NNPPhsdfvjh/oknnvCzZ8/2s2bN8kcddZRv1qyZX7VqVWKZCy64wDdt2tS//fbbfvr06X7ffff1+++/f+LnGzZs8B06dPDdu3f3H330kR87dqzfYYcd/MCBA302mDp1qm/RooXfbbfdfP/+/XO23EuXLvXNmzf3Z5xxhv/www/9t99+68eNG+e//vrrxDK33Xabr1Wrlh89erT/+OOP/THHHONbtmzp//jjj8QyRxxxhN999939Bx984N99912/8847+969e/tMdcstt/i6dev6V1991c+bN8+/+OKLvnr16v7ee+/NqXKr/l133XV+5MiRSkx+1KhR+X5uUcbly5f7Bg0a+D59+oQ247///a+vUqWKHz58uM+0Mi9btiwcm88//7yfO3eunzJliu/SpYvv3LlzvtfItjKn815H9HOVrXHjxv7uu+/22V7ugmR9sFDFvPjiixP/37hxY3jThgwZ4nPBkiVLQkWdOHFi4uDcbrvtQmMcmTNnTlhGB2pUycuVK+d//PHHxDIPPfSQr1mzpl+7dq3PZCtXrvStW7f2b775pj/44IMTwSIXyz1gwAB/wAEHFPjzTZs2+YYNG/o77rgj8Zz2Q6VKlUKjIp9//nnYB9OmTUss89prr/m8vDy/cOFCn4l69OjhzzrrrHzPHX/88aHBzNVyJ59srMr44IMP+u233z5f/Va9atOmjS9rhZ1g4xcRWm7+/Pk5UebCyv3DDz/4HXfcMYQCXVDEg0UulDsuq2+FrFu3zs2YMSN0Icb/yJn+P2XKFJcLli9fHh7r1KkTHlVedSnGy9y2bVvXrFmzRJn1qO7GBg0aJJY5/PDDw1/R++yzz1wm060O3cqIly9Xy/3yyy+7vfbay5100knhtk2nTp3co48+mvj5vHnz3I8//pivzPoDQLrdFy+zuk31OhEtr+Pgww8/dJlo//33d2+//bb78ssvw/8//vhjN3nyZHfkkUfmdLnjrMqoZQ466CBXsWLFfHVet09/++03lw3tm24LqJy5XOZNmza5vn37hluzu+6662Y/z7VyZ3Ww+OWXX8L92viJRPR/HbTZTpVRYwy6du3qOnToEJ5TuVSxogMxVZn1mGqfRD/LVM8995ybOXNmGGeSLBfL/e2337qHHnrItW7d2o0bN85deOGF7rLLLnNPPfVUvm0urH7rUaEkrkKFCiGIZmKZ5dprr3WnnHJKCIbbbbddCFSq57q/nMvljrMqY7bV+TiNmdKYi969eyf+OnOulnno0KGhHDq+U8m1cpf6n01H8a7eZ8+eHa7mct2CBQtc//793ZtvvhkGJm0LFBx1hXLrrbeG/+sEq/f74Ycfdv369XO56oUXXnDPPPOMe/bZZ8PV26xZs0Kw0MC3XC43/o96H08++eQwgFXhOpfNmDHD3XvvveGiSb0z24Ks7rHYYYcdXPny5TebGaD/N2zY0GWzSy65xL366qtuwoQJrkmTJonnVS7dAlq2bFmBZdZjqn0S/SxTD74lS5a4PffcMyR1fU2cONH985//DN8rmedauTUboH379vmea9euXZjZEt/mwuq3HrXf4jQLRiPMM7HMou7gqNdCt67URXzFFVckeqpytdxxVmXMtjofDxXz588PFxJRb0Wulvndd98NZdJt26htU9mvvPLKMJsxF8ud1cFCXeOdO3cO92vjV4H6/3777eeykRK8QsWoUaPc+PHjw5S8OJVX3cfxMusem05GUZn1+Omnn+arqNEBnHwiyxTdunUL26yr1+hLV/PqHo++z7Vy6xZX8lRijTto3rx5+F7vvRqMeJk1XkT3XONlVthSMIuo3ug40P36TLR69epw7zhOFwja5lwud5xVGbWMpjrqZB2v823atHHbb7+9y9RQoWm1b731VphmHZeLZe7bt2+YJhpv29Q7p4CtW6A5WW6fA9NNNZL6ySefDCNrzzvvvDDdND4zIJtceOGFYQraO++84xcvXpz4Wr16db5pl5qCOn78+DDtcr/99gtfydMuDzvssDBl9fXXX/f16tXL2GmXBYnPCsnFcmtEfIUKFcL0y6+++so/88wzvmrVqv7pp5/ONyVR9XnMmDH+k08+8b169Uo5JbFTp05hyurkyZPDrJpMmnaZrF+/fmF0fDTdVFPwNC34mmuuyalya4aTpj3rS03tsGHDwvfRDAiLMmomiaYg9u3bN8w2UHuoOlRWUxALK/O6devClNomTZqE4zPevsVnOmRbmdN5r5MlzwrJ1nIXJOuDhdx3333hhKPPs9D0U80DzlaqlKm+9NkWETU8F110UZh6pIp13HHHhYMz7rvvvvNHHnlkmOesRvvKK6/069ev99kcLHKx3K+88koIQwrHbdu29Y888ki+n2ta4vXXXx8aFC3TrVs3/8UXX+Rb5tdffw0NkD4LQlNrzzzzzNDQZaoVK1aE91XHbOXKlf1OO+0UPgMgfnLJhXJPmDAh5bGsYGVZRn0GhqYt6zUU2BRYMrHMCpEFtW/6vWwtczrvdTrBIhvLXZA8/VPWvSYAACA3ZPUYCwAAkFkIFgAAwAzBAgAAmCFYAAAAMwQLAABghmABAADMECwAAIAZggUAADBDsAAAAGYIFgAAwAzBAgAAOCv/D0LxiAlqNmfCAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pop = dfsup1.POP\n",
    "# Calculer la médiane et les quartiles\n",
    "print(quantile(pop, 0.25))\n",
    "print(quantile(pop, 0.5))\n",
    "print(quantile(pop, 0.75))\n",
    "# Tracer la boîte à moustaches \n",
    "boxplot([pop], vert=False)\n",
    "title(\"Population des pays de plus d'1 million d'habitants\")\n",
    "show()\n",
    "# Commenter. En raison de l'Inde et la Chine dont les populations sont de plus\n",
    "# d'un milliard d'habitants, le diagramme en boîte est écrasé ce qui n'est pas\n",
    "# informatif. Il faudrait utiliser une échelle logarithmique.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 3.** Comparaison de boîtes à moustaches. Les boîtes à moustaches permettent de comparer visuellement la répartition d'une même variable suivant différentes classes d'une même population. C'est ce qu'on va faire ici pour la variable LIFE (sur l'ensemble des pays de plus d'1 M. d'hab) en fonction des régions (variable REG) auxquelles appartiennent ces pays. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "60.52525\n",
      "62.769999999999996\n",
      "65.95525\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAG0CAYAAABue26rAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAI59JREFUeJzt3Qm4VVX9P+CFIAgp4ohYMqgoJJZKpeaEiVOaGKaWWppJmpbllGk5Pg45PmaWOZRaaINDWjaDmWWWgpmROKA4lJBmCigOBfv/fNfvf+5z7sQFWXfw3vd9nsPlnLPv3uuss4fPXmvtfXtVVVUlAIACVigxEwAAwQIAKEqLBQBQjGABABQjWAAAxQgWAEAxggUAUIxgAQAUI1jQbp5++ul0+umnp7/97W9qGaCHECxoF//973/Tfvvtlx588MG0ySab9MhajlDVq1evbrvczvp83cGdd96Z6y5+lvDkk0/m+V177bWplH/961/pIx/5SFpjjTXyvC+55JIlTh/LjumiLPRsgkU3VNvAW3v86U9/avcyfPGLX0y9e/dO119/fVphBasZdLQIfsOHD2/xvUWLFqV111037w9+8YtftDjNMccck371q1+lk046KX3ve99Lu+22WzuXmO6iT2cXgPZz5plnphEjRjR7fcMNN2zXan/ppZfSaqutln7yk5+k/v37t+uyaO4rX/lK+tKXvqRqaNUdd9yR5syZk4NHhP/dd9+9xWkmTJiQjj/++KWqyY9//OPpox/9aOrXr5+a7+EEi24sdhbvec97Ony5gwYNSqeeeuoy/c4rr7yS3va2t7VbmXqSPn365Ae0ZvLkyWmLLbZIBx98cDr55JNb3P6ee+65vC23pfa70UIZD9BG3cP94Ac/SGPHjk2rrLJKGjhwYNp0003T1772tWbdKnfddVc6/PDDc39rTPeJT3wivfjii83mF82q2223Xd7RxDz32GOP9Pe//73RNIccckhaeeWV0+OPP54++MEP5ukOPPDA/N7vf//7tO+++6ahQ4fmM5/11lsvN8m++uqrLc7jn//8Z9p7773z/9daa618dhXNvPUWL16cP1N8tpVWWilPF82606ZNa7azjbqIVpbVV189n30988wzS1WPf/jDH9J73/vePP8NNtggXXHFFa1O+2aWc9NNN+Xv4Xe/+12z92JZ8d6MGTOWOPahK32+xx57LO2zzz5pnXXWyfN8xzvekaebN2/eEssxbty4NGbMmDR9+vT0/ve/Py8jWuW+9a1vNZrujTfeyOE2yrHqqqvm9THWy9/+9rcN08Qfdo4z9jgrb+q1117LvxfrfM3Xv/71PF5owIABuUUuQvsNN9zQZt394x//yOtolGHttdfO6/Prr7/e4rR//vOf87oZy47l7LDDDunuu+9OJcW29OMf/zjXd4yDiue33XZbs20+6ucb3/hGQxdq/XuxHh555JH588R319oYi5jHWWedlaeJz7Pjjjvm/UHUe2zDNa2ts62N21ia/Qydx2lNNxY76X//+9+NXouNNMJB+M1vfpM+9rGPpZ122imdd955+bWZM2fmHdnnP//5Rr/32c9+Np+9xA7gkUceSZdffnl66qmnGgahheiHjTOgXXfdNc9v4cKFebptt902/eUvf2nU3/u///0vTxfvXXjhhXmnE2688cb8e5/5zGdyOe+99968Q4+dc7xXLwJEzGPLLbfM85gyZUq66KKL8oEvfr/mU5/6VN5BRQvOYYcdlpcdASbGmtRadM4+++x0yimn5B1tTPP888/n5W6//fa57Es6c4urXnbZZZccWKJ+Yv6nnXZaGjx4cLNp3+xyYscZ4elHP/pRPtjU++EPf5gPeHHAbU1X+nxx0I/vLQ6un/vc53K4iIB4++235260OKguSQTaCKSxjFh/o07i++7bt2869NBD8zTz589PV199dX5/0qRJacGCBenb3/52Xm6sU5tttllebw866KB0/vnnp//85z85BNX89Kc/zfOI98NVV12Vjj766DyYMbaNCB4xMDmCwAEHHNBqWeOgHdtXXCEVvx/jGmI7iW6GpuK1WEcjDEX9xtika665Jn3gAx/I6+v73ve+VEJ0Ub788ss5WETdR1iL7pDa54jvKsoYXRs777xzPoloKkJFrA8R3qLFojXxfgSL+L7icf/99+d1KdaBN2tZ9jN0kopu55prrqniq23p0a9fv4bpPv/5z1cDBw6s/ve//7U5r7Fjx1ZvvPFGw+vnn39+fv22227LzxcsWFANGjSomjRpUqPfnzt3brXqqqs2ev3ggw/Ov/ulL32p2fIWLlzY7LVzzz236tWrV/XUU081m8eZZ57ZaNrNN988l7XmjjvuyNMdffTRzea7ePHi/PPJJ5+sevfuXZ199tmN3v/b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sAAAihEsAIBiBAsAoBjBAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwCgGMECAChGsAAAihEsAIBiBAsAoBjBAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwCgGMECAChGsAAAihEsAIBiBAsAQLAAALoeLRYAQDGCBQBQjGABABQjWAAAxQgWAEAxggUAUIxgAQAUI1gAAMUIFgBAMYIFAFCMYAEAFCNYAADFCBYAQDGCBQBQjGABABQjWAAAxQgWAEAxggUAUIxgAQAUI1gAAMUIFgBAMYIFAFCMYAEAFCNYAADFCBYAQDGCBQBQjGABABQjWAAAxQgWAEAxggUAUIxgAQAUI1gAAMX0SR2sqqr8c/78+R29aADgTaodt2vH8S4TLBYsWJB/rrfeeh29aACgwHF81VVXbfX9XlVb0aOwxYsXp2effTatssoqqVevXqknJb0IU88880waOHBgZxenx1H/6r6nsu6r/1IiLkSoWHfdddMKK6zQdVosojDveMc7Uk8VoUKwUP89kXVf/fdkA7vJvn9JLRU1Bm8CAMUIFgBAMYJFB+nXr1867bTT8k86nvrvPOq+c6l/9d/ROnzwJgDQfWmxAACKESwAgGIECwCgGMECAChGsCjo9NNPz3cTrX+MGjWq4f1x48Y1e/+II44oWYQe75///Gc66KCD0hprrJH69++fNt100zRt2rSGeomxyqeeemoaMmRIfn/8+PHpscce6/H11lH1f8ghhzTbBnbbbTf1X8Dw4cOb1W08jjrqqPz+a6+9lv8f383KK6+c9tlnn/Svf/1L3XdA3fe0fX+H33mzu9tkk03SlClTGp736dO4iidNmpTOPPPMhucDBgzo0PJ1Zy+++GLaZptt0o477ph+8YtfpLXWWiuHhtVWW61hmvPPPz9deuml6brrrksjRoxIp5xyStp1113TQw89lFZaaaVOLX9PqP8QQeKaa65peO4S7DLuu+++tGjRoobnM2bMSDvvvHPad9998/Njjjkm/exnP0s33nhjvnviZz/72TRx4sR09913FypBz9VW3fe0fb9gUbpC+/RJ66yzTqvvx8q0pPd5884777z891jqD1oRHupbKy655JL0la98JU2YMCG/9t3vfjcNHjw43XrrremjH/2o6m/H+q8PEraB8iLI1fvqV7+aNthgg7TDDjukefPmpW9/+9vphhtuSB/4wAfy+/E9jR49Ov3pT39KW221VTuUqOdYUt33xH2/rpDC4gwt/kDL+uuvnw488MD09NNPN3r/+uuvT2uuuWYaM2ZMOumkk9LChQtLF6HH+slPfpLe85735LOEtddeO22++ebpqquuanh/9uzZae7cubn7oybO3Lbccst0zz33dFKpe07919x55535/Y033jh95jOfSS+88EKnlLc7e+ONN9LkyZPToYcempvdp0+fnv773/82Wvejm3bo0KHW/Xau+56479diUVAcoK699tq8w5wzZ04644wz0nbbbZebxeKvuR5wwAFp2LBhOXg8+OCD6cQTT0yPPPJIuuWWW0oWo8d64okn0uWXX56OPfbYdPLJJ+fmyaOPPjr17ds3HXzwwTlUhGihqBfPa+/RfvVf6waJ5vdoyXj88cfzdLvvvns+uPXu3Vv1FxItcC+99FIe0xJi/Y7vYdCgQY2ms+63f92HHrfvjztv0j5efPHFauDAgdXVV1/d4vtTp06Nu55Ws2bN8hUUsOKKK1Zbb711o9c+97nPVVtttVX+/913353r+9lnn200zb777lvtt99+voN2rv+WPP744/k7mTJlivovaJdddqn23HPPhufXX3991bdv32bTvfe9762++MUvqvt2rPueuO/XFdKO4uxgo402SrNmzWq1hSO09j7LJq70eOc739notehDrnVH1fo3m46Ej+c9pe+zM+u/JdFlGM3DtoFynnrqqTyA/LDDDmt4LdbvaKKPM+l61v32r/ueuO8XLNrRyy+/nJt7Y4fbkgceeCD/bO19lk1ckRDNi/UeffTR3AQZovk9drBTp05teH/+/Pnpz3/+c9p6661VdzvXf0v+8Y9/5DEWtoFyYlBmjGHZY489Gl4bO3ZsWnHFFRut+/FdReiz7rdv3ffIfX9nN5l0J8cdd1x15513VrNnz87N7uPHj6/WXHPN6rnnnstNXmeeeWY1bdq0/P5tt91Wrb/++tX222/f2cXuNu69996qT58+1dlnn1099thjufl3wIAB1eTJkxum+epXv1oNGjQo1/+DDz5YTZgwoRoxYkT16quvdmrZe0L9L1iwoDr++OOre+65J28D0f2xxRZbVCNHjqxee+21zi5+t7Bo0aJq6NCh1YknntjsvSOOOCK/d8cdd+T9UHRbNe26onzdz+qB+37BoqD999+/GjJkSO7LfPvb356f1/rQnn766bwirb766lW/fv2qDTfcsDrhhBOqefPmlSxCj/fTn/60GjNmTK7jUaNGVVdeeWWjOlm8eHF1yimnVIMHD87T7LTTTtUjjzzS4+utI+p/4cKFuf95rbXWyuMxhg0bVk2aNKmaO3eu+i/kV7/6Ve67b2mdjvB85JFHVquttloOfB/+8IerOXPmqPt2rvune+C+359NBwCKMcYCAChGsAAAihEsAIBiBAsAoBjBAgAoRrAAAIoRLACAYgQLAKAYwQIAKEawAACKESwAgGIECwAglfL/AEQuk+O/dm+PAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Créer la boîte à moustaches de la variable LIFE uniquement pour les pays de\n",
    "# la région Africa. \n",
    "life_af = life[dfsup1.REG=='Africa']\n",
    "# Calculer la médiane et les quartiles\n",
    "print(quantile(life_af, 0.25))\n",
    "print(quantile(life_af, 0.5))\n",
    "print(quantile(life_af, 0.75))\n",
    "# Tracer la boîte à moustaches \n",
    "boxplot([life_af], vert=False)\n",
    "title(\"Espérance de vie des pays de l'Afrique\")\n",
    "show()\n",
    "# Commenter. En affrique, l'espérance de vie est comprise entre 53 et 72 ans\n",
    "# pour la grande majorité des pays. Quelques pays font exception."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAG0CAYAAAArVgFsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWvVJREFUeJzt3QeUFNXWt/E95JyRoGSJZhARvAooKooKmFDACwZARUVRFEwoiJgQzC+GC+oIRsAsigEMCErwqkSVJMEIAzhk6lv/c1f1191TM9MDM0yH57dW03RXdaWuqd61a59TaZ7neQYAAAAgQpHIlwAAAAAIlAEAAIBskFEGAAAAAhAoAwAAAAEIlAEAAIAABMoAAABAAAJlAAAAIACBMgAAABCAQBkA9sHq1avtrrvusu+//57tBySA//73v+5vds2aNYW9KEggBMoAkEe7du2yCy+80P3wHnbYYSm5/RRwpKWlJe18C2v9UDAyMjKse/futnHjRqtTp84+TWPlypVun5g4cWK+Lx/iF4EygISiHyn9WGX3+Prrrwt8GW6++WYrWrSovfTSS1akCIdRIN5deumldswxx9jYsWMLe1GQYIoV9gIAwL4YMWKENWjQIMv7hx56aIFu0E2bNlnlypXtrbfestKlSxfovJDV7bffbkOHDmXTIE+Z4GOPPdYGDx68Xye29erVs23btlnx4sXZ+imEQBlAQjrjjDPcj9+BVqlSJbvzzjvz9Jl//vnHypYtW2DLlEqKFSvmHkgdef37iR6/fv36duutt+73cuiKValSpfZ7OkgsXDMEkLRefvlla9WqlZUvX94qVKhgRxxxhD3yyCNZyjhmzZplAwYMsKpVq7rx/v3vf7taxmjvv/++nXjiie5HWNPs0qWL/fjjjxHj9O3b18qVK2c///yznXnmmW68Xr16uWGff/65XXDBBVa3bl0rWbKkq5W84YYbXJYqaBpr1661bt26uf9Xr17dbrrpJtuzZ0/EuHv37nXrpHXTj7jG69y5s3377bcR46Wnp7ttoSx4lSpV7KKLLoq5UdMXX3xhrVu3dtNv1KiRjR8/Pttx92U+r7/+uvseZs6cmWWY5qVhP/zwQ461w/G0fsuXL7fzzjvPatas6aZ5yCGHuPFUJ5uTDh062OGHH27z5s2zdu3auXnoqsn//d//RYy3c+dOd7Km5ahYsaLbH7Vffvrpp6FxPM9zAWLXrl2zzGf79u3uc9rnfY899pirty9Tpoy7YqKT0EmTJuW4vJ999pn7Ll555RUXiGp9tSznnHNOlm2S130/6O8niL8/LFq0yHr27OmW/V//+lee94snnnjCGjZs6MY77rjj3PLq+9AjtxrlTz75JHRc0Im0tvnixYsDl/Onn35y66jx9B2oJCQzMzPH7YzCxWk5gISkoOPPP/+MeE8/RAp25aOPPrKLL77YTjnlFLv//vvde/rx+vLLL23QoEERn7vmmmvcD5d+zJYuXWpPPfWUrVq1KhQIyIsvvmh9+vSx008/3U1PP24aTz/KCxYscEGJb/fu3W48DXvooYdc8CGvvfaa+9xVV13llnPu3LkuQPn111/dsHAKiDWNNm3auGnMmDHDxowZ4wI5fd53+eWXux9uZdivuOIKN2/9yKtW28+4jxo1yu644w7XAFHj/PHHH26+J510klt2rXt21KvHaaed5gJwbR9Nf/jw4VajRo0s4+7rfHTCoeDo1Vdftfbt20cMUxCmAE4BZHbiaf0UxOp727Fjh1177bUueNQJzzvvvOPKdhQc5UQnaAoQNQ/tv9om+r5LlChhl112mRtn8+bN9uyzz7rh/fr1sy1btthzzz3n5qt96uijj3b7be/eve2BBx6wv//+2wWJvrfffttNQ8PlmWeeseuuu87OP/9897ehQFoNVefMmeOCz9xou2h+t9xyi/3+++82btw469Spky1cuDBUnpSXfT+7v5+cKAhv3Lix3Xvvve4kIdbvS/R3rGOAgl0F7wqIdYKqoFsnOTnR36X+9hRka/9R4K95nHDCCTZ//vyI44JoWXTyM3r0aDdc3+NBBx0UOkYhDnkAkEAmTJigX8HAR8mSJUPjDRo0yKtQoYK3e/fuXKfVqlUrb+fOnaH3H3jgAff+m2++6V5v2bLFq1SpktevX7+Iz2/YsMGrWLFixPt9+vRxnx06dGiW+WVmZmZ5b/To0V5aWpq3atWqLNMYMWJExLjHHHOMW1bfJ5984sa77rrrskx379697nnlypVe0aJFvVGjRkUM//77771ixYpleT9at27dvFKlSkUs36JFi9w0w39C9nc+F198sXfQQQdFfF/r16/3ihQpErEdhg8fnq/zze/1W7Bggfvca6+95uVV+/bt3WfHjBkTem/Hjh3e0Ucf7baN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i613794Jmw1HwSBQBgAA+UpBcsuWLQt3q64rYjbLrHmzZma1jy7cZUHCojEfAAAAEIBAGQAAAAhAoAwAQBLLzMy0+fPnu2ckB77TA4dAGQCAJLZkyRJr1aqVe0Zy4Ds9cAiUAQAAgAAEyrDPPvvM0tLSbNOmTQm/NerXr2/jxo0r7MUAEGf27NnjjnWTJ092z3oNALkhUI4Tf/zxh1111VVWt25dK1mypNWsWdNOP/10+/LLL/N1Ph06dLDrr78+X6c5YMAAK1q0qL322mtW2L755hvr379/YS8GgDgyZcoUO/TQQ61jx47Ws2dP96zXeh8AckKgHCfOO+88W7BggT3//PPurkBvvfWWC2r/+usvi/cGBS+//LLdfPPN9p///KfQlmPnzp3uuXr16lamTJlCWw4A8UXB8Pnnn29HHHGEzZ49291MQs96rfcJlgHkhEA5Dqjk4fPPP7f777/fZTrq1atnxx13nA0bNszOOeec0HirV6+2rl27Wrly5axChQp24YUX2m+//RYa3rdvX+vWrVvEtJU9VsDtD585c6Y98sgjrtRCj5UrV4bGnTdvnh177LEu0GzXrp0tXbo012VXFrlFixY2dOhQmzVrlq1ZsyZiuL9M9957r9WoUcMqVapkI0aMsN27d9uQIUOsSpUqdsghh9iECRMiPqfpaP00vsbReocvqz/dUaNGWe3ata1p06aBpRfatsp4a96lSpWyww8/3N555x03TCchF198sR188MFunfXDqcuyAJKDyituvPFGO+uss2zatGl2/PHHu+OnnvVa7990002UYQDIFnfmiwM6cOvhH8hVehFt7969oSBZwa4CzYEDB1qPHj1cvV0sFCArW61gUcGqn4H1A9DbbrvNxowZ49678sor7bLLLsu19OO5555zt/ysWLGinXHGGTZx4kS74447Isb55JNPXDCsQFrTu/zyy+2rr76yk046yebMmWOvvPKKC2ZPPfVUN96uXbtc2Unbtm3dCUSxYsXsnnvusc6dO9t///tfK1GihJvuxx9/7E4YPvroo8Bl0zbTMimDpNupNmrUyBYtWuTKRGT79u2uJfgtt9zipvPuu+/aJZdc4sbTiUq0HTt2uIdv8+bNMW13AIVDxw8d33QCXKRIZF5Ir5WMUFJA4/kJhWS0bdu20C2aC5o/D3+eieRAbqdU3s4Jx0NceP31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SpUqFfZiAAAAJAQC5QSzZs0au+yyy6x27dpWokQJq1evng0aNMj++uuviPHq169v48aNK7Tl9JchLS0ty+O+++4r1OUCAACIBf0oJ5BffvnF2rZt6+6GNHnyZGvQoIH9+OOPNmTIEHv//fft66+/tipVqhzw5dq1a5cVL148cNiIESOsX79+WW7lua927tzpThAAAAAKGhnlBDJw4EAXJH744YfWvn17q1u3rp1xxhk2Y8YMW7t2rd12221uvA4dOtiqVavshhtuCGVxw02fPt11El+uXDnr3LmzrV+/PmL4s88+64aXKlXKmjVrZk8++WRo2MqVK930XnnlFbcMGuell17KdpkVFNesWTPiUbZs2WxLQaZNmxaxvHfddZcdffTRbpl0YqD5yerVq61r165uHSpUqGAXXnih/fbbb1k+N378eKtTp46VKVPGjZORkRHzugIAgNRGRjlB/P333y7AHTVqlJUuXTpimILPXr16ueBVgd6UKVPsqKOOsv79+2fJ5qr7lYceeshefPFFK1KkiLut5k033RQKdvV855132uOPP27HHHOMLViwwE1DwW2fPn1C0xk6dKiNGTPGjeMHrwXlp59+sjfeeMOtV9GiRW3v3r2hIHnmzJm2e/dudxLRo0cP++yzzyI+9+qrr9rbb79tmzdvtssvv9yuvvrqPK+rb8eOHe7h0zQBoKBs27YtdAvkeOMvk7+MSMzvMR4sjvd9yUNC+Prrrz19XVOnTg0c/vDDD7vhv/32m3tdr149b+zYsRHjTJgwwY3z008/hd574oknvBo1aoReN2rUyJs0aVLE50aOHOm1bdvW/X/FihVuGuPGjct1mbUMJUqU8MqWLRvxmDVrVmh5KlasGPEZrV/4bjl8+HCvePHi3u+//x5678MPP/SKFi3qrV69OvTejz/+6D43d+7c0Oc0zq+//hoa5/333/eKFCnirV+/PqZ1jaZpah7Rj4yMjFy3BQDkVXp6euAxJ54eWsa4t3aB5w2v8L/nQpAI32Oq7UsZGRkx/36TUU4wnqfvdt+pBKFRo0ah17Vq1bLff//d/f+ff/6xn3/+2WVewzPRythWrFgxYjrHHntsTPNT/XTfvn0j3jv44IPztMxqsFi9evWIs0+VU+jha9GihSvj0LDWrVu791SaEj4v1XcrG7106VJXEhLruvqGDRtmgwcPjsgohy8DAOR3g2hJT093JWLxRMdaXZH0lxGJ+T3Gg8Vxvi8RKCeIQw891NXuaofq3r17luF6v3LlyhEBZZDoRneaph98b9261T0/88wz1qZNm4jxVPIQzq8zzk21atXcsgdR6Ud04K+GgdFinVde5GVdfSVLlnQPADgQ/DI7BVctW7aMy40eXQqIxPwe40HpON2XaMyXIKpWrWqnnnqqq0GOruPZsGGDq7dVja7fEE6N/vbs2ZOnedSoUcN1O6feNRTchj/UkC6/KajfsmWLy2T7Fi5cmOvndLBRN3l6+BYtWmSbNm1ymWWfGvytW7cu9Fq9gig4b9q06QFfVwAAkHjIKCcQNTpr166dnX766XbPPfdEdA+nEgM19PPpEsasWbPsoosucllQZXZjcffdd9t1113nyg/UI4Yar3377be2cePGiLKDWCkQViAfXf6hniqUydX/b731VjfPOXPmuJ4wctOpUyc74ogjXANG9RWtcgk10lMvHOElIWpkqEZ5aryoMgnNQz1fqPFjQawrAABILmSUE0jjxo1dINewYUMX8KnWWD1bdOzY0WbPnh3Rh7L6L1ZXbhont3KMcFdccYXrMm3ChAkuGFXwqeB1X7Os6lVCddDhj5tvvtkN0/KqZuu9995z81Lf0OrWLTfKmr/55puu1OSkk05ygbO2iXr9CKfs8LnnnmtnnnmmnXbaaXbkkUdGdP+W3+sKAACSS5pa9BX2QgD5TQG3+mSOpZRjXylLrWy0+mZWhhwA8tP8+fOtVatWNm/evLirbY3nZcti3UKzp9ub9Z9pVvvoAz77hNpWhWB+IWyfvPx+k1EGACAO6SZICh70DCSrZnG+n1OjDABAHFIbDjKQSHZl4nw/J6OMpC29KMiyCwAAkPwIlAEAAIAABMoAAABAAGqUAQBAnmRmZoZ6LIh3pTctM904evGSJbZtw94DPn/dOReJi0AZAADkyZIlS9xzv3794n7L1SyXZgNalbDxY3rahq2F1yNu+fLlC23e2HcEygAAIE+6devmntWll3otSATnFOK8FSTrpmFIPNxwBNhH3HAEAIDEww1HAAAAgP1ErxcAAABAAAJlAAAAIACBMgAAABCAQBkAAAAIQKAMAAAABCBQBgAAAAIQKAMAAAABCJQBAACAAATKAAAAQAACZQAAACAAgTIAAAAQgEAZAAAACECgDAAAAAQgUAYAAAACECgDAAAAAQiUAQAAgAAEygAAAEAAAmUAAAAgAIEyAAAAEIBAGQAAAAhAoAwAAAAEKBb0JgAASBzLly+3LVu2FPZiIEz58uWtcePGbJMER6AMAECCB8lNmjSxZFSzXJoNaFXCxs/baRu2epZoli1bRrCc4AiUAQBIYH4mOT093Zo3b27JpPSmZdZ81gDrcedE21YpcU4GFi9ebL179ybLnwQIlAEASAIKklu2bGlJZV0Rs1lmzZs1M6t9dGEvDVIQjfkAAACAAATKAAAAQAACZQAAACAAgTIApKDMzEybP3++ewYAjifBCJQBIAUtWbLEWrVq5Z4BgONJMAJlAAAAINED5Q4dOtj111+f4zj169e3cePG5ThOWlqaTZs2zf1/5cqV7vXChQvzdVmRd7F8d/sr/LsHAACI20C5b9++LnC58sorswwbOHCgG6ZxfFOmTLGRI0davPnss8/csgY9NmzYUOBB5MyZM61OnTqh15rntddeaw0bNrSSJUu6YWeffbZ9/PHHdqBPXArCr7/+aiVKlLDDDz88z59dv369nXHGGQWyXAAAILkUekZZQdzLL79s27ZtC723fft2mzRpktWtWzdi3CpVqrh7p8erpUuXukAs/HHQQQcV+HzffPNNFwj7GXLVHX7yySf24IMP2vfff28ffPCBdezY0Z18HGie59nu3bvzdZoTJ060Cy+80DZv3mxz5szJ02dr1qzpTh4AAADiPlDWXYQULCtb7NP/FSQfc8wxOWYwf//9dxcgli5d2ho0aGAvvfRSlukvX77cTjrpJCtVqpS1aNHCPvroo1yX6YcffnBZx3LlylmNGjXskksusT///DPXzykoViAW/ihS5H+b+JtvvrFTTz3VqlWrZhUrVrT27du7FufhAeVdd93l1luBXO3ate26664LrfeqVavshhtuCGWqw7311lt2zjnnuP9fffXVbvjcuXPtvPPOsyZNmthhhx1mgwcPtq+//jr0mU2bNtkVV1xh1atXtwoVKtjJJ59s3333XWi4luXoo4+2F1980WWztcwXXXRR6HacyvQrk/3II4+ElklBup9df//9913ArnX54osv7Oeff7auXbu67ant2rp1a5sxY4bllbbThAkT3HfSs2dPe+655yKG79y506655hqrVauW+87r1atno0ePzrb04pZbbnHbqEyZMi4Df8cdd9iuXbvyvFwAACD5xMUtrC+77DIX/PTq1cu9/s9//mOXXnqpC7pyomBt3bp19umnn1rx4sVdYKng2bd3714799xzXXCmzGNGRkaupQIKIBU0KogcO3asy3QrmFIGU1nafaUAs0+fPvbYY4+5YG/MmDF25plnukBeWfI33njDzU/ZdQW2Kp/wA1edOBx11FHWv39/69evX8R0f/zxR7fOWua///7bZY9HjRplZcuWzbIMlSpVCv3/ggsucCcYCmgVBI8fP95OOeUUW7Zsmcvci4JbBZXvvPOObdy40W2D++67z01fAbLGVfnDiBEj3PgKuhUsy9ChQ+2hhx5ywWflypVtzZo1bn31WQXPL7zwgjvJURY++spBTvRdqzurTp062cEHH2zt2rVz281f30cffdSdOLz66qtuupqvHtnRtleGWicmyr5r++q9m2++Ocu4O3bscA+fMtpAovKv4i1evLiwFwX7yf8Ow6/MonCl2t/X4mTeB71C1KdPH69r167e77//7pUsWdJbuXKle5QqVcr7448/3DCN42vfvr03aNAg9/+lS5d6Wvy5c+eGhi9evNi9N3bsWPd6+vTpXrFixby1a9eGxnn//ffdOFOnTnWvV6xY4V4vWLDAvR45cqR32mmnRSznmjVr3DiaZ5BPP/3UDS9btmzEo0WLFtmu+549e7zy5ct7b7/9tns9ZswYr0mTJt7OnTsDx69Xr15ovcKNGjXKO//8893/58yZ45ZjypQpXk4+//xzr0KFCt727dsj3m/UqJE3fvx49//hw4d7ZcqU8TZv3hwaPmTIEK9NmzaB30f0tpg2bZqXm8MOO8x77LHHcl3HcD179vSuv/760OujjjrKmzBhQuj1tdde65188sne3r17Az8f/t0HefDBB71WrVoFDtM20eejHxkZGTkuMxCP0tPTA/dnHom7DfSdJp21CzxveIX/PSeQVP37Sk+QfVC/27H+fsdFRlmZyC5durjMnmIZ/V8lCrmdvRQrVsxd3vc1a9YsImuqcVTWoWyhr23btjlOV1lcZS1VHhBNGVZdps/O559/HlFDrSy377fffrPbb7/dZcmVAd6zZ4/LjK5evTqU4VVjPWVgO3fu7LKvyrhqHXOrT1apgfwvDsyd1nHr1q1WtWrViPd1Jqh19KnkInx9VM4QnrHPybHHHhvxWvNTOce7777r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ui796f/vv/++C9iV0f7iiy/s559/tq5du1qNGjVcYNa6dWubMWPGPgV3EyZMsEsuucRlUJ577rmI4VoGzf/VV1+1E0880QWympeyvt98840de+yxbv5nnHGG/fHHHxGfffbZZ11n7srYKnP75JNPZpnuK6+8Yu3bt3fjvPTSS4GlF2+//babp8apVq2ade/ePTRM21PLUL58eZcV1jr8/vvvgYHyOeec4/5/6623uvnrpKBPnz7WokUL973269fPFi5c6NYnlmln991El1747r777tD+ceWVV9rOnTsjhivIvuaaa9y+ofW84447IrLbO3bscNnqgw8+2MqWLWtt2rRxy+D766+/7OKLL3bDy5Qp437gdfk4+qrFdddd504IqlSp4tZLywukMpVX3HjjjXbWWWfZtGnT7Pjjj3fHAT3rtd7X3x5lGABSQcx35vv7779d9njUqFEuMIkWHtBdcMEFLohU0KRAZ/z48XbKKae4gFIBiSi41UH3nXfesY0bN7os7n333eemrwBZ46r8YcSIEW58BVUK6GTo0KH20EMPufKPypUr25o1a+zMM890n1WApuyoykGWLl1qdevWjXljfPrpp671qcoOFGAp0zp27Ngs6zt8+HBX76xpX3bZZS5oVACp5VZQpnW588477amnnnLjK+jV68cff9yOOeYYW7BggQtENV0Fpz6t15gxY9w4CoSnT58eMd93333XBcYqk9A6Krh87733IrLQI0eOtKZNm7ogVicwOukIH0cnMQpgFfju3bvXXn75ZevVq5fVrl07y/bwg+RYpx303YQHrz6VYmj9NEzf6aWXXuqyzvr+fM8//7xdfvnl7qTs22+/tf79+7vtre0mCqIXLVrkll/LPnXqVOvcubO7ytG4cWPbvn27C9hvueUWF4xr2+kEqFGjRnbcccdFzEfrohMFZcy0TieccIKdeuqpWZZbwbkePl11AJLN559/7v4udWJZpEhkLkWvdeVJx0aNp5NNxI9t27aFbu2cF/74/ueTfX3jTaJu/5ThxWjOnDlK53lTpkzJcbzPP//cq1Chgrd9+/aI9xs1auSNHz/e/X/48OFemTJlvM2bN4eGDxkyxGvTpk3odfv27b1BgwZFTOPTTz91yzBt2rRcl/ewww7zHnvssdDrevXqeWPHjs3xMz179vSuv/760OujjjrKmzBhQuj1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s17r/fPOOy/bYfoskCceUMi2bNnilStXzluyZInXo0cPb9SoUe79Pn366D68oUe9evXc++3bt/cGDhzoDRo0yKtatarXoUMH977GmTp1ami6a9as8S666CKvcuXKXpkyZbxWrVp5X3/9tRv2008/eeecc4530EEHeWXLlvWOPfZY76OPPsrTcmdkZLh56jm/zZs3z01bz0gMhf6drV3gecMr/O85gRT6dktQ8bjdduzY4RUrVsyrUaOGt2vXrohheq33NVzj7avdu3d79evX984++2xvz549EcN27tzplS5d2h3v9f9wGlefadCggZsGUltGHn6/Kb1AoXv11VetWbNm1rRpU3cr2+uvv96GDRtmjzzyiDVq1Miefvpp++abb6xo0aKhzzz//PN21VVX2Zdffhk4za1bt1r79u3t4IMPtrfeestlm9Xd2t69e0PDzzzzTBs1apTLQr/wwgt29tln29KlS61u3bqB09yxY4d7+DZv3mwFZdu2baHb+yIx+N+V/90hNuzrybO/Pfnkk67c4p577sly9U+vR4wYYQMGDHDj6Ti/Lz7//HNXUqHa4yJFIi+K6/fA3x76f4cOHULDNK5+V3R1UtMIHwbkhEAZcVF2oQBZVKOckZFhM2fOdAey8uXLuwBZgW64xo0b51jrNmnSJPvjjz9cgK2GgHLooYeGhh911FHu4Rs5cqRNnTrVBdXXXHNN4DRHjx5td999tx0Ifm2dv12QOPTdnXDCCYW9GAmDfT159jeVyslZZ50VONx/3x9vX6iUQw4//PBsh0X/3+d/JmgYkB0CZRQqZXDnzp3rglS3QxYrZj169HDBc05n/OpjOCfqHeOYY44JBcnRlFG+6667XMNBHTSVBVEmYvXq1dlOU9mIwYMHR2SU69SpYwVBDU8kPT3dmjdvXiDzQP5n+HRi4393iA37evLsb7oCKO+8845dccUVWYbr/fDx9oXarMgPP/xgxx9/fOCw6P/79JnshgHZIVBGoVJArCC1du3aofdUbqxyiMcffzzbz5UtWzbH6ZYuXTrH4TfddJN99NFH9tBDD7lMs8ZXQ4+cujDSMh2oxoL+8itIbtmy5QGZJ/JHbvsegrcX+3ri729XX321693i9ttvt759+0aUX+g4f+edd7r3NN6+OvHEE93Jwb333uu6Aw0vv1BmXdtDXYVGZ9lVdqergg0aNHDTAGJFrxcoNDpwqjZYXfYoA+w/vvvuOxc4qwZtXx155JFuWn///XfgcNWv6UDevXt31xpapR3hXQkBAPKmRIkSrgu43377zQ455BDXvkS9GOlZr/W+hmu8faVSPP1mKDvdrVu3iJ4t1NvF9u3bLTMz0/0/fJjG1WeUHAlv7wLkhowyCo0OWhs3brTLL7/cKlasGDFMBzllm3v16rVP07744otdxkEHR2URdKltwYIFLgBv27atq3FWN0FqwKfswx133BFq6AcA2Dd+2xH1o6yGez5lkpVtzo9+lNUX8uuvv+76SlbjPJ+yxXpfshtGP8rIKwJlFBoFwp06dcoSJPuBsg6oCmT3hTIWH374oTtYqncLZa9btGhhTzzxhBv+8MMP22WXXeYOpLqJyS233FKgvVgAQKrQsVs9X6h3CzXcU02yyi32J5McTQFv165dXQ8WameiZIhKKvxscU7DgLwgUEahefvtt7Mddtxxx7laZVFdWzjdpS+IP76vXr16oexCNNW4ffLJJxHvDRw4MOZlBwBkT0HxvnYBFysFvtk1+s5pGJAX1CgDcUj9Ss+bN889AwDHCKBwkFEG4lCZMmXo7QIAxwigkJFRBgAAAAIQKAMAAAABCJQBAACAANQoA0A+0E0OZP78+YWyPUtvWma62fniJUts24a9CXUrZgCIVwTKAJAPlixZ4p779etXKNuzZrk0G9CqhI0f09M2bI3sKjERlC9fvrAXAQCyIFAGgHygu0CKuvRTryWF5RyzhAySdbdMAIg3aV70XRoAxER38tNdBTMyMqxChQpsNQAAkuz3m8Z8AAAAQAACZQAAACAAgTIAAAAQgEAZAAAACECgDAAAAAQgUAYAAAACECgDAAAAAQiUAQAAgAAEygAAAEAAbmEN7CP/ppa6ww8AAEgM/u92LDenJlAG9tGWLVvcc506ddiGAAAk4O+4bmWdkzQvlnAaQBZ79+61devWWfny5S0tLS1pzrIV+K9Zs8YqVKhQ2IsTd9g+bBv2Hf62OO4k/nFZoa+C5Nq1a1uRIjlXIZNRBvaR/rgOOeSQpNx+OtgQKLN92Hf42+LYEz84Lufv9sktk+yjMR8AAAAQgEAZAAAACECgDCCkZMmSNnz4cPeMrNg+2WPb5Iztw/bZV+w7hbt9aMwHAAAABCCjDAAAAAQgUAYAAAACECgDAAAAAQiUAQAAgAAEykCKueuuu9ydBMMfzZo1Cw3v0KFDluFXXnmlpZK1a9da7969rWrVqla6dGk74ogj7Ntvv424q9Odd95ptWrVcsM7depky5cvt1SR2/bp27dvln2oc+fOluzq16+fZb31GDhwoBu+fft2939tt3Llytl5551nv/32m6WK3LZPqh979uzZY3fccYc1aNDA/V01atTIRo4c6Y43qX7s2RPDtimo4w535gNS0GGHHWYzZswIvS5WLPJQ0K9fPxsxYkTodZkyZSxVbNy40U444QTr2LGjvf/++1a9enX3Q1S5cuXQOA888IA9+uij9vzzz7sDtw7gp59+ui1atMhKlSplqb59RD9QEyZMCL1OhS4Hv/nmG/eD7vvhhx/s1FNPtQsuuMC9vuGGG+zdd9+11157zd0V7JprrrFzzz3XvvzyS0sFuW2fVD/23H///fbUU0+544qO0Tr5vPTSS92+ct1116X0sef+GLZNQR13CJSBFKTAuGbNmtkO149TTsOTmQ7IderUiTjY6gfJpwzGuHHj7Pbbb7euXbu691544QWrUaOGTZs2zS666CJL5e0T/gOVavuQThrC3XfffS7z1b59e8vIyLDnnnvOJk2aZCeffLIbrm3YvHlz+/rrr+3444+3VN4+vlQ+9nz11VfumNKlS5dQBn7y5Mk2d+5cS/Vjz1e5bJuCPO5QegGkIGUAa9eubQ0bNrRevXrZ6tWrI4a/9NJLVq1aNTv88MNt2LBhlpmZaanirbfesmOPPdZluQ466CA75phj7JlnngkNX7FihW3YsMFd8vQpq9GmTRubPXu2pfr28X322WdueNOmTe2qq66yv/76y1LJzp07LT093S677DJ3CXjevHm2a9euiP1GJU9169ZNif0mt+3jS+VjT7t27ezjjz+2ZcuWudffffedffHFF3bGGWdYqh972uWybQryuENGGUgxOqhOnDjRHUjWr19vd999t5144onuMmj58uWtZ8+eVq9ePRdI//e//7VbbrnFli5dalOmTLFU8Msvv7hLfIMHD7Zbb73VXS7Wpb0SJUpYnz593A+VKIsTTq/9Yam8ffzLnyopUKb5559/duPpB00/5kWLFrVUoAzfpk2bXN2kaN/QNqpUqVJK7je5bR9J9WPP0KFDbfPmze4ESn8nKlMZNWqUS2ZIKh97huaybQr0uOMBSGkbN270KlSo4D377LOBwz/++GO1lvB++uknLxUUL17ca9u2bcR71157rXf88ce7/3/55Zdue6xbty5inAsuuMC78MILvVTfPkF+/vlnt81mzJjhpYrTTjvNO+uss0KvX3rpJa9EiRJZxmvdurV38803e6kmevsESbVjz+TJk71DDjnEPf/3v//1XnjhBa9KlSrexIkTvVQ/9kzOZdsU5HGH0gsgxSnD1aRJE/vpp5+yzUBLdsOTjVqTt2jRIuI91ZH65Sl+/Vt0bwV6nQq1lbltnyAq8dHl9FTZh1atWuUay15xxRWh97RvqNxAWdRU3G9y2z5BUu3YM2TIEJc5Va2xepK55JJLXAPQ0aNHW6ofe4bksm0K8rhDoAykuK1bt7rLVAqAgixcuNA9Zzc82ahHB13uDae6OF0SFl3W04+S6uV8uiQ4Z84ca9u2raX69gny66+/ulrBVNmH1EhPdZJ+wyNp1aqVFS9ePGK/0XbUCUYq7De5bZ8gqXbsUT12kSKRYZlKBvbu3WupfuzJzGXbFOhxZ7/y0QASzo033uh99tln3ooVK9ylvE6dOnnVqlXzfv/9d3eJc8SIEd63337rhr/55ptew4YNvZNOOslLFXPnzvWKFSvmjRo1ylu+fLm7ZF6mTBkvPT09NM59993nVapUyW0fXQbs2rWr16BBA2/btm1eqm+fLVu2eDfddJM3e/Zstw/psmfLli29xo0be9u3b/eS3Z49e7y6det6t9xyS5ZhV155pRv2ySefuL8xlbBEl7Gk6vbh2ON5ffr08Q4++GDvnXfecX87U6ZMccfm8NKcVD329Mll2xTkcYdAGUgxPXr08GrVquXqJXXg0Wu/BnD16tUuKFbtV8mSJb1DDz3UGzJkiJeRkeGlkrfffts7/PDD3TZo1qyZ9/TTT0cM37t3r3fHHXd4NWrUcOOccsop3tKlS71UkdP2yczMdPWn1atXd/XM9erV8/r16+dt2LDBSwXTp093dZFB+4OCmauvvtqrXLmyO7no3r27t379ei+VZLd9OPZ43ubNm71Bgwa5E4lSpUq5JMVtt93m7dixw0v1Y8/mXLZNQR530vTP/uWkAQAAgORDjTIAAAAQgEAZAAAACECgDAAAAAQgUAYAAAACECgDAAAAAQiUAQAAgAAEygAAAEAAAmUAAAAgAIEyAAAAEIBAGQAAAAhAoAwAAAAEIFAGAAAALKv/B/pN9wV3KTpdAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# On va tracer sur le même graphique les boîtes à moustaches de la variable\n",
    "# LIFE pour chacune des régions de la liste reg_labels définie ci-dessous.\n",
    "\n",
    "reg_labels = [\n",
    "    'Africa', 'Asia-Pacific', 'Central America/Caribbean', 'EU-28',\n",
    "    'Middle East/Central Asia', 'Other Europe', 'South America'\n",
    "] \n",
    "\n",
    "# Pourquoi a-t-on exclu la région 'North America' ?\n",
    "# Réponse. Cette région ne contient que 3 pays. En effet :\n",
    "print(len(dfsup1[dfsup1.REG=='North America']))\n",
    "\n",
    "# A vous de tracer le graphique attendu !\n",
    "boxplot(\n",
    "    [life[dfsup1.REG==reg] for reg in reg_labels], # liste de pandas.Series\n",
    "    vert=False,\n",
    "    tick_labels=reg_labels # étiquettes de l'axe des ordonnées\n",
    ")\n",
    "title(\"Espérance de vie des pays par région\")\n",
    "show()\n",
    "# Commenter. Le graphique permet de constater que les pays d'Afrique se\n",
    "# distinguent nettement des autres régions avec une espérance de vie\n",
    "# globalement plus basse. Au sein des autres régions, les régions se\n",
    "# distinguent entre elles par leur variabilité. Par exemple, les pays\n",
    "# d'Amérique du Sud sont plus proches les uns des autres que les pays de\n",
    "# l'Asie-Pacifique."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 3. Sous-échantillon\n",
    "Dans cet exercice, on va comparer la moyenne d'un sous-échantillon avec la moyenne de l'échantillon global; on fera de même avec la variance. On va s'intéresser à la variable POP et on commence par retirer les deux \"outlyers\", c'est-à-dire les deux valeurs extrêmes qui sont d'un ordre de grandeur très différent (population de la Chine et population de l'Inde)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "181 179\n",
      "la taille de l échantillon est maintenant : 179\n"
     ]
    }
   ],
   "source": [
    "# On retire du dataframe df les données des deux pays ayant une population\n",
    "# supérieure à 1 milliard d'habitants (l'Inde et la Chine).\n",
    "df2 = df[df.POP<1000]\n",
    "# On vérifie qu'on a bien enlevé deux pays.\n",
    "print(len(df), len(df2))\n",
    "\n",
    "# On convertit en numpy.ndarrays les pandas.Series POP et PAYS du dataframe\n",
    "# df2.\n",
    "POP2 = df2.POP.values # POP2 est une ndarray qui contient les populations des\n",
    "# pays de moins d'un milliard d'habitants.\n",
    "PAYS2 = df2.PAYS.values  # PAYS2 est une ndarray qui contient les noms des pays\n",
    "# de moins d'un milliard d'habitants\n",
    "print('la taille de l échantillon est maintenant :', len(df2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 1.** Calculer la moyenne et la variance de la variable POP2, appelée \"moyenne globale\" et \"variance globale\" dans la suite de l'exercice. Calculer la moyenne et la variance d'un sous-échantillon de taille $n=100$ tiré au hasard parmi les valeurs de POP2. Recommencer et comparer les valeurs obtenues en calculant le quotient \"moyenne sous-échatillon/moyenne globale\" et \"variance sous-échantillon/variance globale\". "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.940046610079337\n",
      "0.7798914651955118\n"
     ]
    }
   ],
   "source": [
    "# Moyenne et variance globales\n",
    "moy_glob = mean(POP2)\n",
    "var_glob = var(POP2)\n",
    "# Sélection aléatoire d'un échantillon de n=100 valeurs de population\n",
    "from random import *\n",
    "n = 100\n",
    "pop2_ech = choices(POP2, k=n)\n",
    "# Moyenne et variance de la variable population prise dans l'échantillon\n",
    "moy_ech = mean(pop2_ech)\n",
    "var_ech = var(pop2_ech)\n",
    "# Quotients \"moyenne de l'échatillon/moyenne globale\" et \"variance de\n",
    "# l'échantillon/variance globale\".\n",
    "print(moy_ech / moy_glob)\n",
    "print(var_ech / var_glob)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 2.** Vous avez dû observer que les résultats obtenus à la question précédente sont fluctuants. Afin de \"lisser\" ces résultats, répéter l'expérience précédente 1000 fois et calculer la moyenne des moyennes des sous-échantillons, appelée \"moyenne empirique\", et la moyenne des variances des sous-échantillons, appelée \"variance empirique\". Comparer la moyenne empirique et la moyenne globale, ainsi que la variance empirique et la variance globale, en calculant les quotients. Recommencer plusieurs fois. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9988758829030208\n",
      "0.9980834269941053\n"
     ]
    }
   ],
   "source": [
    "repet = 1000 # nombre de répétitions : nombre d'échantillons aléatoires\n",
    "# utilisés\n",
    "n = 100 # taille de chacun des 1000 echantillons\n",
    "# Somme des moyennes et variances de la variable population des échantillons\n",
    "# initialisées au départ à zéros\n",
    "acc_moy_echs = 0\n",
    "acc_var_echs = 0\n",
    "\n",
    "for _ in range(repet):\n",
    "    # Choix d'un échantillon aléatoire de n = 100 valeurs de population\n",
    "    pop2_ech = choices(POP2, k=n)\n",
    "    # incrémentation des variables d'accumulation\n",
    "    acc_moy_echs += mean(pop2_ech)\n",
    "    acc_var_echs += var(pop2_ech)\n",
    "\n",
    "# Calcul des moyennes et variances empiriques\n",
    "moy_emp = acc_moy_echs / repet\n",
    "var_emp = acc_var_echs / repet\n",
    "\n",
    "# Calcul et affichage des Ratios \"moyenne empirique/moyenne globale\" et \n",
    "# \"variance empirique/variance globale\".\n",
    "print(moy_emp/moy_glob)\n",
    "print(var_emp/var_glob)\n",
    "\n",
    "# Remarque. On voit que les ratios varient entre chaque exécution de la\n",
    "# cellule. C'est normal, il s'agit de la fluctuation d'échantillonnage :\n",
    "# les variances et moyennes sont tantôt surestimées ou sous-estimées."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Question 3.** Dans le bloc suivant, on étudie le quotient \"moyenne empirique/moyenne globale\" en fonction de la taille du sous-échantillon ainsi que le quotient \"variance empirique/variance globale\" en fonction de la taille du sous-échantillon. Exécuter les lignes de commande (soyez patient, cela peut prendre un peu de temps), observer et commenter. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARRFJREFUeJzt3QmcE/X9//F3NsvustyXHLureNWjXi0qgtLqT1rsYb1oKbUetNWfVi3Hv/WoBx4/xWqL8BOqv9J69KeIiqitWlqLYPEnLRVrWw/wAAVWrhW5YY9k/o/vzM5uks0xySaZ7Ob1fDxmk8xOksl3JpnPfL7HBCzLsgQAAOCTEr/eGAAAwCAYAQAAviIYAQAAviIYAQAAviIYAQAAviIYAQAAviIYAQAAviIYAQAAvipVBxAOh/Xxxx+rR48eCgQCfq8OAADwwIyrunPnTg0ZMkQlJSUdOxgxgUhNTY3fqwEAADKwbt06VVdXd+xgxGRE3A/Ts2dPv1cHAAB4sGPHDjuZ4B7HO3Qw4lbNmECEYAQAgI4lVRMLGrACAABfEYwAAABfEYwAAABfEYwAAABfEYwAAABfEYwAAABfEYwAAABfEYwAAABfdYhBz5B9oZC0dKm0YYM0eLA0apQUDFLSAID8IxgpQgsWSBMnSuvXt84zlwyYOVM691w/1wzo/EINIf37l0u154MNqjx4sI7+4SgFyzgTQHELWOaSeh1gbPtevXpp+/btHXY4+ELJRJhAZOxYcyXF6PnuSL3z5xOQdMTtio7hr1cv0P7TJ2pIqPVM4ONgtdZOmamT7uJMIOkXy+DL1uF4PX4TjBRQJiLXBzbz+kOHRq9HbEBi1mvNmtwfUAvtIJ7J+hRChimX5ejltbP1/oW2P+QqEDnx7rHmoupRjfXCcs4Elv9kPgFJoi9Wv37O7SeftM4jndsheE4mWB3A9u3bzXm8fZstTU2WtXixZc2d69yax7nw1FOWFQiYPET0ZOaZyfzfXa66OnoZ89j9f6L1rq/3/jnM/2PXI95klsslr581X9stk/Xxul0LtRy9vPb+VU3WF7XY+rbm2rfmceRrZ+v9c/k5CkVTfZNVG6y2Qgm+dCEFrPXBGnu5otb8xQrHlE/sY3uevVzA+sukp9r1W5CvY0Gx2u7x+F2UwUi+fvzMTh37PrEHrpoay3ryycwDlmDQ++cwXzYvwYhZLldf5PYcxHOx3TJZn1Tb1UwDBljWI494DxjzWY5eyuRcPWWtVfSHNI/NfPP/9rx/5Ge95Zb2fY5MDiR+HHz+cY+3MwF7uWI9iDZ/seIFHlaSIO4j1VglavJ08hZbRoUQCOdyOzYVwD5CMFIAZ7ReMxHmwJXs/337WtbUqfHXO53PkY3MSOyBJJ1sjjk4J/usbnAW7wuTaLu506RJ6R/ovQaLkcub599wg+ffSk8BY7pZsfaUY6rtal774p5P2T/ysWfxzryA9YN+T6VVbqkyLuZAksnnyCSbmO4+m+pH3Eum0kyPn+3tTOD/rvR2JpDosz/xRPYD30QyfZ2Ez/P6AxVnMvtRutnmZMcCc2v2lVwHCIn2xyc8bMdMs5vZeO10EIzEke7Bp728ZiKyPSX6HO7nT3RQz+THP9UXOd6XLd1gyEsmItEXOdnBx+tvnwk+MvkcXsrIBFGJlkn1w5puOSYS+domMDAZkJCHM1Gv7+/++JrPek6CjIuZ7/V10smoZGufjXeAMBnNVJnKfv2cyRwI2psZiSxHr/tAewPfdDMKsWUUG5zFKzP3/UOPZP6DeYtusPdJr9lms56R+3yq4NjLZ3MDz3Q/fybbsT3ZzdjvWs2QJuuhixfbgbDZ/7JdVZizYOTll1+2vv71r1uDBw+23+Dpp59O+ZzFixdbn/vc56yysjLr4IMPth588EFfqmny3WaiHYF+VqZ4n8M9G4j9oqbKDKXKTGRzcquJMs1EpJrcz5rOj3qiKd4PmZcfNy+vk+qH1Ws5JhO7Xb0eNM1yXt4/8qBlfgSTZVwSBSRXXpleMJiq3DLZPu3dR07Tn6069fXcZiT2oOb1IBb72YLNny1V4Osu4yV7lM5vQWxwluj9zWQOiO0p6MgDbY8eibe1mb7WzZl3g25JOzhOFXim+/nTmSZFZICTZXxN9jLxd0325070+U3bpmU/earwg5EXXnjBuv76660FCxZ4CkZWr15tVVZWWlOmTLHefvtt695777WCwaC1cOHCvAcjuWgzkYyXTESqKpr2TIk+R7z03QHV0Y0T432OXK1n7GS+WJlkAtKZYss+kwNUvLP8LepnT+n8uKXKFrg/rPGmZOudqrrtz392qgAjX8+8jpcCNMulWiwye5HNjIvXz+9u38hl2nPwyWSKt23DCYKxx8c9lXE20ct+1J59PV5GIZuTee3+fdx9JLOzntig1uv3M5zigJ1OwJqtQLckxevEC3zc7M2MXyT/rqVqHOyWY7YCEq/H73Z17Q0EAnr66ad19tlnJ1zmmmuu0fPPP68333yzZd63v/1tbdu2TQsXLszrOCNLlkinneY+shToEoq73B9ekEZ9QVnx7LPSd7/b/I5W23E9fvuwdO210scbov+fDQk/x7O/k/WTnyjwcW3LLGtIlQJ33y2d9Y02iy/9i/SVr2Z33UoU0ki9qkHaqI0apFc1UmEF1aePdNll0p13Zr884uneXTpt1+90t36iarWWx3pV6Se6W79X2/IwztTv9KjOb9NN013l5s0b1XXzfD3a5vUSvU6y50Q+N956X6279XrVN/TW2/G7x5p98uqfSLUft/3fKVqqhfqKUvlWjz/oD7tGxd1GZt8eMti5b97DbOvLdL/u0jUpX3eartHLOrVlf0gm0eeP3G7xlrE8bJ9E+2c6ku0jke9fW1KtW7repbm742/nRCLX8SB9oBt0e8r9yEuZJWK2q+lhW1fnbZ0yKbfWMjOvZSX9XsUTllSn/npC39IV+qX9vFTfz3hit5GXMopftkP0gL6n1Tq4pTyMyDL6q07SSfpry+N++kQ/0zUZbaN0vsPxdG2stz+32W82BKs1aM+adg/Il5dxRrwEI1/4whf0+c9/XjNmzGiZ9+CDD2rSpEn2ysVTX19vT5Efpqampt3BiDvORq3ZxqVN2n/KHzN+LQAAOpO3p5+nysbWY+8b9yzWcZNOzUswkvML5W3cuFEDBw6MmmcemxXcu3dv3OdMmzbNXnl3MoFINpizRDMgVWRmAgAAtGUuWVDU16a57rrrNGXKlDaZkWwwI2OaIc8nTgxq7fQxLfOrq6Sf3SWddVZr1UpszsgNYB55xFkuVqbPix2F8oILpE8/9R5gmee5+vZ1brdubbuM1/TdGfqDXtGorFclmRTu2zpSQ1QbNwo2qcFaVemzeivtlHgm0i0P11g9qYc0IeP3dVPns/VDXaXZKZe/WA9qvr6Z0Xq/3XdUm/3BS3o9Xqp4nap1te5KWgWyIVilKaG79by+lnRbe5Fof2hPGjqVreqj3vo0wf7pVAFcq5/pYw1pUwURrzzS3bbt/Q61V+y+3p7qp8hy+1R9dIH+137t9ny3c7nt0+VWnZjPlu91CjeXdbyqpNbv3sdRVV0JuS8UcKppIplrJ3WaYGTQoEHatGlT1Dzz2KRrunbtGvc55eXl9pQrJiA566yAli4tbTP8tDloXz1FCje0fZ79ZQtI1/w/6VvnRtfHZ/q8WF/9sjTnPuf6MfHamZjHt9wiHXqos94jR0qvvuoMo/3ee9LNN7cNGJoandsqbVSlone2eMxylkpbduMfXSFddZV0661t1ykdp+gVfUarky5zmD7QKVpmtxtIxpSPCSrdMslEuuXh2qzBnp6X6kB7sf7X0+uY94t8/3TWe+mm1F/xc7RAMzVRNVofFXhM0XR9/eIBWvjQBm3QYC2NOJCY58xX26HND2xco6c1VlN1c8pt7UXk/mAOxKO0VOdpQbvLP5FKbUz6/+6q1Tx9t6WMJmu66jRA39CzmqwZbdoopLttkzGf/0rdl5VyTbWvu2U9WNHb3syfpYmq1D5vn9MsFJC6l2zUksCXtL6kSjcGbtX2kj4aVLJBdYEBWlEyTIGApWBJWMFASMGSkEoCzv2+vUOadkdYu3aENHtWSJ/WBbQr0Ef9A3UqaX5t9z2i7weS/y/u/Dj/S/K6hwY+1jOB87U+UKVKd37LbYLXjn1dr8sE2i5jmZuI+YcGNuuZwEXaFehhP+4W6GLfBpK9TqxfN0m1oZY2I+Yijp0mGBkxYoReeOGFqHkvvviiPd9PJiA4Nc7xzmQmEl27xTAHvnXrnOUin5/u85Jdi6M1e9P2uiem6U3sdU/c1zPtYZIdmM2Pihexy5mzahMAJbo8xCWXOMGRGwy5nzeW+WHzItly7vVz5s1zMlGxZZSOdMvD/YE2Z6WbNUD9VeftzCMO87yB2pL0dcwPwnpV2weC9qx3MpFBRaQq1eoJjdMrvedrnsY3r3NIX9QS+/PP0OQ2gYj7ucx6T1RzfWgWnKenNEp/0aWaExUwZZNZZ5MV6a8UKaQIVVqvJ/WtqLPTlvvuQSbYfFsSiLgvWcESNfQbqJ3be+mEkhUqLWlSl2CjfWum8pIGHVPyL/UrqdPOYE/1Ltmm75Y8qr4ln0olXVpfs/n14j925lkl0r6SCnUN7GtdLhD/eXeW3Ko7A7dqUMlGlZc0thwoG0u6aEvJAFmBgKpKtkkl3SNeI+IAHnXb9mBXrZ160N530vBP5+a0r0XOrJTf3E9Xoy2Synx7/9jHPbQ7Zk5mmdt1U2aoKo9Xk047GNm1a5fef//9lsdr1qzRG2+8ob59+2r//fe3q1hqa2v129/+1v7/ZZddplmzZunqq6/W9773Pb300kt64okn7B42hcgEB5ksl87zvFxgzcneeL94WKpgyF5Go+yzOXOgSefgFxmUxGZmYtfpqKPafrb9q0K69UtLNWzb29Izyvgg6v62mYDMvGe8MjIt/SdPblu2JmBqbJT+678yKw9z0J4VjL7aajY6+zyi8zVJM+33ilwH9wdhkma0SWu/1WeU9gWrVf5JrdMJMsl6J+IGFnN0iQKmZ1mb/1t2gZ/w6CSV6CydpWfbZE8Sv7aV1kE9las0y/6lskwxBAPOr1bQPA4oYOaVNh/om/8fDgb0SbCvSoKW+gQ/VYn7vJZlIh6XtL7O+uBn1L/kn63LuAGEG0SY57gBRjBgn5lbCf6XilmiXLu0IkUGsK342eRU79XVTuynPmAeoMguVq37XReFNURuhjtLFUQh05G0+cQlLO2xKrUvXKGQFVQoHGy57TegRN17BGVvpECJ7A26Y6e0vlaqb3RewHw8uwNpcx1Gy63zHu5j970C9rzW9w/EPjf2NWP/Fzk/4rVbXsddxn2OUj8/5TJtpjjv0fy/C6yH9VdrhL3M8dYKHdprs6Ze/JGC99zTvJ6tn8/0YWlZ70ZT1VpjByL5vop02sHIa6+9ptNa+8e2tO246KKL9NBDD2nDhg1au3Zty/8PPPBAO/CYPHmyZs6cqerqav3617/WmDGt7TUKiTmgefH2205XYfdg7PV5iapSTA8ft+rBDUgSZW/i8RIMmYOaOWM1Z8LpHPxc9k4ckH7968RX9o0NEI5+b4E+O2eiAg+lPoilOojGywwFFdKpWmqHMCanonNG6ZxzgnGDOJM9eughp6yd72Li8jAf1JTIjptnaMmnz+qUGWOdH88IcQ858dJHSRx7w1l6u8sou4wiIyhTDibt/7TObROM/c+vg6owmQezw8TUU3nZjvGqZeKyLFVsWae7e9+iSXv/yxyRnAO/mVrumyNV8637uPn+ntJKdS3dq0Dk/9zgwUzdyp3HoYbm+RGBRWnAPtDbzzVBQZIzwVjmUDlAez0fvN3XOU5v24fddKR17hlyDwCmcr6bVFGpvQ1dtGlLqRpDpfbBt2toj/YPr3UOmM0Ha5kBI8zjcPPzW6bYx23nNVb01AvhM7R5dw8dFl6lUeGl9muVmOXcg2jzsvYByrQ/s2Jer/lxOBzQNquX+oY/jTngx7x31Px489qWodlvP1FvHagP2uy3ixcn+B1008vmCz15sqwtdXZgnUxD937avUfqG279fn5cUq3t37xER57lIb2bRCBJu5l8a1JQ7+tg++fhAx2i+b+Rguan5JiRCsSeLVZVa82XLtGG7ofabURM1Uw+MyJZ6dqbL9kaZyTd7r9eSqaqSrr0Uungg50zcnNmnmjsBbOskSiD4VZBJDrQex9DJbl4B6O1qrEPYJEHv2QS/kBEMikgc8D0UJDuQXSs5tvrEK99TJvMkJcUU4JVMtzVintwNg2mTeRjIiuzQyRLOw0YIN1zj7OBzUq6G+Rb30recjTyeZGNfwYP1oItozRxSjDqbQ+oDum3lyzVFw6NSANNmSRtrpXKAva0oWyQZne5UivKjle3LrtV2WWvupXtVrcue+z7x3V5Q+eUPWMfcwNuUNEl5jZyfkQwUDDMQbqp+dYcPM1kxoQKSfWhMq0JDdWm0CD7ft/QVh0ZekuVob2ty5tA4IijpD79pB69pb0N0h/+KH26vfn1mg+g7n1z6z4OR7xnOM7/Wu5HvI473XCDdPrpbXZkdzf+eH1IH2qoXf2TUe4h3pemrk7W5MkKROxIVjCoQGSr9zS1t4oymVO1uKW9WFq/h81fbDsYiPi9aQkOJk1yvsujRtm/8f/+5VK7p4h78I0aSyPe70oHc6tu0Es6XR9Wj9L0mcHon8NkbQRyIC/jjHTGYCTRAas93DNaE3BPnZqlA307gyiTUTh3wFLNu2eDXvlgsP5j6iiFA0HPn3fuXGn8+CQ7trtCHr/QtcEaXRVqDYbcWCBBTJE40PEQxcT7rWlzoHeDinvvdaLMTDZaoh3JHOjLA81T8/0h/aWLvyMdfZhUv1Nq2KXwvp3avG6XGnfvUp9dq9Vt8yoF1NAceJise0l++8OZz9DYfOB3b01QYKZG974lq0na3VSpuaHvaEhTrb7Q9Bf1bNrZurwJAL41XjpxpFRaLi1fId03R9q4JSqwaL2NCTzieP+MK3XJwvPsrFoo4szabo9ohfTSLTHb1t0f0giYM+bhqBpqCGnNlHt1yOw021NEiv3SpPps550nPfVU2m8zXZPsqkUj2wHJeM212yi5v5mRmeKU4n2xU/6QJBCTdUl4lpnIlVc6Jxtz5kSvT7zMaWyXyJoa6Re/cJ5vGsaZ9ffYUj82M2NVVyuQ5OQsHwhG2imbwbH7fTDjuH3nO2kc6HMURMX7oqf7ee1j79YkmQnTx9hLqqb5bDE0cpSWvhr0FqynGei0pK8ighNzwEp6cpCsQMxyFSbVHjFN/qF03BHSvm3Svu2t07r3pY/elYJNTuBhnpeDTENYpdq+t5t2N3bT7oZK7W6s1O4G87hSexq72vd7NW3TNxp+5wQSJnhouY28HxlYSOrWS9ryaXNAoIwyXEmDgdgff3NwnDUr/QJYvFgLtp6a3rHIy35khgQ262oOHpkELF6Oqtn4sTEZNtPlzS3XVJ/NrJf5bKn6fCc4625UF10enBPVhqrlIGq++6mygikyI5nGEDk568/k7NQ9OYm3PkbkvJisqGLXuT37R0ZRXXYRjGSBux8tWhTd8NGL2My92be8VqVkkhlJtt/GC7zjfdHNMqlqF1pO8qYvUPBbCTIThlmJiFF3M4q8Ev2wpFMnFU9kVU6oUdrzibS7Ttq9xbm/7CXpsQecIKOyeXKDDnPfZCbay6T0TTfwfZZU3zyZx8Gu0jnjpIqeUpdKaf1m6TePSNt2ye7N2mCWa162oTl42K9K+uBDLXg22GbbR56IfVuP6TF5iIYzSedlmuGKle62jck6pHUs8vpeJsuWYTuClAXQ3sxMoqxLe78jXs66q6oUiAny22Sc7AU9nNEHAqrvX61n7lmjQVXBXNccpM9rQNCeuvZkYnfseC31871OHhGMZNFjj3nLaKQKKlJVpWRrn4ndb1MF3rES/Y60BNmPh3TulBRnXf37S1tMl7cMI69k7UFSpZjMepqgoYc9wIHUPeJ+N3PbHFQM6imF3G5waTIFs0/SXlN90EUaPkrq2keq6CVV9G6+jZn+tVIaf3Fr4JGsTEw0mHaq6tSkJ2KhRUt0+n95PEDFtplJVv8XEXmnleFqb31je8/6vH6xTcBsxj1KZ3tEtFFIWADpZvjS+fxeP5vJYpgRFnOR9UnnAJ7sdQqF++VKVHWS788RSvNsuT1nufloZmF1ANm6am+mzNVPs3XVXPfy27FX8nXnJbpybr7Fu2quuSy7vX5eCyTZ5Wbd67y7172OffN4lzo284IBy7p5smXtH7Sso0st6+Qyy/pKhWV9q6tl/aCbZU3ublk39rCsqT29Tzf3tqy7DrasWcMt656RljW2q2V9tcKyTi23rOFlzvscUmpZQ0osq0/Asioy3GheLxttrhPu9RrtyXa2dC8jbSZzGV9zOd/I7ZLvnTbR+8VOLTtkzGeMd131eLzux+7lj2Nf+8knk3xJcvjD4uW9vL62e2nldPc3L9/jdMrMXG7W63YrBEl/IPNsbp4vR1+IV+3trA1Y29s4NJOT/ozrSHMobsrbNBwwKet0660iJTuDMMMRH3OQVL9J6lMi9XangNSrxMlweLmwkKkG2W1Ju8wUbr5tnnaHW//36NPS6K/LGc4xzTRYuhvNa+rcZBq8ZJUyOetJmfZK4yw33ufPVp19osyYO8Ke17r1ZL2rspGqbM/nTXdfcxs1enmvdD5bvNEDEw3Ok42zbi9VDil6xRWEPPdKSSgf9f/tQDVNlqVTBZrr3zDfZKtVb021dNeN0rCDpE/el7aulrZ+0Hz7YduBCGKZXhbbw9IOS9oRcbsz4tYEG14Cx9g2K16/2LENBr3wcoDwWr2VaGfzsmNlGg2neu0Mulonlc6XJFnvqlRBVibBWTbkcl9L97MlKut0qrLa0+o+3e2G/Nf/Z4hqmjxl5uJlLQupuiVrElWdJC0Mk/YvsazDSy3rC2WWNb6XZd11jGXdtl/yapPre1jWD7tZ1viuThXMiDLLOqK5mqRbhunkVCl4r1UZqdLSXssxUZWHqaJJJ0UeubPF20HN43g7YzrVGel8Lj++EO42y7Qqwa+Ue673tWx8tnSrsvK53dAh6v+ppsmRyBMIM1hfbDfyQqxuaTcvDe3M2BkDzVC0JdKgoHN/vxJn4Kx4gmVSv0OkvgdJ/Q6W+h7s3K7aJJ3RfDaXDtMQL92r+cXr8pSPs+VkmQmvXaIjn2PWxc8zTC/dSHN5ZpaNNLVfqcp8ZGba89lyedZd4NULHc6Cwqz/p5omTzpkdUu6Yn80TPMKE2hUB6UhQakqKA0oid+Ww4xZsSUsbQ45txdPkc79gdRnqHONiWw10Mm0F0qi6oRcf7FTDRaX7PObgOWJJ5wfaC8DzHWEYKA9cl2VUKQHkZwHTB19uxWiUOEdkLwGI/kcv7FTSuf6MR3W+tXSwUFp/1Jp/+bgI17GY2dY2hCSNkXcfmoufhGxzO1jnAxIsgKdGf+6KymZL6D50Yq8OE689FU8sRcHSvdKhdnacZJ9fvfH33weM6x4ey817ffVJbPF64WhvC6Xb7ne19or3cuIF8t2K0TBjntAojdNYQeV/mjcJ637m7R6iTN9/EbbRqVmfI3akPRxyLk1U2X/5BfnSXZ23p5BfVKdeccO7ZyogajPDb0yPlv2+wzT78xIgTfg6zSy/QPJdisKO8iMpCfbHQE6nK1rpHcXSu/+UVq7TGoyI3pF2BGQ1jRIa5uktSGpLtz2x376dGf41kRn9OZAGu/HK1Hhm9cz7TpSXR/CfX93hK9EZwvmoJmsp0quMwi5Olv2+wzTrJcp/1TBQKLt015eskmJ9j2kV87Z/F6w3RDJ6gByPeiZnx0BfBMOW9ba5Zb1p5ssa9aJbXu03H6AZT11qWW98ZhlbVvvvbV2uq33vRZ+NlqLF/jgQBnzMpjZgAGW9cgjuRtQqhBa8xfSQFTwju3WqdGbxiO/2/61WZlUZ8LtSZWan+dNb0pvPuVM29ZG/LNE+jgg/Xu39H6Tk/nItFGn13VMt/Db29DP7+qEQhkIJ1cpv0JoiElda8fEduu06E3jUcEcn7zUE8VbJs4Vadsc+Hdtkd54VHpjrlS3qnV+l27SYWdI2/tLV/3caQcSKZ3BkfJV+IXaTbEQFMK1QDioAIhAMOKR323/bF7GiDC8XN3TDWDOPltas0Ra8bC08nkp3NhcT1sufebL0lHnSYeOcR77lRryo/D9HHEzHzpiY10AnRYNWD3yu+2fffAwZ7Pxggwzzxw0zP/dx6lsqpWmjZdW7i81bG6dX3W8NOwi6cizncvTR2Yn/OoW6kfh56qbYqHoiI11ARS9oh9nxO+OAJ7GiPDSvbVC0vFl0vAyqXuJE4iU95CO+bYThAw6uvDGiPCr8At9XIfOMPYHAKSh6IMR33uXtfdgUCbp5HInCClvXuFtYWlZg3TH49LpZxRuasjPwu/AgwN1jJQfAHjXfN304uZm7k1b0EjmpDznTQgyPRiYLXdCF+lH3aUvlDuByKaQtGCPdO8uaXmD9MzzTrreVAWlyk7EG8rdMPNNj4hcpYZ8LfxOzO/tCgBpYARWvzsCeOnh4R6o3WUOL5VGl0v9mleuLiQtqpdWNmXWlTNVt9BJk5xqjVwWCL0wsq+zN9YFUPDoTdPZDhrGxd+UvlouHd6luctuWHq5Xnq9sc1o7VG8HHzidQt1L8JWlEPSdhKFMPYHgKK1w+Nw8GRGOsJB45xznDFCnvuxFNojhSzp/xqk/6uXGjy+vpeunG524tlnnfeN9xoGZ9QdC1knAD4hGOksB41dG6XfT5Tef9FZZvBxUtUEaWe59yvSpjN6W0ENSQsA6MgYZ6Qjiu3hsWap9ORF0p5PnMHJTr1WGvkjKRjRCer6650A5qmnpFmz2t97x+/L0QMAig69aQqROeD/7X+k357lBCLlNdLnfyGNnBgdiEQGMOedl53eO4xPAQDIM4KRQtO4T3r2CukPV0tWSPpXo3TTW9LXL3SqT0zbklx25WR8CgBAnhGMFBJzQbsHv+Jc1C5sSX/aJz29V3J77JquvabXTbyAxB1AzIgNSNIZQIzxKQAAeUYwUih210kPnyl9/Lq0LyA9sscZRTWS2+3XjPsRbyCzRAOImcc33yzV16ceBC1bQQ0AAB7RtbeQApHNb0tlfaRfrJO2hjPvFRPZKydejxsv44UwPgUAIE+9aciM+G33J9LD33ACke6DpKpJqQORVA1N3Uat5eVORiS2d0yy6h6XCVQ+/NAJeubOdW5Nd14GygIAZFnRXyjP90DktyYQecsJRC5+Tnqz1ttzUzU0NdkRM4havOHdzTxT5eIO856oyqWzX0wOAFAQyIz42Wvm0bHSpjel7gOli34v9T80ew1I0xkvBAAAH5EZ8Wt01R0LnMaqXftKFz0nDfhMdANSU41iAo9416rx0oCU8UIAAB0EwUg+xDYGPbaLdHZXE11IY3/TGojE9oqJvVaNyZh4vcAZ44UAADoIgpF8XZHXzXAMLJG+VuHcf2mvtP330lklTrVLZLbDBBymPUfstWq8dql1q3tMY9V47Ubca8ykqu4BACDH6NqbS7EXnSuXdGl3qW+J9G6j9Nje9LrbZhoIGfGqe7j6LgAgh+jaWwhiG5Ge09UJRD4NOyOrptvdNl2JBkEzgQ+BCACgQFBNk0uRjUiP7yId1kVqsqQn90j7Muxum672VvcAAJBjBCO55DYi7RqQ/qO5nciL+6QN4dTdbbM5vgfjhQAAChjBSC65jUiPqXMCko0h6e+NqZ/ntVsuAACdAIOe5ZLJSNz5Y2lYF+fxwn1SnI4tGXfLBQCgEyAzkkum2qXxRakkIK0plT5KcrVcg+62AIAiRGYkl975vfThUqm0Qpr+mnOxOdNA1Ygd7j2d0VUBAOhECEZypXGv9KfrnfsjfyT1O9BplHrPPdJTT9HdFgCAZlTT5MqyWdK2tVLPKumU5myIi+62AAC0IBjJhb3bpKX3OPe/dKtU1q3tMnS3BQDARjVNLvxzntS4WxpwhHTUeTl5CwAAOguCkVz0oPn7r537J3y/bUNVAAAQhWAk29b8RfrkPamsu3TMuKy/PAAAnQ3BSLa5WRETiFT0zPrLAwDQ2RCMZNOOj6WVzzv3T/hBVl8aAIDOimAkm1Y8LFkh6YCTpYFHZvWlAQDorDIKRmbPnq2hQ4eqoqJCw4cP1/Lly5MuP2PGDB122GHq2rWrampqNHnyZO3bt0+dSqhRWvGQc3/YBGnJEumxx5zbUIph4AEAKGJpjzPy+OOPa8qUKbr//vvtQMQEGmPGjNGqVau03377tVl+7ty5uvbaa/XAAw9o5MiRevfdd3XxxRcrEAho+vTp6jRM9cyujVJpT+nMydLa2tb/mSv3zpzpDHYGAADalxkxAcQll1yiCRMm6Mgjj7SDksrKSjvYiOfVV1/VySefrO985zt2NuXLX/6yxo8fnzKb0mEbrr60JToQMWprpbFjpQULfFk1AAA6TTDS0NCgFStWaPTo0a0vUFJiP162bFnc55hsiHmOG3ysXr1aL7zwgr761a+q09iyyrkgXti0G2mIP/aIYS6SR5UNAACZV9PU1dUpFApp4MCBUfPN45UrV8Z9jsmImOedcsopsixLTU1Nuuyyy/TTn/404fvU19fbk2vHjh0qaP/4X+d2VaO0oznwiBeQrFsnLV3qXDAPAADkpzfNkiVLdMcdd+iXv/ylXn/9dS1YsEDPP/+8brvttoTPmTZtmnr16tUymUavBe29Pzu3bzWmXnbDhpyvDgAAnTYz0r9/fwWDQW3atClqvnk8aNCguM+58cYbdcEFF+gHP3DG3Tj66KO1e/duXXrppbr++uvtap5Y1113nd1INjIzUrAByfZaacs7kgLSag+9ZgYPzsdaAQDQOTMjZWVlGjZsmBYtWtQyLxwO249HjBgR9zl79uxpE3CYgMYw1TbxlJeXq2fPnlFTwVq92Lkd8jmpX1Xia9GY+SagGjUqr6sHAECnq6YxGYs5c+bo4Ycf1jvvvKPLL7/cznSY3jXGhRdeaGc2XGeeeabuu+8+zZs3T2vWrNGLL75oZ0vMfDco6dDebw7MDhntdN81YgMS9/GMGSYSy/MKAgDQycYZGTdunLZs2aKbbrpJGzdu1HHHHaeFCxe2NGpdu3ZtVCbkhhtusMcUMbe1tbUaMGCAHYjcfvvt6vDCodbMyJqwdHBf6YknpMmTpfXro8cZMYEI44wAANBGwEpUV1JATJsR05B1+/bthVVl88jPpfdvk/ZZ0t07na69JvAwg7kNGOA0VjVtREzVDBkRAECR2eHx+M21aTJlBjCbc4Nzf02TE4i4A5yNGydt3SqNH+904yUQAQAgIYKRTJiByyZOlA5qbv/xQVPr/xjgDACAtBCMZMIMXLZlvVQTJxiJHeAMAAAkRTCSCdMWZGipVBKQPglJ2xI0u2GAMwAAUiIYyYRplHpIc0ekD5IMdMYAZwAApEQwkolTTpE+U+7cfz+misZggDMAADwjGMnE9o+knpYUsqSPYjIjDHAGAEBaCEYy8cFLzm3PI6T9qqL/Z8YZmT+fAc4AAMjVCKyIGAL+pHHSlIlOrxkGOAMAICMEI+lqapA+bO6ye8jpzoBmZmAzAACQEapp0lW3SmrYJVX0kgYenVmpAwCAFgQj6dq80rnd70gp4oKAAAAgMxxN07WlORgZcFiGRQ4AACIRjGQcjByR9lMBAEBbBCPpIjMCAEBWEYyko6le2rrauT/g8OxuCQAAihTBSDrq3pOssNOTpsegnG0UAACKCcFIRlU0h7cO+w4AANqFYCTTYAQAAGQFwUg6CEYAAMg6gpF0bFnl3O5HZgQAgGwhGEmnJ80nHzj33/9UeuwxackSKRTK2sYAAKAYcaE8r0wgYoWkBklnjG2dX10tzZwpnXtubrYQAACdHJkRr55/2Lnd1BQ9v7ZWGjtWWrAgy5sGAIDiQDDihamKeeYB5/6WcPT/LMu5nTSJKhsAADJAMOLF0qVS+e74wYgbkKxb5ywHAADSQjDixYYN0n7NRbUllHw5AACQFoIRLwb2l/o2F9XmOJkR1+DB6ZU+AAAgGPHkiMFSMCDVW9LO5jYikczQ8DU10qhR7FIAAKSJzIgXW99rbS8Se00a9/GMGVIwmG75AwBQ9AhG0hl59ehTpaqq6P+ZcUbmz2ecEQAAMsSgZ15sfse5PWGM9OGzTq8Z01jVtBExVTNkRAAAyBjBSDqZkQFHOIHHqadmXuIAACAK1TSphBqlT9537g84LOXiAAAgPQQjqWxdLYUbpbLuUq/qNIsXAACkQjCSypaVrVmR2J40AACg3QhGUtnsBiOHt7+0AQBAGwQjqdS969zSXgQAgJwgGEll1ybntmfM+CIAACArCEZS2fOJc1vZLzslDgAAohCMpLK7zrnt1j/logAAIH0EI8mEwxGZEYIRAABygWAkmX3bJCvk3KeaBgCAnCAY8VJFU9FLKi3LzRYAAKDIEYwks6c5GKGKBgCAnCEYSWbnZud2jyUtWSKFmqtsAABA1hCMJLJggTT5P537b6ySTjtNGjrUmQ8AALKGYCQeE3CMHSs1bGvNjBi1tc58AhIAALKGYCSWqYqZOFGyLKmy+cJ4u5uDETPPmDSJKhsAALKEYCTW0qXS+vXO/cqS6GDEDUjWrXOWAwAA7UYwEmvDhtb73ZozI3vCyZcDAAAZIxiJNXhw22AkMjMSbzkAAJAxgpFYo0ZJ1dVSINDaZsRtwGqY+TU1znIAAKDdCEZiBYPSzJnO/dgGrCYQMWbMcJYDAADtRjASz7nnSvMeloIxmRGTMZk/3/k/AADwLxiZPXu2hg4dqoqKCg0fPlzLly9Puvy2bdt0xRVXaPDgwSovL9dnPvMZvfDCCypo/3GScxuslP53rrR4sbRmDYEIAABZVpruEx5//HFNmTJF999/vx2IzJgxQ2PGjNGqVau03377tVm+oaFBX/rSl+z/zZ8/X1VVVfroo4/Uu3dvdYiL5PUcKI0f7/faAADQaaUdjEyfPl2XXHKJJkyYYD82Qcnzzz+vBx54QNdee22b5c38rVu36tVXX1WXLl3seSar0mEuktdtgN9rAgBAp5ZWNY3JcqxYsUKjR49ufYGSEvvxsmXL4j7nd7/7nUaMGGFX0wwcOFBHHXWU7rjjDoUK/aJzbmakW3+/1wQAgE4trcxIXV2dHUSYoCKSebxy5cq4z1m9erVeeuklnX/++XY7kffff18//OEP1djYqKlTp8Z9Tn19vT25duzYId+Ckcp++X9vAACKSM5704TDYbu9yK9+9SsNGzZM48aN0/XXX29X7yQybdo09erVq2WqMeN6+FZNQ2YEAICCCUb69++vYDCoTZs2Rc03jwcNGhT3OaYHjek9Y57nOuKII7Rx40a72iee6667Ttu3b2+Z1plrwfiWGSEYAQCgYIKRsrIyO7uxaNGiqMyHeWzahcRz8skn21UzZjnXu+++awcp5vXiMd1/e/bsGTXlHQ1YAQAozGoa0613zpw5evjhh/XOO+/o8ssv1+7du1t611x44YV2ZsNl/m9600ycONEOQkzPG9OA1TRoLWi7P3Fuu9FmBACAguraa9p8bNmyRTfddJNd1XLcccdp4cKFLY1a165da/ewcZn2Hn/84x81efJkHXPMMfY4IyYwueaaa1TQdm9xbqmmAQAgpwKWZcW5JG1hMb1pTENW034kL1U2pkhuGyCFG6XJb0m9qnP/ngAAdDJej99cmyaefdudQMQgMwIAQE4RjMSzp7m9SFkPqUtFbrcAAABFjmAkWXsRGq8CAJBzBCPxMMYIAAB5QzASD6OvAgCQNwQj8ZAZAQAgbwhGkjVg5bo0AADkHMFI0gasXJcGAIBcIxiJh2oaAADyhmAkHhqwAgCQNwQjyS6SV8lF8gAAyDWCkXjXpWlpMzIg5xsAAIBiRzASq35H63VpaMAKAEDOEYwkarzapZvUpWvutwAAAEWOYCThGCO0FwEAIB8IRmLRXgQAgLwiGInFGCMAAOQVwUgsxhgBACCvCEZiMcYIAAB5RTASi8wIAAB5RTASiwasAADkFcFILBqwAgCQVwQjsRhnBACAvCIYaXNdmuYRWCv753dLAABQpAhGItXvlEL1zn2uSwMAQF4QjMTrSdOlUirrlp8tAABAkSMYibTnU+e2kuvSAACQLwQjkRr3OLdcrRcAgLwhGInkthcJludvCwAAUOQIRiI1NTi3pWX+bA0AAIoQwUgkMiMAAOQdwUgkMiMAAOQdwUgkMiMAAOQdwUikpuYGrLQZAQAgbwhGIoWaG7DSmwYAgLwhGImbGanI3xYAAKDIEYzEy4xQTQMAQN4QjMTLjFBNAwBA3hCMRCIzAgBA3hGMRGra59ySGQEAIG8IRiLRtRcAgLwjGIlE114AAPKOYCRuZoSr9gIAkC8EI3EzI1y1FwCAfCEYiURmBACAvCMYiURmBACAvCMYiURmBACAvCMYiRRiBFYAAPKNYCRSE9emAQAg3whG4mVGuGovAAB5QzASLzNC114AAPKGYCReZuTFl6QlS6RQKH9bAgCAIkUw4lqwQNq6xbn//66RTjtNGjrUmQ8AAHKGYMQwAcfYsVLQckol1HxbW+vMJyABACBnCEZMVczEiZJlSaUBp1SamkvHzDMmTaLKBgCAQgpGZs+eraFDh6qiokLDhw/X8uXLPT1v3rx5CgQCOvvss1Uwli6V1q+PLgk3M+IGJOvWOcsBAAD/g5HHH39cU6ZM0dSpU/X666/r2GOP1ZgxY7R58+akz/vwww/14x//WKNGjVJB2bDBuS2NmNeUZDkAAOBvMDJ9+nRdcsklmjBhgo488kjdf//9qqys1AMPPJDwOaFQSOeff75uueUWHXTQQSoogwc7t8HmKhojlGQ5AADgXzDS0NCgFStWaPTo0a0vUFJiP162bFnC5916663ab7/99P3vf18Fx2RqqqulLs3BSNiSImppFAhINTXOcgAAIOsiKydSqqurs7McAwcOjJpvHq9cuTLuc1555RX95je/0RtvvOH5ferr6+3JtWPHDuVMMCjNnCn94Jttq2hMIGLMmOEsBwAAOlZvmp07d+qCCy7QnDlz1L9/f8/PmzZtmnr16tUy1ZjMRC6de640a2bbKhqTMZk/3/k/AADwPzNiAopgMKhNmzZFzTePBw0a1Gb5Dz74wG64euaZZ7bMC4fDzhuXlmrVqlU6+OCD2zzvuuuusxvJRmZGch6QnPYF6V1JvfpKc//HaSNiqmbIiAAAUDjBSFlZmYYNG6ZFixa1dM81wYV5fOWVV7ZZ/vDDD9e///3vqHk33HCDnTGZOXNmwgCjvLzcnvIq1Hxdmq49pPHj8/veAAAUsbSCEcNkLC666CIdf/zxOvHEEzVjxgzt3r3b7l1jXHjhhaqqqrKrWsw4JEcddVTU83v37m3fxs73XZN7xd48B0EAABS5tIORcePGacuWLbrpppu0ceNGHXfccVq4cGFLo9a1a9faPWw67EXyCEYAAMirgGW5Y54XLtNmxDRk3b59u3r27JmbN1m1UHpsnDTk89Kli3PzHgAAFJEdHo/fHTCFkSNkRgAA8AXBiKupuQFrsMyfLQEAQJEiGHE17XNuaTMCAEBeEYzEVtOQGQEAIK8IRmKraciMAACQVwQjbTIjjDMCAEA+EYy0yYzQgBUAgHwiGHGRGQEAwBcEI22GgyczAgBAPhGMxF4ojzYjAADkFcGIiwvlAQDgC4KR2MwIXXsBAMgrgpHYzAjVNAAA5BXBSJvMCA1YAQDIJ4IRF5kRAAB8QTASO84IbUYAAMgrgpHYEVi5UB4AAHlFMOJq2ufckhkBACCvCEbaDHpGA1YAAPKJYMTFoGcAAPiCYMTFcPAAAPiCYMTFhfIAAPAFwUhs115GYAUAIK8IRmK79jICKwAAeUUw4iIzAgCALwhGjFCTZIWdEmGcEQAA8opgJDIrYhCMAACQVwQjkT1pDBqwAgCQVwQjkWOMBEqkYGl+twAAAEWOYCQyM0JWBACAvCMYicyM0K0XAIC8IxiJvGIvmREAAPKOYCRqwLPy/G8BAACKHMFI1IBnZf5uDQAAihDBSNRF8siMAACQbwQjkQ1YyYwAAJB3BCMGmREAAHxDMGKQGQEAwDcEIwaZEQAAfEMwEtmbprTCvy0BAECRIhiJHGeEBqwAAOQdwUhUZoSuvQAA5BvBiEFmBAAA3xCMGGRGAADwDcFIZG8a2owAAJB3BCOR44zQZgQAgLwjGDGa9jmlEaQBKwAA+UYwEtmAtZSr9gIAkG8EI5ENWMmMAACQdwQjUcPBkxkBACDfCEaiLpRHmxEAAPKNYMTgQnkAAPiGYCQqM0I1DQAA+UYwEpUZ4aq9AADkG8FI1KBnZEYAAOgQwcjs2bM1dOhQVVRUaPjw4Vq+fHnCZefMmaNRo0apT58+9jR69Oiky/s7HDwNWAEAKPhg5PHHH9eUKVM0depUvf766zr22GM1ZswYbd68Oe7yS5Ys0fjx47V48WItW7ZMNTU1+vKXv6za2loVDC6UBwCAbwKWZVnpPMFkQk444QTNmjXLfhwOh+0A46qrrtK1116b8vmhUMjOkJjnX3jhhZ7ec8eOHerVq5e2b9+unj17Kut+fpi0a6P0n0ulwcdk//UBAChCOzwev9PKjDQ0NGjFihV2VUvLC5SU2I9N1sOLPXv2qLGxUX379lXBIDMCAIBvStNZuK6uzs5sDBw4MGq+ebxy5UpPr3HNNddoyJAhUQFNrPr6enuKjKzycm0auvYCANC5e9Pceeedmjdvnp5++mm78Wsi06ZNs9M67mSqgfJy1d5SGrACAFDQwUj//v0VDAa1adOmqPnm8aBBg5I+9+c//7kdjPzpT3/SMcckb5dx3XXX2fVL7rRu3TrlTDgkWSHnPr1pAAAo7GCkrKxMw4YN06JFi1rmmQas5vGIESMSPu+uu+7SbbfdpoULF+r4449P+T7l5eV2Q5fIKefdeg3GGQEAoLDbjBimW+9FF11kBxUnnniiZsyYod27d2vChAn2/00PmaqqKruqxfjZz36mm266SXPnzrXHJtm4caM9v3v37vZUMI1XDTIjAAAUfjAybtw4bdmyxQ4wTGBx3HHH2RkPt1Hr2rVr7R42rvvuu8/uhTN27Nio1zHjlNx8883yndt41Qh28XNNAAAoSmmPM+KHnI4zsm2tNONoJytyY/yB2wAAQIGMM9IpuZkRetIAAOALghEGPAMAwFcEI1wkDwAAXxGMhNxqmjJ/twQAAEWKYITMCAAAviIYITMCAICvCEbIjAAA4CuCEXrTAADgK4IRd5yRIA1YAQDwA8FI0z6nJBj0DAAAXxCMuA1YyYwAAOALghG3ASuZEQAAfEEw4jZgJTMCAIAvCEa4UB4AAL4iGGnJjJT7uyUAAChSBCNkRgAA8BXBCIOeAQDgK4IRBj0DAMBXBCNkRgAA8BXBSMuF8hgOHgAAPxCMuCOwMugZAAC+IBhpyYzQtRcAAD8QjLRkRqimAQDADwQjZEYAAPAVwUjLhfLIjAAA4AeCEYaDBwDAVwQjLZkRGrACAOAHghG3ASvjjAAA4AuCETIjAAD4imCEQc8AAPAVwQhdewEA8FVxByPhsBRudO7TgBUAAF8UdzDiVtEYNGAFAMAXRR6MNHfrNciMAADgi+IORprIjAAA4LfiDkZaRl8tkwIBv9cGAICiVNzBCD1pAADwXXEHIy1jjHCRPAAA/FLcwUjTPuc2yHVpAADwS5EHI2RGAADwW3EHIy0NWMmMAADgl+IORsiMAADgu+IORsiMAADgu+IORtyuvYy+CgCAb4o7GGnp2kubEQAA/FLcwQiDngEA4LviDkYY9AwAAN8VdzBCZgQAAN8VdzDi9qZhOHgAAHxT3MGIO84Ig54BAOCb4g5GWjIj9KYBAMAvxR2MtGRGuGovAAB+Ke5ghMwIAAC+K+5gpGmfc0tmBAAA3xRvMBIKSbXrnPsfrXceAwCAjhGMzJ49W0OHDlVFRYWGDx+u5cuXJ13+ySef1OGHH24vf/TRR+uFF16QrxYskIYOlRb/2Xl87y+dx2Y+AAAo7GDk8ccf15QpUzR16lS9/vrrOvbYYzVmzBht3rw57vKvvvqqxo8fr+9///v6xz/+obPPPtue3nzzTfnCBBxjx0rr10ulzfNMUqS21plPQAIAQF4FLMuy0nmCyYSccMIJmjVrlv04HA6rpqZGV111la699to2y48bN067d+/Wc8891zLvpJNO0nHHHaf777/f03vu2LFDvXr10vbt29WzZ09lzFTFmAyICUSM8yulQ0qlp/dK/2qUAgGpulpas0YKBjN/HwAAIK/H77QyIw0NDVqxYoVGjx7d+gIlJfbjZcuWxX2OmR+5vGEyKYmWN+rr6+0PEDllxdKlrYGI4WZGmprjMROXrVvnLAcAAPIirWCkrq5OoVBIAwcOjJpvHm/cuDHuc8z8dJY3pk2bZkdS7mQyL1mxYUP0Yzf5EUqxHAAAKK7eNNddd52d0nGndSZbkQ2DB0c//mej9Eq9VBdOvhwAAMgZt6LCk/79+ysYDGrTpk1R883jQYMGxX2OmZ/O8kZ5ebk9Zd2oUU6bENNY1VTJrGiM/r/bZsQsBwAACi8zUlZWpmHDhmnRokUt80wDVvN4xIgRcZ9j5kcub7z44osJl88p0yh15szWwCOS+3jGDBqvAgBQyNU0plvvnDlz9PDDD+udd97R5ZdfbveWmTBhgv3/Cy+80K5mcU2cOFELFy7UL37xC61cuVI333yzXnvtNV155ZXyxbnnSvPnS1VV0fNNRsTMN/8HAACFWU3jdtXdsmWLbrrpJrsRqumia4INt5Hq2rVr7R42rpEjR2ru3Lm64YYb9NOf/lSHHnqonnnmGR111FHyjQk4zjrL6TVjGquaNiKmaobuvAAAFP44I37I2jgjAACgY48zAgAAkG0EIwAAwFcEIwAAwFcEIwAAwFcEIwAAwFcEIwAAwFcEIwAAwFcEIwAAwFcEIwAAoGMNB+8Hd5BYM5IbAADoGNzjdqrB3jtEMLJz5077tqamxu9VAQAAGRzHzbDwHfraNOFwWB9//LF69OihQCDQrgjNBDTr1q3jGjc5RlnnD2VNWXdG7Nedo6xNiGECkSFDhkRdRLdDZkbMB6iurs7a65nC5oJ7+UFZ5w9lTVl3RuzXHb+sk2VEXDRgBQAAviIYAQAAviqqYKS8vFxTp061b0FZdxbs15R1Z8R+XVxl3SEasAIAgM6rqDIjAACg8BCMAAAAXxGMAAAAXxGMAAAAXxVNMDJ79mwNHTpUFRUVGj58uJYvX+73KnV406ZN0wknnGCPjLvffvvp7LPP1qpVq6KW2bdvn6644gr169dP3bt313nnnadNmzb5ts6dxZ133mmPRjxp0qSWeZR19tTW1uq73/2uvd927dpVRx99tF577bWW/5t2/zfddJMGDx5s/3/06NF67733srgGxSEUCunGG2/UgQceaJfjwQcfrNtuuy3qOiaUdeb+8pe/6Mwzz7RHPzW/F88880zU/72U7datW3X++efbg6H17t1b3//+97Vr1y5lnVUE5s2bZ5WVlVkPPPCA9dZbb1mXXHKJ1bt3b2vTpk1+r1qHNmbMGOvBBx+03nzzTeuNN96wvvrVr1r777+/tWvXrpZlLrvsMqumpsZatGiR9dprr1knnXSSNXLkSF/Xu6Nbvny5NXToUOuYY46xJk6c2DKfss6OrVu3WgcccIB18cUXW3/729+s1atXW3/84x+t999/v2WZO++80+rVq5f1zDPPWP/85z+tb3zjG9aBBx5o7d27N0trURxuv/12q1+/ftZzzz1nrVmzxnryySet7t27WzNnzmxZhrLO3AsvvGBdf/311oIFC0x0Zz399NNR//dStmeccYZ17LHHWn/961+tpUuXWocccog1fvx4K9uKIhg58cQTrSuuuKLlcSgUsoYMGWJNmzbN1/XqbDZv3mzv8C+//LL9eNu2bVaXLl3sHxjXO++8Yy+zbNkyH9e049q5c6d16KGHWi+++KL1xS9+sSUYoayz55prrrFOOeWUhP8Ph8PWoEGDrLvvvrtlnin/8vJy67HHHsvimnR+X/va16zvfe97UfPOPfdc6/zzz7fvU9bZExuMeCnbt99+237e3//+95Zl/vCHP1iBQMCqra3N4tpZVqevpmloaNCKFSvs9FPktW7M42XLlvm6bp3N9u3b7du+ffvat6bcGxsbo8r+8MMP1/7770/ZZ8hUeX3ta1+LKlPKOrt+97vf6fjjj9c3v/lNu/rxc5/7nObMmdPy/zVr1mjjxo1R28Bce8NU//Kbkp6RI0dq0aJFevfdd+3H//znP/XKK6/oK1/5CmWdY172Y3NrqmbM98FlljfH0L/97W9ZXZ8OcaG89qirq7PrJQcOHBg13zxeuXKlb+vV2ZgrK5v2CyeffLKOOuooe57Z0cvKyuydObbszf+Qnnnz5un111/X3//+9zb/o6yzZ/Xq1brvvvs0ZcoU/fSnP7XL+0c/+pG9L1900UUt+2683xT26/Rce+219hVjzUlKMBi0f6tvv/12u42CQVnnjpeyNbcmII9UWlpqn3Bme1/v9MEI8nfG/uabb9pnNcg+c2nviRMn6sUXX7QbYSO3gbU5E7zjjjvsxyYzYvbt+++/3w5GkD1PPPGEHn30Uc2dO1ef/exn9cYbb9gnNabBJWVdXDp9NU3//v3tiDu2B4d5PGjQIN/WqzO58sor9dxzz2nx4sWqrq5umW/K11STbdu2LWp5yj59pspr8+bN+vznP2+fmZjp5Zdf1n//93/b983ZDGWdHaZnwZFHHhk174gjjtDatWvt++7vBr8p7feTn/zEzo58+9vftnssXXDBBZo8ebLdU4+yzi0v+7G5Nb87kZqamuweNtk+fnb6YMSkVocNG2bXS0ae+ZjHI0aM8HXdOjrTJsoEIk8//bReeuklu3teJFPuXbp0iSp70/XX/KhT9uk5/fTT9e9//9s+c3Qnc/Zu0tnufco6O0xVY2wXddOm4YADDrDvm/3c/BBH7temqsHUobNfp2fPnj12+4NI5uTR/EZT1rnlZT82t+Zk0pwMucxvvdk+pm1JVllF0rXXtBB+6KGH7NbBl156qd21d+PGjX6vWod2+eWX293ClixZYm3YsKFl2rNnT1R3U9Pd96WXXrK79o4YMcKe0H6RvWko6+x2nS4tLbW7nb733nvWo48+alVWVlqPPPJIVJdI8xvy7LPPWv/617+ss846i669Gbjooousqqqqlq69pgtq//79rauvvpqyzlLvu3/84x/2ZA7306dPt+9/9NFHnvdj07X3c5/7nN3N/ZVXXrF789G1tx3uvfde+6BoxhsxXX1Nn2m0j9m5401m7BGX2al/+MMfWn369LF/0M855xw7YEH2gxHKOnt+//vfW0cddZR9EnP44Ydbv/rVr6L+b7pF3njjjdbAgQPtZU4//XRr1apVWVyD4rBjxw57Hza/zRUVFdZBBx1kj4tRX1/fsgxlnbnFixfH/Y02QaDXsv3kk0/s4MOM/9KzZ09rwoQJdpCTbQHzJ7u5FgAAAO86fZsRAABQ2AhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACArwhGAACA/PT/ASG86LhKcn0+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = 100 # taille maximale de l'échantillon\n",
    "repet = 1000 # nombre d'échantillons aléatoires utilisés pour chaque taille\n",
    "# d'échantillon\n",
    "# Tableaux qui vont accueillir ...\n",
    "# ... les moyennes empiriques pour chaque taille d'échantillon (de 1 à n)\n",
    "moy_emps = zeros(n)\n",
    "# ... les variances empiriques pour chaque taille d'échantillon (de 1 à n)\n",
    "var_emps = zeros(n)\n",
    "# Pour chaque taille d'échantillon ...\n",
    "for i in range(1, n+1):\n",
    "    # Somme des moyennes et variances de la variable population des\n",
    "    # 1000 échantillons de taille i, initialisées à zéros\n",
    "    acc_moy_echs = 0\n",
    "    acc_var_echs = 0\n",
    "    # ... on étudie 1000 échantillons\n",
    "    for _ in range(repet):\n",
    "        # Choix d'un échantillon aléatoire de n = i valeurs de population\n",
    "        pop2_ech = choices(POP2, k=i)\n",
    "        # Incrémentation des variables d'accumulation\n",
    "        acc_moy_echs += mean(pop2_ech)\n",
    "        acc_var_echs += var(pop2_ech)\n",
    "\n",
    "    # calcul des moyennes et variances empiriques sur 1000 échantillons de\n",
    "    # même taille i :\n",
    "    moy_emp = acc_moy_echs / repet\n",
    "    var_emp = acc_var_echs / repet\n",
    "\n",
    "    # ajout des moyennes et variances empiriques dans les tableaux\n",
    "    # attention : les tailles d'échantillon vont de 1 à n mais les indices des\n",
    "    # tableaux vont de 0 à n - 1 ce qui justifie le i-1 en indiçage.\n",
    "    moy_emps[i-1] = moy_emp \n",
    "    var_emps[i-1] = var_emp\n",
    "\n",
    "# calcul des ratios (la division sur ndarray divise chaque case). On fait la\n",
    "# division à la fin sur toute la ndarray pour être efficace.\n",
    "ratios_moy = moy_emps / moy_glob\n",
    "ratios_var = var_emps / var_glob\n",
    "\n",
    "x = arange(1, n+1) # ndarray des entiers de 1 à n (les tailles d'échantillons)\n",
    "# Nuages de points : ratios en fonction de la taille d'échantillon\n",
    "scatter(x, ratios_moy, color='b')\n",
    "scatter(x, ratios_var, color='r')\n",
    "# Ajout des courbes de convergence théorique sur le graphique\n",
    "plot(x, ones(n)) # ones(n) est une ndarray ne contenant que des 1.\n",
    "plot(x, (x-1)/x)\n",
    "show()\n",
    "\n",
    "# Commentaire. On voit sans surprise que la moyenne empirique (respectivement\n",
    "# la variance empirique) converge vers la moyenne gobale (respectivement la\n",
    "# variance globale) lorsque la taille de l'échantillon augmente. À noter que la\n",
    "# variance empirique converge moins vite que la moyenne empirique.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "iut",
   "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.14.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
