Introduction à R : Analyse de données et statistiques
R est bien plus qu’un langage de programmation : c’est un écosystème complet pour l’analyse statistique, la manipulation de données et la visualisation. Développé par des statisticiens pour des statisticiens, R a changé la façon dont les chercheurs et les data scientists travaillent avec les données.
Les origines : Le langage S
R n’a pas été créé à partir de rien. Au début des années 1970, John M. Chambers et ses collègues chez Bell Laboratories développent le langage S : un langage pensé spécifiquement pour l’analyse statistique interactive.
S connaît plusieurs évolutions majeures :
| Version | Année | Nom | Caractéristiques |
|---|---|---|---|
| Brown Book | 1984 | S v3 | Version originale |
| Blue Book | 1988 | S v4 | Améliorations majeures |
| White Book | 1992 | S v5 | Programmation orientée objet |
| Green Book | 1998 | S v6 | Optimisations |
S-PLUS, la version commerciale, devient le standard dans les années 1990-2000, mais reste onéreux et inaccessible à beaucoup.
La naissance de R : Un S libre et puissant
Au milieu des années 1995, deux statisticiens néo-zélandais, Ross Ihaka et Robert Gentleman, créent R à l’Université d’Auckland, inspirés par S mais aussi par le langage Scheme.
Trois points fondamentaux caractérisent R dès ses débuts :
- R est un logiciel libre et gratuit (licence GNU GPL)
- Son code source est ouvert aux contributions mondiales
- Il devient rapidement le standard académique et professionnel en statistique
Aujourd’hui, John Chambers lui-même contribue encore à R, preuve que l’héritage de S reste bien vivant.
Pourquoi des packages, et pas seulement R de base ?
R de base sait faire pas mal de choses : moyennes, régressions simples, graphiques basiques. Mais dès qu’on travaille sur des données réelles, on se heurte rapidement à ses limites. Les données arrivent mal formatées, avec des valeurs manquantes, des colonnes mal nommées, des milliers de lignes. C’est là que les packages entrent en jeu.
Un package, c’est un ensemble de fonctions spécialisées : écrites, testées, et partagées par la communauté. Sur CRAN, il en existe des milliers. L’enjeu n’est pas de tout connaître, mais de savoir à quoi sert quoi selon le problème rencontré.
Les packages présentés ici, dplyr, tidyr, data.table, ggplot2, FactoMineR et factoextra, couvrent une grande partie de ce qu’on fait en data science : nettoyer, transformer, visualiser et comprendre la structure des données avant d’aller plus loin.
dplyr et tidyr : remettre de l’ordre dans le chaos
Avant toute analyse statistique ou machine learning, il y a presque toujours la même étape : les données sont sales. Colonnes mal alignées, lignes dupliquées, valeurs manquantes, variables éparpillées dans plusieurs fichiers. C’est souvent là que se passe la majorité du travail.
dplyr est la boîte à outils de référence pour manipuler les données. Filtrer des lignes, sélectionner des colonnes, trier, grouper par catégorie, calculer des agrégats : dplyr le fait avec une logique claire. L’idée du pipe (%>%) permet de lire les opérations dans l’ordre naturel : « on prend les données, on filtre, on sélectionne, on résume ». Sur un dataset de plusieurs milliers de lignes, par exemple pour comparer le comportement d’achat par région, c’est l’outil à ouvrir en premier.
tidyr s’occupe d’un autre problème : la forme des données. Parfois les variables sont en colonnes alors qu’elles devraient être en lignes, ou l’inverse. Un fichier exporté depuis Excel peut avoir une structure illisible pour R. tidyr sert à reshaper : passer d’un format large à un format long, combiner plusieurs tables, séparer une colonne qui mélange plusieurs informations. Sans cela, beaucoup d’analyses deviennent impossibles ou très fastidieuses.
En pratique, dplyr et tidyr vont presque toujours ensemble. Ils font partie du tidyverse, un écosystème de packages qui partagent la même philosophie : des données bien structurées, une syntaxe cohérente. La préparation d’un dataset pour une régression ou pour entraîner un modèle passe rarement directement par du machine learning : c’est d’abord du dplyr et du tidyr.
data.table : quand les données deviennent lourdes
dplyr est lisible et pratique. Mais quand le dataset grossit, des millions de lignes ou des fichiers de plusieurs gigaoctets, la performance devient un sujet central. C’est là qu’intervient data.table.
data.table propose une autre façon de manipuler des tables en R, optimisée pour la vitesse et la mémoire. La logique reste similaire à dplyr (filtrer, grouper, joindre des tables), mais la syntaxe est différente et l’exécution est nettement plus rapide sur les gros volumes.
Son usage est situationnel : quand dplyr ralentit, quand la RAM atteint ses limites, quand on travaille sur des logs, des transactions bancaires ou des données de capteurs. En environnement professionnel, data.table revient fréquemment. Sur des plateformes comme Kaggle, de nombreux participants s’en servent pour gagner en performance.
La distinction des rôles est donc claire : dplyr pour le quotidien et la lisibilité, data.table quand la taille des données devient le problème principal.
ggplot2 : voir avant de conclure
Il existe un principe fondamental en data science : regarder ses données avant de faire confiance à un modèle. ggplot2 est l’outil qui permet de le mettre en pratique.
ggplot2 repose sur la grammaire des graphiques : un graphique n’est pas une fonction magique qui sort un résultat tout fait, c’est une superposition de couches. Les données, le type de représentation (points, barres, lignes), les couleurs, les facettes pour comparer des groupes. Une fois cette logique assimilée, il devient possible de produire presque n’importe quelle visualisation.
Ce que ggplot2 permet notamment :
- Nuages de points pour identifier des relations entre deux variables
- Histogrammes et densités pour comprendre la distribution d’une variable
- Boxplots pour comparer des groupes : médiane, dispersion, valeurs aberrantes
- Graphiques en barres pour des comptages et des proportions
- Facettes pour découper un même graphique par catégorie
- Courbes de tendance pour visualiser une relation linéaire ou non linéaire
En data science, ggplot2 intervient à toutes les étapes : en exploration (EDA) avant tout modèle, en communication pour présenter des résultats, en diagnostic pour vérifier le comportement d’un modèle (résidus, distributions).
Face à la question « est-ce que cette variable influence celle-là ? », la première réponse n’est pas de lancer une régression, c’est de dessiner le graphique. ggplot2 donne les yeux avant de donner le chiffre.
FactoMineR : comprendre quand on a trop de variables
FactoMineR est la référence en R pour les analyses factorielles multivariées : quand on dispose de beaucoup de variables et qu’on veut comprendre la structure cachée des données, au-delà d’une analyse variable par variable.
FactoMineR propose plusieurs méthodes, chacune adaptée à un type de problème différent.
L’ACP : Analyse en Composantes Principales
L’ACP s’applique aux variables quantitatives. Face à un questionnaire avec 20 questions numériques, ou un dataset avec 15 mesures physiques par individu, l’ACP cherche des combinaisons de variables qui résument l’essentiel de l’information. Au lieu de 20 dimensions impossibles à visualiser, on obtient 2 ou 3 composantes principales qui expliquent la majorité de la variance.
Cas d’usage typiques :
- Réduire le nombre de variables avant du machine learning (moins de bruit, moins de colinéarité)
- Visualiser des données multidimensionnelles en 2D
- Détecter des groupes naturels ou des individus atypiques
- Comprendre quelles variables « vont ensemble »
L’AFC : Analyse Factorielle des Correspondances
L’AFC s’applique aux tableaux de contingence : des tableaux croisés entre deux variables qualitatives. Par exemple, espèce de fleur × taille de pétales, ou région × type de produit acheté. L’AFC révèle quelles modalités sont associées, lesquelles s’éloignent, comment les catégories se structurent.
Cas d’usage typiques :
- Études de marché (quels profils de clients achètent quoi)
- Analyse de surveys avec des réponses catégorielles
- Comprendre l’association entre deux variables qualitatives au-delà d’un simple test du chi-deux
L’ACM : Analyse des Correspondances Multiples
L’ACM généralise l’AFC à plusieurs variables qualitatives simultanément. Un questionnaire avec des réponses « oui/non/autre » sur 10 questions peut ainsi révéler comment les profils de répondants se regroupent.
Cas d’usage typiques :
- Segmenter une population selon plusieurs critères qualitatifs
- Études sociologiques, enquêtes, sondages
- Comprendre des profils types dans des données catégorielles
FactoMineR ne relève pas du machine learning au sens prédictif. C’est de l’exploration profonde : comprendre la géométrie des données avant de décider quoi faire ensuite. Une étape que beaucoup de projets sautent, alors qu’elle permet d’éviter des erreurs en aval.
factoextra : rendre visible ce que FactoMineR calcule
FactoMineR calcule. factoextra montre.
La différence : d’un côté, un objet R rempli de coordonnées, de contributions, de pourcentages de variance expliquée ; de l’autre, un graphique compréhensible en quelques secondes.
factoextra visualise les résultats de l’ACP, de l’AFC, de l’ACM, mais aussi du clustering. Concrètement, il permet de :
- Afficher les individus sur un plan factoriel, colorés par groupe
- Tracer le cercle des corrélations pour voir quelles variables contribuent à quoi
- Montrer le pourcentage de variance expliquée par chaque composante
- Visualiser des clusters (k-means, clustering hiérarchique) projetés en 2D
- Dessiner des dendrogrammes pour voir comment les groupes se forment
factoextra est le pont entre l’analyse mathématique et la compréhension intuitive. Là où FactoMineR indique « la composante 1 explique 73% de la variance », factoextra montre à quoi ressemble cette composante : quels individus sont proches, quelles variables tirent dans quelle direction.
En machine learning, le clustering (k-means, classification ascendante hiérarchique) revient fréquemment. factoextra n’effectue pas le clustering, mais il aide à interpréter les groupes trouvés, une étape souvent plus difficile que le calcul lui-même.
Comment tout s’assemble dans un vrai projet
Voici à quoi ressemble un flux de travail réaliste en data science avec ces packages :
- Les données arrivent : CSV, Excel, base SQL. Elles sont rarement propres.
- tidyr + dplyr : nettoyage, reshaping, filtrage, création des variables nécessaires.
- data.table : si le volume est important, pour gagner en performance.
- ggplot2 : exploration visuelle des variables, distributions, corrélations, valeurs aberrantes.
- FactoMineR : si le nombre de variables est élevé, ACP ou ACM pour comprendre la structure globale.
- factoextra : visualisation des résultats pour valider les intuitions.
- Ensuite seulement : régression, classification, clustering prédictif, ou rapport final.
Ce pipeline met en évidence un point clé : la majorité du travail en data science se joue avant le modèle. Les packages présentés ici couvrent précisément cette phase.
Tableau récapitulatif
| Situation | Package(s) recommandés |
|---|---|
| Données mal formatées, filtrage, regroupement | dplyr, tidyr |
| Dataset volumineux, problèmes de performance | data.table |
| Exploration visuelle, présentation de résultats | ggplot2 |
| Trop de variables quantitatives, réduction de dimension | FactoMineR (ACP) |
| Variables qualitatives, tableaux croisés | FactoMineR (AFC, ACM) |
| Visualisation des résultats d’une analyse factorielle | factoextra |
| Interprétation de clusters | factoextra |
Conclusion
R n’est pas qu’un langage avec des formules statistiques : c’est un écosystème où chaque package a un rôle précis, et où la vraie compétence réside dans la capacité à enchaîner les bons outils au bon moment.
Les packages présentés ici ne font pas de machine learning à la place du praticien. Mais sans eux, il est difficile d’arriver sereinement au machine learning. Parce qu’avant de prédire, il faut comprendre. Avant de modéliser, il faut voir. Avant de conclure, il faut nettoyer.
La data science n’est pas une course vers le modèle le plus sophistiqué : c’est d’abord une manière de regarder les données avec les bons outils. Et R, avec cet écosystème de packages, offre précisément ce cadre de travail.