Économétrie des séries temporelles avec logiciel...

22
Économétrie des séries temporelles avec logiciel R Sami Mestiri [email protected] Unité de recherche en Économie Appliquée et Simulation Faculté des sciences économiques et gestion de Mahdia Économétrie des séries temporelles avec logiciel R – p.1/22

Transcript of Économétrie des séries temporelles avec logiciel...

Économétrie des séries temporelles aveclogiciel R

Sami Mestiri

[email protected]

Unité de recherche en Économie Appliquée et Simulation

Faculté des sciences économiques et gestion de Mahdia

Économétrie des séries temporelles avec logiciel R – p.1/22

Création d’une série tempo-relle

La fonction ts est utilisée pour la création d’un

objet time series dont la syntaxe est donnée par :

ts(x, start, freq).

x0<-ts(rnorm(60), start=c(2004,1), freq=12) ,

données mensuelle.

x1<-ts(rnorm(52), start=c(2004,1), freq=4) ,

données trimestrielle.

Visualisation : plot(x0)

Économétrie des séries temporelles avec logiciel R – p.2/22

Décompositions classiques

-Modèle additif :yt = Tt + St + et

-Modèle multiplicatif :yt = Tt ∗ St ∗ et

-Tt : tendance.

-St : composante saisonnière.

-et : composante irrégulière.

Économétrie des séries temporelles avec logiciel R – p.3/22

La méthode des moyennes mobile

data(co2)

co2

m <- decompose(co2,type="additive")

m

m !figure

plot(m)

Économétrie des séries temporelles avec logiciel R – p.4/22

320

340

360

obse

rved

320

340

360

tren

d

−3

−1

13

seas

onal

−0.

50.

5

1960 1970 1980 1990

rand

om

Time

Decomposition of additive time series

Économétrie des séries temporelles avec logiciel R – p.5/22

Processus aléatoire du second ordre

On appelle processus aléatoire du second ordre

à temps discret, toute suite Xt : Ω → R définie

sur un espace de probabilité (Ω, Q, P ) à valeurs

dans (R,B(R)) indexé par n ∈ N ou Z telle

que :E|Xt|2 < ∞.

Pour un tel processus on peut définir les

fonctions de moyenne et d’auto-covariance :

i) Moyenne : µ : Z → R,µ(t) = E(Xt),∀t ∈ Z.

ii) Auto-covariance : K : Z × Z → R, K(t, s) =

E((Xt − µ(t))(Xs − µ(s))),∀t, s ∈ Z.Économétrie des séries temporelles avec logiciel R – p.6/22

Processus stationnaire au second ordre

Un processus au second ordre est stationnaire

au second ordre si moyenne et auto-covariance

sont invariantes par translation dans le temps,

i.e. : E(Xt) = µ,∀t ∈ Z,

Alors pour un processus faiblement stationnaire,

on a :

var(Xt) = γ(0),∀t ∈ Z,

|γ(k)| ≤ γ(0),∀k ∈ Z, ( par l’inégalité de Shwartz)

γ(j) = γ(−j),∀k ∈ Z,

γ(j) = γ(j)γ(0)∀j ∈ Z,, fonction de corrélation.

Économétrie des séries temporelles avec logiciel R – p.7/22

Processus AR(p)

Ces processus a tout instant t peuvent être

extrapolés linéairement à partir de p valeurs

précédents Xt−1, ..., Xt−p à un bruit blanc près. X

est dit autorégressif d’ordre p, si :

p∑

k=0

akXt−k = εt(1)

La fonction d’autocorrélation partielle d’un pro-

cessus AR(p) vérifie rp(k) = 0∀k > p.

Économétrie des séries temporelles avec logiciel R – p.8/22

Simulation d’un AR(p)

Pour simuler un processus AR(1) :

yt = 0.7yt−1 + εt

ts.ar<- arima.sim(list(order = c(1,0,0), ar =0.7), n

= 200)

ts.plot(ts.ar,type="l")

acf(ts.ar,10)

pacf(ts.ar,10)

Économétrie des séries temporelles avec logiciel R – p.9/22

Simulation d’un AR(p)

Time

ts.a

r

0 50 100 150 200

−4

−2

02

4

0 2 4 6 8 10

0.0

0.2

0.4

0.6

0.8

1.0

Lag

AC

F

Series ts.ar

2 4 6 8 10

0.0

0.2

0.4

0.6

Lag

Par

tial A

CF

Series ts.ar

FIG. 2 –Économétrie des séries temporelles avec logiciel R – p.10/22

Estimation d’un AR(p)

Pour déterminer un choix optimal pour le retard

p.

Usage : ar(x, aic = TRUE, order.max = NULL,

method=c("yule-walker"))

fit4 <- ar(ts.ar,aic=TRUE

1

0.6872

Order selected 1 sigma^2 estimated as 1.030

Interprétation : Le modèle optimal sélectionné

est un AR(1) avec a1 = 0.6872.Économétrie des séries temporelles avec logiciel R – p.11/22

Analyse des résidus

Avec le code :

ts.plot(fit4$resid,type="l",col="blue")

abline(0,0,col="red")

acf(fit4$resid[2 :200],10,"correlation") on obtient

Avec la commande :Box.test(fit4$resid, lag = 10,

type = "Box-Pierce") on obtient :

Box-Pierce test

data : fit4$resid

X-squared = 11.9391, df = 10, p-value = 0.2892

Donc les résidus ne sont pas autocorrélés.Économétrie des séries temporelles avec logiciel R – p.12/22

Processus MA(q)

Ces processus a tout instant t peuvent être

extrapolés linéairement à partir de q résidus

précédents εt−1, ..., εt−p à un bruit blanc près. X

est dit moyenne mobile d’ordre q, si :

yt =

q∑

k=0

θkεt−k(2)

La fonction d’autocorrélation d’un processus

MA(q) vérifie rq(k) = 0∀k > q.

Économétrie des séries temporelles avec logiciel R – p.13/22

Simulation d’un MA(q)

Pour simuler un processus MA(1) :

yt = 0.7εt−1 + εt

ts.ma<- arima.sim(list(order = c(0,0,1), ar =0.7),

n = 200)

ts.plot(ts.ma,type="l")

acf(ts.ma,10)

pacf(ts.ma,10)

Économétrie des séries temporelles avec logiciel R – p.14/22

Time

ts.m

a

0 50 150

−2

02

4

2 4 6 8 10

−0.

3−

0.2

−0.

10.

00.

10.

20.

30.

4

Lag

Par

tial A

CF

Series ts.ma

2 4 6 8 10

−0.

3−

0.2

−0.

10.

00.

10.

20.

30.

4

Lag

Par

tial A

CF

Series ts.ma

Économétrie des séries temporelles avec logiciel R – p.15/22

Processus ARMA(p,q)

-La fonction diff différentie la série

-Les fonctions acf et la pacf calculent la

corrélation et la corrélation partiellle.

-La fonction arma () estime un ARMA : fit <-

arma(y, order = c(p,q))

-La table d’analyse de variance s’obtient alors

avec summary(fit), les graphiques de validation

avec plot(fit), et les résidus avec : r <-

residuals(fit)

-Pour le contrôle graphique de la normalité des

résidus : qqnorm et qqline. Économétrie des séries temporelles avec logiciel R – p.16/22

-Pour un test de normalité :ks.test (test de

Kolmogorov-Smirnov)

-La fonction predict() calcule les prévisions :

fitarima <- arima(x, order=c(p,d,q))

tsdiag(fitarima)

predict(fitarima, n.ahead = h)

tsdiag fournit des graphiques de validation com-

plémentaire.

Économétrie des séries temporelles avec logiciel R – p.17/22

Estimation d’un ARMA(p,q)

Simulation et estimation d’un ARMA(2,1).

library(fArma)

x<-armaSim(model = list(ar = c(0.5, -0.5), ma

=0.1), n = 1000)

fit5 <-armaFit( arma(2, 1), data = x)

print(fit5)

par(mfrow = c(2,2), cex = 0.7)

summary(fit5, which = "all")

Économétrie des séries temporelles avec logiciel R – p.18/22

0 200 400 600 800 1000

−3

−1

01

23

Standardized Residuals

Index

Res

idua

ls

0 5 10 15 20 25 30

0.0

0.4

0.8

Lag

AC

F

ACF of Residuals

−3 −2 −1 0 1 2 3

−3

−1

01

23

QQ−Plot of Residuals

Normal Quantiles

Res

idua

l Qua

ntile

s

2 4 6 8 10

0.0

0.2

0.4

0.6

0.8

1.0

Ljung−Box p−values

lag

p va

lue

Économétrie des séries temporelles avec logiciel R – p.19/22

Prévision d’un ARMA(p,q)

Algorithme de Durbin-Levinson pour le calcul

récursif de la prédiction.

predict(fit5, 10)

x<-armaSim(model = list(ar = c(0.5, -0.5), ma

=0.1), n = 1000)

fit5 <-armaFit( arma(2, 1), data = x)

print(fit5)

par(mfrow = c(2,2), cex = 0.7)

summary(fit5, which = "all")

Économétrie des séries temporelles avec logiciel R – p.20/22

Time

Ser

ies:

x

950 960 970 980 990 1000 1010

−3

−2

−1

01

2ARIMA(2,0,1) with method: CSS−ML

Économétrie des séries temporelles avec logiciel R – p.21/22

MERCI POUR VOTRE ATTENTION

Économétrie des séries temporelles avec logiciel R – p.22/22