TPR PDF
TPR PDF
TPR PDF
25 fevrier 2005
1
www.pallier.org
2
christophe.lalanne.free.fr
Resume
Ce document est destine a accompagner des travaux pratiques dintroduction a lanalyse des
donnees experimentales avec le logiciel R. Le traitement des memes exemples sous Statistica est
egalement presente.
Ce document est disponible en version pdf et en version html, a partir de ladresse http ://www.pallier.org/ressources
Table des matieres
1 Introduction a R 4
1.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Premiers pas 9
2.3 Quitter R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Manipulations de base 15
3.1 Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1
4 Statistiques elementaires 19
5 Tests statistiques 24
6.5 Dossier IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A Solutions sous R 31
2
A.2 Dossier pedago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
A.5 Dossier IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
B.5 Dossier IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
C.3.2 Remarque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
C.4.1 Histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
C.4.4 Remarque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3
1 Introduction a R
R est un logiciel pour lanalyse statistique des donnees. Il fournit les procedures usuelles (t-
tests, anova, tests non parametriques...) et possede des possibilites graphiques performantes
pour explorer les donnees. Pouvant etre utilise aussi bien en mode interactif quen mode batch,
R est un logiciel libre, dont le code source est disponible et qui peut etre recopie et diffuse
gratuitement. Des versions compilees de R sont disponibles pour Linux, Windows et Mac OS X.
4
Fig. 1.2 RGui : linterface graphique de R sous Windows
Installation sous Mandrake Linux : Pour une installation sous Linux, verifiez sil existe un
paquetage rpm adapte a votre distribution et pret a etre installe. Si tel est le cas, telecharger-le
et installez le, en tant quadministrateur, avec la commande rpm -i R*.rpm.
Si vous utilisez Mandrake Linux 10.x, R fait partie de la distribution de base (il est sur les CD),
et il suffit de taper urpmi R-base pour linstaller.
Pour lancer R sous Linux, il suffit de taper R dans un terminal (cf. Fig. 1.3).
5
Fig. 1.3 R dans un terminal sous Linux
Apres avoir installe le systeme de base, vous pouvez installer des modules supplementaires,
parfois appeles paquetages (packages), qui ajoutent des fonctions a R.
Pour lanalyse des donnees dexperiences, les paquetages car, gregmisc, vcd, psy, multcomp
fournissent des fonctions supplementaires interessantes. Par exemple, multcomp fournit di-
verses procedures pour effectuer des comparaisons multiples (Dunnett, Tukey, Sequen, AVE,
Changepoint, Williams, Marcus, McDermott, Tetrade).
Ces modules sont disponibles sur les sites CRAN dans la section Contributed extension pa-
ckages.
Pour installer un module sous Windows, dans RGui, utiliser le menu Package/Install package
from CRAN (il faut etre connecte a Internet).
Pour installer un module sous Linux, il faut dabord telecharger le fichier package.tar.gz du
CRAN, puis, en tant que root, executer :
Rest un programme avec lequel on communique en tapant des commandes plutot quen cliquant
dans des menus ou sur des icones.
6
Fig. 1.4 Linterface Rcommander sous Linux
Il existe cependant des systemes a bases de menu et dicones (des cliquodromes) qui gerent
linteraction avec R, et permettent, plus ou moins, deviter de taper des commandes. Citons,
entre autres, les interfaces graphiques Rcommander (Linux + Windows, cf. figure 1.4), et
SciViews (Windows).
1.4 Documentation
De nos jours, beaucoup de gens trouvent naturel de pouvoir utiliser les logiciels sans lire de
documentation. Si cela est raisonnable pour les logiciels qui realisent des operations assez simples,
cest dangereux avec les logiciels qui effectuent des operations conceptuellement compliquees.
7
Dans le cas de R, qui comprend de nombreuses commandes, il est illusoire denvisager utiliser ce
logiciel sans lire un minimum de documentation. Notre experience est que les premieres heures
danalyse de donnees avec R necessitent de frequents recours aux documentations, mais lorsquon
est devenu a laise, alors il ny a pratiquement plus besoin de sy referer.
Pour les debutants, on trouve sur Internet un bon nombre de documents sur R, notamment dans
la section Documentation/Contributed du site www.r-project.org. Mentionnons en particulier :
R possede aussi une documentation officielle, sous forme de fichiers pdf et html, qui est copiee sur
votre disque dur lors de linstallation du logiciel. Dans linterface graphique sous Windows, les
manuels au format pdf sont accessibles dans les menus Help/Manuals. Il est fortement conseille
de parcourir, au minimum, les deux documents An Introduction to R et R Data Import et
Export.
Les manuels sont egalement accessibles sous forme html, dans le menu Help/Html help sous
Windows, et en tapant help.start() sous Linux. Cela ouvre votre navigateur Internet sur une
page web locale qui contient divers liens, entre autres vers ces manuels. Par exemple, le lien
Packages/base liste les commandes de bases de R.
Il existe plusieurs livres publies qui traitent de R. Pour les debutants, les deux livres suivants
peuvent offrir une aide utile :
8
2 Premiers pas
Pour commencer, vous pouvez utiliser R comme une calculatrice. Cliquez dans la fenetre R
Console, puis tapez :
2+3
Poursuivez avec :
a=5
a+8
Le principe de R est le suivant : vous entrez une ligne de commande, et quand vous tapez sur
Entree, R lit cette ligne et effectue loperation demandee.
a=1:10
a
b=rnorm(10)
plot(a,b)
plot(a,b,pch=16,col=2)
a=c(3,4,6,7,8,9)
a
length(a)
b=c(alpha,beta)
b
length(b)
9
Fig. 2.1 De simples additions
Les concepts de vecteur et de variable sont essentiels dans R. On y reviendra plus tard ; pour le
moment, retenez que :
un vecteur nest rien dautre quun suite ditems qui ont tous le meme type (numerique, chane
de caracteres, ...). Cest lobjet de base dans R.
une variable contient un objet, et permet de le retrouver sans le re-ecrire en entier.
Comme on la deja vu, la liste des variables peut etre affichee par ls()., et un variable peut
etre detruite par la commande rm(nom).
a=rnorm(20,mean=55,sd=10)
mean(a)
sd(a)
max(a)
summary(a)
hist(a)
boxplot(a)
10
Fig. 2.2 Fenetre graphique
stripchart(a)
stripchart(a,pch=16,cex=2,col=2,method=jitter,vertical=T)
x1=rnorm(10,mean=100,sd=10)
x2=rnorm(10,mean=110,sd=10)
boxplot(x1,x2)
t.test(x1,x2)
plot(x1,x2)
summary(lm(x2~x1)
A tout moment, une aide en ligne est disponible a laide de la commande help.search(mot cle).
La description detaillee dune commande sobtient en tapant ?nom de la commande.
Essayez :
?t.test
help.search("test")
help.start()
11
2.3 Quitter R
Et voila...
Le workspace (espace de travail), cest a dire lensemble des variables, a ete sauvegarde sur
le disque. Cela permet de reprendre une analyse de donnees au point ou on la laissee quand on
a quitte R.
Si vous voulez nettoyer le workspace, cest a dire supprimer toutes les variables quil contient,
tapez la commande rm(list=ls()).
Il est possible de choisir le nom de fichier ou est sauvegarde le workspace (par defaut .RData).
Cela permet de faire plusieurs analyses independantes sans les melanger. (Voir les menus File/Load
workspace/ Save Workspace). Une alternative plus recommandee et de creer un dossier pour
chaque analyse de donnees independantes.
Tapez la commande history(). Une fenetre saffiche listant les dernieres commandes que vous
avez tapees (voir figure 2.3 page suivante).
La maniere la plus efficace de travailler avec R consiste a sauvegarder les commandes au fur et
a mesure dans un fichier texte. Pour cela, en parallele avec R, ouvrez un editeur de fichier texte
(le plus simple dentre eux, bien quil soit tres limite, est le bloc-notes de Windows disponible
dans les accessoires).1
En utilisant le copier/coller, copier dans le fichier texte les commandes qui font lessentiel de
lanalyse. A la fin de votre session de travail, sauvez ce fichier avec un nom explicite (par exemple
le nom de lexperience) et une extension .R.
1
Pour ceux qui emploient lediteur Emacs, il existe un package appele ESS qui fournit la colorisation syntaxique
des commandes R, et plein dautres fonctions utiles (voir stats.ethz.ch/ESS.
12
Fig. 2.3 Historique des commandes affiche par history()
Quand vous reprendrez cette analyse quelques jours ou mois plus tard, vous pourrez reutiliser ce
fichier, quon appelle habituellement un script. R vous permettra de re-executer les commandes
de ce script en utilisant la commande source.
a=rnorm(100)
b=rnorm(100)
summary(a)
summary(b)
cor.test(a,b)
Dans R, utilisez le menu File/Change Dir pour aller dans Mes Documents. Puis tapez :
source(test.R,echo=T)
13
Sous Linux, il nest pas necessaire de demarrer R : on peut entrer R BATCH script.R sur une
ligne de commande dans un terminal et les resultats sont ecrits automatiquement dans le fichier
script.Rout.
Les commandes et les resultats des analyses statistiques et les graphiques peuvent etre copies/colles
dans un document.
Les resultats (sans les commandes) peuvent etre copies automatiquement dans un fichier texte
grace a sink. Tapez :
sink(monanalyse.txt,split=T)
a=1:10
mean(a)
summary(a)
sink()
Les graphiques peuvent etre sauves directement dans des fichiers graphiques en utilisant les
commandes postscript, jpeg ou png (voir laide en ligne de ces fonctions).
Mentionnons le paquetage R2HTML qui permet de creer des rapports au format html de facon
semi-automotique.
Lexperience prouve que la meilleure strategie est de creer un repertoire (dossier) par analyse
de donnees, et dy disposer : (a) les fichiers de donnees brutes ; (2) le fichier script contenant les
commandes R ; (3) le workspace et le(s) fichiers(s) resultats (textes et graphiques).
14
3 Manipulations de base
3.1 Objets
Lobjet de base en R est le vecteur. Un vecteur peut contenir des valeurs numeriques, des valeurs
de verite (True or False), des chanes de caracteres... Les fonctions les plus utilisees pour creer
des vecteurs sont c, rep et seq :
c(1,2,3,4,5,6)
c(T,T,F,F)
c(a,b)
rep(55,10)
rep(c(1,2),10)
rep(c(a,b),c(2,7))
seq(1,10,by=.1)
Un type de vecteur particulierement utile est le type factor. Les facteurs sont des vecteurs utilises
pour classifier les valeurs dautres vecteurs (les facteurs sont des variables indicatrices). Par
exemple, etant donne 100 scores provenant de plusieurs groupes de sujets, une variable facteur
peut designer ces sous-groupes.
(a=factor(c(rep(alpha,10),rep(beta,10))))
(b=gl(3,4,48,labels=c(a,b,c)))
(x=rnorm(48))
tapply(x,b,mean)
boxplot(x~b)
stripchart(x~b,method=jitter)
stripchart(x~b,method=jitter,vertical=T)
On peut creer un facteur a partir dun vecteur grace a la fonction factor, ou directement avec
la fonction gl.
(a=rnorm(50))
a[1]
a[2]
a[c(1,3,5)]
15
a>0
a[a>0]
(b=gl(2,25,labels=c(g1,g2)))
a[b==g1]
Une particularite de R est que les elements dun vecteur peuvent avoir des noms :
v=c(1,2,3,4)
names(v)=c(alpha,beta,gamma,delta)
v[beta]
Cela savere tres utile pour creer des dictionnaires. Par exemple, un vecteur freq donnant
la frequence dusage des mots peut avoir les mots comme names ; il suffit alors de taper
freq[aller] pour obtenir la frequence du mot aller.
mots=c(aller,vaquer)
freq=c(45,3)
freq
freq[mots==aller]
names(freq)=mots
freq
freq[aller]
Dautres objets de R sont les les listes, les arrays (vecteurs multidimensionnels) et les data.frames.
Les data.frames sont des listes de vecteurs qui ont tous la meme longueur. Les data.frames sont
tres bien adaptes pour stocker des donnees presentees sous forme de tableau bi-dimensionnel.
(a=array(1:20,dim=c(4,5)))
a[2,4]
(b=list(alpha=1:3,
beta=c(a,b,c,d)))
names(b)
b$alpha
b$beta
(c=data.frame(a=gl(2,5,10),b=1:10,x=rnorm(10)))
c$a
c$b
c$x
c[1:2,]
16
3.4 Variables
Les objets peuvent etre enregistres dans des variables avec loperateur = (ou <-). Pour voir le
contenu de lobjet represente par une variable, il suffit de taper le nom de celle-ci.
a<-c(1,2,3)
a
ls()
rm(a)
ls()
Les vecteurs contenus dans une liste ou dans un data.frame sont accessibles avec le symbole $.
Un data.frame peut etre attache pour que ses vecteurs soient directement accessibles.
mydata<-data.frame(a=gl(2,5,10),b=1:10,x=rnorm(10))
names(mydata)
mydata$a
mydata$b
mydata$x
attach(mydata)
a
b
x
detach(mydata)
Quand les donnees sont tres peu nombreuses, on peut les entrer directement dans un vecteur
(comme on la fait jusquici) avec la fonction c.
Les fonctions scan et read.table permettent de lire des donnees enregistrees dans des fichiers
textes.
scores<-scan(datafile1.txt)
17
On peut egalement entrer des donnees directement en ligne de commande :
scores<-scan()
La fonction read.table lit des donnees presentees sous forme tabulaire (par ex. les fichiers .csv
enregistres par Excel) et renvoie un data.frame.
a<-read.table(datafile2.txt,header=T)
a
scores<-edit(data.frame(a))
scan et read.table ne lisent que des fichiers textes, Le package foreign permet de lire directement
certains fichiers de donnees binaires provenant de SPSS, SAS, ...
library(help=foreign)
18
4 Statistiques elementaires
Cette section a pour but dillustrer quelques concepts fondamentaux de la statistique inferentielle,
et de presenter les principales fonctions de R pour le traitement statistique des donnees recueillies
lors dun protocole experimental.
Differentes fonctions permettent de generer des nombres aleatoires suivant une certaine distri-
bution de probabilite :
La fonction rnorm genere des nombres aleatoires distribues selon une loi normale. En augmentant
le nombre dechantillons generes (de 10 a 10000), on constate que la distribution des valeurs
obtenues se rapproche de plus en plus dune distribution normale continue :
s1=rnorm(10,mean=2)
summary(s1)
s2=rnorm(100,mean=2)
summary(s2)
s3=rnorm(10000,mean=2)
summary(s3)
hist(s1) # histogrammes
hist(s2)
hist(s3)
19
x=seq(-5,5,by=.01) # vecteur de coordonnees normees pour les abscisses
lines(x,dnorm(x,mean=2),col=2)
plot(density(s2))
lines(x,dnorm(x,mean=2),col=2)
plot(density(s3))
lines(x,dnorm(x,mean=2),col=2)
On peut donc non seulement situer un individu, ou un groupe dindividus, dans cette distribution,
mais egalement evaluer la probabilite quun individu choisi au hasard parmi la population entiere
mesure moins de 185 cm, ou plus de 198 cm, ou ait une taille comprise entre 174 et 186 cm.
Lorsque lon ne dispose pas des tables de lois normales N (; 2 ) (il y en a une infinite puisquil
y a 2 parametres libres), on utilise la loi normale centree-reduite N (0; 1 2 ) (encore appelee loi
Z), dont la table est disponible la plupart des manuels ou bien sur le web. Cependant R fournit
directement les tables des lois normales, par lintermediaire de la commande pnorm, qui prend en
arguments la valeur repere, la moyenne et lecart-type theoriques.
taille=seq(130,210,by=1)
plot(taille,dnorm(taille,mean=170,sd=10),type=b,col="red")
pnorm(185,mean=170,sd=10)
abline(v=185,col=4)
text(185,.012,paste("P(X<185)=",signif(p,3)),col=4,pos=2,cex=.6)
p=pnorm(198,mean=170,sd=10)
abline(v=198,col=4)
text(198,.002,paste("P(X>198)=",round(1-p,3)),col=4,pos=4,cex=.6)
La probabilite quun individu choisi au hasard parmi la population entiere mesure moins de 185
cm (P (X < 185)) est de 0.933 (obtenu par pnorm(185,mean=170,sd=10)). La probabilite quun
individu mesure plus de 198 cm est de 0.003 (1 P (X < 198), et la probabilite que sa taille soit
comprise entre 174 et 186 est 0.290 (P (X < 186) P (X < 174)).
On constate que la probabilite quun individu choisi aleatoirement dans une population de
moyenne 170 10 mesure plus de 198 cm est tres faible. Cest sur la base de ce calcul de proba-
bilites que repose le test de typicalite, ou test Z : un groupe dindividus (i.e. un echantillon)
sera declare atypique ou non representatif de la population parente dont il est issu, lorsquil a
une position au moins aussi extreme quune certaine position de reference, correspondant en
general a la probabilite 0.05.
20
?pnorm
?pt
?pbinom
help.search(distribution)
pnorm(2)
pt(3,df=10) # fonction de repartition de la loi du t de Student
qnorm(.99) # donne la valeur associee au 99eme centile dune distribution normale
t<--50:50/10
plot(dnorm(t),type=l,col=red)
par(new=T) # le prochain graphe sera superpose au precedent
plot(dt(t,df=5),type=l)
Imaginons que vous disposiez dune piece dont vous vous demandez si elle est baisee. Vous
prevoyez de la lancer 10 fois a pile ou face. A partir de quelle proportion relative dessais
face/pile (ou linverse) considererez- vous que la pieces est truquee ?
Si la piece nest pas truquee, le nombre de pile suit une loi binomiale.
plot(dbinom(0:10,rep(10,11),prob=1/2),type=h)
hist(rbinom(100,10,.5))
hist(rbinom(1000,10,.5))
hist(rbinom(10000,10,.5))
Supposez que vous tiriez a pile ou face 10 fois de suite, et que la piece retombe 8 fois sur pile.
Quelle la probabilite dobserver cela si la piece nest pas biaisee ?
binom.test(8,10)
prop.test(8,10,1/2) # test approche
Si lon reprend lexemple precedent des tailles de la population francaise masculine (20-25 ans),
on a une distribution similaire (i.e. suivant une loi normale de moyenne 70 et decart-type 7) pour
les poids. On peut bien evidemment se poser les memes questions que precedemment, mais on
peut egalement sinteresser a la relation entre ces deux variables quantitatives. En representant
le poids en fonction de la taille, on peut evaluer la liaison lineaire entre ces deux variables a
laide du coefficient de correlation de Bravais-Pearson.
Pour illustrer cela, nous allons utiliser les donnees issues dune population denfants de sexe
masculin ages de 11 a 16 ans.
21
Read 10 items # indicateur de fin dentree-sortie genere par R
poids<-scan()
1: 50.5 38.1 57.3 39.3 46.1 37.1 45.9 66.3 60 50.5
11:
Read 10 items
plot(poids~taille)
r<-lm(poids~taille) # modele lineaire (x,y)
summary(r) # diagnostic de la regression
abline(r) # trace de la droite de regression
-55.1963626 + 175 * 0.6568411 # "prediction" pour taille=175 cm
predict(r,list(taille=c(175))
Ensuite, a partir de la connaissance de cette liaison lineaire, on peut se demander quelle serait
le poids theorique (non observe) dun individu dont on ne connat que la taille : cest le domaine
de la regression lineaire. Laffichage des parametres de la droite de regression donne la relation
poids = 0.657 x taille - 55.196. Ainsi, on peut predire que le poids dun enfant mesurant 175 cm
sera de 59.8 kg.
a<-rnorm(100)
mean(a)
sd(a) # ecart-type corrige
summary(a)
boxplot(a)
mean(a,trim=.1) # moyenne sans les 10 % dobservations en fin de vecteur
Les fonctions graphiques standard en 2D boxplot, plot, hist ont ete vues dans les sections
precedentes. La creation de graphiques personnalises sous R est facilitee par son extreme sou-
plesse quant au parametrage des graphiques (positionnement, symboles et type de traces, etc.).
Lutilisation de laide en ligne est vivement recommandee.
Pour les graphiques en trois dimensions (z etant une matrice de dim 3), on pourra utiliser les
fonctions image et contour :
22
x=1:10
y=1:10
z=outer(x,y,"*")
persp(x,y,z)
image(z)
contour(z)
Il est possible de definir ses propres fonctions sous Ret denrichir ainsi le langage.
p
Par exemple, Rne possede pas de fonction pour calculer lerreur-type (/ (N )). On peut en
definir une de la maniere suivante :
Lexemple suivant permet de calculer la moyenne arithmetique apres suppression des valeurs
atypiques, i.e. superieures a 2 ecart-types de la moyenne :
a<-c(rnorm(100),5)
mean(a)
clmean(a)
clmean
ls
t.test
methods(t.test)
getAnywhere(t.test.default)
23
5 Tests statistiques
Ce chapitre a pour but de presenter de maniere non exhaustive certains tests statistiques em-
ployes frequemment en statistique inferentielle.
1-pnorm(167,mean=150,sd=10)
1-pbinom(8,10,0.5)
A1 A2 A3
B1 13 24 20
B2 10 7 18
a<-scan()
1: 13 24 20
4: 10 7 18
7:
Read 6 items
chisq.test(matrix(a,2,3,byrow=T))
a<-10+rnorm(10,sd=10)
t.test(a,conf.level=.01)
24
5.3 Comparaison de deux groupes
Ce sont les memes fonctions t.test (test parametrique) et wilcox.test (test non parametrique)
qui permettent la comparaison entre deux groupes ; dans ce cas, on passe en arguments les
deux groupes :
a<-rnorm(10)
b<-rnorm(10,mean=1)
t.test(a,b)
wilcox.test(a,b)
c<-c(a,b)
x<-gl(2,10,20)
t.test(c~x)
wilcox.test(c~x)
Lorsque lon est en presence dun ensemble de k observations independantes (un seul facteur
inter-sujets), on peut comparer leurs moyennes respectives a laide de la fonction aov (ou selon
un modele lineaire general, avec la fonction lm).
x<-rnorm(100)
a<-gl(4,25,100)
plot(x~a)
r<-aov(x~a)
anova(r)
pairwise.t.test(x,a)
t.test(x[a==1],x[a==2])
Avec deux facteurs inter-sujets, le principe danalyse est le meme, mais on etudie egalement
linteraction entre les deux facteurs.
x<-rnorm(100)
a<-gl(2,50,100)
b<-gl(2,25,100)
plot(x~factor(a:b))
interaction.plot(a,b,x)
l<-aov(x~a*b)
anova(l)
25
5.6 Anova sur des protocoles de mesures repetees
subject<-gl(10,3,30)
cond<-gl(3,1,30)
x<-rnorm(30)
interaction.plot(cond,subject,x)
summary(aov(x~cond+Error(subject/cond))
subject<-gl(10,4,40)
cond1<-gl(2,1,40)
cond2<-gl(2,2,40)
table(cond1,cond2)
x<-rnorm(40)
plot(x~factor(cond1:cond2))
interaction.plot(cond1,cond2,x)
interaction.plot(cond1,subject,x)
interaction.plot(cond2,subject,x)
summary(aov(x~cond1*cond2+Error(subject/(cond1*cond2))))
Comme nous lavons vu dans le cas des distributions conjointes (cf. section 4.1.2), la demarche
pour effectuer de la regression lineaire est la suivante :
a<-rnorm(100)
b<-2*a+rnorm(100)
plot(b~a)
r<-lm(b~a)
anova(r)
abline(r)
a<-rnorm(100)
b<-2*a+rnorm(100)
c<-5*a+rnorm(100)
pairs(cbind(a,b,c))
summary(lm(c~a*b))
26
6 Exemples danalyses de donnees
Ces exemples proviennent principalement du site web Analyse Statistique des Donnees en Psy-
chologie (ASDP) de lUFR de Psychologie de luniversite Paris 5 (piaget.psycho.univ-paris5.fr/,
lien Analyse des Donnees puis Donnees).
Source Student (1908) The probable error of a mean, Biometrika, VI, 1-25.
Question Ces donnees ont ete recueillies pour tester lhypothese que le medicament m2 est
plus efficace que le medicament m1. Est-ce le cas ?
On dispose des notes obtenues a un examen par quatre groupes deleves ayant chacun recu un
des 4 types denseignements.
27
Questions Comparer les resultats obtenus en fonction des methodes.
Une recherche a porte sur la pseudo-negligence quon observe chez des sujets normaux. Ce
nom provient des similarites quelle presente avec lhemi-negligence (atteinte de la moitie du
champ visuel) de sujets atteints dune lesion cerebrale. La tache des sujets consiste a determiner
le milieu subjectif dune baguette de 24cm avec la seule aide dinformations kinesthesiques. La
pseudo-negligence se traduit par une deviation systematique vers la droite (pour les droitiers)
de ce milieu subjectif par rapport au milieu objectif de la baguette.
Les donnees portent sur 24 femmes droitieres (facteur S) reparties selon 2 conditions (12 sujets
pour chacune) : active (c1) ou le sujet peut librement deplacer son doigt pose sur un curseur
mobile le long de la baguette ; ou passive (c2) ou le sujet commande un moteur declenchant
le mouvement de la baguette dans un sens ou dans lautre, alors que son doigt ne bouge pas
(facteur C). Chaque sujet execute cette tache dans 6 situations experimentales obtenues par le
croisement de : la main utilisee, gauche (m1) ou droite (m2) ; et lorientation du regard, 30 a
gauche (o1), 0(o2) ou 30a droite (o3) (facteurs M et O). Pour chaque sujet et chaque situation
on mesure la deviation en cm entre le milieu subjectif et le milieu objectif de la baguette. Une
deviation a droite est notee par une valeur positive, a gauche par une valeur negative.
On sinteresse ici a leffet de la condition (C) lorsque le sujet utilise sa main habituelle (m2)
(Rappel : tous les sujets sont droitiers) et lorsquil se trouve en face du milieu de la baguette
(avec lorientation a 0 degres)
Source Chokron, Imbert (1993) - Egocentric reference and asymmetric perception of space,
Neuropsychologia, 31, 3, 267-275. Dapres J.M. Bernard (1994) - Structure des donnees, d
Questions Importer ces donnees, les visualiser, comparer les groupes. Conclusion ?
28
6.4 Dossier family
Etude realisee au USA sur les origines des stereotypes lies au sexe. 35 familles choisies au hasard
et ayant une fille ainee (ou fille unique) en ninth grade (Troisieme).
Le pere a repondu a un questionnaire sur ses interets pour le sport, note sur une echelle numerique
de 0 a 50 (FATH)
Le professeur deducation physique de chacune des filles a note les performances physiques
generales de la fille de 0 a 20 (PROF).
Source Hays, W.L. (1994) - Statistics, Fort Worth : Harcourt Brace College Publishers (5eme
edition), p.671-672
Donnees family.txt
6.5 Dossier IO
En 1980, on a interroge des lyceens (garcons et filles) sur leurs intentions dorientation apres le
bac (etudes scientifiques, litteraires ou techniques).
Questions Peut-on dire que lorientation envisagee est liee au sexe chez lensemble des lyceens
de cette annee 1980 ?
29
Une solution Voir lexemple de script liste en A.5 et B.5 (Statistica).
30
A Solutions sous R
Nous proposons ici des scripts pour analyser les exemples du chapitre 6. Il y a plusieurs manieres
de resoudre le meme probleme avec R. Par consequent, vos scripts peuvent differer.
sommeil<-read.table(sommeil1.txt,header=T)
sommeil
attach(sommeil)
summary(M1)
summary(M2)
plot(M1,M2,xlim=c(0,10),ylim=c(0,10),col=2)
identify(M1,M2,SOMMEIL)
abline(0,1)
stripchart(M2-M1,method=stack)
t.test(M2-M1)
t.test(M1,M2,paired=T)
detach()
a<-read.table(pedago.txt)
attach(a)
boxplot(notes~pedago)
stripchart(notes~pedago,method=stack,vertical=T)
tapply(notes,pedago,mean)
tapply(notes,pedago,sd)
tapply(notes,pedago,summary)
barplot(t(tapply(notes,pedago,mean)))
m<-aov(notes~pedago)
summary(m)
TukeyHSD(m)
plot(TukeyHSD(m))
31
A.3 Dossier negligence
d<-read.table(neglige4.txt)
x<-d$V1
a<-gl(2,12,24)
b<-gl(2,6,24)
table(a,b)
tapply(x,list(a=a,b=b),mean)
interaction.plot(a,b,x)
l<-aov(x~a*b)
summary(l)
model.tables(l,se=T)
t.test(x[a==1 & b==1],x[a==1 & b==2])
t.test(x[a==2 & b==1],x[a==2 & b==2])
fam<-read.table(family.txt,header=T)
fam
attach(fam)
data<-as.matrix(fam[,-1])
pairs(data,panel=panel.smooth)
cor(data)
cor.test(FATH,GIRL)
cor.test(MOTH,GIRL)
cor.test(INST,GIRL)
A.5 Dossier IO
a<-read.table(io.txt,header=T)
attach(a)
table(Sexe,Matiere)
chisq.test(table(Sexe,Matiere))
32
B Solutions sous Statistica
Cette section presente la facon de traiter les problemes presentes dans le chapitre 6.
De maniere generale, lorsque lon dispose de simples fichiers texte pour les donnees, limportation
des donnees se fait a laide de la commande Fichier . Importer des donnees . Rapide. Le
cas echeant, lorsque le fichier de donnees est deja sous le format Statistica (extension .sta), il
suffit simplement dutiliser la commande Fichier . Ouvrir des donnees.
Une fois les donnees chargees, une bote de dialogue Tables et Statistiques Elementaires
saffiche. On choisit Test T pour des echantillons apparies. Une nouvelle bote de dialogue
saffiche dans laquelle on va definir la premiere et la seconde variable a laide du bouton VARIABLES.
Il est interessant de visualiser les donnees sous forme de botes a moustaches (cf Fig. B.2) ;
pour cela, il suffit de cliquer sur le bouton BOITE A MOUSTACHES, et de selectionner ensuite loption
Mediane/Quartile/Etendue dans la boite de dialogue suivante.
Ensuite, on peut lancer le test t sur le panneau initial (sil nest plus visible, cliquer sur la petite
bote de dialogue Reprendre analyse ou SUITE si vous etes sur la derniere fenetre graphique),
en appuyant sur le bouton TESTS.
Le resultat de lanalyse saffiche dans une nouvelle fenetre de sortie (cf Fig. B.1). A la lecture
des resultats, on voit que le test t est significatif : t = -4,06213, p/2 = ,0014165 (p = ,002833,
dl = 9).
On pourra remarquer que lanalyse aurait abouti au meme resultat en derivant le protocole
par difference, et en effectuant un test t contre une moyenne theorique = 0 (p = ,0016).
Sous Statistica, aller dans Autres tests de significativite, Difference entre deux moyennes,
cocher Moyenne du cas 1 vs. Moyenne de la population 2, M1=-1,56, s1=1,24, n=10, ap-
33
Fig. B.2 Affichage des differences de groupe sous forme de bote a moustaches sous Statistica
Il sagit ici de mettre en oeuvre une ANOVA dordre 1 (un seul critere de classification, ou un seul
facteur de groupe a 4 modalites). Apres avoir saisi les donnees, ou importe le fichier, lanalyse
de variance seffectue soit via le module ANOVA/Decomposition de la variance, soit via le
module plus general pour les analyses de variance (groupes independants et mesures repetees)
ANOVA/MANOVA.
34
Fig. B.3 Resultat de lanalyse de variance dordre 1 sous Statistica
Lorsque lon valide en appuyant sur la touche OK, le panneau danalyse de variance saffiche, le
plan danalyse considere (facteurs systematique inter, intra etc.) etant indique dans la partie
superieure. Lorsquon clique sur le bouton Tous les effets, Statistica lance lanalyse de variance
dordre 1, et une fenetre de resultats saffiche. Cette derniere comprend un tableau dANOVA
dordre 1 classique, avec le carre moyen de leffet et celui de lerreur (MC effet et MC error), les
degres de libertes associes aux sommes des carres (3 et 86), la valeur du F (6,635689), ainsi que
le seuil p associe (0,000434) (cf. Fig. B.3). Par defaut3 , Statistica affiche en rouge les valeurs
significatives par rapport aux seuils reperes (que lon peut redefinir dans les options Statistica).
Il est egalement possible davoir une representation graphique des moyennes des groupes de
sujet en cliquant sur le bouton Comparaison moy., puis en selectionnant la sortie graphique, mais
par defaut ce nest pas une bote a moustache qui est affichee (cf. Fig. B.4).
Le protocole doit etre analyse a laide dune ANOVA dordre 2 (deux groupes independants de
sujets), avec comme facteurs principaux (systematiques) de lanalyse les conditions Active et
Main, a deux modalites chacune.
Nous utiliserons comme dans le dossier precedent le module ANOVA/MANOVA, en supposant les
donnees deja disponibles au bon format et presentes dans le tableau de donnees (3 colonnes
comprenant la VD et les 2 VI sous forme indicee 1, 2 par exemple ; les observations en
ligne). On definira comme precedemment les variables dependantes et independantes, ainsi que
les facteurs inter a prendre en compte dans lanalyse (i.e. tous).
En repetant les memes etapes que celles effectuees dans le dossier Pedago, on obtient le tableau
dANOVA dordre 2 avec leffet des deux facteurs systematiques et linteraction entre ces deux
facteurs (cf. Fig. B.5). Linteraction entre les deux facteurs, et son seuil de significativite peuvent
3
ce nest le cas lors des comparaisons multiples
35
Fig. B.4 Comparaison de moyennes sous Statistica
etre visualise en cliquant sur le bouton Comparaison moy., puis en selectionnant la sortie graphique.
Etant donne quil y a deux variables, il faudra indiquer quelle variable sera reprise sur laxe des
abscisses (cf. Fig. B.6).
En revanche, puisquon est dans un cas dANOVA a plusieurs facteurs, il faudra analyser les
moyennes qui sont significativement differentes prises deux a deux : on utilisera pour cela les com-
paraisons multiples (non planifiees) qui sont accessibles en cliquant sur le bouton Tests post-hoc.
Le test de Tukey-HSD peut-etre utilise, et on selectionnera loption Differences significatives.
Le resultat du test saffiche dans une nouvelle fenetre, sous forme dun tableau indiquant en
ligne les comparaison par paire de modalites des deux variables4 .
On notera que que sous Statistica, le resultat du test de Tukey-HSD indique les seuils p pour
les differences significatives et non les intervalles de confiance a 95 % comme sous R.
Il sagit ici dun probleme classique de regression multiple. La matrice des correlations peut
etre obtenue dans le menu Analyse . Statistiques elementaires rapides . Matrice de
correlations.
4
le tableau etant une matrice symetrique de seuils de significativite p, on peut se contenter de lire la moitie
des valeurs...
36
Fig. B.5 Resultat de lanalyse de variance dordre 2 sous Statistica
37
Fig. B.7 Resultat de la regression multiple sous Statistica
Apres avoir cliquer dans le commutateur de modules de Statistica Regression multiple (ou menu
Analyse . Autres statistiques . Regression multiple), il faut specifier la variable dependante
(ici les donnees de la fille), et les variables independantes, i.e. les variables predictrices (les 3
autres series de donnees pere, mere, prof). Une fois le codage des variables effectue, valider en
appuyant sur OK. Un tableau indiquant les resultats de la regression multiple coefficients , R 2
saffiche (cf. Fig. B.7).
Lanalyse des valeurs predites et des residus est obtenue grace a la commande Analyse des
residus dans la fenetre Analyse de la regression multiple, puis en selectionnant Afficher
Residus & Prev..
B.5 Dossier IO
Ce dossier comprend un tableau de contingence 3 x 2 pour lequel il faut mettre en oeuvre une
procedure danalyse des tableaux de contingence (module Analyse des Correspondances). Lorsque
la bote de dialogue saffiche, on selectionne loption Analyse des Correspondances (AC), ainsi
que Frequences sans var. de classement, puis on selectionne toutes les modalites de la va-
riable en colonnes.
Lorsque lon clique sur OK, un panneau intitule Resultats de lAnalyse des Correspondances
apparat et indique dans la partie superieure le resultat du test du chi-deux : ici, 2 = 6.66667, dl =
2, p = 0.357. Les indicateurs descriptifs concernant le tableau de contingence sont accessibles
via le panneau de controle dans la partie inferieure :
les distributions marginales (lignes et colonnes) sont accessibles en cliquant sur le bouton
38
Pourcentages Lignes ou Pourcentages Colonnes
les effectifs theoriques sont accessibles en cliquant sur le bouton Theorique (Chi)
les ecarts a lindependance (difference entre effectifs observes et effectifs theoriques) sont
accessibles en cliquant sur le bouton Obs. moins Theorique
le carre moyen de contingence (2 ) est indique dans toutes les fenetres de resultats precedentes
et designe par le terme Inertie Totale
Les contributions au 2 sont indiquees pour chaque croisement des modalites des deux variables
en cliquant sur le bouton Contrib. au Chi-deux.
39
C Prise en main de Statistica
C.1 Introduction
Etant donne la richesse de linterface, ou plutot des interfaces (cf. infra) de Statistica, nous nous
contenterons devoquer quelques-unes de ses principales fonctionnalites, afin que le lecteur soit a
meme : (1) douvrir ou dimporter un fichier de donnees, (2) deffectuer des statistisques descrip-
tives elementaires, (3) de creer des representations graphiques et (4) danalyser des protocoles
simples (cf. egalement la section B). De plus amples informations peuvent etre obtenues grace
aux manuels de Statistica, a laide en ligne, ou aux nombreux tutoriels disponibles sur le web.
Statistica est un logiciel tres puissant permettant de faire de lanalyse descriptive et inferentielle.
Statistica est organise en differents modules Statistiques Elementaires, ANOVA/MANOVA, etc. ,
accessibles au travers du commutateur de modules (cf. Fig. C.1), qui est automatiquement lance
au demarrage. Il demeure ensuite accessible dans le menu Analyse . Autres Statistiques.
40
C.2 Organisation des donnees
Statistica contient un gestionnaire de donnees integre, mais nous allons nous limiter a exposer
brievement lorganisation des donnees dans la feuille de donnees. Celle-ci est equivalente a un
tableur (comme Excel) dans lequel les observations sont disposees en lignes, et les variables
en colonnes. En fait, les observations sont le plus generalement les sujets, et les variables les
modalites des variables independantes (V.I.). Lintersection ligne-colonne contient ainsi la valeur
de la variable dependante (V.D.).
Lorsquil ny a quune seule V.I. a plusieurs modalites, on peut coder ses modalites dans une
autre colonne-variable, qui sert alors de variable de classement. Dans le cas ou on a plusieurs
V.I. a plusieurs modalites (cas par exemple dun protocole de mesures repetees), les variables
correspondent en fait au croisement de chaque modalite de chaque variable. Par exemple, si lon
a 2 V.I. A et B a 2 niveaux (i.e. un plan de type S A2 B2 ), il y aura 4 colonnes disposees
precisemment 1 comme suit : a1b1 a1b2 a2b1 a2b2. Il est utile de sassurer de la bonne disposition
des donnees en affichant un graphique, car si lordre des facteurs est inverses par exemple, il
risque dy avoir des problemes lors de linterpretation de linteraction A x B.
Laide en ligne est generalement bien redigee et indique dans chaque situation (plan avec groupes
independants, groupes apparies, mesures repetees, plan factoriel, split-plot etc.) comment
organiser les donnees. Nhesitez pas a vous y referer, meme pour verification.
Il est egalement possible de parametrer le type de resultats a afficher (moyenne, mediane, quan-
tiles, ecart-type etc.), a laide du bouton Davantage de Statistiques. En revanche, il faut
garder a lesprit que Statistica ne calcule que des ecart-types et variances corriges 2 .
1
Il faut faire attention a lordre, en effet, car Statistica va determiner les modalites des facteurs a partir de
lordre dans lequel ils sont ranges dans la feuille de donnees ; ainsi, si on rangeait les donnees sous la forme a1b1
a2b1 a1b2 a2b2, le plan correspondant serait S B2 A2 , et pire encore si on intervertissait 2 colonnes, on aurait
un plan incorrect puisque melangeant les facteurs !
2
Pour obtenir des ecart-types et variances non corriges, il faut multiplier les valeurs obtenues par n1 n
.
41
Fig. C.2 Panneau de Statistiques Descriptives
C.3.2 Remarque
Par ailleurs, toutes les fonctions decrites dans les paragraphes precedents sont generalement
accessibles a laide dun clic droit effectue dans la colonne de la ou les variable(s) du tableau de
donnees (Statistiques Rapides . Autres).
Les outils graphiques se trouvent dans le meme module que celui utilise pour les statistiques
descriptives ; ils apparaissent dans la partie inferieure de la bote de dialogue Statistiques
Descriptives. Les graphiques les plus couramment utilises sont les histogrammes, les botes a
moustaches categorisees et les nuages en 2D (nuages bivaries). Lorsque lon selectionne un type
de graphique, une nouvelle bote de dialogue apparat et permet de preciser ou parametrer le
graphique selectionne. Si aucune variable na ete selectionnee, il est possible de le faire a laide
du bouton Variables.
C.4.1 Histogrammes
Pour les histogrammes (cas des variables categorisees), on peut choisir entre des histogrammes
simple (cas dune seule variable) ou multiple (cas de plusieurs variables), et y associer une courbe
42
Fig. C.3 Panneau de Statistiques Descriptives
dajustement normale par exemple (cf. Fig. C.3). Il est egalement possible dafficher les effectifs
cumules, plutot que les effectifs simples (cela peut permettre dobtenir la fonction de repartition
discrete de la variable).
Les botes a moustaches sont tres utiles pour les donnees categorisees. Elles peuvent etre presentees
sous forme classique (mediane, 1er et 3eme quartiles, etendue), ou a laide dautres indicateurs
(moyennes, erreur-type ou ecart-type et intervalles de confiance a 95 %) (cf. Fig. C.4).
Pour les nuages en 2D (cas des variables numeriques), on peut egalement choisir des nuages
simple ou multiple, associes a une fonction dajustement pre-definie ou parametrable. Des bou-
tons radio permettent de selectionner le type daxes du repere, qui peuvent etre de type cartesien
ou polaire. On peut egalement inclure les ellipses et bandes de confiance (en general au seuil
p = .95) de la moyenne.
Dautres options tres utiles sont disponibles ne cliquant sur le bouton Options. La nouvelle
bote de dialogue qui saffiche permet en effet de selectionner le nombre dobservations a inclure
dans le graphique, de specifier laffichage des etiquettes dobservations (ce qui permet de reperer
directement une observation sur le graphique par une etiquette de type i1, i2, ..., sans avoir a le
43
Fig. C.4 Panneau de Statistiques Descriptives
C.4.4 Remarque
Par ailleurs, toutes les fonctions decrites dans les paragraphes precedents sont generalement
accessibles a laide dun clic droit effectue dans la colonne de la ou les variable(s) du tableau de
donnees (Graphiques Rapides . (...)).
44