Mémoire: A PARTIR DE QUELLES VALEURS DU SKEWNESS ET DU
KURTOSIS, LA VALUE-AT-RISK DE CORNISH-FISHER EST-ELLE PR'EF'ERABLE À LA
VAR NORMALE?
MEHDI DRISSI BOUTAYBI M1 MIMSE
Année universitaire 2015/2016
2
3
Introduction
La notion de Value-at-Risk (VaR) est apparue pour la
première fois dans le secteur de l'assurance. A la fin des années
1980, la banque Bankers Trust fut l'une des premières institutions
à utiliser cette notion sur les marchés financiers aux
Etats-Unis, mais c'est principalement la banque JP Morgan qui dans les
années 90 a popularisée ce concept notamment grâce à
son système RiskMetrics (pour un historique complet de la notion de
Value-at-Risk et de sa diffusion se reporter au livre de Dowd, 2005). La Value
-at-Risk est ensuite devenue, en moins d'une dizaine d'années, une
mesure de référence du risque sur les marchés financiers,
consacrée notamment par la réglementation prudentielle
définie dans le cadre des accords de Bâle II. De façon
générale, la Value-at-Risk est définie comme la perte
maximale potentielle qui ne devrait être atteinte qu'avec une
probabilitédonnée sur un horizon temporel donné(Engle et
Manganelli, 2001). La Value at Risk est donc la pire perte attendue sur un
horizon de temps donnépour un niveau de confiance donné. Cette
définition très simple constitue l'un des principaux attraits de
la Value-at-Risk : il est en effet très facile de communiquer sur la VaR
et de ainsi proposer une mesure homogène et générale
(quelque soit la nature de l'actif, la composition du portefeuille etc.) de
l'exposition au risque.
Le calcul de la VaR-normal est adaptée au rendement
logarithmique qui suit une distribution normale, or en pratique, la loi de
distribution des rendements logarithmique des produits financiers et des
portefeuilles est rarement normale et possède des queues de distribution
beaucoup plus épaisses que celles d'une loi normale. Les distributions
leptocurtiques, la loi de Laplace et la loi cstable de Levy et d'autres lois
étudiées dans ce rapport, sont généralement plus
appropriées.
Ce rapport va se pencher sur uniquement l'étude de 2
VaR et plus précisément sur la problèmatique : A partir de
quelles valeurs du skewness et du kurtosis,la Value-at-Risk de Cornish-Fisher
est-elle préférabl e à la VaR normale?, par simulation
Monte-Carlo sur plusieurs lois afin de trancher en faveur ou en défaveur
du calcul de la Value-at-Risk de Cornish-Fisher ou de la VaR normale pour un
skewness et un kurtosis donné.
4
5
Table des matières
Introduction 3
1 Définitions et illustration des notions
7
1.1 Moment d'ordre 3 : Asymétrie pertes/gains 7
1.1.1 Le coefficient d'asymétrie (skewness) 7
1.1.2 Test de D'Agostino 7
1.2 Moment d'ordre 4 : Queue de distribution épaisse
7
1.2.1 Le coefficient d'aplatissement 7
1.2.2 Le test d'anscombe 8
1.3 Le rendement logarithmique 8
1.4 La Value-at-Risk 9
1.4.1 La VaR-Normale 9
1.4.2 La VaR de Cornish-Fisher 10
1.5 Le Backtesting 10
1.5.1 Test de validation d'une prévision 10
1.5.2 Violations de la VaR 10
1.5.3 Comment tester ces 3 hypothèses? 14
2 La procédure mise en place 15
2.1 Explication de la procédure 15
2.2 Remarques importantes 15
3 Résultats des simulations Monte-Carlo
17
3.1 loi stable ou distribution de Lévy tronquée
17
3.2 loi hyperbolique 18
3.3 loi Normale Laplace packageNormalLaplace 20
3.4 loi Normale 21
3.5 Loi Laplace asymétrique 23
3.6 Loi d'extremum généralisée 25
3.7 Loi de Gumbel 27
3.8 Loi de Tukey-lambda généralisée 29
3.9 Loi Normale asymétrique 31
3.10 Generalized Error Distribution 34
3.11 Skew Generalized Error Distribution 35
3.12 loi de student 38
3.13 loi de student asymétrique 40
3.14 Generalized Hyperbolic Student-t 44
3.15 Standardized generalized hyperbolic Student-t Distribution
45
3.16 loi triangulaire 47
3.17 loi uniforme 48
3.18 loi logistique 50
Conclusion 53
6
7
Chapitre 1
Définitions et illustration des
notions
1.1 Moment d'ordre 3 : Asymétrie pertes/gains
1.1.1 Le coefficient d'asymétrie (skewness)
Le coefficient d'asymétrie (skewness) :
correspond à une mesure de l'asymétrie de la distribution
d'une variable aléatoire réelle. On définit le coefficient
d'asymétrie d'ordre 3 de la variable centrée réduite :
1 X S = nó3 (x -
m)3 (1.1)
1.1.2 Test de D'Agostino
Le test de D'Agostino est basésur les coefficients
d'asymétrie et d'aplatissement. Lorsque ces deux indicateurs diff`erent
simultanément de la valeur de référence 0, on conclut que
la distribution empirique n'est pas compatible avec la loi normale.
Les hypoth`eses du test sont alors :
H0 : 'y1 = 0
Symétrie : La probabilitéest non significativement
différente de 0 et donc la distribution est normale.
H1 : 'y1 =6 0
Asymétrie : La probabilitéest significativement
différente de 0 et ici ça dépend du signe du skewness :
/il y a une probabilitéplus importante d'avoir des pertes que d'avoir
des gains si le skewness est négatif
/il y a une probabilitéplus importante d'avoir des
gains que d'avoir des pertes si le skewness est positif.
1.2 Moment d'ordre 4 : Queue de distribution
épaisse
1.2.1 Le coefficient d'aplatissement
Le kurtosis mesure l'aplatissement d'une série, c'est
le moment d'ordre 4. S'il est supérieur à 3, la série a
des queues plus épaisses que la normale aux extrémités,
impliquant des valeurs anormales plus fréquentes. S'il est
négatif, la distribution est relativement aplatie. A noter que,
généralement, dans les logiciels et dans l'utilisation du
Kurtosis, on consid`ere que K'=K-3
'y2 = E[(X -
)4] (1.2)
ó
Le terme d'exc`es d'aplatissement, dérivéde
kurtosis excess en anglais, utilisépour le kurtosis
normalisépeut être source d'ambiguïté. En
effet, un exc`es d'aplatissement positif correspond à une distribution
pointue et un exc`es d'aplatissement négatif à une distribution
aplatie.
8
1.2.2 Le test d'anscombe
Le test d'anscombe est un test pour mesurer l'aplatissement d'une
distribution Les hypothèses du test sont alors :
H0 : ã2 = 3
ce qui veut dire que les donn'ees sont sym'etriques et suivent
une loi normale
H1 : ã2 =6 3
la valeur de Kurtosis est soit sup'erieur à 3 (queue plus
'epaisse), soit inf'erieur à 3 (queue moins 'epaisse)
1.3 Le rendement logarithmique
La gestion des portefeuilles d'actifs s'appuie sur la notion de
rendement ou de taux de rentabilit'e. Cette grandeur mesure, pendant un
intervalle de temps donn'e, l'appr'eciation ou la d'epr'eciation relative de la
valeur d'un actif financier ou d'un portefeuille d'actifs.
le rendement logarithmique, 'egalement appel'e rendement
g'eom'etrique, entre les instants t et t-1 est d'efini par:
Pi(t)
Ri(t) = ln (1.3) Pi(t - 1)
Exemple d'un rendement logarithmique sur une simulation
de la loi normale
> n <- 3000
> rt <- rnorm(n,0.01/252,0.05)
> # convertir la simulation en time series
> x.Date <- as.Date("2003-02-01") + c(1:3000)
> plot(x.Date, rt, type='l',
main='rendement logarithmique')
9
rendement logarithmique
2004 2006 2008 2010
rt
-0.15 -0.10 -0.05 0.00 0.05 0.10 0.15
x.Date
1.4 La Value-at-Risk
la Value-at-Risk est le fractile de la distribution de perte
et profit associée à la détention d'un actif ou d'un
portefeuille d'actifs sur une période donnée. La mesure de
Value-at-Risk ne fait que refléter l'information contenue dans la queue
gauche (associée aux pertes) de la distribution des rendements d'un
actif. Si l'on considère un taux de couverture de c% (ou de
façon équivalente un niveau de confiance de 1 - c% ), la
Value-at-Risk correspond au fractile de niveau c% de la distribution
de perte et profit valable sur la période de détention de
l'actif:
V aR(c) = F
-'(c) (1.4)
oùF(.) désigne la fonction de répartition
associée à la distribution de perte et profit. De cette
définition générale découlent plusieurs
définitions techniques tout aussi simples.
1.4.1 La VaR-Normale
Sous l'hypothèse de normalitépour tous les
actifs sous-jacents, les rendements de l'action ou du portefeuille sont
eux-mêmes gaussiens et la VaR de leur distribution se calcule en fonction
de la matrice de variance-covariance associée. Néanmoins cette
approche est limitative puisqu'elle repose sur l'hypothèse de
normalitérarement vérifiée en pratique.
L'usage d'une VaR gaussienne peut largement sous-estimer le
risque, et le but de ce rapport est de voir empiriquement à partir de
quelle valeur du skewness et du kurtosis, on peut utiliser ou ne pas utiliser
la VaR normale comme outil de calcul de la perte maximale potentielle qui ne
devrait être atteinte.
10
Par exemple si pour un skewness = 0.2 et un kurtosis
normalisé= 0.4, on peut utiliser comme même la VaR -Normale ou
pas.
1.4.2 La VaR de Cornish-Fisher
L'approche par la VaR Gaussienne peut être
améliorée pour tenir compte du caractère non-normal de la
loi sous-jacente en introduisant le skewness et le kurtosis. L'approximation de
Cornish-Fisher permet de transformer le quantile, ou une réalisation,
d'une loi normale en une réalisation d'une loi dont l'asymétrie
et le kurtosis en excès ne sont pas nuls.
1.5 Le Backtesting
Le backtesting est un ensemble de procedures statistiques dont
le but est de vérifier que les pertes réelles observées
ex-post sont en adéquation avec pertes prévues. Cela implique de
comparer systématique ment l'historique des prévisions de
Value-at-Risk aux rendements observés du portefeuille (Jorion, 2007,
page 139).
Pour des aspects réglementaires, les institutions
financières sont réglementairement contraintes de mettre en
oeuvre une validation de leurs modèles internes de VaR. Les
réglementations prudentielles définies dans le cadre des accords
de Bâle laissent la libertéaux institutions financières de
développe r leur propre modèle interne d'évaluation des
risques et de calcul de la Value at Risk (VaR). En contrepartie, les
réglementations prudentielles imposent une évaluation de ces
modèles de VaR par des procédures de Backtesting.
Dès lors que le backtesting doit permettre de
déterminer la (ou les) méthodes les plus appropriées pour
prévoir la VaR, il faut mettre en place 2 tests de validation de
prévision.
1.5.1 Test de validation d'une prévision
Un test de validation d'une prévision est un test dont
l'hypothèse nulle revient à postuler que la prévision est
issue du processus générateur de données ou DGP des
données.
La validitéde la prévision d'une grandeur
économique est évaluée en comparant sa réalisation
ex-post à la valeur prédite ex-ante.
Ainsi, l'évaluation de la VaR est
généralement fondée sur des tests statistiques des deux
principales hypothèses que le processus associéaux violations de
la VaR anticipée doit satisfaire, à savoir l'hypothèse de
couverture non conditionnelle et l'hypothèse d'indépendance.
1.5.2 Violations de la VaR
On appelle violation (ou hit, ou exception) une situation dans
laquelle à la date t la perte observée excède la VaR
anticipée. De plus, on appelle hit function, ou hit variable, la
variable indicatrice It(c) associée à
l'observation ex-post d'une violation de la VaR à c% à
la date t.
It(c) = 1 si rt < V
aRt|t_1(c) (1.5)
It(c) = 0 sinon. (1.6)
Exemple de simulation de 5000 valeurs de la loi
skewlaplace et Backtesting sur les 1000 dernières valeurs
> library(PerformanceAnalytics)
> library(quantmod)
> library(rugarch)
> library(car)
> library(FinTS)
11
> library(GeneralizedHyperbolic)
> rt <-rskewlap(5000, mu = 0.0000321, alpha = 1/23,
beta = 1/22)
> # convertir la simulation en time series (pour
l'adapter au backtesting)
> x.Date <- as.Date("2003-02-01") + c(1:5000)
> ret <- zoo(rt, x.Date)
> # backtesting unconditional VaR models
> # normal VaR, HS and modified HS
> #
>
> # set up estimation window and testing window
> n.obs = length(ret)
> w.e = 4000
> w.t = n.obs - w.e
> alpha = 0.95
> # loop over testing sample, compute VaR and record hit
rates > backTestVaR <- function(x, p = 0.95) {
+ normal.VaR = as.numeric(VaR(x, p=p,
method="gaussian"))
+ modified.VaR = as.numeric(VaR(x, p=p,
method="modified"))
+ ans = c(normal.VaR, modified.VaR)
+ names(ans) = c("Normal", "Modified")
+ return(ans)
+ }
> # rolling 1-step ahead estimates of VaR
> VaR.results = rollapply(as.zoo(ret), width=w.e,
+ FUN = backTestVaR, p=0.95, by.column = FALSE,
+ align = "right")
> VaR.results = lag(VaR.results, k=-1)
> chart.TimeSeries(merge(ret, VaR.results),
legend.loc="topright",main="Backtesting")
12
Backtesting
2003-02-02 2006-02-01 2009-02-01 2012-02-01 2015-02-01
Value
-0.4 -0.2 0.0 0.2 0.4
ret Normal Modified
Les violations, sur les 1000 derniers rendements, de la VaR
Normale et de la VaR Cornish-Fisher sont sur les 2 graphiques qui suivent
> par(mfrow=c(1,2))
> # Show Normal VaR violations
> normalVaR.violations = as.zoo(ret(index(VaR.results),
]) < VaR.results(, "Normal"]
> violation.dates.normal =
index(normalVaR.violations(which(normalVaR.violations)])
> # plot violations
> plot(as.zoo(ret(index(VaR.results),]), col="blue",
ylab="Return",main="Violations normal VaR")
> abline(h=0)
> lines(VaR.results(, "Normal"], col="black",
lwd=2)
> lines(as.zoo(ret(violation.dates.normal,]), type="p",
pch=16, col="red", lwd=2)
> # Show modified VaR violations
> modifiedVaR.violations =
as.zoo(ret(index(VaR.results), ]) < VaR.results(, "Modified"]
> violation.dates.modified =
index(modifiedVaR.violations(which(modifiedVaR.violations)])
> # plot violations
> plot(as.zoo(ret(index(VaR.results),]), col="blue",
ylab="Return",main="Violations modified VaR")
> abline(h=0)
> lines(VaR.results(, "Modified"], col="black",
lwd=2)
> lines(as.zoo(ret(violation.dates.modified,]),
type="p", pch=16, col="red", lwd=2)
Violations normal VaR
Return
|
-0.2 -0.1 0.0 0.1 0.2 0.3
|
|
2014 2015 2016
Index
Violations modified VaR
Return
|
-0.2 -0.1 0.0 0.1 0.2 0.3
|
|
2014 2015 2016
Index
13
Une prévision de VaR est valide si et seulement si la
séquence des violations satisfait les deux hypothèses suivantes
:
/L'hypothèse de couverture non
conditionnelle
/L'hypothèse d'indépendance
hypothèse de couverture non
conditionnelle
L'hypothèse de couverture non conditionnelle est
satisfaite lorsque la probabilitéque se réalise ex -post une
perte en excès par rapport à la VaR anticipée ex-ante est
précisément égale au taux de couverture c .
Pr[It(c) = 1] = E[It(c) = 1] = c (1.7)
Exemple
Pour une VaR à 1% utilisée comme mesure de
référence sur 500 périodes, l'espérance du nombre
de violations doit être égale à 5. Si le nombre de
violations est significativement supérieur ou inférieur à
5 %, la mesure de VaR est non valide.
hypothèse d'indépendance
L'hypothèse d'indépendance des violations est
satisfaite lorsque les violations de la VaR observées à deux
dates différentes pour un même taux de couverture doivent
être indépendamment distribuées. Formellement, la variable
It(c) associée à la violation à la date t de la
VaR pour un taux de couverture à c%, est indépendante de
la variable It_k(c),Vk =6 0.
14
hypothèse de couverture conditionnelle
L'hypothèse de couverture conditionnelle est satisfaite
lorsque la probabilitéconditionnelle à l'infor-mation disponible
en t-1 se réalise ex-post une perte en excès par rapport à
la VaR est préciséme nt égale au taux de couverture c
:
Pr[It(c) = 1|I~t_1] =
E[It(c)|1~t_1] = c (1.8)
oùI~t_1 désigne l'ensemble
d'information utilisépour prévoir la VaR.
A noter que l'hypothèse de couverture conditionnelle
implique l'hypothèse de couverture non conditionnelle et
l'hypothèse d'indépendance.
1.5.3 Comment tester ces 3 hypothèses?
Test de couverture non conditionnelle (Test de
Kupiec)
Pour un taux de couverture de la VaR à c%, le
test de couverture non conditionnelle de Kupiec admet pour hypothèse
nulle et pour hypothèse alternative
H0 : E(c) = 0
H1 : E(c) =6 0
oùIt désigne la violation
associée à la VaR à une date t. Sous H0,la statistique de
ratio de vraisemblance associée vérifie
LRuc = -2ln[(1 -
c)T_NpN] + 2ln[(1 -
N/T)T_N(N)N] ~
÷2(1) quand T -+ oc (1.9)
Avec
T : prévisions successives de la VaR N : le nombre de
violations associées
Le rapport N/T définit la fréquence empirique des
violations Test de couverture conditionnelle (Test de
Christoffersen)
Christoffersen suppose que, sous l'hypothèse
alternative de non efficience de la VaR, le processus des violations It(c)
est modélisépar une chaîne de Markov.
ðt = Pr[It(c) = j|It_1(c) = i]
(1.10)
Quel que soit l'état du système en t-1
d'observer à la date t une violation est égale au taux de
couverture conditionnelle.
ðt = Pr[It(c) = 1] = c (1.11)
De plus, la probabilitéd'observer une violation
à la date t est indépendante de l'état en t-1. les
hypothèses d'efficience conditionnelle sont :
H0 : itt = c : Efficience de la VaR H1 : irt
=6 c : Non efficience de la VaR
15
Chapitre 2
La procédure mise en place
2.1 Explication de la procédure
D'abord, on simulation une loi, on fait le test d'Agostino et
le test Anscombe pour connaître la significativitédu skewness et
du kurtosis, ensuite on fait le backtesting par simulation Monte-Carlo de la
même loi supposée être le rendement logarithmique d'une
action ou d'un portefeuille, et on calcule les p.values du test de Kupiec et de
Christoffersen pour la VaR normale et pour la VaR de Cornish-Fisher. Cette
procédure est mise en place pour savoir pour quelle valeur du skewness
et du kurtosis la VaR Cornish-Fisher est préférable à la
VaR Normale.
2.2 Remarques importantes
>La qualitéde l'analyse économétrique
dépend en tout état de cause de la fiabilitédes
statistiques de tests employées. Lorsqu'on souhaite faire de
l'inférence, c'est-à-dire tester une hypothèse, il est
nécessaire de calculer une statistique de test et d'en connaître
la loi de probabilité: on peut alors calculer un seuil critique ou une
P-value et accepter ou non l'hypothèse posée. Malheureusement, la
distribution de proba-bilitéd'une statistique de test est la plupart du
temps inconnue, à moins de faire des hypothèses fortes et
difficilement vérifiables sur le modèle. En adaptant ce propos
dans notre cas, le calcul de la VaR-normal est adaptée au rendement
logarithmique qui suit une distribution normale, or en pratique, la loi de
distribution des rendements logarithmique des produits financiers et des
portefeuilles est rarement normale et possède des queues de distribution
beaucoup plus épaisses que celles d'une loi normale. Les distributions
leptocurtiques, la loi de Laplace et la loi stable de Levy et d'autres lois
étudiées dans ce rapport, sont généralement plus
appropriées. Néanmoins le bus de ce rapport est de
vérifier empiriquement (sur des lois simulées adaptées
à des données réelles) si pour un skewness proche de 0
ou/et un kurtosis proche de 3, le calcul de la VaR Normale peut être
adapté. Par ailleurs, afin d'améliorer la fiabilitédes
statistiques de test sur des données réelles, une
méthodologie générale du bootstrap est à adopter
dans toute sorte de modèle de régression pour connaître la
distribution réelle des données.
>Lors des simulations de lois, il faut choisir des
paramètres tel que, les valeurs doivent se situer entre -1 et 1 (i.e.
entre -100% et 100%), étant donnéque la VaR se calcule sur des
rendements logarithmiques. Si non la VaR ne se calcule pas.
>Le nombre de simulation pour chaque loi est de 15, il
convient de choisir 99 simulations pour espérer avoir des
résultats plus précis.
>Les taux de couverture sont de 5 % dans toute
l'étude.
16
17
Chapitre 3
Résultats des simulations
Monte-Carlo
3.1 loi stable ou distribution de Lévy
tronquée
> library(moments)
> library(stabledist)
> n=10000
> rt <- rstable(n, alpha = 2, beta = 0.999, gamma =
0.13341, delta = 0.19382, pm = 0)
> skewness(rt)
[1] -0.02227834 > kurtosis(rt)
[1] 3.09295
> ################ hypothese nulle: distribution normale
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.022278, z = -0.910080, p-value = 0.3628 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.0929, z = 1.8524, p-value = 0.06396 alternative
hypothesis: kurtosis is not equal to 3
Après plusieurs simulations du test d'agostino et
anscombe, il s'est avéréque pour la loi stable a un skewness et
un kurtosis non significativement différent de 0.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de Lévy
18
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.9184
|
0.07021
|
2
|
0.1909
|
0.12844
|
3
|
0.3123
|
0.55440
|
4
|
0.4057
|
0.30447
|
5
|
0.3624
|
0.66033
|
6
|
0.6834
|
0.48611
|
7
|
0.2970
|
0.51189
|
8
|
0.1730
|
0.39257
|
9
|
0.7571
|
0.32511
|
10
|
0.7571
|
0.07371
|
11
|
0.8369
|
NaN
|
12
|
0.2267
|
0.47824
|
13
|
0.1415
|
0.20476
|
14
|
0.8379
|
0.13481
|
15
|
0.9182
|
0.39424
|
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.91841
|
0.07021
|
2
|
0.19094
|
0.12844
|
3
|
0.54193
|
0.69600
|
4
|
0.46761
|
0.35287
|
5
|
0.22668
|
0.46013
|
6
|
0.41751
|
0.46824
|
7
|
0.29699
|
0.51189
|
8
|
0.25049
|
0.51661
|
9
|
0.60507
|
0.33586
|
10
|
0.75712
|
0.07371
|
11
|
0.83792
|
NaN
|
12
|
0.22668
|
0.47824
|
13
|
0.05695
|
0.11533
|
14
|
0.91841
|
0.12284
|
15
|
0.26707
|
0.40697
|
On remarque que pour la loi de Lévy, toutes les pv sont
supérieurs à 5%. La VaR de Cornish-Fisher n'est pas
préférable à la VaR Normale, ce résultat
était attendu puisque le test d'agostino et anscombe mentionne que la
distribution est normale.
3.2 loi hyperbolique
> library(GeneralizedHyperbolic)
> library(moments)
> n=10000
> rt <- rhyperb(n, mu = 0, delta = 1/2, alpha = 14,
beta = 0)
> skewness(rt)
[1] -0.01627843
> kurtosis(rt)
[1] 3.578481
> agostino.test(rt)
D?Agostino skewness test
data: rt
19
skew = -0.016278, z = -0.665020, p-value = 0.506 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.5785, z = 9.2930, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Selon le test d'agostino, le skewness est non
significativement différent de 0, et on ne rejete pas H0. Le kurtosis
tant à lui est significativement différent de 0, il reste
néanmoins proche de 3 (Kurtosis 3.3), il y a un leger excès de
kurtosis positif.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi hyperbolique
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.75712
|
0.94391
|
2
|
0.14152
|
0.33499
|
3
|
0.67959
|
0.50483
|
4
|
0.26707
|
0.47398
|
5
|
0.91841
|
0.91534
|
6
|
0.29699
|
0.09963
|
7
|
0.67959
|
0.33252
|
8
|
0.67959
|
0.10321
|
9
|
0.01339
|
0.04468
|
10
|
0.34874
|
0.64292
|
11
|
0.47741
|
0.73637
|
12
|
0.40568
|
0.32061
|
13
|
0.07270
|
0.04151
|
14
|
0.36244
|
0.02201
|
15
|
0.83691
|
0.08952
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.836909
|
0.97479
|
2
|
0.141519
|
0.33499
|
3
|
0.679586
|
0.50483
|
4
|
0.159616
|
0.36379
|
5
|
0.759335
|
0.90904
|
6
|
0.250495
|
0.09534
|
7
|
0.759335
|
0.49743
|
8
|
0.918153
|
0.08720
|
9
|
0.007726
|
0.02647
|
10
|
0.836909
|
0.90507
|
11
|
0.477411
|
0.73637
|
12
|
0.757116
|
0.64685
|
13
|
0.091773
|
0.02339
|
14
|
0.190942
|
0.04487
|
15
|
0.918153
|
0.08355
|
*
Toutes les pv du test de Kupiec sont supérieur à
5 %, par conséquent on ne peut rejeter l'hypothèse nulle,
l'hypothèse de couverture non conditionnelle est vérifiée
et l'espérance du processus de violation est égal au taux de
couverture 5%. Concernant le test de Christoffersen, 2 pv pour VaR Normale
ainsi que 3 pv pour la VaR Cornish-Fisher sont inférieurs à 5
%.
On ne peut dire que la VaR Cornish-Fisher est meilleure que la
VaR-Normale pour un skewness de 0 et
20
pour un Kurtosis 3.3, ce que l'on peut dire, c'est que la VaR
Normale convient pour un kurtosis de 3.3, la VaR Cornish-Fisher aussi.
3.3 loi Normale Laplace packageNormalLaplace
> library(NormalLaplace)
> library(moments)
> n=10000
> rt <- rnl(n, mu = 0.000453, sigma = 0.000035/3444,
alpha = 10, beta = 12)
> mean(rt)
[1] 0.01542709
> var(rt)
[1] 0.01677235
> skewness(rt)
[1] 0.421324
> kurtosis(rt)
[1] 6.381957
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.42132, z = 16.53000, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 6.382, z = 28.162, p-value < 2.2e-16
alternative hypothesis: kurtosis is not equal to 3
L'hypothèse nulle est rejetée pour le test
d'agostino et anscombe, le skewness et le kurtosis sont significativement
différent de 0. Le skewness est de 0.5 et le kurtosis de 6.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi normale
laplace
21
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.296993
|
0.499261
|
2
|
0.014088
|
0.041143
|
3
|
0.405681
|
0.492647
|
4
|
0.757116
|
0.943910
|
5
|
0.019084
|
0.007927
|
6
|
0.605067
|
0.846001
|
7
|
0.610736
|
0.681461
|
8
|
0.040568
|
NaN
|
9
|
0.605067
|
0.035862
|
10
|
0.072702
|
0.189321
|
11
|
0.679586
|
0.902103
|
12
|
0.348744
|
0.132051
|
13
|
0.005252
|
0.008941
|
14
|
0.172955
|
0.035910
|
15
|
0.044104
|
0.130053
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.056361
|
0.1233113
|
2
|
0.541929
|
0.6232319
|
3
|
0.109007
|
0.2436086
|
4
|
0.174352
|
0.0571334
|
5
|
0.417509
|
0.3116928
|
6
|
0.234870
|
0.3633720
|
7
|
0.013394
|
0.0362720
|
8
|
0.053672
|
0.0060087
|
9
|
0.190942
|
0.0448705
|
10
|
0.226680
|
0.2915920
|
11
|
0.022522
|
0.0492789
|
12
|
0.058870
|
0.0004465
|
13
|
0.267071
|
0.4069690
|
14
|
0.159616
|
0.3642280
|
15
|
0.837921
|
0.8287308
|
*
20% des pv pour la VaR Normale sont rejetées par le test
de Kupiec
33.33% des pv pour la VaR Normale sont rejetées par le
test de Christofferen 13.33% des pv pour la VaR Cornish-Fisher sont
rejetées par le test de Kupiec 33.33% des pv pour la VaR Cornish-Fisher
sont rejetées par le test de Christofferen
La VaR Cornish-Fish ne semble pas être
préférable à la VaR-Normale pour un skewness de 0.5 et le
kurtosis de 6. Les 2 VaR semblent inadaptées.
3.4 loi Normale
> library(moments)
> n=10000
> rt <- rnorm(n,-0.044,.03) > mean(rt)
[1] -0.04355871 > var(rt)
[1] 0.0008975451 > skewness(rt)
22
[1] -0.03104728
> kurtosis(rt)
[1] 2.993166
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.031047, z = -1.268100, p-value = 0.2047 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 2.99320, z = -0.10344, p-value = 0.9176 alternative
hypothesis: kurtosis is not equal to 3
L'hypothèse nulle n'est pas rejetée pour le test
d'agostino et anscombe, le skewness et le kurtosis sont non significativement
différent de 0.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi normale
23
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.91815
|
0.99368
|
2
|
0.19094
|
0.24045
|
3
|
1.00000
|
0.59956
|
4
|
0.34874
|
0.53324
|
5
|
0.53422
|
0.62275
|
6
|
0.08905
|
0.06922
|
7
|
0.40568
|
0.65836
|
8
|
0.54193
|
0.62323
|
9
|
0.60507
|
0.84600
|
10
|
0.26707
|
0.17967
|
11
|
0.36244
|
0.66033
|
12
|
0.54193
|
0.62323
|
13
|
0.91841
|
0.99361
|
14
|
0.53422
|
0.22136
|
15
|
0.53422
|
0.62155
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.9182
|
0.99368
|
2
|
0.2267
|
0.28514
|
3
|
0.9184
|
0.57028
|
4
|
0.6051
|
0.84600
|
5
|
0.6051
|
0.63884
|
6
|
0.1090
|
0.07487
|
7
|
0.4057
|
0.65836
|
8
|
0.6107
|
0.68146
|
9
|
0.7571
|
0.94391
|
10
|
0.2267
|
0.15026
|
11
|
0.4175
|
0.71803
|
12
|
0.5419
|
0.62323
|
13
|
0.9184
|
0.99361
|
14
|
0.5342
|
0.22136
|
15
|
0.5342
|
0.62155
|
*
100% des pv sont supérieurs à 5%, par
conséquent, les 2 VaR sont adaptés pour un skewness de 0 et un
kurtosis de 3.
3.5 Loi Laplace asymétrique
> library(GeneralizedHyperbolic)
> library(moments)
> n=10000
> rt <-rskewlap(n, mu = 0.0000321, alpha = 1/23,
beta = 1/22)
> skewness(rt)
[1] 0.1906212
> kurtosis(rt)
[1] 5.662869
> agostino.test(rt)
D?Agostino skewness test
data: rt
24
skew = 0.19062, z = 7.71900, p-value = 1.173e-14 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 5.6629, z = 25.1130, p-value < 2.2e-16
alternative hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 0.05 et le kurtosis
5.7.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi Laplace
asymétrique
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.26707
|
0.1645
|
0.08905
|
2
|
0.25049
|
0.4550
|
1.00000
|
3
|
0.68339
|
0.7239
|
0.15962
|
4
|
0.60507
|
0.1024
|
0.13241
|
5
|
0.75712
|
0.9439
|
0.54193
|
6
|
0.17295
|
0.3252
|
0.91815
|
7
|
0.91841
|
0.2627
|
0.26707
|
8
|
0.46761
|
0.1052
|
0.54193
|
9
|
0.09177
|
0.0336
|
0.25049
|
10
|
0.14152
|
0.3143
|
0.67959
|
11
|
0.53422
|
0.7918
|
0.91815
|
12
|
0.17295
|
0.2149
|
0.15962
|
13
|
0.05695
|
0.0158
|
0.91815
|
14
|
0.03376
|
0.0431
|
1.00000
|
15
|
0.83691
|
0.6386
|
0.22668
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
0.11024
|
2
|
0.61278
|
3
|
0.14739
|
4
|
0.08223
|
5
|
0.81875
|
6
|
0.87552
|
7
|
0.17967
|
8
|
0.03704
|
9
|
0.44996
|
10
|
0.64695
|
11
|
0.99368
|
12
|
0.22820
|
13
|
0.99368
|
14
|
1.00000
|
15
|
0.28514
|
*
Pour un skewness 0.05 et un kurtosis 5.7, la VaR de
Cornish-Fisher semble être préférable àla
VaR Normale, aucune pv du test de kupiec et du test de christoffersen n'est
rejetée pour la VaR Cornish-Fisher, tandis que 2 pv du test de kupiec et
3 pv du test de christoffersen sont rejetées.
25
3.6 Loi d'extremum
généralisée
1ère simulation
> library(evd)
> library(moments)
> n <- 10000
> ### The Generalized Extreme Value Distribution LIBRARY
EVD
> rt <- rgev(n, loc=0, scale=0.05332, shape=0)
> skewness(rt)
[1] 1.083461
> kurtosis(rt)
[1] 5.017651
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 1.0835, z = 36.5310, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 5.0177, z = 21.6790, p-value < 2.2e-16
alternative hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 1 et le kurtosis
5.4
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi d'extremum
généralisée
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.75712
|
0.64685
|
0.9182
|
2
|
0.67959
|
NaN
|
0.5342
|
3
|
0.34874
|
0.25897
|
0.4057
|
4
|
0.40568
|
0.56902
|
0.4676
|
5
|
0.68339
|
0.73626
|
0.5419
|
6
|
0.46761
|
0.59921
|
0.4676
|
7
|
0.05695
|
0.06461
|
0.1146
|
8
|
0.91841
|
0.45119
|
0.8379
|
9
|
0.68339
|
0.73626
|
0.6107
|
10
|
0.75934
|
0.90904
|
0.7593
|
11
|
0.40568
|
0.30447
|
0.6051
|
12
|
0.83792
|
0.97488
|
0.8379
|
13
|
0.67959
|
0.87654
|
0.9182
|
14
|
0.75712
|
0.89645
|
0.8369
|
15
|
0.54193
|
0.38065
|
0.5419
|
26
*
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.6226
|
2
|
NaN
|
3
|
0.3045
|
4
|
0.5992
|
5
|
0.7981
|
6
|
0.5992
|
7
|
0.1391
|
8
|
0.4731
|
9
|
0.6815
|
10
|
0.9090
|
11
|
0.4543
|
12
|
0.9749
|
13
|
0.9022
|
14
|
0.9051
|
15
|
0.3806
|
*
Pour la loi d'extremum généralisée, on
remarque que les 2 VaR conviennent. Donc pour un skewness de 1 et un kurtosis
5.4, on peut utiliser les 2 VaR.
2ème simulation
> library(evd)
> library(moments)
> n=10000
> ### The Generalized Extreme Value Distribution LIBRARY
EVD
> rt <- rgev(n, loc=-0.02, scale=0.05332,
shape=-0.74837)
> plot(rt, type = "l", col = "steelblue")
> skewness(rt)
[1] -1.292113
> kurtosis(rt)
[1] 5.423539
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -1.2921, z = -41.3680, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 5.4235, z = 23.9310, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness -1.3 et le kurtosis
5
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi d'extremum
généralisée
27
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
1.237e-03
|
4.016e-03
|
0.75712
|
2
|
2.583e-07
|
1.096e-06
|
0.19094
|
3
|
5.802e-03
|
1.797e-02
|
0.17295
|
4
|
7.789e-09
|
4.819e-08
|
0.54193
|
5
|
1.041e-04
|
5.355e-04
|
0.83691
|
6
|
2.158e-05
|
1.082e-04
|
0.75934
|
7
|
2.583e-07
|
1.623e-06
|
0.41751
|
8
|
5.995e-08
|
4.114e-07
|
0.41751
|
9
|
1.310e-08
|
6.650e-08
|
0.05807
|
10
|
1.339e-02
|
3.403e-02
|
0.46761
|
11
|
2.583e-07
|
4.511e-07
|
0.61074
|
12
|
2.191e-04
|
9.319e-04
|
0.91815
|
13
|
8.880e-04
|
3.744e-03
|
0.53422
|
14
|
2.575e-06
|
1.480e-05
|
0.36244
|
15
|
1.021e-02
|
3.457e-02
|
0.11458
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
0.3139
|
2
|
0.1569
|
3
|
0.2282
|
4
|
0.8188
|
5
|
0.9748
|
6
|
0.7859
|
7
|
0.4791
|
8
|
0.5031
|
9
|
0.1520
|
10
|
0.7575
|
11
|
0.6815
|
12
|
0.8755
|
13
|
0.1044
|
14
|
0.6603
|
15
|
0.2818
|
*
100% des pv sont inféireurs à 5% pour la VaR
Normale.
100% des pv sont supérieurs à 5% pour la VaR
Cornish-Fisher.
Il est évident de dire ici que la VaR Cornish-Fisher est
préférable à la VaR Normale pour un skewness ' -1.3 et un
kurtosis 5.
3.7 Loi de Gumbel
> library(evd)
> library(moments)
> ### The Gumbel Distribution LIBRARY EVD
> n <- 10000
> rt <- rgumbel(n, loc=-0.082991,
scale=0.091276)
> plot(rt, type = "l", col = "steelblue")
> skewness(rt)
[1] 1.124037
> kurtosis(rt)
[1] 5.434639
28
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 1.124, z = 37.518, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 5.4346, z = 23.9880, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 1 et le kurtosis
5.8
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de Gumbel
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0
|
NaN
|
2
|
0
|
0
|
3
|
0
|
NaN
|
4
|
0
|
NaN
|
5
|
0
|
NaN
|
6
|
0
|
0
|
7
|
0
|
NaN
|
8
|
0
|
NaN
|
9
|
0
|
NaN
|
10
|
0
|
NaN
|
11
|
0
|
NaN
|
12
|
0
|
0
|
13
|
0
|
NaN
|
14
|
0
|
NaN
|
15
|
0
|
NaN
|
*
29
*
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.417509
|
2
|
0.005802
|
3
|
0.267071
|
4
|
0.001711
|
5
|
0.022522
|
6
|
0.046361
|
7
|
0.072192
|
8
|
0.836909
|
9
|
0.296993
|
10
|
0.007726
|
11
|
0.004324
|
12
|
0.010212
|
13
|
0.000888
|
14
|
0.003198
|
15
|
0.159616
|
*
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.718028
|
2
|
0.017971
|
3
|
0.508089
|
4
|
0.007273
|
5
|
0.072274
|
6
|
0.137037
|
7
|
0.063233
|
8
|
0.651523
|
9
|
0.493041
|
10
|
0.006529
|
11
|
0.007438
|
12
|
0.034179
|
13
|
0.003991
|
14
|
0.012783
|
15
|
0.364228
|
Après 15*3 simulations, les pv du test kupiec et
christoffersen ne se calculent pas. Par ailleurs, 60 % des pv du test de kupiec
calculées pour la VaR Cornish-Fisher sont rejetées, et 33.33% des
pv du test de christoffersen calculées pour la VaR Cornish-Fisher sont
rejetées. On ne peut rien conclure ici car les pv des tests de la VaR
Normale ne se sont pas calculées.
3.8 Loi de Tukey-lambda généralisée
> library(fBasics)
> library(moments)
> #Generalized Lambda Distribution LIBRARY
(fbasics)
> n <- 10000
> rt <- rgld(n, lambda1 = 0, lambda2 = -0.8, lambda3 =
-1/69, lambda4 = -1/30)
> skewness(rt)
[1] 0.9236164 attr(,"method")
[1] "moment"
> kurtosis(rt)
[1] 1.898747 attr(,"method")
[1] "excess"
> agostino.test(rt)
30
D?Agostino skewness test
data: rt
skew = 0.92375, z = 32.40900, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 4.8997, z = 20.9550, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 1 et le kurtosis
6
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de Loi de Tukey-lambda
généralisée
*
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
6.547510e-08
|
4.370387e-07
|
2
|
2.091949e-11
|
NaN
|
3
|
3.384015e-09
|
2.560091e-09
|
4
|
4.379830e-13
|
3.852696e-12
|
5
|
6.547510e-08
|
2.062368e-07
|
6
|
2.944218e-10
|
1.574282e-10
|
7
|
2.091949e-11
|
NaN
|
8
|
1.720477e-06
|
9.268196e-06
|
9
|
0.000000e+00
|
1.110223e-16
|
10
|
5.170142e-11
|
NaN
|
11
|
8.262835e-12
|
NaN
|
12
|
8.262835e-12
|
NaN
|
13
|
4.918795e-07
|
2.981064e-06
|
14
|
6.791123e-10
|
3.789496e-09
|
15
|
5.170142e-11
|
2.650425e-10
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
3.672559e-02
|
9.896820e-02
|
2
|
2.887022e-02
|
5.524777e-02
|
3
|
7.726448e-03
|
6.529376e-03
|
4
|
8.905140e-02
|
2.215205e-01
|
5
|
1.743483e-02
|
1.791251e-02
|
6
|
2.158440e-05
|
1.451963e-05
|
7
|
7.219151e-02
|
1.827770e-01
|
8
|
1.710569e-03
|
5.950159e-03
|
9
|
5.801801e-03
|
1.348042e-02
|
10
|
6.614618e-07
|
2.999923e-06
|
11
|
2.190524e-04
|
1.066412e-03
|
12
|
5.037637e-12
|
4.443534e-11
|
13
|
3.142661e-04
|
1.482267e-03
|
14
|
4.809164e-05
|
2.583019e-04
|
15
|
1.021176e-02
|
2.781197e-02
|
Pour skewness 1 et un kurtosis 6, les 2 VaR sont
inadaptées.
31
3.9 Loi Normale asymétrique
1ère simulation
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rsnorm(n, mean = 0.02091, sd = 0.09833, xi =
1.5)
> skewness(rt)
[1] 0.5801937 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 0.2751388 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.58028, z = 22.06600, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.2758, z = 5.0032, p-value = 5.637e-07 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 0.5 et le kurtosis
3.2
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi Normale
asymétrique
32
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
8.262835e-12
|
7.116585e-11
|
2
|
1.248048e-10
|
1.029020e-09
|
3
|
6.791123e-10
|
NaN
|
4
|
1.248048e-10
|
1.029020e-09
|
5
|
5.417888e-14
|
NaN
|
6
|
6.547510e-08
|
3.912503e-07
|
7
|
8.262835e-12
|
7.116585e-11
|
8
|
6.547510e-08
|
3.966081e-07
|
9
|
4.918795e-07
|
2.897467e-06
|
10
|
1.720477e-06
|
1.028365e-05
|
11
|
1.196265e-12
|
NaN
|
12
|
4.918795e-07
|
2.897467e-06
|
13
|
6.791123e-10
|
NaN
|
14
|
2.091949e-11
|
NaN
|
15
|
3.184120e-12
|
1.452183e-11
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.056950543
|
0.15975022
|
2
|
0.014087615
|
0.04910592
|
3
|
0.014087615
|
0.04059024
|
4
|
0.348744351
|
0.30760878
|
5
|
0.007391808
|
0.01298447
|
6
|
0.918153040
|
0.99232297
|
7
|
0.025536586
|
0.07300448
|
8
|
0.250494735
|
0.51622856
|
9
|
0.114579541
|
0.27114054
|
10
|
0.467613827
|
0.72693022
|
11
|
0.056950543
|
0.04809720
|
12
|
0.072701708
|
0.19443637
|
13
|
0.072701708
|
0.19076668
|
14
|
0.025536586
|
0.08239907
|
15
|
0.072701708
|
0.19076668
|
*
100% des pv pour la VaR Normale sont rejetées par le test
de Kupiec 100% des pv pour la VaR Normale sont rejetées par le test de
Christofferen
66.66% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Kupiec
73.33% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Christofferen
Pour un skewness 0.5 et un kurtosis 3.2, la VaR Cornish-Fisher
est nettement préférable à la VaR Normale.
2ème simulation
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rsnorm(n, mean = -0.01/252, sd = 0.0598, xi =
-1.302)
> skewness(rt)
[1] -0.3877527 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 0.09773852 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.38781, z = -15.30300, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.0984, z = 1.9532, p-value = 0.05079
alternative hypothesis: kurtosis is not equal to 3
Les 2 pv des tests dagostino et anscombe sont rejetées, le
skewness et kurtosis sont significativement différent de 0. Le skewness
est de -0.04 et le kurtosis est 3.15
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0.0580750
|
0.032842
|
0.60507
|
0.0225215
|
0.042564
|
0.68339
|
0.0463606
|
0.108469
|
0.61074
|
0.0102118
|
0.034571
|
0.41751
|
0.0004476
|
0.001007
|
0.15962
|
0.0077264
|
0.028775
|
0.83691
|
0.9181530
|
0.993683
|
0.05695
|
0.4774108
|
0.563248
|
0.53422
|
0.0003143
|
0.001482
|
0.08905
|
0.0367256
|
0.109048
|
0.67959
|
0.0367256
|
0.097778
|
1.00000
|
0.0012371
|
0.005395
|
0.68339
|
0.0174348
|
0.047228
|
0.61074
|
0.1324133
|
0.311866
|
0.75712
|
0.0721915
|
0.183579
|
1.00000
|
Modified :Test Christoffersen :cc.LRp
0.3456 0.9040 0.5043 0.6714 0.2005 0.9748 0.1598 0.6227 0.2351
0.9021 0.5996 0.8889 0.6815 0.9439 1.0000
|
33
*
34
66.66% des pv pour la VaR Normale sont rejetées par le
test de Kupiec 53.33% des pv pour la VaR Normale sont rejetées par le
test de Christofferen 100% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Kupiec 100% des pv pour la VaR Cornish-Fisher ne
sont pas rejetées par le test de Christofferen
Pour un skewness est de -0.04 et un kurtosis est 3.15, la VaR
Cornish-Fisher est préférable à la VaR Normale
3.10 Generalized Error Distribution
> # Generalized Error Distribution library(fGarch)
> rt <- rged(n, mean = 0.00436, sd = 0.12, nu = 1.6)
> skewness(rt)
[1] 0.002715777 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 0.7122138 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.0027162, z = 0.1109700, p-value = 0.9116 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.713, z = 10.919, p-value < 2.2e-16
alternative hypothesis: kurtosis is not equal to 3
La pv du test anscombe est inférieur à 5 %, par
conséquent on rejete H0, le kurtosis est significativement
différents de 0. Le test d'agostino conclut que le skewness est non
significativement différent de 0. Le skewness 0 et le kurtosis 3.45
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la distribution des erreurs
généralisées
3
4
6
8
9
*
2
5
7
1
10
11
12
13
14
15
Normal :Test Kupiec :uc.LRp
0.19094
0.31229
0.91815
0.41751
0.83691
0.68339
0.41751
0.11458
0.75712
0.26707
0.34874
0.31229
0.47741
0.83792
0.08905
Normal :Test Christoffersencc.LRp
0.04487
0.43503
0.87552
0.71803
0.97479
0.19725
0.67135
0.27114
0.32629
0.53885
0.58809
0.43503
0.73637
0.24159
0.23472
*
35
*
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.26707
|
2
|
0.36244
|
3
|
0.91841
|
4
|
0.22668
|
5
|
0.75934
|
6
|
0.68339
|
7
|
0.26707
|
8
|
0.20920
|
9
|
0.75934
|
10
|
0.36244
|
11
|
0.34874
|
12
|
0.31229
|
13
|
0.41751
|
14
|
0.04636
|
15
|
0.03673
|
*
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.06744
|
2
|
0.45938
|
3
|
0.91534
|
4
|
0.46013
|
5
|
0.94461
|
6
|
0.19725
|
7
|
0.47398
|
8
|
0.40467
|
9
|
0.28571
|
10
|
0.66033
|
11
|
0.58809
|
12
|
0.43503
|
13
|
0.67135
|
14
|
0.09015
|
15
|
0.06647
|
Presque 100% des pv sont superieurs à 5%, par
conséquent, les 2 VaR sont adaptées pour un skewness de 0 et un
kurtosis de 3.5.
3.11 Skew Generalized Error Distribution
1ère simulation
36
> # Skew Generalized Error Distribution
library(fGarch)
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rsged(n, mean = -0.002938, sd = 0.0394, nu = 2,
xi = 0.9)
> skewness(rt)
[1] -0.1457625 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 0.0618421 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.14578, z = -5.92490, p-value = 3.124e-09 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.0625, z = 1.2745, p-value = 0.2025
alternative hypothesis: kurtosis is not equal to 3
La pv du test d'agostino est inférieur à 5 %,
par conséquent on rejete H0, le skewness est significativement
différents de 0. Le test anscombe conclut que le kurtosis est non
significativement différent de 0. Le skewness -0.16 et le kurtosis =
3
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la distribution des erreurs
généralisées asymétriques
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.13241
|
0.2763940
|
0.7593
|
2
|
0.75934
|
NaN
|
0.8369
|
3
|
0.02887
|
0.0907902
|
0.1090
|
4
|
0.67959
|
0.9021030
|
0.2505
|
5
|
0.31229
|
0.6000498
|
0.5342
|
6
|
0.13241
|
0.0822295
|
0.5419
|
7
|
0.01743
|
0.0588379
|
0.1324
|
8
|
0.01743
|
0.0571334
|
0.1090
|
9
|
0.01743
|
0.0479500
|
0.1909
|
10
|
1.00000
|
0.2915141
|
0.5342
|
11
|
0.01743
|
0.0003827
|
0.1324
|
12
|
0.83691
|
0.9747863
|
0.1730
|
13
|
0.02252
|
0.0640213
|
0.3123
|
14
|
0.01909
|
0.3546192
|
0.4774
|
15
|
0.41751
|
0.4791475
|
0.6796
|
37
*
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.9090
|
2
|
NaN
|
3
|
0.2661
|
4
|
0.5166
|
5
|
0.6227
|
6
|
0.3705
|
7
|
0.3119
|
8
|
0.2643
|
9
|
0.4195
|
10
|
0.3444
|
11
|
NaN
|
12
|
0.3926
|
13
|
0.5544
|
14
|
0.7364
|
15
|
0.6470
|
*
46.66% des pv pour la VaR Normale sont rejetées par le
test de Kupiec 13.33% des pv pour la VaR Normale sont rejetées par le
test de Christofferen 100% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Kupiec 100% des pv pour la VaR Cornish-Fisher ne
sont pas rejetées par le test de Christofferen
La VaR Cornish-Fisher semble être clairement
préférable à la VaR Normale pour un skewness -0.16 et un
kurtosis = 3
2ème simulation
> # Skew Generalized Error Distribution
library(fGarch)
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rsged(n, mean = 0.003738, sd = 0.0394, nu = 2,
xi = 2)
> skewness(rt)
[1] 0.7973526 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 0.4471458 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.79747, z = 28.85500, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.4478, z = 7.5609, p-value = 4.003e-14 alternative
hypothesis: kurtosis is not equal to 3
38
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejette H0, le skewness et le kurtosis
sont significativement différents de 0. Le skewness 0.75 et le kurtosis
3.55
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la distribution des erreurs
généralisées asymétriques
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0
|
0
|
4.410e-02
|
2
|
0
|
NaN
|
7.766e-04
|
3
|
0
|
NaN
|
1.302e-04
|
4
|
0
|
NaN
|
3.376e-02
|
5
|
0
|
NaN
|
9.866e-06
|
6
|
0
|
0
|
1.302e-04
|
7
|
0
|
NaN
|
9.177e-02
|
8
|
0
|
NaN
|
5.607e-06
|
9
|
0
|
NaN
|
7.392e-03
|
10
|
0
|
NaN
|
9.282e-07
|
11
|
0
|
NaN
|
7.392e-03
|
12
|
0
|
NaN
|
8.022e-05
|
13
|
0
|
NaN
|
3.276e-04
|
14
|
0
|
NaN
|
5.081e-04
|
15
|
0
|
NaN
|
6.548e-08
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
9.640e-02
|
2
|
2.092e-03
|
3
|
4.589e-04
|
4
|
9.498e-02
|
5
|
NaN
|
6
|
5.550e-04
|
7
|
2.336e-01
|
8
|
3.269e-05
|
9
|
2.740e-02
|
10
|
NaN
|
11
|
2.749e-02
|
12
|
4.192e-04
|
13
|
9.940e-04
|
14
|
1.439e-03
|
15
|
3.966e-07
|
*
Les pv pour la VaR Normale ne se calculent pas comme pour la loi
Gumbel. Pour un skewness 0.75 et un kurtosis 3.55, les 2 VaR sont
inadaptées.
3.12 loi de student
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rstd(n, mean = 0.0092, sd = 0.082, nu =
5)
> skewness(rt)
[1] 0.243294 attr(,"method") [1] "moment"
39
> kurtosis(rt)
[1] 4.139516 attr(,"method")
[1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.24333, z = 9.80010, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 7.1409, z = 30.7720, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0.
Le skewness 0.1 et le kurtosis 6.4.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
40
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
1.000000e+00
|
0.9999993070
|
2
|
2.504947e-01
|
0.1793579156
|
3
|
4.676138e-01
|
0.3298292384
|
4
|
7.571159e-01
|
0.5386652562
|
5
|
4.410434e-02
|
NaN
|
6
|
7.270171e-02
|
0.0907666770
|
7
|
9.177323e-02
|
0.1580839485
|
8
|
2.547677e-03
|
0.0073797990
|
9
|
7.391808e-03
|
0.0217451061
|
10
|
6.107364e-01
|
0.6814610605
|
11
|
3.375989e-02
|
0.0161508478
|
12
|
2.504947e-01
|
0.0453391447
|
13
|
8.022049e-05
|
0.0004191948
|
14
|
4.676138e-01
|
0.7575316618
|
15
|
2.504947e-01
|
0.4497404128
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.610736438
|
0.854579824
|
2
|
0.837921301
|
0.715698826
|
3
|
0.417508931
|
0.503075896
|
4
|
0.001710569
|
0.002416166
|
5
|
0.534223440
|
0.104415492
|
6
|
0.141518610
|
0.334987140
|
7
|
0.759335345
|
0.509753085
|
8
|
0.010211763
|
0.034178557
|
9
|
0.025536586
|
0.048890659
|
10
|
0.017434833
|
0.032446909
|
11
|
0.296993220
|
0.107947774
|
12
|
0.362435425
|
0.248365514
|
13
|
0.054104342
|
0.121674339
|
14
|
0.918410198
|
0.863209472
|
15
|
0.250494735
|
0.449740413
|
*
93.33% des pv pour la VaR Normale sont rejetées par le
test de Kupiec 33.33% des pv pour la VaR Normale sont rejetées par le
test de Christofferen 26.66% des pv pour la VaR Cornish-Fisher sont
rejetées par le test de Kupiec 26.66% des pv pour la VaR Cornish-Fisher
sont rejetées par le test de Christofferen
La VaR Cornish-Fish semble être préférable
à la VaR-Normale pour un skewness 0.1 et un kurtosis ' 6.4.
3.13 loi de student asymétrique
1ère simulation
> # Skew Generalized Error
Distribution library(fGarch)
> library(fGarch)
> library(moments)
> n <- 10000
> rt <- rsstd(n, mean = -0.04, sd = 0.091, nu = 5, xi =
1.2)
> skewness(rt)
[1] 0.3285361 attr(,"method") [1] "moment"
41
> kurtosis(rt)
[1] 2.509977 attr(,"method")
[1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.32859, z = 13.08700, p-value < 2.2e-16 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 5.5111, z = 24.3750, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejete H0, le skewness et le kurtosis
sont significativement différents de 0. Après plusieurs
simulations les valeur du skewness et du kurtosis se montrent très
volatiles. Néanmoins l'asymétrie est toujours positive et
l'excès d'aplatisse-ment est toujours positif aussi. le skewness -0.7 et
le kurtosis 8
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
asymétrique
42
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
9.866e-06
|
6.682e-06
|
2
|
3.682e-03
|
1.076e-02
|
3
|
2.554e-02
|
8.240e-02
|
4
|
1.302e-04
|
6.603e-04
|
5
|
9.866e-06
|
5.658e-05
|
6
|
2.906e-05
|
NaN
|
7
|
1.302e-04
|
4.507e-04
|
8
|
3.133e-06
|
1.852e-05
|
9
|
8.022e-05
|
3.408e-04
|
10
|
7.766e-04
|
NaN
|
11
|
8.022e-05
|
1.908e-04
|
12
|
1.027e-02
|
1.543e-02
|
13
|
1.707e-05
|
7.498e-05
|
14
|
1.720e-06
|
NaN
|
15
|
1.302e-04
|
4.507e-04
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
NA
|
NA
|
2
|
0.1339420
|
0.446812
|
3
|
0.0058018
|
0.009874
|
4
|
0.0003143
|
0.001058
|
5
|
0.4774108
|
0.771414
|
6
|
0.0463606
|
0.090152
|
7
|
0.0102118
|
0.003962
|
8
|
0.7571159
|
0.794707
|
9
|
0.0017106
|
0.007273
|
10
|
0.0077264
|
0.020730
|
11
|
0.5419292
|
0.502106
|
12
|
0.1596165
|
0.036005
|
13
|
0.3122905
|
0.554396
|
14
|
0.1909418
|
0.240453
|
15
|
0.0006328
|
0.052149
|
*
100% des pv pour la VaR Normale sont rejetées par le test
de Kupiec 100% des pv pour la VaR Normale sont rejetées par le test de
Christofferen
46.66% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Kupiec
53.33% des pv pour la VaR Cornish-Fisher ne sont pas
rejetées par le test de Christofferen
La VaR Cornish-Fisher semble être clairement
préférable à la VaR Normale pour un skewness -0.7
et un kurtosis 8. Néanmoins, elle n'est pas très
fiable. Il faudrait faire une simulation d'un nombre plus grande de 15.
2ème simulation
> library(moments)
> library(sn)
> n <- 10000
> # Skew-t Distribution library sn
> rt <- rst(n, xi=-0.098, omega=0.01, alpha=-0.0065,
nu=Inf, dp=NULL)
> skewness(rt)
[1] -0.03463389 attr(,"method") [1] "moment"
> kurtosis(rt)
43
[1] -0.01726209 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.034639, z = -1.414800, p-value = 0.1571 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 2.98330, z = -0.30672, p-value = 0.7591 alternative
hypothesis: kurtosis is not equal to 3
Les pv du test d'agostino et anscombe sont supérieurs
à 5%, par conséquent on ne rejete pas H0, le skewness et le
kurtosis sont non significativement différents de 0, la distribution
semble être normale, cela doit être dans le choix des
paramètres.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
asymétrique
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.056951
|
0.04810
|
0.056951
|
2
|
0.348744
|
0.54048
|
0.250495
|
3
|
0.172955
|
0.35911
|
0.141519
|
4
|
0.007726
|
0.01055
|
0.004324
|
5
|
0.467614
|
0.72693
|
0.467614
|
6
|
0.541929
|
0.37048
|
0.610736
|
7
|
0.679586
|
0.90210
|
0.605067
|
8
|
0.312291
|
0.43503
|
0.417509
|
9
|
0.918410
|
0.99361
|
0.837921
|
10
|
0.918410
|
0.99361
|
0.683389
|
11
|
0.109007
|
0.21075
|
0.267071
|
12
|
0.837921
|
0.71570
|
0.918410
|
13
|
0.683389
|
0.90400
|
0.683389
|
14
|
0.141519
|
0.20476
|
0.141519
|
15
|
0.759335
|
0.49743
|
0.759335
|
44
*
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.048097
|
2
|
0.278717
|
3
|
0.314251
|
4
|
0.007194
|
5
|
0.726930
|
6
|
0.413574
|
7
|
0.850806
|
8
|
0.479147
|
9
|
0.974881
|
10
|
0.904005
|
11
|
0.473979
|
12
|
0.697976
|
13
|
0.904005
|
14
|
0.204763
|
15
|
0.497434
|
*
Presque 100% des pv sont supérieurs à 5%, par
conséquent, les 2 VaR sont adaptés pour un skewness de 0 et un
kurtosis de 3. Ce résultat était attendu.
3.14 Generalized Hyperbolic Student-t
> library(fBasics)
> library(moments)
> n <- 10000
> rt <- rght(n, beta = 0.1, delta = 0.504, mu = 0.0076,
nu = 11)
> skewness(rt)
[1] 0.01745094 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] -0.05402677 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.017454, z = 0.713020, p-value = 0.4758 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 2.9466, z = -1.0853, p-value = 0.2778 alternative
hypothesis: kurtosis is not equal to 3
L'hypothèse nulle n'est pas rejetée pour le test
d'agostino et anscombe, le skewness et le kurtosis sont non significativement
différent de 0.
45
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.3487444
|
0.64292200
|
2
|
0.1145795
|
0.07191356
|
3
|
0.2504947
|
0.27217585
|
4
|
0.7593353
|
0.94461092
|
5
|
0.1415186
|
0.27052999
|
6
|
0.7593353
|
0.28571113
|
7
|
0.4676138
|
0.72693022
|
8
|
0.7593353
|
0.05628358
|
9
|
0.9184102
|
0.91533825
|
10
|
0.4676138
|
0.75753166
|
11
|
0.6107364
|
0.85457982
|
12
|
0.8379213
|
0.82873076
|
13
|
1.0000000
|
0.88803205
|
14
|
0.5419292
|
0.31292988
|
15
|
0.1596165
|
0.36422798
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.3487444
|
0.64292200
|
2
|
0.1145795
|
0.07191356
|
3
|
0.2504947
|
0.27217585
|
4
|
0.7593353
|
0.94461092
|
5
|
0.4056815
|
0.65835751
|
6
|
0.8379213
|
0.26996670
|
7
|
0.4676138
|
0.72693022
|
8
|
0.7593353
|
0.05628358
|
9
|
1.0000000
|
0.90103028
|
10
|
0.4676138
|
0.75753166
|
11
|
0.9184102
|
0.99361263
|
12
|
0.5419292
|
0.81875175
|
13
|
0.8379213
|
0.82873076
|
14
|
0.4175089
|
0.31169276
|
15
|
0.3624354
|
0.66032820
|
*
100% des pv sont supérieurs à 5%, par
conséquent, les 2 VaR sont adaptés pour un skewness de 0 et un
kurtosis de 3.
3.15 Standardized generalized hyperbolic Student-t
Distribution
> library(fBasics)
> library(moments)
> n <- 10000
> rt <- rsght(n, beta = 0.1, delta = 1, mu = 0, nu =
10)
> skewness(rt)
[1] -0.01717149 attr(,"method") [1] "moment"
> kurtosis(rt)
46
[1] 0.03917319 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.017174, z = -0.701600, p-value = 0.4829 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 3.03980, z = 0.83379, p-value = 0.4044 alternative
hypothesis: kurtosis is not equal to 3
L'hypothèse nulle n'est pas rejetée pour le test
d'agostino et anscombe, le skewness et le kurtosis sont non significativement
différent de 0.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
1
|
0.03376
|
NaN
|
2
|
0.53422
|
0.79176
|
3
|
0.75712
|
0.90345
|
4
|
0.68339
|
0.50015
|
5
|
1.00000
|
0.88803
|
6
|
0.47741
|
0.66975
|
7
|
0.60507
|
0.84600
|
8
|
0.67959
|
0.87654
|
9
|
0.75712
|
0.79471
|
10
|
0.05695
|
0.01238
|
11
|
0.31229
|
0.43503
|
12
|
0.67959
|
0.33252
|
13
|
0.75712
|
0.32629
|
14
|
0.83792
|
0.91801
|
15
|
0.91841
|
0.45119
|
*
|
Modified :Test Kupiec :uc.LRp
|
Modified :Test Christoffersen :cc.LRp
|
1
|
0.03376
|
NaN
|
2
|
0.60507
|
0.85081
|
3
|
0.67959
|
0.88248
|
4
|
0.68339
|
0.50015
|
5
|
0.54193
|
0.69600
|
6
|
0.47741
|
0.66975
|
7
|
0.29699
|
0.58031
|
8
|
0.60507
|
0.84600
|
9
|
0.75712
|
0.79471
|
10
|
0.05695
|
0.01238
|
11
|
0.41751
|
0.47915
|
12
|
0.53422
|
0.10442
|
13
|
0.67959
|
0.50483
|
14
|
0.83792
|
0.91801
|
15
|
1.00000
|
0.42460
|
47
*
Presque 100% des pv sont supérieurs à 5%, par
conséquent, les 2 VaR sont adaptés pour un skewness de 0 et un
kurtosis de 3.
3.16 loi triangulaire
> library(moments)
> library(triangle)
> n <- 10000
> rt <- rtriangle(n, -0.36, 0.42, 0)
> skewness(rt)
[1] 0.06179604 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] -0.6035392 attr(,"method") [1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = 0.061805, z = 2.522700, p-value = 0.01165 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 2.3969, z = -18.1040, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
La loi triangulaire a un coefficient d'aplatissement
inférieur à celui de la loi normale, chose qui est très
rare, voir impossible pour les distribution des actifs
financiers. la loi triangulaire
possède un skewness de 0.05 un kurtosis de 2.4, soit 0.8 de moins celui
d'une loi normale.
Par ailleurs, la somme de 2 variables aléatoires qui
suivent une loi uniforme sur un même intervalle est une distribution
triangulaire.
Cette loi est étudiée dans ce rapport surtout le
but de répondre à la question posée.
Les pv du test d'agostino et anscombe sont inférieurs
à 5%, par conséquent on rejette H0, le skewness et le kurtosis
sont significativement différents de 0.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
asymétrique
48
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.5342
|
0.7918
|
0.6051
|
2
|
0.6834
|
0.7239
|
0.6834
|
3
|
0.3624
|
0.1777
|
0.3624
|
4
|
0.6834
|
0.2984
|
0.6107
|
5
|
0.6051
|
0.3359
|
0.6796
|
6
|
0.2505
|
0.5166
|
0.1730
|
7
|
0.2970
|
0.4930
|
0.4676
|
8
|
0.4293
|
0.4738
|
0.4341
|
9
|
0.4754
|
0.2847
|
0.8475
|
10
|
0.5952
|
0.4857
|
0.2114
|
11
|
0.2391
|
0.2834
|
0.5438
|
12
|
0.0918
|
0.0841
|
0.1138
|
13
|
0.1934
|
0.3129
|
0.4351
|
14
|
0.5493
|
0.4732
|
0.5421
|
15
|
0.3443
|
0.3482
|
0.4355
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
0.6838
|
2
|
0.7239
|
3
|
0.1777
|
4
|
0.3076
|
5
|
0.3325
|
6
|
0.3591
|
7
|
0.5992
|
8
|
0.5847
|
9
|
0.2721
|
10
|
0.4312
|
11
|
0.3743
|
12
|
0.2871
|
13
|
0.0926
|
14
|
0.2473
|
15
|
0.6417
|
*
100% des pv pour la VaR Normale et pour la VaR Cornish-Fisher ne
sont pas rejetées. Donc pour un skewness de 0.05 et un kurtosis de 2.4,
les 2 VaR sont adaptées.
3.17 loi uniforme
> library(moments)
> n <- 10000
> rt <- runif(n, -0.5393, 0.4323) >
skewness(rt)
[1] -0.005763026 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] -1.215015 attr(,"method") [1] "excess"
> agostino.test(rt)
49
D?Agostino skewness test
data: rt
skew = -0.0057639, z = -0.2354800, p-value = 0.8138 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 1.7853, z = -100.0100, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
La loi uniforme comme pour la loi triangulaire a un
coefficient d'aplatissement inférieur à celui de la loi normale.
La loi uniforme possède un skewness de 0 un kurtosis de 1.8, soit 1.2 de
moins celui d'une loi normale.
Cette loi est étudiée dans ce rapport surtout le
but de répondre à la question posée.
La pv du test anscombe sont inférieurs à 5%, par
conséquent on rejete H0, le kurtosis sont significativement
différents de 0, par contre, le skewness est non significativement
différent de 0.
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
asymétrique
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
3.133e-06
|
5.500e-06
|
8.263e-12
|
2
|
5.995e-15
|
NaN
|
0.000e+00
|
3
|
1.532e-09
|
1.184e-08
|
1.821e-14
|
4
|
1.707e-05
|
9.603e-05
|
3.384e-09
|
5
|
3.217e-08
|
1.937e-07
|
4.380e-13
|
6
|
4.866e-05
|
NaN
|
1.248e-10
|
7
|
3.217e-08
|
1.937e-07
|
5.995e-15
|
8
|
8.263e-12
|
3.933e-11
|
0.000e+00
|
9
|
4.919e-07
|
2.981e-06
|
4.380e-13
|
10
|
6.548e-08
|
NaN
|
3.184e-12
|
11
|
1.561e-13
|
NaN
|
0.000e+00
|
12
|
1.532e-09
|
1.038e-09
|
5.995e-15
|
13
|
4.919e-07
|
NaN
|
6.791e-10
|
14
|
1.307e-07
|
4.302e-07
|
4.380e-13
|
15
|
6.548e-08
|
NaN
|
1.561e-13
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
3.933e-11
|
2
|
NaN
|
3
|
1.602e-13
|
4
|
1.965e-08
|
5
|
NaN
|
6
|
NaN
|
7
|
NaN
|
8
|
NaN
|
9
|
NaN
|
10
|
NaN
|
11
|
NaN
|
12
|
1.932e-14
|
13
|
NaN
|
14
|
1.812e-12
|
15
|
NaN
|
50
*
100% des pv pour la VaR Normale et pour la VaR Cornish-Fisher
sont rejetées. Pour un skewness de 0 et un kurtosis de 1.8, les 2 VaR
sont inadaptées.
3.18 loi logistique
> library(moments)
> n <- 10000
> #### loi logistique kurtosis 4.2 et skew= -0.05
> rt <- rlogis(n, location = 0, scale = 0.004)
> skewness(rt)
[1] -0.01097887 attr(,"method") [1] "moment"
> kurtosis(rt)
[1] 1.262973 attr(,"method")
[1] "excess"
> agostino.test(rt)
D?Agostino skewness test
data: rt
skew = -0.010981, z = -0.448600, p-value = 0.6537 alternative
hypothesis: data have a skewness
> anscombe.test(rt)
Anscombe-Glynn kurtosis test
data: rt
kurt = 4.2638, z = 16.3390, p-value < 2.2e-16 alternative
hypothesis: kurtosis is not equal to 3
La pv du test d'agostino est supérieur à 5%, par
conséquent on ne rejete pas H0.
La pv du test anscombe est inférieur à % donc on
rejete H0. le kurtosis est significativement différent de 0.
Le skewness est de -0.05 et le kurtosis est de 4.2
Backtesting sur la VaR Normale et la VaR
Cornish-Fisher par simulation Monte-Carlo sur la loi de student
asymétrique
51
*
|
Normal :Test Kupiec :uc.LRp
|
Normal :Test Christoffersencc.LRp
|
Modified :Test Kupiec :uc.LRp
|
1
|
0.60507
|
0.63884
|
1.00000
|
2
|
0.60507
|
0.33586
|
0.68339
|
3
|
0.14152
|
0.20476
|
0.60507
|
4
|
0.91815
|
0.90220
|
1.00000
|
5
|
0.41751
|
0.67135
|
0.47741
|
6
|
0.17295
|
0.21485
|
0.29699
|
7
|
0.75712
|
0.89645
|
0.83691
|
8
|
0.25049
|
0.51661
|
0.46761
|
9
|
0.25049
|
0.44996
|
0.29699
|
10
|
0.75934
|
0.49743
|
0.47741
|
11
|
0.01027
|
0.01543
|
0.05695
|
12
|
0.15962
|
0.22820
|
0.02887
|
13
|
0.68339
|
0.90400
|
0.22668
|
14
|
0.67959
|
0.87654
|
0.91815
|
15
|
0.53422
|
0.78614
|
0.83792
|
*
|
Modified :Test Christoffersen :cc.LRp
|
|
1
|
0.59956
|
2
|
0.45627
|
3
|
0.85081
|
4
|
0.88803
|
5
|
0.73637
|
6
|
0.36912
|
7
|
0.97479
|
8
|
0.75753
|
9
|
0.51804
|
10
|
0.32801
|
11
|
0.04810
|
12
|
0.07719
|
13
|
0.41234
|
14
|
0.90220
|
15
|
0.90977
|
*
Presque 100% des pv sont supérieurs à 5%, par
conséquent, les 2 VaR sont adaptés pour un skewness de 0 et un
kurtosis de 4.2.
52
53
Conclusion
D'après toutes les simulations qui ont
étéréalisées, il s'est avéréque :
>Pour un skewness non significativement différent de 0 (i.e. = 0), et
un kurtosis compris entre [3 : 4.2], la VaR Normale est adaptée.
Ce résultat a
étédémontrédans toutes les simulations de lois qui
respectent ces critères. Par ailleurs, dès que le skewness est
différent de 0, la VaR Normale devient très sensible et semble
inadaptée dans les simulations Monte-Carlo.
>La loi d'extremum généralisée semble
échapée à cette règle, la 1 ère simulation
de cette loi est sans doute biaisée. Il aurait fallu faire une
simulation d'un nombre assez grand (>15) ou essayer de trouver d'autres
alternatives.
>Pour un skewness 0.05 et un kurtosis 5.7, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Pour un skewness -1.3 et un kurtosis 5, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Pour un skewness 0.5 et un kurtosis 3.2, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Pour un skewness -0.16 et un kurtosis 3, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Pour un skewness 0.1 et un kurtosis 6.4, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Pour un skewness -0.04 et un kurtosis 3.14, la VaR de
Cornish-Fisher est préférable à la VaR Normale.
>Etant donnéque c'est des simulations Monte-Carlo,
il aurait étémieux de faire 99 simulations mais
celàprendrait beaucoup de temps et il faudrait des machines très
performantes pour mettre celàen oeuvre.
54
55
Bibliographie
[1] Hurlin C. et Tokpavi S. (2008), Une Evaluation des
Procédures de Backtesting : Tout va pour le Mieux dans le Meilleur des
Mondes», Finance, vol 29.
[2] Méthodes de Monte-Carlo avec R, Livre de Christian
Robert et George Casella
[3] www.cairn.info/revue-economique-2007-3-page-599.htm
[4] Les méthodes du bootstrap dans les modèles de
régression, Emmanuel Flachaire
[5] Approximation de Cornish-Fisher, wikipedia
[6] www.ressources-actuarielles.net/
[7] Christophe Hurlin, Site Value-at-Risk
for(k in 1:N) {
ANNEXE
Code R
# load libraries library(PerformanceAnalytics) library(quantmod)
library(rugarch) library(car)
library(FinTS)
library(GeneralizedHyperbolic) library(sn)
library(evd)
library(fGarch) library(triangle) library(fBasics)
library(moments)
n<-10000 #nombre d'observation N<- 2 #nombre de
simulation
rt <- rnorm(n,0.01/252,0.05)
plot(rt, type = "l", col = "steelblue")
skewness(rt)
kurtosis(rt)
agostino.test(rt) anscombe.test(rt)
#Matrice de simulation Monte-Carlo
sortie<- data.frame(matrix(rep(0,4*N),N,4))
colnames(sortie) = c("Normal:Test Kupiec:uc.LRp","Normal:Test
Christoffersencc.LRp", "Modified:Test Kupiec:uc.LRp", "Modified:Test
Christoffersen:cc.LRp")
########################################################################################
#### Entrer la loi ####
########################################################################################
rt <-rskewlap(n, mu = 0.0000321, alpha = 1/23, beta = 1/22)
options(digits=4)
# convertir la simulation en time series (pour l'adapter au
backtesting) x.Date <- as.Date("2003-02-01") + c(1:10000)
ret <- zoo(rt, x.Date)
# backtesting unconditional VaR models # normal VaR, HS and
modified HS #
# set up estimation window and testing window
n.obs = length(ret)
w.e = 8000
w.t = n.obs - w.e
alpha = 0.95
# loop over testing sample, compute VaR and record hit rates
backTestVaR <- function(x, p = 0.95) {
normal.VaR = as.numeric(VaR(x, p=0.95, method="gaussian"))
modified.VaR = as.numeric(VaR(x, p=0.95, method="modified")) ans =
c(normal.VaR, modified.VaR)
names(ans) = c("Normal", "Modified")
return(ans)
}
# rolling 1-step ahead estimates of VaR
VaR.results = rollapply(as.zoo(ret), width=w.e,
FUN = backTestVaR, p=0.95, by.column = FALSE,
align = "right")
VaR.results = lag(VaR.results, k=-1)
chart.TimeSeries(merge(ret, VaR.results),
legend.loc="topright")
violations.mat = matrix(0, 2, 5)
rownames(violations.mat) = c("Normal", "Modified")
colnames(violations.mat) = c("En1", "n1", "1-alpha", "Percent",
"VR")
violations.mat[, "En1"] = (1-alpha)*w.t violations.mat[,
"1-alpha"] = 1 - alpha
# Show Normal VaR violations
normalVaR.violations = as.zoo(ret[index(VaR.results), ]) <
VaR.results[, "Normal"] violation.dates.normal =
index(normalVaR.violations[which(normalVaR.violations)])
# plot violations
plot(as.zoo(ret[index(VaR.results),]), col="blue",
ylab="Return",main="Violations normal VaR")
} sortie
abline(h=0)
lines(VaR.results[, "Normal"], col="black", lwd=2)
lines(as.zoo(ret[violation.dates.normal,]), type="p", pch=16,
col="red", lwd=2)
for(i in colnames(VaR.results)) {
VaR.violations = as.zoo(ret[index(VaR.results), ]) <
VaR.results[, i] violations.mat[i, "n1"] = sum(VaR.violations)
violations.mat[i, "Percent"] = sum(VaR.violations)/w.t
violations.mat[i, "VR"] = violations.mat[i,
"n1"]/violations.mat[i, "En1"]
}
violations.mat
VaR.test1 = VaRTest(1-alpha,
actual=coredata(ret[index(VaR.results),]),
VaR=coredata(VaR.results[,"Normal"])) names(VaR.test1)
# LR test for correct number of exceedances VaR.test1[1:7]
# LR tests for independence of exceedances VaR.test1[8:12]
# Show modified VaR violations
modifiedVaR.violations = as.zoo(ret[index(VaR.results), ]) <
VaR.results[, "Modified"] violation.dates.modified =
index(modifiedVaR.violations[which(modifiedVaR.violations)])
# plot violations
plot(as.zoo(ret[index(VaR.results),]), col="blue",
ylab="Return",main="Violations modified VaR")
abline(h=0)
lines(VaR.results[, "Modified"], col="black", lwd=2)
lines(as.zoo(ret[violation.dates.modified,]), type="p", pch=16,
col="red", lwd=2)
VaR.test2 = VaRTest(1-alpha,
actual=coredata(ret[index(VaR.results),]),
VaR=coredata(VaR.results[,"Modified"])) names(VaR.test2)
# LR test for correct number of exceedances for modified VaR
VaR.test2[1:7]
# LR tests for independence of exceedances for modified VaR
VaR.test2[8:12]
sortie[k,1]=VaR.test1[6] sortie[k,2]=VaR.test1[11]
sortie[k,3]=VaR.test2[6] sortie[k,4]=VaR.test2[11]
|