Documente Academic
Documente Profesional
Documente Cultură
Anne PHILIPPE
Universit de Nantes,
Laboratoire de Mathmatiques Jean Leray
email : Anne.philippe@math.univ-nantes.fr
2
3
4
26 septembre 2012
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Vecteurs et matrices
Dataframes
Listes
Les fonctions
Les graphiques
Structures de contrle et
Itrations
5
6
7
26 septembre 2012
1 / 147
Installation
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
2 / 147
Documentations
Documents sur le logiciel R :
http://www.math.sciences.univ-nantes.fr/philippe/R_freeware.html
Windows
MacOS X
Linux ...
Plus de 80 livres,
par exemple
Introductory Statistics With R
Bayesian Computation With R
Applied Statistical Genetics With R :
Generalized Additive Models : An Introduction with R
Extending the Linear Model With R
Time Series Analysis And Its Applications : With R Examples
Outils disponibles :
un langage de programmation orient objet
des fonctions de "base"
des librairies/packages complmentaires (1800 sur le site CRAN)
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
3 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
4 / 147
Au dmarrage
Sous linux
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
5 / 147
Utiliser laide
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
6 / 147
diteur
Sous MacOS et Windows, un diteur de texte intgr au logiciel R
>
>
>
>
Les dmos :
# pour o b t e n i r l a
> demo ( )
> demo ( g r a p h i c s )
l i s t e d e s demos
Les exemples :
La fonction example excute les exemples
gnralement inclus la fin des fichiers daide.
Ctrl R excute la ligne sur laquelle se trouve le curseur ou les lignes dun
bloc slectionn.
source("nom-du-fichier.R") pour excuter le code contenu dans le fichier
nom-du-fichier.R
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
7 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
8 / 147
Objets et Oprations
Librairies
Objets et Oprations
Vecteurs et matrices
Dataframes
Listes
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
9 / 147
Anne PHILIPPE
(U. Nantes)
Objets et Oprations
26 septembre 2012
12 / 147
, +, /,
Les objets de base sont
vecteurs, matrices
10 / 147
Objets
>2+4
6
2
26 septembre 2012
Objets et Oprations
Oprations lmentaires
1
Logiciel R
data.frames, listes
Quelques fonctions gnriques :
# a v e c a f f i c h a g e du r s u l t a t
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
11 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Objets et Oprations
Vecteurs et matrices
Fonctions is/as
is.xxx(obj) teste si obj est un objet de type xxx
as.xxx(obj) contraint si possible obj au type dobjet xxx o xxx
reprsente un type dobjet (complex, real, vector matrix etc...)
> x=3
> is . real (x)
[ 1 ] TRUE
> i s . complex ( x )
[ 1 ] FALSE
> as . complex ( x )
[ 1 ] 3+0 i
> as . c h a r a c t e r ( x )
[ 1 ] "3"
Objets et Oprations
Vecteurs et matrices
Dataframes
Listes
Remarque :
Conversion de TRUE / FALSE en valeur numrique :
> as . i n t e g e r (T)
[1] 1
> as . i n t e g e r ( F )
[1] 0
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
13 / 147
Anne PHILIPPE
(U. Nantes)
Vecteurs et matrices
Logiciel R
Objets et Oprations
26 septembre 2012
14 / 147
Vecteurs et matrices
seq ( from , t o )
seq ( from , to , by= )
seq ( from , to , l e n g t h . o u t= )
> x=c ( 1 , 4 , 9 )
> y=c ( x , 2 , 3 )
> y
[1] 1 4 9 2 3
par exemple
> seq ( 1 , 4 , by =0.1)
[ 1 ] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7
[26] 3.5 3.6 3.7 3.8 3.9 4.0
> c (4:1)
# a>b r a i s o n
1
[1] 4 3 2 1
(U. Nantes)
....
# a b n e s t p a s un e n t i e r
> c (1.4:7)
[ 1 ] 1.4 2.4 3.4 4.4 5.4 6.4
Anne PHILIPPE
la raison est 1
on f i x e l a r a i s o n
on f i x e l e nb de t e r m e s
> rep ( 1 , 4 )
[1] 1 1 1 1
Logiciel R
26 septembre 2012
15 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
16 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Les matrices sont cres avec la fonction matrix() partir dun vecteur. On doit
fixer le nombre de colonnes ncol et/ou le nombre de lignes nrow.
> x = m a t r i x ( c ( 2 , 3 , 5 , 7 , 1 1 , 1 3 ) , n c o l =2)
Par dfaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne,
on ajoute largument byrow=T
(U. Nantes)
Logiciel R
Objets et Oprations
> m a t r i x ( c ( 1 : 3 ) , n c o l =2 , nrow=3)
[ ,1] [ ,2]
[1 ,]
1
1
[2 ,]
2
2
[3 ,]
3
3
> m a t r i x ( c ( 1 : 3 ) , n c o l =2)
[ ,1] [ ,2]
[1 ,]
1
3
[2 ,]
2
1
> y = m a t r i x ( c ( 2 , 3 , 5 , 7 , 1 1 , 1 3 ) , n c o l =2 , byrow=T)
> x
> y
[ ,1] [ ,2]
[ ,1] [ ,2]
[1 ,]
2
7
[1 ,]
2
3
[2 ,]
3
11
[2 ,]
5
7
[3 ,]
5
13
[3 ,]
11
13
Anne PHILIPPE
26 septembre 2012
17 / 147
Anne PHILIPPE
(U. Nantes)
Vecteurs et matrices
Logiciel R
Objets et Oprations
26 septembre 2012
18 / 147
Vecteurs et matrices
> diag ( 1 : 4 )
[ ,1] [ ,2] [ ,3] [ ,4]
[1 ,]
1
0
0
0
[2 ,]
0
2
0
0
[3 ,]
0
0
3
0
[4 ,]
0
0
0
4
>
cbind
diag
La fonction diag retourne une matrice diagonale lorsque le paramtre dentre est
un vecteur.
Si le paramtre dentre est une matrice, alors elle retourne un vecteur constitu
de la diagonale de la matrice
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
19 / 147
> x =1:10
> y=x ^2
> rbind (x , y )
[ ,1] [ ,2] [ ,3] [ ,4] [ ,5] [ ,6] [ ,7] [ ,8] [ ,9] [ ,10]
x
1
2
3
4
5
6
7
8
9
10
y
1
4
9
16
25
36
49
64
81
100
> cbind ( x , y )
x
y
[1 ,]
1
1
[2 ,]
2
4
[3 ,]
3
9
[4 ,]
4 16
[5 ,]
5 25
[6 ,]
6 36
etc
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
20 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Extraire un lment
> vect [ 1 ]
[ 1 ] 1.5
> v e c t=c ( 1 . 5 : 9 . 5 )
> vect
[ 1 ] 1.5 2.5 3.5 4.5 5.5
6.5 7.5 8.5 9.5
> mat [ , 1 ]
[ 1 ] 1.5 2.5 3.5
> mat [ 3 , ]
[ 1 ] 3.5 6.5 9.5
>
,1:2]
[ ,2]
5.5
6.5
> mat [ 2 , 1 ]
[ 1 ] 2.5
> x
[1] 1 2 3 4 5
> y
[1] 0 0 0 1 1
> xy
[1] 0 0 0 4 5
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
21 / 147
Anne PHILIPPE
(U. Nantes)
Vecteurs et matrices
Logiciel R
Objets et Oprations
26 septembre 2012
22 / 147
26 septembre 2012
24 / 147
Vecteurs et matrices
Attention
Anne PHILIPPE
Vecteurs et matrices
(U. Nantes)
x
y
: 1 2 3 4 5
: 1 2 1 2 1
x+y : 2 4 4 6 6
Logiciel R
26 septembre 2012
23 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Soit FUN une fonction dfinie sur les scalaires qui retourne un scalaire.
Par exemple
sqrt
abs
sin
cos
tan
exp
log
log10
gamma lgamma
Vecteurs et matrices
square root
absolute value
trigonometric functions ( radians )
e x p o n e n t i a l and n a t u r a l l o g a r i t h m
common l o g a r i t h m
gamma f u n c t i o n and i t s n a t u r a l l o g
Exemple
Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constitue des
lments e ai ,j .
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
25 / 147
Anne PHILIPPE
(U. Nantes)
Vecteurs et matrices
Logiciel R
Objets et Oprations
26 septembre 2012
26 / 147
Vecteurs et matrices
Applications
Si les vecteurs ne sont pas de mme longueur, le plus court est complt
automatiquement.
> a= 1 : 5
> a<b
[ 1 ] TRUE
b =2.5
ET : &
OU : |
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
27 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
28 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Fonction which
Soit vec un vecteur logique. La fonction which(vec) retourne les indices des
coordonnes du vecteur vec qui prennent la valeur TRUE
Est ce que
> x =(1:10)^2
> x
[1]
1
4
9 16 25
> which ( x== 2 5 )
[1] 5
> which ( x > 2 1 )
[1]
5 6 7 8 9 10
2 = 2?
> ( s q r t ( 2 ) ^ 2 == 2 )
[ 1 ] FALSE
Une solution
> a l l . equal ( sqrt (2)^2 ,2)
[ 1 ] TRUE
#ou
>isTRUE ( a l l . e q u a l ( s q r t ( 2 ) ^ 2 , 2 ) )
36
49
64
81 100
Exemple
Les commandes x[x>1] et x[which(x>1)] retournent le mme vecteur.
Cas particulier
which.max(x) retourne which(x==max(x))
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
29 / 147
Anne PHILIPPE
(U. Nantes)
Vecteurs et matrices
Objets et Oprations
1
n
max(), min()
Pn
Pn
i=1 xi ),
26 septembre 2012
30 / 147
26 septembre 2012
32 / 147
Dataframes
i=1 xi
Logiciel R
Objets et Oprations
Vecteurs et matrices
Dataframes
Listes
cumprod()
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
31 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Dataframes
Objets et Oprations
Cest une matrice dont toutes les colonnes ne sont pas ncessairement du mme
type : scalaire, boolen, caractre. Par exemple
> d a t a 1=
x1 x2
1
1 1
2
1 2
3
1 3
4
1 4
5
1 5
6
1 6
7
1 7
8
1 8
9
1 9
10 1 10
data . frame ( x1 =1 , x2 = 1 : 1 0 , a= l e t t e r s [ 1 : 1 0 ] )
a
a
b
c
d
e
f
g
h
i
j
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
33 / 147
> A+C
x y
1 2 NA
2 4 NA
3 6 NA
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
34 / 147
Dataframes
> A+B
x y
1 2 3
2 3 5
3 4 7
> C
x
1 1
2 2
3 3
Logiciel R
y
a
a
a
26 septembre 2012
Pour extraire un lment ou un bloc, la syntaxe est la mme que pour les matrices.
Pour extraire une colonne les deux syntaxes suivantes peuvent tre utilises
> A$ x
[1] 1 2 3
> A[ ,1]
[1] 1 2 3
Warning m e s s a g e :
I n Ops . f a c t o r ( l e f t , r i g h t ) :
c e c i n e s t par p e r t i n e n t pour des
variables facteurs
(U. Nantes)
Anne PHILIPPE
Objets et Oprations
Les oprations entre des dataframes sont oprations terme terme comme pour
les matrices.
y
2
3
4
Dataframes
> A
x
1 1
2 2
3 3
> names ( d a t a 1 )
[ 1 ] " x1 " " x2 " " a "
> names ( d a t a 1 )< c ( " c1 " , " c2 " , " c3 " )
> head ( d a ta 1 , 3 )
c1 c2 c3
1 1 1 a
2 1 2 b
3 1 3 c
> dim ( d a t a 1 )
[ 1 ] 10 3
>row . names ( d a t a 1 ) < l e t t e r s [ 1 : 1 0 ]
#l e v e c t e u r s l e t t e r s c o n t i e n t l e s l e t t r e s de l a l p h a b e t
> head ( d a ta 1 , 2 )
c1 c2 c3
a 1 1 a
b 1 2 b
Anne PHILIPPE
Dataframes
35 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
36 / 147
Objets et Oprations
Listes
Objets et Oprations
Listes
Objets et Oprations
Vecteurs et matrices
Dataframes
Listes
Exemple
On construit une liste appele rnd qui contient 3 objets :
un vecteur dans serie
un scalaire dans taille
une chane de caractres dans type
La syntaxe est la suivante
>r d n= l i s t ( s e r i e =c ( 1 : 1 0 0 ) , t a i l l e =100 , t y p e=" a r i t h m " )
attention
Une liste peut tre cre sans donner des noms aux variables cest a dire
rdn=list(c(1:100),100,"arithm") .
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
26 septembre 2012
37 / 147
Anne PHILIPPE
(U. Nantes)
Listes
Logiciel R
Objets et Oprations
26 septembre 2012
38 / 147
26 septembre 2012
40 / 147
Listes
OU
>r n d [ [ 2 ] ]
[ 1 ] 100
attention
Si la liste a t cre sans spcifier de noms aux variables, il ny a pas de nom par
dfaut et la seule la premire syntaxe est utilisable.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
39 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Listes
Objets et Oprations
Listes
Importer un tableau :
x=read.table("data.dat")
x=read.table("data.dat", header=TRUE)
Linstruction header=TRUE permet de prciser que la premire ligne du
fichier contient le nom des colonnes du tableau.
> a= l i s t ( x =1 , y =3)
> saveRDS ( a , s a v . r d s )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
41 / 147
9 10
Anne PHILIPPE
(U. Nantes)
Les fonctions
Logiciel R
26 septembre 2012
42 / 147
Les fonctions
Les fonctions
>FUN=f u n c t i o n ( l i s t e _d e s_p a r a m t r e s )
{
commandes
r e t u r n ( o b j e t s_r e t o u r n s )
}
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
43 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
44 / 147
Les fonctions
Les fonctions
Exemple
Renvois multi-arguments
La fonction return interdit les sorties avec plusieurs arguments : il faut les
regrouper dans un seul objet sous la forme dune liste.
PF = f u n c t i o n ( n , p r o b a . p i l e )
{
u=r u n i f ( n ) #nb a l a t o i r e s u i v a n t U n i f ( 0 , 1 )
p f =(u<p r o b a . p i l e )
p f = as . i n t e g e r ( p f )
f =mean ( p f )
r e t u r n ( l i s t ( e c h a n t i l l o n = pf , f r e q u e n c e = f ) )
}
Excution de la fonction :
PF ( 1 0 , 1 / 2 )
[1] 0 0 1 0 1 0 1 1 0 0
# a v e c a f f e c t a t i o n de l a s o r t i e d a n s l e v e c t e u r x
x = PF ( 1 0 , 1 / 2 )
x
[1] 0 1 1 1 0 0 0 0 0 0
Anne PHILIPPE
(U. Nantes)
Logiciel R
PF ( 4 , 1 / 2 )
$echantillon
[1] 0 0 1 0
$frequence
[ 1 ] 0.25
26 septembre 2012
45 / 147
Anne PHILIPPE
l= PF ( 4 , 1 / 2 )
l$echantillon
[1] 0 0 1 1
l$f
[ 1 ] 0.5
(U. Nantes)
Les fonctions
Logiciel R
26 septembre 2012
46 / 147
Les fonctions
Paramtres dentre
On peut aecter des valeurs par dfaut aux paramtres dentre dune fonction.
Il y a trois faons de spcifier les paramtres dentre dune fonction
Modification de la fonction PF
par la position : les paramtres dentre sont aects aux premiers arguments
de la fonction. PF(3,1/2) : les paramtres dentre sont n=3 et
proba.pile=1/2
par le nom : il sagit du moyen le plus sr, les noms des arguments sont
prciss de manire explicite. On peut alors crire PF(proba.pile=1/2 ,n=3),
lordre nest plus prioritaire
avec des valeurs par dfaut : ces valeurs par dfaut seront utilises si les
paramtres dentre ne sont pas spcifis. On peut alors crire PF(3) ou
PF(n=3) : les paramtres dentre sont n=3 et la valeur par dfaut pour
proba.pile cest dire 1/2.
Les commandes
PF ( 1 0 )
OU
PF ( 1 0 , 1 / 2 )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
47 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
48 / 147
Les fonctions
Les fonctions
Modification de la fonction PF :
Tableaux croiss
La fonction outer retourne une matrice de la forme
n e s t manquant
M(i, j) = fun(xi , yj )
IL est donc prfrable de placer les paramtres sans valeur par dfaut en premier
dans la dclaration des variables dentre.
x =1:5
y =1:5
M=o u t e r ( x , y , f u n )
(U. Nantes)
Logiciel R
26 septembre 2012
49 / 147
Anne PHILIPPE
(U. Nantes)
Les fonctions
Logiciel R
26 septembre 2012
Les fonctions
la fonction Vectorize
# on t r a n s f o r m e l a f o n c t i o n { f } en une f o n c t i o n
> df = Vectorize ( f , x )
>y=d f ( x )
v e c t o r i e l l e df .
Anne PHILIPPE
(U. Nantes)
f )
Logiciel R
50 / 147
26 septembre 2012
51 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
t a i l l e d un o b j e t p l u
26 septembre 2012
52 / 147
Les fonctions
Les graphiques
suite
Anne PHILIPPE
(U. Nantes)
0.5440211
Les graphiques
0.5365729
f (x[ i ] , y[ j ])
[ ,3]
0.7568025
0.6569866
sont f (1 ,1:2) f (2 ,1:2) f (3 ,1:2)
Logiciel R
26 septembre 2012
53 / 147
Anne PHILIPPE
(U. Nantes)
Les graphiques
Logiciel R
26 septembre 2012
Les graphiques
type=p
60
20
25
30
20
25
30
20
25
30
4
x
2
0
10
15
Index
type=s
10
15
Index
col : couleur
type=h
1 2 3 4
plot(x,y,pch=3)
30
80
25
1 2 3 4
40
Index
20
type=l
15
Index
ylim=c(ay,by) et xlim=c(ax,bx)
par dfaut les bornes sont optimises sur la
premire courbe trace
plot(y)
10
4 ,4 ,.1)
x= seq (
54 / 147
> f (1 , y )
[1]
0.9092974
0.9589243
> # identique
> f ( rep ( 3 , 1 ) , y )
[1]
0.7568025 0 . 6 5 6 9 8 6 6
>
> #c a l c u l du t a b l e a u c r o i s
> df = Vectorize ( f , x )
> df ( x , z )
[ ,1]
[ ,2]
[1 ,]
0.9092974
0.1411200
[2 ,]
0.9589243
0.2794155
> # les vecteurs
colonnes
0
-4
-2
10
15
Index
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
55 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
56 / 147
Les graphiques
Les graphiques
Graphique en 3D
100
200
300
400
500
600
x < seq ( 10 , 1 0 , l e n g t h= 3 0 )
y < x
f < f u n c t i o n ( x , y ) { r < s q r t ( x^2+y ^ 2 ) ; 10 s i n ( r ) / r }
z < outer ( x , y , f )
p e r s p ( x , y , z , t h e t a = 3 0 , p h i = 3 0 , expand = 0 . 5 , c o l = " l i g h t b l u e " )
100
200
300
400
500
600
700
800
z
y
y
x
(U. Nantes)
Logiciel R
26 septembre 2012
57 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Les graphiques
lgende legend
legend (
superposer des courbes
1, 3 , 4))
1.5
x^2-1
sin
cos
1.0
1.0
top
topleft, inset = .05
(x,y)
(x,y)
0.5
0.5
left
center
(x,y)
right
(x,y)
(x,y)
Logiciel R
26 septembre 2012
bottomleft
59 / 147
-3
-2
-1
Anne PHILIPPE (U. Nantes)
bottom
(x,y)
0.0
-1.0
-1.0
-0.5
-0.5
0.0
x^2 - 1
(x,y)
(U. Nantes)
commentaire
-1
Anne PHILIPPE
58 / 147
Les graphiques
Superposition de courbes
x=rnorm ( 2 0 )
y=r e x p ( 2 0 )
#nuage de p o i n t s
plot (x , y)
#a j o u t e r un nuage de p o i n t s
p o i n t s ( x + . 1 , y + . 1 , pch =2)
#a j o u t e r une l i g n e
l i n e s ( s o r t ( x ) , y , l t y =2)
#a j o u t e r une l i g n e h o r i z o n t a l e
a b l i n e ( h=3)
#t e x t e + f r a m e t i t l e
text (1 ,5 , " commentaire " )
t i t l e ( " superposer des courbes " )
26 septembre 2012
0.0
Anne PHILIPPE
bottomright
(x,y)
0.2
0.4
(x,y)
0.6
0.8
1.0
0
x
2
Logiciel R
3
26 septembre 2012
60 / 147
Les graphiques
Les graphiques
Illustrations
Anne PHILIPPE
Logiciel R
26 septembre 2012
61 / 147
Anne PHILIPPE
300
y
-1
Histogram of r
density.default(x = r)
0.4
0.3
0.2
Density
0.1
0.0
5
0
-1
(U. Nantes)
200
100
0
-2
r=rnorm ( 1 0 0 , 1 )
z=h i s t ( r , p l o t=F )
plot ( z )
w=d e n s i t y ( r )
p l o t (w)
(U. Nantes)
0.0
sin (x)
-1.0
Les graphiques
Logiciel R
-2
-1
26 septembre 2012
62 / 147
Les graphiques
Les outils graphiques matplot et pairs sont adapts aux matrices dont les
colonnes correspondent des variables.
Exemple
8
>data ( i r i s )
>i r i s
Species
setosa
setosa
setosa
2.3
2.8
4.0
4.6
1.3 v e r s i c o l o r
1.5 v e r s i c o l o r
6.3
6.5
2.5
3.0
5.0
5.2
1.9
2.0
5.5
6.5
iris
virginica
virginica
1
2
3
4
...
54
55
...
147
148
-3
4
20
20
x=r p o i s ( 1 0 0 0 , 1 )
y=t a b l e ( x )
y
x 0
1
2
3
374 372 162 71
plot (y)
15
. default "
. factor"
. function "
. lm "
. mts "
. POSIXct "
. table "
. window "
-0.5
sur un tableau
Frequency
" plot
" plot
" plot
" plot
" plot
" plot
" plot
" plot
0.5
p l o t ( s i n , x l i m=c( p i , p i ) )
1.0
10
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
63 / 147
Anne PHILIPPE
50
(U. Nantes)
100
Logiciel R
150
26 septembre 2012
64 / 147
Les graphiques
Les graphiques
Cette fonction reprsente tous les nuages de points possibles entre les direntes
colonnes.
p l o t ( c ( 1 , 9 ) , c ( 0 , 2 ) , t y p e="n" )
0.5
1.0
1.5
2.0
2.5
Sepal.Length
polygon ( c ( 4 . 5 , 5 . 5 , 5 . 5 , 4 . 5 )
3
Arguments supplmentaires
p o l y g o n ( 1 : 9 , c ( 2 , 1 , 2 , 1 ,NA, 2 , 1 , 2 , 1 ) , c o l=c ( " r e d " , " b l u e " ) ,
b o r d e r=c ( " g r e e n " , " y e l l o w " , lwd =3 , l t y =c ( " d a s h e d " , " s o l i d " ) )
5.5
6.5
7.5
2.0
c(0, 2)
1.5
2.0
2
0.5
0.0
2
c(1, 9)
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
65 / 147
etape 3
1.5
1.5
1.0
0.0
0.5
Petal.Width
etape 2
2.0
etape 1
c(0, 2)
Petal.Length
Anne PHILIPPE
c(1, 9)
(U. Nantes)
Les graphiques
1.0
1 2 3 4 5 6 7
Sepal.Width
4.5
,c (0 ,0 ,1 ,1))
1.0
c(0, 2)
3.5
0.5
3.0
0.0
2.5
2.0
On commence par fixer les axes des abscisses et des ordonns laide dun
graphique vide.
Logiciel R
c(1, 9)
26 septembre 2012
66 / 147
Les graphiques
autre exemple
Pour sauvegarder un graphique :
utilisation de la fonction dev.print.
-5 0 5 10 15 20
Distance
20
40
60
80
100
Time
n=100
z . h a u t=c ( 0 , cumsum ( rnorm ( n ) ) )
z . b a s= c ( 0 , cumsum ( rnorm ( n ) ) )
xx < c ( 0 : n , n : 0 )
yy < c ( z . bas , r e v ( z . h a u t ) )
#g r a p h i q u e v i d e p o u r f i x e r l e s d i m e n s i o n s
plot
( xx , yy , t y p e="n" , x l a b=" Time " , y l a b=" D i s t a n c e " )
#t r a c e r l e p o l y g o n e
p o l y g o n ( xx , yy , c o l=" g r a y " , b o r d e r = " r e d " )
t i t l e ( " D i s t a n c e Between B r o w n i a n M o t i o n s " )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
67 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
68 / 147
Instructions conditionnelles
La syntaxe
if (condition) {instructions} permet de calculer les instructions
uniquement si la condition est vraie.
if (condition) { A } else {B} calcule les instructions A si la condition est
vraie et les instructions B sinon.
Par exemple,
if (x>0) y=x*log(x) else y=0
Remarque : Si les instructions se limitent un seul calcul comme dans cet
exemple on peut utiliser la fonction ifelse
y=ifelse(x>0,x*log(x),0)
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
69 / 147
Anne PHILIPPE
26 septembre 2012
70 / 147
Itrations
Logiciel R
(U. Nantes)
On utilise les boucles pour excuter plusieurs fois une instruction ou un bloc
dinstructions
Les trois types de boucle sont
for :
for(var in seq) {commandes}
while :
while(cond) { commandes}
repeat :
repeat { commandes ; if (cond) break }
Alternative :
(U. Nantes)
Logiciel R
26 septembre 2012
71 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
72 / 147
Exemple
Exemple
On veut simuler n variables alatoires suivant la loi de X1 + ... + Xp o les Xi sont
iid suivant la loi uniforme sur [0, 1].
On stocke lchantillon dans Y .
i= 1
repeat
{
commandes
i = i +1
i f ( i >10) b r e a k
}
Anne PHILIPPE
(U. Nantes)
# i n i t i a l i s a t i o n de Y a v e c d e s 0
Y = rep (0 , n )
for ( i in 0:n )
{ Y [ i ] = sum ( r u n i f ( p , 0 , 1 ) ) }
Logiciel R
26 septembre 2012
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
74 / 147
Exemple
Exemple
En utilisant while
En utilisant repeat
x=rbinom ( 1 , 1 , . 5 )
N=1
w h i l e ( x != 1 )
{
x=rbinom ( 1 , 1 , . 5 )
N=N+1
}
N=0
repeat {
x=rbinom ( 1 , 1 , . 5 )
N=N+1
i f ( x==1) b r e a k
}
Anne PHILIPPE
# i n i t i a l i s a t i o n de Y a v e c d e s 0
Y = rep (0 , n )
for ( i in 1:p)
{ Y = Y + runif (n ,0 ,1) }
# Y e s t un v e c t e u r v i d e
Y = NULL
for ( i in 0:n )
{
Y = c (Y , sum ( r u n i f ( p , 0 , 1 ) ) )
}
73 / 147
(U. Nantes)
Logiciel R
etc
26 septembre 2012
temp = r e p ( 0 , 1 2 )
f o r ( i i n 1 : 1 2 ) temp [ i ] = mean ( nottem [ , i ] )
On peut aussi initialiser le vecteur temp comme le vecteur vide, puis on le remplit
en concatnant les rsultats
temp = NULL
for ( i in 1:12)
75 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
76 / 147
La fonction apply
La fonction apply() permet dappliquer la mme fonction FUN sur toutes les
lignes (MARGIN=1) ou les colonnes (MARGIN=2) dune matrice MAT
....
x est un vecteur
ARG.COMMUN reprsente ventuellement des paramtres supplmentaires qui
sont communs toutes les excutions.
lignes
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
77 / 147
Anne PHILIPPE
(U. Nantes)
avec boucle
Exemples
n =100
N=500
med = 1 :N
f o r ( i i n 1 :N) med [ i ] = q u a n t i l e ( rnorm ( n , 0 , 1 ) , p r o b s =1/ 2 )
Histogram of med
0.5073058
0.5073058
0.5073058
0.02613061
0.19182371
Density
Sans boucle
A l e a = m a t r i x ( rnorm ( nN, 0 , 1 ) , n c o l= N)
med = a p p l y ( A l e a , 2 , q u a n t i l e , p r o b s =1/ 2 )
78 / 147
replicate
26 septembre 2012
Logiciel R
0.2
0.0
0.2
0.4
med
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
79 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
80 / 147
sapply,lapply
Ces fonctions calculent la mme fonction sur tous les lments dun vecteur ou
dune liste.
La syntaxe :
lapply(X,FUN, ARG.COMMUN)
n =100
N=500
med = 1 :N
f o r ( i i n 1 :N) med [ i ] = q u a n t i l e ( rnorm ( n , 0 , 1 ) , p r o b s =1/ 2 )
La fonction lapply applique une fonction FUN tous les lments du vecteur
ou de la liste X.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
81 / 147
Anne PHILIPPE
(U. Nantes)
82 / 147
Soit x = (x1 , ...., xt ) une srie reprsentant lvolution du prix dune action sur une
dure de t jours.
On veut calculer Mi le prix maximum sur la priode 1 i pour i = 1, ..., t.
> cars
speed d i s t
1
4
2
2
4
10
3
7
4
>l a p p l y ( c a r s , mean )
$speed
$dist
[ 1 ] 15.4
[ 1 ] 42.98
Logiciel R
>l a p p l y ( c a r s , q u a n t i l e , p r o b s = ( 0 : 4 ) / 4 )
$speed
0% 25% 50% 75% 100%
4
12
15
19
25
$dist
0% 25% 50% 75% 100%
2
26
36
56 120
(U. Nantes)
26 septembre 2012
Anne PHILIPPE
Logiciel R
sans boucle
FUN . max = f u n c t i o n ( n , y ) max ( y [ 1 : n ] )
M
26 septembre 2012
83 / 147
Anne PHILIPPE
s a p p l y ( 1 : t , FUN . max ,
(U. Nantes)
y = x )
Logiciel R
26 septembre 2012
84 / 147
La fonction tapply
Le type factor est un objet vectoriel qui permet de spcifier une classification
discrte (nombre fini de groupes).
La fonction tapply applique une fonction FUN sur les sous groupes dun vecteur
X dfinis par une variable de type factor GRP
tapply(X,GRP,FUN,...)
> note
[ 1 ] 10.83676 11.63757 11.07312 13.79699 10.84186
10.72562 13.58680 14.85070 13.15659 14.36744
> xgr
[ 1 ] " a " "b" " a " "b" " a " " a " "b" " a " "b" "b"
> g r=f a c t o r ( x g r )
> gr
[1] a b a b a a b a b b
Levels : a b
> t a p p l y ( n o t e , gr , mean )
a
b
11.66561 13.30908
La fonction aggregate permet aussi dvaluer une fonction sur des sous
ensembles. Elle ne necessite pas la dfinition dune variable de type factor.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
85 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
86 / 147
26 septembre 2012
88 / 147
#b o u c l e
> x =1:M
> f o r ( i i n 1 :M)
x [ i ] = mean ( r u n i f ( n ) )
#r e p l i c a t e
> x=r e p l i c a t e (M, mean ( r u n i f ( n ) ) )
#a p p l y
> Z=m a t r i x ( r u n i f ( nM) , n c o l=M)
> x=a p p l y ( Z , 2 , mean )
Anne PHILIPPE
(U. Nantes)
( n= 10^3 , M= 10^4)
user
system e l a p s e d
wfor
0.680
0.051
0.760
wrep 0 . 6 1 8
0.018
0.632
wapp 1 . 1 3 2
0.157
1.286
( n= 10^2 , M= 10^5)
user
system e l a p s e d
wfor
3.160
0.239
3.451
wrep 2 . 5 2 2
0.066
2.611
wapp 3 . 0 3 1
0.253
3.456
( n= 10 , M= 10^6)
user
system e l a p s e d
wfor
32.077
0.419
43.655
wrep 3 7 . 2 1 9
0.481
41.147
wapp 2 9 . 9 1 1
0.392
30.357
Logiciel R
26 septembre 2012
87 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Gnralits
P(X = x)
R
f
(x)d
.x
A
x2A
loi discrte
loi continue
Loi
Loi
Loi
Loi
Loi
=F
binomiale (n,p)
hypergomtrique (N,n,k)
de Poisson (a)
gomtrique (p)
support fini {(ai , pi ), i = 1...m}
binom
hyper
pois
geom
sample
Gaussienne (m, 2 )
uniforme sur [a, b]
de Student degrs de libert
du 2 degrs de libert
norm
unif
t
chisq
Lois continues
Loi
Loi
Loi
Loi
Anne PHILIPPE
Lois discrtes
1
Logiciel R
26 septembre 2012
89 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
90 / 147
pnorm(x)
-2
-4
Logiciel R
26 septembre 2012
91 / 147
Anne PHILIPPE
(U. Nantes)
quantile function
random values
rnorm(10)
0.2
0.4
0.6
Logiciel R
0.8
1.0
(U. Nantes)
-2
-4
0.0
0.3
, t y p e=" l " )
p l o t ( rnorm ( 1 0 , 0 , 1 ) )
0.2
dnorm(x)
p l o t ( u , qnorm ( u , 0 , 1 )
0.0
0.1
, t y p e=" l " )
qnorm(u)
p l o t ( x , pnorm ( x , 0 , 1 )
-4
x=seq ( 5 , 5 , . 0 1 )
u=seq ( 0 , 1 , . 0 1 )
-2
Anne PHILIPPE
cdf
0.4
10
Index
26 septembre 2012
92 / 147
Soit Z une variable alatoire valeurs dans {x1 , ....., xk } telle que
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
93 / 147
Anne PHILIPPE
(U. Nantes)
table(DE)
20
15
4
4
2
2
3
3
3
3
5
1
1
3
4
3
2
2
5
1
6
2
3
3
1
6
5
4
6
6
10
1OO lancers
6
5
4
2
# Les r a l i s a t i o n s
> DE
[1] 3 2 5 3 4 5 4 4 2 4 2 5 2 6 5
[24] 3 5 4 4 5 5 4 4 4 3 5 5 2 5 3
[47] 2 5 6 2 1 5 1 6 2 1 2 3 5 1 3
[70] 6 4 1 3 4 5 6 1 6 3 5 4 1 5 2
[93] 6 4 2 5 5 1 5 4
# c a l c u l du nombre de 1 , . . . , 6 d a n s
#l c h a n t i l l o n s i m u l :
> t a b l e (DE)
DE
1 2 3 4 5 6
12 17 17 19 23 12
# r e p r s e n t a t i o n de l a r p a r t i t i o n
> p l o t ( t a b l e (DE ) )
p(Z = xi ) = probi
DE
Logiciel R
26 septembre 2012
94 / 147
La fonction stepfun retourne un objet de type function qui dfini une fonction
constante par morceaux et continue droite.
La syntaxe est
F=stepfun(x, z)
o
> plot (F ,
v e r t i c a l =FALSE )
ou l i n e s ( F ,
f(x)
10
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
95 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
96 / 147
Asia
Africa
North America
South America
Antarctica
Europe
Australia
Greenland
New Guinea
Borneo
Madagascar
Baffin
Sumatra
Honshu
Britain
Victoria
Ellesmere
Celebes
New Zealand (S)
Java
New Zealand (N)
Newfoundland
Cuba
Luzon
Iceland
Mindanao
Ireland
Novaya Zemlya
Hokkaido
Hispaniola
Sakhalin
Moluccas
Tasmania
Celon
Banks
Devon
Tierra del Fuego
Southampton
Melville
Axel Heiberg
Spitsbergen
New Britain
Taiwan
Kyushu
Timor
Prince of Wales
Hainan
Vancouver
0
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
97 / 147
Anne PHILIPPE
5000
10000
(U. Nantes)
Africa
11506
Australia
2968
Banks
23
Celebes
73
Devon
21
Greenland
840
Hokkaido
30
Ireland
33
Luzon
42
Mindanao
36
New Guinea
306
Newfoundland
43
Prince of Wales
13
Southampton
16
Taiwan
14
Timor
13
15000
Antarctica
Asia
5500
16988
Axel Heiberg
Baffin
16
184
Borneo
Britain
280
84
Celon
Cuba
25
43
Ellesmere
Europe
82
3745
Hainan
Hispaniola
13
30
Honshu
Iceland
89
40
Java
Kyushu
49
14
Madagascar
Melville
227
16
Moluccas
New Britain
29
15
New Zealand (N) New Zealand (S)
44
58
North America
Novaya Zemlya
9390
32
Sakhalin
South America
29
6795
Spitsbergen
Sumatra
15
183
Tasmania Tierra del Fuego
26
19
Vancouver
Victoria
12
82
Logiciel R
26 septembre 2012
98 / 147
Questions :
100
120
boxplot
data : sqrt(islands)
80
40
60
continue
20
discrte
qualitative ?
>b o x p l o t ( x )
Construction du boxplot :
Les points reprsentent les valeurs
aberrantes. Elles sont dfinies comme les
observations en dehors de lintervalle
I = [Q1
Anne PHILIPPE
(U. Nantes)
Logiciel R
1.5(Q3
Q1 ), Q3 + 1.5(Q3
Q1 )].
26 septembre 2012
99 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
100 / 147
Histogramme
On compare sur des donnes simules suivant la loi gaussienne deux estimateurs
de la densit (hist / density) avec la densit thorique de la loi
h i s t ( s q r t ( i s l a n d s ) , b r e a k s = 12)
h i s t ( s q r t ( i s l a n d s ) , b r e a k s = c ( 4 0 : 5 , 10 3 : 5 , 7 0 , 1 0 0 , 1 4 0 ) )
0.4
0.15
5
32
60
80
100
140
20
sqrt(islands)
40
60
3
80
100
100
-2
140
sqrt(islands)
Anne PHILIPPE
0.4
Density
10
80
0.0
15
(U. Nantes)
Logiciel R
26 septembre 2012
101 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
On relve pendant un mois la mteo Cental Park. La variable est valeurs dans
{clear, partly.cloudy, cloudy }.
> c e n t r a l . park . cloud
[ 1 ] p a r t l y . cloudy p a r t l y . cloudy
[ 5 ] p a r t l y . cloudy p a r t l y . cloudy
[ 9 ] p a r t l y . cloudy c l e a r
[13] cloudy
cloudy
[17] p a r t l y . cloudy c l e a r
p a r t l y . cloudy
clear
cloudy
clear
clear
clear
cloudy
p a r t l y . cloudy
p a r t l y . cloudy
clear
t a b=t a b l e ( c e n t r a l . p a r k . c l o u d )
p i e ( tab )
barplot ( tab )
clear
clear
cloudy
9
Logiciel R
cloudy
cloudy
(U. Nantes)
partly.cloudy
partly.cloudy
cloudy
Anne PHILIPPE
102 / 147
Variables qualitatives
0 4 8
Frequency
5
0
60
density.default(x = dat)
Largument breaks fixe le nombre ou les bornes des classes. On peut aussi utiliser
nclass pour fixer le nombre de classes.
40
140
sqrt(islands)
les options
20
-1
dat
WRONG histogram
-2
p a r ( mfrow=c ( 1 , 2 ) )
x=rnorm ( 1 0 0 0 0 )
y=d e n s i t y ( x )
plot (y)
h i s t ( x , p r o b a=T)
lines (y)
z=seq ( min ( x ) , max ( x ) , 0 . 0 1 )
#s u p e r p o s e d e n s i t t h o r i q u e
l i n e s ( z , dnorm ( z , 0 , 1 ) , l t y =2)
0 4 8
40
-3
1
0.2
20
0.0
0.10
0.05
19
11
0.00
Density
Density
0.2
Density
equidistant breaks
Histogram of dat
26 septembre 2012
103 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
clear
partly.cloudy
26 septembre 2012
104 / 147
Variables discrtes
Peter
John
Jack
Peter
10
nb d'appels
10
Reprsentation graphique
pie ( sales )
barplot ( s a l e s )
30
20
Jack
> N [ 1 ] 6 16 3 6 8 10 9 9 10
etc
> t = t a b l e (N)
N
2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
2 4 3
7 16 15 25 18 23 18 25
9 6 9 4 2
>
John
> sales
John J a c k P e t e r
45
44
46
15
40
On relve le salaire de 3
personnes
jours
45
John
Jack
0.08
0.00
43
44
table(N)/length(N)
J= 2 : 1 7
p l o t ( t a b l e (N) / l e n g t h (N) , y l a b=" " )
p o i n t s ( J , d p o i s ( J , mean (N ) ) )
0.04
b a r p l o t ( s a l e s , y l i m=c ( 4 0 , 4 7 ) , xpd=F )
0.12
46
47
Peter
Logiciel R
26 septembre 2012
105 / 147
Anne PHILIPPE
(U. Nantes)
10
12
14
16
# GRAPHIQUE CORRIG
b r = b a r p l o t ( t a b l e (N) / l e n g t h (N) )
p o i n t s ( br , d p o i s ( J , mean (N ) ) )
frquence
12
14
11
13
15
17
26 septembre 2012
106 / 147
10
12
14
10
12
17
10
15
16
16
q q p l o t (N, N2 )
abline (0 ,1)
frquence
2
10
10 12 14 16
GRAPHIQUE CORRIG
N2
5 10 15 20 25
15
frquence
GRAPHIQUE FAUX
Attention : Les labels des barres ne coincident pas avec la coordonne sur laxe
des abscisses.
Illustration : on veut ajouter sur graphique prcdent la densit de la loi de
Poisson de paramtre gal la moyenne empirique de lchantillon (points en
rouge), on obtient
J= 2 : 1 7
# GRAPHIQUE FAUX
b a r p l o t ( t a b l e (N) / l e n g t h (N) )
p o i n t s ( J , d p o i s ( J , mean (N ) ) )
Logiciel R
(U. Nantes)
Anne PHILIPPE
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
107 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
108 / 147
grade
B+ AC C+B- B
F D
prev
Anne PHILIPPE
(U. Nantes)
14
12
20
10
8
4
12
10
8
Logiciel R
4
0
1
4
2
0
1
1
1
B-
C+
0
0
0
1
0
0
3
0
1
0
0
2
3
0
0
1
0
1
3
0
0
3
1
1
5
4
3
26 septembre 2012
2
0
1
0
0
0
9
3
4
0
0
1
2
0
0
7
1
11
> table(grades)
grade
prev
A
AB+
A
15
3
1
A3
1
1
B+
0
2
2
B
0
1
1
B0
1
0
C+
1
1
0
C
1
0
0
D
0
0
0
F
1
0
0
> plot(table(grades))
B+
B-
A
AB+
B
BC+
C
D
F
B- C+
B+
A-
table(grades)
A
A
AB+
B
BC+
C
D
F
15
14
prev grade
B+
B+
AAB+
AF
F
F
F
A
B
A
A
C
D
1
2
3
4
5
6
7
8
10
A-
grade
B-
B+
B-
prev
prev
109 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
110 / 147
100
140
20
100
0
60 100 140
0
60 100 140
50
20
weight
50
20
weight
40
80
120
10
p a i r s (X [ , 1 : 3 ] )
Anne PHILIPPE
(U. Nantes)
30
60
40
height
20
60
80
100
120
140
20
weight
40
60
80
100
120
140
weight
10
10
30
height
30
height
40
40
age
10
20
140
40
age
60
80 120
60
80 120
20
150
30
40
30
10
20
> kid.weights
age weight height gender
1
58
38
38
M
2
103
87
43
M
3
87
50
48
M
4
138
98
61
M
5
82
47
47
F
50
Donnes : pour 150 enfants, on relve les informations suivantes : age / poids /
taille /sexe
50
height
50
40
80
120
10
30
50
p a i r s (X [ , 1 : 3 ] , c o l=X [ , 4 ] )
Logiciel R
26 septembre 2012
111 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
112 / 147
Infrence statistique
Infrence statistique
Infrence statistique
Estimation non paramtrique
Tests
Rgression
(U. Nantes)
Logiciel R
Infrence statistique
26 septembre 2012
113 / 147
(U. Nantes)
0.4
1.0
0.0
1.0
(U. Nantes)
Logiciel R
26 septembre 2012
115 / 147
0.0
0.5
1.0
0.8
0.6
Density
0.2
0.0
0.5
1.0
1.0
0.8
0.6
Density
0.2
0.0
Density
1.0
cosine
0.2
1.0
0.0
-2
0.5
0.8
1.0
0.8
-4
0.6
Density
0.0
biweight
0.4
0.0
1.0
0.4
0.5
0.4
0.8
0.0
triangular
0.2
-2
0.6
Density
1.0
0.0
0.0
-4
0.4
0.2
rectangular
1.0
epanechnikov
1.0
gaussian
0.0
0.4
0.3
0.1
0.2
Density
0.3
0.2
0.1
k=1
1.0
0.6
0.4
1.0
0.4
0.8
-2
0.6
-4
Density
0.2
n
1X 1
x Xk
fn (x) =
kern
n
bwn
bwn
0.3
Density
0.0
114 / 147
0.1
0.2
0.4
0.3
0.2
0.1
-2
26 septembre 2012
0.0
-4
Logiciel R
Infrence statistique
Density
Anne PHILIPPE
Density
Infrence statistique
Estimation non paramtrique
Tests
Rgression
0.4
Anne PHILIPPE
0.0
1.0
0.0
0.5
1.0
1.0
0.0
0.5
1.0
(U. Nantes)
Logiciel R
26 septembre 2012
116 / 147
Infrence statistique
Infrence statistique
same bandwidth,
6 different kernels
0.0
1.0
0.8
0.00
0.1
0.05
0.10
Density
0.3
0.15
0.4
bandwidths = 1
0.2
Density
0.10
0.08
0.06
N = 50
10
Bandwidth = 0.1
N = 50
bandwidths = 2
10
Bandwidth = 1
10
10
Bandwidth = 2.096
N = 50
0.04
10
15
Bandwidth = 2
5
N = 50
10
15
Bandwidth = 3
0.0
> x= rnorm ( 1 0 0 )
>Fn=e c d f ( x )
>p l o t ( Fn , c o l=" g r e e n " )
> z=seq ( min ( x ) , max ( x ) , 0 . 0 1 )
> l i n e s ( z , pnorm ( z ) , c o l =1 , lwd =2)
0.00
0.02
Density
N = 50
0.00
Density
0.08
0.06
0.08
bandwidths = 3
0.04
0.02
0.00
10
(U. Nantes)
Logiciel R
Infrence statistique
! F (t)
p.s.
bandwidths = 0.1
0.04
Density
i=1
2
1
2 (x+5)
0.6
3 1
+ p e
4 2
n!1
0.4
5)2
c(0:(n 1))/n
1
2 (x
1t] (Xi )
0.2
1 1
f (x) = p e
4 2
n
1X
Fn (t) =
1]
n
26 septembre 2012
117 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Infrence statistique
0
sort(x)
26 septembre 2012
118 / 147
26 septembre 2012
120 / 147
Tests
n
1X
Xi ! E (X1 )
n
i=1
n=5000
#l o i
gaussienne
x=rnorm ( n , 0 , 1 )
y=cumsum ( x ) / ( 1 : n )
p l o t ( y , t y p e= l )
Infrence statistique
Estimation non paramtrique
Tests
Rgression
1000
2000
3000
4000
5000
Index
0 1 2 3 4
-2
yc
# l o i de Cauchy ou S t u d e n t ( 1 d d l )
x c=r t ( n , 1 )
y c=cumsum ( x c ) / ( 1 : n )
p l o t ( yc , t y p e= l )
1000
2000
3000
4000
5000
Index
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
119 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Infrence statistique
Tests
Infrence statistique
#s t u d e n t
var . text ( x , y )
cor . t e s t ( x , y )
chisq . test (x , y)
Box . t e s t ( z , l a g = 1 )
# comparaison v a r i a n c e
# non c o r r e l a t i o n
#i n d p e n d a n c e
#non c o r r e l a t i o n
#n o r m a l i t
#n o r m a l i t K S
# mme d i s t r i b u t i o n
(U. Nantes)
Logiciel R
Infrence statistique
Anne PHILIPPE
26 septembre 2012
> x = rnorm ( 1 0 0 , 1 , 1 )
> y = rexp (200 ,1)
> t . test (x , y)
121 / 147
(U. Nantes)
Logiciel R
Infrence statistique
26 septembre 2012
122 / 147
Tests
Validit de lalgorithme
n
X
n = 1
U
Ui
n
simU< f u n c t i o n ( t a i l l e , s i z e )
{
y = m a t r i x ( r u n i f ( t a i l l e s i z e ) , n c o l=s i z e )
( a p p l y ( y , 1 , mean) 1/ 2 ) s q r t ( t a i l l e / 1 2 )
}
Logiciel R
X = simU ( 1 0 0 0 , n )
i=1
La gnrateur scrit
(U. Nantes)
Anne PHILIPPE
Tests
Test dajustement
Anne PHILIPPE
Tests
123 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
124 / 147
Infrence statistique
Tests
Infrence statistique
Rgression
Les rsultats
2 1
0.0
0.8
(1:size)/size
0.8
3 2 1 0
sort(X)
pvalue(shapiro)= 0
pvalue(shapiro)= 0.03
pvalue(shapiro)= 0.18
0.0
0.3
Density
3 2 1 0
3 2 1 0
Logiciel R
Infrence statistique
26 septembre 2012
3
125 / 147
(U. Nantes)
Logiciel R
Rgression
Infrence statistique
Rgression linaire
26 septembre 2012
126 / 147
Rgression
Visualisation : plot.lm
3
Residuals vs Leverage
0.5
35
20
Residuals
-20
-1
Pour raliser une rgression linaire, par la mthode des moindres carrs, on utilise
la fonction lm .
Sur les donnes cars
-2
39
Cook's distance
0.00
0.02
0.04
0.06
0.08
0.10
20
120
Leverage
lm(cars$dist ~ cars$speed)
> lm ( c a r s $ d i s t ~ c a r s $ s p e e d )
Call :
lm ( f o r m u l a = c a r s $ d i s t ~ c a r s $ s p e e d )
40
60
80
Fitted values
lm(cars$dist ~ cars$speed)
Normal Q-Q
Scale-Location
49
49
1.5
23
23
Standardized residuals
40
-2
0.0
-1
60
0.5
Standardized residuals
80
1.0
35
100
35
cars$dist
Coefficients :
( Intercept )
cars $speed
17.579
3.932
49
23
40
y = ax + b +
Residuals vs Fitted
49
23
Anne PHILIPPE
(U. Nantes)
0.0
0.00
3 2 1 0
Anne PHILIPPE
0.4
sort(X)
Density
sort(X)
Infrence statistique
Estimation non paramtrique
Tests
Rgression
Standardized residuals
0.5
n= 10 et pvalue(ks)= 0.81
0.0
(1:size)/size
0.8
1.5
Density
n= 5 et pvalue(ks)= 0.01
0.0
(1:size)/size
n= 1 et pvalue(ks)= 0
-2
-1
20
40
60
80
Fitted values
lm(cars$dist ~ cars$speed)
20
Theoretical Quantiles
lm(cars$dist ~ cars$speed)
> p l o t ( c a r s $ speed , c a r s $ d i s t )
> a b l i n e ( r e g , c o l =3 , lwd = 2 )
10
15
20
25
cars$speed
Remarque : Si les donnes sont disponibles sous la forme dune liste on peut
utiliser la syntaxe
> f i t = lm ( d i s t ~ s p e e d , c a r s )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
127 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
128 / 147
Infrence statistique
Rgression
Infrence statistique
Extension
Rgression
dist
0 20 40 60 80 100 120
10
15
20
25
speed
Anne PHILIPPE
(U. Nantes)
Logiciel R
Infrence statistique
26 septembre 2012
129 / 147
Anne PHILIPPE
(U. Nantes)
Rgression
Logiciel R
26 septembre 2012
130 / 147
26 septembre 2012
132 / 147
Sries Chronologiques
Polynmes Locaux
Sries Chronologiques
100
120
60
40
20
0
dist
80
>data ( c a r s )
>c a r s . l o = l o e s s ( d i s t ~ s p e e d , c a r s )
>p = p r e d i c t ( c a r s . l o )
>p l o t ( c a r s )
> l i n e s ( seq ( 5 , 3 0 , 1 ) , p$ f i t , c o l =3)
10
15
20
25
speed
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
131 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Sries Chronologiques
Sries Chronologiques
Exemple
data ( USAccDeaths )
USAccDeaths
>
>
1973
1974
1975
1976
1977
1978
Jan
9007
7750
8162
7717
7792
7836
Feb
8106
6981
7306
7461
6957
6892
Mar
8928
8038
8124
7767
7726
7791
Apr
May
Jun
Jul
Aug
9137 10017 10826 11317 10744
8422
8714
9512 10120
9823
7870
9387
9556 10093
9620
7925
8623
8945 10078
9179
8106
8890
9299 10625
9302
8192
9115
9434 10484
9827
Sep
9713
8743
8285
8037
8314
9110
Oct
9938
9129
8466
8488
8850
9070
Nov
9161
8710
8160
7874
8265
8633
Dec
8927
8680
8034
8647
8796
9240
USAccDeaths
> p l o t ( USAccDeaths )
1973
1974
1975
1976
1977
1978
1979
Time
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
133 / 147
Anne PHILIPPE
(U. Nantes)
Sries Chronologiques
Filtre
1.0
0.8
y= f i l t e r ( x , s i d e s= 1 , method = c o n v o l u t i o n , f i l t e r =c ( 2 , 3 ) )
# y [ i ] = 2 x [ i ] + 3 x [ i 1]
y= f i l t e r ( x , s i d e s= 2 , method = c o n v o l u t i o n , f i l t e r =c ( 2 , 3 , 4 ) )
# y [ i ] = 2 x [ i 1] + 3 x [ i ] +4] x [ i +1]
y= f i l t e r ( x , method = r e c u r c i v e , f i l t e r =c ( 2 , 3 ) )
#y [ i ] = x [ i ] + 2 y [ i 1] + 3 y [ i 2]
0.2
ACF
0.4
0.6
1
0
Bruit.Blanc
0.0
-1
-0.2
60
80
100
Time
Anne PHILIPPE
(U. Nantes)
> d i f f ( x , l a g=p , d i f f e r e n c e s =d )
Bruit.Blanc
-2
40
134 / 147
s t a r t = c ( 1 ) , end=c ( 1 0 0 ) )
Series
20
26 septembre 2012
Sries Chronologiques
Logiciel R
10
15
20
Lag
Logiciel R
26 septembre 2012
135 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
136 / 147
Sries Chronologiques
Sries Chronologiques
modlisation et prvision AR
periodogram = function ( t r a j )
n = length ( t r a j )
f r e q = 1 : ( n %/% 2 ) / ( n )
p e r i o d o g r a m = Mod( f f t ( t r a j ) ) [ 2 : ( n %/% 2 + 1 ) ] ^
2/ ( 2 p i n )
plot ( freq , periodogram , type = " l " )
0.5
1.0
1.5
0.2
0.6
1.0
1.4
>data ( l h )
>a r ( l h )
Call : ar ( x = lh )
Coefficients :
1
2
0.6534
0.0636
Order s e l e c t e d 3
3
0.2269
s i g m a ^2 e s t i m a t e d as
0.1959
1500000
Lag
Si lordre p nest pas prcis, le meilleur modle AR pour le critre AIC est
slectionn.
periodogram
Lag
Partial ACF
0.0
>a c f ( USAccDeaths )
>p a c f ( USAccDeaths )
>p e r i o d o g r a m ( USAccDeaths )
Series USAccDeaths
0.4
ACF
Series USAccDeaths
0.0
0.1
0.2
0.3
0.4
0.5
freq
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
137 / 147
Anne PHILIPPE
(U. Nantes)
Sries Chronologiques
Logiciel R
26 septembre 2012
138 / 147
Sries Chronologiques
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
139 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
140 / 147
Sries Chronologiques
Sries Chronologiques
1] + ... + a[p]X [t
p] + e[t] + b[1]e[t
1] + ... + b[q]e[t
q]
Anne PHILIPPE
(U. Nantes)
Logiciel R
s
Q (L )Bq (L)e[t]
avec Y [t] = (I
L)d (I
Ls )D X [t]
26 septembre 2012
141 / 147
Anne PHILIPPE
(U. Nantes)
Sries Chronologiques
Logiciel R
26 septembre 2012
142 / 147
Sries Chronologiques
Exemple
10000
9000
USAccDeaths
p = p r e d i c t ( f i t , n . ah ea d =12)
p l o t ( USAccDeaths , c o l=" o r a n g e " )
l i n e s ( p$ p r e d , c o l=" r e d 3 " )
l i n e s ( p$ p r e d +1.96 p$ se , c o l=" b l u e 2 " )
l i n e s ( p$ p r e d 1.96 p$ se , c o l=" b l u e 2 " )
8000
Exemple :
7000
11000
>o u t=a r i m a 0 ( . . . )
> p=p r e d i c t ( out , h )
p$ p r e d
#c o n t i e n t l e s p r v i s i o n s
p$ s e
#e r r e u r s de p r v i s i o n ( c a r t t y p e )
data ( USAccDeaths )
a = c ( USAccDeaths )
USAcc= t s ( a [ 1 : 6 0 ] , f r e q u e n c y =12 , s t a r t=c ( 1 9 7 3 , 1 ) )
1973
1974
1975
1976
1977
1978
1979
Time
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
143 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
144 / 147
Sries Chronologiques
Sries Chronologiques
Lissage exponentiel
La mthode de lissage de Holt & Winter est disponible sous R. Les fonctions
sappelle HoltWinters et predict.HoltWinters.
Exemple : sur la srie data(co2)
. arima "
. ppr "
. smooth . s p l i n e . f i t "
. lm "
350
340
Observed / Fitted
360
370
HoltWinters filtering
330
" predict
" predict
" predict
" predict
#l i s s a g e
# prevision
320
> methods ( p r e d i c t )
[ 1 ] " p r e d i c t . ar "
[3] "predict . loess "
[ 5 ] " p r e d i c t . smooth . s p l i n e "
[ 7 ] " p r e d i c t . glm "
[ 9 ] " p r e d i c t . mlm"
data ( co2 )
m = H o l t W i n t e r s ( co2 )
p = p r e d i c t (m, 5 0 , p r e d i c t i o n . i n t e r v a l = TRUE)
p l o t (m, p )
1960
1970
1980
1990
2000
Time
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
145 / 147
Sries Chronologiques
La librairie forecast
Cette librarie dveloppe par Rob J Hyndman contient des mthodes pour
lanalyse et la prvision de sries temporelles univarie
1
Par dfaut cette librarie utilise le traitement parallle pour acclrer les calculs
dans la slection automatique des modles .
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
147 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
146 / 147