R++: l’informatique au service des statistiques
Introduction
Les progrès technologiques permettent une quantification de notre environnement croissante. Des capteurs de plus en plus puissants permettent de transformer de nombreux phénomènes en données chiffrées, tandis que les réseaux sociaux nous apportent une source phénoménale de statistiques sur des communautés du monde entier. Cette abondance de relevés est une aubaine pour de nombreux domaines d’étude. Mais encore faut-il pouvoir traiter ces données si précieuses! Initialement développé par Bell Labs dans les années 90 avant d’être abandonné, le projet R++ a été repris en 2013 par un groupe de chercheurs français. [1] Leur but : créer un langage de programmation et un logiciel associé permettant de manipuler et générer des statistiques.
Pourquoi un nouveau langage?
Pour traiter des données et des statistiques, les chercheurs de tous les domaines avaient jusqu’à présent deux choix. Le premier est l’utilisation de logiciels métiers, c’est-à-dire créé directement à destination des statisticiens (par exemple R): ils sont simples d’utilisation et proposent beaucoup d’outils, mais sont très peu optimaux. Ce manque de performances pose problème au vu de la masse de statistiques (des dizaines voire centaines de gigaoctets) utilisée aujourd’hui.
L’autre possibilité est l’utilisation de logiciels créés plutôt à destination d’informaticiens (par exemple C): ils sont beaucoup plus performants, mais ne sont pas particulièrement destinés à un usage statistique. De plus, ils demandent de solides connaissances en programmation, que ne possèdent pas tous les utilisateurs qui peuvent être des historiens, des sociologues ou des médecins.
Il est donc nécessaire de développer un langage très optimal, pour faire face à la quantité de données de plus en plus importante, tout en restant simple et orienté spécifiquement pour un usage statistique, afin qu’il puisse être utilisé par tous ceux en ayant besoin. C’est ce que le projet R++ vise à produire. Le langage résultant sera également compilable, et orienté objet. L’idée de base est donc de partir du logiciel R, connu des statisticiens et possédant une communauté fournie, mais d’augmenter ses performances en explorant trois thématiques de pointe: le parallélisme, le Big Data et l’Interface Homme Machine. [2]
Le parallélisme
R++ a pour but d’intégrer le parallélisme, ce qui veut dire que ses programmes pourront être exécutés par plusieurs processeurs en même temps, ce qui permet un gain de temps conséquent. Pour cela, trois méthodes sont envisageables. Il est possible d’utiliser tous les processeurs (aussi appelés coeurs) d’un ordinateur simultanément et en parallèle: on appelle cette technique le multi-coeur. Dans le même ordre d’idée, on peut recourir à des cartes graphiques, c’est à dire des composants qui regroupent des milliers de processeurs ainsi qu’une petite mémoire. Enfin, pour effectuer ces calculs en parallèle, on peut utiliser un groupement de plusieurs ordinateurs reliés en réseau, soit un cloud. [2] [3]
Le Big Data
La multiplication des données est une problématique que les actuels logiciels statistiques peu optimaux ont du mal à gérer. D’où l’utilité de se pencher sur le concept de Big Data lors du développement de R++. Le terme Big Data désigne des données devenues si volumineuses (plus de cinquante téraoctets) qu’on ne peut plus les analyser de manière classique, c’est à dire par l’entendement humain ou les outils informatiques traditionnels. En particulier, certains logiciels de statistique existants ne supportent qu’une dizaine de gigaoctets, ce qui devient très insuffisant. R++ vise donc à pouvoir traiter des bases de données beaucoup plus grandes. [2] [3]
L’interface Homme Machine
Cet axe de recherche a pour but de rendre l’utilisation du futur logiciel R++ la plus ergonomique possible pour ses utilisateurs qui ne sont pas informaticiens. Cela passe par une interface graphique claire et adaptée aux besoins des utilisateurs, mais qui génère tout de même un code source à chaque action. Pour identifier ces besoins, l’équipe intègre des statisticiens qui participent à des brainstormings pour recenser les principaux problèmes qu’ils rencontrent avec les logiciels classiques. Parmi ceux-ci on peut citer l’export des résultats vers un autre format, qui n’était jusqu’alors pas supporté par les logiciels statistiques et obligeait à des recopies manuelles des données, méthode longue et peu rigoureuse. R++ intégrera donc une interface d’export, qui permettra également une mise en forme particulière pour certains domaines. Le logiciel proposera également d’utiliser des couleurs pour le traitement de données, avec par exemple la possibilité de repérer de manière visuelle des valeurs aberrantes. D’autres pistes sont étudiées afin de rendre l’utilisation de R++ la plus simple possible. [2][3]
Un code R++ se présentera alors de la manière suivante:
/* get et set */
majeur <- TRUE
age <- 18
age
taille <- 1.83
nom <- "Pierre"
metier <- "Cadre" in c("Agriculteur","Patron","Cadre","Ouvrier","Autres")
metier <- "Agriculteur"
niveauDEtude <- "L1" in c("L1"<"L2"<"L3"<"M1"<"M2")
On peut ainsi facilement attribuer des caractéristiques, pour pouvoir les traiter et les comparer ensuite.[4]
Le projet R++ a été terminé très récemment, et son efficacité n’ a pas encore pu être jugée, mais les idées développées et les pistes ouvertes montrent une véritable volonté de s’adapter aux besoins des utilisateurs, de corps de métier très différents. Un sociologue par exemple pourra alors traiter ses données statistiques avec une efficacité rivalisant avec celles des langages de programmation classiques (Python etc), tout en profitant d’une interface intuitive ne nécessitant pas de grandes connaissances en informatique. A terme: un nouvel outil interdisciplinaire permettant d’appréhender de manière efficace un monde numérique où les données et l’information sont le centre névralgique de la recherche, quelle qu’elle soit.
Sources:
[1]