最大シャープ比 vs. 最小ボラティリティ

Pythonで学ぶポートフォリオ分析入門

Charlotte Werger

Data Scientist

効率的フロンティアを覚えていますか?

$$

  • 効率的フロンティア:最適なリスク・リターンの組合せの全ポートフォリオ
  • 最大シャープ比ポートフォリオ:EF上でシャープ比が最大
  • 最小ボラティリティ・ポートフォリオ:EF上でリスクが最小

$$ 効率的フロンティアのグラフ

Pythonで学ぶポートフォリオ分析入門

PyPortfolioOpt の最適化を調整する

PyPortfolioOpt のオプションの概念図

Pythonで学ぶポートフォリオ分析入門

最大シャープ比ポートフォリオ

最大シャープ比ポートフォリオ:EF上でのシャープ比が最大

from pypfopt.efficient_frontier import EfficientFrontier
# 期待リターン mu と共分散 S で効率的フロンティアを計算
ef = EfficientFrontier(mu, Sigma)
raw_weights = ef.max_sharpe()
# 解釈しやすい比率を取得 
cleaned_weights = ef.clean_weights()
{'GOOG': 0.01269,'AAPL': 0.09202,'FB': 0.19856,
 'BABA': 0.09642,'AMZN': 0.07158,'GE': 0.02456,...}
Pythonで学ぶポートフォリオ分析入門

最大シャープ比ポートフォリオ

# パフォーマンス指標を取得
ef.portfolio_performance(verbose=True)
期待年率リターン: 33.0%
年率ボラティリティ: 21.7%
シャープ比: 1.43
Pythonで学ぶポートフォリオ分析入門

最小ボラティリティ・ポートフォリオ

最小ボラティリティ・ポートフォリオ:EF上でのリスクが最小

# 期待リターン mu と共分散 S で効率的フロンティアを計算
ef = EfficientFrontier(mu, Sigma)
raw_weights = ef.min_volatility()
# 解釈しやすい比率とパフォーマンスを取得
cleaned_weights = ef.clean_weights()
{'GOOG': 0.05664, 'AAPL': 0.087, 'FB': 0.1591,
'BABA': 0.09784, 'AMZN': 0.06986, 'GE': 0.0123,...}
Pythonで学ぶポートフォリオ分析入門

最小ボラティリティ・ポートフォリオ

ef.portfolio_performance(verbose=True)
期待年率リターン: 17.4%
年率ボラティリティ: 13.2%
シャープ比: 1.28
Pythonで学ぶポートフォリオ分析入門

効率的フロンティアを再確認しましょう

最小ボラティリティと最大シャープ比のポートフォリオを示す効率的フロンティアのグラフ

Pythonで学ぶポートフォリオ分析入門

最大シャープ比 vs. 最小ボラティリティ

最小ボラティリティと最大シャープ比のポートフォリオを示す効率的フロンティアのグラフ

Pythonで学ぶポートフォリオ分析入門

¡Vamos a practicar!

Pythonで学ぶポートフォリオ分析入門

Preparing Video For Download...