VaR과 리스크 익스포저
이전에 손실이 정규분포를 따른다고 가정하고 VaR과 CVaR을 계산했어요. 이번에는 scipy.stats에 포함된 또 다른 일반적인 손실 분포인 Student's t-분포(또는 T)를 사용해 VaR을 구해볼게요.
투자은행 포트폴리오 losses에서 30일 롤링 윈도우를 사용해, 자유도 30 - 1 = 29인 T 분포로부터 99% VaR 지표의 배열을 계산해요.
먼저 각 윈도우의 평균과 표준편차를 구해 rolling_parameters 리스트를 만들어요. 이를 사용해 99% VaR 지표의 배열을 계산해요.
그다음 이 배열을 사용해 초기 가치가 $100,000인 포트폴리오의 리스크 익스포저를 시각화해요. 리스크 익스포저는 손실 확률(여기서는 1%)에 손실 금액(99% VaR이 주는 손실)을 곱한 값임을 기억하세요.
이 연습은 강의의 일부입니다
Python을 활용한 정량적 리스크 관리
연습 안내
scipy.stats에서 Student의t-분포를 임포트하세요.losses로부터 30일 윈도우 평균mu와 표준편차sigma벡터를 계산하고rolling_parameters에 담으세요.rolling_parameters의 요소로 만든 T 분포 리스트에서t.ppf()를 사용해 99% VaR 지표의 Numpy 배열VaR_99를 계산하세요.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()