Você está na página 1de 33

Plan

Notes de Cours sur le logiciel R


Anne PHILIPPE
Universit de Nantes, Laboratoire de Mathmatiques Jean Leray email : Anne.philippe@math.univ-nantes.fr

2 3 4

14 septembre 2011

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

14 septembre 2011

1 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

2 / 131

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)
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 3 / 131

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 14 septembre 2011 4 / 131

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

14 septembre 2011

5 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

6 / 131

Utiliser laide

diteur
Sous MacOS et Windows, un diteur de texte intgr au logiciel R

> > > >

help("plot") ?plot help.search("plot") ??plot

Les dmos :
> demo() # pour obtenir la liste des demos > demo(graphics)

Les exemples : La fonction example excute les exemples gnralement inclus la n des chiers daide.
> example(FUN)
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 7 / 131

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 14 septembre 2011 8 / 131

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 Objets et Oprations

14 septembre 2011

9 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Objets et Oprations

14 septembre 2011

10 / 131

Oprations lmentaires
1

Objets

Oprations lmentaires sur les scalaires : , , +, /,


>2+4 6

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

Oprations avec aectation (avec ou sans achage)


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

# avec affichage du rsultat

Les principaux types sont


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

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

11 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

12 / 131

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 > is.complex(x) [1] FALSE

> as.complex(x) [1] 3+0i > as.character(x) [1] "3"

Objets et Oprations Vecteurs et matrices Dataframes Listes

Remarque : Conversion de TRUE / FALSE en valeur numrique :


> as.integer(T) [1] 1 > as.integer(F) [1] 0
Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 13 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 14 / 131

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, to) seq(from, to, by= ) seq(from, to, length.out= ) la raison est 1 on fixe la raison on fixe le nb de termes

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 1.8 1.9 2.0 2.1 2.2 2.3 .... [26] 3.5 3.6 3.7 3.8 3.9 4.0 raison -1

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


> c(1:4) # a<b raison 1 > c(4:1) # a>b [1] 1 2 3 4 [1] 4 3 2 1 > c(1.4:7) # a-b nest pas un entier [1] 1.4 2.4 3.4 4.4 5.4 6.4

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

14 septembre 2011

15 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

16 / 131

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 xer le nombre de colonnes ncol et/ou le nombre de lignes nrow.
> x = matrix(c(2,3,5,7,11,13),ncol=2)

Attention : si la dimension du vecteur nest pas gale au produit (ncol nrow) alors lopration eectue est la suivante :
> matrix(c(1:3), ncol=2,nrow=3) [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 3 3 > matrix(c(1:3), ncol=2) [,1] [,2] [1,] 1 3 [2,] 2 1

Par dfaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne, on ajoute largument byrow=T
> y = matrix(c(2,3,5,7,11,13),ncol=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 Objets et Oprations Vecteurs et matrices

14 septembre 2011

17 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Objets et Oprations Vecteurs et matrices

14 septembre 2011

18 / 131

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 PHILIPPE (U. Nantes) Anne Logiciel R

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

14 septembre 2011

19 / 131

14 septembre 2011

20 / 131

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Extraire des lments dun vecteur ou dune matrice


> vect=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=matrix(vect,ncol=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] > x=c(1:5) > y=c(rep(0,3),rep(1,2)) [1,] 2 1 [2,] 4 9 > x > B [1] 1 2 3 4 5 [,1] [,2] > y [1,] 0 2 [1] 0 0 0 1 1 [2,] 1 1 > A*B > x*y [,1] [,2] [1] 0 0 0 4 5 [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

Extraire un bloc ou plusieurs coordonnes


> mat[2:3,1:2] [,1] [,2] [1,] 2.5 5.5 [2,] 3.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)]
Anne PHILIPPE

retourne 2.5 4.5 5.5 6.5 8.5 9.5


Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 21 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 22 / 131

(U. Nantes)

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

Quelques oprations particulires sur les matrices


> a=matrix(1,ncol=2,nrow=2) > a [,1] [,2] [1,] 1 1 [2,] 1 1 > a+3 #matrice +scalaire [,1] [,2] [1,] 4 4 [2,] 4 4 > a+c(1:2) #matrice + vecteur [,1] [,2] [1,] 2 2 [2,] 3 3

x : 1 2 3 4 5 y : 1 2 1 2 1 ----------------x+y : 2 4 4 6 6

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

23 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

24 / 131

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) exponential and natural logarithm common logarithm gamma function and its natural log

Pour les fonctions de deux variables


f une fonction de deux variables f : (x, y ) 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 La fonction outer retourne une matrice de la forme M(i, j) = fun(xi , yj )
x=1:5 y=1:5 M=outer(x,y,fun)

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). Exemple Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constitue des lments e ai ,j .
Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 25 / 131

fun peut aussi tre une opration lmentaire +/-*


Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Vecteurs et matrices 14 septembre 2011 26 / 131

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 R o R est une matrice triangulaire suprieure et R est la transpose de R. dcomposition svd : svd(X) retourne (U,D,V) telles que X = UDV 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
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 27 / 131

Objets boolens et 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

TRUE FALSE FALSE FALSE

Il est possible de dnir plusieurs conditions remplir avec les oprateurs ET : & OU : |
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 28 / 131

Objets et Oprations

Vecteurs et matrices

Objets et Oprations

Vecteurs et matrices

Fonction which
Pour extraire les lments dun vecteur, on peut utiliser des instructions logiques. 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)] Soit vec un vecteur logique. La fonction which(vec) retourne les indices des coordonnes du vecteur vec qui prennent la valeur TRUE
> x=(1:10)^2 > x [1] 1 4 9 16 25 > which(x== 25) [1] 5 > which(x > 21) [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 Objets et Oprations Vecteurs et matrices

14 septembre 2011

29 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Objets et Oprations Dataframes

14 septembre 2011

30 / 131

Ces fonctions retournent un scalaire : sum() (somme n 1 i=1 xi ) n max(), min() length() (longueur du vecteur), 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)
n i=1 xi ), i

xi ), prod() (produit

xi ), mean() (moyenne
1

Objets et Oprations Vecteurs et matrices Dataframes Listes

cumprod()

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

31 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

32 / 131

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
> data1= 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:10,a=letters[1:10]) a a b c d e f g h i j

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) > C= data.frame(x=1:3,y=rep("a",3)) > B = data.frame(xx=1,yy=1:3)

> A x 1 1 2 2 3 3

y 2 3 4

> 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

y a a a

Par dfaut les lignes sont numrotes 1,2 etc. On peut ajouter des noms aux lignes avec loption row.names
Anne PHILIPPE (U. Nantes) Logiciel R Objets et Oprations Dataframes 14 septembre 2011 33 / 131

> A+C x y 1 2 NA 2 4 NA 3 6 NA
Anne PHILIPPE (U. Nantes)

Warning message: In Ops.factor(left, right) : + ceci nest pas pertinent pour des variables facteurs

Logiciel R Objets et Oprations Listes

14 septembre 2011

34 / 131

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

Objets et Oprations Vecteurs et matrices Dataframes Listes

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

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

35 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

36 / 131

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 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
>rdn=list(serie=c(1:100),taille=100,type="arithm")

Oprations sur les listes


Pour visualiser la liste des composantes dune liste
>names(rdn) [1] "serie" "taille" "type" > summary(rdn) Length Class Mode serie 100 -none- numeric taille 1 -none- numeric type 1 -none- character

Pour atteindre les composantes dune liste


>rdn$taille [1] 100 OU >rnd[[2]] [1] 100

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 Listes 14 septembre 2011 37 / 131

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 Objets et Oprations Listes 14 septembre 2011 38 / 131

Importer/exporter des donnes

Pour extraire les objets dune liste


>attach(rdn) "serie" "taille" "type"

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

supprimer les objets crs la ligne prcdente :


>detach(rdn)

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

39 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

40 / 131

Les fonctions

Les fonctions

Structure gnrale pour crer des fonctions

La structure gnrale dune fonction est


2

Les fonctions

>FUN=function(liste_des_paramtres) { commandes return(objets_retourns) }

Les accolades { et } dnissent le dbut et la n 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 Les fonctions

14 septembre 2011

41 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Les fonctions

14 septembre 2011

42 / 131

Exemple
La fonction suivante retourne le rsultat de n lancers dune pice.
>PF = function(n ,proba.pile) { u=runif(n) #nb alatoire suivant Unif(0,1) pf=(u<proba.pile) pf = as.integer(pf) 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 = function(n ,proba.pile) { u=runif(n) #nb alatoire suivant Unif(0,1) pf=(u<proba.pile) pf = as.integer(pf) f =mean(pf) return(list(echantillon = pf,frequence = f)) }

La sortie de la fonction est


> PF(10,1/2) [1] 0 0 1 0 1 0 1 1 0 0 # avec affectation de la sortie dans le vecteur x > x = PF(10,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
(U. Nantes) Logiciel R 14 septembre 2011 44 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

43 / 131

Anne PHILIPPE

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 = function(n ,proba.pile=1/2) { u=runif(n) #nb alatoire suivant Unif(0,1) pf=(u<proba.pile) pf = as.integer(pf) 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(10) OU PF(10,1/2)

retournent le mme rsultat


Anne PHILIPPE (U. Nantes) Logiciel R Les fonctions 14 septembre 2011 45 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Les graphiques 14 septembre 2011 46 / 131

Remarque sur les valeurs par dfaut


Modication de la fonction PF : on inverse lordre des paramtres dentre :
>PF = function(proba.pile=1/2, n) { ... } > PF(10) Erreur dans .Internal(runif(n, min, max)) : n est manquant > PF(n=10) [1] 0 0 1 0 1 0 1 0 1 0 >
3

Les graphiques

IL est donc prfrable de placer les paramtres sans valeur par dfaut en premier dans la dclaration des variables dentre.
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 47 / 131 Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 48 / 131

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=log(x^2+1/x^2)
plot(y)

Quelques arguments de la fonction plot


type=p
4 x

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
4

10

15 Index

20

25

30

type=l

10

15 Index

20

25

30

1 2 3 4

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

type=s
4 x 0 2

20

40 Index

pch : type de points lty : type de lignes.


0 2

10

15 Index

20

25

30

plot(x,y,pch=3)

type=h
4 x

1 2 3 4

col : couleur
-4 -2 0 x 2 4

10

15 Index

20

25

30

Anne PHILIPPE

(U. Nantes)

Logiciel R Les graphiques

14 septembre 2011

49 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Les graphiques

14 septembre 2011

50 / 131

Superposition de courbes
superposer des courbes
commentaire
5

lgende legend
legend(-1, 1.9, c("x^2-1","sin","cos"), col = c(3,4,6), lty = c(2, -1, 1), pch = c(-1, 3, 4))

-1

0 x

2
bottomleft
-1.0

-0.5

-0.5

> x=rnorm(20) > y=rexp(20) #nuage de points > plot(x,y) #ajouter un nuage de points > points(x+.1,y+.1, pch=2) #ajouter une ligne > lines(sort(x),y, lty=2) #ajouter une ligne horizontale > abline(h=3) #texte + frametitle > text(1,5,"commentaire") >title("superposer des courbes")

1.0

1.5

x^2-1 sin cos

les emplacements prdnis :


1.0

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

topright, inset = .02 (x,y)

0.5

x^2 - 1

0.5

0.0

0.0

left (x,y)

center (x,y)

right (x,y)

bottom (x,y) 0.2 0.4 x 0.6 0.8

bottomright (x,y) 1.0

(x,y) 0.0

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

51 / 131

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

-1.0

2 Logiciel R

14 septembre 2011

52 / 131

Les graphiques

Les graphiques

Autour de la fonction plot


Le graphique produit par la fonction plot(x) dpend de la classe de lobjet x.
> methods(plot) [1] "plot.data.frame" [3] "plot.density" [5] "plot.formula" [7] "plot.histogram" [9] "plot.mlm" [11] "plot.new" [13] "plot.POSIXlt" [15] "plot.ts" [17] "plot.xy" "plot.default" "plot.factor" "plot.function" "plot.lm" "plot.mts" "plot.POSIXct" "plot.table" "plot.window"

Illustrations
sur une fonction (par ex sin)
1.0

> plot(sin,xlim=c(-pi,pi))

sur un tableau
sin (x)

0.5

> x=rpois(1000,1) > y=table(x) > y x 0 1 2 3 4 374 372 162 71 20 > plot(y)

0.0

-1.0

-0.5

-3

-2

-1

0 x

100

200

300

2 x

6 1
20

Histogram of r
0.4

density.default(x = r)

Frequency

Density

>r=rnorm(100,1) > z=hist(r,plot=F) > plot(z) >w=density(r) >plot(w)


Logiciel R Les graphiques 14 septembre 2011 53 / 131 Anne PHILIPPE (U. Nantes)

10

-1

1 r

0.0

0.1

0.2

sur un histogramme ou une densit

15

0.3

-2

-1

N = 100 Bandwidth = 0.3564

Anne PHILIPPE

(U. Nantes)

Logiciel R Les graphiques

14 septembre 2011

54 / 131

Reprsentation graphique dune matrice


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

Reprsentation dune fonction de R2


x <- seq(-10, 10, length= 30) y <- x f <- function(x,y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r } z <- outer(x, y, f) persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")

100

200

300

400

500

600

100

200

300

400 x

500

600

700

800

x
x

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

55 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

y
y

14 septembre 2011

56 / 131

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

Fonction matplot(matrice ...)


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

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

Sepal.Length Sepal.Height Petal.Length Petal.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

Species setosa setosa setosa

5.5 6.5 6.3 6.5


(U. Nantes)

2.3 2.8 2.5 3.0

4.0 4.6 5.0 5.2

1.3 versicolor 1.5 versicolor 1.9 2.0 virginica virginica


57 / 131

Anne PHILIPPE

Logiciel R Les graphiques

14 septembre 2011

0 Anne PHILIPPE

(U. Nantes)

Logiciel R Les graphiques

50

100

150 14 septembre 2011 58 / 131

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.
plot(c(1,9), c(0,2), type="n")

2
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

Arguments supplmentaires
polygon(1:9, c(2,1,2,1,NA,2,1,2,1), col=c("red", "blue"), border=c("green", "yellow", lwd=3, lty=c("dashed", "solid"))

2.0 2.5 3.0 3.5 4.0

Sepal.Width

1 2 3 4 5 6 7

etape 1

etape 2

etape 3

2.0

2.0

Petal.Length

1.5

1.5

c(0, 2)

c(0, 2)

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

1.0

1.0

0.5 1.0 1.5 2.0 2.5

0.5

0.5

0.0

0.0

4 c(1, 9)

0.0

Petal.Width

0.5

1.0

1.5

2.0

4 c(1, 9)

4.5

5.5

6.5

7.5

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

59 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

60 / 131

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
0

Distance

20

40 Time

60

80

100

utilisation des menus (sous widows ou mac seulement)


n=100 z.haut=c(0,cumsum(rnorm(n)) ) z.bas= c(0,cumsum(rnorm(n))) xx <- c(0:n, n:0) yy <- c(z.bas, rev(z.haut)) #graphique vide pour fixer les dimensions plot (xx, yy, type="n", xlab="Time", ylab="Distance") #tracer le polygone polygon(xx, yy, col="gray", border = "red") title("Distance Between Brownian Motions")
Anne PHILIPPE (U. Nantes) Logiciel R Structures de contrle et Itrations 14 septembre 2011 61 / 131

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 Structures de contrle et Itrations

14 septembre 2011

62 / 131

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

14 septembre 2011

63 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

64 / 131

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 > if(x>2) print("A") else print("B") [1] "B"

La condition a une longueur suprieure 1. Seul le premier lment est utilis :


2

(x>2) correspond (x[1] >2) ifelse permet dappliquer une instruction conditionnelle sur chacune des coordonnes dun vecteur.
> ifelse(x<2,"A","B") [1] "A" "B" "B" "B" "B" "B" "B"

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 Structures de contrle et Itrations

14 septembre 2011

65 / 131

Anne PHILIPPE

(U. Nantes) Logiciel R Structures de contrle et Itrations

14 septembre 2011

66 / 131

Exemples
Exemple 1 On simule des variables alatoires suivant la loi de Bernoulli jusqu lobtention du premier 1 x=rbinom(1,1,.5) while ( x != 1) { x=rbinom(1,1,.5) }

Initialiser les variables : exemple


On dispose des tempratures moyennes mensuelles releves Nottingham pendant 10 ans de 1920 1939.
> nottem Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1920 40.6 40.8 44.4 46.7 54.1 58.5 57.7 56.4 54.3 50.5 42.9 39.8 1921 44.2 39.8 45.1 47.0 54.1 58.7 66.3 59.9 57.0 54.2 39.7 42.8 > nottem=matrix(nottem,ncol=12,byrow=T)

repeat { x=rbinom(1,1,.5) if (x==1) break }

etc

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


temp = rep(0,12) for (i in 1:12) temp[i] = mean( nottem[,i] )

Exemple 2 Les 3 structures suivantes sont quivalentes


i= 1 for ( i in 1:10) { commandes }
Anne PHILIPPE (U. Nantes)

i= 1 while (i<11) { commandes i = i+1 }


Logiciel R

i= 1 repeat { commandes i = i+1 if (i>10) break }


14 septembre 2011 67 / 131

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

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


Logiciel R 14 septembre 2011 68 / 131

(U. Nantes)

Structures de contrle et Itrations

Structures de contrle et Itrations

La fonction apply
apply(matrice , MARGIN, FUN) La fonction apply() permet dappliquer la mme fonction FUN sur toutes les lignes (MARGIN=1) ou les colonnes (MARGIN=2) dune matrice MAT La fonction apply() retourne un vecteur. Cette fonction remplace une boucle sur le nombre de colonnes ou de lignes Retour lexemple des tempratures Calcul du prol annuel :
> temp = apply(nottem,2,mean) # moyenne sur les colonnes [1] 39.695 39.190 42.195 46.290 52.560 ....

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.
69 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Structures de contrle et Itrations 14 septembre 2011 70 / 131

Calcul des moyennes annuelles


> temp.annuelle = apply(nottem,1,mean) # moyenne sur les lignes
Anne PHILIPPE (U. Nantes) Logiciel R Structures de contrle et Itrations 14 septembre 2011

Exemple sur les donnes cars


cars est une liste constitue de deux vecteurs speed et dist
> cars speed dist 1 4 2 2 4 10 3 7 4

Supprimer une boucle ....


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. 1 avec une boucle
M = 1:t for ( i in 1:t) { M[i] = max(x[1:i]) }
2

>lapply(cars, mean) $speed $dist [1] 15.4 [1] 42.98 >lapply(cars, quantile, probs = (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
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 71 / 131

sans boucle
FUN.max = function(n,y) max(y[1:n ]) M = sapply(1:t , FUN.max ,
(U. Nantes)

y = x )
14 septembre 2011 72 / 131

Anne PHILIPPE

Logiciel R

Structures de contrle et Itrations

Autour des lois de probabilits

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" > gr=factor(xgr) > gr [1] a b a b a a b a b b Levels: a b > tapply(note,gr,mean) a b 11.66561 13.30908
Anne PHILIPPE (U. Nantes) Logiciel R Autour des lois de probabilits 14 septembre 2011 73 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Autour des lois de probabilits 14 septembre 2011 74 / 131

Autour des lois de probabilits

Gnralits
Soit X une variable alatoire de loi PX

Quelques lois disponibles

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

PX (A) = P(X A) =

xA P(X = x) loi discrte loi continue . A f (x)dx

Pour les lois classiques, des fonctions existent pour calculer


P(X = x) pour les lois discrtes la densit 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
2

Lois continues
Loi Loi Loi Loi

simuler des nombres alatoires suivant la mme loi que X .

1. Si F est une bijection alors F = F 1


Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 75 / 131 Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 76 / 131

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 qnorm(,0,1) : quantile dordre rnorm(n,0,1) : chantillon de taille n
Gaussian N(0,1) distribution density cdf

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 rwww(n,...) retourne un chantillon de taille n les . . . reprsentent les paramtres spciques chaque loi.

0.4

dnorm(x)

plot(x,dnorm(x,0,1), type="l") plot(x,pnorm(x,0,1) ,type="l") plot(u,qnorm(u,0,1) ,type="l")


qnorm(u)

0.0

0.1

-4

-2

0 x

pnorm(x)

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

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

plot(rnorm(10,0,1))

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 Autour des lois de probabilits

14 septembre 2011

77 / 131

Anne PHILIPPE

(U. Nantes) Logiciel R Autour des lois de probabilits

14 septembre 2011

78 / 131

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
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 79 / 131

Simuler le rsultat dun d 6 faces


On simule suivant la loi uniforme sur lensemble {1, ..., 6}. On simulen = 100 ralisations de faon indpendante
> DE = sample((1:6),100,replace =TRUE) # Les ralisations > DE [1] 3 2 5 3 4 5 4 4 2 4 2 5 2 6 5 6 4 [24] 3 5 4 4 5 5 4 4 4 3 5 5 2 5 3 5 4 [47] 2 5 6 2 1 5 1 6 2 1 2 3 5 1 3 4 2 [70] 6 4 1 3 4 5 6 1 6 3 5 4 1 5 2 2 2 [93] 6 4 2 5 5 1 5 4 # calcul du nombre de 1,...,6 dans #lchantillon simul : > table(DE) DE 1 2 3 4 5 6 12 17 17 19 23 12 # reprsentation de la rpartition > plot(table(DE))
table(DE)

1OO lancers

3 3 3 3
10 15 20

5 1 1 3

4 3 2 2

5 1 6 2

3 3 1 6

5 4 6 6

0
1

3 DE

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

80 / 131

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, vertical=FALSE) ou lines(F, vertical=FALSE)

Exemple : loi binomiale


On trace la fonction de rpartition de la loi binomiale B(10, 1/2)
points.discont = 0:10 F.points.discont = pbinom(points.discont,10,0.3) F = stepfun( points.discont , c(0,F.points.discont) ) plot(F,vertical =FALSE ,col=4,main="fct rep loi binomiale" ,ylab="F")

0.0 0.2 0.4 0.6 0.8 1.0

q q q

f(x)

q q

Application : les fonctions de rpartition des lois discrtes


Anne PHILIPPE (U. Nantes) Logiciel R Outils graphiques en statistique 14 septembre 2011 81 / 131 Anne PHILIPPE

4 x

10

(U. Nantes) Logiciel R Outils graphiques en statistique

14 septembre 2011

82 / 131

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 5000 10000 15000

Outils graphiques en statistique

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

83 / 131

Anne PHILIPPE

(U. Nantes)

Africa 11506 Australia 2968 Banks 23 Celebes 73 Devon 21 Greenland 840 Hokkaido 30 Ireland 33 Luzon 42 Mindanao 36 New Guinea 306 Newfoundland 43 Prince of Wales 13 Southampton 16 Taiwan 14 Logiciel R Timor

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 14 septembre 2011 Victoria 131 84 / Vancouver

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

Questions :

boxplot data : sqrt(islands)

100

120

80

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 Outils graphiques en statistique 14 septembre 2011 85 / 131 Anne PHILIPPE (U. Nantes) Logiciel R Outils graphiques en statistique 14 septembre 2011 86 / 131

Histogramme
Estimation de la distribution dune variable continue

20

40

60

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

hist(sqrt(islands), breaks = 12) hist(sqrt(islands), breaks = c(4*0:5, 10*3:5, 70, 100, 140))
Density
equidistant breaks NON - equidistant breaks

Histogram of dat
0.4

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

par(mfrow=c(1,2)) x=rnorm(10000) y=density(x) plot(y) hist(x, proba=T) lines(y) z=seq(min(x),max(x),0.01) #superpose densit thorique lines(z,dnorm(z,0,1),lty=2)

0.00 0.02 0.04 0.06

0.15

Density

Density

WRONG histogram

Density

Frequency

les options
15 10 5 0

0.00

0.0

0.2

Remarque sur la fonction hist


-4 -2 0 2 4 N = 1000 Bandwidth = 0.2179

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

0.2

proba =T : laire en dessous de la courbe est gale 1. Par dfaut proba =F : laire est gale au nombre dobservations.
Logiciel R 14 septembre 2011 88 / 131

0.0

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

87 / 131

Anne PHILIPPE

(U. Nantes)

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 }. > central.park.cloud [1] partly.cloudy partly.cloudy [5] partly.cloudy partly.cloudy [9] partly.cloudy clear [13] cloudy cloudy [17] partly.cloudy clear partly.cloudy clear cloudy clear clear clear cloudy partly.cloudy partly.cloudy clear

Reprsentation graphique dune variable quantitative


tab=table(central.park.cloud) pie(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(central.park.cloud) central.park.cloud clear partly.cloudy 11 11
Anne PHILIPPE (U. Nantes) Logiciel R Outils graphiques en statistique
partly.cloudy

clear

clear

partly.cloudy

cloudy

modalits ordonns par effectif croissant


0 4 8

cloudy 9
14 septembre 2011 89 / 131 Anne PHILIPPE

cloudy

(U. Nantes) Logiciel R Outils graphiques en statistique

cloudy

14 clear septembre partly.cloudy 90 / 131 2011

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


On relve le salaire de 3 personnes
John 40

Variables discrtes
On relve N le nombre dappels tlphoniques reus par un central pendant un mois.
> N etc > t N 2 2 > [1] 6 16 3 6 8 10 9 9 10

nb d'appels

> sales John Jack Peter 45 44 46 Reprsentation graphique pie(sales) barplot(sales)

30

20

= table(N) 3 4 4 3

Peter 0

5 6 7 8 9 10 11 12 13 14 15 16 17 7 16 15 25 18 23 18 25 9 6 9 4 2

10

10

Jack

15

jours

John

Jack

Peter

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).
J= 2:17 plot(table(N)/length(N),ylab="") points(J,dpois(J,mean(N)))
0.12 0.00
2

46

table(N)/length(N)

44

0.04

barplot(sales,ylim=c(40,47),xpd=F)

45

0.08

9 N

11

13

15

17

43

John

Jack

Peter

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

91 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

92 / 131

Outils graphiques en statistique

Outils graphiques en statistique

Remarque sur la fonction barplot pour des variables quantitatives


0.00 0.02 0.04 0.06 0.08 0.10 0.12

Comparaison de deux variables quantitatives indpendantes


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

5 10 15 20 25

>barplot(t/length(N))

N2
2 5 8 12 17

10

10

12

14

16

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:17
0.00 0.02 0.04 0.06 0.08 0.10 0.12
GRAPHIQUE FAUX GRAPHIQUE CORRIG

nd d appels par jour

10 12 14 16

frquence

15

10 N

15

boxplot(N,N2,col=c("green","orange")) t=table(N2) xt = as.integer(names(t))+.3 plot(table(N ),col="green" ,lwd=2,xlab="",ylab="") lines(xt, t,col="orange" ,type="h",lwd=2) qqplot(N,N2) abline(0,1)

frquence

# GRAPHIQUE CORRIG br = barplot(table(N)/length(N)) points(br,dpois(J,mean(N))) Anne PHILIPPE

frquence

# GRAPHIQUE FAUX barplot(table(N)/length(N)) points(J,dpois(J,mean(N)))

0.00 0.02 0.04 0.06 0.08 0.10 0.12

10

12

14

16

10

12

14

16

nd d appels par jour

nd d appels par jour

Pour les variables alatoires continues, on compare les estimations de la densit : histogrammes, estimateur noyau.
Anne PHILIPPE (U. Nantes) Logiciel R Outils graphiques en statistique 14 septembre 2011 94 / 131

(U. Nantes) Logiciel R Outils graphiques en statistique

14 septembre 2011

93 / 131

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
prev grade B+ B+ AAB+ AF F F F A B A A C D

Autres graphiques pour rsumer la table de contingence

1 2 3 4 5 6 7 8

14

A AB+ B BC+ C D F

20

14

A AB+ B BC+ C D F

12

10

15

10

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

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

B 4 0 1 4 2 0 1 1 1

B0 0 2 3 0 0 1 0 1

C+ 0 0 0 1 0 0 3 0 1

C 3 0 0 3 1 1 5 4 3

D 2 0 1 0 0 0 9 3 4

F 0 0 1 2 0 0 7 1 11

B+

Bgrade

A-

Bprev

10

12

B+

Bprev

grade

F D C C+ B B+ AB-

> barplot(tab,xlab="grade",legend.text=T , col=rainbow(10),beside=T) > barplot(t(tab),xlab="prev", col=rainbow(10)) > barplot(t(tab),xlab="prev",legend.text=T , col=rainbow(10),beside=T)

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

95 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

96 / 131

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 La couleur des points est dnie par la variable gender La taille des points est proportionnelle lage des individus.
60

height

height

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

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

50

150

40

30

80 120

20

40

40

20

age

age

80 120

30

40

10

60 100 140

60 100 140

20

40

60

80 weight

100

120

140

10

0 20 40 60 80 weight 100 120 140

weight

weight

20

50

20

height
30 10

height
10 30

50

40

80

120

10

30

50

40

80

120

10

30

50

plot(weight,height, cex =age/max(age)*2,col=as.integer(gender)) plot(weight,height, col = rainbow(150)[age],pch=as.integer(gender))


Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 Infrence statistique Estimation non paramtrique 98 / 131

pairs(X[,1:3])
Anne PHILIPPE (U. Nantes) Logiciel R Infrence statistique

pairs(X[,1:3],col=X[,4])
14 septembre 2011 97 / 131

Infrence statistique Estimation non paramtrique Tests Rgression

Infrence statistique Estimation non paramtrique Tests Rgression

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

99 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

100 / 131

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

Density

Density

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)

1 fn (x) = n le choix du noyau kern


gaussian

n k=1

0.3

0.3

0.0

0.0

1 kern bwn

x Xk bwn

0.2

0.1

0.1

0.2

-4

-2

0 x

-4

-2

0 x

epanechnikov

rectangular

1.0

1.0

0.8

0.8

0.4

0.4

Density

Density

0.3

0.3

0.4

0.4

Density
1.0 0.0 0.5 1.0

0.6

0.6

Density

Density

0.2

0.2

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

0.1

0.1

triangular

biweight

cosine

1.0

1.0

0.0

0.0

0.8

0.8

Density

Density

0.4

0.4

Density
1.0 0.0 0.5 1.0

-4

-2

0 x

-4

-2

0 x

0.6

0.6

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 14 septembre 2011 Infrence statistique Estimation non paramtrique 101 / 131

la dimension de la fentre bw. Par dfaut le paramtre est optimis pour un chantillon gaussien
Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 Infrence statistique Estimation non paramtrique 102 / 131

Illustration sur un mlange gaussien


On teste la fonction density sur des donnes simules 2 suivant un mlange de lois gaussiennes : f (x) = 1 1 1 (x5)2 3 1 1 (x+5)2 e 2 + e 2 4 2 4 2
bandwidths = 0.1 bandwidths = 1

Fonction de rpartition empirique (ecdf)


La fonction de rpartition empirique est dnie par 1 Fn (t) = n
n n p.s.

1]t] (Xi ) F (t)


i=1

Cest un estimateur de la fonction de rpartition.


1.0
10 5 N = 50 0 5 10 Bandwidth = 1

same bandwidth, 6 different kernels


0.4

0.10

Density

0.3

Density

0.2

0.08

0.1

0.05

0.10

0.15

Density

0.06

5 N = 50

Bandwidth = 0.1

0.00

0.04

bandwidths = 2

bandwidths = 3

10

5 N = 50

10

10

5 N = 50

10

15

5 N = 50

10

15

Bandwidth = 2.096

Bandwidth = 2

Bandwidth = 3

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 14 septembre 2011 103 / 131 Anne PHILIPPE (U. Nantes)

0.0

0.2

0.00

0.00

> x= rnorm(100) >Fn=ecdf(x) >plot(Fn,col="green") > z=seq(min(x),max(x),0.01) > lines(z,pnorm(z), col=1,lwd=2)

c(0:(n 1))/n

0.08

0.06

0.08

Density

Density

0.04

0.00

0.02

0.04

0.4

0.02

0.6

0.8

0.0

Logiciel R

14 septembre 2011

104 / 131

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 | < alors Sn = 1 n
n

Xi E (X1 )
i=1
evolution de Sn en fonction de n : cas gausien

n=5000 #loi gaussienne x=rnorm(n,0,1) y=cumsum(x)/(1:n) plot(y, type=l) # loi de Cauchy ou Student(1ddl) xc=rt(n,1) yc=cumsum(xc)/(1:n) plot(yc, type=l)
Anne PHILIPPE (U. Nantes)
y

0.0 0.5 1.0 1.5

Infrence statistique Estimation non paramtrique Tests Rgression

1000

2000 Index

3000

4000

5000

evolution de Sn en fonction de n : cas cauchy


0 1 2 3 4 -2
0

yc

1000

2000 Index

3000

4000

5000

Logiciel R Infrence statistique Tests

14 septembre 2011

105 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Infrence statistique Tests

14 septembre 2011

106 / 131

Les fonctions pour les tests statistiques classiques :

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 ) = E (Y )
> x = rnorm(100,1,1) > y = rexp(200,1) > t.test(x,y) Welch Two Sample t-test data: x and y t = -0.2178, df = 178.446, p-value = 0.8278 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -0.2648092 0.2121608 sample estimates: mean of x : 0.9544127 mean of y : 0.9807369

t.test(x,mu=5,alt="two.sided") t.test(x,y,alt="less", conf=.95)

#student

var.text(x,y) cor.test(x,y) chisq.test(x,y) Box.test(z, lag = 1)

# comparaison variance # non correlation #indpendance #non correlation

shapiro.test(x) ks.test(x,"pnorm") ks.test(x,y)

#normalit #normalit K-S # mme distribution

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

107 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

108 / 131

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 n 1 (Un ) X N(0, 1) 12 2 La gnrateur scrit
simU<-function(taille,size) { y = matrix(runif(taille*size),ncol=size) (apply(y,1,mean)-1/2)*sqrt(taille/12) }
Anne PHILIPPE (U. Nantes) Logiciel R Infrence statistique Tests 14 septembre 2011 109 / 131

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. 2 On compare la fonction de rpartition empirique et la fonction de rpartition thorique. 3 On compare lestimation de la densit par un histogramme et la densit thorique.
X = simU(1000,n) test1=ks.test(X,"pnorm",0,1)$p.value test2 = shapiro.test(X)$p.value plot(sort(X),(1:size)/size, type="s", col="orange") lines(seq(-3,3,.1),pnorm(seq(-3,3,.1)),col="red") title(paste("n=",n," et pvalue(ks)=",floor(c(test1)*100)/100)) hist(X,col="orange", xlim=c(-3,3), proba=T,main="") lines(seq(-3,3,.1),dnorm(seq(-3,3,.1)),col="red") title(paste("pvalue(shapiro)=",floor(c(test2)*100)/100))
Anne PHILIPPE (U. Nantes) Logiciel R Infrence statistique Rgression 14 septembre 2011 110 / 131

1 Un = n

Ui
i=1

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

3
111 / 131 Anne PHILIPPE (U. Nantes) Logiciel R 14 septembre 2011 112 / 131

(U. Nantes)

14 septembre 2011

Infrence statistique

Rgression

Infrence statistique

Rgression

Rgression linaire
Le modle le plus simple y = ax + b + Pour raliser une rgression linaire, par la mthode des moindres carrs, on utilise la fonction lm . Sur les donnes cars
> lm(cars$dist~ cars$speed) Call: lm(formula = cars$dist ~ cars$speed)
120 100

Visualisation : plot.lm
Residuals vs Leverage Residuals vs Fitted

0.5

40

23

49

23

49

Standardized residuals

35

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)

Normal Q-Q

-20

20

Scale-Location
23 49

1.5

23

49

35

35

Standardized residuals

Standardized residuals
-2 -1 0 Theoretical Quantiles lm(cars$dist ~ cars$speed) 1 2

> plot(cars$speed,cars$dist) > abline(reg, col=3,lwd = 2 )

20

40

Coefficients: (Intercept) cars$speed -17.579 3.932

80

cars$dist

60

-1

-2

0.0

0.5

1.0

20

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

60

80

10

15 cars$speed

20

25

Remarque : Si les donnes sont disponibles sous la forme dune liste on peut utiliser la syntaxe
> fit = lm(dist ~ speed, cars)

Anne PHILIPPE

(U. Nantes)

Logiciel R Infrence statistique Rgression

14 septembre 2011

113 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Infrence statistique Rgression

14 septembre 2011

114 / 131

Extension

Rgression non paramtrique


>data(cars) >attach(cars) >plot(speed, dist) >lines(ksmooth(speed, dist, "normal", bandwidth=2), col=2) >lines(ksmooth(speed, dist, "normal", bandwidth=5), col=3) >lines(ksmooth(speed, dist, "normal", bandwidth=10), col=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

14 septembre 2011

115 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

116 / 131

Infrence statistique

Rgression

Sries Chronologiques

Polynmes Locaux

100

120

Sries Chronologiques

>data(cars) >cars.lo = loess(dist ~ speed, cars) >p = predict(cars.lo) >plot(cars) >lines(seq(5, 30, 1),p$fit,col=3)
5 10 15 speed 20 25

dist

20

40

60

80

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

14 septembre 2011

117 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

14 septembre 2011

118 / 131

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

>plot(USAccDeaths)

7000 8000 9000 10000 11000


1973

USAccDeaths

1974

1975

1976 Time

1977

1978

1979

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

119 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

120 / 131

Sries Chronologiques

Sries Chronologiques

Pour crer une srie chronologique, on utilise la fonction ts


>bruit.blanc=ts(rnorm(100), frequency = 1, start = c(1), end=c(100)) >plot(bruit.blanc) >acf(bruit.blanc, type="correlation") #ou type="covariance" ou type="partial"
Series Bruit.Blanc

Filtre
Premier exemple de ltre : (I Lp )d , on utilise la fonction diff
>diff(x,lag=p,differences=d)

La fonction filter permet d appliquer des ltres linaires :


y=filter(x,sides= 1, method = convolution ,filter=c(2,3)) # y[i] = 2*x[i] + 3*x[i-1] y=filter(x,sides= 2, method = convolution ,filter=c(2,3,4)) # y[i] = 2*x[i-1] + 3*x[i] +4]*x[i+1] y=filter(x,method =recurcive ,filter=c(2,3)) #y[i] = x[i] + 2*y[i-1] + 3*y[i-2]

Bruit.Blanc

ACF

-2

0.0

0.2

-1

0.4

0.6

0.8

1.0

20

40

60

80

100

10 Lag

15

20

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

Time

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

-0.2

14 septembre 2011

121 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

14 septembre 2011

122 / 131

tude prliminaire de la srie USAccDeaths


periodogram = function(traj) { n = length(traj) freq = 1:(n %/% 2)/(n) periodogram = Mod(fft(traj))[2:(n %/% 2 + 1)]^ 2/(2 * pi * n) plot(freq, periodogram, type = "l") }
Series USAccDeaths Series USAccDeaths

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(lh) >ar(lh) Call:ar(x = lh) Coefficients: 1 2 0.6534 -0.0636 Order selected 3

0.2 0.6 1.0

0.4

0.4 0.0 0.4

Partial ACF

ACF

>acf(USAccDeaths) >pacf(USAccDeaths) >periodogram(USAccDeaths)


periodogram 1500000

0.0

0.5 Lag

1.0

1.5

0.2

0.6 Lag

1.0

1.4

3 -0.2269 sigma^2 estimated as

0.1959

0
0.0

0.1

0.2

0.3

0.4

0.5

Anne PHILIPPE

(U. Nantes)

Logiciel R

freq

14 septembre 2011

123 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

124 / 131

Sries Chronologiques

Sries Chronologiques

Autour des modles ARMA

>ar(lh, aic = FALSE, order.max = 4) # on fixe p=4 Call: ar(x = lh, aic = FALSE, order.max = 4) Coefficients: 1 2 3 4 0.6767 -0.0571 -0.2941 0.1028 Order selected 4 sigma^2 estimated as 0.1983

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

14 septembre 2011

125 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

14 septembre 2011

126 / 131

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

Ap (L)P (Ls )Y [t] = Q (Ls )Bq (L)e[t] avec Y [t] = (I L)d (I Ls )D X [t] la syntaxe est la suivante :
out=arima(x,order=c(p,d,q), seasonal=list(order=c(P,D,Q),period=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 Exemple :
data(USAccDeaths) a = c(USAccDeaths) USAcc= ts(a[1:60],frequency=12,start=c(1973,1))

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

127 / 131

fit =PHILIPPE (U. Nantes) Anne arima(USAcc, order=c(0,1,1), seasonal=list(order=c(0,1,1))) Logiciel R 14 septembre 2011

128 / 131

Sries Chronologiques

Sries Chronologiques

Prvision pour des modles SARIMA


Pour prvoir lhorizon h, on utilise la fonction predict
>out=arima0(...) > p=predict(out,h) p$pred #contient les prvisions p$se #erreurs de prvision ( cart type )

Plus gnralement : la fonction predict

7000

p = predict(fit, n.ahead=12) plot(USAccDeaths, col="orange") lines(p$pred,col="red3") lines(p$pred+1.96*p$se, col="blue2") lines(p$pred-1.96*p$se, col="blue2")

USAccDeaths

8000

9000

10000

11000

Exemple :

> methods(predict) [1] "predict.ar" [3] "predict.loess" [5] "predict.smooth.spline" [7] "predict.glm" [9] "predict.mlm"

"predict.arima" "predict.ppr" "predict.smooth.spline.fit" "predict.lm"

1973

1974

1975

1976 Time

1977

1978

1979

Anne PHILIPPE

(U. Nantes)

Logiciel R Sries Chronologiques

14 septembre 2011

129 / 131

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

130 / 131

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 = HoltWinters(co2) p = predict(m, 50, prediction.interval = TRUE) plot(m, p) #lissage # prevision

HoltWinters filtering

le lissage simple si lon impose les coecients.

320
1960

330

340

des modles multiplicatifs

Observed / Fitted

350

cette fonction peut aussi tre utilise pour

360

370

1970

1980 Time

1990

2000

Anne PHILIPPE

(U. Nantes)

Logiciel R

14 septembre 2011

131 / 131

Você também pode gostar