Les séries financières sont des séries temporelles qui enregistrent les prix, les rendements, les volumes ou d’autres variables financières. Elles sont caractérisées par une volatilité non constante, c’est-à-dire que les écarts-types des observations peuvent varier dans le temps. Ce phénomène est appelé clustering de volatilité.
Le clustering de volatilité peut avoir des conséquences importantes sur la prise de décision financière. Par exemple, une volatilité élevée peut entraîner une augmentation du risque de perte, tandis qu’une volatilité faible peut entraîner une baisse des rendements potentiels.
Les modèles ARCH et GARCH sont des modèles statistiques qui permettent de modéliser la volatilité des séries financières. Ils sont basés sur l’idée que la volatilité actuelle d’une série est fonction de sa volatilité passée.
Les données utilisées représente les données historiques (du 1er janvier 2010 au 30 août 2023) de l’indice NASDAQ. Les différentes variables de notre jeu de données sont:
Open : Prix d’ouverture de l’indice NASDAQ pour une journée donnée.
High : Prix le plus élevé atteint pendant la journée.
Low : Prix le plus bas atteint pendant la journée.
Close : Prix de clôture de l’indice pour cette journée.
Volume : Volume d’échanges sur cette journée.
Créé en 1971, le NASDAQ est une bourse entièrement électronique, ce qui signifie que les transactions sont effectuées électroniquement, contrairement aux bourses traditionnelles où les échanges se font sur un plancher de négociation physique. Cette nature électronique a souvent permis au NASDAQ d’être en pointe sur l’utilisation de la technologie dans le trading des actions.
Le NASDAQ Composite est un indice boursier qui représente le regroupement de milliers d’actions cotées sur le NASDAQ. Il offre une vision globale de la performance de ce marché en incluant un large éventail de sociétés, principalement des entreprises technologiques, mais aussi des sociétés financières, de biotechnologie, de services de santé et d’autres secteurs.
En plus du NASDAQ Composite, le NASDAQ gère d’autres indices importants comme le NASDAQ-100, qui se concentre sur les 100 plus grandes entreprises non financières cotées sur le NASDAQ. Ces indices sont largement suivis pour évaluer la performance du marché boursier et servent souvent de référence pour les investisseurs, les analystes et les traders.
library("tseries")
library("quantmod")
library("rugarch")
library("forecast")
library("sandwich")
library("FinTS")
library("ggplot2")
library("lmtest")
data = getSymbols("^IXIC", from="2010-01-01", to = "2023-08-30")
plot(IXIC$IXIC.Close, col = "blue")
adf.test(IXIC$IXIC.Close)
##
## Augmented Dickey-Fuller Test
##
## data: IXIC$IXIC.Close
## Dickey-Fuller = -2.2638, Lag order = 15, p-value = 0.4666
## alternative hypothesis: stationary
Les résultats du test ADF suggèrent que le prix de clôture de l’indice Nasdaq Composite n’est pas stationnaire. La statistique Dickey-Fuller est de -2,2638, ce qui est moins que la valeur critique de -2,8976 au niveau de signification de 5%. La valeur p est de 0,4666, ce qui est supérieur au niveau de signification de 0,05. Par conséquent, nous ne pouvons pas rejeter l’hypothèse nulle selon laquelle le prix de clôture de l’indice Nasdaq Composite n’est pas stationnaire.
dIXIC = diff(IXIC$IXIC.Close)
dIXIC = dIXIC[-1]
adf.test(dIXIC$IXIC.Close)
##
## Augmented Dickey-Fuller Test
##
## data: dIXIC$IXIC.Close
## Dickey-Fuller = -14.845, Lag order = 15, p-value = 0.01
## alternative hypothesis: stationary
Les résultats du test ADF suggèrent que le prix de clôture différencié de l’indice Nasdaq Composite (^IXIC) est stationnaire. La statistique Dickey-Fuller est de -14,845, ce qui est moins que la valeur critique de -2,8976 au niveau de signification de 5%. La valeur p est de 0,01, ce qui est inférieur au niveau de signification de 0,05. Par conséquent, nous pouvons rejeter l’hypothèse nulle selon laquelle le prix de clôture différencié de l’indice Nasdaq Composite n’est pas stationnaire.
plot(dIXIC$IXIC.Close, col="blue")
adf.test(dIXIC$IXIC.Close)
## Warning in adf.test(dIXIC$IXIC.Close): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: dIXIC$IXIC.Close
## Dickey-Fuller = -14.845, Lag order = 15, p-value = 0.01
## alternative hypothesis: stationary
Le modèle ARIMA (autoregressive integrated moving average) est un modèle statistique utilisé pour décrire et prédire des séries temporelles. Il est basé sur l’hypothèse que la série temporelle peut être représentée comme une combinaison d’une tendance linéaire, d’un processus AR (autoregressif) et d’un processus MA (mouvement moyen).
L’équation du modèle ARIMA est la suivante :
\[\begin{equation} Nasdaq_t = \mu + \phi_1 Nasdaq_{t-1} + \dots + \phi_p Nasdaq_{t-p} + \theta_1 \epsilon_{t-1} + \dots + \theta_q \epsilon_{t-q} + \epsilon_t \end{equation}\]
avec
\(Nasdaq_{t}\) est lavaleur de la série temporelle à l’instant t
\(mu\) est la tendance linéaire
\(\phi_1\),\(...\), \(\phi_p\) sont les coefficients du processus AR
\(\theta_1\), \(...\), \(\theta_q\) sont les coefficients du processus MA
\(\epsilon_{t}\) est un bruit blanc
modele1 = auto.arima(dIXIC$IXIC.Close)
summary(modele1)
## Series: dIXIC$IXIC.Close
## ARIMA(1,0,1) with non-zero mean
##
## Coefficients:
## ar1 ma1 mean
## -0.3952 0.3142 3.4670
## s.e. 0.1263 0.1301 1.7606
##
## sigma^2 = 12014: log likelihood = -21012.58
## AIC=42033.16 AICc=42033.17 BIC=42057.73
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -0.08962393 109.5608 64.48924 -Inf Inf 0.6816001 0.001666926
coeftest(modele1)
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.39518 0.12634 -3.1280 0.00176 **
## ma1 0.31417 0.13011 2.4147 0.01575 *
## intercept 3.46696 1.76058 1.9692 0.04893 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
white.test(residuals(modele1))
##
## White Neural Network Test
##
## data: residuals(modele1)
## X-squared = 13.482, df = 2, p-value = 0.001181
Les résultats du test de White suggèrent que les résidus du modèle ARIMA(1,0,1) avec moyenne non nulle ne sont pas homoscédastiques. Cela signifie que la variance des résidus n’est pas constante et qu’elle peut être influencée par des variables explicatives.
jarque.bera.test(residuals(modele1))
##
## Jarque Bera Test
##
## data: residuals(modele1)
## X-squared = 10636, df = 2, p-value < 2.2e-16
Les résultats du test de Jarque-Bera suggèrent que les résidus du modèle ARIMA(1,0,1) avec moyenne non nulle ne suivent pas une distribution normale. Cela signifie que la distribution des résidus n’est pas symétrique et qu’elle a des queues plus épaisses que celles d’une distribution normale.
Box.test(dIXIC$IXIC.Close, lag = 10)
##
## Box-Pierce test
##
## data: dIXIC$IXIC.Close
## X-squared = 145.57, df = 10, p-value < 2.2e-16
Les résultats du test de Box-Pierce suggèrent que les résidus du modèle ARIMA(1,0,1) avec moyenne non nulle sont autocorrélés. Cela signifie qu’il existe une relation entre les valeurs résiduelles à différents points dans le temps.
bds.test(IXIC$IXIC.Close)#Dépendance
##
## BDS Test
##
## data: IXIC$IXIC.Close
##
## Embedding dimension = 2 3
##
## Epsilon for close points = 1927.452 3854.903 5782.355 7709.807
##
## Standard Normal =
## [ 1927.4517 ] [ 3854.9033 ] [ 5782.355 ] [ 7709.8066 ]
## [ 2 ] 383.3371 239.6318 175.3274 167.4671
## [ 3 ] 698.6153 301.0296 189.3402 167.6587
##
## p-value =
## [ 1927.4517 ] [ 3854.9033 ] [ 5782.355 ] [ 7709.8066 ]
## [ 2 ] 0 0 0 0
## [ 3 ] 0 0 0 0
Les résultats du test BDS suggèrent que la série chronologique du prix de clôture de l’indice Nasdaq Composite (^IXIC) n’est pas linéaire. Cela signifie qu’il existe une relation non linéaire entre le prix de clôture actuel et les prix de clôture passés
ArchTest(residuals(modele1))
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: residuals(modele1)
## Chi-squared = 894.63, df = 12, p-value < 2.2e-16
Les résultats du test ARCH suggèrent que les résidus du modèle ARIMA(1,0,1) avec moyenne non nulle présentent des effets ARCH. Cela signifie que la variance des résidus dépend de la valeur des résidus passés.
Les effets ARCH peuvent compliquer l’analyse des séries chronologiques. Par conséquent, il est important de vérifier la présence d’effets ARCH dans les résidus avant d’utiliser des modèles de régression.
Le modèle GARCH (generalized autoregressive conditional heteroskedasticity) est un modèle statistique utilisé pour décrire et prédire la volatilité des séries temporelles. Il est basé sur l’hypothèse que la volatilité conditionnelle de la série temporelle est un processus autorégressif.
L’équation du modèle GARCH est la suivante :
\[\begin{equation} \sigma_t^2 = \alpha_0 + \alpha_1 \epsilon_{t-1}^2 + \dots + \alpha_p \epsilon_{t-p}^2 + \beta_1 \sigma_{t-1}^2 + \dots + \beta_q \sigma_{t-q}^2 \end{equation}\]
avec
\(\sigma_{t}^{2}\) est la variance conditionnelle de la série temporelle à l’instant t
\(\alpha_{0}\) est le coefficient constant du processus AR de la variance conditionnelle}
\(\alpha_{1}\), , \(\alpha_p\) sont les coefficients des erreurs passées du processus AR de la variance conditionnelle
\(\beta_{1}\),\(..\), \(\beta_q\) sont les coefficients des variances passées du processus MA de la variance conditionnelle
\(\epsilon_{t}\) est un bruit blanc
r = diff(log(IXIC$IXIC.Close))
r = r[-1]
plot(r, main="Graphique du rendement du Nasdaq" )
modele2 <- ugarchspec(variance.model = list(model = "sGARCH", order = c(1, 1)),
mean.model = list(armaOrder = c(0, 0)),
distribution.model = "norm")
## Warning: unidentified option(s) in variance.model:
## order
fit2 <- ugarchfit(spec = modele2, data = r)
show(fit2)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000930 0.000164 5.6749 0.000000
## omega 0.000004 0.000002 1.8087 0.070496
## alpha1 0.134036 0.011848 11.3131 0.000000
## beta1 0.838728 0.019144 43.8109 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000930 0.000251 3.71008 0.000207
## omega 0.000004 0.000014 0.32071 0.748428
## alpha1 0.134036 0.020302 6.60214 0.000000
## beta1 0.838728 0.088083 9.52198 0.000000
##
## LogLikelihood : 10679.44
##
## Information Criteria
## ------------------------------------
##
## Akaike -6.2139
## Bayes -6.2067
## Shibata -6.2139
## Hannan-Quinn -6.2113
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.300 0.2542
## Lag[2*(p+q)+(p+q)-1][2] 1.301 0.4100
## Lag[4*(p+q)+(p+q)-1][5] 3.028 0.4020
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.013 0.3143
## Lag[2*(p+q)+(p+q)-1][5] 2.831 0.4388
## Lag[4*(p+q)+(p+q)-1][9] 4.283 0.5415
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 0.03588 0.500 2.000 0.8498
## ARCH Lag[5] 1.50995 1.440 1.667 0.5897
## ARCH Lag[7] 2.40672 2.315 1.543 0.6317
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 3.042
## Individual Statistics:
## mu 0.0247
## omega 0.1609
## alpha1 0.5443
## beta1 0.4857
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.07 1.24 1.6
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 2.9294 0.0034190 ***
## Negative Sign Bias 0.2759 0.7826255
## Positive Sign Bias 0.8522 0.3941489
## Joint Effect 20.8000 0.0001158 ***
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 126.9 5.534e-18
## 2 30 150.6 2.309e-18
## 3 40 191.8 4.654e-22
## 4 50 200.3 3.475e-20
##
##
## Elapsed time : 0.419215
Résultats de l’ajustement d’un modèle GARCH(1,1) aux données r
L’ajustement d’un modèle sGARCH(1,1) aux données \(r\) montre que le modèle est bien spécifié. En effet, les résultats des tests statistiques suivants sont satisfaisants :
Globalement, la sortie suggère que le modèle sGARCH(1,1) est un bon choix pour modéliser la volatilité des données.
Le modèle eGARCH est une extension du modèle GARCH qui permet de prendre en compte l’asymétrie de la volatilité. En effet, les séries temporelles financières présentent souvent une asymétrie, c’est-à-dire que les chocs négatifs ont tendance à avoir un impact plus important sur la volatilité que les chocs positifs.
L’équation de la variance conditionnelle du modèle eGARCH est la suivante :
\[\begin{equation} h_t = a_0 + a_1^+ h_{t-1}^+ + a_1^- h_{t-1}^- + \sum_{i=1}^q b_i \epsilon_{t-i}^2 \end{equation}\]
où :
Le modèle eGARCH est un modèle plus flexible que le modèle GARCH, car il permet de prendre en compte l’asymétrie de la volatilité. Cela peut être utile pour améliorer la précision des prévisions de volatilité.
modele3 <- ugarchspec(
variance.model = list(model = "eGARCH", order = c(1, 1)),
mean.model = list(armaOrder = c(0, 0)),
distribution.model = "norm"
)
## Warning: unidentified option(s) in variance.model:
## order
fit3 <- ugarchfit(spec = modele3, data = r)
show(fit3)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(1,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000391 0.000152 2.5673 0.010248
## omega -0.367747 0.015581 -23.6025 0.000000
## alpha1 -0.137497 0.009194 -14.9557 0.000000
## beta1 0.958650 0.001873 511.9504 0.000000
## gamma1 0.178230 0.016429 10.8485 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000391 0.000160 2.4379 0.014772
## omega -0.367747 0.043435 -8.4665 0.000000
## alpha1 -0.137497 0.017810 -7.7202 0.000000
## beta1 0.958650 0.004779 200.6013 0.000000
## gamma1 0.178230 0.034675 5.1400 0.000000
##
## LogLikelihood : 10737.2
##
## Information Criteria
## ------------------------------------
##
## Akaike -6.2469
## Bayes -6.2380
## Shibata -6.2469
## Hannan-Quinn -6.2437
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 2.151 0.1425
## Lag[2*(p+q)+(p+q)-1][2] 2.154 0.2385
## Lag[4*(p+q)+(p+q)-1][5] 3.577 0.3117
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.689 0.1937
## Lag[2*(p+q)+(p+q)-1][5] 2.498 0.5063
## Lag[4*(p+q)+(p+q)-1][9] 3.238 0.7191
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 0.004561 0.500 2.000 0.9462
## ARCH Lag[5] 0.271833 1.440 1.667 0.9477
## ARCH Lag[7] 0.867748 2.315 1.543 0.9341
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 1.7387
## Individual Statistics:
## mu 0.3763
## omega 0.7387
## alpha1 0.2247
## beta1 0.6563
## gamma1 0.1385
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.28 1.47 1.88
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 1.9592 0.05017 *
## Negative Sign Bias 0.9569 0.33870
## Positive Sign Bias 0.0566 0.95487
## Joint Effect 5.0655 0.16706
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 123.5 2.463e-17
## 2 30 136.7 6.471e-16
## 3 40 167.2 8.308e-18
## 4 50 175.7 3.612e-16
##
##
## Elapsed time : 0.4711051
Résultats de l’ajustement d’un modèle eGARCH(1,1) aux données r
L’ajustement d’un modèle eGARCH(1,1) aux données \(r\) montre que le modèle est bien spécifié. En effet, les résultats des tests statistiques suivants sont satisfaisants :
Les valeurs t de tous les paramètres sont statistiquement significatives. Cela signifie que les paramètres du modèle ont une signification statistique et que le modèle ne surajuste pas les données.
Les tests de Ljung-Box sur les résidus normalisés et les résidus au carré ne montrent aucune preuve de corrélation sérielle. Cela signifie que les résidus du modèle ne suivent aucun modèle de corrélation sérielle, ce qui est un signe de bonne spécification du modèle.
Les tests ARCH LM ne montrent aucune preuve d’effets ARCH. Cela signifie que la variance conditionnelle du modèle n’est pas affectée par les erreurs passées du modèle, ce qui est également un signe de bonne spécification du modèle.
Le test de stabilité de Nyblom montre que le modèle est stable. Cela signifie que les paramètres du modèle ne changent pas de manière significative au fil du temps, ce qui est important pour la prévision.
Le test de biais de signe montre que le modèle est capable de capturer les effets asymétriques des chocs positifs et négatifs sur la volatilité. Cela signifie que le modèle peut distinguer entre les chocs qui augmentent la volatilité et ceux qui la diminuent.
Le test de Pearson a amélioré la qualité d’ajustement montre que le modèle est un bon ajustement des données. Cela signifie que le modèle décrit bien les données historiques et qu’il peut être utilisé pour prédire les données futures.
Globalement, les résultats suggèrent que le modèle eGARCH(1,1) semble être un bon choix pour modéliser la volatilité des données.
Le modèle GJR-GARCH est une extension du modèle GARCH qui permet de prendre en compte l’asymétrie de la volatilité. En effet, les séries temporelles financières présentent souvent une asymétrie, c’est-à-dire que les chocs négatifs ont tendance à avoir un impact plus important sur la volatilité que les chocs positifs.
L’équation de la variance conditionnelle du modèle GJR-GARCH est la suivante :
\[\begin{equation} h_t = a_0 + a_1 h_{t-1} + a_2 \left( \frac{\epsilon_{t-1}^-}{\sigma_{t-1}} \right)^2 + \sum_{i=1}^q b_i \epsilon_{t-i}^2 \end{equation}\]
où :
Le coefficient d’asymétrie \(a_2\) mesure l’impact des chocs négatifs sur la volatilité. Lorsque \(a_2\) est positif, les chocs négatifs ont un impact plus important sur la volatilité que les chocs positifs.
modele4 <- ugarchspec(
variance.model = list(model = "gjrGARCH", order = c(1, 1)),
mean.model = list(armaOrder = c(0, 0)),
distribution.model = "norm"
)
## Warning: unidentified option(s) in variance.model:
## order
fit4 <- ugarchfit(spec = modele4, data = r)
show(fit4)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : gjrGARCH(1,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000512 0.000151 3.3905 0.000698
## omega 0.000004 0.000000 17.4853 0.000000
## alpha1 0.014629 0.004845 3.0193 0.002533
## beta1 0.862333 0.008256 104.4553 0.000000
## gamma1 0.177118 0.015624 11.3360 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu 0.000512 0.000147 3.4838 0.000494
## omega 0.000004 0.000000 10.4144 0.000000
## alpha1 0.014629 0.007603 1.9242 0.054332
## beta1 0.862333 0.011284 76.4214 0.000000
## gamma1 0.177118 0.031496 5.6236 0.000000
##
## LogLikelihood : 10727.32
##
## Information Criteria
## ------------------------------------
##
## Akaike -6.2412
## Bayes -6.2322
## Shibata -6.2412
## Hannan-Quinn -6.2380
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.021 0.3122
## Lag[2*(p+q)+(p+q)-1][2] 1.027 0.4894
## Lag[4*(p+q)+(p+q)-1][5] 2.566 0.4920
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.985 0.1589
## Lag[2*(p+q)+(p+q)-1][5] 2.219 0.5677
## Lag[4*(p+q)+(p+q)-1][9] 3.320 0.7051
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 0.05141 0.500 2.000 0.8206
## ARCH Lag[5] 0.54713 1.440 1.667 0.8696
## ARCH Lag[7] 1.45088 2.315 1.543 0.8312
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 8.1724
## Individual Statistics:
## mu 0.3544
## omega 1.3528
## alpha1 0.9738
## beta1 0.8195
## gamma1 0.8369
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.28 1.47 1.88
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 2.5442 0.0110 **
## Negative Sign Bias 1.4387 0.1503
## Positive Sign Bias 0.2281 0.8196
## Joint Effect 9.5600 0.0227 **
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 119.5 1.379e-16
## 2 30 140.8 1.249e-16
## 3 40 173.5 7.090e-19
## 4 50 198.8 6.074e-20
##
##
## Elapsed time : 0.6569419
# Calcule la volatilité
sigma2 <- sigma(fit2)
sigma3 <- sigma(fit3)
sigma4 <- sigma(fit4)
# Calcule les résidus
res2 <- r - fitted(fit2)
res3 <- r - fitted(fit3)
res4 <- r - fitted(fit4)
plot(sigma2,type = "l",col = "red",ylab = "Volatilité",xlab = "Temps",main = "Volatilité du Nasdaq : GARCH(1,1)")
plot(res2,type = "l",ylab = "Résidus",xlab = "Temps",main = "Résidus du modèle GARCH(1,1)")
plot(sigma3,type = "l",col = "red",ylab = "Volatilité",xlab = "Temps",main = "Volatilité du Nasdaq : eGARCH(1,1)")
plot(res3,type = "l",ylab = "Résidus",xlab = "Temps",main = "Résidus du modèle eGARCH(1,1)")
plot(sigma4,type = "l",col = "red", ylab = "Volatilité",xlab = "Temps",main = "Volatilité du Nasdaq : gjrGARCH(1,1)")
plot(res4,type = "l",ylab = "Résidus",xlab = "Temps", main = "Résidus du modèle gjrGARCH(1,1)")
Les graphiques de la volatilité montrent que les trois modèles sont capables de capturer les variations de la volatilité des rendements logarithmiques du Nasdaq Composite Index. Cette observation nous amène a postuler pour d’autres critéres comme celles d’informations Akaike (AIC) et Schwarz (SIC) qui pourraient probablement nous permettre de faire un meilleur choix du modèle le plus significatif parmi les 03 modéles candidats estimés.
Nous l’avons vu, dans les paragraphes précédents que tous nos modèles candidats sont probablement bien spécifiés. Cependant, le choix du modèle le plus significatif pour la prédiction de la volatilité future du Nasdaq dépendra des propriétés de ce modèle en rapport à celles de la série Nasdaq étudiée et ensuite des valeurs qui minimisent les critères d’informations Akaike (AIC), Bayes(BIC), Hannan-Quinn(HQIC) et Shibata (SIC). Les valeurs AIC,BIC, HQIC, SIC des modèles candidats suivants : GARCH (1,1), eGARCH(1,1), gjrGARCH(1,1)
GARCH
eGARCH
gjrGARCH
Dans ce cas, les modèles eGARCH et gjrGARCH présente les valeurs les plus faibles pour les quatre critères d’information, ce qui indique qu’ils sont les modèles qui ajustent le mieux le rendement parmi les trois. Utilisons la mesure d’erreur RMSE pour obtenir lez modèle optimal
set.seed(123)
sim2 = rnorm(length(r), mean = 0, sd = sigma(fit2))
rmse_garch = sqrt(mean((sim2-r)^2))
sim3 = rnorm(length(r), mean = 0, sd = sigma(fit3))
rmse_egarch = sqrt(mean((sim3-r)^2))
sim4 = rnorm(length(r), mean = 0, sd = sigma(fit4))
rmse_gjrgarch = sqrt(mean((sim4-r)^2))
RMSE GARCH = 0.0180487729225029
RMSE eGARCH = 0.0183238236059019
RMSE gjrGARCH = 0.0181649879479336$
Tout comme les critères d’erreur, les RMSE viennent nous conforter dans notre décision de choisir les modèles gjrGARCH et eGARCH pour modéliser la volatilté du Nasdaq Composite
plot(sim4, typ = "l", col = "green", main = "Rendement simulé pour le modèle gjrGARCH")
plot(r, main = "rendement réel du Nasdaq")