ポートフォリオ最適化コード『Analytics and Optimize Portfolio』のスコアの算出方法について

3月 13, 2021

下の記事で,効率的フロンティアから,「自分のポートフォリオがどれだけ最適か」を計算し,また「最適に近づくためのポートフォリオを提案する」コードを公開しました.

本記事は,こちら記事で公開したコードの一部を説明する記事となっていますので,こちらの記事を読んでコードを実行してから本記事をご覧ください.

コードは自分の投資ポートフォリオを分析するのに役に立つと思うので,ぜひ使ってみてくださいね.

さて,このコードでは自分のポートフォリオのスコア(成績)が100点満点で計算されます.

このスコアの算出方法を気になる方もいるかと思うので,本記事で解説します.

スコアの算出方法

概要

スコアは,

(1)自分のポートフォリオのリスク(ボラティリティ)線上で,自分のポートフォリオの期待リターンはどれくらい高いか

(2)自分のポートフォリオの期待リターン線上で,自分のポートフォリオのリスク(ボラティリティ)はどれくらい低いか

(3)効率的フロンティアの中で,自分のポートフォリオのシャープレシオはどれくらい高いか

から決めています.

全体のスコアは,0.4×(1)+0.4×(2)+0.2×(3)として,重み付け平均で算出しています.

リスクと期待リターンによるスコア

まず,(1)と(2)から説明します.

スコアを決めるための値は,以下の図のようになっています.

V(水色)・・・自分のポートフォリオの期待リターンにおける,考えられるボラティリティの範囲

R(オレンジ)・・・自分のポートフォリオのボラティリティにおける,考えられる期待リターンの範囲

v(青色)・・・自分のポートフォリオの期待リターンにおける最も大きいボラティリティと自分のポートフォリオのボラティリティとの差

r(赤色)・・・自分のポートフォリオのボラティリティにおける最も小さい期待リターンと自分のポートフォリオの期待リターンとの差

図は効率的フロンティアを表しており,横軸はボラティリティ(リスク),縦軸は期待リターン,各点は各ポートフォリオです.黄色の四角は自分のポートフォリオです.

スコアは,それぞれ

(ボラティリティによるスコア)= v ÷ V ×100

(期待リターンによるスコア)= r ÷ R ×100

の100点満点で求めます.

例えば,自分のポートフォリオのボラティリティが小さくなり(左に行き),vが大きくなると,ボラティリティによるスコアは大きくなります.また,自分のポートフォリオの期待リターンが大きくなり(上に行き),rが大きくなると,期待リターンによるスコアは大きくなります.

どちらも,できるだけ左上方向の隅に行くことで100点となります.

シャープレシオについてのスコア

シャープレシオは,ここでは(期待リターン)÷(ボラティリティ)です.つまり,シャープレシオは大きいほど良いです.

先ほどの図で,各点の色はシャープレシオの大きさを表しています.緑であるほど大きく,赤であるほど小さいです.

Smy ・・・自分のポートフォリオのシャープレシオ

Smin ・・・効率的フロンティアの中で最も小さいシャープレシオ

Smax ・・・効率的フロンティアの中で最も大きいシャープレシオ

シャープレシオによるスコアは,

(シャープレシオによるスコア)=(Smy-Smin)÷(Smax-Smin)×100

の100点満点で計算します.

全体のスコア

全体のスコアは,

(スコア)

=0.4×(ボラティリティによるスコア)+0.4×(期待リターンによるスコア)+(0.2×シャープレシオによるスコア)

=0.4×v ÷ V ×100+0.4×r ÷ R ×100+0.2×(Smy-Smin)÷(Smax-Smin)×100

で計算します.

算出方法の理由

以上のような算出方法にした理由は,主に以下の2つです.

・「シャープレシオが最大もしくはボラティリティが最小になれば良いポートフォリオ」とは限らない

・ブーメラン型効率的フロンティアでのバグ回避

解説

「シャープレシオが最大もしくはボラティリティが最小になれば良いポートフォリオ」とは限らない

これは,自分のポートフォリオの期待リターン,ボラティリティを基準としてスコア(1),(2)を算出した理由です.

先ほどの効率的フロンティアの図において,青色の四角はすべてのポートフォリオの中でボラティリティが最小になる点,赤色の四角はすべてのポートフォリオの中でシャープレシオが最大になる点です.

よくポートフォリオ最適化として使われる点は,シャープレシオが最大になる点です.

しかしながら,図からも分かるように,シャープレシオが最大になる点は同時にボラティリティもそれなりに高くなります.

シャープレシオはほどほどで良いから,ボラティリティを抑えたいという考え方もあると思います.

ボラティリティが最小になる点に関しても同様で,その分,期待リターンが小さくなってしまいます.

したがって,今回は自分のポートフォリオを基準として,同じリスクを取るなら,できるだけリターンを大きくしたい』と,『同じリターンなら,できるだけリスクを小さくしたい』という考え方で,スコアを算出しました.

ブーメラン型効率的フロンティアでのバグ回避

以下のようなブーメラン型の効率的フロンティアにおいて,黄色のポートフォリオよりも黒色のポートフォリオの方が良さそうと判断するのが一般的だと思います.左上方向の縁に近いからです.

しかしながら,スコアはオレンジの長さに対する赤の長さで計算しますので,黄色のポートフォリオのスコアの方が黒のポートフォリオのスコアよりも良くなってしまいます.

効率的フロンティアの形は一般的に複雑なので,このようなバグが起こってしまいます.特に,図の黒いポートフォリオの位置のような,細いところでスコアが低くなってしまいます.

(1),(2)の算出方法は良い方法だと思いますが,これらだけだとこのバグを受けたスコアが算出される可能性があります.

そこで,他のスコア要素として,「全ポートフォリオのうち,どれくらいのシャープレシオを獲得しているか」を組み込みました(3).

一般的に効率的フロンティアの細い部分で点数が低くなるバグが起きる可能性が高くなりますが,細い部分ではシャープレシオが高いことが多いので,この要素で補っているという感じです.

ただし,この要素の影響で,100点のスコアを取るにはシャープレシオが最大の位置(最初の図の赤い四角)に自分のポートフォリオを位置づける必要があります.

スコアの算出方法には色々あるとは思いますが,とりあえずこれでやっています.