VaR och riskexponering
Tidigare beräknade du VaR och CVaR under antagandet att förlusterna var normalfördelade. Här beräknar du VaR med en annan vanlig fördelning: Students t-fördelning (eller T) från scipy.stats.
Du beräknar en array med 99% VaR-mått från T-fördelningen (med 30 - 1 = 29 frihetsgrader), med hjälp av 30-dagars rullande fönster från investeringsbankens portföljförluster losses.
Först beräknar du medelvärdet och standardavvikelsen för varje fönster och skapar en lista med rolling_parameters. Dessa används sedan för att beräkna arrayen med 99% VaR-mått.
Slutligen använder du denna array för att visualisera riskexponeringen för en portfölj med ett initialt värde på 100 000 dollar. Kom ihåg att riskexponering är förlustsannolikheten (1 %) multiplicerad med förluststorleken (den förlust som ges av 99% VaR).
Den här övningen är en del av kursen
Kvantitativ riskhantering i Python
Övningsinstruktioner
- Importera Students
t-fördelning frånscipy.stats. - Beräkna 30-dagarsfönstrets medelvärdesvektor
muoch standardavvikelsevektorsigmafrånlosses, och lägg in dem irolling_parameters. - Beräkna en Numpy-array med 99% VaR-mått
VaR_99med hjälp avt.ppf(), utifrån en lista med T-fördelningar som använder elementen irolling_parameters. - Beräkna och visualisera riskexponeringen kopplad till
VaR_99-arrayen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()