1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rで学ぶ中級ポートフォリオ分析

Connected

演習

目的を追加する

add.objective() 関数を使って、ポートフォリオオブジェクトに目的(objective)を追加します。追加された各目的は独立したオブジェクトで、ポートフォリオ仕様オブジェクトの objectives スロットに保存されます。これにより目的はモジュール化され、追加・削除・修正が容易になります。name 引数には有効な R 関数を指定する必要があります。PerformanceAnalytics パッケージには複数の関数が用意されていますが、ユーザー定義関数を目的関数として使うこともできます。add.objective() に必須の引数は、目的を追加する対象の portfolio、目的の type、目的の name、そして ... で目的タイプのコンストラクタへ渡す名前付き引数です。目的関数に渡す引数は、arguments に名前付きリストで指定します。

基本的な目的タイプ:

  • return: このタイプは目的を最大化します。
  • risk: このタイプは目的を最小化します。
  • risk_budget: このタイプは、リスクの集中を最小化するか、許容されるリスク寄与度の最小・最大割合を超える寄与にペナルティを与えます。

上記の目的タイプに加えて、PortfolioAnalytics では二次効用やウエイト集中の目的タイプもサポートしています。その他の制約タイプに関心がある場合は、各制約コンストラクタのヘルプファイルを参照してください。ヘルプには制約タイプの説明とサンプルコードが含まれています。

指示

100 XP
  • 先の演習で作成したポートフォリオ仕様オブジェクト port_spec に、リターン目的を追加します。
  • port_spec に、ポートフォリオの標準偏差を最小化するリスク目的を追加します。
  • port_spec に、リスクをコンポーネント標準偏差で定義するリスク・バジェット目的を追加します。割合リスクの最小値を 5%、最大値を 10% に設定します。
  • port_spec オブジェクトを出力(print)します。