J'utilise Python, mais j'apprends aussi R et Tidyverse pour l'analyse des données
Je suis un grand fan de Python pour l'analyse des données, mais même moi, je suis curieux de savoir ce qui est disponible d'autre. R a longtemps été le langage de prédilection pour les statistiques, mais le « Tidyverse » a sérieusement relooké le langage. Voici pourquoi j'ai décidé d'apprendre les deux technologies.
Sommaire
R est populaire dans le milieu universitaire et l’industrie
Si vous suivez des cours de statistiques au collège, vous apprendrez probablement le langage R. Le langage, créé par des statisticiens, est largement utilisé dans le monde universitaire de la statistique, ainsi que par les chercheurs universitaires dans d'autres domaines qui effectuent des analyses statistiques, comme les sciences sociales. Si vous prenez des manuels de statistiques avancées, mentionnés plus loin, vous constaterez que la plupart des exemples de code seront en R. R est également utilisé pour l'analyse dans le monde des affaires.
Si vous lisez les revues, même si d'autres langages comme Python sont de plus en plus mentionnés, la plupart des logiciels évoqués fonctionneront sous R. La domination continue de R est démontrée dans Le Journal des logiciels statistiquesune revue académique en libre accès couvrant, enfin, les logiciels statistiques.
R est fortement influencé par un langage antérieur, S. S a été créé aux Bell Labs pour mettre en œuvre l'idée du légendaire statisticien John Tukey d'« analyse exploratoire des données ». Comme pour l'autre création des Bell Labs, Unix, S était sous licence pour pratiquement rien. R s'est appuyé sur cela avec sa licence open source lors de son apparition dans les années 90. La relation de R à S est donc similaire à celle de Linux à l'Unix d'origine.
Le Tidyverse s'est appuyé sur cet héritage de calcul statistique pour offrir des outils avancés de traçage et de manipulation de données. Cette suite de bibliothèques R vous permet de tracer et de manipuler des données. Le Tidyverse comprend ggplot2 pour le traçage, dplyr pour la manipulation des données, spicer pour le nettoyage des données, readr pour lire des données rectangulaires à partir de feuilles de calcul ou de bases de données, purrr pour la programmation fonctionnelle, tibble pour gérer les trames de données, stringr pour travailler avec des chaînes, forcats pour travailler avec des variables catégorielles et lubridate pour travailler avec des données heure-date.
De superbes graphismes avec ggplot2
L'un des atouts de R réside dans sa capacité à créer des graphiques statistiques de qualité professionnelle avec un minimum de code. ggplot2, dans le cadre de Tidyverse, pourrait être son « application qui tue », la chose pour laquelle vous voudriez utiliser R et Tidyverse.
ggplot peut vous permettre de créer de jolis tracés que vous pouvez réellement publier. Et les organisations professionnelles le font : la BBC l’utilise pour ses infographies.
ggplot2 est basé sur l'idée d'une « grammaire graphique ». Au lieu d'une commande dédiée pour quelque chose comme créer un nuage de points avec une ligne de régression, vous construisez un tracé pièce par pièce à partir d'une sélection d'éléments. Vous définissez une « esthétique » qui contient l'axe du bloc de données, comme les axes x et y, puis vous ajoutez des éléments comme le nuage de points et la régression. Bien que cette approche semble plus compliquée que les fonctions de traçage que vous pourriez trouver dans un tableur, elle est beaucoup plus flexible.
Voici un exemple utilisant une base de données de pourboires qu'un serveur a enregistré alors qu'il travaillait dans un restaurant :
ggplot(tips, aes(x = total_bill, y = tip)) + geom_point() + geom_smooth(method = "lm")
Ce code indique à ggplot2 que je veux que l'axe des x ou la variable indépendante soit la facture totale et que l'axe des y soit le pourboire correspondant. Une fois l'esthétique définie, je lui dis ensuite de superposer un nuage de points, puis de tracer une ligne de régression linéaire par-dessus.
De nombreux textes et tutoriels disponibles sur R
Une autre raison pour laquelle j'ai décidé d'ajouter la programmation R à mon répertoire est que, en raison de la popularité actuelle de R dans le monde universitaire, il existe de nombreuses ressources pour apprendre des concepts plus avancés.
Si vous consultez des manuels de statistiques plus avancés, vous constaterez souvent qu'ils contiennent des exemples de code écrits en R. Bien qu'il soit assez facile de traduire ces exemples en Python avec les bonnes bibliothèques, je préfère me concentrer sur l'apprentissage des concepts, puis essayer de les appliquer à Python plus tard si je le souhaite.
Il existe de nombreux livres et tutoriels pour différents niveaux de compétence. Pour les étudiants de premier cycle qui suivent un cours d'introduction aux statistiques, OpenIntro's Introduction aux statistiques modernes leur présente les statistiques utilisant R pour les laboratoires, sans que les étudiants aient à rechercher des valeurs dans des tableaux ou à mémoriser des formules.
La section de documentation contribuée sur le site Web du CRAN, la réponse de R au Python Package Index ou CPAN, héberge de nombreux textes disponibles. Celui sur lequel je suis tombé était Régression pratique et Anova utilisant R par Julian Faraway. Étant donné que la régression linéaire est l’une de mes méthodes préférées en Python, cela pourrait être d’une grande aide pour apprendre des techniques plus avancées avec R.
Beaucoup de packages dans CRAN
Outre Tidyverse, la large disponibilité de packages pour R est un autre argument de vente pour le langage. Il existe près de 23 000 packages répertoriés sur le Comprehensive R Archive Network, ou CRAN. Cela montre à quel point les statisticiens sont profondément fidèles à R. Les packages Tidyverse en font partie, mais il existe également des « vues de tâches » pour tout, de l'économétrie à l'analyse sportive.
Il y a beaucoup de choses dans CRAN pour occuper les passionnés de statistiques pendant des décennies.
Le Tidyverse facilite le nettoyage des données
Si vous avez déjà téléchargé des ensembles de données sur Internet, vous savez qu’ils peuvent être loin d’être idéaux. Le Tidyverse tire son nom de l'idée selon laquelle chaque colonne d'un bloc de données doit être une variable, chaque ligne doit représenter une observation et une seule cellule représente une valeur.
Le problème est que lorsque les gens créent leurs propres ensembles de données dans des feuilles de calcul, ils ne pensent peut-être pas à ce critère. Bien qu'il soit préférable de présenter les données de cette façon dès le départ lorsque cela est possible, de nombreuses feuilles de calcul sont utilisées par des personnes qui ne sont pas formées aux statistiques ou qui ne réfléchissent pas à la manière dont leurs données pourraient être utilisées à l'avenir.
Le Tidyverse a développé des bibliothèques qui peuvent remodeler les ensembles de données pour les adapter au modèle de données ordonné. Vous pouvez étendre les données dans un format « large » avec plusieurs colonnes, et vous pouvez les réduire dans un format plus long, plus adapté au traçage.
RStudio est génial
J'ai été généralement sceptique à l'égard des IDE dans le passé, préférant travailler avec des composants séparés comme un éditeur et un terminal, ainsi qu'un interpréteur ou un compilateur (mais surtout un interpréteur).
Le principal outil de développement de Tidyverse est RStudio, un IDE multiplateforme spécialement conçu pour le travail statistique. Le nom dit « R » mais il prend également officiellement en charge d'autres langages comme Python. La diffusion vers d'autres langages est également la raison pour laquelle son développeur a changé son nom de R Studio à Posit.
J'ai aimé travailler avec R Studio jusqu'à présent. Cela ne semble pas gêner. Bien que je sois normalement sceptique à l'égard des outils de développement monolithiques, le travail d'analyse des données peut simplement être différent des autres tâches de programmation. C'est beaucoup plus interactif. Avec R, vous passez plus de temps à explorer les données et à essayer des choses plutôt que de travailler sur un cycle d'édition ou de débogage.
RStudio propose également une manière attrayante d'afficher les tracés de ggplot2 dans un volet situé dans le coin inférieur droit du programme. Il est également facile de sauvegarder des tracés à partir de cette fenêtre.
Parfois, la pression des pairs est bonne
Il est souvent conseillé aux nouveaux programmeurs d'apprendre Lisp, même s'ils utilisent d'autres langages dans leur travail quotidien, car le savoir affectera pour le mieux la façon dont ils aborderont les problèmes lorsqu'ils coderont dans d'autres langages. Je pense que R pourrait occuper un rôle similaire dans l'analyse des données. Python est meilleur lorsque vous devez adapter vos modèles pour s'interfacer avec d'autres programmes ou travailler avec le monde réel, mais R, conçu par des statisticiens pour des statisticiens, exerce une forte influence sur les autres outils d'analyse de données.
Les DataFrames pandas en Python ont été clairement influencés par les trames de données de R.
C'est finalement une mauvaise idée de s'attacher à une seule langue. Aussi populaire que soit Python, je pense que connaître plus d'un langage d'analyse de données m'aidera à long terme.
