Chapitre 2 Données

2.1 Les types de données

En général, on considère deux grandes familles de données: les données structurées et les données non structurées. La plupart des données avec lesquelles les statisticiens travaillent sont des données structurées où chaque ligne représente une observation et chaque colonne, une variable.

Lorsqu’on parle de données non structurées, on fait référence à des images, du texte, des vidéos ou du son. Ce type de données ne sera pas couvert dans ce cours.

2.2 Inventaire des données

Selon les projets, les données utilisées proviennent de sources différentes. Selon les sources, la qualité des données et leur volume varient grandement. Cette section présente quelques types de données et les contextes dans lesquels vous les rencontrerez.

2.2.1 Les données expérimentales

Dans un projet de recherche formel, les données sont souvent issues d’une procédure expérimentale randomisée. Ce sont des situations où les données sont prises dans des conditions contrôlées et dans le but de répondre à une question précise (confirmer ou infirmer une hypothèse). Les données issues de ce type d’expérimentation sont généralement fiables et de grande qualité. Les données provenant d’expériences randomisées sont les seules qui peuvent permettre de conclure à un lien de causalité.

2.2.2 Données internes

Voici quelques exemples de sources de données internes:

  • Base de données des clients
  • Listes de transactions
  • Base de données des employés
  • Information sur les visites web (Google analytics)
  • Listes de clients potentiels

Les données internes sont souvent faciles à obtenir et leur niveau de fiabilité est connu, mais attention, elles ne sont pas aléatoires ni randomisées! Ainsi, on ne peut ni généraliser ni conclure à un lien de causalité.

2.2.3 Les données de sources officielles

Les principales sources de données officielles au Québec proviennent des sites gouvernementaux. Les plus importants sont ceux de Statistique Canada (https://www150.statcan.gc.ca/n1/fr/type/donnees), de l’Institut de la statistique du Québec (http://www.bdso.gouv.qc.ca) et de Ressources naturelles Canada (https://geogratis.gc.ca/), mais plusieurs autres ministères, organismes et municipalités vous donnent accès à leurs données. Au cours des dernières années, les gouvernements ont déployé certains efforts pour rendre les données plus facilement accessibles. Les sites web mis en place à cet effet par les gouvernements du Canada (https://ouvert.canada.ca/fr) et du Québec (https://www.donneesquebec.ca/fr/) sont une mine d’information généralement fiable et gratuite.

Les données issues du recensement (https://www12.statcan.gc.ca/datasets/Index-fra.cfm?Temporal=2016&Theme=-1&VNAMEF=&GA=-1&S=0) sont des sources très fiables, mais elles demeurent de nature observationnelles. Les études faites sur ces données sont représentatives de la population, mais les analyses qui en découlent ne permettent pas d’établir facilement un lien de causalité.

Il existe une librairie spécialement conçue pour les données de statistique Canada:

#install.packages("CANSIM2R")
library(CANSIM2R)

D’autres ministères ou organismes ont ce type de librairie. C’est le cas d’Environnement Canada:

#install.packages("rclimateca")
library(rclimateca)

2.2.4 Les données de sondage

Un sondage bien réalisé est encore fiable et permet d’aller chercher une information autrement difficile à obtenir (opinions, perceptions). Lorsque le sondage est bien réalisé, les échantillons sont aléatoires et les conclusions peuvent s’étendre à la population visée. Il y a deux problèmes avec les sondages: premièrement, les taux de réponse diminuent, ce qui entraîne aussi une diminution de la qualité des données; deuxièmement, un sondage bien réalisé est coûteux et requiert une expertise spécifique.

2.2.5 Les données disponibles sur le web

On trouve une multitude de données sur le web, mais il est rare que la qualité des données soit clairement documentée. Il est donc nécessaire de faire des recherches et, parfois, de remonter à la source de l’étude d’où proviennent les données.

2.2.6 Les sources de données payantes

Plusieurs entreprises offrent des bases de données payantes. Dans le domaine du marketing, par exemple, il existe des bases de données contenant des profils de personnes par code postal. Combinées à la base de données des codes postaux de Poste Canada, elles servent à cibler la publicité. Prenez soin d’interroger le vendeur sur la méthodologie utilisée pour construire ces bases de données et assurez-vous qu’il ne s’agit pas de données publiques accessibles gratuitement qu’on vous vend dans un format différent.

2.3 La constitution de la base de données

2.3.1 Extraire les données

Les données peuvent être emmagasinées de différentes façons:

  • Fichiers plats
  • BD Relationnelle
  • Entrepôts pour données massives (type Hadoop)

Les formats pour l’entreposage et pour l’exploitation sont souvent différents. Les données peu volumineuses sont généralement emmagasinées en format .xtx ou .csv. Certaines données structurées sont toutefois emmagasinées dans un format différent, comme le format json, auquel cas il sera nécessaire de reconvertir les données dans un format où l’on a une ligne par observation et une colonne par variable.

Le tableau 2.1 vous donne une liste de librairies et fonction utiles pour la lecture de données structurées.

Tableau 2.1: Librairies pour l’importation de données en R
Format Extension Librairie Fonction
Texte .txt, .csv readr read_csv
Excel .xlsx readxl read_excel
SAS .sas7bdat haven read_sas
SPSS .sav, .zsav haven read_sav
JSON .json jsonlite read_json
Shapefile (spatial vectoriel) .shp shapefile read.shp
Raster (spatial matriciel) raster .grd (et autres) raster
Page web .html xml, httr, RCurl, rvest getURL, htmlParse, readHTMLTable

2.3.2 Formater, nettoyer et fusionner les données

Voici les principales caractéristiques d’un jeu de données propre (en anglais, tidy):

  • Il contient une et une seule ligne par observation;
  • Il contient une colonne par variable (caractéristique);
  • Il n’y a pas de doublons;
  • Une même modalité est exprimée de la même façon ;
  • Chaque variable est enregistrée dans le bon format:
    • Les dates sont sous forme de date (ex. POSIXlt ou POSIXct);
    • Les variables quantitatives sont sous forme numérique (numeric ou double);
    • Les variables catégorielles sont dans le format approprié pour le logiciel (factor);
    • Les identifiants sont dans un format approprié (character)
  • Les valeurs spéciales comme les valeurs manquantes sont enregistrées correctement.

La première ligne contient généralement le nom abrégé de la variable et la première colonne, l’identifiant.

On accompagne généralement ce jeu de données d’une table qui contient ce que l’on appelle les métadonnées. Le format et le contenu peuvent varier, mais cette table contient généralement une ligne par variable et une colonne par information sur la variable. Voici une liste non exhaustive des informations que l’on peut retrouver dans cette table:

  • Le type de variable (continu, catégoriel…)
  • La source
  • Les modalités
  • Les unités
  • Une note explicative
  • Des éléments descriptifs (minimum, maximum, nombre de valeurs différentes, nombre de données manquantes, moyennes, somme…)

Lorsque les informations proviennent de plusieurs sources différentes, il est nécessaire de fusionner les données pour les ramener dans une seule table. Cette opération se fait à l’aide de jointures.

2.4 Exploration et traitement préliminaire des données

2.4.1 Valeurs extrêmes, aberrantes et influentes

Une valeur aberrante est une valeur erronée causée par une erreur de saisie, une erreur de calcul, une mauvaise mesure ou une fausse déclaration.

Exemples :

  • Nombre total de pièces dans une maison est plus petit que le nombre de chambres à coucher
  • La date du premier achat est antérieure à la date de naissance du client
  • La personne a déclaré avoir 17 ans et être retraitée

Une valeur extrême est une valeur éloignée des autres valeurs dans la population. Une valeur extrême n’est pas nécessairement une valeur aberrante, elle peut correspondre à un profil particulier et plus rare dans la population.

Les valeurs extrêmes sont assez faciles identifier, mais les valeurs aberrantes peuvent être plus difficiles à détecter. Voici quelques trucs:

  • Faire des statistiques descriptives unidimensionnelles
    • Minimum et maximum
    • Histogramme, boite à moustaches (box-plot)
    • Tableau de fréquences
  • Faire des statistiques descriptives multidimensionnelles
    • Tableaux croisés
    • Diagrammes de dispersion
    • Distance de Mahalanobis

Les valeurs extrêmes peuvent être influentes ou non, c’est-à-dire qu’elles peuvent ou non avoir un grand impact sur les résultats. Certaines approches, comme la régression linéaire, les réseaux de neurones et l’analyse discriminante sont plus sensibles à ce genre de problème alors que d’autres y seront robustes (régression robuste).

Une fois identifiées, il faut trouver quoi faire avec ces valeurs. Pour les valeurs aberrantes, vous pouvez :

  • Les remplacer si on peut connaitre la bonne valeur
  • Les classer dans une catégorie «inconnus» pour les variables catégorielles
  • Retirer l’individu, surtout si plusieurs éléments sont incohérents
  • Imputer (voir plus loin)

Pour les valeurs extrêmes, vous pouvez:

  • Retirer les observations (si ce sont des profils qui ne nous intéressent pas)
  • Utiliser des méthodes robustes
  • Imputer par une valeur plus «réaliste»

2.4.2 Vérifier les valeurs manquantes

Aucune valeur implique qu’il n’y a aucune valeur correspondante dans la réalité pour cette observation (ex. port de la ceinture de sécurité pour un piéton/cycliste/motocycliste). Une valeur manquante implique qu’il y a une valeur pour cette observation, mais qu’elle n’a pas été capturée.

Les algorithmes requièrent généralement des données complètes. Il est donc absolument nécessaire de traiter les données manquantes avant d’ajuster les modèles. Les options suivantes d’offrent à vous:

  • Si la variable est catégorielle : créer une catégorie «inconnu»
  • Retirer les variables qui contiennent trop de données manquantes -> perte d’information
  • Retirer les observations avec des données manquantes -> risque de biais
  • Imputer
    • Par la moyenne, la médiane ou le mode
    • Par la distribution
      • On remplace par une autre valeur pigée au hasard dans les données
      • Préserve la distribution, mais on perd la structure de corrélation
    • Avec un modèle prédictif
      • Régression, arbre de décision
      • Préserve la distribution et la structure de dépendance

Attention! Les valeurs manquantes sont rarement aléatoires (revenu, opinion politique…). Ainsi, l’utilisation d’un modèle prédictif peut être douteuse.

De plus, l’imputation réduit la variabilité (on surestime la précision du modèle). Lorsqu’il est nécessaire d’évaluer la précision, on peut utiliser l’imputation multiple.

2.4.2.0.1 Transformer les variables

La transformation préliminaire des variables peut avoir une bonne influence sur la performance et la qualité des modèles. Voici quelques exemples de transformations possibles:

  • Transformations simples (\(\log(X)\))
  • Standardisation
  • Regroupement: on peut regrouper les catégories d’une variable nominale à plusieurs catégories.
    • Regroupement des marques de voiture en sous-compacte, compacte, intermédiaire, grande et très grande
    • Regroupement des entreprises :« SIC » standard industry classification
    • Regroupement des codes postaux en régions en utilisant les 3 premiers caractères seulement
  • Combinaison de variables
    • Date du premier achat – date de naissance = âge du client au moment de son entrée en relation avec l’entreprise.
    • Date d’aujourd’hui – date du dernier achat = temps écoulé depuis le dernier achat.
    • Somme de tous les achats dans les 12 derniers mois pour créer le montant total des achats dans la dernière année.
    • Prix payé l’an passé – prix payé cette année = économie réalisée
  • Réduction du nombre de dimensions
    • ACP, ACM, sélection de variables

2.5 Quelques conseils

Les changements dans les données (remplacement d’une valeur aberrante, imputation, etc.) devraient toujours se faire dans un script. Le script garde une trace des changements apportés et permet d’appliquer exactement les mêmes changements aux nouvelles données sur lesquelles nous désirons appliquer le modèle.

Ne modifiez jamais les données directement dans les fichiers ou bases de données sources.