カスタムモーメント関数での最適化
ここでは、カスタムのモーメント関数を使って最適化を実行します。ポートフォリオのモーメントは、optimize.portfolio() 内でモーメント関数が評価されるときに設定されることを思い出してください。optimize.portfolio() の momentFUN 引数に関数名を渡すことで、カスタムのモーメント関数を利用できます。PortfolioAnalytics を使うと、モーメントの推定方法を変えて簡単に最適化を実行でき、さまざまな推定手法を比較し、最適化結果を分析して推定を洗練できることに注目してください。
この演習はコースの一部です
Rで学ぶ中級ポートフォリオ分析
演習の手順
この演習で使うポートフォリオ仕様オブジェクト port_spec と、カスタムモーメント関数 moments_robust() はすでに用意されています。
- カスタムのモーメント推定で最適化を実行し、結果を
opt_customという変数に代入します。 opt_customの出力を表示します。- サンプルモーメント推定で最適化を実行し、結果を
opt_sampleという変数に代入します。 opt_sampleの出力を表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Run the optimization with custom moment estimates
opt_custom <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "random", rp = rp, momentFUN = ___)
# Print the results of the optimization with custom moment estimates
# Run the optimization with sample moment estimates
opt_sample <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "random", rp = rp)
# Print the results of the optimization with sample moment estimates