Préparation des données pour la fouille de données

Toutes les manipulations se feront avec R, sous Linux. (Sachez néanmoins que R fonctionne sous Windows et sous MacOS.)

Les fichiers de données

Les quatre fichiers de données sont disponibles aux urls suivantes :

Chargement des données

Vous chargez les 4 fichiers de données, chacun dans un data frame distinct. Vous donnez des noms aux colonnes de manières à ce que des colonnes contenant la même information portent le même nom dans différents data frames, et inversement.

Fusion des données

Construisez un seul data frame à partir des 4 précédents (avec la fonction merge()).

Quand vous l'avez fait, effacez les 4 data frames qui sont désormais inutiles (fonction remove()).

Analyse préliminaire des données

Cette analyse préliminaire consiste à jeter un coup d'œil rapide à ses données, en utilisant des outils de statistique descriptive élémentaires, et des outils de visualisation de données, eux-aussi élémentaires.

L'objectif de cette analyse est de connaître les données que l'on va analyser par la suite de manière détaillée.

Statistiques de base

Exploration visuelle

Afin d'avoir une vision synthétique des 4 séries de températures, on va construire un graphique ayant leurs 4 histogrammes dans la même fenêtre :

On vous indique ci-dessous le principe pour afficher plusieurs graphiques dans une même fenêtre :

À faire :

  1. le graphique représenté ci-dessus.
  2. ajouter un titre (pour cela, on utilisera la fonction mtext() : voir l'aide en ligne pour le faire) ; on pourra agrandir la taille des marges extérieures du graphique avec l'argument adéquat de la commande par

Test de normalité

L'histogramme réalisé ci-dessus montre une distribution des valeurs qui a l'air à peu près normale. On veut vérifier cette hypothèse à l'aide d'un test statistique.

Quel test statistique convient-il de faire ?

Ce test n'est pas directement disponible dans R, mais il l'est dans l'un des nombreux paquets R qui sont disponibles sur le CRAN. Nous sommes ici face à un problème très général dans R : la fonction que l'on cherche n'est pas directement dans R, mais elle est disponible dans un paquet R que l'on peut installer. Il est donc important de savoir :

  1. identifier la fonctionnalité que l'on cherche ;
  2. se rendre compte que la fonctionnalité que l'on cherche n'est éventuellement pas installée ;
  3. dans ce cas, chercher le paquet qui contient la fonctionnnalité que l'on cherche et l'installer ;
  4. utiliser la fonctionnalité.

Nous reprenons ces différents poins :

  1. pour le premier point, dans le cas présent, c'est une question de connaissances en statistiques : on veut tester si une distribution de valeurs est distribuée normalement ET on va déterminer les paramètres de cette distribution à partir des données elles-mêmes (on ne se donne pas ces paramètres a priori).
    Très honnêtement, cette question ne semble pas avoir une réponse très claire, définitive et admise par tout le monde à l'heure actuelle. Plusieurs tests existent. La documentation en-ligne de R (qui est généralement d'excellente qualité au niveau scientifique) recommenderait un autre test, tel le Shapiro-Francia, le Anderson-Darlington ou le Cramer-Von Mises dans ce cas. Dans ce TP, on va utiliser plutôt un test de Lilliefors sachant que ce n'est pas forcément la meilleure idée à avoir, mais cela nous permettra de montrer comment, en R, connaissant le nom d'une fonctionnalité recherchée, on la trouve et, si besoin est, on installe le paquet qui la contient.
  2. on cherche un test de Lilliefors ; en général, l'aide en-ligne de R est très bien faite. On tape donc la commande :
    help ("lilliefors")
    ce qui nous donne :
    No documentation for 'lilliefors' in specified packages and libraries:
    you could try 'help.search("lilliefors")'
    
    Donc, en résumé, R n'a pas ce test en stock, mais nous invite à taper une autre commande pour qu'il poursuive ses recherches. On tape donc cette commande :
    help.searchlilliefors
    et cette fois, on a une réponse positive. On nous indique une fonction et le paquet dans laquelle elle se trouve.
  3. vous tentez de charger le paquet indiqué avec la commande
    library(nom-du-paquet)
    Deux possibilités :
    • le paquet est présent sur votre machine, mais pas chargé. Dans ce cas, la commande précédente aboutit et charge le paquet. Vous pouvez ensuite utilisez la fonction voulue ;
    • le paquet n'est pas présent sur votre machine. Dans ce cas, il est sur le CRAN et il faut l'installer :
  4. pour récupérer un paquet R et l'installer :
    • tapez la commande :
      install.packages (nom-du-paquet-entre-guillemets, lib=".")
      
      R vous demande où, sur Internet, aller chercher le paquet ; faites votre choix. et voilà. Vous pouvez maintenant lancer R et taper la commande library(nom-du-paquet, lib.loc = ".") avec le nom de ce nouveau paquet. Désormais, ce paquet est installé sur votre machine ; pour l'utiliser, il suffit de taper une commande library(...).
  5. lisez la documentation et faites le test de normalité (en comprenant le résultat).
  6. vue la remarque ci-dessus sur le test à choisir, on effectuera aussi un test d'Anderson-Darling (c'est plutôt ce test là qu'il faut effectuer dans ce cas) et on comparera les résultats avec le test de Lilliefors (on pourrait aussi faire un test de Cramer-Von Mises).

Nettoyage des données

Traitement des NA

Remplacer les NAs isolés (i.e., 1, 2, ... quelques NAs qui se suivent au milieu de valeurs connues) par une valeur probable (obtenue par interpolation linéaire).

Les données aberrantes

  1. Détecter les valeurs aberrantes ;
  2. Les remplacer par des valeurs probables.

L'élimination des doublons

Inspectez le jeu de données pour détecter les éventuels doublons, c'est-à-dire, des données différentes qui correspondent au même instant.

L'élimination du bruit

Effectuer un lissage des données (avec la fonction smooth()).