{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Statistiques\n\nLe but de ces TPs est de traiter la partie **statistique descriptive** du programme de 2nd. Les définitions données font donc partie du cours et sont à connaître par coeur.\n\n## 1 - Rappel de vocabulaire\n\n- La **population** d’une série statistique est l’ensemble des éléments appelés **individus** sur lesquels portent l’étude statistique.\n- Le **caractère** d’une série statistique est la propriété étudiée sur chaque individu. Un caractère peut être **quantitatif** (mesurable comme la taille) ou **qualitatif** (non mesurable comme la couleur des cheveux).\n- L’**effectif d’un caractère** est le nombre d’individus qui partagent ce caractère.\n- L'**effectif total** est le nombre total d'individu.\n- La **fréquence** d’un caractère est égale à l’effectif du caractère divisé par l’effectif total.\n\nLes statistiques descriptives ont pour but de décrire et d'analyser des données (ou série statisque) pour les résumer ou les comparer entre elles.\n\nVoici quelques séries de données sur lesquels nous allons travailler. \n\nCes trois séries concernent des caractéristiques différentes des voitures garées sur 3 parkings différents."},{"metadata":{"trusted":true},"cell_type":"code","source":"# Parking 1 : Nombre de passagers\npassagers = [4, 1, 4, 1, 2, 1, 5, 0, 3, 4, 0, 4, 0, 0, 4, 3, 2, 3, 5, 2, 5, 4, 1, 2]\n# Parking 2 : Kilomètre au compteur\nkilometres = [68806, 136429, 67417, 44743, 166108, 63686, 133615,\n 97402, 131932, 60947, 166706, 194451, 103493, 71308]\n# Parking 3 : Couleur des voitures\ncouleurs = ['grise', 'noire', 'grise', 'rouge',\n 'blanche', 'blanche', 'rouge', 'bleu',\n 'bleu', 'grise', 'noire', 'verte',\n 'noire', 'rouge', 'grise', 'verte',\n 'grise', 'grise', 'verte', 'grise']","execution_count":3,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Chercher la fonction Python qui vous permet de déterminer l'effectif total de chaque série (cf : 6 - mémo sur les listes ci-dessous), le calculer. Calculer ensuite la fréquence du caractère demandé. Vous utiliserez des variables pour stocker les résultats et les ré-utiliser."},{"metadata":{"trusted":true},"cell_type":"code","source":"# 1e série\neffectif_total_1=#ajouter ici la valeur de l'effectif total\n#fréquence nombre 4\nfrequence_4=#ajouter ici le calcul à effectuer pour obtenir la fréquence du nombre 4 dans la 1e série","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# 2e série\neffectif_total_2=#ajouter ici la valeur de l'effectif total\n#fréquence nombre 103493\nfrequence_103493=#ajouter ici le calcul à effectuer pour obtenir la fréquence du nombre 103493 dans la 2e série","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# 3e série\neffectif_total_3=#ajouter ici la valeur de l'effectif total\n#fréquence de la couleur verte\nfrequence_verte=#ajouter ici le calcul à effectuer pour obtenir la fréquence de la couleur verte dans la 3e série","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 2 - Rappel sur les indicateurs de tendance centrale vus au collège\n\nLes indicateurs suivants vont permettre de résumer les séries statistiques à l'aide d'une valeur centrale. Ils ne peuvent être calculés que quand le caractère étudié est quantitatif. \n\n- La **moyenne**, $\\bar{x}$, est égale à la somme de toutes les valeurs divisée par l'effectif total.\n- La **médiane, Me**, est la plus petite valeur de la série pour laquelle la moitié des valeurs lui sont inférieures ou égales"},{"metadata":{},"cell_type":"markdown","source":"2. Pour la série `passagers`, calculer ces deux indicateurs de tendance centrale à la main, en utilisant Python comme une calculatrice. Indiquer les résultats ci-dessous.\n\n**CALCULATRICE** :"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(2*8+1/2)","execution_count":5,"outputs":[{"output_type":"stream","text":"16.5\n","name":"stdout"}]},{"metadata":{},"cell_type":"raw","source":"médiane :\nmoyenne : "},{"metadata":{},"cell_type":"markdown","source":"## 3 - Calcul des indicateurs avec Python"},{"metadata":{},"cell_type":"markdown","source":"Lorsque la série statistique comprend beaucoup de valeurs, le calcul de la moyenne peut rapidement être fastidieux à écrire en code Python. On va alors utiliser une **boucle** pour simplifier l'écriture du calcul en Python. La **boucle for** permet de répéter une instruction *en boucle*\n3. Ces deux programmes calculent la même chose. Les exécuter pour s'en convaincre et expliquer ce qu'ils font"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(passagers[0])\nprint(passagers[1])\nprint(passagers[2])\nprint(passagers[3])\nprint(passagers[4])\nprint(passagers[5])\nprint(passagers[6])\nprint(passagers[7])\nprint(passagers[8])\nprint(passagers[9])\nprint(passagers[10])\nprint(passagers[11])\nprint(passagers[12])\nprint(passagers[13])\nprint(passagers[14])\nprint(passagers[15])\nprint(passagers[16])\nprint(passagers[17])\nprint(passagers[18])\nprint(passagers[19])\nprint(passagers[20])\nprint(passagers[21])\nprint(passagers[22])\nprint(passagers[23])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in range(24):\n print(passagers[i])","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"4. Exécuter ce programme et expliquer ce qu'il fait"},{"metadata":{"trusted":true},"cell_type":"code","source":"somme=0\nfor i in range(25):\n somme=somme+passagers[i]\nprint(somme)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"5. Recopier et modifier le programme ci-dessus pour calculer **la moyenne** de la série `passagers` en utilisant une **boucle for**. Vous vérifierez que le résultat obtenu correspond bien à celui trouvé en question 2."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"6. A l'aide du mémo Python (6 - Mémo Python) compléter le programme ci-dessous pour qu'il calcule la médiane de la série `passagers`. Vous vérifierez que le résultat obtenu correspond bien à celui trouvé en question 2."},{"metadata":{"trusted":true},"cell_type":"code","source":"passagers_ordonnee= #à compléter pour ordonner la série\n#ceci est le rang de la liste ordonnée où vous trouverez la médiane :\nindice_mediane = len(passagers_ordonnee)/2-1 \nmediane = #à compléter pour trouver la médiane dans la liste ordonnée\nprint(mediane)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 4 - Moyenne pondérée"},{"metadata":{},"cell_type":"markdown","source":"Dans certaines situations, on peut nous présenter les séries statistiques en 2 séries : une contenant les différentes **valeurs** que peut prendre le caractère étudié, et une autre contenant les **effectifs** ou les **fréquences** de ces valeurs, ou encore des **coefficients** affectés à ces valeurs.\n\nExemple : on regarde ici la surface des parkings d'une ville\n\n| surface du parking | 1000 | 2000 | 100 | 3000 |\n|--------------------|------|------|-----|------|\n| effectifs | 4 | 3 | 1 | 2 |\n\n7. Calculer ici la surface moyenne des parkings en utilisant Python comme une calculatrice et donner le résultat ci-dessous.\n\n**CALCULATRICE :**"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"moyenne : "},{"metadata":{},"cell_type":"markdown","source":"On appelera cette moyenne une **moyenne pondérée** par les effectifs...\n\n8. A l'aide de la liste `passagers` plus haut, compléter la liste des effectifs du caractère `nombre de passagers` pour chaque valeur que peut prendre ce caractère, puis compléter le programme pour qu'il calcule la moyenne des passagers pondérée par les effectifs"},{"metadata":{"trusted":true},"cell_type":"code","source":"passagers_valeurs = [0, 1, 2, 3, 4, 5]\npassagers_effectifs = []#liste à compléter\neffectif_total=#à compléter\nsomme=0\nfor i in range(6):\n somme=somme+passagers_valeurs[i]*#à compléter\nmoyenne=somme/#à compléter","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 5 - Comparaison de deux séries à l'aide d'indicateurs de tendance centrale"},{"metadata":{},"cell_type":"markdown","source":"Voici des données venant du site de l'INSEE indiquant la pyramide des âges en France au 1e janvier 2021, pour les hommes et les femmes (source : https://www.insee.fr/fr/statistiques/5007688?sommaire=5007726)"},{"metadata":{"trusted":true},"cell_type":"code","source":"ages=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,\n 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,\n 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,\n 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100]\n\neffectifs_hommes = [352818, 363956, 369603, 377277, 388504, 399454, 409367, 415669, 425344, 426310, \n 436984, 432418, 437249, 431859, 439177, 432730, 430748, 425876, 423183, 423936, \n 424090, 394554, 385239, 369733, 370000, 365478, 353573, 355675, 372831, 381517, \n 390980, 390057, 396313, 396541, 402781, 402370, 400319, 396517, 421454, 425310, \n 429865, 407539, 399663, 402178, 391122, 405757, 426102, 446349, 457352, 455673, \n 444450, 437073, 429244, 427886, 436858, 436774, 438181, 430619, 415611, 413981, \n 407825, 403449, 390717, 386533, 379975, 372761, 369693, 360414, 362296, 351276, \n 360825, 350027, 346176, 334915, 310618, 228713, 220666, 210217, 189855, 163831, \n 164274, 164398, 154409, 143091, 134285, 118873, 110690, 95657, 86403, 72755, \n 61563, 46929, 37496, 28807, 21463, 16299, 11542, 7785, 4902, 3485, \n 4341]\neffectifs_femmes = [338936, 350629, 353986, 363828, 373134, 382943, 396929, 398058, 405017, 410316,\n 420428, 413661, 416483, 412585, 419967, 410987, 408423, 404574, 400573, 400085, \n 400978, 376606, 373408, 363229, 369197, 367043, 361493, 363901, 384079, 393427,\n 405278, 412731, 419357, 421858, 430196, 430091, 425655, 421261, 443929, 446649, \n 451195, 425855, 414121, 414175, 404227, 415014, 435628, 459764, 466971, 464223,\n 455100, 449203, 446218, 443386, 454568, 455618, 461181, 455743, 441008, 441460,\n 440217, 437560, 429419, 425959, 424039, 420762, 416459, 408098, 412799, 400476,\n 412366, 404550, 401141, 391035, 368656, 278414, 270291, 261401, 240655, 212857,\n 219696, 228181, 219560, 212217, 206868, 195932, 190351, 173354, 167452, 149591, \n 136535, 111783, 97331, 80030, 66787, 53104, 40894, 31021, 22952, 16426, \n 23156]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"9. Exécuter ce code pour représenter graphiquement chaque série statistique et comparer ce deux séries en une ou deux phrases."},{"metadata":{"trusted":true},"cell_type":"code","source":"import matplotlib.pyplot as plt \nplt.bar(ages, effectifs_hommes)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.bar(ages, effectifs_femmes)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{"trusted":true},"cell_type":"markdown","source":"10. Calculer la moyenne d'âge des hommes en France au 1e janvier 2021, puis celle des femmes, et comparer ainsi les 2 séries statistiques à l'aide d'une phrase."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"11. Expliquer comment vous retrouveriez l'âge médian des hommes et l'âge médian des femmes"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"12. **BONUS** Calculer la moyenne d'âge de la population totale"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 6 - Mémo sur les listes\n\nQuelques précisions autour de la manipulation des listes avec Python"},{"metadata":{"trusted":true},"cell_type":"code","source":"L = [5, 2, 1, 2, 4, 5, 5]","execution_count":17,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"- `max`: valeur maximal de la liste"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(max(L))","execution_count":18,"outputs":[{"output_type":"stream","text":"5\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"- `min`: valeur minimal de la liste "},{"metadata":{"trusted":true},"cell_type":"code","source":"print(min(L))","execution_count":19,"outputs":[{"output_type":"stream","text":"1\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"- `len`: calculer le nombre d'éléments dans la liste"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(len(L))","execution_count":20,"outputs":[{"output_type":"stream","text":"7\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"- `sorted`: trier les éléments de la liste"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(sorted(L))","execution_count":21,"outputs":[{"output_type":"stream","text":"[1, 2, 2, 4, 5, 5, 5]\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"- Récupérer le i-ième élément de la liste (**/!\\ on commence à compter à partir de 0**)"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Le premier élément de la liste\nprint(L[0])\n# le 3e élément de la liste\nprint(L[2])","execution_count":22,"outputs":[{"output_type":"stream","text":"5\n1\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"- Compter l'effectif d'une valeur"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(L.count(2))","execution_count":24,"outputs":[{"output_type":"stream","text":"2\n","name":"stdout"}]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.2"}},"nbformat":4,"nbformat_minor":2}