Volatilita a extrémní hodnoty

Kvantitativní řízení rizik v Pythonu

Jamsheed Shorish

Computational Economist

Předpoklady Chowova testu

  • Chowův test: identifikace statistické významnosti možného strukturálního zlomu
  • Vyžaduje: předem stanovenou polohu strukturálního zlomu
  • Vyžaduje: lineární vztah (např. faktorový model) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

Obrázek růstu populace Číny s vyznačeným bodem strukturálního zlomu

Kvantitativní řízení rizik v Pythonu

Indikátory strukturálního zlomu

  • Vizualizace trendu nemusí odhalit bod zlomu
  • Alternativa: zkoumání volatility namísto trendu
    • Strukturální změna bývá provázena vyšší nejistotou => volatilitou
    • Umožňuje uvažovat o složitějších modelech (např. modely stochastické volatility)

Obrázek měsíční volatility s možnými body strukturálního zlomu

Kvantitativní řízení rizik v Pythonu

Volatilita klouzavého okna

  • Klouzavé okno: výpočet volatility v čase a detekce změn
  • Připomenutí: 30denní klouzavé okno

    • Vytvoření klouzavého okna metodou ".rolling()"
    • Výpočet volatility klouzavého okna (vynechání nedostupných dat)
    • Výpočet požadované souhrnné statistiky, např. .mean(), .min() atd.

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Kvantitativní řízení rizik v Pythonu

Volatilita klouzavého okna

  • Vizualizace výsledné volatility (rozptyl nebo směrodatná odchylka)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

Obrázek průměrné měsíční volatility

Kvantitativní řízení rizik v Pythonu

Volatilita klouzavého okna

  • Vizualizace výsledné volatility (rozptyl nebo směrodatná odchylka)
  • Velké změny volatility => možné body strukturálního zlomu
  • Využití navržených bodů zlomu v lineárním modelu volatility
    • Varianta Chowova testu
  • Vodítko pro aplikaci modelů, např. ARCH, stochastické volatility
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

Obrázek procentuální změny měsíční volatility

Kvantitativní řízení rizik v Pythonu

Extrémní hodnoty

  • VaR, CVaR: maximální ztráta, očekávaný deficit na dané hladině spolehlivosti
  • Vizualizace změn maximální ztráty pomocí VaR?
    • Užitečné pro velké datové sady
    • Malé datové sady: nedostatek informací
  • Alternativa: nalezení ztrát překračujících určitou prahovou hodnotu
  • Příklad: $\text{VaR}_{95}$ je maximální ztráta v 95 % případů
    • V 5 % případů lze očekávat ztráty přesahující $\text{VaR}_{95}$
  • Backtesting: využití historických dat ex-post k ověření odhadu rizika
    • Hojně využíváno v podnikovém řízení rizik
Kvantitativní řízení rizik v Pythonu

Backtesting

  • Předpokládejme $\text{VaR}_{95} = 0.03$
  • Ztráty přesahující 3 % jsou pak extrémními hodnotami
  • Backtesting: přibližně 5 % (100 % - 95 %) minulých ztrát by mělo přesáhnout 3 %
    • Více než 5 %: rozdělení se širšími („tučnějšími") chvosty
    • Méně než 5 %: rozdělení s užšími chvosty
  • CVaR pro backtesting: lépe zachycuje chvost než VaR

Obrázek ztrát a prahové hodnoty 95% VaR

Kvantitativní řízení rizik v Pythonu

Let's practice!

Kvantitativní řízení rizik v Pythonu

Preparing Video For Download...