Escolar Documentos
Profissional Documentos
Cultura Documentos
Anne PHILIPPE
Universit de Nantes, Laboratoire de Mathmatiques Jean Leray email : Anne.philippe@math.univ-nantes.fr 2 3 4
26 septembre 2012
Objets et Oprations Vecteurs et matrices Dataframes Listes Les fonctions Les graphiques Structures de contrle et Itrations
5 6 7
Autour des lois de probabilits Outils graphiques en statistique Infrence statistique Estimation non paramtrique Tests Rgression Sries Chronologiques
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
1 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
2 / 147
Installation
Documentations
Documents sur le logiciel R :
http://www.math.sciences.univ-nantes.fr/philippe/R_freeware.html
Le logiciel R est un freeware disponible sur le site http://cran.r-project.org/ Il existe des versions Windows MacOS X Linux ... Outils disponibles : un langage de programmation orient objet des fonctions de "base" des librairies/packages complmentaires (1800 sur le site CRAN)
Site consacr aux graphiques addictedtor.free.fr/graphiques/ Collection spcique UseR chez Springer Plus de 80 livres, par exemple
Introductory Statistics With R Bayesian Computation With R Applied Statistical Genetics With R : Generalized Additive Models : An Introduction with R Extending the Linear Model With R Time Series Analysis And Its Applications : With R Examples
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
3 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
4 / 147
Au dmarrage
Sous linux
> apparat automatiquement en dbut de chaque ligne de commandes + apparat en dbut de ligne si la ligne prcdente est incomplte
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
5 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
6 / 147
Utiliser laide
diteur
Sous MacOS et Windows, un diteur de texte intgr au logiciel R
Les dmos :
# pour o b t e n i r l a > demo ( ) > demo ( g r a p h i c s ) l i s t e d e s demos
Les exemples : La fonction example excute les exemples gnralement inclus la n des chiers daide.
> example (FUN)
Ctrl R excute la ligne sur laquelle se trouve le curseur ou les lignes dun bloc slectionn. source("nom-du-fichier.R") pour excuter le code contenu dans le chier nom-du-fichier.R
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
7 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
8 / 147
Objets et Oprations
Librairies
Toutes les librairies ne sont pas charges au lancement du logiciel library() retourne la liste des librairies installes. library(LIB) charge la librairie LIB library(help = LIB) retourne la liste des fonctions de la librairie LIB search(), searchpaths() retourne la liste des librairies charges.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
9 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
10 / 147
Objets et Oprations
Objets et Oprations
Oprations lmentaires
1
Objets
, +, /, Les objets de base sont vecteurs, matrices data.frames, listes Quelques fonctions gnriques : ls() retourne la liste des objets de la session. rm(a) supprime lobjet a
>2+4 6
2
# a v e c a f f i c h a g e du r s u l t a t
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
11 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
12 / 147
Objets et Oprations
Objets et Oprations
Vecteurs et matrices
Fonctions is/as
is.xxx(obj) teste si obj est un objet de type xxx as.xxx(obj) contraint si possible obj au type dobjet xxx o xxx reprsente un type dobjet (complex, real, vector matrix etc...)
> x=3 > is . real (x) [ 1 ] TRUE > i s . complex ( x ) [ 1 ] FALSE > as . complex ( x ) [ 1 ] 3+0 i > as . c h a r a c t e r ( x ) [ 1 ] "3"
1
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
13 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
14 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
par exemple
> seq ( 1 , 4 , by =0.1) [ 1 ] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 [26] 3.5 3.6 3.7 3.8 3.9 4.0 ....
x=rep(y ,n) pour crer un vecteur constitu de llment y rpt n fois. (y peut tre un scalaire ou un vecteur) par exemple
> rep ( 1 , 4 ) [1] 1 1 1 1
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
15 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
16 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Les matrices sont cres avec la fonction matrix() partir dun vecteur. On doit xer le nombre de colonnes ncol et/ou le nombre de lignes nrow.
> x = m a t r i x ( c ( 2 , 3 , 5 , 7 , 1 1 , 1 3 ) , n c o l =2)
Par dfaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne, on ajoute largument byrow=T
> y = m a t r i x ( c ( 2 , 3 , 5 , 7 , 1 1 , 1 3 ) , n c o l =2 , byrow=T) > x > y [ ,1] [ ,2] [ ,1] [ ,2] [1 ,] 2 7 [1 ,] 2 3 [2 ,] 3 11 [2 ,] 5 7 [3 ,] 5 13 [3 ,] 11 13
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
17 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
18 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
cbind
> x =1:10 > y=x ^2 > rbind (x , y ) [ ,1] [ ,2] [ ,3] [ ,4] [ ,5] [ ,6] [ ,7] [ ,8] [ ,9] [ ,10] x 1 2 3 4 5 6 7 8 9 10 y 1 4 9 16 25 36 49 64 81 100 > cbind ( x , y ) x y [1 ,] 1 1 [2 ,] 2 4 [3 ,] 3 9 [4 ,] 4 16 [5 ,] 5 25 [6 ,] 6 36 etc
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 20 / 147
diag La fonction diag retourne une matrice diagonale lorsque le paramtre dentre est un vecteur. Si le paramtre dentre est une matrice, alors elle retourne un vecteur constitu de la diagonale de la matrice
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
19 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Extraire un lment
> vect [ 1 ] [ 1 ] 1.5 > mat [ 2 , 1 ] [ 1 ] 2.5
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
21 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
22 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Attention Si les vecteurs ne sont pas de mme longueur, le plus court est complt automatiquement .
> x =c ( 1 : 5 ) > x [1] 1 2 3 4 5 > y =c ( 1 , 2 ) > y [1] 1 2 > x + y [1] 2 4 4 6 6 x y : 1 2 3 4 5 : 1 2 1 2 1
x+y : 2 4 4 6 6
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
23 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
24 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Lorsque le paramtre dentre est un vecteur (respectivement une matrice), la fonction FUN est applique sur chacune des composantes. Lobjet retourn est un vecteur (respectivement une matrice). s Exemple Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constitue des lments e ai ,j .
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
25 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
26 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Soit I un vecteur de boolens de mme longueur que vect : vect[I] retourne les coordonnes vect[j] telles que I [j] = TRUE . Applications extraire les composantes >8 vect[vect>8] : vect>8 est un vecteur de TRUE et FALSE, on extrait les composantes aectes TRUE. extraire les composantes >8 ou <2 vect[(vect>8) | (vect<2)] extraire les composantes >8 et <10 vect[(vect>8) & (vect<10)]
Il est possible de dnir plusieurs conditions remplir avec les oprateurs ET : & OU : |
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
27 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
28 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Vecteurs et matrices
Fonction which
Soit vec un vecteur logique. La fonction which(vec) retourne les indices des coordonnes du vecteur vec qui prennent la valeur TRUE
Est ce que
> ( s q r t ( 2 ) ^ 2 == 2 ) [ 1 ] FALSE
2 = 2?
Une solution
> a l l . equal ( sqrt (2)^2 ,2) [ 1 ] TRUE #ou >isTRUE ( a l l . e q u a l ( s q r t ( 2 ) ^ 2 , 2 ) )
> x =(1:10)^2 > x [1] 1 4 9 16 25 > which ( x== 2 5 ) [1] 5 > which ( x > 2 1 ) [1] 5 6 7 8 9 10
36
49
64
81 100
Exemple Les commandes x[x>1] et x[which(x>1)] retournent le mme vecteur. Cas particulier which.max(x) retourne which(x==max(x))
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
29 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
30 / 147
Objets et Oprations
Vecteurs et matrices
Objets et Oprations
Dataframes
Ces fonctions retournent un scalaire : P Q sum() (somme i xi ), prod() (produit i xi ), mean() (moyenne ) max(), min() length() (longueur du vecteur),
1 n
Pn
i=1 xi 1
dim(), ncol(), nrow() (dimension de la matrice/nombre de lignes / nombre de colonnes.) Ces fonctions retournent un vecteur : cumsum() (sommes cumules (x1 , x1 + x2 , . . . , (produits cumuls), sort (tri), order, unique remarque : sort(x) = x[order(x)] fft() (transform de Fourier) Pn
i=1 xi ),
cumprod()
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
31 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
32 / 147
Objets et Oprations
Dataframes
Objets et Oprations
Dataframes
Pour visualiser les premires lignes head() Pour denir ou visualiser le nom des lignes row.names Pour denir ou visualiser le nom des colonnes names La dimension de lobjet est donne par dim
> names ( d a t a 1 ) [ 1 ] " x1 " " x2 " " a " > names ( d a t a 1 )< c ( " c1 " , " c2 " , " c3 " ) > head ( d a ta 1 , 3 ) c1 c2 c3 1 1 1 a 2 1 2 b 3 1 3 c > dim ( d a t a 1 ) [ 1 ] 10 3 >row . names ( d a t a 1 ) < l e t t e r s [ 1 : 1 0 ] #l e v e c t e u r s l e t t e r s c o n t i e n t l e s l e t t r e s de l a l p h a b e t > head ( d a ta 1 , 2 ) c1 c2 c3 a 1 1 a b 1 2 b
26 septembre 2012 33 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 34 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
Objets et Oprations
Dataframes
Objets et Oprations
Dataframes
Pour extraire un lment ou un bloc, la syntaxe est la mme que pour les matrices. Pour extraire une colonne les deux syntaxes suivantes peuvent tre utilises
> A$ x [1] 1 2 3 > A[ ,1] [1] 1 2 3
y 2 3 4
y a a a
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
35 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
36 / 147
Objets et Oprations
Listes
Objets et Oprations
Listes
Exemple On construit une liste appele rnd qui contient 3 objets : un vecteur dans serie un scalaire dans taille une chane de caractres dans type La syntaxe est la suivante
>r d n= l i s t ( s e r i e =c ( 1 : 1 0 0 ) , t a i l l e =100 , t y p e=" a r i t h m " )
attention Une liste peut tre cre sans donner des noms aux variables cest a dire rdn=list(c(1:100),100,"arithm") .
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 37 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 38 / 147
Objets et Oprations
Listes
Objets et Oprations
Listes
attention Si la liste a t cre sans spcier de noms aux variables, il ny a pas de nom par dfaut et la seule la premire syntaxe est utilisable.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
39 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
40 / 147
Objets et Oprations
Listes
Objets et Oprations
Listes
Importer 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
Attention si un objet R appel x (ou y) existait avant lappel de la fonction load, il a t remplac par celui contenu dans le chier sav.rda saveRDS peut aussi tre utiliser si on sauvegarde une unique liste. Le chier est lu avec readRDS. On peut changer le nom de la liste la lecture du chier
> b = readRDS ( s a v . r d s ) > b $x [1] 1 $y [1] 3
Logiciel R 26 septembre 2012 42 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
41 / 147
Anne PHILIPPE
(U. Nantes)
Les fonctions
Les fonctions
Les fonctions
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
43 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
44 / 147
Les fonctions
Les fonctions
Exemple
La fonction suivante retourne le rsultat de n lancers dune pice.
PF = f u n c t i o n ( n , p r o b a . p i l e ) { #nb a l a t o i r e s u i v a n t U n i f ( 0 , 1 ) u=r u n i f ( n ) p f =(u<p r o b a . p i l e ) p f = as . i n t e g e r ( p f ) return ( pf ) }
Renvois multi-arguments
La fonction return interdit les sorties avec plusieurs arguments : il faut les regrouper dans un seul objet sous la forme dune liste.
PF = f u n c t i o n ( n , p r o b a . p i l e ) { u=r u n i f ( n ) #nb a l a t o i r e s u i v a n t U n i f ( 0 , 1 ) p f =(u<p r o b a . p i l e ) p f = as . i n t e g e r ( p f ) f =mean ( p f ) r e t u r n ( l i s t ( e c h a n t i l l o n = pf , f r e q u e n c e = f ) ) }
Excution de la fonction :
PF ( 4 , 1 / 2 ) $echantillon [1] 0 0 1 0 $frequence [ 1 ] 0.25 l= PF ( 4 , 1 / 2 ) l$echantillon [1] 0 0 1 1 l$f [ 1 ] 0.5
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
45 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
46 / 147
Les fonctions
Les fonctions
Paramtres dentre
Il y a trois faons de spcier les paramtres dentre dune fonction par la position : les paramtres dentre sont aects aux premiers arguments de la fonction. PF(3,1/2) : les paramtres dentre sont n=3 et proba.pile=1/2 par le nom : il sagit du moyen le plus sr, les noms des arguments sont prciss de manire explicite. On peut alors crire PF(proba.pile=1/2 ,n=3), lordre nest plus prioritaire avec des valeurs par dfaut : ces valeurs par dfaut seront utilises si les paramtres dentre ne sont pas spcis. On peut alors crire PF(3) ou PF(n=3) : les paramtres dentre sont n=3 et la valeur par dfaut pour proba.pile cest dire 1/2.
Les commandes
PF ( 1 0 ) OU PF ( 1 0 , 1 / 2 )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
47 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
48 / 147
Les fonctions
Les fonctions
IL est donc prfrable de placer les paramtres sans valeur par dfaut en premier dans la dclaration des variables dentre.
Les fonctions
Les fonctions
la fonction Vectorize
Soit f une fonction dont le paramtre dentre x est un scalaire. Vectorize transforme la fonction f en une fonction vectorielle cest dire une fonction qui value la fonction f en chaque point dun vecteur dentre. Soit x = (x1 , ..., xn ), on veut valuer f aux points xi .
# on t r a n s f o r m e l a f o n c t i o n { f } en une f o n c t i o n > df = Vectorize ( f , x ) >y=d f ( x ) v e c t o r i e l l e df .
t a i l l e d un o b j e t p l u
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
51 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
52 / 147
Les fonctions
Les graphiques
suite
> f (1 , y ) [1] 0.9092974 0.9589243 > # identique > f ( rep ( 3 , 1 ) , y ) [1] 0.7568025 0 . 6 5 6 9 8 6 6 > > #c a l c u l du t a b l e a u c r o i s > df = Vectorize ( f , x ) > df ( x , z ) [ ,1] [ ,2] [1 ,] 0.9092974 0.1411200 [2 ,] 0.9589243 0.2794155 > # les vecteurs colonnes
0.5440211 0.5365729 f (x[ i ] , y[ j ]) [ ,3] 0.7568025 0.6569866 sont f (1 ,1:2) f (2 ,1:2) f (3 ,1:2)
Les graphiques
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
53 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
54 / 147
Les graphiques
Les graphiques
10
15 Index
20
25
30
type=l
10
15 Index
20
25
30
1 2 3 4
20
40 Index
60
80
type="p" (points) ou "l" (ligne) : pour tracer une ligne ou un nuage de points.
type=s
10
15 Index
20
25
30
plot(x,y,pch=3)
type=h
4 x 0 2
1 2 3 4
0
-4 -2 0 x 2 4
10
15 Index
20
25
30
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
55 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
56 / 147
Les graphiques
Les graphiques
Graphique en 3D
reprsentation dune fonction de R2 ! R x < seq ( 10 , 1 0 , l e n g t h= 3 0 ) y < x f < f u n c t i o n ( x , y ) { r < s q r t ( x^2+y ^ 2 ) ; 10 s i n ( r ) / r } z < outer ( x , y , f ) p e r s p ( x , y , z , t h e t a = 3 0 , p h i = 3 0 , expand = 0 . 5 , c o l = " l i g h t b l u e " )
100
200
300
400
500
600
100
200
300
400 x
500
600
700
800
z
z
y
x
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
57 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
58 / 147
Les graphiques
Les graphiques
Superposition de courbes
superposer des courbes
commentaire
5
lgende legend
legend ( 1 , 1 . 9 , c ( " x^2 1" , " s i n " , " c o s " ) , c o l = c ( 3 , 4 , 6 ) , l t y = c (2 , 1, 1 ) , pch = c ( 1, 3 , 4))
x=rnorm ( 2 0 ) y=r e x p ( 2 0 ) #nuage de p o i n t s plot (x , y) #a j o u t e r un nuage de p o i n t s p o i n t s ( x + . 1 , y + . 1 , pch =2) #a j o u t e r une l i g n e l i n e s ( s o r t ( x ) , y , l t y =2) #a j o u t e r une l i g n e h o r i z o n t a l e a b l i n e ( h=3) #t e x t e + f r a m e t i t l e text (1 ,5 , " commentaire " ) t i t l e ( " superposer des courbes " )
1.5
1.0
x^2 - 1
0.5
0.5
0.0
left (x,y)
center (x,y)
right (x,y)
0.0
-0.5
-0.5
bottomleft
-1.0
-1
0 x
(x,y) 0.0
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
59 / 147
-1.0
0 x
2 Logiciel R
3
26 septembre 2012 60 / 147
Les graphiques
Les graphiques
Illustrations
1.0
Frequency
Density
methods ( p l o t ) [ 1 ] " p l o t . data . frame " [3] " plot . density " [ 5 ] " plot . formula " [ 7 ] " plot . histogram " [ 9 ] " p l o t . mlm" [ 1 1 ] " p l o t . new" [ 1 3 ] " p l o t . POSIXlt " [15] " plot . ts " [ 1 7 ] " p l o t . xy "
15
10
-1
1 r
0.0
0.1
0.2
0.3
" plot " plot " plot " plot " plot " plot " plot " plot
. default " . factor" . function " . lm " . mts " . POSIXct " . table " . window "
-1.0
-0.5
-3
-2
-1
0 x
100
sur un tableau
0.0
200
0.5
p l o t ( s i n , x l i m=c( p i , p i ) )
300
2 x
4 20
1
20
Histogram of r
0.4
density.default(x = r)
-2
-1
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
61 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
62 / 147
Les graphiques
Les graphiques
iris
1.3 v e r s i c o l o r 1.5 v e r s i c o l o r 1.9 2.0 virginica virginica
0
0
50
100
150
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
63 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
64 / 147
Les graphiques
Les graphiques
On commence par xer les axes des abscisses et des ordonns laide dun graphique vide.
p l o t ( c ( 1 , 9 ) , c ( 0 , 2 ) , t y p e="n" )
Sepal.Length
Arguments supplmentaires
p o l y g o n ( 1 : 9 , c ( 2 , 1 , 2 , 1 ,NA, 2 , 1 , 2 , 1 ) , c o l=c ( " r e d " , " b l u e " ) , b o r d e r=c ( " g r e e n " , " y e l l o w " , lwd =3 , l t y =c ( " d a s h e d " , " s o l i d " ) )
Sepal.Width
Petal.Length
1 2 3 4 5 6 7
etape 1
etape 2
etape 3
2.0
2.0
1.5
1.5
c(0, 2)
c(0, 2)
c(0, 2)
2 4 c(1, 9) 6 8
1.0
1.0
0.5
0.5
0.0
0.0
4.5
5.5
6.5
7.5
4 c(1, 9)
0.0
0.5
Petal.Width
1.0
1.5
2.0
4 c(1, 9)
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
65 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
66 / 147
Les graphiques
Les graphiques
autre exemple
Distance Between Brownian Motions
-5 0 5 10 15 20
Distance
20
40 Time
60
80
100
n=100 z . h a u t=c ( 0 , cumsum ( rnorm ( n ) ) ) z . b a s= c ( 0 , cumsum ( rnorm ( n ) ) ) xx < c ( 0 : n , n : 0 ) yy < c ( z . bas , r e v ( z . h a u t ) ) #g r a p h i q u e v i d e p o u r f i x e r l e s d i m e n s i o n s plot ( xx , yy , t y p e="n" , x l a b=" Time " , y l a b=" D i s t a n c e " ) #t r a c e r l e p o l y g o n e p o l y g o n ( xx , yy , c o l=" g r a y " , b o r d e r = " r e d " ) t i t l e ( " D i s t a n c e Between B r o w n i a n M o t i o n s " )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
67 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
68 / 147
Instructions conditionnelles
La syntaxe if (condition) {instructions} permet de calculer les instructions uniquement si la condition est vraie. if (condition) { A } else {B} calcule les instructions A si la condition est vraie et les instructions B sinon. Par exemple, if (x>0) y=x*log(x) else y=0 Remarque : Si les instructions se limitent un seul calcul comme dans cet exemple on peut utiliser la fonction ifelse y=ifelse(x>0,x*log(x),0)
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
69 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
70 / 147
Itrations
On utilise les boucles pour excuter plusieurs fois une instruction ou un bloc dinstructions Les trois types de boucle sont for : for(var in seq) {commandes} while : while(cond) { commandes} repeat : repeat { commandes ; if (cond) break }
1 2
Avec la commande if (condition) ... else ... la condition ne peut pas tre vectorielle Par exemple
> x= 1 : 7 > i f ( x >2) p r i n t ( "A" ) e l s e p r i n t ( "B" ) [ 1 ] "B"
Dans la condition, x a une longueur suprieure 1. Seul le premier lment est utilis : (x>2) correspond (x[1] >2) ifelse permet dappliquer une instruction conditionnelle sur chacune des coordonnes dun vecteur.
> i f e l s e ( x <2 , "A" , "B" ) [ 1 ] "A" "B" "B" "B" "B" "B" "B"
Alternative :
> g = f u n c t i o n ( x ) i f ( x >2) p r i n t ( "A" ) e l s e p r i n t ( "B" ) >vg = V e c t o r i z e ( g , x ) > vg ( 1 : 1 0 )
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 71 / 147
Dans une boucle for, le nombre ditrations est x. La dure dexecution des boucles while/repeat peut tre innie !
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
72 / 147
Exemple
Les 3 programmations suivantes retournent le mme rsultat.
1
Exemple
On veut simuler n variables alatoires suivant la loi de X1 + ... + Xp o les Xi sont iid suivant la loi uniforme sur [0, 1]. On stocke lchantillon dans Y .
# i n i t i a l i s a t i o n de Y a v e c d e s 0 Y = rep (0 , n ) for ( i in 0:n ) { Y [ i ] = sum ( r u n i f ( p , 0 , 1 ) ) }
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
73 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
74 / 147
Exemple
On simule des variables alatoires suivant la loi de Bernoulli B(1/2) jusqu lobtention du premier 1. Le nombre de variables (not N dans le code ci dessous) simules suivant la loi de Bernoulli suit une loi gomtrique de paramtre 1/2.
Exemple
On dispose des tempratures moyennes mensuelles releves Nottingham pendant 10 ans de 1920 1939.
> nottem Jan Feb Mar Apr May Jun J u l Aug Sep Oct Nov Dec 1920 4 0 . 6 4 0 . 8 4 4 . 4 4 6 . 7 5 4 . 1 5 8 . 5 5 7 . 7 5 6 . 4 5 4 . 3 5 0 . 5 4 2 . 9 3 9 . 8 1921 4 4 . 2 3 9 . 8 4 5 . 1 4 7 . 0 5 4 . 1 5 8 . 7 6 6 . 3 5 9 . 9 5 7 . 0 5 4 . 2 3 9 . 7 4 2 . 8 > nottem=m a t r i x ( nottem , n c o l =12 , byrow=T)
etc
En utilisant while
x=rbinom ( 1 , 1 , . 5 ) N=1 w h i l e ( x != 1 ) { x=rbinom ( 1 , 1 , . 5 ) N=N+1 }
En utilisant repeat
N=0 repeat { x=rbinom ( 1 , 1 , . 5 ) N=N+1 i f ( x==1) b r e a k }
On peut aussi initialiser le vecteur temp comme le vecteur vide, puis on le remplit en concatnant les rsultats
temp = NULL for ( i in 1:12) temp = c ( temp , mean ( nottem [ , i ] ) )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
75 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
76 / 147
La fonction apply
apply(matrice , MARGIN, FUN, ARG.COMMUN) La fonction apply() permet dappliquer la mme fonction FUN sur toutes les lignes (MARGIN=1) ou les colonnes (MARGIN=2) dune matrice MAT Chaque ligne ( (MARGIN=1) ou les colonnes (MARGIN=2) ) est aecte au premier paramtre de la fonction FUN La syntaxe de FUN est FUN( x, ARG.COMMUN) o
x est un vecteur ARG.COMMUN reprsente ventuellement des paramtres supplmentaires qui sont communs toutes les excutions.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
77 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
78 / 147
replicate
La fonction replicate value n fois une mme expression [utile lexpression implique des nombres alatoires ! !]. La syntaxe : replicate(n, expression) Exemples
> r e p l i c a t e (10 ,1+1) [1] 2 2 2 2 2 2 2 2 2 2 > x=rnorm ( 1 0 ) > r e p l i c a t e ( 5 , mean ( x ) ) [1] 0.5073058 0.5073058
avec boucle
n =100 N=500 med = 1 :N f o r ( i i n 1 :N) med [ i ] = q u a n t i l e ( rnorm ( n , 0 , 1 ) , p r o b s =1/ 2 )
Sans boucle
3
Histogram of med
0.5073058
0.5073058
0.5073058 0.19182371
Density
0.02613061
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
79 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
80 / 147
sapply,lapply
Ces fonctions calculent la mme fonction sur tous les lments dun vecteur ou dune liste. La syntaxe : lapply(X,FUN, ARG.COMMUN) 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.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
81 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
82 / 147
sans boucle
FUN . max = f u n c t i o n ( n , y ) max ( y [ 1 : n ] ) M = s a p p l y ( 1 : t , FUN . max , y = x )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
83 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
84 / 147
La fonction tapply
Le type factor est un objet vectoriel qui permet de spcier une classication discrte (nombre ni de groupes). La fonction tapply applique une fonction FUN sur les sous groupes dun vecteur X dnis par une variable de type factor GRP tapply(X,GRP,FUN,...)
> note [ 1 ] 10.83676 11.63757 11.07312 13.79699 10.84186 10.72562 13.58680 14.85070 13.15659 14.36744 > xgr [ 1 ] " a " "b" " a " "b" " a " " a " "b" " a " "b" "b" > g r=f a c t o r ( x g r ) > gr [1] a b a b a a b a b b Levels : a b > t a p p l y ( n o t e , gr , mean ) a b 11.66561 13.30908
proc.time value combien de temps rel et CPU (en secondes) le processus en cours dexcution a dj pris.
> ptm < p r o c . time ( ) > f o r ( i i n 1 : 5 0 ) mean ( r u n i f ( 1 0 0 0 ) ) > p r o c . time ( ) ptm utilisateur systme coul 0.016 0.001 0.027
La fonction aggregate permet aussi dvaluer une fonction sur des sous ensembles. Elle ne necessite pas la dnition dune variable de type factor.
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012
85 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
86 / 147
#b o u c l e > x =1:M > f o r ( i i n 1 :M) x [ i ] = mean ( r u n i f ( n ) ) #r e p l i c a t e > x=r e p l i c a t e (M, mean ( r u n i f ( n ) ) ) #a p p l y > Z=m a t r i x ( r u n i f ( nM) , n c o l= M) > x=a p p l y ( Z , 2 , mean )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
87 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
88 / 147
Gnralits
Soit X une variable alatoire de loi PX (P PX (A) = P(X 2 A) =
P(X = x) R f (x)dx . A
x2A
Lois discrtes
Loi Loi Loi Loi Loi binomiale (n,p) hypergomtrique (N,n,k) de Poisson (a) gomtrique (p) support ni {(ai , pi ), i = 1...m} Gaussienne (m, 2 ) uniforme sur [a, b] de Student degrs de libert du 2 degrs de libert binom hyper pois geom sample norm unif t chisq
P(X = x) pour les lois discrtes f (x) pour les lois continues la fonction de rpartition F (x) = P(X x) les quantiles F (u) = inf{x : F (x) u} 1
Lois continues
Loi Loi Loi Loi
=F
1
Logiciel R 26 septembre 2012 89 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 90 / 147
0.4
p l o t ( x , dnorm ( x , 0 , 1 ) , t y p e=" l " ) p l o t ( x , pnorm ( x , 0 , 1 ) p l o t ( u , qnorm ( u , 0 , 1 ) p l o t ( rnorm ( 1 0 , 0 , 1 ) ) , t y p e=" l " ) , t y p e=" l " )
qnorm(u)
0.0
0.1
-4
-2
0 x
pnorm(x)
x=seq ( 5 , 5 , . 0 1 ) u=seq ( 0 , 1 , . 0 1 )
0.2
0.3
-4
-2
0 x
quantile function
random values
-4
0.0
0.2
0.4 u
0.6
0.8
1.0
-2
rnorm(10)
6 Index
10
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
91 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
92 / 147
6 5 4 2
table(DE)
4 4 2 2
3 3 3 3
5 1 1 3
4 3 2 2
5 1 6 2
3 3 1 6
5 4 6 6
0
1
10
15
20
3 DE
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
93 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
94 / 147
f(x)
4 x
10
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
95 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
96 / 147
5000
(U. Nantes)
10000
15000
Questions :
100
120
Comment reprsenter graphiquement lchantillon dune variable continue discrte qualitative ? Comment reprsenter un tableau de donnes numriques ?
Construction du boxplot :
Les points reprsentent les valeurs aberrantes. Elles sont dnies comme les observations en dehors de lintervalle I = [Q1 1.5(Q3 Q1 ), Q3 + 1.5(Q3 Q1 )].
Anne PHILIPPE
(U. Nantes)
Logiciel R
20
40
60
80
26 septembre 2012
99 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
100 / 147
Histogramme
Estimation de la distribution dune variable continue
h i s t ( s q r t ( i s l a n d s ) , b r e a k s = 12) h i s t ( s q r t ( i s l a n d s ) , b r e a k s = c ( 4 0 : 5 , 10 3 : 5 , 7 0 , 1 0 0 , 1 4 0 ) )
equidistant breaks NON - equidistant breaks
Density
Density
0.10
19
0.05
11 5 32
-3
1 0 0 2 60 3 80 100 2 140
-2
-1
0 dat
20
40
60
80
100
140
20
40
sqrt(islands)
sqrt(islands)
density.default(x = dat)
0.4
p a r ( mfrow=c ( 1 , 2 ) ) x=rnorm ( 1 0 0 0 0 ) y=d e n s i t y ( x ) plot (y) h i s t ( x , p r o b a=T) lines (y) z=seq ( min ( x ) , max ( x ) , 0 . 0 1 ) #s u p e r p o s e d e n s i t t h o r i q u e l i n e s ( z , dnorm ( z , 0 , 1 ) , l t y =2)
Density
0.15
WRONG histogram
Density
Frequency
Largument breaks xe le nombre ou les bornes des classes. On peut aussi utiliser nclass pour xer le nombre de classes.
5 10 0
0 20 40 60 80 100 140 sqrt(islands)
0.2
les options
15
0.00
0.0
0.2
proba =T : laire en dessous de la courbe est gale 1. Par dfaut proba =F : laire est gale au nombre dobservations.
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
101 / 147
0.0
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
102 / 147
Variables qualitatives
On relve pendant un mois la mteo Cental Park. La variable est valeurs dans {clear, partly.cloudy, cloudy }.
> c e n t r a l . park . cloud [ 1 ] p a r t l y . cloudy p a r t l y . cloudy [ 5 ] p a r t l y . cloudy p a r t l y . cloudy [ 9 ] p a r t l y . cloudy c l e a r [13] cloudy cloudy [17] p a r t l y . cloudy c l e a r p a r t l y . cloudy clear cloudy clear clear clear cloudy p a r t l y . cloudy p a r t l y . cloudy clear
Comment ordonner les modalits ? en gnral, on les classe suivant lordre croissant des eectifs.
barplot ( sort ( tab ))
pie(tab)
0 4 8
Pour rsumer linformation : on calcule la rpartition (ou la frquence) des modalits dans lchantillon.
> table ( c e n t r a l . park . cloud ) c e n t r a l . park . cloud c l e a r partly . cloudy 11 11 cloudy 9
partly.cloudy
clear
clear
partly.cloudy
cloudy
cloudy
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 103 / 147 Anne PHILIPPE (U. Nantes) Logiciel R
clear
partly.cloudy
104 / 147
26 septembre 2012
Variables discrtes
On relve N le nombre dappels tlphoniques reus par un central pendant un mois.
> N [ 1 ] 6 16 3 6 8 10 9 9 10 etc > t = t a b l e (N) N 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 4 3 7 16 15 25 18 23 18 25 9 6 9 4 2 >
30
nb d'appels
John
Jack
Peter
Peter
10
10
15
jours
Reprsentation de la distribution et comparaison avec la densit de la loi de Poisson de paramtre la moyenne empirique de lchantillon (points en rouge).
0.12
table(N)/length(N)
44
43
John
Jack
Peter
0.00
2
0.04
0.08
b a r p l o t ( s a l e s , y l i m=c ( 4 0 , 4 7 ) , xpd=F )
45
46
9 N
11
13
15
17
Anne PHILIPPE
(U. Nantes)
Logiciel R
Logiciel R
26 septembre 2012
106 / 147
5 10 15 20 25
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 : 1 7 # GRAPHIQUE FAUX b a r p l o t ( t a b l e (N) / l e n g t h (N) ) p o i n t s ( J , d p o i s ( J , mean (N ) ) )
GRAPHIQUE FAUX
N2
2 5 8 12 17
10
10 12 14 16
15
10 N
15
b o x p l o t (N, N2 , c o l=c ( " g r e e n " , " o r a n g e " ) ) t=t a b l e ( N2 ) x t = as . i n t e g e r ( names ( t ) ) + . 3 p l o t ( t a b l e (N ) , c o l=" g r e e n " , lwd =2 , x l a b=" " , y l a b=" " ) l i n e s ( x t , t , c o l=" o r a n g e " , t y p e="h" , lwd =2) q q p l o t (N, N2 ) abline (0 ,1)
frquence
frquence
2 2 4 6 8 10 12 14 16
10
12
14
16
Pour les variables alatoires continues, on compare les estimations de la densit : histogrammes, estimateur noyau.
107 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 108 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
14
table(grades)
A AB+ B B- C+ C D F
A AB+ B BC+ C D F
20
14
A AB+ B BC+ C D F
12
10
15
10
prev
4 0 1 4 2 0 1 1 1
B-
0 0 2 3 0 0 1 0 1
C+ 0 0 0 1 0 0 3 0 1
3 0 0 3 1 1 5 4 3
2 0 1 0 0 0 9 3 4
0 0 1 2 0 0 7 1 11
grade
B+
Bgrade
A-
Bprev
10
12
B+
Bprev
C C+ B B-
B+ A-
> b a r p l o t ( tab , x l a b=" g r a d e " , l e g e n d . t e x t=T , c o l=rainbow ( 1 0 ) , b e s i d e=T) > b a r p l o t ( t ( t a b ) , x l a b=" p r e v " , c o l=rainbow ( 1 0 ) ) > b a r p l o t ( t ( t a b ) , x l a b=" p r e v " , l e g e n d . t e x t=T , c o l=rainbow ( 1 0 ) , b e s i d e=T)
Anne PHILIPPE
F D
(U. Nantes)
Logiciel R
26 septembre 2012
109 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
110 / 147
Pour visualiser le lien entre les variables : on utilise la fonction pairs sur les 3 premires colonnes. On peut ajouter en option la couleur des points dnies partir de la variable gender
20 60 100 140
50
150
height
height
40
30
20
20
30
40
10
20
40
60
80 weight
100
120
140
10
80 120
age
age
40
40
80 120
weight
weight
height
30 10
height
10 30
La couleur des points est dnie par la variable gender La taille des points est proportionnelle lage des individus.
Le type de points est dnie par la variable gender Le dgrad de couleurs est dni partir de la variable age.
60 100 140
20
50
20
60 100 140
50
40
80
120
10
30
50
40
80
120
10
30
50
p a i r s (X [ , 1 : 3 ] )
Anne PHILIPPE (U. Nantes)
p a i r s (X [ , 1 : 3 ] , c o l=X [ , 4 ] )
Logiciel R 26 septembre 2012 111 / 147
Infrence statistique
Infrence statistique
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
113 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
114 / 147
Infrence statistique
Infrence statistique
0.4
0.4
0.2
0.1
0.1
0.2
0.0
0.0
On simule un chantillon suivant la loi gaussienne de taille 1000 On trace lhistogramme pour direntes valeurs du nombre de classes. On compare lhistogramme avec la densit thorique de loi gaussienne (courbe en rouge)
-4
-2
0 x
-4
-2
0 x
0.3
Density
Density
0.3
1.0
1.0
0.8
0.8
0.4
0.4
Density
Density
0.4
0.4
Density
1.0 0.0 0.5 1.0
0.6
0.6
0.3
0.3
0.2
0.2
Density
Density
0.0
0.0
0.2
0.2
1.0
0.0
0.5
1.0
0.0
1.0
0.2
0.4
0.6
0.8
1.0
0.0
0.5
1.0
0.1
0.1
triangular
biweight
cosine
1.0
1.0
0.0
0.0
0.8
0.8
0.6
0.6
Density
Density
-4
-2
0 x
-4
-2
0 x
0.4
0.4
Density
1.0 0.0 0.5 1.0
0.2
0.2
0.0
0.0
1.0
0.0
0.5
1.0
0.0
1.0
0.2
0.4
0.6
0.8
1.0
0.0
0.5
1.0
hist(x, nclass=*** ,proba=T) ou hist(x,proba = T) par dfaut le nombre de classes est optimis pour des chantillons gaussiens
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 115 / 147
la dimension de la fentre bw. Par dfaut le paramtre est optimis pour un chantillon gaussien
Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 116 / 147
Infrence statistique
Infrence statistique
1 2 (x
5)2
3 1 + p e 4 2
2 1 2 (x+5)
! F (t)
bandwidths = 0.1
0.10
Density
0.3
Density
0.2
0.08
0.05
0.10
0.06
5 N = 50
0.00
0.0
10
5 N = 50
10
c(0:(n 1))/n
0.04
bandwidths = 2
bandwidths = 3
0.08
0.02
Density
0.08
Density
0.04
0.02
0.04
0.00
10
5 N = 50
10
10
5 N = 50
10
0.00
15
5 N = 50
10
15
0.0
Bandwidth = 2.096
Bandwidth = 2
Bandwidth = 3
0.2
0.00
0.4
0.06
0.6
Bandwidth = 0.1
Bandwidth = 1
> x= rnorm ( 1 0 0 ) >Fn=e c d f ( x ) >p l o t ( Fn , c o l=" g r e e n " ) > z=seq ( min ( x ) , max ( x ) , 0 . 0 1 ) > l i n e s ( z , pnorm ( z ) , c o l =1 , lwd =2)
Density
0.8
0.1
1.0
0.15
0 sort(x)
3
118 / 147
26 septembre 2012
Infrence statistique
Infrence statistique
Tests
1000
2000 Index
3000
4000
5000
-2
0
0 1 2 3 4
yc
1000
2000 Index
3000
4000
5000
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
119 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
120 / 147
Infrence statistique
Tests
Infrence statistique
Tests
t . t e s t ( x , mu=5 , a l t=" two . s i d e d " ) t . t e s t ( x , y , a l t=" l e s s " , c o n f =.95) var . text ( x , y ) cor . t e s t ( x , y ) chisq . test (x , y) Box . t e s t ( z , l a g = 1 ) shapiro . test (x) k s . t e s t ( x , " pnorm " ) ks . t e s t ( x , y )
#s t u d e n t
Welch Two Sample t t e s t data : x and y t = 0.2178 , d f = 1 7 8 . 4 4 6 , p v a l u e = 0 . 8 2 7 8 a l t e r n a t i v e h y p o t h e s i s : t r u e d i f f e r e n c e i n means i s n o t e q u a l t o 0 95 p e r c e n t c o n f i d e n c e i n t e r v a l : 0.2648092 0 . 2 1 2 1 6 0 8 sample e s t i m a t e s : mean o f x : 0 . 9 5 4 4 1 2 7 mean o f y : 0 . 9 8 0 7 3 6 9
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
121 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
122 / 147
Infrence statistique
Tests
Infrence statistique
Tests
Test dajustement
On construit un gnrateur de nombres alatoires suivant la loi normale en utilisant le Thorme Central Limite appliqu des variables alatoires iid suivant la loi uniforme sur (0, 1). Mthode de simulation non exacte .... U = 1, . . . , Un iid suivant la loi uniforme r n 1 ( Un ) ) X N(0, 1) 12 2 La gnrateur scrit
simU< f u n c t i o n ( t a i l l e , s i z e ) { y = m a t r i x ( r u n i f ( t a i l l e s i z e ) , n c o l=s i z e ) ( a p p l y ( y , 1 , mean) 1/ 2 ) s q r t ( t a i l l e / 1 2 ) }
Validit de lalgorithme
Pour direntes valeurs de n = 1, 5, 10
1
On teste la normalit laide de deux procdures de test, le test de Kolmogorov et celui de Shapiro. On compare la fonction de rpartition empirique et la fonction de rpartition thorique. On compare lestimation de la densit par un histogramme et la densit thorique.
n 1X Un = Ui n i=1
X = simU ( 1 0 0 0 , n ) t e s t 1=k s . t e s t (X , " pnorm " , 0 , 1 ) $p . v a l u e t e s t 2 = s h a p i r o . t e s t (X) $p . v a l u e p l o t ( s o r t (X ) , ( 1 : s i z e ) / s i z e , t y p e=" s " , c o l=" o r a n g e " ) l i n e s ( seq ( 3 , 3 , . 1 ) , pnorm ( seq ( 3 , 3 , . 1 ) ) , c o l=" r e d " ) t i t l e ( p a s t e ( "n=" , n , " e t p v a l u e ( k s )=" , f l o o r ( c ( t e s t 1 ) 1 0 0 ) / 1 0 0 ) ) h i s t (X , c o l=" o r a n g e " , x l i m=c ( 3 , 3 ) , p r o b a=T , main=" " ) l i n e s ( seq ( 3 , 3 , . 1 ) , dnorm ( seq ( 3 , 3 , . 1 ) ) , c o l=" r e d " ) t i t l e ( p a s t e ( " p v a l u e ( s h a p i r o )=" , f l o o r ( c ( t e s t 2 ) 1 0 0 ) / 1 0 0 ) )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
123 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
124 / 147
Infrence statistique
Tests
Infrence statistique
Rgression
Les rsultats
n= 1 et pvalue(ks)= 0
(1:size)/size (1:size)/size 0.8 0.8
n= 5 et pvalue(ks)= 0.01
(1:size)/size 0.8
n= 10 et pvalue(ks)= 0.81
7
1.5
0.5 sort(X)
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 X
3
125 / 147 Anne PHILIPPE (U. Nantes) Logiciel R 26 septembre 2012 126 / 147
(U. Nantes)
26 septembre 2012
Infrence statistique
Rgression
Infrence statistique
Rgression
Rgression linaire
Le modle le plus simple y = ax + b +
Visualisation : plot.lm
Residuals vs Leverage Residuals vs Fitted
0.5
40
23
49
23
49
Standardized residuals
35
Pour raliser une rgression linaire, par la mthode des moindres carrs, on utilise la fonction lm . Sur les donnes cars
120
Residuals -1 0 -2
39
Cook's distance 0.00 0.02 0.04 0.06 0.08 0.10 0 20 40 Fitted values lm(cars$dist ~ cars$speed) 60 80
Standardized residuals
Standardized residuals
> lm ( c a r s $ d i s t ~ c a r s $ s p e e d ) Call : lm ( f o r m u l a = c a r s $ d i s t ~ c a r s $ s p e e d ) Coefficients : ( Intercept ) cars $speed 17.579 3.932 > p l o t ( c a r s $ speed , c a r s $ d i s t ) > a b l i n e ( r e g , c o l =3 , lwd = 2 )
cars$dist
Normal Q-Q
-20
20
Scale-Location
23 49
1.5
23
49
35
100
35
80
60
-1
40
-2
-2
-1
0.0
0.5
1.0
20
60
80
20
10
15 cars$speed
20
25
Remarque : Si les donnes sont disponibles sous la forme dune liste on peut utiliser la syntaxe
> f i t = lm ( d i s t ~ s p e e d , c a r s )
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
127 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
128 / 147
Infrence statistique
Rgression
Infrence statistique
Rgression
Extension
Rgression multiple lm(v v1 + v2 + v3) Rgression linaire gnralise glm etc Mthodes non paramtriques
0 20 40 60 80 100 120
dist
10
15 speed
20
25
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
129 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
130 / 147
Infrence statistique
Rgression
Sries Chronologiques
Polynmes Locaux
100
120
Sries Chronologiques
20
dist
40
60
80
10
15 speed
20
25
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
131 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
132 / 147
Sries Chronologiques
Sries Chronologiques
Exemple
> > data ( USAccDeaths ) USAccDeaths
Jan 9007 7750 8162 7717 7792 7836 Feb 8106 6981 7306 7461 6957 6892 Mar 8928 8038 8124 7767 7726 7791 Apr May Jun Jul Aug 9137 10017 10826 11317 10744 8422 8714 9512 10120 9823 7870 9387 9556 10093 9620 7925 8623 8945 10078 9179 8106 8890 9299 10625 9302 8192 9115 9434 10484 9827 Sep 9713 8743 8285 8037 8314 9110 Oct 9938 9129 8466 8488 8850 9070 Nov 9161 8710 8160 7874 8265 8633 Dec 8927 8680 8034 8647 8796 9240
Lobjet srie chronologique est une liste qui contient les valeurs observes, la frquence des observations, la date de la premire observation la date de la dernire, etc...
> p l o t ( USAccDeaths )
USAccDeaths
1974
1975
1976 Time
1977
1978
1979
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
133 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
134 / 147
Sries Chronologiques
Sries Chronologiques
Filtre
Series
Bruit.Blanc
> d i f f ( x , l a g=p , d i f f e r e n c e s =d )
1.0
0.8
Bruit.Blanc
ACF
0.2
-1
0.4
0.6
20
40
60
80
100
-0.2
-2
Time
Anne PHILIPPE
(U. Nantes)
Logiciel R
0.0
26 septembre 2012
135 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
136 / 147
Sries Chronologiques
Sries Chronologiques
modlisation et prvision AR
La fonction ar permet destimer les paramtres dun modle AR Ap (L)X [t] = e[t] Si lordre p nest pas prcis, le meilleur modle AR pour le critre AIC est slectionn.
>data ( l h ) >a r ( l h ) Call : ar ( x = lh ) Coefficients : 1 2 0.6534 0.0636 Order s e l e c t e d 3
Series USAccDeaths
Series USAccDeaths
0.4
0.0
0.5 Lag
1.0
1.5
Partial ACF
ACF
0.6 Lag
1.0
1.4
3 0.2269 s i g m a ^2 e s t i m a t e d as
0.1959
0
0.0
0.1
0.2
0.3
0.4
0.5
freq
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
137 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
138 / 147
Sries Chronologiques
Sries Chronologiques
>a r ( l h , a i c = FALSE , o r d e r . max = 4 ) # on f i x e p=4 Call : a r ( x = l h , a i c = FALSE , o r d e r . max = 4 ) Coefficients : 1 2 3 4 0.6767 0.0571 0.2941 0.1028 O r d e r s e l e c t e d 4 s i g m a ^2 e s t i m a t e d as 0 . 1 9 8 3
ARMAacf pour le calcul des covariances thorique dun modle ARMA ARMAtoMA pour le dveloppement en MA innie dun modle ARMA arima.sim pour simuler des trajectoires dun modle ARMA ou ARIMA
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
139 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
140 / 147
Sries Chronologiques
Sries Chronologiques
La fonction ar permet destimer les paramtres dun processus AR. Pour les modles ARMA dordre (p,q) X [t] = a[1]X [t 1] + ... + a[p]X [t p] + e[t] + b[1]e[t 1] + ... + b[q]e[t
avec Y [t] = (I
L)d (I
Ls )D X [t]
on utilise la fonction arima, la syntaxe est out=arima(x,order=c(p,0,q)) la sortie out est une liste contenant : out$coef : estimation des coecients, out$resid : estimation des rsidus e[t] ATTENTION x doit tre une srie chronologique (x=ts(x))
la sortie est une liste contenant : out$coef : estimation des coecients, out$aic : critre AIC, out$resid : estimation des rsidus e[t] option : include.mean=F ou T
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
141 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
142 / 147
Sries Chronologiques
Sries Chronologiques
Exemple
data ( USAccDeaths ) a = c ( USAccDeaths ) USAcc= t s ( a [ 1 : 6 0 ] , f r e q u e n c y =12 , s t a r t=c ( 1 9 7 3 , 1 ) ) f i t = a r i m a ( USAcc , o r d e r=c ( 0 , 1 , 1 ) , s e a s o n a l= l i s t ( o r d e r=c ( 0 , 1 , 1 ) ) ) Call : a r i m a ( x = USAcc , o r d e r = c ( 0 , 1 , 1 ) , s e a s o n a l = l i s t ( order = c (0 ,1 , 1))) Coefficients : ma1 sma1 0.4343 0.4419 Approx s t a n d a r d e r r o r s : ma1 sma1 0.1368 0.0122 s i g m a ^2 e s t i m a t e d 1 1 4 2 7 6 : l o g l i k e l i h o o d = 341.73 , a i c = 687.46
Exemple :
p = p r e d i c t ( f i t , n . ah ea d =12) p l o t ( USAccDeaths , c o l=" o r a n g e " ) l i n e s ( p$ p r e d , c o l=" r e d 3 " ) l i n e s ( p$ p r e d +1.96 p$ se , c o l=" b l u e 2 " ) l i n e s ( p$ p r e d 1.96 p$ se , c o l=" b l u e 2 " )
USAccDeaths
7000
1973
8000
9000
10000
11000
1974
1975
1976 Time
1977
1978
1979
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
143 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
144 / 147
Sries Chronologiques
Sries Chronologiques
Lissage exponentiel
La mthode de lissage de Holt & Winter est disponible sous R. Les fonctions sappelle HoltWinters et predict.HoltWinters. Exemple : sur la srie data(co2)
data ( co2 ) m = H o l t W i n t e r s ( co2 ) p = p r e d i c t (m, 5 0 , p r e d i c t i o n . i n t e r v a l = TRUE) p l o t (m, p ) #l i s s a g e # prevision
> methods ( p r e d i c t ) [ 1 ] " p r e d i c t . ar " [3] "predict . loess " [ 5 ] " p r e d i c t . smooth . s p l i n e " [ 7 ] " p r e d i c t . glm " [ 9 ] " p r e d i c t . mlm"
320
330
340
Observed / Fitted
350
360
370
HoltWinters filtering
1960
1970
1980 Time
1990
2000
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
145 / 147
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
146 / 147
Sries Chronologiques
La librairie forecast
Cette librarie dveloppe par Rob J Hyndman contient des mthodes pour lanalyse et la prvision de sries temporelles univarie
1 2
le lissage exponentiel, Holt Winter, ... Modles BATS (Exponential smoothing state space model with Box-Cox transformation, ARMA errors, Trend and Seasonal components) modlisation automatique ARIMA. modlisation automatique SARIMA .
3 4
Par dfaut cette librarie utilise le traitement parallle pour acclrer les calculs dans la slection automatique des modles .
Anne PHILIPPE
(U. Nantes)
Logiciel R
26 septembre 2012
147 / 147