Valoarea la risc

Modele GARCH în R

Kris Boudt

Professor of finance and econometrics

Valoarea la risc

  • O măsură populară a riscului de pierdere: valoarea la risc de 5%. Cuantila de 5% a distribuției randamentelor reprezintă cel mai bun randament în cele mai nefavorabile 5% scenarii.
    Distribuția randamentelor zilnice pe an
Modele GARCH în R

Distribuția randamentelor zilnice pe an

Modele GARCH în R

Este necesară o abordare prospectivă

  • Cuantilele pe ferestre glisante sunt retrospective:
    • întrebare ex post: care a fost cuantila de 5% a randamentelor zilnice din ultimul an?
    • întrebare ex ante: care este cuantila de 5% a distribuției prezise a randamentului viitor?
  • Managementul riscului prospectiv utilizează cuantilele prezise din estimarea GARCH.
  • Cum? Metoda quantile() aplicată unui obiect ugarchroll.
Modele GARCH în R

Flux de lucru pentru cuantilele prezise de 5% din ugarchroll

ugarchspec(): Specificați modelul GARCH de utilizat

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")

ugarchroll(): Estimați modelul GARCH pe eșantioane glisante

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)

quantile(): Calculați cuantila prezisă

garchVaR <- quantile(garchroll, probs = 0.05)

Puteți alege o altă probabilitate de pierdere: 1% și 2,5% sunt de asemenea populare

Modele GARCH în R

Graficul valorii la risc pentru probabilitatea de pierdere de 5%

actual <- xts(as.data.frame(garchroll)$Realized, time(garchVaR))
VaRplot(alpha = 0.05, actual = actual, VaR = garchVaR)

Distribuția randamentelor zilnice pe an

Modele GARCH în R

Depășire și acoperire VaR

O depășire VaR apare când randamentul actual este mai mic decât valoarea la risc prezisă: $ R_t \ < {VaR}_t$.

Frecvența depășirilor VaR se numește acoperire VaR.

# Calculation of coverage for S&P 500 returns and 5% probability level
mean(actual < garchVaR)
0.05159143
Modele GARCH în R

Acoperire VaR și validarea modelului

  • Interpretarea acoperirii pentru VaR la probabilitatea de pierdere $\alpha$ (ex.: 5%):
    • Un model valid are o acoperire apropiată de nivelul de probabilitate $\alpha$ utilizat.
    • Dacă acoperire $\gg$ $\alpha$: prea multe depășiri; cuantila prezisă ar trebui să fie mai negativă. Riscul de pierdere a fost subestimat.
    • Dacă acoperire $\ll$ $\alpha$: prea puține depășiri; cuantila prezisă a fost prea negativă. Riscul de pierdere a fost supraestimat.
Modele GARCH în R

Factori care reduc performanța

distribution.model = "std" în loc de distribution.model = "sstd":

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "std")

Estimare glisantă și predicție VaR 5%:

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.05783233
Modele GARCH în R

Deteriorare suplimentară

variance.model = list(model = "sGARCH")

în loc de

variance.model = list(model = "gjrGARCH"):

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")

Estimare glisantă și predicție VaR 5%:

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.06074475
Modele GARCH în R

Deteriorare și mai accentuată

refit.every = 1000

în loc de

refit.every = 100:

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 1000)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.06199293
Modele GARCH în R

Riscul de pierdere implică analiza cuantilelor prezise.

Modele GARCH în R

Preparing Video For Download...