効率的フロンティアと金融危機
これまでに、投資銀行ポートフォリオの共分散行列を金融危機の前・最中・後で比較しました。ここでは、効率的フロンティアの変化を可視化し、どのリターン水準でも危機が基礎的なリスク水準を大きく押し上げたことを確認します。
PyPortfolioOpt の pypfopt ライブラリにある Critical Line Algorithm(CLA)オブジェクトを使って、危機期の効率的フロンティアを導出・可視化し、既に表示されている危機の「前」と「後」の効率的フロンティアの散布図に重ねて追加します。
期待リターン returns_during と効率的共分散行列 ecov_during が用意されています。pypfopt の CLA オブジェクトも利用できます。(DataCamp のプロットは別ウィンドウに拡大でき、可読性が上がります。)
この演習はコースの一部です
Pythonで学ぶ定量的リスク管理
演習の手順
- 期待リターンと効率的共分散行列を用いて、クリティカル・ライン・アルゴリズム(
CLA)オブジェクトefficient_portfolio_duringを作成します。 efficient_portfolio_duringの最小分散ポートフォリオを出力します。efficient_portfolio_duringの効率的フロンティアを計算します。- 危機の前後の効率的フロンティアを示す既存の散布図に、今回の効率的フロンティアの結果を追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize the Crtical Line Algorithm object
efficient_portfolio_during = CLA(____, ecov_during)
# Find the minimum volatility portfolio weights and display them
print(efficient_portfolio_during.____)
# Compute the efficient frontier
(ret, vol, weights) = efficient_portfolio_during.____
# Add the frontier to the plot showing the 'before' and 'after' frontiers
plt.scatter(vol, ____, s = 4, c = 'g', marker = '.', label = 'During')
plt.legend()
plt.show()