From c9fdfcb1f1b77cf46ef3ebf6b766364e79ac287d Mon Sep 17 00:00:00 2001 From: Pierre Pudlo <37126309+pierrepudlo@users.noreply.github.com> Date: Sun, 1 Sep 2024 07:43:51 +0200 Subject: [PATCH] Sujet TP 1 fini --- .gitignore | 2 + sujets/tp1.qmd | 130 +++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 113 insertions(+), 19 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1dc789 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +sujets/*.pdf diff --git a/sujets/tp1.qmd b/sujets/tp1.qmd index a1e57cd..67383ba 100644 --- a/sujets/tp1.qmd +++ b/sujets/tp1.qmd @@ -1,6 +1,6 @@ --- title: "TP1 : prise en main des outils et Excel" -subtitle: M1 MAS +subtitle: "M1 MAS -- Données : manipulation et visualisation" author: Pierre Pudlo institute: Aix-Marseille Université / Faculté des Sciences engine: knitr @@ -13,7 +13,7 @@ format: toc: false --- -Ce TP est constitué de deux parties de 2h chacune environ. Il y a un élément à rendre sur Ametice pour chaque partie du TP. Il est conseillé d'utiliser les ordinateurs sous `Windows` en salle TP. Vous pouvez utiliser vos propres ordinateurs. +Ce TP est constitué de deux parties de 2h chacune environ. Il y a un élément à rendre sur Ametice à la fin du TP. Il est conseillé d'utiliser les ordinateurs sous `Windows` en salle TP. Vous pouvez utiliser vos propres ordinateurs. # Partie A : prise en main @@ -21,44 +21,136 @@ Ce TP est constitué de deux parties de 2h chacune environ. Il y a un élément 1. Parmi les logiciels ci-dessous, lesquels sont installés et disponibles ? Que se passe-t-il quand vous les démarrer ? -SAS | RStudio | VSCode | Anaconda Navigator | Excel + SAS | RStudio | VSCode | Anaconda Navigator | Excel 2. Dans **VSCode**, vérifier que les extensions suivantes sont installées : -- Jupyter, Jupyter Cell Tags, Jupyter Keymap, Jupyter Notebook Renderers -- Python, R, Quarto + + - Jupyter, Jupyter Cell Tags, Jupyter Keymap, Jupyter Notebook Renderers + - Python, R, Quarto 3. Avec **Anaconda Prompt** ou un Terminal/Console, quelles sont les commandes pour : -- afficher le répertoire courant -- lister les fichiers dans le répertoire courant -- changer de répertoire + - afficher le répertoire courant + - lister les fichiers dans le répertoire courant + - changer de répertoire + +4. En utilisant `conda` dans ce répertoire, lister les packages installés, ainsi que les environnements existants. Installer les packages pour faire du `git` avec `conda`. -En utilisant `conda` dans ce répertoire, lister les packages installés, ainsi que les environnements existants. Installer les packages pour faire du `git` avec `conda`. +## Mise en place des TP -4. Se connecter à [Etulab](https://etulab.univ-amu.fr) et créer un projet pour ce cours, nommé `MAS-Donnees-votrenom`. Ajouter un fichier `README.md` avec une description du projet. +5. Se connecter à [Etulab](https://etulab.univ-amu.fr) et créer un projet pour ce cours, nommé `MAS-Donnees-votrenom`. Ajouter un fichier `README.md` avec une description du projet. -$\implies$ vous utiliserez ce dépôt pour sauvegarder votre travail. + $\implies$ vous utiliserez ce dépôt pour sauvegarder votre travail. -Cloner ce dépôt sur votre ordinateur en utilisant `git` en ligne de commande ou Github Desktop ou un autre IDE de votre choix. + Cloner ce dépôt sur votre ordinateur en utilisant `git` en ligne de commande ou Github Desktop ou un autre IDE de votre choix. -5. Mise en place d'un environnement de travail pour le cours +6. Mise en place d'un environnement de travail pour le cours -Télécharger les données du TP en utilisant `git` avec la commande ci-dessous : + Télécharger les données du TP en utilisant `git` avec la commande ci-dessous : ```bash git clone https://etulab.univ-amu.fr/pudlo.p/m1-donnees-tp.git ``` -Copier les 5 fichiers csv dans un sous-répertoire `data/` du répertoire de votre propre dépôt créé à l'étape précédente. Et ajouter le suivi de ces fichiers via un `git add`. Faites un `commit` et un `push` pour sauvegarder ces fichiers sur le dépôt distant. + Copier les 5 fichiers csv dans un sous-répertoire `data/` du répertoire de votre propre dépôt créé à l'étape précédente. Et ajouter le suivi de ces fichiers via un `git add`. Faites un `commit` et un `push` pour sauvegarder ces fichiers sur le dépôt distant. 6. Suivant votre groupe, prenez en main un espace de travail adapté à votre langage (Python | R | SAS) : -- **Python** : Jupyter Notebook via Anaconda Navigator | VSCode : jupyter et/ou quarto -- **R** : RStudio | VSCode : R et/ou quarto -- **SAS** : SAS | VSCode : jupyter et/ou quarto (avec un noyau SAS) + - **Python** : Jupyter Notebook via Anaconda Navigator | VSCode : jupyter et/ou quarto + - **R** : RStudio | VSCode : R et/ou quarto + - **SAS** : SAS | VSCode : jupyter et/ou quarto (avec un noyau SAS) 7. Importer le fichier `airlines.csv` dans votre langage de programmation et afficher le jeu de données. Sauvegarder le script/notebook dans votre dépôt avec un titre et quelques lignes décrivant ce que vous avez fait. -Ajouter ce fichier dans votre dépôt et faire un `commit` et un `push`. + Ajouter ce fichier dans votre dépôt et faire un `commit` et un `push`. # Partie B : utilisation d'Excel +## Importation des données + +- Créer un nouveau classeur Excel +- Importer le fichier `airlines.csv` dans un onglet `airlines` de ce classeur : + - vérifier que les données sont bien importées + - ajouter des formats aux colonnes si besoin + - transformer en tableau avec entête nommé `airlines` + + Ce jeu de données permet de faire le lien entre un code, et le nom d'une compagnie aérienne. + +- Importer le fichier `flights.csv` dans un onglet `flights` de ce classeur (voir la fin du sujet pour une description des données) : + - vérifier que les données sont bien importées + - ajouter des formats aux colonnes si besoin + - transformer en tableau avec entête nommé `flights` + +Est-ce qu'il y a des données manquantes dans la colonne `arr_delay` ? Si oui, comment sont-elles codées ? Quelle est la proportion de ces données manquantes ? + +## Premières manipulations sur Excel + +L'objectif ici est de construire un premier tableau de bord sur les retards des vols à l'arrivée. + +- Ajouter une colonne qui calcule la distance en kilomètres à partir de la distance en miles. +- Avec `recherchev` ou `index`/ `equiv`, ajouter une colonne qui donne le nom de la compagnie aérienne à partir du code de la compagnie +- Ajouter une colonne qui calcule la vitesse moyenne de l'avion en km/h. Ces données sont-elles réalistes ? +- Dans un nouvel onglet de tableau de bord, présenter (et calculer) à partir de la table `flights` : + - la distance moyenne parcourue, et l'écart-type (en km) + - la moyenne et l'écart-type des vitesses moyennes (en km/h) + - la proportion de données manquantes sur le retard à l'arrivée + - la proportion de retards supérieurs à 10 minutes (inclus) + - le retard moyen en minutes, en cas de retard, ainsi que l'écart-type +- Ajouter à cet onglet de tableau de bord un tableau croisé dynamique pour obtenir les retards moyens (en cas de retard) par compagnie (en ligne) $\times$ mois (en colonne) +- Compléter le tableau de bord avec un tableau croisé dynamique des retards moyens (en cas de retard) par compagnie (en ligne) $\times$ aéroport de départ (en colonne : JFK, LGA et EWR) +- Ajouter une ligne dans le tableau de bord qui indique clairement votre prénom/nom/groupe et la date de conception du tableau de bord. +- Vous pouvez ajouter votre fichier Excel au dépôt avec un `add`, `commit` et `push`. + +Déposer le **fichier Excel** sur **Ametice** pour évaluation. Vous serez juger sur : + +- la justesse du travail fait + - qualité de l'import + - qualité de la jointure + - qualité des nouvelles colonnes + - qualité des tableaux croisés dynamique +- la qualité de présentation et la lisibilité du tableau de bord, ainsi que l'exactitude des chiffres fournis + +# Annexe : Description du jeu de données `flights` + +Données de ponctualité pour tous les vols ayant quitté NYC (c'est-à-dire JFK, LGA ou EWR) en 2013. + +- `year`, `month`, `day` : Date de départ. + +- `dep_time`, `arr_time` : Heures de départ et d'arrivée réelles (format HHMM ou HMM), heure locale. + +- `sched_dep_time`, `sched_arr_time` : +Heures de départ et d'arrivée prévues (format HHMM ou HMM), heure locale. + +- `dep_delay`, `arr_delay` : +Retards au départ et à l'arrivée, en minutes. Les temps négatifs représentent des départs/arrivées en avance. + +- `carrier` : +Abréviation à deux lettres de la compagnie aérienne. Utiliser les données `airlines` pour obtenir le nom. + +- `flight` : +Numéro de vol. + +- `tailnum` : +Numéro de queue de l'avion. Utiliser les données `planes` pour des métadonnées supplémentaires. + +- `origin`, `dest` : +Origine et destination. Utiliser les données `airports` pour des métadonnées supplémentaires. + +- `air_time` : +Temps passé dans les airs, en minutes. + +- `distance` : +Distance entre les aéroports, en miles. + +- `hour`, `minute` : +Heure de départ prévue décomposée en heures et minutes. + +- `time_hour` : +Date et heure prévues du vol sous forme de date POSIXct. Avec `origin`, peut être utilisé pour joindre les données de vols aux données météorologiques. + +**Source** +RITA, Bureau of transportation statistics, + +[https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236](https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236) + + + -- GitLab