Vous êtes sur la page 1sur 37

Plan

Notes de Cours sur le logiciel R


1

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)

Autour des lois de probabilits


Outils graphiques en
statistique
Infrence statistique
Estimation non
paramtrique
Tests
Rgression
Sries Chronologiques

Logiciel R

26 septembre 2012

2 / 147

Documentations
Documents sur le logiciel R :
http://www.math.sciences.univ-nantes.fr/philippe/R_freeware.html

Le logiciel R est un freeware disponible sur le site http://cran.r-project.org/


Il existe des versions

Site consacr aux graphiques


addictedtor.free.fr/graphiques/

Windows

Collection spcifique UseR chez Springer

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

> apparat automatiquement


en dbut de chaque ligne de
commandes
+ apparat en dbut de ligne
si la ligne prcdente est
incomplte

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

>
>
>
>

help ( " p l o t " )


? plot
help . search ( " p l o t " )
?? p l o t

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

> example (FUN)

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

Toutes les librairies ne sont pas charges au lancement du logiciel


library() retourne la liste des librairies installes.

Objets et Oprations
Vecteurs et matrices
Dataframes
Listes

library(LIB) charge la librairie LIB


library(help = LIB) retourne la liste des fonctions de la librairie LIB
search(), searchpaths() retourne la liste des librairies charges.

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

9 / 147

Anne PHILIPPE

(U. Nantes)

Objets et Oprations

Oprations lmentaires sur les scalaires : ,

26 septembre 2012

12 / 147

, +, /,
Les objets de base sont
vecteurs, matrices

Oprations avec aectation (avec ou sans achage)


x=2+4
x
6
( x=2+4)
6

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

ls() retourne la liste des objets de la session.


rm(a) supprime lobjet a

Les principaux types sont


entier , rel, complexe
caractre
logique : TRUE, FALSE, NA (not available)

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

Crer des vecteurs


Gnralisation : seq(a,b,t) o a est premier terme, le dernier b et la
raison t
la fonction c( ) concatne des scalaires ou des vecteurs :

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

Suites arithmtiques de raison 1 ou -1 : c(a:b).


> c (1:4)
# a<b r a i s o n 1
[1] 1 2 3 4

> c (4:1)
# a>b r a i s o n
1
[1] 4 3 2 1

(U. Nantes)

....

x=rep(y ,n) pour crer un vecteur constitu de llment y rpt n fois.


(y peut tre un scalaire ou un vecteur) par exemple

# 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

Crer des 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

Attention : si la dimension du vecteur nest pas gale au produit (ncol nrow)


alors lopration eectue est la suivante :

26 septembre 2012

17 / 147

Anne PHILIPPE

(U. Nantes)

Vecteurs et matrices

Logiciel R

Objets et Oprations

Quelques matrices particulires : diagonale, Toeplitz

26 septembre 2012

18 / 147

Vecteurs et matrices

Concatner des vecteurs/matrices


rbind

> 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
>

> toeplitz (1:4)


[ ,1] [ ,2] [ ,3] [ ,4]
[1 ,]
1
2
3
4
[2 ,]
2
1
2
3
[3 ,]
3
2
1
2
[4 ,]
4
3
2
1

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 des lments dun vecteur ou dune matrice

Extraire un lment
> vect [ 1 ]
[ 1 ] 1.5

Oprations sur les Matrices/Vecteurs

> mat=m a t r i x ( v e c t , n c o l =3 , nrow=3)


[ ,1] [ ,2] [ ,3]
[1 ,]
1.5
4.5
7.5
[2 ,]
2.5
5.5
8.5
[3 ,]
3.5
6.5
9.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

Extraire un bloc ou plusieurs coordonnes


mat [ 2 : 3
[ ,1]
[1 ,]
2.5
[2 ,]
3.5

>

,1:2]
[ ,2]
5.5
6.5

Les oprations + * - / entre 2 vecteurs ou matrices de mme dimension sont


des oprations terme terme.
> A
[ ,1] [ ,2]
[1 ,]
2
1
[2 ,]
4
9
> B
[ ,1] [ ,2]
[1 ,]
0
2
[2 ,]
1
1
> AB
[ ,1] [ ,2]
[1 ,]
0
2
[2 ,]
4
9
>

Colonne/ligne dune matrice

> mat [ 2 , 1 ]
[ 1 ] 2.5

> vect [ c (1 ,3 ,7)]


[ 1 ] 1.5 3.5 7.5

> x
[1] 1 2 3 4 5
> y
[1] 0 0 0 1 1
> xy
[1] 0 0 0 4 5

Attention : vect[-j] retourne le vecteur vect sans la j me coordonne


> vect[ c (1 ,3 ,7)]

Anne PHILIPPE

(U. Nantes)

retourne 2.5 4.5 5.5 6.5 8.5 9.5

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

Quelques oprations particulires sur les matrices

Attention

> a=m a t r i x ( 1 , n c o l =2 , nrow=2)


> a
[ ,1] [ ,2]
[1 ,]
1
1
[2 ,]
1
1
> a+3
#m a t r i c e + s c a l a i r e
[ ,1] [ ,2]
[1 ,]
4
4
[2 ,]
4
4
> a+c ( 1 : 2 )
#m a t r i c e + v e c t e u r
[ ,1] [ ,2]
[1 ,]
2
2
[2 ,]
3
3

Si les vecteurs ne sont pas de mme longueur,


le plus court est complt automatiquement .
> x =c ( 1 : 5 )
> x
[1]
1 2 3 4 5
> y =c ( 1 , 2 )
> y
[1] 1 2
> x + y
[1]
2 4 4 6 6

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

Action dune fonction sur un vecteur ou une matrice

Quelques fonctions sur les matrices

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

Le produit matriciel est obtenu avec % %


Calcul des valeurs/vecteurs propres :eigen

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

Calcul du dterminant : det

Lorsque le paramtre dentre est un vecteur (respectivement une matrice), la


fonction FUN est applique sur chacune des composantes. Lobjet retourn est un
vecteur (respectivement une matrice).
s

t(A) retourne la transpose de la matrice A


dcomposition de Choleski :chol (X) retourne R telle que X = R 0 R o R
est une matrice triangulaire suprieure et R 0 est la transpose de R.
dcomposition svd : svd(X) retourne (U,D,V) telles que X = UDV 0 o U et
V sont orthogonales et D est diagonale.
solve

Exemple

solve(A) retourne linverse de la matrice A

Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constitue des
lments e ai ,j .

solve(A,b) retourne x tel que Ax = b

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

Objets boolens et instructions logiques


Pour extraire les lments dun vecteur vect, on peut utiliser des instructions
logiques.
Soit I un vecteur de boolens de mme longueur que vect :
vect[I] retourne les coordonnes vect[j] telles que I [j] = TRUE .

Les oprations logiques : < , > , <= , >= , != [diffrent], ==


[gal] retournent TRUE ou FALSE.
La comparaison entre deux vecteurs est une comparaison terme terme.

Applications

Si les vecteurs ne sont pas de mme longueur, le plus court est complt
automatiquement.
> a= 1 : 5
> a<b
[ 1 ] TRUE

extraire les composantes >8


vect[vect>8] : vect>8 est un vecteur de TRUE et FALSE, on extrait les
composantes aectes TRUE.
extraire les composantes >8 ou <2
vect[(vect>8) | (vect<2)]

b =2.5

TRUE FALSE FALSE FALSE

Il est possible de dfinir plusieurs conditions remplir avec les oprateurs

extraire les composantes >8 et <10


vect[(vect>8) & (vect<10)]

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

Eet de la prcision sur la comparaison de rels

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

Ces fonctions retournent un scalaire :


P
Q
sum() (somme i xi ), prod() (produit i xi ), mean() (moyenne
)

1
n

max(), min()

Pn

dim(), ncol(), nrow() (dimension de la matrice/nombre de lignes /


nombre de colonnes.)
cumsum() (sommes cumules (x1 , x1 + x2 , . . . ,
(produits cumuls),
sort (tri), order, unique
remarque : sort(x) = x[order(x)]

Pn

i=1 xi ),

26 septembre 2012

30 / 147

26 septembre 2012

32 / 147

Dataframes

i=1 xi

length() (longueur du vecteur),

Ces fonctions retournent un vecteur :

Logiciel R

Objets et Oprations
Vecteurs et matrices
Dataframes
Listes

cumprod()

fft() (transform de Fourier)

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

31 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

Objets et Oprations

Dataframes

Objets et Oprations

Dfinition des data.frames

Oprations sur les dataframes


1

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

Pour concatner des dataframes ayant le mme nombre de lignes


data . frame (A , B)
x y xx yy
1 1 2 1 1
2 2 3 1 2
3 3 4 1 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

Oprations sur les dataframes

A = data . frame ( x = 1 : 3 , y =2:4)


B = data . frame ( xx =1 , yy =1:3)
C= data . frame ( x = 1 : 3 , y=r e p ( " a " , 3 ) )
> B
xx yy
1 1 1
2 1 2
3 1 3

Objets et Oprations

Les oprations entre des dataframes sont oprations terme terme comme pour
les matrices.

y
2
3
4

Pour visualiser les premires lignes head()


Pour definir ou visualiser le nom des lignes row.names
Pour definir ou visualiser le nom des colonnes names
La dimension de lobjet est donne par dim

Dataframes

Oprations sur les 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

Par dfaut les lignes sont numrotes 1,2 etc.

Anne PHILIPPE

Dataframes

35 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

36 / 147

Objets et Oprations

Listes

Objets et Oprations

Listes

Dfinition dune liste


Cest une structure qui regroupe des objets (pas ncessairement de mme type).
On cre les listes avec la fonction list
1

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

Oprations sur les listes


Pour visualiser la liste des composantes dune liste
>names ( r d n )
[ 1 ] " s e r i e " " t a i l l e " " type "
> summary ( r d n )
L e n g t h C l a s s Mode
serie
100
none
numeric
taille
1
none
numeric
type
1
none
character

Pour extraire les objets dune liste


>a t t a c h ( r d n )
" s e r i e " " t a i l l e " " type "

supprimer les objets crs la ligne prcdente :


>detach ( r d n )

Pour atteindre les composantes dune liste


>r d n $ t a i l l e
[ 1 ] 100

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

Importer/exporter des donnes

Listes

Importer/exporter des objets R


1

Sauvegarder des objets R dans un fichier


> x =1:10
> y= l i s t ( a=1 , b=TRUE , c=" e x e m p l e " )
> save ( x , y , f i l e= sav . rda )

Importer une suite : x=scan("data.dat") : pour crer un vecteur partir


de donnes stockes dans un fichier, ici data.dat.

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.

> load ( " sav . rda " )


> x
[1]
1 2 3 4 5

Exporter : write, write.table

Lire un fichier qui contient des objets R


6

Attention si un objet R appel x (ou y) existait avant lappel de la fonction


load, il a t remplac par celui contenu dans le fichier sav.rda
saveRDS peut aussi tre utiliser si on sauvegarde une unique liste. Le fichier
est lu avec readRDS. On peut changer le nom de la liste la lecture du fichier
> b = readRDS ( s a v . r d s )
> b
$x
[1] 1
$y
[1] 3

> 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

Structure gnrale pour crer des fonctions

La structure gnrale dune fonction est

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 )
}

Les accolades { et } dfinissent le dbut et la fin de la fonction.

La dernire instruction return contient le ou les objets retourns par la


fonction.
Excuter la fonction : FUN(...)

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.

La fonction suivante retourne le rsultat de n lancers dune pice.


PF = f u n c t i o n ( n , p r o b a . p i l e )
{
#nb a l a t o i r e s u i v a n t U n i f ( 0 , 1 )
u=r u n i f ( n )
p f =(u<p r o b a . p i l e )
p f = as . i n t e g e r ( p f )
return ( pf )
}

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 ) )
}

La sortie de la fonction est

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 par dfaut

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 dfaut on suppose que la pice est quilibre.


PF = f u n c t i o n ( n , p r o b a . p i l e =1/ 2 )
{
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 )
return ( pf )
}

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 )

retournent le mme rsultat

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

Remarque sur les valeurs par dfaut

Pour les fonctions de deux variables


f une fonction de deux variables f : (x, y ) 7! f (x, y )
x et y deux vecteurs de mme dimension.

Modification de la fonction PF :

La commande f(x,y) retourne le vecteur constitu des lments f (xi , yi ) .


Si x et y ne sont pas de mme dimension, celui de plus petite dimension est
rpt.

on inverse lordre des paramtres dentre :


PF = f u n c t i o n ( p r o b a . p i l e =1/ 2 , n )
{
...
}
PF ( 1 0 )
E r r e u r d a n s . I n t e r n a l ( r u n i f ( n , min , max ) ) :
PF ( n=10)
[1] 0 0 1 0 1 0 1 0 1 0

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 )

fun peut aussi tre une opration lmentaire +/-*


Anne PHILIPPE

(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

Illustration sur des fonctions de 2 variables

Soit f une fonction dont le paramtre dentre x est un scalaire.


Vectorize transforme la fonction f en une fonction vectorielle cest dire une
fonction qui value la fonction f en chaque point dun vecteur dentre.
Soit x = (x1 , ..., xn ), on veut valuer f aux points xi .

> f=f u n c t i o n ( x , y ) s i n ( x+y ^2)


> f (1 ,1)
[ 1 ] 0.9092974
> #
> x = 1:3
> y= 1 : 3
> # on c a l c u l e f ( x [ i ] , y [ i ] )
> f (x , y)
[1]
0.9092974
0.2794155
0.5365729
> z =1:2
> f (x , z)
[1]
0.9092974
0.2794155
0.7568025
Message d a v i s :
I n x + y ^2 :
l a t a i l l e d un o b j e t p l u s l o n g n e s t p a s m u l t i p l e de l a
> # le calcul effectu est
> #f ( x [ 1 ] , z [ 1 ] ) f ( x [ 2 ] , z [ 2 ] ) f ( x [ 3 ] , z [ 1 ] )
> #i d e n t i q u e
> f (x , c(z , z [1]))
[1]
0.9092974
0.2794155
0.7568025

# 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 .

Autres programmations possibles


1

avec une boucle for


> y = rep (0 , n )
> for ( i in 1:n) y [ i ] = f (x [ i ])

avec la fonction sapply


> y = sapply (x ,

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

Les fonctions usuelles plot(), lines(), points()

Quelques arguments de la fonction plot

plot est la fonction centrale


Le fonctions points ou lines sont utilises pour superposer des courbes ou
des nuages de points.

type=p

Premier exemple : reprsenter des vecteurs plot(y) / plot(x,y)

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

lty : type de lignes.

plot(x,y,pch=3)

30

pch : type de points

80

25

1 2 3 4

40
Index

20

type=l

type="p" (points) ou "l" (ligne) :


pour tracer une ligne ou un nuage de points.
20

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

pour fixer les limites des axes

y=l o g ( x^2+1/ x ^2)

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

Reprsentation graphique dune matrice

reprsentation dune fonction de R2 ! R

contour(x, y, matrice.... ) image( ) persp( )


Maunga Whau Volcano

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))

les emplacements prdfinis :

1.5

x^2-1
sin
cos

1.0

1.0

top
topleft, inset = .05

topright, inset = .02

(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)

1 , 1 . 9 , c ( " x^2 1" , " s i n " , " c o s " ) , c o l = c ( 3 , 4 , 6 ) ,


l t y = c (2 ,
1, 1 ) , pch = c (

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

sur un histogramme ou une densit

Les graphiques

Logiciel R

-2

-1

N = 100 Bandwidth = 0.3564

26 septembre 2012

62 / 147

Les graphiques

Reprsentation graphique dune matrice ou dataframe

Fonction matplot(matrice ...)


Cette fonction reprsente sur un mme graphique les colonnes dune matrice ou
dune data.frame.

Les outils graphiques matplot et pairs sont adapts aux matrices dont les
colonnes correspondent des variables.

Andersons Iris Data 3 species

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

Sepal . Length Sepal . Height P e t a l . Length P e t a l . Height


5.1
3.5
1.4
0.2
4.9
3.0
1.4
0.2
4.7
3.2
1.3
0.2

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 ) )

Le graphique produit par la fonction plot(x) dpend de la classe de lobjet x.


methods ( p l o t )
[ 1 ] " p l o t . data . frame "
[3] " plot . density "
[ 5 ] " plot . formula "
[ 7 ] " plot . histogram "
[ 9 ] " p l o t . mlm"
[ 1 1 ] " p l o t . new"
[ 1 3 ] " p l o t . POSIXlt "
[15] " plot . ts "
[ 1 7 ] " p l o t . xy "

1.0

sur une fonction (par ex sin)

10

Autour de la fonction plot

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

Utilisation des biplots , pairs(matrice , ....)

Construction dun polygone

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" )

Anderson's Iris Data -- 3 species


4.0

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)

0.5 1.0 1.5 2.0 2.5

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

2.0 2.5 3.0 3.5 4.0

Avec la fonction polygon, on trace le polygone dfini pas ses sommets

c(0, 2)

3.5

0.5

3.0

0.0

2.5

4.5 5.5 6.5 7.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

Distance Between Brownian Motions

pour obtenir un fichier postscript :


dev.print(postscript, file="essai.ps")
pour obtenir un fichier pdf :
dev.print(pdf, file="essai.pdf")
0

20

40

60

80

utilisation des menus (sous widows ou mac seulement)

100

Time

n=100
z . h a u t=c ( 0 , cumsum ( rnorm ( n ) ) )
z . b a s= c ( 0 , cumsum ( rnorm ( n ) ) )

La fentre graphique peut tre fractionne en utilisant


par(mfrow=c(n,m)), on obtient alors n m graphiques sur une mme page
organiss sur n lignes et m colonnes
split.screen(m,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

screen(i), screen(i,FALSE) pour slectionner la sous fentre


erase.screen()
close.screen(all = TRUE)

67 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

68 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

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)

Structures de contrle et Itrations

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

69 / 147

Anne PHILIPPE

Structures de contrle et Itrations

26 septembre 2012

70 / 147

Itrations

Avec la commande if (condition) ... else ... la condition ne peut


pas tre vectorielle
Par exemple
> x= 1 : 7
> i f ( x >2) p r i n t ( "A" ) e l s e p r i n t ( "B" )
[ 1 ] "B"

Logiciel R

Structures de contrle et Itrations

Opration non vectorielle


1

(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}

Dans la condition, x a une longueur suprieure 1. Seul le premier lment


est utilis :
(x>2) correspond (x[1] >2)
ifelse permet dappliquer une instruction conditionnelle sur chacune des
coordonnes dun vecteur.

while :
while(cond) { commandes}
repeat :
repeat { commandes ; if (cond) break }

> i f e l s e ( x <2 , "A" , "B" )


[ 1 ] "A" "B" "B" "B" "B" "B" "B"

Alternative :

Dans une boucle for, le nombre ditrations est fix.

La dure dexecution des boucles while/repeat peut tre infinie !

> g = f u n c t i o n ( x ) i f ( x >2) p r i n t ( "A" ) e l s e p r i n t ( "B" )


>vg = V e c t o r i z e ( g , x )
> vg ( 1 : 1 0 )
Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

71 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

72 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

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 .

Les 3 programmations suivantes retournent le mme rsultat.


1

Avec linstruction for


for ( i in 1:10)
{
commandes
}

i= 1
repeat
{
commandes
i = i +1
i f ( i >10) b r e a k
}

Avec linstruction while.


i= 1
w h i l e ( i <= 10 )
{
commandes
i = i +1
}

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 ) ) }

Avec linstruction repeat

Logiciel R

26 septembre 2012

Une autre faon de remplir Y


par concatnation :

Anne PHILIPPE

Structures de contrle et Itrations

(U. Nantes)

Logiciel R

26 septembre 2012

74 / 147

Structures de contrle et Itrations

Exemple

Exemple

On simule des variables alatoires suivant la loi de Bernoulli B(1/2) jusqu


lobtention du premier 1.
Le nombre de variables (not N dans le code ci dessous) simules suivant la loi de
Bernoulli suit une loi gomtrique de paramtre 1/2.

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

Une autre programmation :

(U. Nantes)

Logiciel R

On dispose des tempratures moyennes mensuelles releves Nottingham pendant


10 ans de 1920 1939.
> nottem
Jan Feb Mar Apr May Jun
J u l Aug Sep Oct Nov Dec
1920 4 0 . 6 4 0 . 8 4 4 . 4 4 6 . 7 5 4 . 1 5 8 . 5 5 7 . 7 5 6 . 4 5 4 . 3 5 0 . 5 4 2 . 9 3 9 . 8
1921 4 4 . 2 3 9 . 8 4 5 . 1 4 7 . 0 5 4 . 1 5 8 . 7 6 6 . 3 5 9 . 9 5 7 . 0 5 4 . 2 3 9 . 7 4 2 . 8
> nottem=m a t r i x ( nottem , n c o l =12 , byrow=T)

etc

On souhaite calculer un profil moyen annuel et le stocker dans le vecteur temp.

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

temp = c ( temp , mean ( nottem [ , i ] ) )

(U. Nantes)

Logiciel R

26 septembre 2012

76 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

La fonction apply

Exemple dutilisation de la fonction apply

apply(matrice , MARGIN, FUN, ARG.COMMUN)


Retour lexemple des tempratures

La fonction apply() permet dappliquer la mme fonction FUN sur toutes les
lignes (MARGIN=1) ou les colonnes (MARGIN=2) dune matrice MAT

Calcul du profil annuel :

Chaque ligne ( (MARGIN=1) ou les colonnes (MARGIN=2) ) est aecte au


premier paramtre de la fonction FUN

> temp = a p p l y ( nottem , 2 , mean )


# moyenne s u r l e s c o l o n n e s
[ 1 ] 39.695 39.190 42.195 46.290 52.560

La syntaxe de FUN est FUN( x, ARG.COMMUN)


o

....

Calcul des moyennes annuelles

x est un vecteur
ARG.COMMUN reprsente ventuellement des paramtres supplmentaires qui
sont communs toutes les excutions.

> temp . a n n u e l l e = a p p l y ( nottem , 1 , mean ) # moyenne s u r l e s

lignes

Cette fonction remplace une boucle sur le nombre de colonnes ou de


lignes

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

77 / 147

Anne PHILIPPE

(U. Nantes)

Structures de contrle et Itrations

La fonction replicate value n fois une mme expression

On simule N chantillons de taille n iid suivant la loi gaussienne standard.

[utile lexpression implique des nombres alatoires ! !].

Pour chaque chantillon, on calcule et on stocke la valeur de la mdiane


empirique dans le vecteur med.

La syntaxe : replicate(n, expression)

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 )

> r e p l i c a t e (10 ,1+1)


[1] 2 2 2 2 2 2 2 2 2 2
> x=rnorm ( 1 0 )
> r e p l i c a t e ( 5 , mean ( x ) )
[1]
0.5073058
0.5073058

Histogram of med

0.5073058

0.5073058

0.5073058

> r e p l i c a t e ( 5 , mean ( rnorm ( 1 0 ) ) )


[1]
0.22137912
0.09330663
0.12511439

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

Objectif : Estimer la distribution de la mdiane empirique

26 septembre 2012

Structures de contrle et Itrations

Supprimer une boucle en utilisant apply

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

Structures de contrle et Itrations

Structures de contrle et Itrations

Suite de lexemple sur la mdiane empirique

sapply,lapply
Ces fonctions calculent la mme fonction sur tous les lments dun vecteur ou
dune liste.
La syntaxe :

La fonction replicate permet de programmer sans boucle le code suivant

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.

La syntaxe est la suivante

Les valeurs de X sont aectes au premier argument de la fonction FUN.

med = r e p l i c a t e ( 5 0 0 , q u a n t i l e ( rnorm ( 1 0 0 , 0 , 1 ) , p r o b s =1/ 2 ) )

Si la fonction FUN a plusieurs paramtres dentre, ils sont spcifis aprs le


nom de la fonction : ARG.COMMUN
Cette fonction retourne le rsultat sous la forme de listes.
sapply est une fonction similaire lapply mais le rsultat est retourn sous
forme de vecteurs, si possible.

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

81 / 147

Anne PHILIPPE

(U. Nantes)

Structures de contrle et Itrations

82 / 147

Supprimer une boucle laide de la fonction sapply


Il est trs souvent possible de supprimer les boucles for en utilisant lapply ou
sapply.

cars est une liste constitue de deux vecteurs speed et dist


On calcule la moyenne et les quantiles des deux composantes de la liste.

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

avec une boucle


M = 1: t
for ( i in 1: t )
{
M[ i ] = max ( x [ 1 : i ] )
}

>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

Structures de contrle et Itrations

Exemple dutilisation de lapply

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

Structures de contrle et Itrations

Structures de contrle et Itrations

La fonction tapply

Evaluer le temps de calcul

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,...)

proc.time value combien de temps rel et CPU (en secondes) le processus en


cours dexcution a dj pris.

> 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

> ptm < p r o c . time ( )


> f o r ( i i n 1 : 5 0 ) mean ( r u n i f ( 1 0 0 0 ) )
> p r o c . time ( )
ptm
utilisateur
systme
coul
0.016
0.001
0.027

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

Structures de contrle et Itrations

(U. Nantes)

Logiciel R

26 septembre 2012

86 / 147

26 septembre 2012

88 / 147

Autour des lois de probabilits

Comparaison de trois programmations for/replicate/apply

#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

Autour des lois de probabilits

( 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

Autour des lois de probabilits

Autour des lois de probabilits

Gnralits

Quelques lois disponibles

Soit X une variable alatoire de loi PX


(P
PX (A) = P(X 2 A) =

P(X = x)
R
f
(x)d
.x
A
x2A

loi discrte
loi continue

Loi
Loi
Loi
Loi
Loi

Pour les lois classiques, des fonctions existent pour


calculer
(

P(X = x) pour les lois discrtes


f (x)
pour les lois continues
la fonction de rpartition F (x) = P(X x)
les quantiles F (u) = inf{x : F (x) u} 1
la densit

1. Si F est une bijection alors F


(U. Nantes)

=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

simuler des nombres alatoires suivant la mme loi que X .

Anne PHILIPPE

Lois discrtes

1
Logiciel R

26 septembre 2012

89 / 147

Anne PHILIPPE

(U. Nantes)

Autour des lois de probabilits

Logiciel R

26 septembre 2012

90 / 147

Autour des lois de probabilits

Exemple : loi gaussienne de moyenne 0 et de variance 1


dnorm(x,0,1) : densit au point x
pnorm(x,0,1) : fonction de rpartition au point x
qnorm(,0,1) : quantile dordre

Si www reprsente le nom dune des lois alors

rnorm(n,0,1) : chantillon de taille n

dwww(x,...) calcule la densit de la loi www au point x


pwww(x,... ) : calcule la fonction de rpartition au point x

Gaussian N(0,1) distribution


density

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

0.0 0.5 1.0 1.5 2.0

(U. Nantes)

-2

-4
0.0

0.0 0.2 0.4 0.6 0.8 1.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

p l o t ( x , dnorm ( x , 0 , 1 ) , t y p e=" l " )

les . . . reprsentent les paramtres spcifiques chaque loi.

x=seq ( 5 , 5 , . 0 1 )
u=seq ( 0 , 1 , . 0 1 )

-2

rwww(n,...) retourne un chantillon de taille n

Anne PHILIPPE

cdf

0.4

qwww(,... ) : calcule le quantile dordre

10

Index

26 septembre 2012

92 / 147

Autour des lois de probabilits

Autour des lois de probabilits

Simulation dune loi discrte finie

Simuler le rsultat dun d 6 faces

Soit Z une variable alatoire valeurs dans {x1 , ....., xk } telle que

On simule suivant la loi uniforme sur lensemble {1, ..., 6}.


On simulen = 100 ralisations de faon indpendante

x contient les valeurs prises par Z


prob contient les valeurs des probabilits.
lorsque loption prob nest pas spcifi, par dfaut cest la loi uniforme Lorsque
replace=FALSE indique que le tirage est sans remise. Autrement dit on simule
une ralisation de n variables alatoires indpendantes et de mme loi

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

93 / 147

Anne PHILIPPE

(U. Nantes)

Autour des lois de probabilits

table(DE)

La syntaxe est sample(x, n, replace= TRUE, prob)


o

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

La fonction sample est un gnrateur de nombres alatoires pour les lois


discrte support fini.

1OO lancers

6
5
4
2

pour tout i = 1...k

# 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

Autour des lois de probabilits

Construire une fonction cdlg constante par morceaux

Exemple : loi binomiale

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

On trace la fonction de rpartition de la loi binomiale B(10, 1/2)


points . discont = 0:10
F . p o i n t s . d i s c o n t = pbinom ( p o i n t s . d i s c o n t , 1 0 , 0 . 3 )
F = stepfun ( points . discont , c (0 ,F . points . discont ) )
p l o t ( F , v e r t i c a l =FALSE , c o l =4 , main=" f c t r e p l o i b i n o m i a l e " , y l a b="F" )

le vecteur z est de la forme c(a, y) o a est la valeur prise par F avant le


premier point de discontinuit et y les valeurs de la fonction aux points de
discontinuits x.

> plot (F ,

v e r t i c a l =FALSE )

ou l i n e s ( F ,

f(x)

Pour reprsenter graphique la fonction F on utilise plot ou lines (pour


superposer) : avec largument vertical=FALSE
v e r t i c a l =FALSE )

Application : les fonctions de rpartition des lois discrtes

0.0 0.2 0.4 0.6 0.8 1.0

le vecteur x contient les points de discontinuit de la fonction,

10

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

95 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

96 / 147

Outils graphiques en statistique

Outils graphiques en statistique

Les donnes Island


islands data: area (sq. miles)

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

Outils graphiques en statistique

0
Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

97 / 147

Anne PHILIPPE

5000

10000

(U. Nantes)

Outils graphiques en statistique

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

Outils graphiques en statistique

Statistique descriptive sur les donnes islands


> mean ( x )
[ 1 ] 3.734162
> var ( x )
[ 1 ] 9.134685
> quantile (x , c (.25 ,.5 ,.75))
25%
50%
75%
1.794741 2.990066 4.326417
Q1
mediane
Q3

Questions :

100

120

boxplot
data : sqrt(islands)

80

Comment reprsenter graphiquement lchantillon dune variable

40

60

continue

20

discrte
qualitative ?

>b o x p l o t ( x )

Comment reprsenter un tableau de donnes numriques ?

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

Outils graphiques en statistique

Outils graphiques en statistique

Histogramme

Estimation de la densit pour des lois continues

Estimation de la distribution dune variable continue

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

Remarque sur la fonction hist


-4

-2

140

N = 1000 Bandwidth = 0.2179

sqrt(islands)

Anne PHILIPPE

0.4
Density

10

80

0.0

15

(U. Nantes)

Logiciel R

26 septembre 2012

101 / 147

Anne PHILIPPE

Outils graphiques en statistique

(U. Nantes)

Logiciel R

26 septembre 2012

Reprsentation graphique dune variable quantitative

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 )

Comment ordonner les modalits ?


en gnral, on les classe suivant lordre croissant des eectifs.
barplot ( sort ( tab ))
pie(tab)

Pour rsumer linformation : on calcule la rpartition (ou la frquence) des


modalits dans lchantillon.

clear

clear

cloudy
9

Logiciel R

cloudy

modalits ordonns par effectif croissant

cloudy
(U. Nantes)

partly.cloudy

partly.cloudy

cloudy

Anne PHILIPPE

102 / 147

Outils graphiques en statistique

Variables qualitatives

> table ( c e n t r a l . park . cloud )


c e n t r a l . park . cloud
c l e a r partly . cloudy
11
11

proba =T : laire en dessous de la courbe est


gale 1. Par dfaut proba =F : laire est
gale au nombre dobservations.

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.00 0.02 0.04 0.06


0

0.2

NON - equidistant breaks

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

Outils graphiques en statistique

Outils graphiques en statistique

Remarque sur le choix de la plage des ordonnes (ylim)

Variables discrtes

Peter

John

Jack

Peter

Modification de laxe des ordonns pour amliorer la lisibilit du graphique :

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 N le nombre dappels tlphoniques reus par un central pendant un


mois.

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

Reprsentation de la distribution et comparaison avec la densit de la loi de


Poisson de paramtre la moyenne empirique de lchantillon (points en rouge).

Peter

Logiciel R

26 septembre 2012

105 / 147

Anne PHILIPPE

(U. Nantes)

Outils graphiques en statistique

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

b o x p l o t (N, N2 , c o l=c ( " g r e e n " , " o r a n g e " ) )


t=t a b l e ( N2 )
x t = as . i n t e g e r ( names ( t ) ) + . 3
p l o t ( t a b l e (N ) , c o l=" g r e e n " , lwd =2 , x l a b=" " , y l a b=" " )
l i n e s ( x t , t , c o l=" o r a n g e " , t y p e="h" , lwd =2)

Pour les variables alatoires continues, on compare les estimations de la densit :


histogrammes, estimateur noyau.

16

nd d appels par jour

16

q q p l o t (N, N2 )
abline (0 ,1)

0.00 0.02 0.04 0.06 0.08 0.10 0.12

frquence

0.00 0.02 0.04 0.06 0.08 0.10 0.12

2
10

10 12 14 16

GRAPHIQUE CORRIG

N2

5 10 15 20 25

15

frquence

0.00 0.02 0.04 0.06 0.08 0.10 0.12

GRAPHIQUE FAUX

comparaison des quantiles

nd d appels par jour

On compare le nombre dappels par mois de deux standards


2

Comparaison de 2 variables quantitatives indpendantes

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 ) ) )

Outils graphiques en statistique

La fonction barplot pour des variables quantitatives


>b a r p l o t ( t / l e n g t h (N) )

Logiciel R

(U. Nantes)

Anne PHILIPPE

nd d appels par jour

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

107 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

108 / 147

Outils graphiques en statistique

Outils graphiques en statistique

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

Donnes : pour 122 tudiants, on


dispose de la note obtenue cette anne
(A+ ....F) et celle de lanne prcdente

Autres graphiques pour rsumer la table de contingence

10

Lien entre des variables qualitatives dpendantes

A-

grade

B-

B+

B-

prev

prev

> b a r p l o t ( tab , x l a b=" g r a d e " , l e g e n d . t e x t=T , c o l=rainbow ( 1 0 ) , b e s i d e=T)


> b a r p l o t ( t ( t a b ) , x l a b=" p r e v " , c o l=rainbow ( 1 0 ) )
> b a r p l o t ( t ( t a b ) , x l a b=" p r e v " , l e g e n d . t e x t=T , c o l=rainbow ( 1 0 ) , b e s i d e=T)

109 / 147

Anne PHILIPPE

(U. Nantes)

Outils graphiques en statistique

Logiciel R

26 septembre 2012

110 / 147

Outils graphiques en statistique

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

La couleur des points est dfinie par la


variable gender
La taille des points est proportionnelle
lage des individus.

Le type de points est dfinie par la


variable gender
Le dgrad de couleurs est dfini partir
de la variable age.

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

Pour visualiser le lien entre les variables :


on utilise la fonction pairs sur les 3
premires colonnes. On peut ajouter en
option la couleur des points dfinies
partir de la variable gender

> 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

On reprsente la taille en fonction du poids.


60

Donnes : pour 150 enfants, on relve les informations suivantes : age / poids /
taille /sexe

50

Utilisation des couleurs, de la taille et du type de marques

height

Utilisations des couleurs

50

40

80

120

10

30

plot ( weight , height ,


c e x =ag e /max ( ag e ) 2 , c o l=as . i n t e g e r ( g e n d e r ) )
p l o t ( w e i g h t , h e i g h t , c o l = rainbow ( 1 5 0 ) [ ag e ] , pch=as . i n t e g e r ( g e n d e r ) )

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

le choix du noyau kern

1.0

0.0
1.0

hist(x, nclass=*** ,proba=T) ou hist(x,proba = T) par dfaut le


nombre de classes est optimis pour des chantillons gaussiens
Anne PHILIPPE

(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

On compare lhistogramme avec la


densit thorique de loi gaussienne
(courbe en rouge)

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

On trace lhistogramme pour


direntes valeurs du nombre de
classes.

0.6

0.4

1.0

0.4

0.8

-2

0.6

-4

Density

0.2

Estimation non paramtrique

n
1X 1
x Xk
fn (x) =
kern
n
bwn
bwn

0.3

Density

On simule un chantillon suivant la


loi gaussienne de taille 1000

0.0

114 / 147

Prcision sur la fonction density

0.1

0.2

0.4
0.3
0.2
0.1

-2

26 septembre 2012

Soit X1 , , Xn n variables alatoires i.i.d. suivant la loi de densit f .


La fonction density calcule lestimateur de f suivant

0.0

-4

Logiciel R

Infrence statistique

1000 Normal Random Variates

Density

Anne PHILIPPE

Estimation non paramtrique

histogramme : le choix du nombre de classes

Density

Infrence statistique
Estimation non paramtrique
Tests
Rgression

0.4

Anne PHILIPPE

0.0

Estimation non paramtrique

1.0

0.0

0.5

1.0

1.0

0.0

0.5

1.0

la dimension de la fentre bw. Par dfaut le paramtre est optimis pour un


chantillon gaussien
Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

116 / 147

Infrence statistique

Estimation non paramtrique

Infrence statistique

Estimation non paramtrique

Illustration sur un mlange gaussien

Fonction de rpartition empirique (ecdf)

On teste la fonction density sur des donnes simules 2 suivant un mlange de


lois gaussiennes :

La fonction de rpartition empirique est dfinie par

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

2. Simulation des donnes w=rbinom(50,1,1/4)


sample = w*rnorm(50,5) +(1-w) * rnorm(50,-5)
Anne PHILIPPE

(U. Nantes)

Logiciel R

Infrence statistique

! F (t)

p.s.

Cest un estimateur de la fonction de rpartition.

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)

Estimation non paramtrique

Logiciel R

Infrence statistique

0
sort(x)

26 septembre 2012

118 / 147

26 septembre 2012

120 / 147

Tests

Estimation de la moyenne : comportement asymptotique.


Soit X1 , . . . , Xn une suite de variables alatoires iid, si E |X1 | < 1 alors
Sn =

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 )

0.0 0.5 1.0 1.5

evolution de Sn en fonction de n : cas gausien

Infrence statistique
Estimation non paramtrique
Tests
Rgression

1000

2000

3000

4000

5000

Index

0 1 2 3 4
-2

yc

evolution de Sn en fonction de n : cas cauchy

# 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

Les fonctions pour les tests statistiques classiques :

#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

shapiro . test (x)


k s . t e s t ( x , " pnorm " )
ks . t e s t ( x , y )

#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

Exemple : Test de Student t.test()

X1 , . . . , Xn iid N (1, 1) et Y1 , . . . , Ym iid E(1)


Test H0 : E (X ) = E (Y ) vs H1 : E (X ) 6= E (Y )

t . t e s t ( x , mu=5 , a l t=" two . s i d e d " )


t . t e s t ( x , y , a l t=" l e s s " , c o n f =.95)

Anne PHILIPPE

26 septembre 2012

> x = rnorm ( 1 0 0 , 1 , 1 )
> y = rexp (200 ,1)
> t . test (x , y)

Welch Two Sample t t e s t


data :
x and y
t =
0.2178 , d f = 1 7 8 . 4 4 6 , p v a l u e = 0 . 8 2 7 8
a l t e r n a t i v e h y p o t h e s i s : t r u e d i f f e r e n c e i n means i s n o t e q u a l t o 0
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
0.2648092 0 . 2 1 2 1 6 0 8
sample e s t i m a t e s : mean o f x : 0 . 9 5 4 4 1 2 7 mean o f y : 0 . 9 8 0 7 3 6 9

121 / 147

(U. Nantes)

Logiciel R

Infrence statistique

26 septembre 2012

122 / 147

Tests

Validit de lalgorithme

On construit un gnrateur de nombres alatoires suivant la loi normale en


utilisant le Thorme Central Limite appliqu des variables alatoires iid suivant
la loi uniforme sur (0, 1).
Mthode de simulation non exacte ....
U = 1, . . . , Un iid suivant la loi uniforme
r
n
1
( Un
) ) X N(0, 1)
12
2

n
X
n = 1
U
Ui
n

On teste la normalit laide de deux procdures de test, le test de


Kolmogorov et celui de Shapiro.

On compare la fonction de rpartition empirique et la fonction de rpartition


thorique.

On compare lestimation de la densit par un histogramme et la densit


thorique.

t e s t 1=k s . t e s t (X , " pnorm " , 0 , 1 ) $p . v a l u e


t e s t 2 = s h a p i r o . t e s t (X) $p . v a l u e

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

Pour direntes valeurs de n = 1, 5, 10

X = simU ( 1 0 0 0 , n )

i=1

La gnrateur scrit

(U. Nantes)

Anne PHILIPPE

Tests

Test dajustement

Anne PHILIPPE

Tests

p l o t ( s o r t (X ) , ( 1 : s i z e ) / s i z e , t y p e=" s " , c o l=" o r a n g e " )


l i n e s ( seq ( 3 , 3 , . 1 ) , pnorm ( seq ( 3 , 3 , . 1 ) ) , c o l=" r e d " )
t i t l e ( p a s t e ( "n=" , n , " e t p v a l u e ( k s )=" , f l o o r ( c ( t e s t 1 ) 1 0 0 ) / 1 0 0 ) )
h i s t (X , c o l=" o r a n g e " , x l i m=c ( 3 , 3 ) , p r o b a=T , main=" " )
l i n e s ( seq ( 3 , 3 , . 1 ) , dnorm ( seq ( 3 , 3 , . 1 ) ) , c o l=" r e d " )
t i t l e ( p a s t e ( " p v a l u e ( s h a p i r o )=" , f l o o r ( c ( t e s t 2 ) 1 0 0 ) / 1 0 0 ) )
26 septembre 2012

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

0.5 1.0 1.5

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

Le modle le plus simple

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

Rgression non paramtrique


>data ( c a r s )
>a t t a c h ( c a r s )
>p l o t ( s p e e d , d i s t )
> l i n e s ( ksmooth ( s p e e d , d i s t , " n o r m a l " , b a n d w i d t h =2) , c o l =2)
> l i n e s ( ksmooth ( s p e e d , d i s t , " n o r m a l " , b a n d w i d t h =5) , c o l =3)
> l i n e s ( ksmooth ( s p e e d , d i s t , " n o r m a l " , b a n d w i d t h =10) , c o l =4)

Rgression multiple lm(v v1 + v2 + v3)


etc

dist

Mthodes non paramtriques

0 20 40 60 80 100 120

Rgression linaire gnralise glm

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

>
>

Lobjet srie chronologique est une liste qui contient

1973
1974
1975
1976
1977
1978

les valeurs observes,


la frquence des observations,
la date de la premire observation

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

7000 8000 9000 10000 11000

> p l o t ( USAccDeaths )

la date de la dernire, etc...

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

> b r u i t . b l a n c=t s ( rnorm ( 1 0 0 ) , f r e q u e n c y = 1 ,


>p l o t ( b r u i t . b l a n c )
>a c f ( b r u i t . b l a n c , t y p e=" c o r r e l a t i o n " )
#ou t y p e =" c o v a r i a n c e " ou t y p e =" p a r t i a l "

Filtre

Premier exemple de filtre : (I

1.0
0.8

La fonction filter permet d appliquer des filtres linaires :

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

Ces fonctions permettent en particulier de crer un gnrateur de processus


ARMA.

0.0

-1

-0.2
60

80

100

Time

Anne PHILIPPE

(U. Nantes)

Lp )d , on utilise la fonction diff

> 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

Pour crer une srie chronologique, on utilise la fonction ts

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

tude prliminaire de la srie USAccDeaths


{

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

0.4 0.0 0.4

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 )

Ap (L)X [t] = e[t]

Series USAccDeaths

0.4

ACF

0.2 0.6 1.0

Series USAccDeaths

La fonction ar permet destimer les paramtres dun modle AR

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

Autour des modles ARMA

>a r ( l h , a i c = FALSE , o r d e r . max = 4 ) # on f i x e p=4


Call :
a r ( x = l h , a i c = FALSE , o r d e r . max = 4 )
Coefficients :
1
2
3
4
0.6767
0.0571
0.2941
0.1028
O r d e r s e l e c t e d 4 s i g m a ^2 e s t i m a t e d as 0 . 1 9 8 3

ARMAacf pour le calcul des covariances thorique dun modle ARMA


ARMAtoMA pour le dveloppement en MA infinie dun modle ARMA
arima.sim pour simuler des trajectoires dun modle ARMA ou ARIMA

ATTENTION x doit tre une srie chronologique (x=ts(x))

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

Modle ARMA : Estimation

modlisation et prvision SARIMA


Plus gnralement, la fonction arima permet destimer les paramtres dun
modle SARIMA

La fonction ar permet destimer les paramtres dun processus AR.


Pour les modles ARMA dordre (p,q)
X [t] = a[1]X [t

1] + ... + a[p]X [t

p] + e[t] + b[1]e[t

1] + ... + b[q]e[t

q]

on utilise la fonction arima, la syntaxe est


out=arima(x,order=c(p,0,q))
la sortie out est une liste contenant :
out$coef : estimation des coecients,
out$resid : estimation des rsidus e[t]
ATTENTION x doit tre une srie chronologique (x=ts(x))

Anne PHILIPPE

(U. Nantes)

Logiciel R

Ap (L)P (Ls )Y [t] =

s
Q (L )Bq (L)e[t]

avec Y [t] = (I

L)d (I

Ls )D X [t]

la syntaxe est la suivante :


o u t=a r i m a ( x , o r d e r=c ( p , d , q ) ,
s e a s o n a l= l i s t ( o r d e r=c (P , D,Q) , p e r i o d=s ) )

la sortie est une liste contenant :


out$coef : estimation des coecients,
out$aic : critre AIC,
out$resid : estimation des rsidus e[t]
option : include.mean=F ou T

26 septembre 2012

141 / 147

Anne PHILIPPE

(U. Nantes)

Sries Chronologiques

Logiciel R

26 septembre 2012

142 / 147

Sries Chronologiques

Exemple

Prvision pour des modles SARIMA


Pour prvoir lhorizon h, on utilise la fonction predict

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

f i t = a r i m a ( USAcc , o r d e r=c ( 0 , 1 , 1 ) , s e a s o n a l= l i s t ( o r d e r=c ( 0 , 1 , 1 ) ) )


Call :
a r i m a ( x = USAcc , o r d e r = c ( 0 , 1 , 1 ) ,
s e a s o n a l = l i s t ( order = c (0 ,1 , 1)))
Coefficients :
ma1
sma1
0.4343
0.4419
Approx s t a n d a r d e r r o r s :
ma1
sma1
0.1368
0.0122
s i g m a ^2 e s t i m a t e d 1 1 4 2 7 6 : l o g l i k e l i h o o d =
341.73 ,
a i c = 687.46

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

Plus gnralement : la fonction predict

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 "

le lissage simple si lon impose les


coecients.

350
340

des modles multiplicatifs

Observed / Fitted

cette fonction peut aussi tre utilise


pour

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

le lissage exponentiel, Holt Winter, ...

Modles BATS (Exponential smoothing state space model with Box-Cox


transformation, ARMA errors, Trend and Seasonal components)

modlisation automatique ARIMA.

modlisation automatique SARIMA .

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