2021-2022/2nd/11_Statistiques/TP1_indicateurs.ipynb
Bertrand Benjamin f686b380fe
All checks were successful
continuous-integration/drone/push Build is passing
Feat: maj du TP1
2022-01-13 20:31:17 +01:00

662 lines
18 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Statistiques\n",
"\n",
"\n",
"## 1 - Rappel de vocabulaire\n",
"\n",
"- La **population** dune série statistique est lensemble des éléments appelés **individus** sur lesquels portent létude statistique.\n",
"- Le **caractère** dune 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 dun caractère** est le nombre dindividus qui partagent ce caractère.\n",
"- L'**effectif total** est le nombre total d'individu.\n",
"- La **fréquence** dun caractère est égale à leffectif du caractère divisé par leffectif total.\n",
"\n",
"Les 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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Voici une séries de données sur laquelle nous allons travailler, elle compte le nombre de passagers dans chaque voiture sur un parking.\n",
"\n",
"**Executez ce code en appuyant sur `shift+entrée`, c'est normal s'il ne se passe rien** :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"passagers = [4, 1, 4, 1, 2, 1, 5, 0, 3, 4, 0, 4, 0, 0, 4, 3, 2, 3, 5, 2, 5, 4, 1, 2]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1.a Expliquer en une phrase les éléments qui caractérises la série statistique présentés."
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Population:\n",
"\n",
"Individus:\n",
"\n",
"Caractère étudié:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b. Combien de passagers étaient présent dans la 6e voiture."
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Chercher la fonction Python (cf : en bas de page, 6 - Mémo sur les listes) qui permet de déterminer la i-ième valeur d'une liste. L'utiliser pour répondre à la question précédente."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sixieme_valeur=\n",
"print(sixieme_valeur)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"c. Chercher la fonction Python qui permet de déterminer l'effectif total de la série , le stocker dans la variable effectif total ci-dessous et exécuter le code pour vérifier le résultat"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"effectif_total=\n",
"print(effectif_total)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"d. Chercher la fonction Python permettant de calculer le nombre d'apparitions du nombre 4 dans la liste."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"effectif_4=\n",
"print(effectif_4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"e. Calculer la fréquence de l'apparition du nombre 4 en utilisant des variables ci-dessus."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"frequence_4=\n",
"print(frequence_4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2 - Rappel sur les indicateurs de tendance centrale vus au collège\n",
"\n",
"Les 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"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Pour la série `passagers`, calculer ces deux indicateurs de tendance centrale (la moyenne et la médiane) à la main, en utilisant Python comme une calculatrice. Indiquer les résultats ci-dessous.\n",
"\n",
"**CALCULATRICE** :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(2*8+1/2)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"médiane :\n",
"moyenne : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3 - Calcul des indicateurs avec Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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*\n",
"3. Ces deux programmes calculent la même chose. Les exécuter pour s'en convaincre et expliquer ce qu'ils font"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(passagers[0])\n",
"print(passagers[1])\n",
"print(passagers[2])\n",
"print(passagers[3])\n",
"print(passagers[4])\n",
"print(passagers[5])\n",
"print(passagers[6])\n",
"print(passagers[7])\n",
"print(passagers[8])\n",
"print(passagers[9])\n",
"print(passagers[10])\n",
"print(passagers[11])\n",
"print(passagers[12])\n",
"print(passagers[13])\n",
"print(passagers[14])\n",
"print(passagers[15])\n",
"print(passagers[16])\n",
"print(passagers[17])\n",
"print(passagers[18])\n",
"print(passagers[19])\n",
"print(passagers[20])\n",
"print(passagers[21])\n",
"print(passagers[22])\n",
"print(passagers[23])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for i in range(24):\n",
" print(passagers[i])"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Exécuter ce programme et expliquer ce qu'il fait"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"somme=0\n",
"for i in range(25):\n",
" somme=somme+passagers[i]\n",
"print(somme)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. Écrire un programme qui calcule **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."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. A l'aide du mémo Python (cf : en bas de page : 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.\n",
"Enlever toutes les occurences de `#` qui permet d'ajouter du texte au bout d'une ligne de code"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Liste du nombre de passagers triés dans l'ordre croissant\n",
"passagers_ordonnee= \n",
"\n",
"\n",
"# Nombre de voitures inférieur à la médiane\n",
"nombre_voitures_inferieur_mediane = \n",
"\n",
"# Valeur de la médiane\n",
"mediane = \n",
"print(mediane)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4 - Moyenne pondérée"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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",
"\n",
"Exemple : 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",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"7.a. Expliquer en une phrase les éléments qui caractérises la série statistique présentés."
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Population:\n",
"\n",
"Individus:\n",
"\n",
"Caractère étudié:\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b. Calculer ici la surface moyenne des parkings en utilisant Python comme une calculatrice et donner le résultat ci-dessous.\n",
"\n",
"**CALCULATRICE :**"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"moyenne : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On appelera cette moyenne une **moyenne pondérée** par les effectifs...\n",
"\n",
"8. 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"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"passagers_valeurs = [0, 1, 2, 3, 4, 5]\n",
"passagers_effectifs = []#liste à compléter\n",
"effectif_total=#à compléter\n",
"somme=0\n",
"for i in range(6):\n",
" somme=somme+passagers_valeurs[i]*#à compléter\n",
"moyenne=somme/#à compléter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 5 - Comparaison de deux séries à l'aide d'indicateurs de tendance centrale"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"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",
"\n",
"effectifs_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]\n",
"effectifs_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]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt \n",
"plt.bar(ages, effectifs_hommes)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.bar(ages, effectifs_femmes)\n",
"plt.show()"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"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."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"11. Expliquer comment vous retrouveriez l'âge médian des hommes et l'âge médian des femmes"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"12. **BONUS** Calculer la moyenne d'âge de la population totale"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 6 - Mémo sur les listes\n",
"\n",
"Quelques précisions autour de la manipulation des listes avec Python"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"L = [5, 2, 1, 2, 4, 5, 5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- `max`: valeur maximal de la liste"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"max(L)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- `min`: valeur minimal de la liste "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"min(L)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- `len`: calculer le nombre d'éléments dans la liste"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"len(L)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- `sorted`: trier les éléments de la liste"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sorted(L)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Récupérer le i-ième élément de la liste (**/!\\ on commence à compter à partir de 0**)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Le premier élément de la liste\n",
"L[0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# le 3e élément de la liste\n",
"L[2]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Compter l'effectif d'une valeur"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"L.count(2)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}