Introduction au logiciel R et statistiques
Introduction au logiciel R et statistiques
LOGICIEL R/RSTUDIO
Mustapha BERROUYNE
INGENIEUR EN CHEF
STATISTICIEN DEMOGRAPHE
CHERCHEUR
ROYAUME DU MAROC
SUPPORT
HAUT COMMISSARIAT AU PLANDE COURS
TRAVAVAUX
INSTITUT NATIONAL DE STATISTIQUEPRATIQUES
2014201
ET D’ECONOMIE APPLIQUEE
Page | 3
Page | 4
TRAVAUX PRATIQUES 1. PRESENTATION ET DECOUVERTE DU LOGICIEL R
1. Installation du logiciel R
Commencez par télécharger le logiciel R (fichier [Link] ou x est le numéro de la dernière
version disponible) à l'aide de votre navigateur web usuel à l'adresse suivante :
[Link]
Enregistrez ensuite ce fichier exécutable sur le Bureau de Windows puis double cliquez sur l'icone :
Download R 3.5.1 for Windows (62 megabytes, 32/64 bit).
Le logiciel s'installe alors et vous n'avez plus qu'à suivre les instructions qui s'affichent et à conserver
les options proposées par défaut.
2. Installation et chargement de packages supplémentaires
De nombreux modules (packages ou librairies) supplémentaires sont disponibles et peuvent être
installés. Ces packages étendent les fonctionnalités de R. Il existe plusieurs moyens pour installer un
nouveau package, que nous présentons ci-dessous.
2.1. Installation directement depuis l'Internet
Pour installer, par exemple, les packages Rcmdr, commencez par lancer le logiciel R en double-
cliquant sur son icone située sur le Bureau.
Ensuite, allez dans le menu Packages, puis dans le sous-menu Install package(s).
Sélectionnez un miroir (CRAN mirror) proche de votre situation géographique et cliquez sur OK.
Puis, à l’étape suivante, sélectionnez « Rcmdr ». Pour cela, cliquez sur « Rcmdr ».
Page | 5
Puis cliquez sur « OK ».
2.2. Installation depuis la ligne de commande
On peut se passer des menus de l’interface graphique de R. Pour cela, tapez directement dans la
console de R la commande suivante :
> [Link]("Rcmdr")
2.3. Chargement des packages installés
Installer un package signifie que les fichiers qu’il contient sont « écrits » physiquement sur le disque
dur. Lorsque l’on éteint puis rallume l’ordinateur, ces fichiers seront toujours présents à l’endroit où ils
auront été copiés. Vous n’aurez donc plus besoin de réinstaller ce package, sauf pour en avoir une
version plus récente.
Page | 6
Au contraire, charger un package (en mémoire) signifie qu’il est temporairement mis à disposition de
l’utilisateur dans R. Mais si l’on ferme puis rouvre R, ce package ne sera plus disponible depuis R. Il
faudra donc le charger de nouveau.
Pour charger Rcmdr en mémoire, on peut soit taper require("Rcmdr") dans la console, soit aller
dans le menu Packages/Load Package, ...
3. Présentation du logiciel R
3.1. Origines
R est un langage orienté vers le traitement de données et l’analyse statistique. Il est développé depuis
une vingtaine d’années par un groupe de volontaires de différents pays. C’est un logiciel libre.
Le logiciel R est un logiciel de statistique crée par Ross Ihaka & Robert Gentleman [21].
Page | 7
Il est à la fois un langage informatique et un environnement de travail : les commandes sont exécutées
grâce à des instructions codées dans un langage relativement simple, les résultats sont affiches sous
forme de texte et les graphiques sont visualisés directement dans une fenêtre qui leur est propre.
Ce logiciel sert a manipuler des données, à tracer des graphiques et a faire des analyses statistiques sur
ces données.
L’utilisation de R présente plusieurs avantages :
• c’est un logiciel multiplateforme, qui fonctionne aussi bien sur des systèmes Linux, Mac OS X ou
Windows ;
• c’est un logiciel libre, développé par ses utilisateurs et modifiable par tout un chacun ;
• c’est un logiciel gratuit ;
• les possibilités de manipulation de données sous R sont en général largement supérieures à celles des
autres logiciels usuels d’analyse statistique ;
• c’est un logiciel avec d’excellentes capacités graphiques et de nombreuses possibilités d’export ;
• R est de plus utilisé dans tous les secteurs scientifiques, y compris dans le domaine des analyses
d’enquêtes et, plus généralement, des sciences sociales.
Comme rien n’est parfait, on peut également trouver quelques inconvénients :
• le logiciel, la documentation de référence et les principales ressources sont en anglais. Il est toutefois
parfaitement possible d’utiliser R sans spécialement maîtriser cette langue ;
• il n’existe pas encore d’interface graphique pour R équivalente à celle d’autres logiciels comme
SPSS, etc. R fonctionne à l’aide de scripts (des petits programmes) édités et exécutés au fur et à
mesure de l’analyse et se rapprocherait davantage de SAS dans son utilisation (mais avec une syntaxe
et une philosophie très différentes). Ce point, qui peut apparaître comme un gros handicap, s’avère
après un temps d’apprentissage être un mode d’utilisation d’une grande souplesse ;
• comme R s’apparente davantage à un langage de programmation qu’à un logiciel proprement dit, la
courbe d’apprentissage peut être un peu « raide », notamment pour ceux n’ayant jamais programmé
auparavant.
3.2. Pourquoi utiliser R?
Tout d'abord R est un logiciel gratuit et à code source ouvert (open source).
Il fonctionne sous UNIX (et Linux), Windows et Macintosh. C'est donc un logiciel multi-plates-
formes. Il est développé dans la mouvance des logiciels libres par une communauté sans cesse plus
vaste de bénévoles motivés.
Tout le monde peut d'ailleurs contribuer a son amélioration en y intégrant de nouvelles fonctionnalités
ou méthodes d'analyse non encore implémentées. Cela en fait donc un logiciel en rapide et constante
évolution.
C'est aussi un outil très puissant et très complet, particulièrement bien adaptés pour la mise en œuvre
informatique de méthodes statistiques. Il est plus difficile d'accès que certains autres logiciels du
marché (comme SPSS par exemple), car il n'est pas conçu pour être utilise à l'aide de «clics» de souris
dans des menus. L'avantage en est toutefois double:
Page | 8
- l'approche est pédagogique puisqu'il faut maitriser les méthodes statistiques pour parvenir à les
mettre en œuvre ;
- l'outil est très efficace lorsque l'on domine le langage R puisque l'on devient alors capable de créer
ses propres outils, ce qui permet ainsi d'opérer des analyses très sophistiquées sur les données.
Le logiciel R est particulièrement performant pour la manipulation de données, le calcul et l'affichage
de graphiques. Il possède, entre autres choses :
- un système de documentation intégré tres bien conçu (en anglais) ;
- des procédures efficaces de traitement des données et des capacités de stockage de ces données;
- une suite d'opérateurs pour des calculs sur des tableaux et en particulier sur des matrices;
- une vaste et cohérente collection de procédures statistiques pour l'analyse de données ;
- des capacités graphiques évoluées ;
- un langage de programmation simple et efficace intégrant les conditions, les boucles, la récursivité, et
des possibilités d'entrée-sortie.
4. R et les statistiques
R est un logiciel dans lequel de nombreuses techniques statistiques modernes et classiques ont été
implantées. Les méthodes les plus courantes permettant de réaliser une analyse statistique telles que :
- statistique descriptive ;
- tests d'hypothèses ;
- analyse de la variance ;
- méthodes de régression linéaire (simple et multiple) ;
- etc.
Il est à noter également que la plupart des méthodes avancées de statistique sont aussi disponibles au
travers de modules externes appelés packages. Ceux-ci sont faciles à installer directement à partir d'un
menu du logiciel. Ils sont tous regroupés sur le site internet du Comprehensive R Archive Network
(CRAN) ([Link] sur lequel vous pouvez les consulter.
Il est par ailleurs utile de noter que les méthodes statistiques les plus récentes y sont régulièrement
ajoutées par la communauté statistique elle-même.
Page | 9
5. R et les graphiques
Une des grandes forces de R réside dans ses capacités, bien supérieures à celles des autres logiciels
courants du marche, a combiner un langage de programmation avec la possibilité de réaliser des
graphiques de qualité. Les graphiques usuels s'obtiennent aisément au moyen de fonctions prédéfinies.
Ces dernières possèdent de tres nombreux paramètres permettant par exemple d'ajouter des titres, des
légendes, des couleurs, etc. Mais il est également possible d'effectuer des graphiques plus sophistiques
permettant de représenter des données complexes telles que des courbes de surface ou de niveau, des
volumes affichés avec un effet 3D, des courbes de densité, et bien d'autres choses encore.
Il vous est également possible d'y ajouter des formules mathématiques. Vous pouvez aussi agencer ou
superposer plusieurs graphiques sur une même fenêtre, et utiliser de nombreuses palettes de couleur.
Vous pouvez obtenir une démonstration des possibilités graphiques de R en tapant successivement les
commande suivantes :
demo(image)
example(contour)
demo(graphics)
Page | 11
Figure. L’interface graphique de RCommander.
Page | 12
de R (appelée R Console), le caractère d'invite de commande > vous invitant à taper votre première
instruction en langage R.
Tout code R qui suit le caractère «#» est considéré par R comme un commentaire. En fait, il n'est pas
interprété par R.
Vous pouvez maintenant quitter le logiciel R en tapant l'instruction suivante : q().
Page | 13
Il vous est alors propose de sauver une image de la session. En répondant oui, les commandes tapées
précédèrent seront de nouveau accessibles lors d'une prochaine réouverture de R, au moyen des flèches
«haut» et «bas» du clavier.
8.2. Stratégie de travail
Prenez l'habitude de stocker vos fichiers dans un dossier réservé a cet usage (nommé par exemple
MestravauxR). En outre, nous vous conseillons de taper toutes vos instructions R dans une fenêtre de
script appelée script ou R Editor, accessible de puis le menu «File/New script».
A la fin de votre session, vous pourrez sauver ce script, dans le dossier MestravauxR, sous le nom
monscript.R par exemple, et le rouvrir lors d'une session ultérieure depuis le menu «File/Open
Script».
Page | 14
TRAVAUX PRATIQUES 2. TECHNIQUES POUR TRACER DES COURBES ET DES
GRAPHIQUES
1. Les fenêtres graphiques
1.1. Fenêtre graphique de base, manipulation, sauvegarde
Tous les graphiques créés dans R sont affichés dans des fenêtres spéciales, distinctes de la console,
appelées « R graphics : Device numero-device », où numero-device est un entier donnant le numéro de
la fenêtre (ou device).
Pour ouvrir une fenêtre graphique, il faut utiliser la commande [Link](), windows() ou [Link]().
Ces commandes admettent plusieurs paramètres, dont quelques-uns sont d´écrits de façon succincte
dans le tableau suivant :
Lorsque l’on ouvre plusieurs fenêtres graphiques, une seule est la fenêtre dite « active ». C’est la
fenêtre dans laquelle toutes les opérations graphiques se passent. A chaque fenêtre est associé un
numéro de device ; la console possédant le numéro 1.
Voici une liste de quelques fonctions permettant de manipuler les différentes fenêtres graphiques grâce
à leur numéro de device.
Notez enfin que l’on peut sauvegarder dans un fichier un graphique ayant déjà été tracé, en utilisant la
commande savePlot() de la façon suivante :
savePlot(filename="Rplot", type=c( "png", "jpeg", "jpg", "bmp", "pdf"), device=[Link]())
Le paramètre filename est le nom du fichier sous lequel enregistrer le graphique, type est le type de
fichier (jpeg, bmp ou pdf) et device est le numéro de device où se trouve le graphique que l’on veut
enregistrer (par défaut, la fenêtre active).
> hist(runif(100))
> savePlot(filename="[Link]",type="pdf")
> [Link]()
Page | 15
> hist(runif(100))
> hist(runif(100))
Notez que des appels successifs de la fonction plot() créent `a chaque fois un nouveau graphique, en
remplacement de l’ancien (sauf si la fenêtre graphique a été découpée).
La fonction points() permet de remédier `a ce problème en superposant le nouveau graphique sur
l’ancien. Elle possède les mêmes paramètres que plot().
> plot(1:4,c(2,3,4,1),type="b",main="Titre principal",sub="Sous-titre",xlab="Titre pour les x",ylab="Titre pour
les y")
> points(1:4,c(4,2,1,3),type="l")
Page | 16
3. La gestion des couleurs -la fonction colors( )-
La fonction colors() renvoie le nom des 657 couleurs que R connaît.
Si vous voulez connaître les variantes de la couleur bleu, vous pouvez utiliser l’instruction
> colors()[grep("blue",colors())]
Page | 17
4. La fonction title()
Cette fonction permet d’ajouter des titres à votre graphique : un titre principal en haut de la figure avec
le paramètre main, un sous-titre en bas de la figure avec le paramètre sub, un titre pour l’axe des X
avec le paramètre xlab, et un titre pour l’axe des Y avec le paramètre ylab. Notez que ces paramètres
peuvent aussi être spécifiés directement lors de l’appel de fonctions graphiques comme plot().
> [Link]()
> box()
> title(main = "Titre principal", sub = "Sous-titre", xlab = "Titre des x", ylab = "Titre des y")
Notez qu’il est possible d’écrire un titre sur plusieurs lignes en utilisant le caractère de retour chariot
"\n".
> plot(1:10,main="Titre sur\n trois\n lignes", xlab="",ylab="")
5. La fonction axis()
Cette fonction ajoute un axe à un graphique préexistant. Il est possible de spécifier sur quel côté tracer
l’axe, les positions des graduations et plusieurs autres paramètres.
Il est à remarquer que L’utilisation de la fonction axis() se fait en général lorsque l’on veut gérer soi-
même plus finement l’aspect des axes. Pour cela, on peut d’abord tracer un premier graphique (par
exemple avec la fonction plot() sans les axes, au moyen du paramètre axes=FALSE.
La figure suivante donne quelques-uns des paramètres principaux de la fonction axis().
Page | 18
> [Link]()
> lines(x=c(0,1),y=c(0,1),col="red")
> axis(side=1,at=c(0,0.5,1),labels=c("a","b","c"),col="blue")
6. La fonction legend()
Cette fonction est utilisée pour ajouter une légende à un graphique existant.
La figure suivante donne quelques-uns de ses paramètres.
> plot(1:4,1:4,col=1:4)
> legend(x=3,y=2.5,legend=c("a","b","c","d"),fill=1:4)
> plot(1:4,1:4,col=1:4,type="b")
> legend(x=3,y=2.5,legend=c("a","b","c","d"),col=1:4,lty=1)
Page | 19
Page | 20
TRAVAUX PRATIQUES 3. STATISTIQUES DESCRIPTIVES
L'objectif de ces travaux pratiques est de décrire les différentes commandes à taper sous R pour
structurer vos variables, tracer des résumés graphiques classiques de vos données et calculer des
résumés numériques statistiques simples sur un jeu de données. Les données utilisées pour illustrer ce
chapitre sont celles du jeu de données "[Link]". Quelques exemples de fonctions permettant
d’obtenir des graphiques de qualité esthétique supérieure pouvant servir dans des présentations ou des
rapports sont également fournis.
Nous allons fonder tous les exemples de ces travaux pratiques sur le fichier de données "[Link]"
(13 variables et 226 observations) que vous pouvez charger dans R.
1. Importation des données
1.1. Importation des données depuis un fichier texte ASCII
Soit vous disposez d’un fichier texte au format ASCII qui contient vos données, soit vous pouvez les
entrer vous-même dans un fichier à l’aide d’un éditeur de texte comme Wordpad.
La principale fonction R à utiliser pour importer des données depuis un fichier texte est [Link]().
A privilégier pour des jeux de données organisés sous la forme de tableaux.
L’instruction R suivante va lire les données présentes dans un fichier (à sélectionner dans une fenêtre
de dialogue) et les rapatrier dans R sous la forme d’un [Link] que nous avons choisi de nommer
données se présente comme suit :
> données <- [Link](file=ficchier, header=TRUE,sep="\t", dec=".")
Cette fonction comprend de nombreux paramètres dont les plus utilisées sont décrits dans le tableau
suivant.
Page | 21
>head(données)
> tail(données)
Il est à noter que la fonction attach() permet d’avoir accès aux variables (colonnes) du [Link]
directement en tapant leur nom tel qu’il est écrit sur la première ligne du fichier au format ASCII.
> attach(données)
> library(readxl)
Page | 22
> données = read_excel("[Link]",1)
> head(données)
> tail(données)
> attach(données)
Plusieurs extensions existent pour importer des fichiers de données issus d’autres logiciels de
statistiques (SPSS, Stata, etc.). En premier lieu, il y a foreign, installée par défaut avec R.
Un des soucis majeurs de cette extension réside dans la manière dont elle traite les métadonnées
utilisées en particulier dans les fichiers SAS, à savoir les étiquettes de variable, les étiquettes de valeur
et les valeurs manquantes déclarées. En effet, chaque fonction va importer ces métadonnées sous la
forme d’attributs dont le nom diffère d’une fonction à l’autre. Par ailleurs, selon les options retenues,
les variables labellisées seront parfois transformées ou non en facteurs. Enfin, foreign ne sait pas
toujours importer les différents types de variables représentant des dates et des heures.
L’extension haven tente de remédier à plusieurs des limitations rencontrées avec foreign :
le format des métadonnées importé est uniforme, quel que soit le type de fichier source (SPSS,
Stata, etc.) ;
haven peut lire les fichiers Stata 13 et 14, alors que foreign ne sait lire ces fichiers que jusqu’à
la version 12 ;
1.3. Importer des données « SPSS » (.sav)
La fonction pour lire ce type de fichier est [Link]() :
Pour importer les fichiers de type SPSS, on aura recours à la fonction read_spss :
Nous recommandons d’appeler la fonction read_spss avec l’option user_na = TRUE. Dans ce cas-là,
les valeurs manquantes définies dans SPSS ne seront pas converties en NA, tout en conservant la
définition des valeurs définies comme manquantes.
> library(haven)
> donnees = read_spss("data/[Link]", user_na = TRUE)
ou bien
> library(foreign)
> données=[Link]("[Link]", [Link]=TRUE)
> head(données)
> tail(données)
> attach(données)
Page | 23
2. Structurer les variables
Nous allons commencer par imposer une structure R adaptée au type de chacune des 13 variables.
2.1. Structurer les variables qualitatives
Pour les variables qualitatives, la structure est imposée au moyen de la fonction [Link](). Il peut
éventuellement être intéressant d’utiliser aussi la fonction levels() pour recoder les modalités d’une
variable qualitative. Notez que l’association entre les codes et les levels se fait par ordre alphabétique
(et pas par ordre de saisie).
Effectuons ces opérations sur les variables qualitatives de notre jeu de données.
> sexe = [Link](sexe)
> levels(sexe) = c("Homme","Femme")
> situation = [Link](situation)
> levels(situation) = c("seul","couple","famille","autre")
> matgras = [Link](matgras)
> levels(matgras) = c("beurre","margarine","arachide", "tournesol","olive","Isio4","colza","canard")
Notez que dans le cas o`u une variable serait codée en présence/absence, il est aussi possible d’utiliser
une structuration R sous la forme d’un vecteur de logiques :
> fumeur = c(1,0,0,1,0,1,0,1,0,0) # 10 # fumeurs(=1)/non-fumeurs(=0).
> fumeur
[1] 1 0 0 1 0 1 0 1 0 0
> fumeur = [Link](fumeur)
> fumeur
[1] TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE
[10] FALSE
> fumeur = [Link](fumeur)
> fumeur
[1] TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE
[10] FALSE
2.2. Structurer les variables ordinales
Pour les variables ordinales, la structure est imposée au moyen de la fonction [Link](). Il peut
éventuellement être intéressant d’utiliser aussi la fonction levels() pour recoder les modalités d’une
variable ordinale.
Effectuons ces opérations sur les variables ordinales de notre jeu de données :
> viande = [Link](viande)
> poisson = [Link](poisson)
> fruit_crus = [Link](fruit_crus)
> fruit_legume_cuits = [Link](fruit_legume_cuits)
> chocol = [Link](chocol)
> niveaux = c("jamais","< 1/semaine","1/ semaine","2-3/ semaines", + "4-6/ semaines","1/jour")
> levels(chocol) = levels(fruit_legume_cuits) = levels(fruit_crus) = niveaux
> levels(poisson) = levels(viande) = niveaux
Cela n’est toutefois valable que si les données observées sont des entiers.
2.4. Structurer les variables quantitatives continues
Pour une variable continue, la structure est imposée au moyen de la fonction [Link]().
> taille = [Link](taille)
> poids = [Link](poids)
Page | 24
> age = [Link](age)
3. Représentations graphiques
Il est à rappeler qu'il faut choisir adéquatement le mode de représentation graphique d’une variable
adapté à son type. En effet, le type d’une variable est souvent traduit par des caractéristiques
particulières d’un graphique donné.
3.1. Graphiques pour les variables qualitatives
Diagramme circulaire
Il s’obtient au moyen de la fonction pie().
> require("RColorBrewer")
> col = [Link](8,"Pastel2")
> pie(table(matgras),col=col)
> camembert(matgras,col)
Page | 25
Diagramme de Pareto
Son obtention se fait également au moyen de la fonction barplot(), puisqu’il s’agit d’un diagramme
en tuyaux d’orgue dont les tuyaux sont représentés par hauteur décroissante.
> col = c("yellow","yellow2","sandybrown","orange", darkolivegreen" ,"green" ,"olivedrab2", "green4")
> barplot(sort(table(matgras),TRUE),col=col)
Diagramme empilé
Il s’obtient au moyen de la fonction barplot() en fournissant un objet du type matrix comme premier
paramètre effectif.
> nbh <- table(sexe)[1]
> nbf <- table(sexe)[2]
> [Link] <- table(matgras[sexe=="Homme"])/nbh
> [Link] <- table(matgras[sexe=="Femme"])/nbf
> barplot(cbind([Link],[Link]), main="Diagramme empilé de la
variable matgras",col= c("yellow","yellow2","sandybrown","orange",
"darkolivegreen","green","olivedrab2","green4"),xlim= c(0,1),width=0.15,space=1,
[Link]= c("Hommes","Femmes"),legend=TRUE,density=40)
Page | 26
3.2. Graphiques pour les variables ordinales
Diagramme en tuyaux d’orgue avec courbe des fréquences cumulées
Il s’obtient au moyen des fonctions barplot() et points().
> require("RColorBrewer")
> col = [Link](6,"Blues")
> tx = table(poisson)
> tx = tx/sum(tx)
> r = barplot(tx,ylim=c(0,1),col=col)
> points(r,cumsum(tx),type="l")
Page | 27
Boite à moustaches (boxplot)
Afin de tracer un diagramme en boîte à moustaches, il faut utiliser la fonction boxplot() qui produit le
graphique ci-après. Le schéma en explicite la lecture.
> boxplot(cafe,col="orange", main="Boxplot de la variable café")
Page | 28
La boîte est tracée en se servant des valeurs des trois quartiles. Notez que les valeurs repérées par des
petits cercles sont des valeurs hors norme, éventuellement suspectes ou aberrantes. Ces valeurs
extrêmes sont celles qui se situent à l’extérieur de la boîte, au-delà d’une distance de 1.5 fois
l’intervalle inter-quartiles (le paramètre range permet de modifier cette valeur par défaut 1.5). Notez
également que les valeurs se situant à l’extérieur de la boîte, mais `a une distance en deçà de 1.5 fois
l’intervalle inter-quartile sont des valeurs dites adjacentes. Les deux moustaches sont tracées
respectivement à la plus grande et à la plus petite valeur adjacente.
3.4. Graphiques pour les variables quantitatives continues
Nous présentons maintenant quelques graphiques utiles pour l’exploration de données quantitatives.
Histogramme en densité à amplitudes de classes égales ou inégales
> classes
= hist(age,right=TRUE,freq=FALSE,ylab="Densité", main="Histogramme de la variable age",
col="orangered")
Page | 29
Polygone des fréquences
On utilise les fonctions hist() et segments().
> classes = hist(taille,right=TRUE,freq=FALSE, main=paste("Histogramme et polygone des
fréquences", "de la variable taille",sep="\n"),col="orangered")
> milieux = classes$mid ; mlon <- length(milieux)
> densites = classes$density
> segments(milieux[1:mlon-1],densites[1: mlon-1], milieux[2:mlon],densites[2:mlon],col= rgb(0.4196078,
0.4196078, 0.1372549,0.9),lwd=3)
Page | 30
3.5. Représentations graphiques dans un cadre bivarié
Croisement de deux variables qualitatives
Il est possible de superposer deux diagrammes en tuyaux d’orgue comme on peut le voir sur les
deux figures suivantes.
> tss = [Link](table(sexe,situation),1)
> barplot(tss,bes=TRUE,leg=TRUE)
> title(paste("Diagrammes en tuyaux d’orgue de la situation", "en fonction du sexe",sep="\n"))
Le diagramme mosaïque peut aussi être utile pour le croisement de deux variables qualitatives.
Page | 31
Croisement de deux variables quantitatives
La fonction à utiliser dans ce contexte est la fonction plot().
> plot(taille~poids)
Page | 32
4. Tableaux de données
Ce paragraphe a pour objectif de décrire les différentes commandes à taper sous R pour calculer des
résumés numériques statistiques simples sur un jeu de données.
Pour ce faire, nous allons utiliser le même jeu de données que précédemment (base de données
[Link]-).
4.1. Tableaux des effectifs ou des fréquences d’une variable
Il s’agit du type d’organisation le plus courant. On dispose des mesures d’une ou de plusieurs variables
pour chacun des N individus constitutifs d’une certaine population.
Il est intéressant de représenter un tableau de données individuelles (ou tableau de données brutes)
sous une forme plus condensée. Ainsi, le tableau des effectifs ou des fréquences (appelé aussi tri à
plat) permet d’appréhender plus facilement la distribution d’une variable, notamment qualitative ou
ordinale.
Il s’obtient au moyen de la fonction table().
Page | 33
4.2. Tableaux de données regroupées en classes
Il est parfois intéressant de représenter un tableau de données individuelles, obtenues sur une ou
plusieurs variables quantitatives, sous une forme plus condensée. On utilise pour cela un tableau de
données regroupées en classes, en notant les effectifs (ou les fréquences) de différentes classes
préalablement déterminées.
Notez que vous pouvez utiliser la fonction hist() en spécifiant le vecteur des bornes des classes dans
son paramètre breaks qui renvoie alors les effectifs de chacune de ces classes. La valeur par défaut du
paramètre breaks effectue un calcul automatique des classes.
> res <- hist(taille,plot=FALSE)
> nn <- [Link](res$breaks)
> x <- [Link](res$counts)
> dimnames(x) <- list(paste(nn[-length(nn)],nn[-1],sep="-"))
>x
Ou bien en utilisant la fonction cut():
> table(cut(taille,res$breaks,[Link]=TRUE))
Si l’on veut rajouter les marges à ce tableau, on peut utiliser la fonction addmargins().
> [Link]ète <- addmargins(matable,FUN=sum,quiet=TRUE)
> [Link]ète
Page | 34
Pour changer l’intitulé « sum » des marges des tableaux précédents, on définit la fonction Total()
(Total <- sum) puis remplacer sum par Total dans l’appel de addmargins() ci-dessus.
> Total=sum
> [Link]ète = addmargins(matable,FUN=Total,quiet=TRUE)
> [Link]ète
Page | 35
4.5. Distributions marginales
L’obtention des marges d’une table de distribution tableaufreq (ou d’une table de contingence)
s’obtient au moyen de la fonction [Link]().
> [Link](tableaufreq,1) # Marge de droite.
> [Link](tableaufreq,2) # Marge du bas.
Page | 36
# Obtention de tous les modes
> names(tabthe)[max(tabthe)==tabthe]
Ici, la variable the (nombre de tasses de thé par jour) est unimodale.
5.2. La médiane
La médiane d’une série statistique est la valeur me de la variable X qui partage cette série statistique en
deux parties (inférieure et supérieure à me) de même effectif, les valeurs du caractère étant rangées
dans l’ordre croissant.
Il s’agit d’un critère de position qui ne se calcule évidemment pas pour des variables purement
qualitatives. Pour la calculer, on distingue deux cas :
– l’effectif total N de la série est impair. Dans ce cas, la médiane est la valeur située à la position
(N+1)/2 ;
– l’effectif total N de la série est pair. Dans ce cas, n’importe quelle valeur comprise entre les valeurs
aux positions N/2 et N/2+1 peut être considérée comme une médiane de la série.
La fonction R permettant de calculer une médiane uniquement pour des données numériques est
median().
> median(X)
Nous proposons le code suivant qui permettra de calculer la médiane pour des données individuelles
ordinales ou numériques :
Page | 37
5.3. La moyenne
Elle se calcule uniquement pour des variables quantitatives.
> mean(X)
Page | 38
Déciles :
> quantile(X,probs=1:10/10)
Il est à signaler que la fonction summary() appliquée à un vecteur de données quantitatives permet de
calculer le minimum, le maximum, la moyenne et les trois quartiles.
Il est à signaler que l’estimation sans biais de la variance de la population, fondée sur un échantillon
de taille n, est calculée au moyen de la fonction var().
L’écart type correspondant est calculé au moyen de la fonction sd().
Page | 39
7. Résumés de forme d’une distribution
Ces résumés peuvent être calculés uniquement pour des variables quantitatives.
Nous pouvons mentionner les coefficients d’asymétrie (skewness) et d’aplatissement (kurtosis) dont
nous fournissons le code R ci-dessous en chargeant la librairie « moments ».
Page | 40
Avec un risque =5%, on peut conclure que les variables sexe et matgras sont liées entre elles
(p-value=3,4%).
8.2. Φ2, V de Cramer et coefficient de contingence de Pearson
Tous les indicateurs du tableau suivant se calculent à partir du coefficient du χ2.
En présence de valeurs ex æquo, il faut utiliser le coefficient de corrélation classique de Pearson entre
les rangs :
Pour l’obtenir sous R, on peut donc utiliser les fonctions rank() et cor(), ou bien directement la
fonction cor() avec la valeur d’entrée "spearman" de son paramètre method.
Page | 41
10. Mesures de liaison entre deux variables quantitatives
10.1. Le Coefficient de corrélation de Pearson
L’indicateur de liaison approprié dans le cas de deux variables quantitatives est la corrélation. Il est
défini comme le rapport entre la covariance des deux variables et le produit de leurs écarts types
respectifs. Il se calcule au moyen de la fonction cor().
> cor(taille,poids)
Mais avant de chercher la valeur de cette corrélation, on trace le digramme du nuage des points.
Page | 42
On peut donc conclure, avec un risque d’erreur inférieur ou égal à 5 %, qu’il y a une association
linéaire entre la taille et le poids.
11. Mesures de liaison entre une variable quantitative et une variable qualitative
11.1. Le rapport de corrélation η2Y|X
Le rapport de corrélation η2Y|X indique dans quelle mesure les variations d’une variable quantitative
Y sont expliquées par les modalités d’une variable qualitative X à p modalités. En effet, on peut
considérer que la variable X définit des groupes dans la population. Le rapport de corrélation est alors
défini comme le rapport entre la variance inter-groupes et la variance intra-groupe. Il se calcule au
moyen de la formule suivante :
Page | 43
Le code R permettant de le calculer se présente comme suit :
Page | 44
REFERENCES BIBLIOGRAPHIQUES
Page | 45