Analyser et représenter une variable discrète avec Rstudio

1. Préparer l’epace de travail

Définir le répertoire de travail: c’est dans ce dossier que par défaut R ira chercher les fichiers à importer et y exportera les documents produits (tables, graphiques, scripts enregistrés)

setwd("C:/STATS_OK/Travail")

Je charge le fichier stature.csv après avoir vérifier en amont le séparateur de colonnes (ici le ;) et le séparateur de décimales (ici la ,). J’utilise donc la fonction read.csv2()

tableau <- read.csv2("statures.csv")
Notez que nous avons affecté l'objet **tableau** à l'action permettant de lire/d'interpréter le tableau stature.csv

Pour vérifier l’importation du tableau et regarder la structure, il est toujours utile d’utiliser la fonction str()

str(tableau)
## 'data.frame':    152 obs. of  3 variables:
##  $ ID                : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ estim_taille_femur: num  156 152 191 170 168 ...
##  $ sexe              : Factor w/ 3 levels "F","I","M": 3 3 3 3 3 3 3 3 3 3 ...
Nous pouvons identifier la variable discrète (de type Factor à 3 niveaux) à étudier: $sexe

2. Représentation numérique: le tableau de dénombrement

La première chose à faire est de faire un tableau de synthèse à partir de notre tableau élementaire. Cela consiste à décompter le nombre d’occurence pour chaque modalité. Il suffit d’utiliser la fonction table()

table(tableau$sexe)
## 
##  F  I  M 
## 68  9 75
Notez la syntaxe pour désigner la variable sexe sous la forme nom_du_tableau$nom_de_la_variable

Il peut être utile ici: * de trier la résultat par ordre croissant avec la fonction sort() * d’affecter un nom d’objet (tab.den)au résultat pour s’en servir par la suite

tab.den <- sort(table(tableau$sexe))

3. Représentations graphiques

a. Le diagramme en bâton

La représentation par défaut d’une variable discrète est le diagramme en bâton. D’ailleurs si nous utilisons la fonction par défaut de R pour faire une représentation graphique…

plot(tab.den)

… nous pouvons constater que c’est le choix que le logiciel à fait !

b. diagramme en barre

Le diagramme équivalent le plus courrament utilisé est le diagramme en barre (barplot)

barplot(tab.den)

Attention: il ne faut pas confondre
le Diagramme en Barre:
* Convient aux variables discrète
* Les barres sont disjointes car on veut différencier les modalités
* C'est la hauteur de la barre qui est proportionnelle à l'effectif de chaque modalités
et l'Histogramme:
* convient aux variables continues
* Pour exprimer la continuité les barres sont jointes
* C'est la surface du rectangle (barre) qui est proportionnel à l'effectif de chaque classe.

L’objectif de la représentation graphique est de différencier l’effectif de chaque modalité, il est possible d’ajouter la variable visuelle couleur afin de mettre en évidence cette différence. Nous utilisons alors l’argument col = (suivi d’une liste de couleurs) à l’intérieur de la fonction barplot()

barplot(tab.den, col = c("yellow", "purple", "darkgreen"))

Un titre au graphique permettrai d’obtenir un résultat plus convenable… nous allons donc ajouter l’argument main = (suivi du texte du titre)

barplot(tab.den, col = c("yellow", "purple", "darkgreen"), main = "diagramme en barre de \n la variable sexe")

Notez l'usage de **\n** pour forcer un retour à la ligne

c. diagramme à secteur circulaire

Pour représenter non plus l’effectif par modalités mais la proportion des modalités les unes par rapport aux autres, le diagramme à secteurs circulaires ou camembert est d’usage courant. Nous utilisons alors la fonction dédiée pie()

pie(tab.den)

Pour améliorer le graphique et explorer les arguments que l’on peut utiliser il suffit de demander de l’aide à R en précédant le nom de la fonction d’un ?

?pie

La rubrique Usage décrit la fonction en montrant les arguments les plus courants que l’on peut utiliser.

pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL,
lty = NULL, main = NULL, ...)

Important: les valeurs prises par les arguments dans l'exemple sont celles prises par défaut c'est à dire celles qui sont activées si on utilise la fonction sans ajouter d'argument.

Ainsi on peut faire un camembert un peu plus “léché”:

pie(tab.den 
    ,clockwise = TRUE # dans le sens des aiguilles d'une montre
    ,border = FALSE # pas de bordure
    ,col = c("yellow","purple","dark green") # définir les couleurs
    ,main = "proportion des individus par sexe" # définir le titre
    )

d. diagramme en barres empilées

Il existe un autre graphique pour représenter la proportion des différentes modalités d’une variable discrète: la diagramme en barres empilées.

barplot(as.matrix(tab.den) # il faut transposer la table avec as.matrix comme "série de données en ligne" dans Calc
        , col = c("yellow","purple","dark green") # définir les couleurs
        , legend.text = TRUE # mettre la légende
        )