VaR i ekspozycja na ryzyko
Wcześniej obliczano VaR i CVaR przy założeniu normalnego rozkładu strat. Teraz wyznaczysz VaR przy użyciu innego popularnego rozkładu strat – rozkładu t-Studenta (w skrócie T) dostępnego w scipy.stats.
Obliczysz tablicę miar 99% VaR z rozkładu T (z 30 - 1 = 29 stopniami swobody), korzystając z 30-dniowych okien kroczących wyznaczonych na podstawie losses z portfela banku inwestycyjnego.
Na początku wyznaczysz średnią i odchylenie standardowe dla każdego okna, tworząc listę rolling_parameters. Następnie użyjesz ich do obliczenia tablicy miar 99% VaR.
Na koniec wykorzystasz tę tablicę do zwizualizowania ekspozycji na ryzyko dla portfela o początkowej wartości 100 000 USD. Przypomnij sobie, że ekspozycja na ryzyko to prawdopodobieństwo straty (tu: 1%) pomnożone przez kwotę straty (tu: wartość wynikająca z 99% VaR).
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj rozkład t-Studenta
tz bibliotekiscipy.stats. - Oblicz wektory 30-dniowej średniej kroczącej
mui odchylenia standardowegosigmana podstawielosses, a następnie umieść je wrolling_parameters. - Oblicz tablicę Numpy miar 99% VaR
VaR_99przy użyciut.ppf(), na podstawie listy rozkładów T zbudowanej z elementówrolling_parameters. - Oblicz i zwizualizuj ekspozycję na ryzyko powiązaną z tablicą
VaR_99.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the Student's t-distribution
from scipy.____ import t
# Create rolling window parameter list
mu = losses.rolling(30).____
sigma = losses.rolling(30).____
rolling_parameters = [(29, mu[i], s) for i,s in enumerate(sigma)]
# Compute the 99% VaR array using the rolling window parameters
VaR_99 = np.array( [ t.ppf(____, *params)
for params in ____ ] )
# Plot the minimum risk exposure over the 2005-2010 time period
plt.plot(losses.index, 0.01 * ____ * 100000)
plt.show()