Zmienność i wartości ekstremalne

Ilościowe zarządzanie ryzykiem w Pythonie

Jamsheed Shorish

Computational Economist

Założenia testu Chowa

  • Test Chowa: określenie istotności statystycznej możliwego przełamania strukturalnego
  • Wymaga: z góry określonego punktu przełamania strukturalnego
  • Wymaga: liniowej zależności (np. model czynnikowy) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

Wykres wzrostu populacji Chin z zaznaczonym punktem przełamania strukturalnego

Ilościowe zarządzanie ryzykiem w Pythonie

Oznaki przełamania strukturalnego

  • Wizualizacja trendu może nie wskazywać punktu przełamania
  • Alternatywa: analiza zmienności zamiast trendu
    • Zmiana strukturalna często wiąże się z większą niepewnością => zmienność
    • Umożliwia stosowanie bogatszych modeli (np. stochastycznej zmienności)

Wykres miesięcznej zmienności z możliwymi punktami przełamania strukturalnego

Ilościowe zarządzanie ryzykiem w Pythonie

Zmienność w oknie kroczącym

  • Okno kroczące: obliczanie zmienności w czasie i wykrywanie zmian
  • Przypomnij: 30-dniowe okno kroczące

    • Tworzenie okna kroczącego metodą ".rolling()"
    • Obliczanie zmienności w oknie kroczącym (usunięcie brakujących dat)
    • Obliczanie interesującej statystyki podsumowującej, np. .mean(), .min() itd.

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Ilościowe zarządzanie ryzykiem w Pythonie

Zmienność w oknie kroczącym

  • Wizualizacja wynikowej zmienności (wariancja lub odchylenie standardowe)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

Wykres średniej miesięcznej zmienności

Ilościowe zarządzanie ryzykiem w Pythonie

Zmienność w oknie kroczącym

  • Wizualizacja wynikowej zmienności (wariancja lub odchylenie standardowe)
  • Duże zmiany zmienności => możliwe punkty przełamania strukturalnego
  • Zastosowanie punktów przełamania w liniowym modelu zmienności
    • Wariant testu Chowa
  • Wskazówki do stosowania modeli ARCH, stochastycznej zmienności
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

Wykres procentowej zmiany miesięcznej zmienności

Ilościowe zarządzanie ryzykiem w Pythonie

Wartości ekstremalne

  • VaR, CVaR: maksymalna strata i oczekiwany niedobór przy danym poziomie ufności
  • Wizualizacja zmian maksymalnej straty przez wykres VaR?
    • Przydatne dla dużych zbiorów danych
    • Małe zbiory danych: zbyt mało informacji
  • Alternatywa: straty przekraczające określony próg
  • Przykład: $\text{VaR}_{95}$ to maksymalna strata w 95% przypadków
    • W 5% przypadków straty mogą przekroczyć $\text{VaR}_{95}$
  • Backtesting: wykorzystanie wcześniejszych danych ex-post do oceny szacunku ryzyka
    • Powszechnie stosowany w zarządzaniu ryzykiem przedsiębiorstwa
Ilościowe zarządzanie ryzykiem w Pythonie

Backtesting

  • Przyjmijmy $\text{VaR}_{95} = 0.03$
  • Straty przekraczające 3% są wartościami ekstremalnymi
  • Backtesting: ok. 5% (100% - 95%) poprzednich strat powinno przekroczyć 3%
    • Więcej niż 5%: rozkład z szerszymi („grubszymi") ogonami
    • Mniej niż 5%: rozkład z węższymi ogonami
  • CVaR w backtestingu: lepiej uwzględnia ogon rozkładu niż VaR

Wykres strat i progu VaR na poziomie 95%

Ilościowe zarządzanie ryzykiem w Pythonie

Ćwiczmy!

Ilościowe zarządzanie ryzykiem w Pythonie

Preparing Video For Download...