FAS1003: Visualisation des données

Cours 1: Plan de cours et introduction à R

La visualisation des données

Pourquoi visualiser les données?

arelb

Figure tirée de Arel-Bundock, 2020.

Pourquoi visualiser les données? Non, mais vraiment?

  1. Explorer une quantité importante de données
  2. Découvrir des tendances
  3. Vulgariser des résultats d’analyse
  4. Diagnostiquer des problèmes
  5. Découvrir des erreurs

1. Explorer une quantité importante de données

Exemple: Cette visualisation du vieillissement de la population au Japon (Simon Carr, Han Huang, Jin Wu et Manas Sharma).

goinggrey

2. Découvrir des tendances

Exemple: Cette visualisation d’associations plausibles entre X et Y, tirée du livre d’Healy.

relations

3. Vulgariser des résultats d’analyse

Exemple: Au lieu de présenter des coefficients, présentons des graphiques.

Variables Coefficients Erreur standard Statistique t Valeur p
Intercept 0.4960180 0.0031666 156.6424989 0.0000000
Variable 2 -0.0006754 0.0031623 -0.2135850 0.8308711
Variable 3 0.0054801 0.0031623 1.7329482 0.0831080
Variable 4 0.0008737 0.0031623 0.2762815 0.7823324

4. Diagnostiquer des problèmes

Exemple: Cette visualisation de l’effet d’une valeur aberrante et influente, tirée du livre d’Arel-Bundock.

aberrantes

5. Découvrir des erreurs de codage

Exemple: Cette visualisation d’une banque de données fictives.

Comment visualiser les données

L’objet de ce cours !

Introduction à R

Contexte

  • R a vu le jour en 1993.
  • De plus en plus utilisé en analyse statistique et en recherche en sciences sociales.
    • Permet de “lire” des banques de données, de manipuler les données, de mener des analyses, de programmer des sites web et des applications, etc.
  • Avantages:
    • Logiciel libre.
    • Évolutif et extrèmement flexible.
    • La communauté R est accueillante et ouverte.
    • Les ressources pour apprendre sont nombreuses.
  • Désavantage: Courbe d’apprentissage plus abrupte que certains logiciels d’analyse statistique.

R Studio

  • R Studio est un “environnement de développement intégré” (integrated development environment ou IDE).
  • Il agit comme une interface entre nous (les utilisateurs) et le language R.
    • Il est plus facile à utiliser que l’interface R de base.

Un aperçu de R Studio

interface

En ouvrant R Studio, il se peut que la fenêtre “Éditeur” soit invisible. Pour l’ouvrir, cliquez sur l’icône suivant en haut à droite de la console:

icone

Avant de commencer à travailler: Démarrer un R Project

  • Une excellente manière de garder la trace de notre travail dans R est de travailler au sein de “projets”.
  • Les projets sont des fichiers avec une extension .Rproj.
  • Ils représentent des raccourcis pour ouvrir et accéder à vos fichiers.
  • Pour créer un R Project, cliquez sur “File -> New Project…”, puis “Existing Directory”
  • Cliquez sur “Browse” pour sélectionner l’emplacement de votre choix sur votre ordinateur.

R Project: Un exemple

interface-proj

Pourquoi utiliser les R Projects?

  • Le R Project devient le répertoire de votre projet en cours.
  • Lorsque vous aurez besoin d’ouvrir des données dans R Studio, vous pourrez les appeler directement. R “saura” qu’elles se trouvent dans un dossier lié au projet présentement ouvert.
  • Lorsque vous voudrez enregistrer vos visualisations (ce qui arrivera souvent!), ces dernières s’enregistreront directement dans le projet présentement ouvert.
  • Tout cela est abstrait pour vous? C’est normal! Vous comprendrez mieux l’utilité des R Project à force d’utiliser R Studio. N’ayez pas peur.

Éditeur R (R script)

  • C’est dans l’éditeur que vous entrerez toutes vos commandes (lignes de code).
    • Cela permet de conserver une trace de votre travail.
  • Si ce n’est pas fait, ouvrez un nouveau R script.
    • Pour ce faire, cliquez sur “File -> New File -> R script”
  • Enregistrez ce script dans vos fichiers (au même emplacement que votre R Project!).

Une première commande

  • On peut se servir de R comme d’une calculatrice.
  • Dans votre script, écrivez la commande suivante.
4 + 2
## [1] 6
  • Pour l’exécuter, poser votre curseur sur la commande et cliquez sur:

run

  • La réponse apparaîtra dans la console.

Exécution des commandes

  • Il existe des façons plus efficaces d’exécuter des lignes de code.
  • Placez votre curseur sur la commande que vous souhaiter exécuter, puis
    • en Mac: appuyez sur CMD + ENTER
    • en Windows: appuyez sur CTRL + ENTER

Annoter son script

  • Il est possible d’ajouter du texte dans un script, par exemple, pour prendre des notes.
  • Les notes sont précédées d’un ou plusieurs signes de dièse (#).
  • Ces lignes ne seront pas “lues” par R au moment d’exécuter les commandes.
# Ceci est une note -- elle ne sera pas exécutée par R.

4 + 2  # cette commande calcule la somme
## [1] 6

Les “commandements” de R

  1. Attention, R est sensible aux majuscules!
mean(4:10)  # calcule la moyenne de 4+5+6+7+8+9+10
Mean(4:10)  # renvoie un message d'erreur

Les “commandements” de R (2)

  1. Pour savoir à quoi sert une commande, écrivez ? dans la console, suivi du nom de la commande. Puis, exécutez cette ligne de code.
?mean

Le résultat apparaîtra dans l’onglet Help.

Les “commandements” de R (3)

  1. Si vous avez besoin d’aide avec une commande, commencez par:
    1. Explorez la commande avec ?
    2. Posez votre question sur internet: quelqu’un d’autre a assurément déjà eu la même question!
    3. Posez votre question à un.e collègue ou à moi.

La structure de base dans R

  • R est un langage “orienté objet” (object oriented).
  • En R, on crée des “objets” et on leur assigne des valeurs.
  • On assigne une valeur à un objet à l’aide du symbole <- (“plus petit que” suivi d’un tiret) ou =.
x <- 2
y = 3

x  # En tapant le nom de l'objet, R nous renvoit son contenu
## [1] 2
  • Les objets apparaissent dans l’onglet Environment sur R Studio.

Utiliser les objets

  • On peut ensuite faire des opérations à partir de nos objets.
x - y
## [1] -1
# On peut même créer un objet qui sera le résultat d'une opération
multi = x * y
multi
## [1] 6

Types de données

  • Les trois types de données les plus utiles sont: les caractères, les numériques et les booléens.
  • Pour connaître le type d’une donnes, utilisez la fonction class()
class(x)
## [1] "numeric"

Caractères

  • Il s’agit de texte.
  • Ce contenu est entouré de guillemets.
coucou <- "exemple de texte"

# Affichons le contenu de l'objet 'coucou'.
coucou
## [1] "exemple de texte"

Numériques

  • Il s’agit de nombres.
  • Ces données ne sont pas entourées de guillemets.
y
## [1] 3

Booléens

  • Les booléens sont des expressions logiques.
  • Ils prennent la forme TRUE ou FALSE.
bonjour <- 3 < 2

bonjour
## [1] FALSE
# R retourne 'FALSE' parce que 3 n'est pas plus petit que 2

Une seule donnée: c’est plutôt rare!

  • Jusqu’ici, chaque objet que nous avons défini ne contenait qu’une seule donnée.
  • La plupart du temps, nous manipulerons des objets qui contiennent plus qu’une donnée
    • Comment des tableaux de données!

Tableaux de données ou Data frame

  • Un data frame contient des données organisées en rangées et en colonnes, comme dans un tableau Excel.

example-df

  • Les colonnes correspondent à des variables, tandis que les lignes/rangées correspondent à des observations.
  • Chaque colonne peut contenir des données de différents types, mais les données au sein d’une même colonne sont du même type.

Data frames: exemple

  • Certaines banques de données existent de facto dans R.
    • C’est utile en contexte d’apprentissage.
  • Pour vous familiariser avec les data frames, jouons avec une de ces banques de données.
    • Son nom est ChickWeight. Elle comprend des informations sur le poids de différents poussins selon leur régime.
    • Commençons par assigner cette banque de données à un objet.
dat <- ChickWeight

Explorer le contenu d’un tableau de données

  • En cliquant sur l’objet dat dans votre environnement, celui-ci s’ouvre dans un nouvel onglet. Vous pouvez ainsi explorer les variables dans la banque de données.
  • Un altervative est d’exécuter la commande suivante:
view(dat)

Explorer le contenu d’un tableau de données (2)

  • La fonction summary() permet de faire apparaître un résumé du tableau de données dans la console.
  • Cette fonction donne la description des différentes variables contenues dans la banque de données.
  • Ici, il y en a 4: weight, Time, Chick et Diet.
summary(dat)
##      weight           Time           Chick     Diet   
##  Min.   : 35.0   Min.   : 0.00   13     : 12   1:220  
##  1st Qu.: 63.0   1st Qu.: 4.00   9      : 12   2:120  
##  Median :103.0   Median :10.00   20     : 12   3:120  
##  Mean   :121.8   Mean   :10.72   10     : 12   4:118  
##  3rd Qu.:163.8   3rd Qu.:16.00   17     : 12          
##  Max.   :373.0   Max.   :21.00   19     : 12          
##                                  (Other):506

Explorer le contenu d’un tableau de données (3)

  • Le symbole $ permet de sélectionner une variable (colonne) dans un tableau de données.
  • En utilisation la fonction summary() sur une seule variable, on obtient une description de cette variable seulement.
summary(dat$weight)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    35.0    63.0   103.0   121.8   163.8   373.0

Explorer le contenu d’un tableau de données (4)

  • La fonction table() est aussi très utile pour résumer une variable de notre banque de données.
table(dat$Diet)
## 
##   1   2   3   4 
## 220 120 120 118
table(dat$Diet, useNA = "always")  # avec les valeurs manquantes 
## 
##    1    2    3    4 <NA> 
##  220  120  120  118    0
  • Dans la variable Diet, le chiffre 1 apparaît 220 fois, le chiffre 2 apparaît 120 fois, etc.

Explorer le contenu d’un tableau de données (5)

  • Il est possible de faire des opérations sur des variables de notre tableau de données.
  • Calculons la moyenne de la variable weight:
mean(dat$weight)
## [1] 121.8183

Exercice 1

  1. Assigner la banque de données ToothGrowth à un objet nommé donnees.
  2. Combien de variables se trouvent dans ce tableau de données?
  3. De quel type (ou classe) est la variable supp.
  4. Assignez la variable len à un nouvel objet, nommé variable.
  5. Calculez la médiane de la variable len à l’aide de la fonction median().
  6. Combien de fois la catégorie OJ se retrouve-t-elle dans la variable supp?

Exercice 1 - Correction

# Question 1.
donnees <- ToothGrowth

# Question 2.
summary(donnees)
##       len        supp         dose      
##  Min.   : 4.20   OJ:30   Min.   :0.500  
##  1st Qu.:13.07   VC:30   1st Qu.:0.500  
##  Median :19.25           Median :1.000  
##  Mean   :18.81           Mean   :1.167  
##  3rd Qu.:25.27           3rd Qu.:2.000  
##  Max.   :33.90           Max.   :2.000
length(donnees)
## [1] 3
view(donnees)

Exercice 1 - Correction (suite)

# Question 3.
class(donnees$supp)
## [1] "factor"
# 4.
variable = donnees$len

Exercice 1 - Correction (suite)

# Question 5.
median(donnees$len)
## [1] 19.25
median(variable)
## [1] 19.25

Exercice 1 - Correction (suite)

# Question 6.
table(donnees$supp)
## 
## OJ VC 
## 30 30
summary(donnees$supp)
## OJ VC 
## 30 30

Importer un tableau de données avec R

  • Pour importer votre propre banque de données dans R Studio, commencez par enregistrer le fichier au même emplacement que votre R Project dans votre ordinateur.
  • Dans ce cours, nous travaillerons surtout avec des fichiers de données de format .csv (données séparées par des virgules).
  • La fonction read.csv() permet de lire ces fichiers dans R Studio.

Importer un tableau de données: Exemple

  • J’ai placé un fichier nommé “midwest.csv” au même emplacement que mon R Project dans mon ordinateur.
  • Je peux donc “appeler” ce fichier en exécutant la commande suivante:
exemple_dat = read.csv("files/midwest.csv")

Explorer vos propres données

  • Une fois votre tableau de données importé dans R, vous pouvez faire n’importe quel type d’exploration sur les variables comprises à l’intérieur.
  • Pour ce faire, référez-vous aux commandes que nous avons utilisées plus haut (summary(), table(), view(), etc.).
# Par exemple:
table(exemple_dat$state)
## 
##  IL  IN  MI  OH  WI 
## 102  92  83  88  72

Ressources

Ressources en français

Ressources en anglais:

À la semaine prochaine!