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
...
...
@@ -24,6 +24,7 @@ Ce TP est constitué de deux parties de 2h chacune environ. Il y a un élément
SAS | RStudio | VSCode | Anaconda Navigator | Excel
2. Dans **VSCode**, vérifier que les extensions suivantes sont installées :
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`.
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`.
## 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.
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 :
```bash
...
...
@@ -62,3 +65,92 @@ 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.
|Pudlo | Pierre | H | 20/09/1977 | 96364564 | MASSPOP | 20 |
Sur quel bouton pouvez-vous cliquer pour visualiser le contenu de cette table ?
Vérifier les commandes d'accès aux différents éléments de la table : ligne, colonne, cellule. [MASS POP :] Pourquoi ne peut-on pas faire ça sous SAS ? Quel est le type renvoyé par chacune des commandes que vous essayer ?
Comment pouvez-vous la modifier ?
Que se passe-t-il si vous copiez la table et si vous modifier l'un des numéros d'étudiant ? Les deux copies sont-elles modifiées ou uniquement l'une d'entre elle ?
# Partie B : retard des vols au départ des aéroports de New York City en 2013
L'objectif de cette partie est de reproduire la partie B du TP1 sur le logiciel/langage de votre parcours. À partir des 4 fichiers de données, il s'agit de calculer les statistiques suivantes :
- 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.
Vous devez ensuite produire deux tables de moyennes des retards en minutes en cas de retard effectif par :
- compagnie $\times$ mois,
- compagnie $\times$ aéroport de départ.
(OPTIONNEL : comment ferait-on pour ajouter des écart-types à ces tables ?)
Vous devez pour cela utiliser des étapes parmi :
- import de données et mise en forme,
- pivot (format long vers large ou large vers long),
- calcul de moyenne par groupe (*group by*),
- calcul de nouvelles variables,
- fusion / jointure avec clé.
Dans un premier temps, nous vous proposons de réfléchir à la séquence des étapes et leur enchaînement. Puis ensuite, à les implémenter sur le logiciel/langage de votre parcours.
# Partie C : étude des retards en fonction des conditions météorologiques au départ
Il s'agit d'un travail réalisable seul ou en binome.
On souhaite commencer à étudier le retard à l'arrivée en l'expliquant par les conditions météorologiques au départ. La source de ces données est un téléchargement ASOS depuis Iowa Environmental Mesonet, https://mesonet.agron.iastate.edu/request/download.phtml. Cette partie est de type projet exploratoire et vous laisse plus libre.
La table `weather` contient les variables ci-dessous :
- `origin`
Station météorologique. Nommée `origin` pour faciliter la fusion avec les données de vols.
- `year`, `month`, `day`, `hour`
Heure de l'enregistrement.
- `temp`, `dewp`
Température et point de rosée en °F.
- `humid`
Humidité relative.
- `wind_dir`, `wind_speed`, `wind_gust`
Direction du vent (en degrés), vitesse et rafales de vent (en mph).
- `precip`
Précipitations, en pouces.
- `pressure`
Pression au niveau de la mer en millibars.
- `visib`
Visibilité en miles.
- `time_hour`
Date et heure de l'enregistrement sous forme de date POSIXct.
Proposer différents pistes pour réaliser cette étude. On pourra également s'appuyer sur le retard au décollage, même si c'est le retard à l'arrivée qui nous intéresse.
On rappelle que $1$ mile vaut $1,60934$ km et que la température en degré Fahrenheit est liée à la température en degré Celcius par :
$$
t_F = \frac 95 t_C + 32.
$$
Déposer sur Ametice un notebook (source + PDF) ou un script et un mini-rapport (1 à 2 pages, PDF), décrivant vos premiers calculs sur ce problème, et vos conclusions sur ces calculs.