始める無料で始める

金融危機を期間別に分解する

この動画では、グローバル金融危機の前・最中・後を含む、2005〜2010年 全期間にわたる投資銀行ポートフォリオの効率的フロンティアを見ました。

ここではこの期間を 3 つのサブ期間、すなわち epochs に分けます:2005〜2006年before)、2007〜2008年during)、2009〜2010年after)。各期間について効率的共分散行列を計算し、相互に比較します。

2005〜2010年のポートフォリオの prices はワークスペースに用意されています。また、PyPortfolioOpt の CovarianceShrinkage オブジェクトも利用できます。

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

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

コースを見る

演習の手順

  • epochs という辞書を作成します。キーはサブ期間、値は 'start' と 'end' の日付を持つ辞書にします。
  • epochs の各サブ期間キーごとに、その期間の prices の範囲を sub_price に代入します。
  • sub_priceCovarianceShrinkage オブジェクトを用いて、各サブ期間の効率的共分散行列を求めます。
  • 得られた 3 つのサブ期間すべての効率的共分散行列を表示して比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create a dictionary of time periods (or 'epochs')
epochs = { 'before' : {'start': '1-1-2005', 'end': '31-12-2006'},
           'during' : {____: '1-1-2007', 'end': '31-12-2008'},
           'after'  : {'start': '1-1-2009', ____: '31-12-2010'}
         }

# Compute the efficient covariance for each epoch
e_cov = {}
for x in epochs.keys():
  sub_price = prices.loc[epochs[x][____]:____[x]['end']]
  e_cov[x] = CovarianceShrinkage(____).ledoit_wolf()

# Display the efficient covariance matrices for all epochs
print("Efficient Covariance Matrices\n", e_cov)
コードを編集して実行