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