Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
9 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
10 / 131
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
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
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
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
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)
14 septembre 2011
17 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
18 / 131
> 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 un lment
> vect[1] [1] 1.5 > mat[2,1] [1] 2.5
(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
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
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
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)
14 septembre 2011
29 / 131
Anne PHILIPPE
(U. Nantes)
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
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
> 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
14 septembre 2011
34 / 131
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
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 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
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
Les fonctions
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)
14 septembre 2011
41 / 131
Anne PHILIPPE
(U. Nantes)
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)) }
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 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)
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
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
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)
14 septembre 2011
49 / 131
Anne PHILIPPE
(U. Nantes)
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
0.5
x^2 - 1
0.5
0.0
0.0
left (x,y)
center (x,y)
right (x,y)
(x,y) 0.0
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
51 / 131
-1.0
2 Logiciel R
14 septembre 2011
52 / 131
Les graphiques
Les graphiques
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
10
-1
1 r
0.0
0.1
0.2
15
0.3
-2
-1
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
54 / 131
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
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
Anne PHILIPPE
14 septembre 2011
0 Anne PHILIPPE
(U. Nantes)
50
100
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
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"))
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
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
-5 0 5 10 15 20
0
Distance
20
40 Time
60
80
100
Anne PHILIPPE
14 septembre 2011
62 / 131
Instructions conditionnelles
La syntaxe if (condition) {instructions} permet de calculer les instructions uniquement si la condition est vraie. if (condition) { A } else {B} calcule les instructions A si la condition est vraie et les instructions B sinon. Par exemple, if (x>0) y=x*log(x) else y=0 Remarque : Si les instructions se limitent un seul calcul comme dans cet exemple on peut utiliser la fonction ifelse y=ifelse(x>0,x*log(x),0)
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
63 / 131
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
64 / 131
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"
(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
14 septembre 2011
65 / 131
Anne PHILIPPE
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) }
etc
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
(U. Nantes)
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
>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
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
Gnralits
Soit X une variable alatoire de loi PX
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) =
Lois continues
Loi Loi Loi Loi
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)
0.0
0.1
-4
-2
0 x
pnorm(x)
x=seq(-5,5,.01) u=seq(0,1,.01)
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
-2
rnorm(10)
6 Index
10
Anne PHILIPPE
14 septembre 2011
77 / 131
Anne PHILIPPE
14 septembre 2011
78 / 131
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
q q q
f(x)
q q
4 x
10
14 septembre 2011
82 / 131
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
Questions :
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
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.15
Density
Density
WRONG histogram
Density
Frequency
les options
15 10 5 0
0.00
0.0
0.2
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)
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
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
cloudy 9
14 septembre 2011 89 / 131 Anne PHILIPPE
cloudy
cloudy
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
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
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
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
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
frquence
10
12
14
16
10
12
14
16
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
14 septembre 2011
93 / 131
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
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-
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
95 / 131
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
96 / 131
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
weight
weight
20
50
20
height
30 10
height
10 30
50
40
80
120
10
30
50
40
80
120
10
30
50
pairs(X[,1:3])
Anne PHILIPPE (U. Nantes) Logiciel R Infrence statistique
pairs(X[,1:3],col=X[,4])
14 septembre 2011 97 / 131
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
99 / 131
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
100 / 131
Infrence statistique
Infrence statistique
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)
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
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
0.0
0.2
0.00
0.00
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
Infrence statistique
Tests
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
1000
2000 Index
3000
4000
5000
yc
1000
2000 Index
3000
4000
5000
14 septembre 2011
105 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
106 / 131
#student
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)
2 1
0 sort(X)
3 2 1 0 sort(X)
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
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
20
40
80
cars$dist
60
-1
-2
0.0
0.5
1.0
20
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)
14 septembre 2011
113 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
114 / 131
Extension
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)
14 septembre 2011
117 / 131
Anne PHILIPPE
(U. Nantes)
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...
>plot(USAccDeaths)
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
Filtre
Premier exemple de ltre : (I Lp )d , on utilise la fonction diff
>diff(x,lag=p,differences=d)
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
Time
Anne PHILIPPE
(U. Nantes)
-0.2
14 septembre 2011
121 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
122 / 131
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.4
Partial ACF
ACF
0.0
0.5 Lag
1.0
1.5
0.2
0.6 Lag
1.0
1.4
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
>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
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
125 / 131
Anne PHILIPPE
(U. Nantes)
14 septembre 2011
126 / 131
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
7000
USAccDeaths
8000
9000
10000
11000
Exemple :
> methods(predict) [1] "predict.ar" [3] "predict.loess" [5] "predict.smooth.spline" [7] "predict.glm" [9] "predict.mlm"
1973
1974
1975
1976 Time
1977
1978
1979
Anne PHILIPPE
(U. Nantes)
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
320
1960
330
340
Observed / Fitted
350
360
370
1970
1980 Time
1990
2000
Anne PHILIPPE
(U. Nantes)
Logiciel R
14 septembre 2011
131 / 131