Académique Documents
Professionnel Documents
Culture Documents
Tests statistiques
Graphes
Graphes avancés
INTRODUCTION AU LOGICIEL R
3. Tests statistiques et graphes
emmanuelle.comets@inserm.fr
INSERM UMR738
Plan
Tests statistiques
Moyenne et variance
Analyse de variance
Variables discrètes
Tests de distribution
Graphes
Graphes simples
Eléments des graphes
Les différents types de graphes
Sauvegarde
Graphes avancés
Librairies graphiques avancées
ggplot2
Plan
Tests statistiques
Moyenne et variance
Analyse de variance
Variables discrètes
Tests de distribution
Graphes
Graphes simples
Eléments des graphes
Les différents types de graphes
Sauvegarde
Graphes avancés
Librairies graphiques avancées
ggplot2
Test de la moyenne
Les tests usuels pour une moyenne ou une comparaison de moyenne
sont :
• le test t pour des variables normales : t.test(x) ou
t.test(x,y)
• le test de Wilcoxon, non-paramétrique, pour des petits
échantillons ou des variables non normales :
wilcox.test(x) ou wilcox.test(x,y)
Pour un test apparié on utilise l’option "paired=T"
Application du test t
Comparaison de moyennes entre 2 groupes :
> t.test(x,y)
Welch Two Sample t-test
t = 2.6064, df = 63.131, p-value = 0.01140
alternative hypothesis: true difference in means != 0
95 percent confidence interval:
0.0967519 0.7325692
Test de Wilcoxon
Exercice
Corrélations
La syntaxe pour calculer la corrélation et la tester est :
> cor.test(x,y,method="methode")
Response: folate
Df Sum Sq Mean Sq F value Pr(>F)
ventilation 2 15516 7758 3.7113 0.04359 *
Residuals 19 39716 2090
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ ...
N2O+O2,24h N2O+O2,op
N2O+O2,op 0.042 -
O2,24h 0.232 0.408
Exercice
Test du χ2 (2)
Warning message:
l’approximation du Chi-2 est peut-être incorrecte in: chisq.test(malade, trait)
> prop.test(220,500,0.5)
Tests de normalité
data: x
W = 0.9872, p-value = 0.4523
> shapiro.test(y)
data: y
W = 0.9516, p-value = 0.001055
Tests de distribution
Test de Kolmogorov-Smirnov
ks.test(x,"distribution") pour tester si x suit la distribution
"distribution" (ex : punif, pnorm...)
ks.test(x,y) pour tester si x et y suivent les mêmes distributions
> x<-runif(20);y<-rnorm(20)
> ks.test(x,y)
Two-sample Kolmogorov-Smirnov test
data: x and y
D = 0.55, p-value = 0.003967
alternative hypothesis: two.sided
> ks.test(x,"pnorm")
One-sample Kolmogorov-Smirnov test
data: x
D = 0.5048, p-value = 3.032e-05
alternative hypothesis: two.sided
Exercice
Plan
Tests statistiques
Moyenne et variance
Analyse de variance
Variables discrètes
Tests de distribution
Graphes
Graphes simples
Eléments des graphes
Les différents types de graphes
Sauvegarde
Graphes avancés
Librairies graphiques avancées
ggplot2
Les graphiques
La fonction de base est plot :
> x<-c(-1000:1000)*pi/500
> y<-cos(x)
> plot(x,y)
1.0
donne 0.5
0.0
y
−0.5
−1.0
−6 −4 −2 0 2 4 6
0 6 12 18 24 0
0
1 7 13 19 25 + +
2 8 14 20 *
* − −
3 9 15 21 . |
|
4 10 16 22 o o %
%
5 11 17 23 O
O #
#
−0.5
−1.0
20
10
0
70 75 80 85
poids
E. Comets (UMR738) Introduction à R - Novembre 2009 32 / 65
Plan Graphes simples
Tests statistiques Eléments des graphes
Graphes Les différents types de graphes
Graphes avancés Sauvegarde
Exercice
Réaliser le graphe suivant à partir de la base airquality
Ozone observée les 20 premiers jours du mois de mai
50
40
30
ozone
20
10
0
0 5 10 15 20
title() titre
legend() légende
text() texte
mtext() texte dans la marge
box() encadrement du graphe
lines(x,y) trait entre x(=c(a,b)) et y(=c(c,d))
points(a,b) tracé du point de coordonnées (a,b)
arrows(a,b,c,d) tracé d’une flèche entre (a,b) et (c,d)
abline(a,b) tracé de la droite d’ordonnée à l’origine a et
de pente b
Exemple
>x<-c(0:1000)*pi/100
>plot(x,cos(x),xlim=c(0,pi),ylim=c(-1,1),
type="l",ylab="",font=3)
>lines(x,sin(x),lty=2)
>abline(-1,1,lty=3)
>legend(1, -0.5, c("cos(x)", "sin(x)", "x-1"),
lty = c(1, 2, 3)) 1.0
0.5
0.0
−0.5
cos(x)
sin(x)
x−1
−1.0
E. Comets (UMR738) x
Introduction à R - Novembre 2009 35 / 65
Plan Graphes simples
Tests statistiques Eléments des graphes
Graphes Les différents types de graphes
Graphes avancés Sauvegarde
Exercice
Réaliser le graphe suivant à partir de la base airquality
Relation entre l’ozone et le vent, selon la température
120
Temp>=85°F
Temp<85°F
100
Ozone (ppb)
80
60
40
2 4 6 8 10 12 14
Vent (mph)
hist() histogramme
barplot() graphe en barre
boxplot() boîte à moustache
qqplot(), qqnorm() graphe quantile-quantile
pie() camembert
pairs() corrélations entre les colonnes d’une matrice
matplot() corrélations entre les colonnes de deux matrices
Histogramme
On peut spécifier le nombre de barres de l’histogramme grâce à la
commande breaks
hist(airquality$Ozone) hist(airquality$Ozone
,breaks=20)
Histogram of airquality$Ozone Histogram of airquality$Ozone
25
30
20
Frequency
Frequency
15
20
10
10
5
0
airquality$Ozone airquality$Ozone
30
30
Frequency
Frequency
20
20
10
10
0
0
0 50 100 150 0 50 150 250 350
Ozone Solar.R
30
10 20 30
Frequency
Frequency
20
10
0
0 5 10 15 20 60 70 80 90 100
Wind Temp
Exercice
Réaliser le graphique suivant à partir de la base swiss
7
6
0.06
5
Frequency
Density
0.04
4
3
0.02
2
1
0.00
0
0 20 40 60 80 5 10 15 20 25 30 35
Agriculture Examination
10
10
8
8
Frequency
Frequency
6
6
4
4
2
2
0
0 10 20 30 40 50 0 20 40 60 80 100
Boxplot
Le boxplot permet de résumer graphiquement la distribution d’un
échantillon :
> boxplot(airquality$Ozone)
150
100
50
0
Ozone
E. Comets (UMR738) Introduction à R - Novembre 2009 41 / 65
Plan Graphes simples
Tests statistiques Eléments des graphes
Graphes Les différents types de graphes
Graphes avancés Sauvegarde
0 : Temp<85
1 : Temp>85
150
100
Ozone
50
0
0 1
Itemp
Exercice
Réaliser le graphique suivant à partir de la base swiss
90
90
80
80
70
70
Fertility
Fertility
60
60
50
50
40
40
0 1 0 1
alcool
80−119
120+
0.8
40−79
0−39g/day
mean of ncases/ncontrols
0.6
0.4
0.2
0.0
Quantile-quantile plot
Pour comparer les quantile empiriques de 2 vecteurs x1,x2.
Si x1 et x2 sont 2 réalisations d’une même variable aléatoire, le qq-plot
est proche de la droite y=x
> x1<-runif(100)
> x2<-runif(100)
> qqplot(x1,x2,main="qq-plot de x1 et x2")
> abline(0,1) qq−plot de x1 et x2
1.0
0.8
0.6
x2
0.4
0.2
x1
E. Comets (UMR738) Introduction à R - Novembre 2009 46 / 65
Plan Graphes simples
Tests statistiques Eléments des graphes
Graphes Les différents types de graphes
Graphes avancés Sauvegarde
Quantile-quantile norm
Pour comparer les quantile empiriques d’un vecteur aux quantiles
théoriques de la distribution normale.
> x<-runif(100) > y<-rnorm(100)
> qqnorm(x) > qqnorm(y)
> abline(0,1) > abline(0,1)
qq−norm de x qq−norm de y
1.0
2
0.8
1
Sample Quantiles
Sample Quantiles
0.6
0
0.4
−1
0.2
−2
0.0
−3
−2 −1 0 1 2 −2 −1 0 1 2
Camembert
Pour faire un camembert
> pie(rep(1,12),col=rainbow(12))
4 3
5 2
6 1
7 12
8 11
9 10
Corrélations : pairs
Trace les graphes des variables deux à deux :
> pairs(trees)
65 70 75 80 85
20
18
16
Girth
14
12
10
8
85
80
Height
75
70
65
70
60
50
Volume
40
30
20
10
8 10 12 14 16 18 20 10 20 30 40 50 60 70
2
3 3
Standardized residuals
10
1
Residuals
0
−10
−1
24
−20
24
40 50 60 70 80 −2 −1 0 1 2
8 0.15 42
243
Standardized residuals
Cook’s distance
1.0
0.10
47
46
0.05
0.5
0.00
0.0
40 50 60 70 80 0 10 20 30 40
> attach(swiss)
> lm1<-lm(Fertility~Education)
> par(mfrow=c(2,2))
> plot(lm1,which=1)
En fait plot fait ici appel à une autre fonction, plot.lm, qui sait comment
construire les graphes associés aux résultats d’une régression
linéaire. Il y a de nombreuses méthodes spécifiques associées à
différents objets :
methods(plot)
Exercice
Tracer sur 4 figures placées sur une même page les densités des
lois suivantes :
loi normale centrée réduite
loi log-normale correspondante
loi de Poisson (paramètre à choisir)
loi Gamma
Plan
Tests statistiques
Moyenne et variance
Analyse de variance
Variables discrètes
Tests de distribution
Graphes
Graphes simples
Eléments des graphes
Les différents types de graphes
Sauvegarde
Graphes avancés
Librairies graphiques avancées
ggplot2
Graphes avancés
Librairie lattice
Librairie ggplot2
Month
5
6
7
8
9
100
Ozone
50
0
60 70 80 90
Temperature
E. Comets (UMR738) Introduction à R - Novembre 2009 60 / 65
Plan
Tests statistiques Librairies graphiques avancées
Graphes ggplot2
Graphes avancés
150
100
Month
5
Ozone
6
7
8
9
50
60 70 80 90
Temp
Changements de graphes