目次へ

>> 1011

ポートフォリオ最適化3(ソルバー編)


エクセルのソルバーを使って、ポートフォリオ最適化を演習をしてみましょう。




演習用のエクセルファイルを見てください。例として、4銘柄のみの場合を考えます。グラクソ・スミスクライン (GSK)、アストラゼネカ (AZ)、ユニリーバ、ロールス・ロイスの4名柄です。


スプレッドシートにはまず、4銘柄それぞれの月次リターンの期待値が記されています。順番に0.64%,0.46%,1.19%,1.24%だと仮定されています。その次の行が、4銘柄の標準偏差ですが、これは参考までに表示されているもので、今日の演習では使いません。使うのはその下にある、4\times 4 の分散共分散行列です。



Step 1 範囲に名前をつける


まずは期待値のベクトルにm,分散共分散行列にVと名前をつけましょう。期待値のベクトルはC2:F2を選んで画面左上の「ネーム・バー」にmと打ち込みます。分散共分散行列はセルC4:F7を選んでネーム・バーにVと打ち込みます。


Step 2 「等比率ポートフォリオ」の入力


今回は4通りのポートフォリオを作りたいと思います。まずは4名柄に同額ずつ投資した「等比率ポートフォリオ」です。すなわち、各銘柄のウェイトは0.25となります。セルC10からF10に0.25と入力してください。


Step 3 ウェイトの合計を計算


セルG10でポートフォリオのウェイトの合計を求めてください。合計は1になるはずです。


Step 4 ポートフォリオの期待リターンを計算


合計の次は、ポートフォリオのリターンの期待値です。これはポートフォリオ・ウェイトのあるC10:F10と期待リターンベクトルmとの内積を取ります。使う関数は SUMPRODUCT関数です。


Step 5 ポートフォリオの分散


次にポートフォリオのリターンの分散を求めます。これは行列の積を求める関数MMULTを2つ入れ子にし、サンドイッチ形式 w' V w を計算します。2回目に出てくるウェイトは、TRANSPOSE関数を使って転置します。行列関数を使う場合は、確定の時に単なるEnterではなく、Ctrl + Shift + Enterを押すことを忘れないでください。


Step 6 ポートフォリオのリターンの標準偏差


最後に、分散の平方根を取って標準偏差を求めます。平方根を取ることは、0.5乗するのと同じです。等比率ポートフォリオのリターンの期待値は0.88%,標準偏差は4.23%になるはずです。


Step 7 ソルバー準備(式のコピー)


これからさらに3種類のポートフォリオを作ります。ウェイトの合計、リターンの期待値、分散、標準偏差が自動的に計算されるよう、セルG10:J10の式を下3行にコピペしてください。まだウェイトのところが空白なので、#VALUE! というエラーが出るはずです。


式を貼り付けたあとは、必ず貼り付けたセルをダブルクリックして、きちんと式がコピーされているか確認してください。式の中で参照されているセルがハイライトされるので、参照されているセルが間違っていないか確認してください。抜け出すときはEscキーを押します。


Step 8 「分散最小化」ポートフォリオ


まずは「分散最小化」ポートフォリオを求める演習です。データのタブの一番右側にあるアイコンをクリックして、ソルバーを開きます。目的セルは分散の式が入力してあるI11(アイ11)です。「最小化」を選択肢します。変化させるセルはC11:F11です。制約式は2つで、合計(セルG11)が1に等しいことと、期待値(セルH11)が最低でも等比率ポートフォリオのそれを下回らないことです。


Step 9 「期待値最大化」ポートフォリオ


その次は「期待値最大化」ポートフォリオを求める演習です。目的セルは期待値の式が入力してあるH12です。「最大化」を選択肢します。変化させるセルはC12:F12です。制約式は2つで、合計(セルG12)が1に等しいことと、分散(セルI12)が等比率ポートフォリオのそれを上回らないことです。


求められたポートフォリオをみると、AZ社の株式はまったく組み込まれていません。GSKが14.4%,ユニリーバが64.3%,ロールス・ロイスが21.1%含まれています。これによって、分散は等比率ポートフォリオと同じでありながら、期待リターンは1.12%まで上げることに成功しています。


Step 10 空売りを認める場合


さて、ここまでは空売りを認めてきませんでした。言い換えると、ポートフォリオ・ウェイトが負の値を取らないように設定してきました。「制約されていないセルを非負の値にする」というところにチェックが入っていたと思います。最後のポートフォリオでは、ここのチェックを外すことによって、空売りをみとめましょう。目的セルは期待値の式が入力してあるH13です。「最大化」を選択肢します。変化させるセルはC13:F13です。制約式は2つで、合計(セルG13)が1に等しいことと、分散(セルI13)が等比率ポートフォリオのそれを上回らないことです。


以下のようになった場合、まだ解答に達していません。ソルバーは解を探し始める出発点(「初期値」と言います)が解に近いほど、解に到達できる可能性があがるので、ここでもう一度ソルバーを実行してください。


空売りの制限がなくなった分、ポートフォリオが達成できる期待リターンが上がり、1.13%となりました。求められたポートフォリオをみると、AZ社の株式が9%ほど空売りされ、その分GSKが買い足されています。




以上で、初級・中級としての「平均分散分析」のレッスンは終わりです。やや上級ですが、そのうちラグランジュ未定乗数法を使って解析解を求めることもしてみたいと思います。