Académique Documents
Professionnel Documents
Culture Documents
Daniel Herlemont
Introduction
Lobjectif ici sera de rendre compte de faits stylises temporels les plus importants en vu
dune modelisation qui interviendra dans un deuxi`eme temps (mod`ele ARMA, Risk Metrics,
GARCH, ...).
Dans le mod`ele le plus naif, les rendements dun jour sur lautre sont supposes etre
de meme loi et identiquement distribues. Cette hypoth`ese est motivee par le fait que les
rendements ne sont pas auto correles. Cependant, comme nous le verrons, les rendements au
carre sont, quant eux, tr`es fortement auto correles.
Si lindependance implique labsence dauto-correlation, la reciproque est fausse. Labsence dauto correlation ne signifie pas independance. Notons X la loi des rendements a` la
date t et Y a` la date t1. Si X et Y sont independants alors f (X) et f (Y ) ne sont pas correles,
(il sagit meme dune condition necessaire et suffisante) : E[f (X)g(Y )] = E[f (X)]E[g(Y )],
autrement dit, la covariance (ou la correlation) est nulle cov(f (X), g(Y )) = 0.
On pourra donc en conclure que meme si les rendements ne sont pas auto-correles, il ne
sont pas independants pour autant, comme le montre la forte auto correlation des rendements
au carre.
Donn
ees
cac=apply(read.csv("^FCHI.csv")[,-1],2,rev)
> closes = as.numeric(cac[, "Close"])
> opens = as.numeric(cac[, "Open"])
1
3 AUTO CORRELATIONS
DES RENDEMENTS
> highs = as.numeric(cac[, "High"])
> lows = as.numeric(cac[, "Low"])
> r = diff(log(closes))
Auto corr
elations des rendements
Tracer lauto correlogramme des rendements a` laide de la fonction acf ce graphique indique
lauto correlation a` differents lag ou retard :
lag = corr(rt , rtlag )
La ligne pointillee represente lintervalle de confiance `a 95%. Dans le cas o`
u lauto-correlation
depasse largement cette ligne, on peut donc accepter la presence dauto correlation significative.
> acf(r)
Daniel Herlemont
4 AUTO CORRELATIONS
DES RENDEMENTS AU CARRE
0.0
0.2
0.4
ACF
0.6
0.8
1.0
Series r
10
15
20
25
30
35
Lag
Auto corr
elations des rendements au carr
e
tracer lauto-correlogramme des rendements au carre a` laide de la fonction acf(r^2). Comparer avec celui des rendements seuls. Commenter
> acf(r^2, lag.max = 200)
Daniel Herlemont
4 AUTO CORRELATIONS
DES RENDEMENTS AU CARRE
0.0
0.2
0.4
ACF
0.6
0.8
1.0
Series r^2
50
100
150
200
Lag
Daniel Herlemont
5 TESTS STATISTIQUES SUR LES AUTO CORRELATIONS
0.0
0.2
0.4
ACF
0.6
0.8
1.0
Series range
50
100
150
200
Lag
Apr`es avoir visualise les auto correlations, on peut proceder a des tests statistiques plus
precis. On appliquera ces tests `a la serie de rendements et des rendements au carre.
5.1
Test de correlation
5 TESTS STATISTIQUES SUR LES AUTO CORRELATIONS
sagit dune N(0,1) pour T suffisamment grand).
On pourra utiliser ce test sur le rendements de la maniere suivante
> cor.test(r[-1], r[-length(r)])
Pearsons product-moment correlation
data: r[-1] and r[-length(r)]
t = 0.32, df = 4586, p-value = 0.749
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.02421479 0.03365840
sample estimates:
cor
0.004725761
5.2
On pourra egalement utiliser le test de Durbin-Watson, habituellement utilise pour les residus
dun regression (voir la fonction dwtest). La statistique est
d=
T
2
t=2 (rt rt1 )
T
2
t=1 rt
= 2(1 )
Sa valeur se situe entre 0 et 4. Une valeur de 2 indique une absence dautocorrelation. Des
petites valeurs de d indiquent que les rendements successifs sont proches, en moyenne, donc
une auto correlation positive, inversement de grandes valeur de d indiquent quen moyenne,
les rendements sont tr`es differents dune periode a lautre, ou negativement correles.
En realite, la statistique h = (1 d/2) est distribuee suivant une normale N (0, 1). On
peut en deduire les intervalles de confiance de la statistique d.
A faire : effecteur un test de Durbin Watson sur les rendements. Conclusion ?
5.3
runs test
Un autre test plus robuste est le runs test. Il est non parametrique (ne fait aucune hypoth`ese
sur la distribution). Il permet de tester le caract`ere aleatoire dune serie. Le runs tests
seffectue `a partir dun discretisation binaire des donnees, en notant + si la donnee est
superieure a` la mediane (ou la moyenne), et notant si la donnees est au dessous. On compte
Daniel Herlemont
6 EFFET DECHELLE
alors le nombre de changement de signe. Par exemple, la suite +++++++++++++
- comprend six runs trois sont des +, les autres des . En labsence dauto correlations
(hypoth`ese nulle), et pour une echantillon de grande taille, le nombre de runs R (nombre
de changement de signe) est normalement distribuee de moyenne m = 2nn1 n2 + 1 avec n1 le
nombre de +, n1 le nombre de et n = n1 + n2 et variance s2 = 2n1 nn22(2n1n2n)
= (m1)(m2)
(n1)
n1
Le test consiste donc a calculer la statistique correspondante z = (Rm)/s et la comparer
a` z/2 pour = 90% par exemple z/2 = 1.645. Si la statistique z est comprise entre z/2
on pourra accepter lhypoth`ese nulle (pas dauto correlation), si la statistique, on pourra la
rejeter dans les autres cas : si z < z/2 on a moins de changement de signes quattendus,
donc une auto correlation positive superieure
A faire : Effectuer un runs test sur les rendements et rendements au carre du CAC40.
Effet d
echelle
Lobjectif est de tester empiriquement des effets dechelle, tels que la loi en racine carre du
temps, deja maintes fois appliquees.
Dans un mod`ele lognormal, le rendement sur T periodes peut etre considere comme la
somme des rendements sur les sous periodes elementaires
r0,T = log(PT /P 0) = log(PT /PT 1 ) + .... + log(P 1/P 0) =
rt,t1
t=1,T
Si les rendements etant supposes IID, la variance sur T est alors la somme des variances et
(T )2 = T (1)2
De mani`ere plus generale, ce resultat peut etre retrouve a` laide de la fonction caracteristique et la fonction generatrice des cumulants (voir annexe).
A faire :
effectuer une regression log(T ) en fonction de de log(T ), la pente doit etre proche de
1/2. Tester cette hypoth`ese
Exemple :
Daniel Herlemont
6 EFFET DECHELLE
>
>
>
+
>
>
>
n = 100
p = closes
sds = sapply(1:n, function(i) sd(diff(log(p[seq(1, length(p),
by = i)]))))
plot(sds, xlab = "T", ylab = "sigma(T)", main = "Effet dechelle de la volatilit
e")
curve(sqrt(x) * sd(r), add = T)
summary(lm(log(sds) ~ log(1:n)))
Call:
lm(formula = log(sds) ~ log(1:n))
Residuals:
Min
1Q
Median
-0.129056 -0.034694 -0.005733
3Q
0.035401
Max
0.178791
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.355138
0.023760 -183.30
<2e-16 ***
log(1:n)
0.494671
0.006331
78.13
<2e-16 ***
--Signif. codes: 0
S***
S 0.001
S**
S 0.01
S*
S 0.05
S.
S 0.1
S
S 1
Residual standard error: 0.05846 on 98 degrees of freedom
Multiple R-squared: 0.9842,
Adjusted R-squared: 0.984
F-statistic: 6104 on 1 and 98 DF, p-value: < 2.2e-16
Daniel Herlemont
6 EFFET DECHELLE
0.12
0.08
0.06
0.04
sigma(T)
0.10
0.02
20
40
60
80
100
>
>
+
+
+
>
>
Daniel Herlemont
K(T)
20
40
60
80
100
Daniel Herlemont
10
9 ANNEXE
et la moyenne de la population (ici 0) est-elle significative ou non ? La statistique est :
0
t stat = n
Cross corr
elation entre les rendements et rendements
au carr
e
9
9.1
Annexe
Fonction caract
eristique
() = E exp(iX) =
exp(ix)f (x)(x)
(1)
Daniel Herlemont
11
9 ANNEXE
1 2
1
1
2 + 3 3 + 4 4 + ...
2!
3!
4!
()
avec j =
j | = 0
Les cumulants sexpriment a` laide des moments de la variable X :
1
2
3
4
moyenne
variance
skewness
kurtosis
=
=
=
=
=
=
=
=
(0) = 1 = E(X)
(0) = 2 = E(X 2 ) E(X)2
(0) = 3 = E(X E(X))3
(4) (0) = 4 322 = E(X E(X))4 3(V arX)2
1
2
3 /standardDeviation3
4 /standardDeviation4
(2)
Daniel Herlemont
12