始める無料で始める

VaR とリスクエクスポージャー

前の演習では、損失が正規分布に従うと仮定して VaR と CVaR を計算しました。ここでは、scipy.stats に含まれるもう一つ一般的な損失分布である スチューデントの t 分布T)を用いて VaR を求めます。

投資銀行のポートフォリオ losses に対して、30 日のローリングウィンドウを用い、自由度 30 - 1 = 29 の T 分布から 99% VaR の測度の 配列 を計算します。

まず各ウィンドウの平均と標準偏差を求め、rolling_parameters のリストを作成します。これらを使って 99% VaR の 配列 を計算します。

その後、この 配列 を使って、初期価値が $100,000 のポートフォリオのリスクエクスポージャーをプロットします。リスクエクスポージャーは、損失の確率(ここでは 1%)に、損失額(99% VaR が与える損失)を掛けたものだと復習してください。

この演習はコースの一部です

Pythonで学ぶ定量的リスク管理

コースを見る

演習の手順

  • scipy.stats からスチューデントの 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()
コードを編集して実行