chronologiques
Chapitre 3 :
Introduction
• Souvent, en économie, les données sont collectées sur
plusieurs variables : taux de change quotidien concernant
plusieurs devises.
• Ainsi, dans ce chapitre, nous étendrons le modèle
autorégressif de base à un modèle Vecteur autorégressif ,
noté VAR. Ce dernier présente plus d’une série temporelle
dépendante puis nous présenteront quelques méthodes dans
R pour ajuster de telles modèles. On abordera la notion de
séries cointégrées partageant un même Trend Stochastique.
Ce qui nécessite l’étude des tests statistiques spéciaux pour
détecter cette cointégration. Puisque nos variables sont
temporelles, elles présenteront souvent les mêmes
propriétés. On peut alors étudier la liaison entre elles par des
modèles de régression. Cependant, ces modèles peuvent être
fallacieux (trompeurs). Ce problème sera examiné
minutieusement avant de passer à des modèles appropriés à
des Séries Temporelles Multivariées.
Régression fallacieuse
• Dans le cas des ST, il est prudent de faire attention à des
relations causales avant d'être sûr qu'il n'y a pas 1 autre
variable qi serait la cause de la relation apparente entre
les 2 premières. Cette relation serait due au partage d'un
Trend stochastique ou à des fluctuations saisonnières.
as.vector(aggregate(elect.ts))
3 2477 91.2 1648
4 2785 81.9 1595
80000
5 2994 80.5 1777
60000
6 2681 70.4 1824
40000
20000
10
y[i] <- y[i-1] + rnorm(1) }
5
> plot(x, y)
y
> cor(x, y)
0
[1] 0.904
-5
> dwtest(lm(y~x))
DW = 0.33781, p-value < 2.2e-16 0 2 4 6 8 10 12
0.85
> acf( diff(tc$UK) )
0.80
> acf( diff(tc$EU) )
> plot(tc$UK, tc$EU, pch = 4)
tc$EU
0.75
> cor(tc$UK, tc$EU)
[1] 0.946
0.70
Series diff(tc$UK)
1.0
0.8
Series diff(tc$EU)
0.48 0.50 0.52 0.54 0.56 0.58
1.0
0.6
tc$UK
ACF
0.8
0.4
0.6
0.2
ACF
0.4
0.0
0.2
0.0
0 5 10 15 20 25 30
Lag
0 5 10 15 20 25 30
Lag
Tests De Racine Unitaire
• Plus précisément :
Remarques :
Les proc. Stationnaires sont (0)
↝ () ssi ∇ = (1 − ) ↝ (0)
2
↝ (2) ⇒ ∇ ↝ (0)
La plus part des ST économiques sont (0)ou (1)
Cointegration
Remarques :
Si est connue, la cointégration est testée par le
test standard de racine unitaire sur −
• Sinon sera estimée par le modèle = + +
Et la cointégration sera testée par un test modifié de
racine unitaire sur les résidus
= .
Si séries non-stationnaires, tester la cointégration afin d'éviter une
régression fallacieuse.
Exemple 1 : de RW
• >require(tseries)
• > x <- y <- u <- rep(0, 1000)
• > for (i in 2:1000) u[i] <- u[i - 1] + rnorm(1)
• > x <- u + rnorm(1000)
• > y <- u + rnorm(1000)
• > adf.test(x)$p.value # β connue-racine unitaire - non stationnaire - I(1)
[1] 0.681518
• > adf.test(y)$p.value # β connue-racine unitaire - non stationnaire - I(1)
[1] 0.6680389
• > po.test(cbind(x, y)) # cointégrée
Phillips-Ouliaris Cointegration Test #null hypothesis that XY is not cointegrated
data: cbind(x, y)
Phillips-Ouliaris demeaned = -1051.2,
Truncation lag parameter = 9, p-value = 0.01
Exemple 2 : du Taux de change
• > po.test(cbind(tc$UK, tc$EU)) # β inconnue - racine unitaire - non stationnaire - I(1)
Phillips-Ouliaris Cointegration Test
data: cbind(tc$UK, tc$EU)
Phillips-Ouliaris demeaned = -21.662 , Truncation lag parameter = 10,
p-value = 0.04118
• > tc.lm <- lm(tc$UK ~ tc$EU) # β inconnue – Estimation par régression = 0.587
• > tc.res <- resid(tc.lm) # β inconnue – >
• > tc.res.ar <- ar(tc.res)
• > tc.res.ar$order
[1] 3
• > AIC(arima(tc.res, order = c(3, 0, 0)))
[1] -9886.26
• > AIC(arima(tc.res, order = c(2, 0, 0)))
[1] -9886.157
• > AIC(arima(tc.res, order = c(1, 0, 0)))
[1] -9880
• > AIC(arima(tc.res, order = c(1, 1, 0))) # choix AR(2) : faible diff entre 2 et 3 : station : d=0
[1] -9876
Exemple 2 : du Taux de change
> ts.plot(cbind(tc$UK,
0.8
0.7
0.6
0.5
tc$EU),col=c(2,4))
Time
Modèles à Correction d'Erreur (MCE)
• Soient Xt et Yt deux ST cointégrées : ↝ (1)
− − ↝ (0)
On peut alors estimer le modèle à correction d'erreur
suivant :
∇ = !∇ + " (−1 − −1 − ) + # $ù " < 0
On aura
∇ = !∇ + "−1 + # $ù " < 0
Où
= − −
Bruit Blanc bivarié et multivarié
Définition 1: Deux ST WXt et WYt sont dites BB bivarié
si elles sont stationnaires et si leurs covariance
γXY (*) = +$,-. , .+* 0 vérifie(k≠0) γXY (* ) = γXX (* ) = γYY (*) = 0
0.8
[,1] [,2]
0.6
[1,] 0.9998004 0.7974458
0.4
[2,] 0.7974458 0.9581381
ACF
> wx <- w[, 1] # BB Gaussien univarié
0.2
> wy <- w[, 2] # BB Gaussien univarié
0.0
> ccf(wx, wy, main = "")
-20 -10 0 10 20
> acf(wx )
Modèles VAR : Vecteur AutoRegressif
• Définition : Deux ST Xt et Yt suivent un processus
autoregressif d'ordre 1 (noté VAR(1)) si :
= :11 −1 + :12 −1 + .;, =
9
= :21 −1 + :22 −1 + .< ,
• Remarque :
Pour estimer les paramètres du
modèle VAR, il faut que les deux
Séries Temporelles Xt et Yt soient
stationnaires.
Modèles VAR : Vecteur AutoRegressif
Remarques :
L'équation caractéristique d'un VAR(p) est donné par le
déterminant de E(; ) .
Un VAR(p) est stationnaire si les racines, en valeur
absolue du déterminant de|E(; )| sont supérieurs à
1.
Pour Le VAR(1), le déterminant est donné par :
1 − :11 ; −:12 ;
I I = (1 − :11 ; )(1 − :22 ; )−:21 :12 ; 2
−:21 ; 1 − :22 ;
Modèles VAR : Vecteur AutoRegressif
1 − 0.4; −0.3;
⇒ |E(; )| = L L = 1 − 0.5; − 0.02; 2
−0.2; 1 − 0.1;
, , diff(GNP)
2
M
> = ? @ = F Φi >−3 + . ;
diff(GNP) diff(M1) N
3=1
1 0.1172613 -0.04414894 # où
0.117 1.006
2 0.1106320 0.01845652
Φ1 = B C;
−.044 0.601
, , diff(M1) 0.111 0.807
Φ2 = B C;
0.018 0.111
diff(GNP) diff(M1)
1 1.0060505 0.6007530
2 0.8074642 0.1107727
Modèles VAR : Vecteur AutoRegressif
1.0
1.0
0.8
0.8
0.6
0.6
ACF
ACF
0.4
0.4
0.2
0.2
0.0
0.0
-0.2
-0.2
0 5 10 15 20 0 5 10 15 20
Lag Lag
Modèles VAR : Vecteur AutoRegressif
⇒ |E(; )|
1 0 0.117 1.006 −.111 0.807 2
= LB C−B C; − B C; L
0 1 −.044 0.601 . 018 0.111
Exemple 2 :
(suite)
VAR ajusté à"US economic"par "VAR"
• $diff.M1.
• Estimate Std. Error t value Pr(>|t|)
• diff.GNP..l1 -0.04414894 0.01865945 -2.366037 1.948024e-02
• diff.M1..l1 0.60075296 0.08796758 6.829254 3.089539e-10
• diff.GNP..l2 0.01845652 0.01810401 1.019471 3.099024e-01
• diff.M1..l2 0.11077272 0.09480554 1.168420 2.448088e-01
• const 0.81825793 0.58433333 1.400327 1.638347e-01
Modèles VAR : Vecteur AutoRegressif
$diff.M1.
Estimate Std. Error t value Pr(>|t|)
diff.GNP..l1 -0.03275837 0.01739816 -1.882864 6.193634e-02
diff.M1..l1 0.66023328 0.07175730 9.200921 7.250591e-16
const 1.04270637 0.52971091 1.968444 5.112841e-02
> US.var
• VAR Estimation Results:
• =======================
1.0
1.0
0.8
0.8
0.6
0.6
ACF
ACF
0.4
0.4
0.2
0.2
0.0
0.0
-0.2
-0.2
0 5 10 15 20 0 5 10 15 20
Lag Lag
Modèles VAR : Prédiction
• Revenons à l' "US economic"par "VAR" et faisons
une prévision pour l'année suivante 4 Trim):
• > US.pred <- predict(US.var, n.ahead = 4)
• > US.pred
• $diff.GNP.
• fcst lower upper CI
• [1,] 25.35210 -21.67216 72.37636 47.02426
• [2,] 17.47642 -32.86731 67.82016 50.34373
• [3,] 16.48743 -35.28902 68.26387 51.77644
• [4,] 17.04537 -35.32941 69.42015 52.37478
• $diff.M1.
• fcst lower upper CI
• [1,] -0.5833584 -10.45589 9.289173 9.872532
• [2,] -0.1729397 -11.98905 11.643170 11.816110
• [3,] 0.3560266 -12.08428 12.796336 12.440309
• [4,] 0.7376657 -11.89501 13.370342 12.632676
Modèles VAR : Prédiction
> GNP.pred <- ts(US.pred$fcst$ diff.GNP[, 1], st = 1988, fr = 4)
> ts.plot(cbind(window(diff(GNP), start = 1981), GNP.pred),
col=c(4,2),lty = 1:2,lwd=c(1,2))
> abline(v=1987.75,lty=2)
80
60
40
20
0
-20
-40
Time
Modèles VAR : Prédiction
> M1.pred <- ts(US.pred$fcst$diff.M1[, 1], st = 1988, fr = 4)
> ts.plot(cbind(window(diff(M1), start = 1981), M1.pred ),
col=c(4,2),lty = 1:2,lwd=c(1,2))
> abline(v=1987.75,lty=2)
20
15
10
5
0
-5
-10
Time
Sommaire des commandes de R
utilisées ici