行列を用いたポートフォリオの期待リターンと分散の計算
\(w\) をポートフォリオ比率の列ベクトル、\(\mu\) を期待リターンの列ベクトル、\(\Sigma\) をリターンの共分散行列とします。このとき、ポートフォリオの期待リターンは $w'\mu$、分散は \(w'\Sigma w\) です。ポートフォリオのボラティリティは分散の平方根であることを思い出してください。
R では通常の * ではなく、%*% 関数を使って行列の積を計算します。加えて、t() 関数で行列の転置を行います。行列の転置は、行と列を入れ替える操作です。
比率、平均ベクトル、共分散行列は、それぞれ weights、vmeans、sigma としてワークスペースにあらかじめ読み込まれています。
この演習はコースの一部です
Rで学ぶポートフォリオ分析入門
演習の手順
as.matrix()を使って weights を行列に変換し、wという名前を付けてください。- 平均ベクトル(
vmeans)をas.matrix()で行列に変換し、muという名前を付けてください。 - ポートフォリオの月次平均リターンを計算してください。
t()はベクトルを転置する関数であることを思い出してください。 - ポートフォリオのボラティリティを計算してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a weight matrix w
# Create a matrix of returns
# Calculate portfolio mean monthly returns
# Calculate portfolio volatility
sqrt(t(___) %*% ___ %*% ___)