Voici un court mémento pour une utilisation professionnelle, en classe ou non, de R, logiciel de statistiques libre, gratuit et multiplateforme.
Bien évidemment, il ne permet pas de résoudre la contradiction [1] des définitions des programmes entre médiane et quantiles, mais au moins offre la possibilité d’en connaître facilement les diverses valeurs ;-)
Un rappel : pour les séries à une variable discrète, nous avons deux définitions au programme officiel.
Pour la médiane, c’est la valeur centrale de la série. Si elle n’existe pas (effectif total pair), on prend la moyenne des deux valeurs centrales.
Pour les quantiles (quartiles, déciles, percentiles...), c’est la première valeur pour laquelle on atteint ou dépasse le quantile à déterminer ; si par exemple 10% de l’effectif total nous donne 26,2 alors le premier décile d1 sera la 27ème valeur ; si 25% de l’effectif total nous donne 26, nous retiendrons la 26ème valeur comme premier quartile Q1.
Donc, sauf pour la médiane, il n’est pas question d’interpolation : le premier quartile n’est pas la médiane d’avant la médiane, pas plus que le troisième quartile n’est la médiane d’après la médiane. Dans l’autre sens, la médiane n’est pas le cinquième décile ou le cinquantième percentile.
Les calculs de quantiles ne se font que sur des séries discrètes (normalement, on relève des mesures puis on les regroupe en classe, on dispose donc de la série d’origine).
Conséquence des choix officiels : il n’est pas possible de faire appel à des logiciels automatiques (calculatrice, ordinateur...), qui tous suivent une règle unique, pour obtenir la conformité simultanée de tous les calculs ou leur représentation dans une boîte à moustaches. Pour créer avec R une "bam" conforme au programme : lire Les utilisateurs de Latex peuvent utiliser des macros ayant pour paramètres les valeurs précalculées.
Pour les boîtes à moustaches (whiskers plot), l’auteure du programme préconise la boîte [min - points isolés - 1er décile - 1er quartile - médiane - 3ème quartile - 9ème décile - points isolés - max]. R (par défaut) ou les calculatrices représentent une boîte courte [min - 1er quartile - médiane - 3ème quartile - max] comme la plupart des usagers. Les boîtes plus complètes servent surtout à mettre en évidence les points isolés pour éventuellement élaguer la série de valeurs douteuses ou aberrantes (outliers). Il existe d’autres variantes des boîtes à moustaches : du 5ème percentile au 95ème percentile (points isolés extérieurs), de (Q1 - 1,5 x Iq) à (Q3 +1,5 x Iq) [2]. Pour créer avec R une "bam" conforme au programme : lire
Un document de l’inspection générale « clarifie » la situation didactique et pédagogique...
po<-c(35,36,37,38,39,40,41,42,43,44,45,46,47) # la série des pointures
ef<-c(1,8,9,37,38,21,14,15,22,8,9,3,1) # la série des effectifs
serie<-rep(po,ef) # la série complète, rep duplique les valeurs selon les effectifs
serie # pour voir la série
summary(serie) # les principaux indicateurs
quantile(serie) # les quantiles en version standard
quantile(serie,type=1) # les quantiles en version 1... il y en a 9
quantile(serie,seq(0,1,by=0.1),type=1) # les déciles en version 1
boxplot(serie,axes=FALSE,type=1,horizontal=TRUE) # la boite à moustaches horizontale
box() # on lui donne son encadrement
axis(1,35:47) # on lui donne l’axe horizontal (1) gradué de 35 à 47
sr<-c(serie,30,31,50) # on complète la série avec des valeurs extrêmes ou aberrantes
sort(sr) # un tri croissant de la nouvelle série
boxplot(serie,sr,outline=T) # deux boites et affichage des points extrêmes
sqrt(mean(rep(po^2,ef))-mean(serie)^2) # pour obtenir l’écart-type, et non sd(serie)
hist(serie,axes=F) # un histogramme à classes égales
axis(1,35:47)
axis(2)
hist(serie, br=c(35,38,42,47), axes=F, main="Histogramme", ylab="densité", xlab="pointures")
axis(1,35:47)
axis(2) # pour un histogramme à classe inégales avec des étiquettes contrôlées
Les lignes à taper dans R [3] :
age<-c(1,2,3,4,5) # x-série
cout<-c(13.3,14.2,16.1,18.9,23.6) # y-série
Maf<-lsfit(age,cout) # matrice d’ajustement : lsfit
names(Maf) # ce que contient cette matrice
Maf$residuals # par exemple les résidus
MafEst<-Maf$coefficients[1]+Maf$coefficients[2]*age # la série des estimations
par(mfrow=c(1,2),ask=T) # découpage de la fenêtre graphique en 1 ligne et 2 colonnes, c’est pas obligatoire, évidemment
plot(age,cout,pch=21,bg="yellow",ylim=c(12,24)) ; abline(Maf$coefficients,col="green") ; title("Nuage et Ajustement Affine") # la première partie de la représentation graphique
plot(age,Maf$residuals,type="h",col="red", ylim=c(-1.5,1.5)) ; abline(h=0) ; title("Residus Age") # l’affichage des résidus
Pour un ajustement avec changement de variable, il suffit d’appliquer le dit changement sur la série choisie puis d’effectuer l’ajustement et enfin le changement inverse si nécessaire :
Mln<-lsfit(age,log(cout)) # ajustement sur la série des log népériens : ln(cout)=a*age+b ; attention, certains logiciels écrivent toujours log le logarithme népérien.
x<-c(1,2,3,5,8,13) # la première série
y<-c(5,2,8,6,15,7) # la seconde
double<-matrix(c(x,y),nr=6,nc=2) # l’assemblage des deux
chrono<-ts(double,start=1998) # le chronomètre
ts.plot(chrono,type="b",xlab="années") # la représentation graphique avec points et traits de liaison (both)
Pour terminer, la commande d’exportation en pdf :
pdf("pie.pdf",width=7,height=7) # nom du fichier : pie.pdf, dimensions 7 pouces au carré
cand<-c("A","B","C","D","E","F") # les noms des candidats
angl<-c(43.2,57.6,43.2,64.8,104.4,46.8) # leur pourcentage
pie(angl,label=cand,col=rainbow(10)) # le diagramme en disque
dev.off() # l’impression du fichier
La macro d’Éric Depardieu, voir son site, est en pièce jointe. Il faut effectuer quelques réglages de valeurs, pour l’axe horizontal en particulier.
La page est codée en windows-latin1. S’il y a un problème de codage, il est possible de la recoder avec les logiciels ad-hoc (mon capitaine :o)
Dans un document d’accompagnement
[1] Contradiction didactique : l’élève est amené à faire des confusions et risque d’en être pénalisé à l’évaluation par des collègues soucieux d’exactitude. Ce n’est évidemment pas l’intention des responsables de ce programme.
[2] Iq : interquartile (Q3-Q1)
[3] Partiellement repris d’un document de Hubert RAYMONDAUD ; LEGTA Louis GIRAUD à SERRES et de recherches sur des listes d’utilisateurs de R
[4] Merci Jérôme Caré
2004-2024 © Mathazay - Tous droits réservés
Ce site est géré sous SPIP 3.0.17 [21515] et utilise le squelette EVA-Web 4.2
Dernière mise à jour : lundi 7 septembre 2015