Econométrie de la volatilité et de la VaR
Transcription
Econométrie de la volatilité et de la VaR
2012 Econométrie de la volatilité et de la VaR Modélisation ARCH – GARCH Etudiants: Aurelia ISTRATII Taylan KUNAL Luis MACAVILCA Master 2 – Ingénierie Economique et Financière 01/04/2012 Table of Contents I - Constitution d’un portefeuille d’actifs financiers ......................................................................................... 4 I – 1. Représentation graphique des cours : ................................................................................................... 4 I – 2. Représentation graphique des rendements et statistiques descriptives ................................................ 5 II - Modélisation GARCH univariée ................................................................................................................. 9 II – 1. Détermination des paramètres du modèle GARCH (p, q): ................................................................. 9 II – 2. Modélisation des modèles de types ARCH sous la loi normale : ..................................................... 12 II – 2.a Modélisation GARCH (1,2) .................................................................................................. 12 II – 2.b Modélisation IGARCH (1,2) : ............................................................................................... 14 II – 2.c Modélisation EGARCH (1,2) : .............................................................................................. 16 II – 2.d Modélisation GARCH - M(1,1) : .......................................................................................... 18 II – 2.e Résumé des résultats obtenus précédemment :...................................................................... 21 II – 3. Modélisation des modèle de types ARCH sous la loi de Student : ................................................... 22 II – 3.a Modélisation GARCH (1,2) : ................................................................................................ 22 II – 3.b Modélisation IGARCH (1,2) : ............................................................................................... 24 II – 3.c Modélisation GARCH-M (1,2) : ........................................................................................... 26 II – 3.d Résumé des résultats obtenus précédemment :...................................................................... 28 III - Calcul de la Value at Risk ........................................................................................................................ 29 III – 1. Presentation de la Value at Risk ...................................................................................................... 29 III – 2. Backtesting ...................................................................................................................................... 29 III – 2.a La couverture non conditionnelle .......................................................................................... 30 III – 2.b Test de Kupiec: ...................................................................................................................... 30 III – 2.c Test de Kupiec pour la modèle EGARCH sous la loi normale et comparaison avec les rendements ................................................................................................................................. 31 III – 3.d Test de Kupiec pour la modèle IGARCH sous la loi de student et comparaison avec les rendements : ............................................................................................................................... 32 III – 2.e Choix du modèle de prévision ............................................................................................... 34 IV - Calcul de la Value at Risk Out of Sample ............................................................................................... 35 IV – 1. Prévision glissante sur 250 jours de la Value at Risk Out Sample : ............................................... 35 IV – 2. Backtesting : .................................................................................................................................... 37 V - Prévisions de VaR à 10 jours – tests ex-post ............................................................................................ 41 Conclusion ....................................................................................................................................................... 44 Annexe : Code SAS......................................................................................................................................... 45 I - Constitution d’un portefeuille d’actifs financiers L’objectif de notre projet est de proposer des prévisions de VaR sur les rendements d’un Portefeuille composé de trois actifs bancaires. La Var est une mesure des pertes potentielles d’un titre ou d’un portefeuille financier. C’est un outil de mesure du risque dont se servent les investisseurs dans leurs choix stratégiques. Sa modélisation est l’une des problématiques les plus étudiées en finance car l’enjeu d’une bonne maitrise de la Var est nécessaire dans ce contexte financier très volatile, de plus en plus imprévisible et sous la menace permanente d’une crise. Notre choix portera sur trois grandes entreprises françaises de CAC 40 : Société Générale, Michelin et Danone. Notre portefeuille est construit de la manière suivante : WSocGen =1/2, WMichelin = ¼, WDanone = ¼. Les cours de ces trois titres ont été téléchargés depuis http://finance.yahoo.com/. Pour que notre étude soit fidèle à la réalité, nous prendrons un l’historiques des cours journaliers sur une période de 9 ans débutant le 1er janvier 2003 et terminant le 29 février 2012. I – 1. Représentation graphique des cours : On constate que les titres Michelin et Danone sont relativement corrélés. La crise financière a eu un impact important sur Société Générale et Michelin, alors que sur Danone l’impact est moins important, le cours restant à peu près constant dans le temps. I – 2. Représentation graphique des rendements et statistiques descriptives Representation graphique des rendements du portefeuille rend 0.19 0.18 0.17 0.16 0.15 0.14 0.13 0.12 0.11 0.10 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0.00 -0.01 -0.02 -0.03 -0.04 -0.05 -0.06 -0.07 -0.08 -0.09 -0.10 -0.11 -0.12 01/01/2003 01/01/2004 01/01/2005 01/01/2006 01/01/2007 01/01/2008 01/01/2009 01/01/2010 01/01/2011 Date Statistiques descriptives Moments N Mean 2356 Sum Weights 0.00014706 Sum Observations 2356 0.34646538 01/01/2012 01/01/2013 Std Deviation 0.01913219 Variance 0.00036604 Skewness 0.25764592 Kurtosis 8.52062402 Uncorrected SS 0.86207706 Corrected SS 0.86202611 Coeff Variation 13010.0867 Std Error Mean 0.00039416 Basic Statistical Measures Location Mean Variability 0.000147 Std Deviation Media 0.000650 Variance n Mode . Range Interquartile Range Tests for Location: Mu0=0 Test Statistic Student's t t Sign M p Value 0.373085 Pr > |t| 47 Pr 0.7091 >= 0.0553 |M| Signed Rank Quantiles (Definition 5) Quantile Estimate 100% Max 0.181547956 99% 0.049172764 95% 0.027425237 90% 0.019214512 75% Q3 0.009255797 50% Median 0.000649569 25% Q1 -0.008595795 10% -0.019717144 5% -0.030249041 S 50137 Pr >= |S| 0.1290 0.01913 0.0003660 0.29650 0.01785 Extreme Observations Lowest Quantiles (Definition 5) Quantile Value Estimate 1% -0.055171664 0% Min -0.114947674 Highest Ob s Value Obs -0.1149477 2272 0.103861 2247 -0.0946289 2219 0.118188 1472 -0.0945482 2213 0.123055 1888 Missing Values Missin g Coun Value t . 1 -0.0938308 1498 0.125352 2269 Percent Of -0.0835047 1483 0.181548 1153 All Missin Obs g Obs 0.04 100.00 Graphiques des statistiques descriptives Histogram 0.19+* . . 0.13+* .* .* 0.07+* .** .******** 0.01+************************************************ .******************************************* .********* -0.05+** .* .* -0.11+* ----+----+----+----+----+----+----+----+----+--* may represent up to 21 counts # 1 Boxplot * 2 2 1 8 38 168 1005 900 171 41 13 5 1 * * * 0 0 0 +--+--+ +-----+ 0 0 0 * * Normal Probability Plot 0.19+ * | | 0.13+ * | * | * 0.07+ * | ****** | ++******** 0.01+ ************** | ************* | +*******++ -0.05++***** |** |* -0.11+* +----+----+----+----+----+----+----+----+----+----+ -2 -1 0 +1 +2 Interprétations : Le rendement moyen est de 0.000147 sur la période. Le rendement médian (c’est-à-dire celui pour lequel 50% des rendements ont été à la fois inférieurs et supérieurs) est de 0.0006495 ce qui est supérieure à la moyenne des rendements, on a donc l’intuition que les baisses de cours sont plus conséquentes que les hausses. L’écart-type étant de 0.0191 (plus de 100 fois la moyenne), on peut considérer que la volatilité des rendements est forte. Le coefficient d’asymétrie est de 0.25764592, il y a donc une symétrie à droite et cela signifie que la moyenne est plus grande que la médiane. Le coefficient d’aplatissement est une quantité mesurant l’épaisseur des queues de la distribution, ce dernier vaut 8.52062402 , ce qui signifie que les queues sont plus épaisses que celles de la loi normale. La distribution des rendements du portefeuille ne suit donc pas tout à fait ceux d’une loi normale. II - Modélisation GARCH univariée Les modèles de types ARCH « AutoRegressive Conditional Heteroskedasticity » sont utilisés pour caractériser et modéliser le comportement des séries temporelles dont la volatilité dépend des innovations passées. Ces modèles ont été introduit en 1982 par Engle et se divise en plusieurs catégories : GARCH, GARCH (p,q), NGARCH, IGARCH, EGARCH… L’utilisation de la méthode ARCH choisie nous permettra de modéliser la volatilité des rendements des séries constituant notre portefeuille. On utilise deux types de représentations : La variance conditionnelle hétéroscédastique : V(rt+1/ f(t, β) Où β représente un ensemble de variables explicatives ou les propres observations passées de la série. La variance non conditionnellement hétéroscédastique : V(rt+1 II – 1. Détermination des paramètres du modèle GARCH (p, q): La première étape consiste à déterminer les ordres du modèle où : p représente le nombre de retard de la partie MA et q le nombre de retard de la partie AR du processus des rendements du portefeuille. Pour identifier le nombre de retard sous SAS, on créer la procédure ARIMA qui nous permet d’identifier, d’estimer puis de prévoir le modèle. Résultats : On constate une autocorrélation des rendements. Nous vérifions ensuite l’absence d’autocorrélation par le test du portemanteau. Name of Variable = rend Mean of Working Series 0.000147 Standard Deviation 0.019128 2356 Number of Observations Test du Portemanteau : Autocorrelation Check for White Noise To Lag Chi-Square DF Pr > ChiSq Autocorrelations 6 26.17 6 0.0002 0.074 -0.037 -0.031 -0.013 -0.041 -0.038 12 38.57 12 0.0001 -0.042 0.017 -0.016 0.002 0.038 0.038 18 47.69 18 0.0002 0.023 -0.026 -0.007 0.030 0.035 -0.021 24 67.59 24 <.0001 0.058 0.023 -0.009 0.002 0.049 -0.044 Le test ci-dessus permet de savoir si les résidus de la série contiennent des informations supplémentaires pouvant être utilisées pour un modèle plus complexe. Les probabilités critiques jusqu’à l’ordre 24 sont inférieurs à 5%, on n’aurait donc tord dans plus de 5% des cas de rejeter l’hypothèse nulle de nullité des coefficients de corrélation (d’absence de corrélation). Les rendements sont donc auto corrélés. Même si les rendements sont autocorrelés, pour de raisons pédagogiques, nous allons continuer notre étude avec la modélisation des modèles de type ARCH. Minimum Information Criterion Lags MA 1 MA 2 MA 3 MA 4 MA 5 MA 6 AR 1 -7.91901 -7.91971 -7.91659 -7.91383 -7.9119 -7.90885 AR 2 -7.9197 -7.91643 -7.91332 -7.91059 -7.90862 -7.90556 AR 3 -7.91647 -7.9133 -7.91003 -7.9073 -7.90543 -7.90249 AR 4 -7.91368 -7.91058 -7.90728 -7.9041 -7.9026 -7.89952 AR 5 -7.91193 -7.90866 -7.90549 -7.90265 -7.89936 -7.89624 AR 6 -7.90898 -7.90573 -7.90264 -7.89959 -7.89654 -7.8953 Error series model: AR(12) Minimum Table Value: BIC(1,2) = -7.91971 Page 11 of 56 Pour modéliser notre processus, on choisit p = 1 et q =2, paramètres optimaux qui minimisent le critère de Schwarz. II – 2. Modélisation des modèles de types ARCH sous la loi normale : II – 2.a Modélisation GARCH (1,2) Les processus GARCH sont similaires aux processus ARMA usuels dans le sens où le degré q apparaît comme le degré e » la partie de la moyenne mobile et p comme celui de l’autorégressive ; cela permet d’introduire des effets d’innovations. La variance conditionnelle est déterminée par le carré des p erreurs précédentes et des q variances conditionnelles passées. rend Dependent Variable Ordinary Least Squares Estimates SSE MSE 0.86202611 DFE 2355 0.0003660 Root MSE 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 DurbinWatson 1.8523 Regress R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Variable Intercep t Appro D Estimat Standar t Valu x F e d Error e Pr > |t| 1 -0.000147 0.000394 -0.37 0.7091 WARNING: Optimization cannot improve the function value. Page 12 of 56 GARCH Estimates SSE 0.86656097 Observations MSE 0.0003678 Uncond Var 2356 0.00130263 Log Likelihood 6507.77533 Total . SBC -13000.021 AIC -13011.551 MAE 0.01289643 AICC -13011.546 MAPE 162.729959 HQC -13007.352 R- Square 22973.2199 Normality Test <.0001 Pr > ChiSq Parameter Estimates Variable Appro D Estimat Standar t Valu x F e d Error e Pr > |t| Intercept 1 -0.001534 0.000349 -4.39 <.0001 ARCH0 1 1.2373E-6 1.9245E-6 0.64 0.5203 ARCH1 1 0.0944 0.0177 5.33 <.0001 GARCH 1 1 0.5048 0.2834 1.78 0.0748 GARCH 2 1 0.3998 0.2725 1.47 0.1423 Page 13 of 56 II – 2.b Modélisation IGARCH (1,2) : « Integrated Generalized Autoregressive Conditional Heteroskedasticity IGARCH” est une version restrictive du modèle GARCH, où les paramètres persistant sont sommés à un seul et il y’a par conséquent la présence d’une racine unitaire dans le processus GARCH. Dependent Variable rend Ordinary Least Squares Estimates SSE MSE 0.86202611 DFE 0.0003660 Root MSE 2355 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 Page 14 of 56 Ordinary Least Squares Estimates 1.8523 Regress DurbinWatson R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Appro D Estimat Standar t Valu x F e d Error e Pr > |t| Variable 1 -0.000147 Intercep t 0.000394 -0.37 0.7091 Algorithm converged. Integrated GARCH Estimates SSE 0.86368672 Observations 2356 MSE 0.0003666 Uncond Var . Log Likelihood 6522.2654 Total . R- Square SBC -13013.472 AIC -13036.531 MAE 0.01287187 AICC -13036.514 MAPE 137.410289 HQC -13028.134 15141.7872 Normality Test <.0001 Pr > ChiSq Parameter Estimates Variable D Estimat Standar t Valu Approx F e d Error e Pr > |t| Intercept 1 -0.000987 0.000303 -3.26 0.0011 ARCH0 1 8.2123E-7 1.4401E-6 0.57 0.5685 ARCH1 1 0.009905 0.0373 0.27 0.7907 ARCH2 1 0.0474 0.0415 1.14 0.2529 GARCH 1 1 0.9427 0.0201 46.92 <.0001 Page 15 of 56 II – 2.c Modélisation EGARCH (1,2) : « The exponential general autoregressive conditional heteroskedastic (EGARCH) » est une autre forme de processus GARCH modélisé par Nelson en 1991. Les paramètres ont un impact différent sur la volatilité. Dependent Variable rend Ordinary Least Squares Estimates SSE MSE 0.86202611 DFE 0.0003660 Root MSE 2355 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 Page 16 of 56 Ordinary Least Squares Estimates 1.8523 Regress DurbinWatson R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Variable Appro D Estimat Standar t Valu x F e d Error e Pr > |t| 1 -0.000147 Intercep t 0.000394 -0.37 0.7091 Algorithm converged. Exponential GARCH Estimates SSE 0.86336073 Observations MSE 0.0003665 Uncond Var Log Likelihood 6545.268 Total R- 2356 . . Square SBC -13051.712 AIC MAE 0.01287008 AICC -13080.51 MAPE 133.583196 HQC -13070.04 Normality Test Pr > ChiSq -13080.536 10835.5532 <.0001 Page 17 of 56 Parameter Estimates Variable II – 2.d Appro D Estimat Standar t Valu x F e d Error e Pr > |t| Intercept 1 -0.000900 0.000247 -3.64 0.0003 EARCH0 0 -0.0198 . . . EARCH1 1 0.000272 0.0970 0.00 0.9978 EARCH2 1 0.1034 0.0868 1.19 0.2336 EGARCH 1 1 0.9971 0.001371 727.09 <.0001 THETA 1 -0.0138 0.2655 -0.05 0.9586 Modélisation GARCH - M(1,1) : « The GARCH-in-mean (GARCH-M) » modèle ajoute un terme hétéroscédastique dans l’équation de la moyenne. Page 18 of 56 rend Dependent Variable Ordinary Least Squares Estimates 0.86202611 DFE SSE 2355 0.0003660 Root MSE MSE 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 1.8523 Regress DurbinWatson R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Variable Intercep t Appro D Estimat Standar t Valu x F e d Error e Pr > |t| 1 -0.000147 0.000394 -0.37 0.7091 WARNING: Optimization cannot improve the function value. GARCH Estimates SSE 0.85477401 Observations MSE 0.0003628 Uncond Var 2356 . Log Likelihood 6424.26049 Total SBC -12801.933 AIC -12836.521 MAE 0.01283446 AICC -12836.485 MAPE 163.427422 HQC -12823.926 R- 0.0084 Square Normality Test Pr > ChiSq 112650.587 <.0001 Page 19 of 56 Parameter Estimates Variable Appro D Estimat Standar t Valu x F e d Error e Pr > |t| Intercept 1 -0.003081 0.001186 -2.60 0.0094 ARCH0 1 0.0000122 0.0000188 0.65 0.5150 ARCH1 1 -3.42E-12 0.0646 -0.00 1.0000 ARCH2 1 0.3475 0.3547 0.98 0.3272 GARCH 1 1 0.6878 0.3563 1.93 0.0536 DELTA 1 0.1257 0.1230 1.02 0.3065 Page 20 of 56 II – 2.e Résumé des résultats obtenus précédemment : Nous remarquons que les résultats d’estimation ne sont pas satisfaisants pour ces modèles, notamment au niveau de la significativité des variables. Par conséquent, nous allons continuer avec la modélisation des modèles de type ARCH sous la loi de Student. Page 21 of 56 II – 3. Modélisation des modèle de types ARCH sous la loi de Student : II – 3.a Modélisation GARCH (1,2) : rend Dependent Variable Ordinary Least Squares Estimates SSE MSE 0.86202611 DFE 2355 0.0003660 Root MSE 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 DurbinWatson 1.8523 Regress R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Variable Intercep t Appro D Estimat Standar t Valu x F e d Error e Pr > |t| 1 -0.000147 0.000394 -0.37 0.7091 ERROR: Convergence not attained in 50 iterations. Interpret the estimates with care. GARCH Estimates SSE 0.86359127 Observations MSE 0.0003665 Uncond Var 2356 . Log Likelihood 6539.45387 Total SBC -13055.614 AIC -13072.908 MAE 0.01287128 AICC -13072.898 R- . Square Page 22 of 56 GARCH Estimates MAPE 136.323103 HQC -13066.61 505209.208 Normality Test <.0001 Pr > ChiSq Parameter Estimates Variable Appro D Estimat Standar t Valu x Variable F e d Error e Pr > |t| Label Intercept 1 -0.000962 0.000204 -4.72 <.0001 ARCH0 1 0.0000164 5.6996E-6 2.88 0.0039 ARCH1 1 0.7087 0.1749 4.05 <.0001 GARCH 1 1 0.2852 0.0899 3.17 0.0015 GARCH 2 1 0.3328 0.0774 4.30 <.0001 TDFI 1 0.3415 0.0335 10.19 <.0001 Inverse of t DF Page 23 of 56 Les coefficients de l’équation de la variance sont significatifs et positifs. Par conséquent, le modèle GARCH (1,2) est un modèle candidat. II – 3.b Modélisation IGARCH (1,2) : rend Dependent Variable Ordinary Least Squares Estimates 0.86202611 DFE SSE 2355 0.0003660 Root MSE MSE 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 1.8523 Regress DurbinWatson R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Appro D Estimat Standar t Valu x F e d Error e Pr > |t| Variable 1 -0.000147 Intercep t 0.000394 -0.37 0.7091 Algorithm converged. Integrated GARCH Estimates SSE 0.86325879 Observations MSE 0.0003664 Uncond Var . Log Likelihood 6622.4695 Total . R- 2356 Square SBC -13206.115 AIC -13234.939 MAE 0.01286968 AICC -13234.913 Page 24 of 56 Integrated GARCH Estimates 132.31457 HQC MAPE -13224.443 76260.5358 Normality Test <.0001 Pr > ChiSq Parameter Estimates Variable Appro D Estimat Standar t Valu x Variable F e d Error e Pr > |t| Label Intercept 1 -0.000870 0.000228 -3.81 0.0001 ARCH0 1 2.0858E-6 6.1291E-7 3.40 0.0007 ARCH1 1 0.0498 0.0280 1.78 0.0758 ARCH2 1 0.0673 0.0310 2.17 0.0299 GARCH 1 1 0.8829 0.0136 64.93 <.0001 TDFI 1 0.1231 0.0109 11.31 <.0001 Inverse of t DF Page 25 of 56 Ce modèle est aussi un candidat potentiel intéressant car il apporte une information complémentaire en termes de modélisation mais aussi sur le comportement de la variance. II – 3.c Modélisation GARCH-M (1,2) : Dependent Variable rend Ordinary Least Squares Estimates SSE MSE 0.86202611 DFE 2355 0.0003660 Root MSE 0.01913 SBC -11949.673 AIC -11955.438 MAE 0.01287403 AICC -11955.436 MAPE 103.654182 HQC -11953.339 DurbinWatson 1.8523 Regress R- 0.0000 Square Total R-Square 0.0000 Parameter Estimates Variable Intercep t Appro D Estimat Standar t Valu x F e d Error e Pr > |t| 1 -0.000147 0.000394 -0.37 0.7091 ERROR: Convergence not attained in 50 iterations. Interpret the estimates with care. GARCH Estimates SSE 0.85366832 Observations MSE 0.0003623 Uncond Var 2356 . Log Likelihood 6621.86939 Total SBC -13189.386 AIC -13229.739 MAE 0.01283365 AICC -13229.691 MAPE 141.704424 HQC -13215.045 R- 0.0097 Square Page 26 of 56 GARCH Estimates 122440.594 Normality Test <.0001 Pr > ChiSq Parameter Estimates Variable Appro D Estimat Standar t Valu x Variable F e d Error e Pr > |t| Label Intercept 1 -0.003025 0.000479 -6.31 <.0001 ARCH0 1 1.0766E-6 6.4876E-7 1.66 0.0970 ARCH1 1 0 0 . . ARCH2 1 0.1590 0.0188 8.45 <.0001 GARCH 1 1 0.8559 0.0138 62.14 <.0001 DELTA 1 0.1977 0.0425 4.65 <.0001 TDFI 1 0.1398 0.0121 11.53 <.0001 Inverse of t DF Page 27 of 56 L’estimation du modèle GARCH en moyenne est aussi satisfaisante. En effet, le coefficient associé à la variance conditionnelle dans l’équation de la moyenne est significativement différent de zéro : la variance conditionnelle est une variable explicative des rentabilités. On peut donc prendre ce modèle en considération. II – 3.d Résumé des résultats obtenus précédemment : Nous allons donc prendre en compte tous les modèles. Nous choisirons le modèle pour lequel les critères AIC et SBC sont minimisés. Modélisation SBC AIC GARCH -13055.614 -13072.908 IGARCH -13206.115 -13234.939 GARCH-M -13189.386 -13229.739 Log Likelihood 6539.454 6622.469 6621.869 La modélisation IGARCH minimise au mieux les critères AIC et SBC ! Il semble que le modèle le plus approprié soit IGARCH (1,2). En effet, il possède le critère d’information le plus faible mais également la log-vraisemblance la plus élevée. L’avantage du modèle IGARCH est d’être un processus permettant de rendre compte de la persistance de la variance conditionnelle ce qui est une caractéristique commune des séries financières en générale. Page 28 of 56 III - Calcul de la Value at Risk III – 1. Presentation de la Value at Risk Cette notion est originaire du secteur de l'assurance. Elle a été importée à la fin des années 1980 sur les marchés financiers aux États-Unis par la banque Bankers Trust et popularisée par la banque JP Morgan en 1993 et son service (gratuit et public) Riskmetrics puis adoptée sous une forme embryonnaire par le Comité de Bâle (Bâle II) pour les banques et Solvabilité II pour les assurances. La VaR d'un portefeuille dépend essentiellement de trois paramètres : ▪ la distribution des résultats des portefeuilles. Souvent cette distribution est supposée normale, mais beaucoup d'acteurs financiers utilisent des distributions historiques. La difficulté réside dans la taille de l'échantillon historique : s'il est trop petit, les probabilités de pertes élevées sont peu précises, et s'il est trop grand, la cohérence temporelle des résultats est perdue (on compare des résultats non comparables) ; ▪ le niveau de confiance choisi (95 ou 99 % en général). C'est la probabilité que les pertes éventuelles du portefeuille ou de l'actif ne dépassent pas la Value at Risk, par définition ; ▪ l'horizon temporel choisi. Ce paramètre est très important car plus l'horizon est long plus les pertes peuvent être importantes. Par exemple, pour une distribution normale des rendements, il faut multiplier la Value at Risk à un jour par pour avoir la Value at Risk sur jours. D'une manière générale, la VaR donne une estimation des pertes qui ne devrait pas être dépassée sauf événement extrême sur un portefeuille pouvant être composé de différentes classes d'actifs. Pour calculer la VaR il est nécessaire de faire trois hypothèses : - La normalité des distributions considérées. - La VaR à N jours est égale à la racine carré de N multiplié par la VaR à un jour. - Le rendement moyen du titre ou du portefeuille est nul pour la période considérée. III – 2. Backtesting Ici nous allons vérifier si les pertes réelles observées ex-post sont en adéquation avec les pertes prévues. On va donc comparer systématiquement l’historique des prévisions de Value-at-Risk aux rendements. Page 29 of 56 III – 2.a La couverture non conditionnelle L’hypothese de couverture non conditionnelle est vérifiée si la probabilité ex-post d’avoir une perte en excès avec une VaR calculée ex-ante est égale au taux de couverture Pb I t ( ) 1 E It ( ) Sous cette hypothèse, la variable indicatrice I ( ) suit une loi de Bernoulli. Si la probabilité de violation est supérieure au taux de couverture alors nous sommes face à une sousestimation de la VaR. L’hypothèse de couverture non conditionnelle permet de mesurer la fiabilité de nos calculs de VaR, autrement dit le nombre de pertes observés qui excèdent la VaR anticipée. La variable indicatrice I t ( ) est associée à la violation constatée ex-post d’une violation à III – 2.b I t ( ) =1 si rt V aR t 1 ( ) I t ( ) =0 si rt V aR t 1 ( ) % en t Test de Kupiec: Le test de Kupiec permet de confirmer la fiabilité en fonction du nombre de violations observées par rapport à la VaR calculée. Soit V aR t / t 1 ( ) la valeur prévue de la VaR pour un taux de couverture de α % et soit I t ( ) son processus de violation associé. Pour un taux de couverture de la VaR à α%, le test de couverture non conditionnelle de Kupiec (1995) admet pour hypothèse nulle : H0 E (It ) où It désigne la violation associée à la VaR à une date t. Sous H0 la statistique de ratio de vraisemblance associée s’écrit : LR 2 ln (1 ) T N P N 2 ln (1 N ) T N (N ) N 2 (1) T Page 30 of 56 III – 2.c Test de Kupiec pour la modèle EGARCH sous la loi normale et comparaison avec les rendements Graphique de la VaR 1% et 5% sous une loi normale et rendements varN5 0.12 0.11 0.10 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0.00 -0.01 -0.02 -0.03 -0.04 -0.05 -0.06 -0.07 -0.08 -0.09 -0.10 -0.11 -0.12 -0.13 -0.14 -0.15 -0.16 -0.17 -0.18 -0.19 01/01/2003 01/01/2004 01/01/2005 01/01/2006 01/01/2007 01/01/2008 01/01/2009 01/01/2010 01/01/2011 01/01/2012 01/01/2013 Date PLOT varN5 rend varN1 Resultats du test de Kupiec sous la loi normale Pour une VaR à 5 % nous avons : T 2357 N LR 109 213.59654 T = nombre d’observations N = nombre des valeurs de la violation à 5% de la VaR normale. Nous constatons que la statistique LR est largement supérieure au fractile de la loi du Khi –deux : 213.59654 > 2 (1) 3.84 . Nous rejetons donc l’hypothèse nulle de couverture non conditionnelle. Page 31 of 56 Pour une VaR à 1 % nous avons : T N 2357 LR 30 61.247623 Ici nous rejetons également l’hypothèse nulle de couverture non conditionnelle. III – 3.d Test de Kupiec pour la modèle IGARCH sous la loi de student et comparaison avec les rendements : Graphique de la VaR 1% et 5% sous la loi de Student et rendements varT5 0.16 0.14 0.12 0.10 0.08 0.06 0.04 0.02 0.00 -0.02 -0.04 -0.06 -0.08 -0.10 -0.12 -0.14 -0.16 -0.18 -0.20 01/01/2003 01/01/2004 01/01/2005 01/01/2006 01/01/2007 01/01/2008 01/01/2009 01/01/2010 01/01/2011 01/01/2012 01/01/2013 Date PLOT varT5 rend varT1 Pour une VaR à 5 % nous avons : Page 32 of 56 T N 2357 89 LR 182.68821 Pour un seuil de 5% nous rejetons l’hypothèse nulle de couverture non conditionnelle. Pour la VaR à 1% nous obtenons : T 2357 N LR 11 30.390428 Pour un seuil de 5% nous rejetons l’hypothèse nulle de couverture non conditionnelle. On en conclut que sous cette spécification de la VaR le risque n’est pas sous-estimé. Page 33 of 56 III – 2.e Choix du modèle de prévision VaR à 1% et 5% (Student et Normale) et rendements rend 0.16 0.14 0.12 0.10 0.08 0.06 0.04 0.02 0.00 -0.02 -0.04 -0.06 -0.08 -0.10 -0.12 -0.14 -0.16 -0.18 -0.20 01/01/2003 01/01/2004 01/01/2005 01/01/2006 01/01/2007 01/01/2008 01/01/2009 01/01/2010 01/01/2011 01/01/2012 01/01/2013 Date PLOT rend varT5 varT1 varN5 varN1 Nous pouvons constater dans le graphique ci-dessus que la VaR calculée sous la loi de Student a à tendance à surestimer davantage les valeurs extrêmes par rapport à la VaR obtenue sous une loi de Student. On constate également que pour les deux VaR , la VaR à 1% est toujours supérieure à la VaR 5%. Nous allons donc prendre comme modélisation un IGARCH sous la loi de Student afin de calculer la prévision de la VaR. Page 34 of 56 IV - Calcul de la Value at Risk Out of Sample IV – 1. Prévision glissante sur 250 jours de la Value at Risk Out Sample : La densité de la distribution des pertes et profits peut être différente d’une date à l’autre ce qui complique l’évaluation de VaR conditionnelle. On définit donc une densité conditionnelle à un ensemble d’information disponible à la date t, noté W t , cela vas nous permettre de réaliser une prévision de la VaR. La VaR s’écrit donc : VaR t ( ) 1 Frt ( / ) Afin de prévoir la Value at Risk et tester sa validité de cette dernière nous effectuerons nos test sur un échantillon de 500 observations que nous diviserons en deux parties égale. On réalisera tout d’abord les prévisions de la VaR sur un échantillon de 250 observations puis sur les 250 autres. Nous allons réaliser une série de prévision ou of sample sans ré-estimer les paramètres de l’IGARCH. Soit hT le processus de variance conditionnelle, nous pouvons prévoir les rendements de cette dernière pour la date T+1 de cette manière : hˆT 1 ˆ0 ˆ1 2 T hˆ 1 T Sous SAS la fonction Autoreg permettant de calculer l’IGARCH nous permet d’obtenir les estimateurs convergents des paramètres α0, α1 et β1, issues des modèles ARCH1 et GARCH1. Résultats obtenus : Dependent Variable rend Page 35 of 56 Ordinary Least Squares Estimates 0.05598808 DFE SSE 251 0.0002231 Root MSE MSE 0.01494 -1399.1611 AIC SBC MAE MAPE -1402.6905 0.0114064 AICC -1402.6745 106.523805 HQC -1401.2703 2.0255 Regress R-Square Durbin-Watson Total R-Square 0.0000 0.0000 Parameter Estimates Standar Variable DF Intercept 1 Estimate Approx d Error t Value -0.001256 0.000941 -1.33 Pr > |t| 0.1832 Algorithm converged. Integrated GARCH Estimates SSE 0.05599912 Observations MSE 0.0002222 Uncond Var Log Likelihood 729.081077 Total R- 252 . . Square SBC -1430.515 AIC -1448.1622 MAE 0.01139695 AICC -1447.9183 108.31048 HQC -1441.0613 MAPE Normality 0.7725 Test Pr > ChiSq 0.6796 Page 36 of 56 Parameter Estimates Variab Standard Variable DF Estimate Approx le Error t Value Pr > |t| Label Intercept 1 -0.001465 0.000716 -2.05 0.0408 ARCH0 1 1.0537E-8 0 Infty <.0001 ARCH1 1 0.0802 0.0245 3.27 0.0011 ARCH2 1 1.0537E-8 0 Infty <.0001 GARCH 1 0.9198 0.0245 37.49 <.0001 1 0.0248 0.0546 0.45 1 TDFI 0.6495 Inverse of t DF IV – 2. Backtesting : Les résultats du test de Kupiec : Pour la VaR à 5% nous obtenons : T 248 N LR 7 16.718359 Nous rejetons donc l’hypothèse nulle de couverture non conditionnelle. Pour la VaR à 1% nous obtenons : T N 248 0 LR . Page 37 of 56 Le test de Kupiec n’a pas donné de résultat puisque la somme des valeurs de la violationà 1% de la Value at Risk normée est nulle. La violation constaté ex-post de la violation à 1% à la date vaut 0. Pour faire nos prévisions nous allons r é-estimer le modèle IGARCH à chaque date de Glissement. On peut s’apercevoir que nous obtenons les mêmes résultats que précédemment. Parameter Estimates Variab D Standard Estimate Approx le Variable F Error t Value Pr > |t| Label Intercept 1 -0.001465 0.000716 -2.05 0.0408 ARCH0 1 1.0537E-8 0 Infty <.0001 ARCH1 1 0.0802 0.0245 3.27 0.0011 ARCH2 1 1.0537E-8 0 Infty <.0001 GARCH1 1 0.9198 0.0245 37.49 <.0001 TDFI 1 0.0248 0.0546 0.45 0.6495 Inverse of t DF Nous obtenons les resultats : Variance Conditionnelle Estimee sur un total de 500 obs 0.0008 0.0007 0.0006 0.0005 0.0004 0.0003 0.0002 0.0001 0.0000 01/01/2003 04/01/2003 07/01/2003 10/01/2003 01/01/2004 04/01/2004 07/01/2004 10/01/2004 01/01/2005 Variance Conditionnelle Estimee Page 38 of 56 Rendements et Value at Risk rend 0.06 0.05 0.04 0.03 0.02 0.01 0.00 -0.01 -0.02 -0.03 -0.04 -0.05 -0.06 -0.07 01/01/2003 04/01/2003 07/01/2003 10/01/2003 01/01/2004 04/01/2004 07/01/2004 10/01/2004 01/01/2005 10/01/2004 01/01/2005 Date violation 5%(rouge) et 1%(vert) sur 500 obs Violation 1 0 01/01/2003 04/01/2003 07/01/2003 10/01/2003 01/01/2004 04/01/2004 07/01/2004 Date On remarque quelques clusters de violation sur le graphe la VaR à 1% qui est beaucoup moins violée que la VaR à 5%, donc nous rejetons l’hypothèse nulle de couverture non conditionnelle. Le modèle IGARCH que nous retenons donne de bonnes prévisions, cependant, il est important de ré estimer quotidiennement les paramètres qui vont évoluer en fonction des conditions de marché. Page 39 of 56 violation 5% et 1% sur 250 obs Out of Sample Violation 1 0 11/01/2003 01/01/2004 03/01/2004 05/01/2004 07/01/2004 09/01/2004 11/01/2004 01/01/2005 Date PLOT violation5 violation1 On remarque que la VaR à 5% est très rarement violée, et que celle à 1% ne l’est pas du tout, ce qui confirme les tests précèdents. Page 40 of 56 V - Prévisions de VaR à 10 jours – tests ex-post On peut estimer la VaR à 10 jours à l’aide du modèle grâce aux résultats de Variance Conditionnelle obtenus à 250 jours. Il faut savoir que la VaR 10 jour est demandée aux institutions financières chaque jour par les autorités de régulations dans le cadre de Bâle 2. Variance Conditionnelle Estimee 0.0008 0.0007 0.0006 0.0005 0.0004 0.0003 0.0002 0.0001 0.0000 01/01/2003 04/01/2003 07/01/2003 10/01/2003 01/01/2004 04/01/2004 07/01/2004 10/01/2004 01/01/2005 Variance Conditionnelle Estimee Page 41 of 56 Rendements et VaR rend 0.06 0.05 0.04 0.03 0.02 0.01 0.00 -0.01 -0.02 -0.03 -0.04 -0.05 -0.06 -0.07 01/01/2003 04/01/2003 07/01/2003 10/01/2003 01/01/2004 04/01/2004 07/01/2004 10/01/2004 01/01/2005 Date Rendements et VaR 10 jours rend 0.012 0.011 0.010 0.009 0.008 0.007 0.006 0.005 0.004 0.003 0.002 0.001 0.000 -0.001 -0.002 -0.003 -0.004 -0.005 -0.006 -0.007 -0.008 -0.009 -0.010 -0.011 -0.012 -0.013 -0.014 -0.015 -0.016 -0.017 1 2 3 4 5 6 7 8 9 10 t On constate qu’il n’y a pas de violation à 10 jours, le modèle est assez pertinent sur l’échantillon étudié. Page 42 of 56 Au vu des résultats obtenus nous pouvons estimer que le modèle que nous retenons IGARCH sous une distribution Student donne des résultats satisfaisants pour mesurer et estimer la volatilité et la VaR sur le portefeuille constitué. Page 43 of 56 Conclusion La VaR est un outil servant à mesurer le risque. Cependant, elle ne donne pas d’indications sur les pertes qui peuvent apparaître au-delà du seuil de la VaR et de ce fait, cette mesure peut pousser les agents économiques à sous-estimer le risque. Des portefeuilles avec la même VaR peuvent ainsi générer des pertes extrêmes très différentes sur lesquelles la Var ne donne pas d’information (pour cela il faudrait analyser les VaR). De surcroît, la zone des valeurs extrêmes est celle ou les hypothèses sous-jacentes aux calculs de VaR sont les plus fragiles : le calcul de VaR s’appuie, à travers la matrice de variance/covariance, sur les corrélations entre actifs ; la stabilité de ces corrélations n’est pas toujours vérifiée, surtout au-delà du seuil de confiance ; c’est une des raisons pour lesquelles il est nécessaire, en complément de la VaR, d’évaluer des scénarios de crise (stress tests). Malgré ses limites, la VaR est largement utilisée et le sera certainement de plus en plus d'autant que cette utilisation a été validée par les autorités (qui ont toutefois imposé des hypothèses relativement dures).On constate d'autre part une généralisation du concept qui outre son utilisation dans les grandes banques pour évaluer le risque des activités de trading, trouve peu à peu sa place dans la gestion de fonds et la trésorerie d'entreprise. Par ailleurs la quantification du risque est un souci majeur des acteurs financiers car elle leur permet de répondre à des interrogations comme « Combien pouvons-nous perdre avec une série financière dans des conditions de marché normales ou anormales pour un horizon de temps donné ? » La Value at Risk constitue donc une des méthodes les plus courantes de quantification du risque. Page 44 of 56 Annexe : Code SAS /************************************************************************************** **************************/ /* */ /* PROJET DE SAS 1 */ /* */ /* L'objectif de ce travail est de proposer une prévision de la Value at Risk à un seuil alpha */ /* d'un portefeuille composé de 3 titres. Il s'agit d'estimer differents modeles GARCH sous differentes */ /* specifications des lois conditionnelles et en déduire les prévisions à partir d'un echantillon test */ /* */ /* Luis MACAVILCA */ /* Taylan KUNAL */ /* Aurelia ISTRATTI */ /* M2 IEF */ /************************************************************************************** **************************/ /* Chargement et traitement des données de base */ /*répertoire*/ libname pev "C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data"; /*importer des données à partir de fichier excel*/ proc import datafile ="C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\Data.csv" out=pev.projet; run; /*représentation graphique */ Proc gplot data = pev.projet; symbol1 interpol=join value=none color=blue; symbol2 interpol=join value=none color=red; symbol3 interpol=join value=none color=green; plot ( DANONE SOCGEN MICHELIN)*Date / LEGEND OVERLAY ; TITLE "Representation graphique"; run; ods rtf close; QUIT; /*calcul des rendements*/ data pev.projet; set pev.projet; rendDANONE=log(DANONE/lag(DANONE)); rendSOCGEN=log(SOCGEN/lag(SOCGEN)); rendMICHELIN=log(MICHELIN/lag(MICHELIN)); /* Pondération */ rend=0.5*rendSOCGEN+0.25*rendMICHELIN+0.25*rendDANONE; run; /* Enregistrement du graphique */ proc iml; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\Graphiques.doc'; Page 45 of 56 /*représentation graphique des rendements */ Proc gplot data = pev.projet; symbol1 interpol=join value=none color=blue; plot rend*Date; TITLE "Representation graphique des rendements du portefeuille"; run; ods rtf close; QUIT; /*************************************************************** *****************************/ /*2*/ proc iml; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\StatDescriptives.doc'; /*Etude de la série obtenue*/ /*************************************************************** *****************************/ /* Statistiques descriptives */ TITLE ' Statistiques Descriptives '; /*statistique descriptive sur les rendements*/ PROC UNIVARIATE Data=pev.projet plots; VAR rend; RUN; ods rtf close; QUIT; proc iml; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\Identification.doc'; /*Identification des ordres p et q pour la modélisation GARCH*/ title 'Identification des ordres p et q' proc iml; /*Estimation pour p et q pour des ordres allant de 1 à 6*/ PROC ARIMA DATA=pev.projet; identify var = rend MINIC p=(1:6) q=(1:6); RUN; QUIT; ods rtf close; quit; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\Test de Normalite.doc'; /*Test de normalite & stats*/ proc univariate data=pev.projet normal; var rend; output out=stats_rlhf normal=stats_test_normalite probn=sign_test_normalite; run; /* Comparaison avec une loi normale de même moyenne et même variance */ PROC UNIVARIATE DATA=pev.projet; VAR rend; HISTOGRAM rend; QQPLOT rend / NORMAL (MU=EST SIGMA=EST); RUN; /* Superpose à l'histogramme la courbe représentant une loi normale de mêmes moyenne et variance */ PROC SGPLOT DATA=pev.projet; HISTOGRAM rend; DENSITY rend / TYPE=NORMAL; QUIT; ods rtf close; /* minimisation du critère BIC la procedure SAS retient les ordres p=1 et q=2*/ /*estimation différents types de GARCH Page 46 of 56 sous différentes lois (normale, student) */ /************************************************************************************** ******/ /****************************Estimation sous loi Normale **********************************/ /************************************************************************************** ******/ proc iml; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\GARCH_loiNormale.doc'; /*1)Estimation sous loi normale*/ /* Estimation GARCH(1,2) */ title 'Modele GARCH(1,2) sous la loi normale'; proc autoreg data=pev.projet; model rend = / garch=(q=1,p=2) DIST=NORMAL COVEST=QML; /*estimation d'une distribution normale par quasi maximum de vriassemblane*/ output out=rstportgarchn r=epsilon cev=condvar ; run; /*modélisation INTEGRATED GARCH */ title 'Modele IGARCH(1,2) sous la loi normale' ; proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2, type= integrated)DIST=NORMAL COVEST=QML; output out=rstportigarchn r=epsilon p=prevision ; run; quit; /*modélisation EXPONENTIAL GARCH */ title ' Modele EGARCH(1,2) sous la loi normale ' ; proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2,type= exp) DIST=NORMAL COVEST=QML; output out=rstportegarchn r=epsilon p=prevision ; run; quit; title 'Modele GARCH-M(1,2) sous la loi normale ' ; /*modélisation GARCH IN MEAN */ proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2, mean = sqrt)DIST=NORMAL COVEST=QML; output out=rstportgarchmn r=epsilon p=prevision alphacli=0.05 lcl=lower ucl=upper; run; ods rtf close; quit; /************************************************************************************** ******/ /****************************Estimation sous loi de student**********************************/ /************************************************************************************** ******/ proc iml; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\GARCH_loideStudent.doc'; /* Estimation GARCH(1,2) */ title 'Modele GARCH(1,2)sous loi de Student '; proc autoreg data=pev.projet; model rend = / garch=(q=1,p=2) DIST=T; output out=rstportgarcht r=epsilon cev=condvar ; run; /*Note : Il n'est pas possible d'utiliser une modelisation modélisation EGARCH avec la loi de Student*/ /*modélisation IGARCH */ title 'Modele IGARCH(1,2) sous loi de student ' ; proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2, type= integrated)DIST=T; Page 47 of 56 output out=rstportigarcht r=epsilon p=prevision ; run; quit; /*modélisation GARCH IN MEAN */ title 'Modele GARCH-M(1,2) sous loi de student ' ; proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2, mean = sqrt)DIST=t; output out=rstportgarchmt r=epsilon p=prevision alphacli=0.05 lcl=lower ucl=upper; run; quit; ods rtf close; quit; /************************************************************************************** ****/ /************************************************************************************** ****/ /*Calcul de la Var in sample avec la loi normale*/ /************************************************************************************** ****/ /************************************************************************************** ****/ /*Le modèle ARCH optimal sous la loi normale est le modèle EGARCH selon, d'après la méthode de minimisation des critères AIC et SBC, nous allons utiliser ce modèle pour modéliser la VaR avec la loi normale*/ ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\VaRNormale IN SAMPLE.doc'; title ' Modele EGARCH sous une loi normale '; proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2,type= exp) DIST=NORMAL COVEST=QML; output out=pev.valueatrisquenorm r=epsilon cev=condvar p=prevision alphacli=0.05 lcl=lower ucl=upper; run; /* Calcul des VaR à 5% et 1%*/ data pev.valueatrisquenorm; set pev.valueatrisquenorm; /* on recopie directement la valeur de la constante de l'output*/ /*VaR 5% de l'estimation GARCH = valeurs plus faibles*/ varN5= -0.000900 + sqrt(condvar)*QUANTILE("NORMAL",0.95); violN5=(rend>varN5); /*VaR 1% de l'estimation GARCH = valeurs plus faibles*/ varN1= -0.000900 + sqrt(condvar)*QUANTILE("NORMAL",0.99); violN1=(rend>varN1); run; /*représentation de la VaR et rendements*/ proc gplot data = pev.valueatrisquenorm; symbol1 interpol=join value=none color=blue; symbol2 interpol=join value=none color=green; symbol3 interpol=join value=none color=red; plot varN5*date rend*date varN1*date/LEGEND overlay; title "Graphique de la VaR 1% et 5% sous une loi normale et rendements"; run;/*On constate que les deux Var sont presque confondues*/ /*on fusionne les tables car la proc autoreg a modifié nos rendements*/ data pev.valueatrisquenorm; merge pev.valueatrisquenorm pev.projet; by Date; run; title'Test LR de Kupiec pour la var à 5%'; proc iml; use pev.valueatrisquenorm; read all into serie; t=nrow(serie); n=sum(serie[,15]);/*colonne de la violation à 5% dans valueatrisquenorm*/ Page 48 of 56 NLR5=-2*log(((1-0.05)**(t-n))*((0.05)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n NLR5; run; quit; title 'Test LR de Kupiec pour la var à 1%'; proc iml; use pev.valueatrisquenorm; read all into serie; t=nrow(serie); n=sum(serie[,17]);/*colonne de la violation à 1% dans valueatrisquenorm*/ NLR1=-2*log(((1-0.01)**(t-n))*((0.01)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n NLR1; run; quit; ods rtf close; /************************************************************************************** ****/ /************************************************************************************** ****/ /*Calcul de la Var in sample avec la loi student*/ /************************************************************************************** ****/ /************************************************************************************** ****/ ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\VaRStudent IN SAMPLE.doc'; title 'Modele GARCH(1,2) pour le portefeuille selectionné'; /* Estimation IGARCH(1,2) */ proc autoreg data=pev.projet; model rend = / garch=( p=1, q=2, type= integrated)DIST=T; output out=pev.valueatrisquet r=epsilon cev=condvar p=prevision alphacli=0.05 lcl=lower ucl=upper; run; /* Calcul des Var à 5% et 1%*/ data pev.valueatrisquet; set pev.valueatrisquet; /* on recopie directement la valeur de la constante de l'output et on utilise la valeur 1/TDFI*/ varT5= -0.000870 + sqrt(condvar)*QUANTILE("t",0.95,1/0.1231); /* TDFI = donne l'inverse de Var=V/(V-2) i.e var de la loi de Student, donc ici 1/0. ~= */ /*Le V degré de liberté du Student va être petit car + V est petit et + on met de kurtosis*/ violT5=(rend>varT5); /*VaR 5% de l'estimation GARCH = valeurs plus faibles*/ varT1= -0.000870 + sqrt(condvar)*QUANTILE("t",0.99,1/0.1231); violT1=(rend>varT1); /*VaR 1% de l'estimation GARCH = valeurs plus faibles*/ run; /*représentation de la VaR et des rendements dans le temps*/ proc gplot data = pev.valueatrisquet; symbol1 interpol=join value=none color=brown; symbol2 interpol=join value=none color=green; symbol3 interpol=join value=none color=yellow; plot varT5*date rend*date varT1*date/LEGEND overlay; title "Graphique de la VaR 1% et 5% sous la loi de Student et rendements"; run;/*On constate que les deux Var sont presque confondues*/ /*on doit fusionner les tables car la proc autoreg a modifié nos rendements*/ proc sort data=pev.valueatrisquet; by Date; run; proc sort data=pev.valueatrisquenorm; by Date; run; Page 49 of 56 proc sort data=pev.projet; by Date; run; data pev.valueatrisquet; merge pev.valueatrisquet pev.projet; by Date; run; title 'Test LR de Kupiec sur la var à 5%'; proc iml; use pev.valueatrisquet; read all into serie; t=nrow(serie); n=sum(serie[,15]);/*colonne de la violation à 5% dans valueatrisquenorm*/ TLR5=-2*log(((1-0.05)**(t-n))*((0.05)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n TLR5; run; quit; title 'Test LR de Kupiec sur la var à 1%'; proc iml; use pev.valueatrisquet; read all into serie; t=nrow(serie); n=sum(serie[,17]);/*colonne de la violation à 1% dans valueatrisquenorm*/ TLR1=-2*log(((1-0.01)**(t-n))*((0.01)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n TLR1; run; quit; ods rtf close; quit; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\Comparaison resultat.doc'; /*On réunit les VAR dans une même table avec les rendements pour pouvoir les comparer*/ data pev.valueatrisque; merge pev.valueatrisquet pev.valueatrisquenorm pev.projet; by Date; keep date rend varN5 varN1 varT5 varT1; run; /*représentation des VaR et les rendements*/ proc gplot data = pev.valueatrisque; symbol1 interpol=join value=none color=green; symbol2 interpol=join value=none color=brown; symbol3 interpol=join value=none color=yellow; symbol4 interpol=join value=none color=blue; symbol5 interpol=join value=none color=red; plot rend*date varT5*date varT1*date varN5*date varN1*date /LEGEND overlay; title " VaR à 1% et 5% (Student et Normale) et rendements"; run;/*On constate que les deux Var sont presque confondues*/ ods rtf close; quit; /************************************************************************************** ****/ /************************************************************************************** ****/ /****************Calcul de la VaR out-of-sample avec la loi student************************/ /****************VaR OUT OF SAMPLE avec rolling ************************/ /************************************************************************************** ****/ /************************************************************************************** ****/ Page 50 of 56 /*Pour calculer la VaR out of Sample, on a choisi de retenir le modèle optimal IGARCHE (1,2) sélectionné par minimisation des critères SBC et AIC. On utilise la loi de Student, car cette loi de permet de calculer une VaR qui permet de mieux apréhender les pertes extrèmes. On va construire une nouvelle table de 250 observations et effectuer des prévisions roulantes*/ /*IGARCH sur le nouvel échantillon*/ /*calcul des rendements*/ data pev.projet2; set pev.projet2; /*Calcul des rendement de chacun des titres*/ rendDANONE=log(DANONE/lag(DANONE)); rendSOCGEN=log(SOCGEN/lag(SOCGEN)); rendMICHELIN=log(MICHELIN/lag(MICHELIN)); /* Pondération */ rend=0.5*rendSOCGEN+0.25*rendMICHELIN+0.25*rendDANONE; run; data pev.projet3;/*table de transition*/ set pev.projet; obs+1; run; data pev.projet4;/*table de transition*/ set pev.projet3; lsp=100; lsp=lag(lsp)*(1+rend); if obs=1 then do; lsp=100; end; run; /*table à utiliser pour faire les Var et les prévisions de VaR*/ DATA pev.Ptf_prev; SET pev.projet4; KEEP obs date rend lsp; WHERE obs > 0; RUN; DATA tmp; SET pev.Ptf_prev; Where((obs > 0) AND (obs <= 500)); IF Obs > 252 THEN DO; lsp = .; rend = .; END; RUN; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\IGARCH Student OUT OF SAMPLE.doc'; title 'calcul IGARCH(1,2)'; proc autoreg data=tmp; model rend = / garch=( p=1, q=2, type= integrated)DIST=T; output out=pev.varprev r=epsilon cev=condvar p=prevision; run; ods rtf close; quit; /* Macro pour estimer le Igarch sur une période fixe ou glissante */ /** Estimation Rolling **/ %MACRO GARCH_Rolling(datas=, end= , rolling=); DATA tmp; SET &datas; Where((obs >= &end - 251) AND (obs <= &end)); RUN; Page 51 of 56 /* EGARCH */ PROC autoreg data= tmp NOPRINT; model rend= / garch=( p=1, q=2, type= integrated)DIST=T; output out=outvar r=epsilon cev=h_rend; RUN; QUIT; /* Creation de l'indice */ DATA outvar; SET outvar (KEEP = h_rend) ; obs + 1; RUN; /* Calculer la VaR */ DATA outvar; SET outvar; var1 = -0.001465 + sqrt(h_rend)*quantile('T',.01,1/0.0248); var5 = -0.001465 + sqrt(h_rend)*quantile('T',.05,1/ 0.0248);/*idem*/ obs = obs + (&end-252); RUN; DATA Outvar; MERGE Outvar Tmp(Keep=obs date lsp rend); RUN; /* KEEP la derniere VaR calculee */ %IF &rolling=1 %THEN %DO; DATA outvar; SET outvar; WHERE obs = &end; RUN; %END; %MEND; /*Tester*/ %GARCH_Rolling(datas=pev.Ptf_prev, end=250 , rolling=0); /** macro pour faire le Rolling sur les 250 out of sample **/ %MACRO Rolling(Base=, start=, end=, option=); %IF &option= 'rolling' %THEN %DO; %DO ind = &start %TO &end; %GARCH_Rolling(datas=&Base, end=&ind , rolling=1); %IF &ind = &start %THEN %DO; DATA Rolling; SET outvar; RUN; %END; %ELSE %DO; DATA Rolling; MERGE Rolling outvar; BY obs; RUN; %END; %END; /* Fin de boucle "do" */ %END; /* Estimation static */ Page 52 of 56 %ELSE %DO; %GARCH_Rolling(datas=&Base, end=&end , rolling=0); DATA Rolling; SET outvar; RUN; %END; /* Cacluls de la violation */ DATA ROLLING; SET ROLLING; /* Violation a 1% */ IF (var1 > rend) THEN violation1 = 1; ELSE DO; violation1 = 0; END; /* violation a 5% */ IF (var5 > rend) THEN violation5 = 1; ELSE DO; violation5 = 0; END; RUN; %MEND; /* Estimation In-Sample */ %Rolling(Base=pev.Ptf_prev, start=1, end=252, option='static'); DATA pev.Var_inSample; SET Rolling; RUN; /* Estimation Out-Of-Sample */ %Rolling(Base=pev.Ptf_prev, start=253, end=500, option='rolling'); DATA pev.Var_outSample; SET Rolling; RUN; /*Test LR de Kupiec sur la var à 5%*/ ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet SAMPLE.doc'; VaR\Project\Data\KUPIEC OUT-OF- title ' Test LR Kupiec VaR out of sample à 5%'; proc iml; use pev.Var_outSample; read all into serie; t=nrow(serie); n=sum(serie[,9]);/*colonne de la violation à 5% dans valueatrisquenorm*/ LR5=-2*log(((1-0.05)**(t-n))*((0.05)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n LR5; run; quit; /*Test LR de Kupiec sur la var à 1%*/ title ' Test LR Kupiec VaR out of sample 1%'; proc iml; use pev.Var_outSample; read all into serie; t=nrow(serie); Page 53 of 56 n=sum(serie[,8]);/*colonne de la violation à 1% dans valueatrisquenorm*/ LR1=-2*log(((1-0.01)**(t-n))*((0.01)**n))+2*log(((1-(n/t)**(t-n))*((n/t)**(n)))); print t n LR1; run; quit; ods rtf close; quit; /* Combinaison des resultats */ DATA pev.Var_total; MERGE pev.Var_inSample pev.Var_outSample; BY obs; KEEP obs date lsp rend h_rend var1 var5 violation1 violation5; RUN; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\RESULTAT SAMPLE.doc'; OUT-OF- title 'Variance Conditionnelle Estimée totale 500 observations'; PROC GPLOT DATA = pev.Var_total; PLOT h_rend*date / VREF=0 HAXIS=axis1 VAXIS=axis2; SYMBOL1 I=join V=NONE; AXIS1 LABEL=( H=1 'Variance Conditionnelle Estimee'); AXIS2 LABEL=NONE; TITLE "Variance Conditionnelle Estimee sur un total de 500 obs"; RUN; QUIT; /* représentation graphique*/ PROC GPLOT DATA SYMBOL1 SYMBOL2 SYMBOL3 = pev.Var_total; INTERPOL=join COLOR=BLACK VALUE=NONE; INTERPOL=join COLOR=RED VALUE=NONE LINE=5; INTERPOL=join COLOR=GREEN VALUE=NONE LINE=5; PLOT rend*date var5*Date var1*date/OVERLAY; TITLE "Rendements et Value at Risk"; RUN; QUIT; title 'Violation sur horizon totale des 500 observations'; PROC GPLOT DATA = pev.Var_total; SYMBOL1 INTERPOL=join COLOR=RED VALUE=NONE LINE=1; SYMBOL2 INTERPOL=join COLOR=GREEN VALUE=NONE LINE=1; PLOT violation5*date violation1*date / OVERLAY VAXIS=axis1 ; AXIS1 LABEL=('Violation') ORDER=(0 to 1 by 1); TITLE "violation 5%(rouge) et 1%(vert) sur 500 obs"; RUN; QUIT; title'Violation PROC GPLOT DATA SYMBOL1 SYMBOL2 sur horizon out-of-sample 250 observations'; = pev.Var_outsample; INTERPOL=join COLOR=RED VALUE=NONE LINE=1; INTERPOL=join COLOR=GREEN VALUE=NONE LINE=1; PLOT violation5*date violation1*date /LEGEND OVERLAY VAXIS=axis1 ; AXIS1 LABEL=('Violation') ORDER=(0 to 1 by 1); TITLE "violation 5% et 1% sur 250 obs Out of Sample"; RUN; ods rtf close; Page 54 of 56 QUIT; DATA tmp; SET pev.Ptf_prev; Where((obs > 0) AND (obs <= 500)); IF Obs > 252 THEN DO; lsp = .; rend = .; END; RUN; ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\GLISSEMENT.doc'; TITLE 'Restimation du modele a chaque glissement'; PROC autoreg data= tmp; model rend= / garch=( p=1, q=2, type= integrated)DIST=T; output out=outvar r=epsilon cev=h_rend; run; ods rtf close; QUIT; DATA pev.Var_Prevision; MERGE Outvar(keep=rend h_rend) Tmp; RUN; DATA pev.Var_Prevision; SET pev.Var_Prevision; var1 = -0.001465 + sqrt(h_rend)*quantile('T',.01,1/0.0248); var5 = -0.001465 + sqrt(h_rend)*quantile('T',.05,1/0.0248); RUN; /* Representation graphique */ ODS RTF file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\VaR estimee out-of-sample.doc'; TITLE 'Variance conditionnelle Estimee'; /* Variance Cconditionnelle Estimée*/ PROC GPLOT DATA = pev.Var_prevision; PLOT h_rend*date / VREF=0 HAXIS=axis1 VAXIS=axis2; SYMBOL1 I=join V=NONE C=BLUE; AXIS1 LABEL=( H=1 'Variance Conditionnelle Estimee'); AXIS2 LABEL=NONE; TITLE "Variance Conditionnelle Estimee"; RUN; QUIT; PROC GPLOT DATA SYMBOL1 SYMBOL2 SYMBOL3 conditionnelle = pev.Var_prevision; INTERPOL=join COLOR=BLACK VALUE=NONE; INTERPOL=join COLOR=RED VALUE=NONE LINE=5; INTERPOL=join COLOR=GREEN VALUE=NONE LINE=5; PLOT rend*date var5*Date var1*date/OVERLAY; TITLE "Rendements et VaR"; RUN; QUIT; ods rtf close; /* Test ex-poste */ DATA pev.Var_10j; MERGE pev.Var_prevision(Drop=rend) pev.Ptf_prev(Keep=obs rend); BY OBS; RUN; DATA pev.Var_10j; SET pev.Var_10j; WHERE obs >252 AND obs <= 252+10; RUN; Page 55 of 56 DATA pev.Var_10j; SET pev.Var_10j; /* Violation a 1% */ IF (var1 > rend) THEN violation1 = 1; ELSE DO; violation1 = 0; END; /* violation a 5% */ IF (var5 > rend) THEN violation5 = 1; ELSE DO; violation5 = 0; END; t+1; RUN; ODS RTF 10j.doc'; file='C:\Users\Luis\Desktop\GARCH\Projet VaR\Project\Data\violation var title' Violation sur horizon 10j Out-of-Sample'; PROC GPLOT DATA = pev.Var_10j; SYMBOL1 INTERPOL=join COLOR=BLACK VALUE=NONE; SYMBOL2 INTERPOL=join COLOR=RED VALUE=NONE LINE=5; SYMBOL3 INTERPOL=join COLOR=GREEN VALUE=NONE LINE=5; PLOT rend*t var5*t var1*t/OVERLAY; TITLE "Rendements et VaR 10 jours"; RUN; ODS rtf close; QUIT; Page 56 of 56