最小分散ポートフォリオと最大シャープ・レシオのポートフォリオ
これまでの演習では、目標リターンのグリッドを使って効率的フロンティアを計算しました。計算の出力は、2つのベクトル vpm(ポートフォリオ平均のベクトル)と vpsd(標準偏差=ボラティリティのベクトル)、および mweights と呼ばれるウェイトの行列でした。ここでは、これらの出力を使って、ボラティリティが最も小さいポートフォリオとシャープ・レシオが最も高いポートフォリオを特定し、そのウェイト配分をプロットします。
参考までに、シャープ・レシオは、無リスク金利を差し引いた超過リターンをポートフォリオのボラティリティで割って求めます。
この演習はコースの一部です
Rで学ぶポートフォリオ分析入門
演習の手順
- 標準偏差が最小になる行(
vpsd == min(vpsd))に対応するmweightsの行を取り出し、weights_minvarを作成します。 - 無リスク金利が「0.75%」のときのポートフォリオ・リターンのシャープ・レシオを計算し、
vsrと名付けます。 vsrの中でシャープ・レシオが最大となるポートフォリオに対応するmweightsの行を取り出し、weights_max_srを作成します。これは最初の指示と同様の方法で求められます。weights_minvarポートフォリオで重みが1%を超えるものの棒グラフを作成し、同様にweights_max_srポートフォリオでも重みが1%を超えるものの棒グラフを作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create weights_minvar as the portfolio with the least risk
weights_minvar <- mweights[___ == min(___), ]
# Calculate the Sharpe ratio
vsr <- (___ - ___) / vpsd
# Create weights_max_sr as the portfolio with the maximum Sharpe ratio
weights_max_sr <- mweights[___ == max(___)]
# Create bar plot of weights_minvar and weights_max_sr
par(mfrow = c(2, 1), mar = c(3, 2, 2, 1))
barplot(weights_minvar[weights_minvar > 0.01])
barplot(___[___ > 0.01])