金融危機を期間別に分解する
この動画では、グローバル金融危機の前・最中・後を含む、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_priceとCovarianceShrinkageオブジェクトを用いて、各サブ期間の効率的共分散行列を求めます。- 得られた 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)