Fichier PDF

Partagez, hébergez et archivez facilement vos documents au format PDF

Partager un fichier Mes fichiers Boite à outils PDF Recherche Aide Contact



Anne Philippe cours R .pdf



Nom original: Anne-Philippe-cours-R.pdf

Ce document au format PDF 1.3 a été généré par / GNU Ghostscript 7.05, et a été envoyé sur fichier-pdf.fr le 22/05/2014 à 18:04, depuis l'adresse IP 213.140.x.x. La présente page de téléchargement du fichier a été vue 1223 fois.
Taille du document: 442 Ko (48 pages).
Confidentialité: fichier public




Télécharger le fichier (PDF)









Aperçu du document


Le logiciel R

A. Philippe 1

Notes de Cours sur le logiciel R

Anne PHILIPPE

Slide 1

Université des Sciences et Technologies de Lille
Laboratoire de Mathématiques Appliquées FRE-CNRS 2222

October 26, 2004

Installation
Le logiciel R est un freeware disponible par exemple sur le site
http://cran.ch.r-project.org/
Il existe des versions
Slide 2

• Windows 95 et plus
• Linux ...
Disponible :
• Le programme de "base"
• Des librairies complémentaires

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 2

Sous Linux
Le logiciel se lance en tapant R dans une fenêtre de commande Linux :
• informations sur le logiciel
• les commandes élémentaires :
Slide 3

Type "demo()" for some demos, "help()" for on-line help
"help.start()" for a HTML browser interface to help.
Type "q()" to quit R.
>q()
Save workspace image? [y/n/c]:
• le symbole > apparaît automatiquement en début de chaque
ligne de commandes
• le symbole + apparaît en début de ligne si la précédente est
incomplète

Opérations élémentaires
• Opérations élémentaires sur les scalaires : ∗, −, +, /, ˆ
>2+4
6
Slide 4

• Opérations avec affectation (avec ou sans affichage)
>x=2+4
>x
6
>(x=2+4)
6

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 3

Les différents objets

Slide 5

• Vecteurs
• Matrices



Slide 6

Listes
Fonctions

Les vecteurs

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 4

Créer des vecteurs
• la fonction c() concatène des scalaires ou des vecteurs :
> x=c(1,4,9)
> y=c(x,2,3)
> y
[1] 1 4 9 2 3
Slide 7

• Suites arithmétiques 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 n’est pas un entier
[1] 1.4 2.4 3.4 4.4 5.4 6.4

raison -1

• Généralisation : seq(a,b,t) où a est premier terme, le dernier
≤ b et la raison t

• x=rep(y ,n) pour créer un vecteur constitué de l’élément y
répété n fois. (y peut être un scalaire ou un vecteur)

Slide 8
• Importer des données
x=scan("data.dat") : pour créer un vecteur à partir de
données stockées dans un fichier, ici data.dat.

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

Slide 9

A. Philippe 5

Les Matrices

Créer des matrices
Les matrices sont créées avec la fonction matrix() à partir d’un
vecteur. On doit fixer le nombre de colonnes ncol et/ou le nombre de
lignes nrow.
> x = matrix(c(2,3,5,7,11,13),ncol=2)
Slide 10

Par défaut la matrice est remplie colonne par colonne. Pour remplir
ligne par ligne, on ajoute l’argument 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

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 6

Attention : si la dimension du vecteur n’est pas égale au produit
(ncol × nrow) alors l’opération effectuée est la suivante :

Slide 11

> 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

Slide 12

vecteurs et matrices

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 7

Extraire des éléments
> vect=c(1.1:10.1)

Slide 13

> mat=matrix(vect,ncol=3,nrow=3)

> vect[1]
[1] 1.1
> mat[,1]
#1er colonne
[1] 1.1 2.1 3.1

> mat[2,1]
[1] 2.1
> mat[3,]
# ligne n ◦ 3
[1] 3.1 6.1 9.1

> vect[c(2,4,8)]
[1] 2.1 4.1 8.1
>

mat[2:3,1:2]
[,1] [,2]
[1,] 2.1 5.1
[2,] 3.1 6.1

# sous matrice

• extraire les composantes >8
vect[vect>8]
Slide 14

• extraire les composantes >8 ou <2
vect[(vect>8) | (vect<2)]
• extraire les composantes >8 et <10
vect[(vect>8) & (vect<10)]

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 8

Opérations sur les Matrices/Vecteurs
• Les opérations + * - / entre 2 vecteurs ou matrices de même
dimension sont des opérations terme à terme.a
> x=c(1:5)
> y=c(rep(0,3),rep(1,2))
Slide 15

> x
[1] 1 2 3 4 5
> y
[1] 0 0 0 1 1
> x*y
[1] 0 0 0 4 5
a le

produit matriciel est obtenu avec % ∗ %

ATTENTION
Si les vecteurs ne sont pas de même longueur,
le plus court est complété automatiquement .

Slide 16

> 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

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 9

Les fonctions "classiques"
Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice
constituée des éléments eai,j .
Idem pour les fonctions :
Slide 17

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

Ces fonctions retournent un scalaire :
• sum() (somme), prod() (produit), mean() (moyenne), var()
(variance)
• max(), min()
• length(), ncol(), nrow()
Slide 18

Ces fonctions retournent un vecteur :
• cumsum() (sommes cumulées), cumprod() (produits cumulés),
fft() (transformé de Fourier)
• which.max(), which.min(), which() (fonction qui retourne
les positions)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

Slide 19

A. Philippe 10

Listes

Définition
C’est une structure qui regroupe des objets (pas nécessairement de
même type).
• On crée les listes avec la fonction list
Slide 20

• Pour obtenir une liste (appelée rnd ) contenant
– un vecteur dans serie

– un scalaire dans taille
– une chaîne de caractères dans type
• la syntaxe est la suivante
>rdn=list(serie=c(1:100),taille=100,type="arithm")

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 11

Opérations sur les listes
• Pour visualiser les composantes d’une liste

Slide 21

>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 d’une liste
>rdn$taille
[1] 100

OU

>rnd[[2]]
[1] 100

• Pour créer des objets R à partir d’une liste (extraire les
compasantes d’une liste)
Slide 22

>attach(rdn)
"serie" "taille" "type"
• supprimer les objets créés avec la fonction attach :
>detach(rdn)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

Slide 23

A. Philippe 12

Les fonctions

Structure générale
• La structure générale d’une fonction est

Slide 24

>myname=function(liste_des_paramètres)
+{
+ commandes
#le symbole + s’inscrit automatiquement
+list(sortie)
}
• Exécuter la fonction : >myname(...)
• Éditer la fonction : fix(myname)
• On peut mettre sur les paramètres des valeurs par défaut.

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 13

• Exemple

>exemple=function(n=10)
+{ sample=randn(n)
+ m = mean(sample) ; v =var(sample)
+list(serie=sample,moyenne=m, variance=v) }

Slide 25

>exemple(10)
OU exemple()
$serie
[1] -1.1532544 -1.0295700 -0.9065778 -0.7024161
[7] -1.0301214 1.0690254 -0.2276646 0.1753657
$moyenne
[1] -0.2267737
$var
[1]
0.7674006
>sortie = exemple(10)
>sortie$serie
[1] -1.1532544 -1.0295700 ...

0.4172284

1.1202485

Structures de contrôles
Slide 26

itérations

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 14

• Test
if (x>0) y=x*log(x) else y=0
équivalent à
y=ifelse(x>0,x*log(x),0)
• Boucle : Les 3 structures suivantes sont équivalentes
Slide 27

>
+
+
+

for ( i in 1:10) ou
{
print(i)
}

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

ou

> repeat
+ {
+ print(i)
+ if (i <10 )
+ {i=i+1} else
+ { break}
+ }

La fonction apply
La fonction apply() permet d’effectuer des opérations sur les lignes
ou les colonnes d’une matrice.
Cette fonction retourne un vecteur.
La syntaxe :
Slide 28

> apply(x,1,mean)
> apply(x,2,mean)

calcul la moyenne des lignes
calcul la moyenne des colonnes

voir aussi
• tapply
• lapply
• sapply

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 15

Quelques commandes
> ls() # liste des variables et des fonctions
> fix(a) # pour éditer l’objet a
Slide 29

> source("nom.com") # pour exécuter les commandes dans le fichier
nom.com
> remove(a) # supprimer l’objet a
> rm(list=ls()) # pour effacer l’ensemble des objets créés
> # débute une ligne de commentaires
> readline() # pour faire une pause

Slide 30

Autour des probabilités

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 16

Les lois
package: stats

Slide 31

Slide 32

Loi

nom

paramètres

beta

beta

shape1

shape2

binomial

binom

size

prob

Cauchy

cauchy

location

scale

chi-squared

chisq

df

ncp

exponential

exp

rate

F

f

df1

df1

gamma

gamma

shape

scale

geometric

geom

prob

hypergeometric

hyper m

n

ncp

ncp

k

Loi

nom

paramètres

log-normal

lnorm meanlog

sdlog

logistic

logis location

scale

negative

binomial

nbinom

size

normal

norm

mean

sd

Poisson

pois

lambda

Student

t

t

df

uniform

unif

min

max

Weibull

weibull

shape

scale

Wilcoxon

wilcox

m

n

Laboratoire de Mathématiques Appliquées

prob

ncp

Univ. Lille I

Le logiciel R

A. Philippe 17

package: stats
• Simulation de variables aléatoires suivant les lois disponibles :

Slide 33

runif(taille,min=0,max=1),

rpois(taille, a),

rnorm(taille, mean=0, sd=1),

rbinom(taille, n,p) etc ...

• Simulation de va iid suivant une loi discrète à support fini :
p(X = xi ) = pi avec i = 1..k
sample(x, size, replace=FALSE, prob)
• En remplaçant r par d , p ou q on obtient respectivement
– la densité

– la fonction de répartition
– son inverse

• Exemple : on simule des variables aléatoires iid suivant la loi
normale standard (i.e. moyenne 0 et variance 1)
> x=rnorm(1000,0,1)
• Statistiques descriptives (sur les valeurs simulées x)
Slide 34

> median(x)
[1] -0.0584617
> mean(x)
[1] -0.04102906
> var(x)
[1] 0.9918595

> range(x)
[1] -3.427918

Laboratoire de Mathématiques Appliquées

2.847309

Univ. Lille I

Le logiciel R

A. Philippe 18

Les Graphiques
Slide 35
package: graphics

la fonction "centrale" : plot()
Slide 36

• plot : pour tracer la première "courbe"
• points ou lines : pour ajouter une ligne ou un nuage de points

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 19

Quelques arguments de la fonction plot :
• type="p" (points) ou "l" (ligne) : pour tracer une ligne ou
un nuage de points.
Slide 37

• pch : type de points
• lty type de lignes.
• col : couleur
• pour fixer les limites des axes : ylim=c(1,10) et xlim=c(1,10)

y
0

10

20

30

40

50

Index

0.0 1.0 2.0 3.0

y<−rexp(50,1)
plot(y, type="l",col=3,lty=2)

0 1 2 3 4 5

x

x<−rexp(50,1)
plot(x)

0

10

20

30

40

50

Index

0.0 1.0 2.0 3.0

y

plot(x,y)

0

1

2

3

4

5

x

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 20

20

30

40

50

0

10

20

30

40

Index

plot(x,type="h")

plot(x,type="s")

10

20

30

40

50

50

0 1 2 3 4 5

Index

x
0

0 1 2 3 4 5

x
10

0 1 2 3 4 5

0

x

plot(x,type="p")

0 1 2 3 4 5

x

plot(x,type="l")

0

10

Index

20

30

40

50

Index

superposer des courbes
> x=rnorm(20)

Slide 38

> y=rexp(20)

> plot(x,y)
> points(x+.1,y+.1, pch=2)
> lines(sort(x),y, lty=2)
> text(1,5,"text")
> abline(h=3)
>title("texte")

#nuage de points
#ajouter un nuage de points
#ajouter une ligne
#texte
#ajouter une ligne horizontale
# ajouter un titre

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 21

2
0

1

y

3

4

texte

−2

−1

0

1

2

x

• Pour sauvegarder un graphique dans un fichier PostScript
dev.print(postscript, file="essai.ps")
voir aussi la fonction postscript()

Slide 39

• La fenêtre graphique peut être fractionnée en utilisant

– par(mfrow=c(n,m)), on obtient alors n*m graphiques sur une
même page repartis sur n lignes et m colonnes
– split.screen(m,n) puis screen(i) ou screen(i,FALSE)
pour ajouter, erase.screen()
close.screen(all = TRUE)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 22

Quelques graphiques
> x=rpois(20,1)
> par(mfrow=c(2,2))
• hist, boxplot

Slide 40

> hist(x)

> boxplot(x)

• barplot
> barplot(x)
• pairs

5

10

15

0 2 4 6 8

Frequency

0.0 1.0 2.0 3.0

x

Histogram of x

20

0.0

Laboratoire de Mathématiques Appliquées

2.0

3.0

x

0.0 1.0 2.0 3.0

0.0 1.0 2.0 3.0

Index

1.0

Univ. Lille I

Le logiciel R

A. Philippe 23

Autour de la fonction plot

Slide 41

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

Quelques exemples
• sur une fonction (par ex sin)
> plot(sin,xlim=c(-pi,pi))
• sur un tableau
Slide 42

> x=rpois(1000,1)
> y=table(x)
> y
x
0
1
2
3
4
352 371 203 55 18
> plot(y)

5
1

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 24

• sur un histogramme ou une densité
>r=rnorm(100,1)
> z=hist(r,plot=F)
> plot(z)
>w=density(r)
>plot(w)

0 100

y

0.0
−1.0

−1

0

1

2

3

0

2

3

4

x

Histogram of r

density(x = r)

Density
−2

1

x

0 10 20 30

Frequency

−3

0

1

2

3

4

r

Laboratoire de Mathématiques Appliquées

5

0.00 0.15 0.30

sin (x)

300

1.0

Slide 43

−2
N = 100

0

2

4

Bandwidth = 0.3615

Univ. Lille I

Le logiciel R

A. Philippe 25

Quelques outils de la statistique classique
package: stats
• Estimation de la densité par l’estimateur à noyau (voir l’aide pour
le choix du noyau , la vitesse de fermeture de la fenêtre etc.)
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)
lines(z,dnorm(z,0,1),lty=2)

#echantillon N(0,1)
#estimateur à noyau
#représentation graphique
#histogramme
#superpose estimateur à noyau
#superpose densité théorique

Histogram of x

0.2
0.0

0.0

0.1

0.1

0.2

Density

0.3

0.3

0.4

0.4

density(x = x)

Density

Slide 44

−4
N = 10000

0

2

4

Bandwidth = 0.1429

Laboratoire de Mathématiques Appliquées

−4

0

2

4

x

Univ. Lille I

Le logiciel R

A. Philippe 26

Exemple : mélange de lois
On considère la densité de probabilité suivante
f (x) =

1 1 − 1 (x−5)2 3 1 − 1 (x+5)2
√ e 2
+ √ e 2
4 2π
4 2π

• Pour simuler suivant f
w_rbinom(50,1,1/4)
sample _ w*rnorm(50,5) +(1-w) * rnorm(50,-5)
• Estimation de la densité f
>(kernels = eval(formals(density)$kernel))
[1] "gaussian"
"epanechnikov" "rectangular" etc
>plot(density(sample, n = 2^13))
>for (i in 2:length(kernels))
+ lines(density(sample, kern = kernels[i], n = 2^13), col = i)

0.00

0.05

0.10

0.15

0.20

0.25

density(x = sample, n = 2^10)

Density

Slide 45

−10

−5
N = 50

0

5

Bandwidth = 0.8079

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 27

Fonction de répartition empirique (ecdf )
1X
Fˆn (t) =
1]−∞t] (Xi ) → F (t)
n i=1
n

Slide 46
> x= rnorm(100)
>Fn=ecdf(x)
>plot(Fn)
> z=seq(min(x),max(x),0.01)
> lines(z,pnorm(z), col=3,lwd=2)

0.6
0.4
0.0

0.2

c(0:(n − 1))/n

0.8

1.0

#on trace la cdf empirique
# ajoute la cdf theorique

−3

−2

−1

0

1

2

3

sort(x)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 28

Illustration de la convergence p.s.
Soit X1 , . . . , Xn une suite de variables aléatoires iid, si E|X1 | < ∞
alors
n
1X
Xi → E(X1 )
n i=1
Slide 47

n_50000
par(mfrow=c(2,1))
#loi gaussienne
x_rnorm(n,0,1)
y_cumsum(x)/(1:n)
plot(y, type=’’l’’)
abline(h=0)

# loi d Cauchy
xx_rt(n,0,1)
yc_cumsum(xc)/(1:n)
plot(yc, type=’’l’’)

−0.08

y[m]

0.00

moyenne empirique : cas gaussien

0

10000

20000

Slide 48

30000

40000

50000

m

1
−1

yc[m]

moyenne empirique : cas cauchy

0

10000

20000

30000

40000

50000

m

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 29

Quelques librairies
Pour la liste des librarie library()
On charge une librairie avec la fonction
library(nom-de-la-librairie). Quelques libraries base, stats,
graphics, etc sont chargées au lancement de R
Slide 49
base
boot
class
foreign

The R Base Package
Bootstrap R (S-Plus)
Functions (Canty)
Functions for
Classification
Read data stored by
Minitab, S, SAS, SPSS,
Stata, ...

graphics
grid
MASS
stats
stats4

The R Graphics Package
The Grid Graphics Package
Main Package of Venables
and Ripley’s MASS
The R Stats Package
Statistical functions
using S4 classes

Tests classiques :
package: stats

Slide 50

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
#independance
#non correlation

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

#normalité
#normalité K-S
# même distribution

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 30

Exemple : Test de Student t.test()
X1 , . . . , Xn iid N (1, 1) et Y1 , . . . , Ym iid E(1)
Test H0 : E(X) = E(Y ) vs H1 : E(X) 6= E(Y )
> x = rnorm(100,1,1)
> y = rexp(200,1)
> t.test(x,y)
Slide 51
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

Slide 52

Autour de la régression

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 31

Régression linéaire
package: stats
Le modèle le plus simple
yi = axi + b + i
où ( i )i est une suite de variables aléatoires non corrélées.
Pour réaliser une régression linéaire, par la méthode des moindres
carrés, on utilise la fonction lm :

Slide 53

Si les données sont sous la forme de 2 vecteurs X et Y (de même taille)

−5

0

5

10

X

0.0 1.0
−1.5

regression$resid

1 2 3 4 5 6

Y

> regression=lm(Y~X)
> regression
Coefficients:
(Intercept)
X
2.7679
0.3511

5

10

15

Index

4
2
0

Frequency

6

Histogram of regression$resid

−2.0

−1.0

0.0

1.0

regression$resid

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 32

Visualisation :

Slide 54

>
>
>
>
>

par(mfrow=c(2,2))
plot(X,Y)
lines(regression$fitted.values)
plot(regression$residuals)
hist(regression$resid)

# nuage
# residus

Si les données sont disponibles sous la forme d’une liste : par exemple
la liste cars contient
• speed
• dist
100

120

cars

60
0

20

40

dist

80

Slide 55

5

10

15

20

25

speed

> data(cars)
> fit = lm(dist ~ speed, cars)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

A. Philippe 33

0 60 120

dist

Le logiciel R

5

10

15

20

25

speed

Series fit$resid

−20

0

20

−0.2 0.6

ACF

15
0 5

Frequency

Histogram of fit$resid

40

fit$resid

0

5

10

15

Lag

Visualisation

Slide 56

> split.screen(c(2,1))
[1] 1 2
> split.screen(c(1,2), screen = 2)
[1] 3 4
> screen(1)
> plot(cars, col="pink")
> abline(fit)
> screen(3)
> hist(fit$resid)
> screen(4)
> acf(fit$resid)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 34

Lissage
Slide 57

60
0

20

40

dist

80

100

120

package: stats

5

10

15

20

25

speed

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

Slide 58

A. Philippe 35

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

Polynômes Locaux
Slide 59
package: stats

Laboratoire de Mathématiques Appliquées

Univ. Lille I

A. Philippe 36

60
0

20

40

dist

80

100

120

Le logiciel R

5

10

15

20

25

speed

Slide 60

>data(cars)
>cars.lo = loess(dist ~ speed, cars)
>p = predict(cars.lo, data.frame(speed = seq(5, 30, 1)), se = TRUE)
>plot(cars)
>lines(seq(5, 30, 1),p$fit,col="green3")

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 37

• régression multiple lm(v ∼ v1 + v2 + v3)
Slide 61

• régression linéaire généralisée glm
• etc

Séries Chronologiques
Slide 62
package: stats

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 38

L’objet “série chronologique” est une liste qui contient
• les valeurs observées,
• la fréquence des observations,

Slide 63

• la date de la première observation
• la date de la dernière, etc...

Exemple

Slide 64

>
>

data(USAccDeaths)
USAccDeaths

1973
1974
1975
1976
1977
1978

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

>plot(USAccDeaths)

Laboratoire de Mathématiques Appliquées

Univ. Lille I

A. Philippe 39

10000
9000
7000

8000

USAccDeaths

11000

Le logiciel R

1973

1974

1975

1976

1977

1978

1979

Time

Pour créer une série chronologique, on utilise la fonction ts

Slide 65

>bruit.blanc=ts(rnorm(100), frequency = 1,
start = c(1), end=c(100))
>data=c(bruit.blanc) #récupère les observations
# dans le vecteur data
>plot(bruit.blanc)
>acf(bruit.blanc, type="correlation")
#ou type="covariance" ou type="partial"

Laboratoire de Mathématiques Appliquées

Univ. Lille I

A. Philippe 40

−2

bruit.blanc

Le logiciel R

0

20

40

60

80

100

Time

−0.2

ACF

Series bruit.blanc

0

5

10

15

20

Lag

Filtre
• Premier exemple de filtre : (I − Lp )d , on utilise la fonction diff
>diff(x,lag=p,differences=d)
• La fonction filter permet d ’appliquer des filtres linéaires :
Slide 66

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]

Ces fonctions permettent en particulier de créer un générateur de
processus ARMA.

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 41

Étude préliminaire de la série 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")

Slide 67
}

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

0.0

0.5

1.0

1.5

0.2

0.6

1.0

1.4

1500000

Lag

0

periodogram

Lag

−0.4 0.0 0.4

Series USAccDeaths

Partial ACF

−0.4 0.2 0.6 1.0

ACF

Series USAccDeaths

0.0

0.1

0.2

0.3

0.4

0.5

freq

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 42

modélisation et prévision AR
La fonction ar permet d’estimer les paramètres d’un modèle AR
Ap (L)X[t] = e[t]
Si l’ordre p n’est pas précisé, le meilleur modèle AR pour le critère
AIC est sélectionné.
Slide 68

Slide 69

>data(lh)
>ar(lh)
Call:ar(x = lh)
Coefficients:
1
2
0.6534 -0.0636
Order selected 3

3
-0.2269
sigma^2 estimated as

0.1959

>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

ATTENTION x doit être une série chronologique (x=ts(x))

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 43

Autour des modèles ARMA
• ARMAacf pour le calcul des covariances théorique d’un modèle
ARMA
Slide 70

• ARMAtoMA pour le développement en MA infinie d’un modèle
ARMA
• arima.sim pour simuler des trajectoires d’un modèle ARMA ou
ARIMA

Modèle ARMA : Estimation
• La fonction ar permet d’estimer les paramètres d’un processus AR.
• Pour les modèles ARMA d’ordre (p,q)
Slide 71

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 coefficients,
out$resid : estimation des résidus e[t]
ATTENTION x doit être une série chronologique (x=ts(x))

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 44

modélisation et prévision SARIMA
Plus généralement, la fonction arima permet d’estimer les paramètres
d’un modèle SARIMA
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 :
Slide 72

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 coefficients,
out$aic : critère AIC,
out$resid : estimation des résidus 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))

Slide 73

fit = arima(USAcc, order=c(0,1,1), seasonal=list(order=c(0,1,1)))
Call:
arima(x = USAcc, order = c(0, 1, 1),
seasonal = list(order = c(0,1, 1)))
Coefficients:
ma1
sma1
-0.4343 -0.4419
Approx standard errors:
ma1
sma1
0.1368 0.0122
sigma^2 estimated 114276: log likelihood = -341.73, aic = 687.46

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 45

Prévision pour des modèles SARIMA
Pour prévoir à l’horizon h, on utilise la fonction predict

Exemple :

7000

8000

9000

10000

11000

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

Slide 74

>out=arima0(...)
> p=predict(out,h)
p$pred
#contient les prévisions
p$se
#erreurs de prévision ( écart type )

1973

1974

1975

1976

1977

1978

1979

Time

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 46

Plus généralement : la fonction predict
package: stats
Slide 75

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

lissage exponentiel
La méthode de lissage de Holt & Winter est disponible sous R. Les
fonctions s’appelle HoltWinters et predict.HoltWinters.
Exemple : sur la série data(co2)
Slide 76

data(co2)
m = HoltWinters(co2)
p = predict(m, 50, prediction.interval = TRUE)
plot(m, p)

#lissage
# prevision

cette fonction peut aussi être utilisée pour
• des modèles multiplicatifs
• le lissage simple si l’on impose les coefficients.

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 47

350
340
320

330

Observed / Fitted

360

370

Holt−Winters filtering

1960

1970

1980

1990

2000

Time

Prévision : non paramétrique
Le fichier /home/philippe/TP-etudiant/np.s contient les fonctions
pour effectuer de la prévision non paramétrique. La fonction
principale est np
Slide 77

p=np(co2,h,r)

# r est la taille du bloc
# h l’horizon
p$prevision
#contient les previsions
p$CI et p$SI
#région de confiance
>demo.np(co2,h,r)
#remplace la commande
#np(y,h,r) ou y=x[1],....x[n-h]

Laboratoire de Mathématiques Appliquées

Univ. Lille I

Le logiciel R

A. Philippe 48

0.000 0.010 0.020 0.030

similarite, taille du bloc= 3

0

100

200

300

400

340
320

serie

360

Index

1960

1970

1980

1990

test

355 360 365 370 375

Time

0

10

20

30

40

50

Index

Laboratoire de Mathématiques Appliquées

Univ. Lille I


Documents similaires


Fichier PDF anne philippe cours r
Fichier PDF krueger 2002 unskilled
Fichier PDF efr en medecine generale lpm roche 2009
Fichier PDF cea mitic appel master biomath bioinfo v18aout
Fichier PDF 2019  tuto regressi
Fichier PDF 06extrait maths appliquees


Sur le même sujet..