Département BPC
Faculté des Sciences de la Nature et de la Vie
Département de Biologie Physico Chimique
Niveau : Master 1 Pharmaco-Toxicologie
Module : Biostatistique et modélisation
Support de cours sur le logiciel R
Introduction
R est à la fois un logiciel de statistique et un langage de programmation. Il fonctionne
sous la forme d'un interpréteur de commandes. Il dispose d'une bibliothèque très large de
fonctions statistiques, d'autant plus large qu'il est possible d'en intégrer de nouvelles par le
système des "packages". R propose également une palette étendue de fonctionnalités
graphiques. Il est possible d'utiliser R sans jamais avoir à programmer.
R est un langage de programmation interprété dérive de S. A ce titre, il en intègre toutes les
caractéristiques : données simples et structurées, opérations d'entrée-sortie, branchements
conditionnels, boucles indicées et conditionnelles, récursivité, etc. En particulier, il nous sera
possible de créer de nouvelles fonctions de traitement de données avec le langage R.
Les fonctions disponibles sont stockées dans une bibliothèque localisée sur le disque
dans le répertoire R HOME/library (R HOME désignant le répertoire où R est installé). Ce
répertoire contient des packages de fonctions, eux-mêmes présents sur le disque sous forme
de répertoires. Le package nommé base est en quelque sorte le cœur de R et contient les
fonctions de base du langage, en particulier pour la lecture et la manipulation des données.
Chaque package a un répertoire nommé R avec un fichier qui a pour nom celui du package
(par exemple, pour base, ce sera le fichier R HOME/library/base/R/base). Ce fichier contient
les fonctions du package.
Ouverture et utilisation du logiciel R
Une fois R installée sur ordinateur, il suffit de lancer l'exécutable correspondant pour
démarrer le programme. L'attente de commandes, par défaut le symbole '>', apparaît alors
indiquant que R est prêt à exécuter les commandes. Le symbole + apparaît en début de ligne
si la commande précédente est incomplète (non achevée).
Affectation
Pour assigner ou affecter une valeur donnée à une variable (appelée objet), l’opérateur
<- ou = est utilisé, la syntaxe est comme suit :
nom de la variable <- valeur donnée, ou nom de la variable = valeur donnée.
1
Département BPC
> x<-10
> x=8
Si un objet n’existe pas l’affectation le crée. Sinon l’affectation écrase la valeur précédente.
> x=0
> y=5
> x=y
La valeur de x qui était égale à 0 est écrasée par la valeur de y, 5 est la nouvelle valeur de x.
Affichage
Pour afficher le contenu d’un objet, il suffit d’écrire le nom de l’objet et de taper sur la touche
« entrée ».
> x=3
>x
[1] 3
x+y : addition
> 5+2
[1] 7
x-y : soustraction
> 15-4
[1] 11
x*y : multiplication
> 45*6
[1] 270
x/y : division
> 45/6
[1] 7.5
x%/%y : division entière
> 45/6
[1] 7
x^y : puissance
> 10^2
[1] 100
Exemples de fonctions élémentaires sur les scalaires
sqrt(x) : racine carrée, log(x), exp(x) : exponentielle, abs(x) : valeur absolue, gamma(n+1) :
factorielle de n. Exemple :
> sqrt(100)
[1] 10
Création de vecteurs
2
Département BPC
La fonction c() concatène des scalaires ou des vecteurs. Par exemple, on peut créer un vecteur
de la façon suivante :
> x=c(4,8,3,7,1,0)
>x
[1] 4 8 3 7 1 0
> y=c(x,11,2)
>y
[1] 4 8 3 7 1 0 11 2
> x=3:9 Suites arithmétiques de raison 1
>x
[1] 3 4 5 6 7 8 9
> x=5:1 Suites arithmétiques de raison -1
>x
[1] 5 4 3 2 1
> y=rep(x,n) x est répété n fois
> y=rep(x,2)
>y
[1] 10 8 6 4 10 8 6 4
Exemples d’opérations arithmétiques et fonctions élémentaires utilisables sur les
vecteurs
Les opérations arithmétiques et les fonctions élémentaires sur les vecteurs sont effectuées
élément par élément et si les vecteurs sont de longueur différentes, le résultat possède la
longueur du plus long.
> x=1:3
> x*2 multiplie tous les éléments de x par 2.
[1] 2 4 6
> exp(x)
[1] 2.718282 7.389056 20.085537
max(x) : maximum de x, min(x) : minimum de x, round(x,n) : arrondi les éléments de x avec n,
length(x) : nombre d’éléments de x, sum(x) : somme des éléments de x, prod(x) : produit des
éléments de x, sort(x) : classe les éléments de x par ordre croissant, etc.…..
> x=c(12,4,9,5)
> sum(x)
[1] 30
> length(x)
[1] 4
Vecteurs de caractères
La création des objets de type caractère (qualitatif) se fait en mettant la valeur de l’objet entre
deux guillemets " " ou entre deux apostrophes ' '.
> x='Jour'
3
Département BPC
>x
[1] "Jour"
> y=c("A","B","C","F")
>y
[1] "A" "B" "C" "F" vecteur de caractères
Les matrices
Une matrice est un vecteur qui possède un argument supplémentaire (dim) qui est lui même
un vecteur numérique de longueur 2 et qui définit les nombres de lignes et de colonnes de la matrice.
Une matrice peut être créée avec la fonction matrix()à partir d'un vecteur. On doit fixer le nombre
de colonnes ncol et/ou le nombre de lignes nrow.
> matrix(c(6,3,8,0,3,9),ncol=2)
[,1] [,2]
[1,] 6 0
[2,] 3 3
[3,] 8 9
Par défaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne, on ajoute
l'argument byrow=T.
> matrix(c(6,3,8,0,3,9),ncol=2,, byrow=T)
[,1] [,2]
[1,] 6 3
[2,] 8 0
[3,] 3 9
> matrix(c(6,3,8,0,3,9),2,3) matrice (2×3)
[,1] [,2] [,3]
[1,] 6 8 3
[2,] 3 0 9
> matrix(1,2,2) matrice (2×2) remplie de 1
[,1] [,2]
[1,] 1 1
[2,] 1 1
> c(m) transforme la matrice m en un vecteur
> m[i,] vecteur de la ligne i de la matrice m
> m[,j] vecteur de la colonne j de la matrice m
> m[i,j] élément de la ligne i et de la colonne j
Exemples d’opérations sur les matrices
> t(m) transposée de la matrice m
> dim(m) dimensions de m (lignes, colonnes)
> m1%*%m2 produit matriciel de m1 et m2
> solve(m) matrice inverse
4
Département BPC
Statistique descriptive : caractéristiques de l’échantillon
> mean(x) moyenne du vecteur x
> var(x) variance du vecteur x
> sd(x) écart-type du vecteur x
> median(x) médiane du vecteur x
> quantile(x) minimum, Q1, médiane, Q2, maximum
> sample(x,n) tirage aléatoire sans remise d’un n-échantillon de x
> sample(x,n,replace=T) tirage aléatoire avec remise d’un n-échantillon de x
Exemples de graphiques
> plot(x) graphique de points des données de x
> plot(x, type = "l") le même graphique précédent en joignant les points
> lines(x) une commande équivalente à la précédente
> barplot(x) diagramme en tuyaux d’orgue des données du vecteur x
> hist(x) histogramme des données de x avec l'intervalle ]bi, bi+1]
> hist(x,right=F) histogramme des données de x avec l'intervalle [bi, bi+1[
> hist(x,n) histogramme avec environ n colonnes
> boxplot(x) diagramme en boites
> par(mfrow=c(m,n)) division de la fenêtre graphique en m x n cellules
> plot(x,y) graphique du nuage de points de x et y
> sunflowerplot(x,y) nuage de points de x et y sous forme de fleurs
Quelques lois de probabilité usuelles
> rbinom(m,n,p) génère m observations aléatoires de la binomiale (n,p)
> rpois(n,) génère n observations aléatoires de la Poisson ()
> runif(n,a,b) génère n observations aléatoires d’une uniforme [a,b]
>rexp(n,l) génère n observations aléatoires d’une exponnentielle()
>rnorm(n,µ,σ) génère n observations aléatoires d’une normale (µ,σ)
Corrélation
> cor(x,y) coefficient de corrélation de Pearson de x et y
> cor(rank(x),rank(y)) coefficient de corrélation de Spearman de x et y
Régression linéaire simple et multiple
> reg=lm(y~x) identification du modèle de régression linéaire simple de y en
x et calcul des coefficients
> reg=lm(y~x1+x2+x3+….) identification du modèle de régression linéaire multiple de y
en fonction de x1, x2, x3,… et calcul des coefficients.
> summary(reg) résumé des résultats de la régression
> plot(x,y) courbe du nuage de point de x et y
5
Département BPC
>abline(reg) ajout de la droite d’ajustement au nuage de points
> residuals(reg) résidus du modèle de régression
>predict(reg,[Link](x=v),interval="prediction") estimation de y pour x=v
>predict(reg,[Link](x=c(v1,v2)),interval="prediction") deux estimations de y pour
x=v1 et x=v2
>plot([Link](reg), residuals(reg)) graphique des résidus en fonction
des valeurs estimées
>abline(h=0) ajoute le tracé de l’axe des abscisses
>qqnorm(residuals(reg)) graphique du QQ-plot des résidus
>qqline(residuals(reg)) ajout de la droite quantile=résidu
Analyse de la variance (ANOVA) à un facteur de classification
> y=factor (rep(c("mod1","mod2","mod3", …,“modk”),c(n1,n2,n3, …, nk)))
où ("mod1","mod2","mod3", …,“modk”) sont les intitulés des k modalités du facteur
(chaines de caractères) et (n1,n2,n3, …,nk) sont les tailles des échantillons soumis aux
différentes modalités respectivement.
> ano=lm(x~y) effectue l’ANOVA. Tel que x est le vecteur de toutes les données du
tableau des observations, introduites colonne par colonne (échantillon
par échantillon). x est donc la concaténation de tous les échantillons de
tailles respectives n1, n2, n3, …, nk.
> anova(ano) affiche le tableau d’ANOVA.
Quelques tests non paramétriques
[Link](x,"pnorm") test d’ajustement de kolmogorov-Smirnov de la distribution
des observations dans le vecteur x à une loi normale (test de
normalité). La chaine de caractères "pnorm" indique le test de
normalité, elle peut être remplacée par d’autres chaines selon la
loi à laquelle les observations de x doivent être ajustées.
> [Link](x,p=vp) test d’ajustement de khi deux de la distribution des
observations dont les effectifs sont dans le vecteur x à une loi
théorique dont la distribution (les probabilités) est représentée
par le vecteur vp.
> [Link](m,correct=F) test d’indépendance de khi deux, où m
représente la matrice de contingence.
> [Link](x,y,method="spearman") test de corrélation de rang de Spearman, où x et
y sont des vecteurs d’observations ordinales de
même longueur.
6
Département BPC
> [Link](x,y) test de Mann et Whitney de comparaison des
moyennes de deux échantillons indépendants, où
x et y sont deux vecteurs d’observations
numériques ou ordinales.
Analyse en composantes principales (ACP)
> [Link]("ade4") installation du package ade4 contenant les
fonctions de l’ACP.
> library(ade4) chargement du package ade4 (à exécuter pour chaque
nouvelle ouverture du logiciel R pour effectuer une
acp).
> m=matrix(x,nrow=n) ou > x=matrix(x,ncol=m) introduction de la matrice, de dimension
(n,m), des données tel que x est le
vecteur contenant toutes les données
du tableau introduites colonne par
colonne.
> y=[Link](m) fonction réalisant l’ACP sur les données du tableau m.
> [Link](y) affiche le tableau de contribution à l’inertie de chaque composante
principale.
> y$eig affiche les valeurs propres.
> barplot(y$eig) affiche le graphe de l’éboulis des valeurs propres.
> y$li affiche le tableau des nouvelles coordonnées des individus.
> y$co affiche le tableau des nouvelles coordonnées des variables.
> [Link](y,[Link]=TRUE) affiche les inerties et les contributions absolues et
relatives des individus.
> [Link](y,[Link]=TRUE) affiche les inerties et les contributions absolues et
relatives des variables.
> [Link](y$co,xax=1,yax=2) affiche le cercle des corrélations dans le premier plan
factoriel.
> [Link](y$co,xax=n,yax=m) affiche le cercle des corrélations dans le plan constitué
de l’axe factoriel numéro n et l’axe factoriel numéro
m.
> [Link](y$li,xax=1,yax=2) affiche le graphe de la projection des individus
(coordonnées) dans le premier plan factoriel.
> [Link](y$li,xax=n,yax=m) affiche le graphe de la projection des individus
(coordonnées) dans le plan constitué de l’axe
factoriel numéro n et l’axe factoriel numéro m.
7
Département BPC
> scatter(y,posieig= "none") représentation simultanée des individus et des variables
dans le premier plan factoriel.
Utilisation de l’aide
L’aide en ligne de R est extrêmement utile pour l’utilisation des fonctions. L’aide est
disponible directement pour une fonction donnée, par exemple :
> ?lm : affichera, dans R, l’aide pour la fonction lm() (linear model). La commande
help(lm) ou help("lm") aura le même effet.