VaR і ризик-експозиція
Раніше ви обчислювали VaR і CVaR для випадку, коли збитки мали нормальний розподіл. Тут ви знайдете VaR для іншого поширеного розподілу збитків — розподілу Стьюдента (або T), що міститься в scipy.stats.
Ви обчислите масив 99% VaR на основі розподілу T (з 30 − 1 = 29 ступенями вільності), використовуючи 30-денні ковзні вікна з портфельних losses інвестиційного банку.
Спочатку знайдете середнє та стандартне відхилення для кожного вікна, сформувавши список rolling_parameters. Використаєте їх, щоб обчислити масив показників 99% VaR.
Далі ви застосуєте цей масив, щоб побудувати ризик-експозицію для портфеля з початковою вартістю $100,000. Нагадаємо: ризик-експозиція — це ймовірність збитку (це 1%), помножена на величину збитку (це збиток за 99% VaR).
Ця вправа є частиною курсу
Кількісне управління ризиками в Python
Інструкції до вправи
- Імпортуйте
t-розподіл Стьюдента зscipy.stats. - Обчисліть вектори середнього за 30-денним вікном
muта стандартного відхиленняsigmaзlossesі збережіть їх уrolling_parameters. - Обчисліть Numpy-масив 99% VaR
VaR_99, використовуючиt.ppf(), зі списку T-розподілів на основі елементівrolling_parameters. - Обчисліть і візуалізуйте ризик-експозицію, пов'язану з масивом
VaR_99.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()