Rapport Final

download Rapport Final

of 72

Transcript of Rapport Final

ContenuIntroduction ......................................................................................................................................2 Chapitre 1 : Analyse du portefeuille ....................................................................................................3 1.1. 1.2. Le portefeuille .....................................................................................................................3 Analyse descriptive des donnes .........................................................................................4

Chapitre 2 : Les proprits de sries financires ..................................................................................7 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. Proprit 1 Stationnarit ..................................................................................................7 Proprit 2 Autocorrlations des carrs des variations de prix ...........................................8 Proprit 3 Distribution leptokurtique ..............................................................................9 Proprit 4 Clusters de Volatilit .......................................................................................9 Proprit 5 Distribution conditionnelle leptokurtique ...................................................... 10 Proprit 6 Effet de levier ............................................................................................... 10 Proprit 7 Saisonnalit .................................................................................................. 11 Proprit 8 Asymtrie perte/gain .................................................................................... 12

Chapitre 3 : Lapproche ARCH / GARCH et la modlisation de la volatilit .......................................... 13 3.1. 3.2. 3.3. Une analyse pralable ....................................................................................................... 13 Les modles ...................................................................................................................... 15 Value at Risk 1% sur lchantillon in-sample .................................................................... 16 Le modle GJR-GARCH sous la loi de Student .............................................................. 16 Le modle GJR-GARCH sous la loi de Skewed-Student ................................................. 18 Le modle GJR-GARCH sous la loi de GED.................................................................... 19

3.3.1. 3.3.2. 3.3.3. 3.4.

Le test du LR Kupiec........................................................................................................... 21

Chapitre 4 : Les Prvisions ................................................................................................................ 22 4.1. 4.2. Types des prvisions.......................................................................................................... 22 Les prvisions pour lchantillon out-of-sample.................................................................. 23

Chapitre 5. Estimation de la VaR diversifie du portefeuille .............................................................. 27 1. Modlisation CCC sous Normale ............................................................................................ 27

5.2. Prvisions glissantes .............................................................................................................. 29 Conclusions ..................................................................................................................................... 32 Annexes........................................................................................................................................... 34

1

Introduction

Importe la fin des annes 1980 sur les marchs financires aux Etats-Unis et ayant ses origines dans le domaine de lassurance, la notion de Value-at-Risk (VaR) est devenu un instrument important utilis notamment pour dterminer le risque sur les march financires, ainsi que pour mesurer la volatilit dun portefeuille Le but de ces modles VaR est de calculer le maximum de perte possible, un seuil donn, pour une certaine priode. Dans dautres mots, la VaR peut galement tre dfinie comme un quantile dune distribution de probabilit utilis pour tablir les risques des marchs financiers. Le modle RiskMetrics du J.P. Morgan est lun des instruments les plus connu caractrisant la volatilit dun portefeuille sous lhypothse de normalit. Gnralement, les rendements sont caractriss par de fortes asymtries et kurtosis, ce qui signifie que lhypothse de normalit nest pas respecte. Dans lanalyse que nous avons mene, nous avons considr plusieurs modles sous diffrentes lois de distribution.

2

Chapitre 1 : Analyse du portefeuille1.1. Le portefeuille

En vue de crer notre portefeuille, nous avons choisi les actifs de trois grandes compagnies qui, en plus, sont trs diffrentes regardant leur secteur dactivit. Ainsi, nous avons :

Questcore Pharmaceuticals compagnie amricaine qui droule son activit dans le secteur de la sant, notamment en neurologie et nphrologie. Elle a t cre le 17 Novembre 1999, quand Cypros Pharmaceuticals Corporation et RiboGene Inc ont fusionn pour devenir une entreprise intgre.

Coca Cola Company a dbut son activit en 1886 comme une compagnie qui vendait une boisson pour 5 cents le verre. Si au dbut, il y avait que 9 verres vendus par jour, travers le temps, CocaCola sest transforme dans une compagnie de renomm mondial, avec plus de 1.7 milliards de portions de boissons vendus chaque jour.

British American Tobacco - existe depuis plus de 100 ans. A t cre en 1902, en tant que joint-venture entre la socit britannique Imperial Tobacco et l'American Tobacco Company fonde par le Duc 'Buck' James. Malgr son nom qui est driv des noms des deux socits fondatrices, British American Tobacco a t tabli pour le commerce extrieur entre le Royaume-Uni et les Etats-Unis, et cest dvelopp dans dizaines de pays en Afrique, Asie, Amrique Latine et en Europe continentale. Par consquent, notre portefeuille, que nous allons dnommer QCB, est construit partir de ces trois actifs, chacun ayant une contribution de 1/3. Les prix des actions sont observes pendant 11 ans, partir du 4 dcembre 2000 jusquau 5 dcembre 2011. Le rendement de chaque actif a t construit selon la formule suivante:

O :

p1 = le prix du titre la fin de la priode considre

3

p0 = le prix du titre au dbut de la priode considre d = la dividende vers au cours de la priode Dans notre cas, p1 est le cours dnomme close de lactif, d est gal 0 et p0 est le cours close de la dernire session. Ensuite, nous avons calcul le rendement final du portefeuille, tout en utilisant la formule prsente ci-dessous :

Finalement, pour obtenir la valeur de notre rendement exprime en euros, nous allons multiplier cette par 1.000.000.

1.2.

Analyse descriptive des donnes

Les cours enregistres varient entre 18.8967 et 68.9900 units montaires, ayant comme moyenne la valeur de 34.185. La srie prsente une asymtrie positive (Sk=0.81876848>0), la mdiane (31.673) est infrieure la moyenne (34.185) et le coefficient d'aplatissement est ngatif (Ku=-0.0474093), aspect qui nous indique quon se trouve dans un cas dune distribution platikurtique. (cf. Annexe 1)

Si maintenant on regarde les rendements, ceux-ci varient entre -0.0895879 et 0.243100 units montaires, avec une moyenne qui ne diffre pas significativement de 0 (sa valeur est de 0.00125021). Les coefficients dasymtrie et daplatissement (Sk = 1.49058783, Ku = 11.9686628) nous indiquent que dans ce cas-l, par rapport celui prcdent, lasymtrie est droite et la srie est plus paisse que celle des cours (elle est leptokurtique). (cf. Annexe 1)

4

Fig. 1 : Graphique des cours du portefeuille

Gnralement, on observe une tendance croissante des cours. Toutefois, si nous regardons la priode comprise entre Janvier 2008 et Mars 2009, on observe que les cours ont connu une forte baisse, baisse produite cause de la crise financire.

En vue de calculer les prvisions de notre srie, nous allons faire plusieurs modlisations des cours et nous allons choisir le modle qui donne les meilleurs rsultats. Pour cela, nous avons divis la srie en 2 sous-chantillons : un chantillon destimation ou chantillon in-sample et un chantillon de test ou out-of-sample, qui correspond un tiers de lchantillon initial. Le premier chantillon va servir comme base de calcul sur laquelle nous allons construire nos modles et ensuite nos prvisions. La qualit prvisionnelle va tre ensuite vrifie sur le 2 me chantillon.

5

Fig. 2 : Graphique des rendements du portefeuille

6

Chapitre 2 : Les proprits de sries financires2.1. Proprit 1 Stationnarit

Les processus stochastiques pt associs aux prix dactif sont gnralement non stationnaires au sens de la stationnarit du second ordre, tandis que les processus associs aux rendements sont compatibles avec la proprit de stationnarit au second ordre. Pour tester la stationnarit dun processus, on utilise le test dADF : Test de Dickey Fuller Augment (ADF) O lhypothse nulle correspond : H0 : La srie prsente au moins une racine unitaire (elle est non-stationnaire) H1 : La srie ne prsente pas de racine unitaire Les tests que nous avons mens indiquent que la srie de cours est non-stationnaire. Par contre, quant la srie des rendements, on rejette lhypothse nulle.

Table 1 : Test Augmented Dickey Fuller pour les cours

7

Table 2 : Test Augmented Dickey Fuller pour les rendements

2.2.

Proprit 2 Autocorrlations des carrs des variations de prix2

La srie rt

associe aux carrs des rendements prsente gnralement de fortes auto-

corrlations, tandis que les autocorrlations de la srie r t sont souvent trs faibles (hypothse de bruit blanc). Dans notre cas, la srie des rendements levs aux carrs est stationnaire avec de fortes autocorrlations. Table 3 : Test de Ljung-Box sur la srie rt

Table 4 : Test de Ljung-Box sur la srie rt2

8

2.3.

Proprit 3 Distribution leptokurtique

(Queues de distribution paisses) Lhypothse de normalit des rendements est gnralement rejete. Les queues des distributions empiriques des rendements sont gnralement plus paisses que celles dune loi gaussienne. On parle alors de distribution leptokurtique. Pour un seuil considr de 1%, notre srie de rendements rejette lhypothse de normalit. Table 5 : Test de normalit pour la srie rt

En plus, elle est leptokurtique et prsente une faible asymtrie positive, comment nous lavons dj dmontr dans le chapitre prcdent. (voir Annexe 3)

Fig. 3 : Distribution leptokurtique

2.4.

Proprit 4 Clusters de Volatilit

On observe empiriquement que de fortes variations des rendements sont gnralement suivies par de fortes variations. On assiste ainsi un regroupement des extrmes en cluster ou paquets de volatilits. Cette proprit est aussi vrifie en regardant la figure 2.

9

2.5.

Proprit 5 Distribution conditionnelle leptokurtique

(Queues paisses conditionnelles) Une fois corrige la volatilit clustering (par exemple avec des modles ARCH), la distribution des rsidus demeure leptokurtique mme si la kurtosis est plus faible que dans le cas non-conditionnel.

2.6.

Proprit 6 Effet de levier

Il existe une asymtrie entre leffet des valeurs passes ngatives et leffet des valeurs passes positives sur la volatilit des cours ou de rendements. Les baisses des cours tendent engendrer une augmentation de la volatilit suprieure celle induite par une hausse des cours de mme ampleur. Essayant dappliquer cette proprit pour notre srie, nous observons que la volatilit pour les valeurs ngatives de rendements (0.01188) est infrieure celle des valeurs positives (0.01778). Donc, cette proprit nest pas vrifie. Table 6 : Volatilit des rendements ngatifs

Table 7 : Volatilit des rendements positifs

10

2.7.

Proprit 7 Saisonnalit

Les rendements prsentent de nombreux phnomnes de saisonnalit (effets week-end, effet janvier etc..). Table 8 : Leffet Janvier Rendement moyen (%) Priode 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 Janvier 0.73952 -0.24144 0.0162032 0.0953226 -0.32492 -0.11471 0.18766 -0.31212 -0.55716 -0.0891581 -0.0591 Autres mois 0.22142 -0.02329 0.077813 0.0030193 0.20134 0.16202 0.36341 0.0498465 0.0551420 0.23771 0.23377

Aprs avoir regard le tableau ci-dessus, nous pouvons dire que les rendements moyens du janvier sont infrieurs ceux obtenus pour les autres mois de lanne, ce qui signifie quil existe bien un effet janvier. Table 9 : Leffet Week-end Lundi Rendement moyen (%) -0.18427 Mardi -0.0012360 Mercredi -0.25553 Jeudi 0.0553284 Vendredi 0.0764297

Les rendements tendent crotre vers la fin de la semaine et dcrotre vers le dbut, mais on voit que leffet lundi (en valeur absolue) est plus lev que celui de vendredi.

11

2.8.

Proprit 8 Asymtrie perte/gain

La distribution des cours est gnralement asymtrique : il y a plus de mouvements forts la baisse qu la hausse. Nous avons vu prcdemment que la srie des rendements a une faible asymtrie positive. La srie des cours est galement asymtrique.

12

Chapitre 3 : Lapproche ARCH / GARCH et la modlisation de la volatilit

3.1.

Une analyse pralable

Avant de construire plusieurs modles, il faut tout dabord tester si les rsidus de la srie des rendements prsentent des autocorrlations (concept connu sous le nom dhtroscedasticit). Ce type de test se fait en utilisant les tests suivants : Le Multiplicateur de Lagrange (LM), test pour lequel on considre les hypothses suivantes : H0 : Absence d'autocorrlations sur t2 et donc absence des effets ARCH H1 : Prsence d'autocorrlations sur t2 (prsence des effets ARCH) Le Test de Ljung Box (Q-stat), ayant les mmes hypothses. Les rsultats que nous avons obtenus nous indiquent que lhypothse nulle est rejete, donc on est bien dans la prsence des effets ARCH. Cest le motif pour lequel on va utiliser une modlisation de type GARCH pour notre portefeuille.

Table 10 : Test de prsence des effets ARCH

13

Si on dsire dfinir les modles ARCH et GARCH, nous pouvons dire que, dune part, le modle ARCH fondamental est un processus avec mmoire courte, qui utilise les carrs des rsidus les plus rcentes pour estimer la variance.

Contrairement ce modle, le modle GARCH est un processus avec mmoire longue, qui utilise tous les derniers carrs des rsidus pour estimer la variance actuelle. Les tests LM prsents ci-dessus nous mnent conclure que lutilisation du modle GARCH est prfrable au modle ARCH. Donc, les rsidus t de la srie des rendements satisfont une reprsentation GARCH(1,1), caractrise par les quations suivantes :

o :

zt est un bruit blanc faible, 0 > 0, i = 1, , q, i 0, i = 1, , p.

Dans notre cas, lquation ht peut tre rcrite sous la forme : (voir Annexe 5 pour plus de dtails)

14

3.2.

Les modles

Nous avons commenc notre modlisation avec le modle AR(1)-GARCH(1,1) et nous avons continu avec les modles GJR-GARCH, VS-GARCH, APARCH, Q-GARCH. Les lois utilises sont la loi de Student, la loi de Skewed-Student, ainsi que la loi GED, aspect qui sera argument par la suite.

En ce qui concerne le modle IGARCH, modle qui correspond au cas dune racine unitaire dans la variance conditionnelle, nous avons d vrifier cet aspect. Les rsultats du test dADF nous indiquent que la variance est stationnaire. Du coup, nous allons liminer ce modle de notre analyse. (pour les rsultats obtenus, voir lAnnexe 2) Si nous revenons sur les lois utilises comme estimation, nous constatons que lhypothse de normalit a t rejete, donc la loi normale nest pas adquate pour notre srie. Par consquent, les lois de distribution utilises pour construire nos modles seront la loi de t Student, loi Skewed t Student et loi GED.

Si la distribution de Student permet de modliser des queues de distribution plus paisses que celles de la loi normale, la distribution Skewed Student modlise leffet dasymtrie. Essayant de caractriser la distribution erreurs gnralises (GED), nous pouvons dire quelle est symtrique. En mme temps, le paramtre v la fait plus flexible dans les queues, qui permet ainsi de modliser la Kurtosis. Pour un v2, on obtient une distribution platykurtique. Pour choisir le meilleur modle construit pour chaque loi de distribution, nous avons pris en compte plusieurs critres. Tout dabord, nous avons calcul la log-vraisemblance, critre pour lequel on prend en compte les valeurs les plus leves. Deuximement, on considre le critre dAIC pour lequel on regarde que les valeurs plus petites et aussi on prend en compte le nombre de paramtres qui doit tre minimal.

15

Les meilleurs rsultats sont obtenus pour les modles suivants (cf. Annexe 3): Distribution Modle Paramtres LogLikelihood Student GJR GARCH (la constante nest pas significative) Skewed Student GED GJR GARCH GJR GARCH 8 6 5016.72 4754.211 -10017.44 -9496.42 6 4772.881 -9533.76 AIC

3.3.

Value at Risk 1% sur lchantillon in-sample

Pour les trois modles retenus nous avons construit la VaR 1% et nous lavons reprsente par la suite. La mthode de calcul de la VaR est base sur les trois actifs choisis au dbut, sans prendre en compte leurs corrlations. De mme, lors de cette partie, nous allons considrer les mthodes paramtriques de calcul, reprsentes par le modle GJR-GARCH, dans notre cas.3.3.1. Le modle GJR-GARCH sous la loi de Student

Fig. 4 : Variance conditionnelle estime pour GJR-GARCH sous la loi de Student

16

Fig. 5 : Estimation de la VaR 1% sous la loi de Student Table 11 : Les violations de la VaR pour le 1er modle

On voit bien que la frquence de violations dans le cas de la loi de Student est gale 1.94, valeur suprieure la valeur aspecte de 1%, ce se traduit par le fait que notre VaR sous-estime le risque.

17

3.3.2. Le modle GJR-GARCH sous la loi de Skewed-Student

Fig. 6 : Variance conditionnelle estime pour GJR-GARCH sous la loi de Skewed - Student

Fig. 7 : Estimation de la VaR 1% sous la loi de Skewed - Student

18

Table 12 : Les violations de la VaR pour le 2me modle

Par rapport au cas prcdent, o on sous-estimait le risque, ici on le surestime, le pourcentage des violations tant gal 0.22%=0; restrict arch1 + garch1 sans IGARCH*/ proc arima data = modelear1_student; identify var=h_rdt stationarity=(adf); run; quit; ods graphics off; /********************************* 3.1.2. Estimation GJR-GARCH **********************************/ title "Loi Student - GJR-GARCH"; proc model data = ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 df 3.91690; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+phi*zlag(resid.rdt**2) ; bounds arch0 arch1 garch1 >0; errormodel rdt ~ t(h.rdt,df); fit rdt / method = marquardt fiml ; run; quit ; data aic; aic = 2*6-2*4774.976; /* serie

45

proc print data = aic; run; /* Log Likelihood = 4774.976 6 parametres AIC = -9537.95 non-signif: intercept */ /********************************* 5.1.3. Estimation VS-GARCH **********************************/ title "Loi Student - VS-GARCH"; proc model data = ech_estim ; parms arch0neg .000037383 arch1neg 0.15768 garch1neg 0.77786 arch0pos .000037383 arch1pos 0.15768 garch1pos 0.77786 df 3.91690 ; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0pos + arch1pos*zlag(resid.rdt**2) + garch1pos*zlag(h.rdt); else h.rdt = arch0neg + arch1neg*zlag(resid.rdt**2) + garch1neg*zlag(h.rdt) ; errormodel rdt ~ t(h.rdt,df); fit rdt / fiml method = marquardt converge=0.01; run ; data aic; aic = 2*8-2*4775.119; proc print data = aic; run; /* Log Likelihood = 4775.119 8 parametres AIC = -9534.24 non-signif: intercept, arch0pos */ /********************************* 3.1.4. Estimation APARCH **********************************/ title "Loi Student - APARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 df 3.91690; rdt = intercept; h.rdt =arch0+ arch1 * 2*(gamma(3/2)*gamma((v-3)/2)*(v2)**(3/2))/(1.5*sqrt(constant("pi")*(v-2))*gamma(v/2)); errormodel rdt~t(h.rdt,v); fit rdt / fiml method=marquardt converge=0.1 ; run; quit; * ne converge pas; /********************************* 3.1.5. Estimation Q-GARCH **********************************/ title "Loi Student - Q-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 df 3.91690; rdt = intercept ; h.rdt =arch0+ arch1 * zlag(resid.rdt ** 2)+garch1*zlag(h.rdt)+gamma*zlag(-resid.rdt); bounds arch0 arch1 >=0;

46

errormodel rdt~t(h.rdt,v); fit rdt / method = marquardt concerge=0.1; run; quit ; /* biais */ /***************************************** 3.2. Modeles Loi Skewed Student ******************************************/ /********************************* 3.2.1. Estimation GARCH **********************************/ title "Loi Skewed Student - GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; h.rdt =arch0+ arch1 * zlag(resid.rdt ** 2)+garch1*zlag(h.rdt); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt ; run; quit; data aic; aic = 2*7-2*5005.061; proc print data = aic; run; /* Log Likelihood = 5005.061 7 parametres AIC = -9996.12 */ /********************************* 3.2.2. Estimation APARCH **********************************/ title "Loi Skewed Student - APARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; h.rdt =arch0+ arch1 * 2*(gamma(3/2)*gamma((v-3)/2)*(v2)**(3/2))/(1.5*sqrt(constant("pi")*(v-2))*gamma(v/2)); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s) -0.5*(log(constant("pi")*(v2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(-2*IT)));

47

obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt converge=0.1; run; quit; * biais; /********************************* 3.2.3. Estimation GJR-GARCH **********************************/ title "Loi Skewed Student - GJR-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+ phi*zlag(resid.rdt**2); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt ; run; quit; data aic; aic = 2*8-2*5018.003; proc print data = aic; run; /* Log Likelihood = 5018.003 8 parametres AIC = -10020.01 */ /********************************* 3.2.4. Estimation VS-GARCH **********************************/ title "Loi Skewed Student - VS-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept; if zlag(resid.rdt) > 0 then h.rdt = arch0pos + arch1pos*zlag(resid.rdt**2) + garch1pos*zlag(h.rdt); else h.rdt = arch0neg + arch1neg*zlag(resid.rdt**2) + garch1neg*zlag(h.rdt) ; m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1;

48

else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt converge = 0.1; run; quit; /* biais */ /********************************* 3.2.5. Estimation Q-GARCH **********************************/ title "Loi Skewed Student - Q-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt) + gamma*zlag(-resid.rdt); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt; run; quit; data aic; aic = 2*7-2*5013.478; proc print data = aic; run; /* Log Likelihood = 5013.478 7 parametres AIC = -10012.96 */ /***************************************** 3.3. Modeles Loi GED ******************************************/ /********************************* 3.3.1. Estimation GARCH **********************************/ title "Loi GED - GARCH"; proc model data = ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690; rdt = intercept; h.rdt = arch0 + arch1 * zlag(resid.rdt ** 2) + garch1 * zlag(h.rdt); zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(-2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt);

49

obj=-obj; errormodel rdt ~ general(obj,v); fit rdt/ fiml method=marquardt; run; quit; data aic; aic = 2*5-2*4753.216; proc print data = aic; run; /* Log Likelihood = 4753.216 5 parametres AIC = -9496.43 non-sign: intercept */ /********************************* 3.3.2. Estimation GJR-GARCH **********************************/ title "Loi GED - GJR-GARCH"; proc model data = ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690; rdt = intercept; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+phi*zlag(resid.rdt**2) ; bounds arch0 arch1 garch1 >0; zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt); obj=-obj; errormodel rdt ~ general(obj,v); fit rdt / fiml method = marquardt; run; quit; data aic; aic = 2*6-2*4756.546; proc print data = aic; run; /* Log Likelihood = 4756.546 6 parametres AIC = -9501.09 non-sign: intercept */ /********************************* 3.3.3. Estimation VS-GARCH **********************************/ title "Loi GED - VS-GARCH "; proc model data = ech_estim ; parms arch0neg .000037383 arch1neg 0.15768 garch1neg 0.77786 arch0pos .000037383 arch1pos 0.15768 garch1pos 0.77786 v 3.91690 ; rdt = intercept; if zlag(resid.rdt) > 0 then h.rdt = arch0pos + arch1pos*zlag(resid.rdt**2) + garch1pos*zlag(h.rdt); else

50

h.rdt = arch0neg + arch1neg*zlag(resid.rdt**2) + garch1neg*zlag(h.rdt) ; zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt); obj=-obj; errormodel rdt ~ general(obj,v); fit rdt / fiml method = marquardt converge = 0.01; run ;quit; data aic; aic = 2*8-2*4755.693; proc print data = aic; run; /* Log Likelihood = 4755.693 8 parametres AIC = -9495.39 non signif: intercept, arch0neg, arch0pos /********************************* 3.3.4. Estimation Q-GARCH **********************************/ title "Loi GED - Q-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690; rdt = intercept ; h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt) + gamma*zlag(-resid.rdt); zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt); obj=-obj; errormodel rdt ~ general(obj,v); fit rdt / method = marquardt fiml converge = 0.001; run; quit; data aic; aic = 2*6-2*4754.5; proc print data = aic; run; /* Log Likelihood = 4754.5 6 parametres AIC = -9497 non signif: intercept, gamma

*/

*/

/********************************* 3.3.5. Estimation APARCH **********************************/ title "Loi GED - APARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690; rdt = intercept ;

51

h.rdt =arch0+ arch1 * 2*(gamma(3/2)*gamma((v-3)/2)*(v2)**(3/2))/(1.5*sqrt(constant("pi")*(v-2))*gamma(v/2)); zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt); obj=-obj; errormodel rdt ~ general(obj,v); fit rdt / fiml method = marquardt converge = 0.001; run; quit; * biais; /***************************************************************** Modles retenus l'issue de cette tape: ****************************************************************** Loi Student: GJR-GARCH Log Likelihood 4774.976 AIC -9537.95 6 parametres intercept non-signif Loi Skewed Student: AIC -10020.01 Loi GED: AIC -9501.09 GJR-GARCH Log Likelihood 5018.003 8 parametres GJR-GARCH Log Likelihood 4756.546 6 parametres intercept non-signif

/************************************************************************** 4. Estimation paramtrique **************************************************************************/ /********************************** 4.1. Les modles retenus ***********************************/ title; proc sort data = ech_estim; by date; run; * STUDENT - Le modele GJR-GARCH ; title "Loi Student - GJR-GARCH"; proc model data = ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 df 3.91690; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt) + phi*zlag(resid.rdt**2) ; bounds arch0 arch1 garch1 >0; errormodel rdt ~ t(h.rdt,df); fit rdt / method = marquardt fiml out = stud_gjr_garch; outvars date intercept rdt h.rdt df; run ; quit ; data stud_gjr_garch; set stud_gjr_garch (rename = (df = v));

52

run; * SKEWED STUDENT - Le modele GJR-GARCH ; title "Loi Skewed Student - GJR-GARCH"; proc model data=ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+ phi*zlag(resid.rdt**2); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt out=sk_gjr_garch ; outvars date intercept rdt h.rdt v; run; quit; * GED - Le modele GJR-GARCH ; title "Loi GED - GJR-GARCH"; proc model data = ech_estim; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt) + phi*zlag(resid.rdt**2) ; bounds arch0 arch1 garch1 >0; zt=resid.rdt/sqrt(h.rdt); lambda=sqrt(2**(2/v)*gamma(1/v)/gamma(3/v)); obj=log(v/lambda)-0.5*abs(zt/lambda)**v-(1+v**(-1))*log(2)log(gamma(1/v))-0.5*log(h.rdt); obj=-obj; errormodel rdt ~ general(obj,v); fit rdt / fiml converge = 0.001 maxiter = 200 method = marquardt out = ged_gjr_garch; outvars date intercept rdt h.rdt v; run; quit ; /************************************* 4.2. Calculer la VaR 1% **************************************/ %macro var( model, table_model, distribution); %let a=.01; %let csi = 1.49091776; /* Sk du rendements */ data var_&model (keep = date intercept rdt h_rdt var1); set &table_model;

53

if &distribution = "student" then do; var1 = -intercept - sqrt((v-2)/v) * sqrt(h_rdt) * quantile('t',&a,v); end; else if &distribution= "skewed" then do; m = (gamma((v-1)/2) * sqrt((v-2)/3.1415) * (&csi-1/&csi) / gamma(v/2)); s = sqrt((&csi**2 + (1/&csi**2) - 1) - m**2); if &a 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+ phi*zlag(resid.rdt**2); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1;

56

else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml method=marquardt out=sk_gjr_garch ; outvars date intercept rdt h.rdt v; run; quit; title; * La prvision glissante pour obs 1855 ; %macro prevgarch; data is0; set ech_estim; run; proc model data=is0 noprint; parameters arch0 .000037383 arch1 0.15768 garch1 0.77786 v 3.91690 gamma 0 k 1; rdt = intercept ; if zlag(resid.rdt) > 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+ phi*zlag(resid.rdt**2); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml out=var0 method=marquardt; outvars rdt intercept arch0 arch1 garch1 v k m s h.rdt; quit; data is0; set is0 end=dernier; if dernier; data var0; set var0 end=dernier; if dernier; data var0; merge var0 is0; data previsionsk; set var0; if 0.01 0 then h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt); else h.rdt = arch0 + arch1*zlag(resid.rdt**2) + garch1*zlag(h.rdt)+ phi*zlag(resid.rdt**2); m=gamma(((v-1)/2)*sqrt(v-2))/(sqrt(constant("pi"))*gamma(v/2))*(k-1/k); s=sqrt((k**2+1/(k**2)-1)-m**2); zt=resid.rdt/sqrt(h.rdt); if zt >= -m/s then IT=1; else IT=0; obj=log(gamma((v+1)/2))-log(gamma(v/2))+log(2/(k+1/k))+log(s)0.5*(log(constant("pi")*(v-2))+log(h.rdt)+(1+v)*log(1+(s*zt+m)**2/(v-2)*k**(2*IT))); obj=-obj; errormodel rdt~general(obj,v,k); fit rdt / fiml out=var method=marquardt; outvars rdt intercept arch0 arch1 garch1 v k m s h.rdt; quit; * On retienne la derniere obs de la base PORT; data is; set is end=dernier; if dernier; * On retienne les estimateurs de la variance cond GJR GARCH pour la derniere obs de la base PORT; data var; set var end=dernier; if dernier; * On construit une BD pour le rdt de la base PORT et sa VaR ; data var; merge var is; * On construit la VaR estime pour la derniere obs de la BD PORT ; data previsions; set var; if 0.01