Você está na página 1de 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

Objets et Oprations Vecteurs et matrices Dataframes Listes Les fonctions Les graphiques Structures de contrle et Itrations

5 6 7

Autour des lois de probabilits Outils graphiques en statistique Infrence statistique Estimation non paramtrique Tests Rgression Sries Chronologiques

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

1 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

2 / 147

Installation

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 Windows MacOS X Linux ... Outils disponibles : un langage de programmation orient objet des fonctions de "base" des librairies/packages complmentaires (1800 sur le site CRAN)

Site consacr aux graphiques addictedtor.free.fr/graphiques/ Collection spcique UseR chez Springer 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

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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

6 / 147

Utiliser laide

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 n des chiers daide.
> example (FUN)

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

Toutes les librairies ne sont pas charges au lancement du logiciel library() retourne la liste des librairies installes. 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.

Objets et Oprations Vecteurs et matrices Dataframes Listes

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

9 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

10 / 147

Objets et Oprations

Objets et Oprations

Oprations lmentaires
1

Objets
, +, /, Les objets de base sont vecteurs, matrices data.frames, listes Quelques fonctions gnriques : ls() retourne la liste des objets de la session. rm(a) supprime lobjet a

>2+4 6
2

Oprations lmentaires sur les scalaires : ,

Oprations avec aectation (avec ou sans achage)


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

# a v e c a f f i c h a g e du r s u l t a t

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

26 septembre 2012

12 / 147

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

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

26 septembre 2012

13 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

14 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

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 :
> x=c ( 1 , 4 , 9 ) > y=c ( x , 2 , 3 ) > y [1] 1 4 9 2 3 seq ( from , t o ) seq ( from , to , by= ) seq ( from , to , l e n g t h . o u t= ) 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

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 # 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 > c (4:1) # a>b r a i s o n 1 [1] 4 3 2 1

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
> rep ( 1 , 4 ) [1] 1 1 1 1

Anne PHILIPPE

(U. Nantes)

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


Attention : si la dimension du vecteur nest pas gale au produit (ncol nrow) alors lopration eectue est la suivante :
> 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

Les matrices sont cres avec la fonction matrix() partir dun vecteur. On doit xer 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
> 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

(U. Nantes)

Logiciel R

26 septembre 2012

17 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

18 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Quelques matrices particulires : diagonale, Toeplitz

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

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

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Extraire des lments dun vecteur ou dune matrice


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

Oprations sur les Matrices/Vecteurs


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 >

Extraire un lment
> vect [ 1 ] [ 1 ] 1.5 > mat [ 2 , 1 ] [ 1 ] 2.5

Colonne/ligne dune matrice


> mat [ , 1 ] [ 1 ] 1.5 2.5 3.5 > mat [ 3 , ] [ 1 ] 3.5 6.5 9.5 > x [1] 1 2 3 4 5 > y [1] 0 0 0 1 1 > xy [1] 0 0 0 4 5

Extraire un bloc ou plusieurs coordonnes


> mat [ 2 : 3 [ ,1] [1 ,] 2.5 [2 ,] 3.5 ,1:2] [ ,2] 5.5 6.5 > vect [ c (1 ,3 ,7)] [ 1 ] 1.5 3.5 7.5

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


> vect[ c (1 ,3 ,7)] retourne 2.5 4.5 5.5 6.5 8.5 9.5

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

21 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

22 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Attention 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 x y : 1 2 3 4 5 : 1 2 1 2 1

Quelques oprations particulires sur les matrices


> 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

x+y : 2 4 4 6 6

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

23 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

24 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Action dune fonction sur un vecteur ou une matrice


Soit FUN une fonction dnie sur les scalaires qui retourne un scalaire. Par exemple
sqrt abs sin cos tan exp log log10 gamma lgamma 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

Quelques fonctions sur les matrices


Le produit matriciel est obtenu avec % % Calcul des valeurs/vecteurs propres :eigen Calcul du dterminant : det 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 solve(A) retourne linverse de la matrice A solve(A,b) retourne x tel que Ax = b

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

26 septembre 2012

25 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

26 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Objets boolens et instructions logiques


Pour extraire les lments dun vecteur vect, on peut utiliser des instructions logiques. Les oprations logiques : < , > , <= , >= , != [diffrent], == [gal] retournent TRUE ou FALSE. La comparaison entre deux vecteurs est une comparaison terme terme. 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

Soit I un vecteur de boolens de mme longueur que vect : vect[I] retourne les coordonnes vect[j] telles que I [j] = TRUE . Applications 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)] extraire les composantes >8 et <10 vect[(vect>8) & (vect<10)]

TRUE FALSE FALSE FALSE

Il est possible de dnir plusieurs conditions remplir avec les oprateurs 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

Eet de la prcision sur la comparaison de rels

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
> ( s q r t ( 2 ) ^ 2 == 2 ) [ 1 ] FALSE

2 = 2?

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

> 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

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

26 septembre 2012

29 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

30 / 147

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Dataframes

Ces fonctions retournent un scalaire : P Q sum() (somme i xi ), prod() (produit i xi ), mean() (moyenne ) max(), min() length() (longueur du vecteur),

1 n

Pn

i=1 xi 1

dim(), ncol(), nrow() (dimension de la matrice/nombre de lignes / nombre de colonnes.) Ces fonctions retournent un vecteur : cumsum() (sommes cumules (x1 , x1 + x2 , . . . , (produits cumuls), sort (tri), order, unique remarque : sort(x) = x[order(x)] fft() (transform de Fourier) Pn
i=1 xi ),

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

26 septembre 2012

32 / 147

Objets et Oprations

Dataframes

Objets et Oprations

Dataframes

Dnition des data.frames


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

Oprations sur les dataframes


1 2 3 4

Pour visualiser les premires lignes head() Pour denir ou visualiser le nom des lignes row.names Pour denir ou visualiser le nom des colonnes names La dimension de lobjet est donne par dim

Par dfaut les lignes sont numrotes 1,2 etc.

> 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
26 septembre 2012 33 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 34 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

Objets et Oprations

Dataframes

Objets et Oprations

Dataframes

Oprations sur les dataframes


Les oprations entre des dataframes sont oprations terme terme comme pour les matrices.
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 ) ) > A x 1 1 2 2 3 3 > A+C x y 1 2 NA 2 4 NA 3 6 NA > B xx yy 1 1 1 2 1 2 3 1 3 > A+B x y 1 2 3 2 3 5 3 4 7 > C x 1 1 2 2 3 3

Oprations sur les dataframes

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

y 2 3 4

y a a a

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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

35 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

36 / 147

Objets et Oprations

Listes

Objets et Oprations

Listes

Dnition 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 26 septembre 2012 37 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 38 / 147

Objets et Oprations

Listes

Objets et Oprations

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

26 septembre 2012

40 / 147

Objets et Oprations

Listes

Objets et Oprations

Listes

Importer/exporter des donnes

Importer/exporter des objets R


1

Sauvegarder des objets R dans un chier


> 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 chier, 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 chier contient le nom des colonnes du tableau. Exporter : write, write.table

Lire un chier qui contient des objets R


> load ( " sav . rda " ) > x [1] 1 2 3 4 5 6 7 8 9 10

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 chier sav.rda saveRDS peut aussi tre utiliser si on sauvegarde une unique liste. Le chier est lu avec readRDS. On peut changer le nom de la liste la lecture du chier
> b = readRDS ( s a v . r d s ) > b $x [1] 1 $y [1] 3
Logiciel R 26 septembre 2012 42 / 147

> 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

Anne PHILIPPE

(U. Nantes)

Les fonctions

Les fonctions

Structure gnrale pour crer des fonctions

Les fonctions

La structure gnrale dune fonction est


>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 } dnissent le dbut et la n de la fonction. Excuter la fonction : FUN(...)

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

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

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

La sortie de la fonction est


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

Excution de la fonction :
PF ( 4 , 1 / 2 ) $echantillon [1] 0 0 1 0 $frequence [ 1 ] 0.25 l= PF ( 4 , 1 / 2 ) l$echantillon [1] 0 0 1 1 l$f [ 1 ] 0.5

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

45 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

46 / 147

Les fonctions

Les fonctions

Paramtres par dfaut


On peut aecter des valeurs par dfaut aux paramtres dentre dune fonction. Modication de la fonction PF 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 ) }

Paramtres dentre

Il y a trois faons de spcier les paramtres dentre dune fonction 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 spcis. 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. 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. Tableaux croiss
n e s t manquant

Modication de la fonction PF : 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

La fonction outer retourne une matrice de la forme M(i, j) = fun(xi , yj )


x =1:5 y =1:5 M uter ( x , y , fun ) =o

IL est donc prfrable de placer les paramtres sans valeur par dfaut en premier dans la dclaration des variables dentre.

fun peut aussi tre une opration lmentaire +/-*


Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 49 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 50 / 147

Les fonctions

Les fonctions

la fonction Vectorize
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 .
# 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 .

Illustration sur des fonctions de 2 variables


> 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

Autres programmations possibles


1

avec une boucle for


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

t a i l l e d un o b j e t p l u

avec la fonction sapply


> y = sapply (x , f )

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

51 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

52 / 147

Les fonctions

Les graphiques

suite

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

Les graphiques

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

53 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

54 / 147

Les graphiques

Les graphiques

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


plot est la fonction centrale Le fonctions points ou lines sont utilises pour superposer des courbes ou des nuages de points. Premier exemple : reprsenter des vecteurs plot(y) / plot(x,y)
x= seq ( 4 ,4 ,.1) y=l o g ( x^2+1/ x ^2)
plot(y)

Quelques arguments de la fonction plot


type=p
4 x 0 2

10

15 Index

20

25

30

pour xer les limites des axes


ylim=c(ay,by) et xlim=c(ax,bx) par dfaut les bornes sont optimises sur la premire courbe trace
x 0 2 4

type=l

10

15 Index

20

25

30

1 2 3 4

20

40 Index

60

80

pch : type de points lty : type de lignes. col : couleur

type="p" (points) ou "l" (ligne) : pour tracer une ligne ou un nuage de points.

type=s

10

15 Index

20

25

30

plot(x,y,pch=3)

type=h
4 x 0 2

1 2 3 4

0
-4 -2 0 x 2 4

10

15 Index

20

25

30

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 dune fonction de R2 ! R 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 " )

Reprsentation graphique dune matrice


contour(x, y, matrice.... ) image( ) persp( )
Maunga Whau Volcano

100

200

300

400

500

600

100

200

300

400 x

500

600

700

800

z
z
y
x

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

57 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

58 / 147

Les graphiques

Les graphiques

Superposition de courbes
superposer des courbes
commentaire
5

lgende legend
legend ( 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 ( 1, 3 , 4))

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

1.5

x^2-1 sin cos

les emplacements prdnis :


1.0

1.0

top topleft, inset = .05 (x,y) (x,y)

topright, inset = .02 (x,y)

x^2 - 1

0.5

0.5

0.0

left (x,y)

center (x,y)

right (x,y)

0.0

-0.5

-0.5

bottomleft
-1.0

bottom (x,y) 0.2 0.4 x 0.6 0.8

bottomright (x,y) 1.0

-1

0 x

(x,y) 0.0

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

59 / 147

-3 -2 -1 Anne PHILIPPE (U. Nantes)

-1.0

0 x

2 Logiciel R

3
26 septembre 2012 60 / 147

Les graphiques

Les graphiques

Autour de la fonction plot

Illustrations
1.0

sur une fonction (par ex sin)


sin (x)

Frequency

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)

Density

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 "

15

10

-1

1 r

0.0

0.1

0.2

0.3

" plot " plot " plot " plot " plot " plot " plot " plot

. default " . factor" . function " . lm " . mts " . POSIXct " . table " . window "

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)

-1.0

-0.5

-3

-2

-1

0 x

100

sur un tableau

0.0

200

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

0.5

p l o t ( s i n , x l i m=c( p i , p i ) )

300

2 x

4 20

1
20

Histogram of r
0.4

density.default(x = r)

sur un histogramme ou une densit

-2

-1

N = 100 Bandwidth = 0.3564

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

61 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

62 / 147

Les graphiques

Les graphiques

Reprsentation graphique dune matrice ou dataframe


Les outils graphiques matplot et pairs sont adapts aux matrices dont les colonnes correspondent des variables. Exemple
>data ( i r i s ) >i r i s 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 5.5 6.5 6.3 6.5 2.3 2.8 2.5 3.0 4.0 4.6 5.0 5.2 Species setosa setosa setosa

Fonction matplot(matrice ...)


Cette fonction reprsente sur un mme graphique les colonnes dune matrice ou dune data.frame. Andersons Iris Data 3 species

1 2 3 4 ... 54 55 ... 147 148

iris
1.3 v e r s i c o l o r 1.5 v e r s i c o l o r 1.9 2.0 virginica virginica

0
0

50

100

150

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

63 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

64 / 147

Les graphiques

Les graphiques

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


Cette fonction reprsente tous les nuages de points possibles entre les direntes colonnes.
Anderson's Iris Data -- 3 species
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5

Construction dun polygone


1

On commence par xer les axes des abscisses et des ordonns laide dun graphique vide.
p l o t ( c ( 1 , 9 ) , c ( 0 , 2 ) , t y p e="n" )

4.5 5.5 6.5 7.5

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


polygon ( c ( 4 . 5 , 5 . 5 , 5 . 5 , 4 . 5 ) ,c (0 ,0 ,1 ,1))

Sepal.Length

2.0 2.5 3.0 3.5 4.0

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

Sepal.Width

Petal.Length

1 2 3 4 5 6 7

etape 1

etape 2

etape 3

2.0

2.0

1.5

1.5

0.5 1.0 1.5 2.0 2.5

c(0, 2)

c(0, 2)

c(0, 2)
2 4 c(1, 9) 6 8

1.0

1.0

0.5

0.5

0.0

0.0

4.5

5.5

6.5

7.5

4 c(1, 9)

0.0

0.5

Petal.Width

1.0

1.5

2.0

4 c(1, 9)

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

65 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

66 / 147

Les graphiques

Les graphiques

autre exemple
Distance Between Brownian Motions

Pour sauvegarder un graphique :


utilisation de la fonction dev.print.
pour obtenir un chier postscript : dev.print(postscript, file="essai.ps") pour obtenir un chier pdf : dev.print(pdf, file="essai.pdf")

-5 0 5 10 15 20

Distance

20

40 Time

60

80

100

utilisation des menus (sous widows ou mac seulement)

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

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)
screen(i), screen(i,FALSE) pour slectionner la sous fentre erase.screen() close.screen(all = TRUE)

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

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

Structures de contrle et Itrations

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

(U. Nantes)

Logiciel R

26 septembre 2012

70 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

Opration non vectorielle


1

Itrations
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 }
1 2

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"

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.
> i f e l s e ( x <2 , "A" , "B" ) [ 1 ] "A" "B" "B" "B" "B" "B" "B"

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

Dans une boucle for, le nombre ditrations est x. La dure dexecution des boucles while/repeat peut tre innie !

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

72 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

Exemple
Les 3 programmations suivantes retournent le mme rsultat.
1

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


for ( i in 1:10) { commandes }
3

Avec linstruction repeat


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 }

Une autre faon de remplir Y par concatnation :


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

Une autre programmation :


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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

73 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

74 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

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.

Exemple
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

En utilisant while
x=rbinom ( 1 , 1 , . 5 ) N=1 w h i l e ( x != 1 ) { x=rbinom ( 1 , 1 , . 5 ) N=N+1 }

En utilisant repeat
N=0 repeat { x=rbinom ( 1 , 1 , . 5 ) N=N+1 i f ( x==1) b r e a k }

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


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) temp = c ( temp , mean ( nottem [ , i ] ) )

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

75 / 147

Anne PHILIPPE

(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) La fonction apply() permet dappliquer la mme fonction FUN sur toutes les lignes (MARGIN=1) ou les colonnes (MARGIN=2) dune matrice MAT Chaque ligne ( (MARGIN=1) ou les colonnes (MARGIN=2) ) est aecte au premier paramtre de la fonction FUN La syntaxe de FUN est FUN( x, ARG.COMMUN) o
x est un vecteur ARG.COMMUN reprsente ventuellement des paramtres supplmentaires qui sont communs toutes les excutions.

Retour lexemple des tempratures Calcul du prol annuel :


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

Calcul des moyennes annuelles


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

Logiciel R

26 septembre 2012

78 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

Supprimer une boucle en utilisant apply


Objectif : Estimer la distribution de la mdiane empirique On simule N chantillons de taille n iid suivant la loi gaussienne standard. Pour chaque chantillon, on calcule et on stocke la valeur de la mdiane empirique dans le vecteur med.
1

replicate
La fonction replicate value n fois une mme expression [utile lexpression implique des nombres alatoires ! !]. La syntaxe : replicate(n, expression) Exemples
> 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

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

Sans boucle
3

Histogram of med

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 )

0.5073058

0.5073058

0.5073058 0.19182371

Density

> r e p l i c a t e ( 5 , mean ( rnorm ( 1 0 ) ) ) [1] 0.22137912 0.09330663 0.12511439


0.2 0.0 med 0.2 0.4

0.02613061

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 : lapply(X,FUN, ARG.COMMUN) La fonction lapply applique une fonction FUN tous les lments du vecteur ou de la liste X. Les valeurs de X sont aectes au premier argument de la fonction FUN. Si la fonction FUN a plusieurs paramtres dentre, ils sont spcis 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.

La fonction replicate permet de programmer sans boucle le code suivant


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 syntaxe est la suivante


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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

81 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

82 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

Exemple dutilisation de lapply


cars est une liste constitue de deux vecteurs speed et dist On calcule la moyenne et les quantiles des deux composantes de la liste.
> 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 >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

Supprimer une boucle laide de la fonction sapply


Il est trs souvent possible de supprimer les boucles for en utilisant lapply ou sapply. 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.
1

avec une boucle


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

sans boucle
FUN . max = f u n c t i o n ( n , y ) max ( y [ 1 : n ] ) M = s a p p l y ( 1 : t , FUN . max , y = x )

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

83 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

84 / 147

Structures de contrle et Itrations

Structures de contrle et Itrations

La fonction tapply
Le type factor est un objet vectoriel qui permet de spcier une classication discrte (nombre ni de groupes). La fonction tapply applique une fonction FUN sur les sous groupes dun vecteur X dnis 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

Evaluer le temps de calcul

proc.time value combien de temps rel et CPU (en secondes) le processus en cours dexcution a dj pris.
> 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 dnition 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

Structures de contrle et Itrations

Autour des lois de probabilits

Comparaison de trois programmations for/replicate/apply


( 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

Autour des lois de probabilits

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

Logiciel R

26 septembre 2012

87 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

88 / 147

Autour des lois de probabilits

Autour des lois de probabilits

Gnralits
Soit X une variable alatoire de loi PX (P PX (A) = P(X 2 A) =

Quelques lois disponibles

Pour les lois classiques, des fonctions existent pour calculer (


la densit

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

loi discrte loi continue

Lois discrtes
Loi Loi Loi Loi Loi binomiale (n,p) hypergomtrique (N,n,k) de Poisson (a) gomtrique (p) support ni {(ai , pi ), i = 1...m} Gaussienne (m, 2 ) uniforme sur [a, b] de Student degrs de libert du 2 degrs de libert binom hyper pois geom sample norm unif t chisq

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

Lois continues
Loi Loi Loi Loi

simuler des nombres alatoires suivant la mme loi que X .

1. Si F est une bijection alors F


Anne PHILIPPE (U. Nantes)

=F

1
Logiciel R 26 septembre 2012 89 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 90 / 147

Autour des lois de probabilits

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 Si www reprsente le nom dune des lois alors dwww(x,...) calcule la densit de la loi www au point x pwww(x,... ) : calcule la fonction de rpartition au point x qwww(,... ) : calcule le quantile dordre
dnorm(x)

qnorm(,0,1) : quantile dordre rnorm(n,0,1) : chantillon de taille n


Gaussian N(0,1) distribution density cdf

0.4

p l o t ( x , dnorm ( x , 0 , 1 ) , t y p e=" l " ) p l o t ( x , pnorm ( x , 0 , 1 ) p l o t ( u , qnorm ( u , 0 , 1 ) p l o t ( rnorm ( 1 0 , 0 , 1 ) ) , t y p e=" l " ) , t y p e=" l " )
qnorm(u)

0.0

les . . . reprsentent les paramtres spciques chaque loi.

0.1

-4

-2

0 x

pnorm(x)

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

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

0.0 0.2 0.4 0.6 0.8 1.0

0.2

0.3

-4

-2

0 x

quantile function

random values

-4

0.0

0.2

0.4 u

0.6

0.8

1.0

0.0 0.5 1.0 1.5 2.0

-2

rnorm(10)

6 Index

10

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

91 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

92 / 147

Autour des lois de probabilits

Autour des lois de probabilits

Simulation dune loi discrte nie


Soit Z une variable alatoire valeurs dans {x1 , ....., xk } telle que p(Z = xi ) = probi pour tout i = 1...k La fonction sample est un gnrateur de nombres alatoires pour les lois discrte support ni. La syntaxe est sample(x, n, replace= TRUE, prob) o
x contient les valeurs prises par Z prob contient les valeurs des probabilits. lorsque loption prob nest pas spci, 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

Simuler le rsultat dun d 6 faces


On simule suivant la loi uniforme sur lensemble {1, ..., 6}. On simulen = 100 ralisations de faon indpendante
# 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 ) )
1OO lancers

6 5 4 2
table(DE)

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

0
1

10

15

20

3 DE

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

93 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

94 / 147

Autour des lois de probabilits

Autour des lois de probabilits

Construire une fonction cdlg constante par morceaux


La fonction stepfun retourne un objet de type function qui dni une fonction constante par morceaux et continue droite. La syntaxe est F=stepfun(x, z) o le vecteur x contient les points de discontinuit de la fonction, 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. Pour reprsenter graphique la fonction F on utilise plot ou lines (pour superposer) : avec largument vertical=FALSE
> plot (F , v e r t i c a l =FALSE ) ou l i n e s ( F , v e r t i c a l =FALSE )

Exemple : loi binomiale


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

0.0 0.2 0.4 0.6 0.8 1.0

f(x)

Application : les fonctions de rpartition des lois discrtes

4 x

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 0
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 97 / 147 Anne PHILIPPE 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 Logiciel R 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 26 septembre 2012 98 / 147

Outils graphiques en statistique

5000
(U. Nantes)

10000

15000

Outils graphiques en statistique

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 >b o x p l o t ( x )
boxplot data : sqrt(islands)

Questions :

100

120

Comment reprsenter graphiquement lchantillon dune variable continue discrte qualitative ? Comment reprsenter un tableau de donnes numriques ?

Construction du boxplot :
Les points reprsentent les valeurs aberrantes. Elles sont dnies comme les observations en dehors de lintervalle I = [Q1 1.5(Q3 Q1 ), Q3 + 1.5(Q3 Q1 )].

Anne PHILIPPE

(U. Nantes)

Logiciel R

20

40

60

80

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 distribution dune variable continue

Estimation de la densit pour des lois continues


On compare sur des donnes simules suivant la loi gaussienne deux estimateurs de la densit (hist / density) avec la densit thorique de la loi
Histogram of dat
0.4

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 ) )
equidistant breaks NON - equidistant breaks

Density

Density

0.10

19

0.05

11 5 32

-3
1 0 0 2 60 3 80 100 2 140

-2

-1

0 dat

20

40

60

80

100

140

20

40

sqrt(islands)

sqrt(islands)

density.default(x = dat)
0.4

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)

Density

0.15

0.00 0.02 0.04 0.06

WRONG histogram

Density

Frequency

Largument breaks xe le nombre ou les bornes des classes. On peut aussi utiliser nclass pour xer le nombre de classes.
5 10 0
0 20 40 60 80 100 140 sqrt(islands)

0.2

les options
15

0.00

0.0

0.2

Remarque sur la fonction hist


-4 -2 0 2 4

N = 1000 Bandwidth = 0.2179

proba =T : laire en dessous de la courbe est gale 1. Par dfaut proba =F : laire est gale au nombre dobservations.

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

101 / 147

0.0

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

102 / 147

Outils graphiques en statistique

Outils graphiques en statistique

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

Reprsentation graphique dune variable quantitative


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)
0 4 8

Pour rsumer linformation : on calcule la rpartition (ou la frquence) des modalits dans lchantillon.
> 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 cloudy 9
partly.cloudy

clear

clear

partly.cloudy

cloudy

modalits ordonns par effectif croissant


0 4 8
cloudy

cloudy
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 103 / 147 Anne PHILIPPE (U. Nantes) Logiciel R

clear

partly.cloudy
104 / 147

26 septembre 2012

Outils graphiques en statistique

Outils graphiques en statistique

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


On relve le salaire de 3 personnes
> sales John J a c k P e t e r 45 44 46 Reprsentation graphique pie ( sales ) barplot ( s a l e s )
Jack 20 John 40

Variables discrtes
On relve N le nombre dappels tlphoniques reus par un central pendant un mois.
> 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 >

30

nb d'appels

John

Jack

Peter

Peter

10

10

15

jours

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


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

table(N)/length(N)

44

43

John

Jack

Peter

0.00
2

0.04

0.08

b a r p l o t ( s a l e s , y l i m=c ( 4 0 , 4 7 ) , xpd=F )

45

46

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


26 septembre 2012 105 / 147 Anne PHILIPPE (U. Nantes)

9 N

11

13

15

17

Anne PHILIPPE

(U. Nantes)

Logiciel R

Logiciel R

26 septembre 2012

106 / 147

Outils graphiques en statistique

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) )
0.00 0.02 0.04 0.06 0.08 0.10 0.12 frquence

Comparaison de 2 variables quantitatives indpendantes


On compare le nombre dappels par mois de deux standards
comparaison des quantiles

5 10 15 20 25

10

12

14

16

nd d appels par jour

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

N2
2 5 8 12 17

10

10 12 14 16

15

10 N

15

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


GRAPHIQUE CORRIG

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

0.00 0.02 0.04 0.06 0.08 0.10 0.12

frquence

frquence

2 2 4 6 8 10 12 14 16

10

12

14

16

nd d appels par jour

Pour les variables alatoires continues, on compare les estimations de la densit : histogrammes, estimateur noyau.
107 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 108 / 147

nd d appels par jour

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

Outils graphiques en statistique

Outils graphiques en statistique

Lien entre des variables qualitatives dpendantes


Donnes : pour 122 tudiants, on dispose de la note obtenue cette anne (A+ ....F) et celle de lanne prcdente
1 2 3 4 5 6 7 8 prev grade B+ B+ AAB+ AF F F F A B A A C D

Autres graphiques pour rsumer la table de contingence

14

table(grades)
A AB+ B B- C+ C D F

A AB+ B BC+ C D F

20

14

A AB+ B BC+ C D F

12

10

15

10

prev

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

4 0 1 4 2 0 1 1 1

B-

0 0 2 3 0 0 1 0 1

C+ 0 0 0 1 0 0 3 0 1

3 0 0 3 1 1 5 4 3

2 0 1 0 0 0 9 3 4

0 0 1 2 0 0 7 1 11

grade

B+

Bgrade

A-

Bprev

10

12

B+

Bprev

C C+ B B-

B+ A-

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

Anne PHILIPPE

F D

(U. Nantes)

Logiciel R

26 septembre 2012

109 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

110 / 147

Outils graphiques en statistique

Outils graphiques en statistique

Utilisations des couleurs


Donnes : pour 150 enfants, on relve les informations suivantes : age / poids / taille /sexe
> 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
20 60 100 140

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


On reprsente la taille en fonction du poids.
60 60 50

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 dnies partir de la variable gender
20 60 100 140

50

150

height

height

40

30

20

20

30

40

10

20

40

60

80 weight

100

120

140

10

0 20 40 60 80 weight 100 120 140

80 120

age

age

40

40

80 120

weight

weight

height
30 10

height
10 30

La couleur des points est dnie par la variable gender La taille des points est proportionnelle lage des individus.

Le type de points est dnie par la variable gender Le dgrad de couleurs est dni partir de la variable age.

60 100 140

20

50

20

60 100 140

50

40

80

120

10

30

50

40

80

120

10

30

50

p a i r s (X [ , 1 : 3 ] )
Anne PHILIPPE (U. Nantes)

p a i r s (X [ , 1 : 3 ] , c o l=X [ , 4 ] )
Logiciel R 26 septembre 2012 111 / 147

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


Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 112 / 147

Infrence statistique

Infrence statistique

Estimation non paramtrique

Infrence statistique Estimation non paramtrique Tests Rgression

Infrence statistique Estimation non paramtrique Tests Rgression

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

113 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

114 / 147

Infrence statistique

Estimation non paramtrique

Infrence statistique

Estimation non paramtrique

histogramme : le choix du nombre de classes


1000 Normal Random Variates

Prcision sur la fonction density


Soit X1 , , Xn n variables alatoires i.i.d. suivant la loi de densit f . La fonction density calcule lestimateur de f suivant

0.4

0.4

0.2

0.1

0.1

0.2

0.0

0.0

On simule un chantillon suivant la loi gaussienne de taille 1000 On trace lhistogramme pour direntes valeurs du nombre de classes. On compare lhistogramme avec la densit thorique de loi gaussienne (courbe en rouge)

-4

-2

0 x

-4

-2

0 x

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


k=1

0.3

Density

Density

0.3

le choix du noyau kern


gaussian epanechnikov rectangular

1.0

1.0

0.8

0.8

0.4

0.4

Density

Density

0.4

0.4

Density
1.0 0.0 0.5 1.0

0.6

0.6

0.3

0.3

0.2

0.2

Density

Density

0.0

0.0

0.2

0.2

1.0

0.0

0.5

1.0

0.0
1.0

0.2

0.4

0.6

0.8

1.0

0.0

0.5

1.0

0.1

0.1

triangular

biweight

cosine

1.0

1.0

0.0

0.0

0.8

0.8

0.6

0.6

Density

Density

-4

-2

0 x

-4

-2

0 x

0.4

0.4

Density
1.0 0.0 0.5 1.0

0.2

0.2

0.0

0.0

1.0

0.0

0.5

1.0

0.0
1.0

0.2

0.4

0.6

0.8

1.0

0.0

0.5

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

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


On teste la fonction density sur des donnes simules 2 suivant un mlange de lois gaussiennes : 1 1 f (x) = p e 4 2
same bandwidth, 6 different kernels
0.4

Fonction de rpartition empirique (ecdf)


La fonction de rpartition empirique est dnie par
n 1X Fn (t) = 1] n i=1 1t] (Xi ) n!1 p.s.

1 2 (x

5)2

3 1 + p e 4 2

2 1 2 (x+5)

! F (t)

Cest un estimateur de la fonction de rpartition.


bandwidths = 1

bandwidths = 0.1

0.10

Density

0.3

Density

0.2

0.08

0.05

0.10

0.06

5 N = 50

0.00

0.0

10

5 N = 50

10

c(0:(n 1))/n

0.04

bandwidths = 2

bandwidths = 3

0.08

0.02

Density

0.08

Density

0.04

0.02

0.04

0.00

10

5 N = 50

10

10

5 N = 50

10

0.00

15

5 N = 50

10

15

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 26 septembre 2012 117 / 147 Anne PHILIPPE (U. Nantes) Logiciel R

0.0

Bandwidth = 2.096

Bandwidth = 2

Bandwidth = 3

0.2

0.00

0.4

0.06

0.6

Bandwidth = 0.1

Bandwidth = 1

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

Density

0.8

0.1

1.0

0.15

0 sort(x)

3
118 / 147

26 septembre 2012

Infrence statistique

Estimation non paramtrique

Infrence statistique

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
evolution de Sn en fonction de n : cas gausien
0.0 0.5 1.0 1.5

Infrence statistique Estimation non paramtrique Tests Rgression

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 )


y

1000

2000 Index

3000

4000

5000

evolution de Sn en fonction de n : cas cauchy

-2
0

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

0 1 2 3 4

yc

1000

2000 Index

3000

4000

5000

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

119 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

120 / 147

Infrence statistique

Tests

Infrence statistique

Tests

Les fonctions pour les tests statistiques classiques :

Exemple : Test de Student t.test()

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) 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 ) shapiro . test (x) k s . t e s t ( x , " pnorm " ) ks . t e s t ( x , y )

#s t u d e n t

# 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

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

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 )

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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

121 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

122 / 147

Infrence statistique

Tests

Infrence statistique

Tests

Test dajustement
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 La gnrateur scrit
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 ) }

Validit de lalgorithme
Pour direntes valeurs de n = 1, 5, 10
1

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.

n 1X Un = Ui n i=1

X = simU ( 1 0 0 0 , n ) 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 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 ) )

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

123 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

124 / 147

Infrence statistique

Tests

Infrence statistique

Rgression

Les rsultats
n= 1 et pvalue(ks)= 0
(1:size)/size (1:size)/size 0.8 0.8

n= 5 et pvalue(ks)= 0.01
(1:size)/size 0.8

n= 10 et pvalue(ks)= 0.81
7

1.5

0.5 sort(X)

0.5 1.0 1.5

2 1

0 sort(X)

3 2 1 0 sort(X)

Infrence statistique Estimation non paramtrique Tests Rgression

0.0

0.0

pvalue(shapiro)= 0
Density Density 0.4

pvalue(shapiro)= 0.03
Density 0.3

0.0

pvalue(shapiro)= 0.18

0.00

0.0

3 2 1 0
Anne PHILIPPE

3 2 1 0
Logiciel R

0.0

3 2 1 0 X

3
125 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 126 / 147

(U. Nantes)

26 septembre 2012

Infrence statistique

Rgression

Infrence statistique

Rgression

Rgression linaire
Le modle le plus simple y = ax + b +

Visualisation : plot.lm
Residuals vs Leverage Residuals vs Fitted

0.5

40

23

49

23

49

Standardized residuals

35

Pour raliser une rgression linaire, par la mthode des moindres carrs, on utilise la fonction lm . Sur les donnes cars
120

Residuals -1 0 -2
39

Cook's distance 0.00 0.02 0.04 0.06 0.08 0.10 0 20 40 Fitted values lm(cars$dist ~ cars$speed) 60 80

Leverage lm(cars$dist ~ cars$speed)

Standardized residuals

Standardized residuals

> 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 ) Coefficients : ( Intercept ) cars $speed 17.579 3.932 > 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 )
cars$dist

Normal Q-Q

-20

20

Scale-Location
23 49

1.5

23

49

35

100

35

80

60

-1

40

-2

-2

-1

0 Theoretical Quantiles lm(cars$dist ~ cars$speed)

0.0

0.5

1.0

20

40 Fitted values lm(cars$dist ~ cars$speed)

60

80

20

10

15 cars$speed

20

25

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

Rgression

Extension

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) Rgression linaire gnralise glm etc Mthodes non paramtriques

0 20 40 60 80 100 120

dist

10

15 speed

20

25

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

129 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

130 / 147

Infrence statistique

Rgression

Sries Chronologiques

Polynmes Locaux

100

120

Sries Chronologiques

20

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

dist

40

60

80

10

15 speed

20

25

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

131 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

132 / 147

Sries Chronologiques

Sries Chronologiques

Exemple
> > data ( USAccDeaths ) USAccDeaths
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

Lobjet srie chronologique est une liste qui contient les valeurs observes, la frquence des observations, la date de la premire observation la date de la dernire, etc...

1973 1974 1975 1976 1977 1978

> p l o t ( USAccDeaths )

7000 8000 9000 10000 11000


1973

USAccDeaths

1974

1975

1976 Time

1977

1978

1979

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

133 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

134 / 147

Sries Chronologiques

Sries Chronologiques

Pour crer une srie chronologique, on utilise la fonction ts


> 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 " s t a r t = c ( 1 ) , end=c ( 1 0 0 ) )

Filtre

Series

Bruit.Blanc

> d i f f ( x , l a g=p , d i f f e r e n c e s =d )

Premier exemple de ltre : (I

Lp )d , on utilise la fonction diff

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]

La fonction filter permet d appliquer des ltres linaires :

Bruit.Blanc

ACF

0.2

-1

0.4

0.6

20

40

60

80

100

-0.2

Ces fonctions permettent en particulier de crer un gnrateur de processus ARMA.


0 5 10 Lag 15 20

-2

Time

Anne PHILIPPE

(U. Nantes)

Logiciel R

0.0

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


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

modlisation et prvision AR

La fonction ar permet destimer les paramtres dun modle AR Ap (L)X [t] = e[t] Si lordre p nest pas prcis, le meilleur modle AR pour le critre AIC est slectionn.
>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

Series USAccDeaths

Series USAccDeaths

0.2 0.6 1.0

0.4

>a c f ( USAccDeaths ) >p a c f ( USAccDeaths ) >p e r i o d o g r a m ( USAccDeaths )


periodogram 1500000

0.0

0.5 Lag

1.0

1.5

0.4 0.0 0.4


0.2

Partial ACF

ACF

0.6 Lag

1.0

1.4

3 0.2269 s i g m a ^2 e s t i m a t e d as

0.1959

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

Logiciel R

26 septembre 2012

138 / 147

Sries Chronologiques

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 innie 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 q] Ap (L)P (Ls )Y [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 ) )
s Q (L )Bq (L)e[t]

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

avec Y [t] = (I

L)d (I

Ls )D X [t]

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

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

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

141 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

142 / 147

Sries Chronologiques

Sries Chronologiques

Exemple

Prvision pour des modles SARIMA


Pour prvoir lhorizon h, on utilise la fonction predict

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

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

Exemple :
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 " )
USAccDeaths

7000
1973

8000

9000

10000

11000

1974

1975

1976 Time

1977

1978

1979

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)
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 ) #l i s s a g e # prevision

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

320

le lissage simple si lon impose les coecients.

330

340

des modles multiplicatifs

Observed / Fitted

350

cette fonction peut aussi tre utilise pour

360

370

" predict " predict " predict " predict

. arima " . ppr " . smooth . s p l i n e . f i t " . lm "

HoltWinters filtering

1960

1970

1980 Time

1990

2000

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

145 / 147

Anne PHILIPPE

(U. Nantes)

Logiciel R

26 septembre 2012

146 / 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 2

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 .

3 4

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

Você também pode gostar