Chapitre 1 Avant propos

Ce bookdown présent les éléments d’un cours de data science avec r. Il est reproductible, on peut en cloner les éléments à partir du repository. Le texte est encore hasardeux mais les codes sont vérifiés. Il sera dynamique, modifié à mesure de nos cours, séminaires et ateliers.

L’illustration de couverture représente l’évolution de la longueur des films de la base Imbd et raconte en chiffres un aspect de l’histoire du cinéma. Jusqu’aux années 30, la longueur est hétérogène puis elle se se stabilise : les courts-métrages ont une durée de l’ordre de 15 mn qui se raccourcit avec les décennies, ce genre menace de disparaître dans les années 80 et reprend du poil de la bête dans les années 2000. Les films longs voient leur longueur s’accroître et se stabiliser autour d’un peu moins de 100 mn, soit une heure et quarante minutes. On observera enfin qu’au cours des années 1990 les films de taille intermédiaires réapparaissent. On devinera dans cette évolution l’émergence de standards, ou de conventions. Dans ce graphique il y a tous les éléments des data sciences contemporaines : un jeu de données riche et systématique, un modèle statistique fondamental avec la notion de densité de probabilité, une mesure, un critère de comparaison.

Les diagrammes ridges, c’est ainsi qu’on les appele, sont inspirés de la pochette de l’album Unknown Pleasures de Joy division sorti en pleine période New Wave, en 1979. Un article de Vice en rappele l’origine et le destin du graphisme qu’on connait mieux imprimé sur des t-shirt que dans les cours de statistiques.

1.1 Plan du manuel

C’est un projet en cours, Le plan général projeté est le suivant. Certains chapitres sont publiés ( mêmes incomplets) d’autres sont dans les limbes. On les ajoutera progressivement.

  • 1 - L’environnement r x
  • 2 - Installation et prise en main x
  • 3 - Usage de ggplot - uni et bivarié x
  • 4 - Usage de ggplot - multivarié x
  • 5 - Tables avec flex
  • 6 - Modèles factoriels (Psych) x
  • 7 - AFC x
  • 8 - MDS
  • 9 - Clustering x
  • 10 - Analyse de réseaux
  • 11 - Analyse de variance et régression linéraire x
  • 12 - Modèle linéaire généralisé x
  • 13 - Modèles à décomposition d’erreur x
  • 14 - Modèle d’équations structurelles (Lavaan)
  • 15 - Times series
  • 16 - Analyse spatiale et géographique
  • 17 - Machine learning x

1.2 Les jeux de données

Au cours du développement, plusieurs cas pratiques - souvent réduit en volume pour rester exemplaire, seront employés. Les données sont partagées.

Voici la présentation des sets de données utilisées dans le syllabus. Ils sont disponibles dans le répertoire “./data/”

  • ESS : c’est une très belle base de données de sociologie
  • happydemics : observatoire de la présidentielle2022
  • NSPools
  • Arpur : commerce de paris
  • Botanic

1.3 Le cadre technique et les packages utilisés

Ce syllabus est écrit en Markdown (allaire_rmarkdown_2021?) et avec le package Bookdown (R-bookdown?). Le code s’appuie sur tidyverse et emploie largement les ressources de ggplot. Les packages seront introduits au fur et à mesure mais un voici la liste complète.

options(tinytex.verbose = TRUE)
knitr::opts_chunk$set(echo = TRUE, include=TRUE, cache=TRUE, message=FALSE, warning=FALSE)

#boite à outils et dataviz
library(tidyverse) # inclut ggplot pour la viz, readr et 
library(cowplot) #pour créer des graphiques composés
library(ggridges) # le joy division touch
library(ggmosaic)
library(ggcorrplot)
library(corrplot) #à supprimer
library(ggthemes)
library(colorspace) #pour les couleurs
library(wesanderson)
library(RColorBrewer)

#networks
library(igraph)
library(ggraph)

# Accéder aux données
library(rtweet)  # une interface efficace pour interroger l'api de Twitter

# NLP
library(tokenizers)
library(quanteda)
library(quanteda.textstats)
library(udpipe) #annotation syntaxique
library(tidytext)
library(cleanNLP) #annotation syntaxique

#sentiment
library(syuzhet)             #analyse du sentimeent

#mise en page des tableaux
library(flextable)

#statistiques et modèles
library(lme4) #pour des modèles plus complexe que les mco
library(jtools) #une série d'utiltaire pour bien représenter les résultats
library(interactions) #traitement des interactions
library(nlme)#pour les hlm
library(psych) #pour la psychometrie

#ACP et AFCM
library("FactoMineR")
library("factoextra")

#ML
library(caret)

#regression
library(lme4)
library(jtools)
library(interactions)
library(betareg)
library(lavaan)

# Utilitaires
library(citr) #pour insérer des références dans le markdown

library(MASS)


#config plot
theme_set(theme_minimal())

L’ensemble du code est disponible sur github. A ce stade c’est encore embryonnaire. Les proches et nos étudiants pourrons cependant y voir l’évolution du projet et de la progression. Une version pdf est disponible ici.

Quelques conventions d’écriture du code r

  • On dénomme les data frames de manière générale df, les tableaux intermédiaires sont appelé systématiquement foo
  • Gestion des palettes de couleurs ** une couleur :” royalblue” ** deux couleurs ** 3 à 7 couleurs
  • On emploie autant que possible le dialecte tidy.
  • Les chunks sont notés en 4 chiffres : 2 pour le chapitre et deux pour le chunck. 0502 est le second chunk du chapitre 5.
  • On commente au maximum les lignes de code pour épargner le corps du texte et le rendre lisible