ポートフォリオをExcelで作りたい!

証券アナリストの試験も終わり、久々にブログ書く時間ができました。

さて今回は、株式投資をしている人が一度は憧れる(?)、Excelで作る株式ポートフォリオの作成手順について紹介したいと思います。

実際にポートフォリオ作ってみた

今回はトヨタ自動車、ソニー、みずほ銀行への分散投資を行った際のポートフォリオをgoogleスプレッドシートにて作成しました。

以下が分散時のポートフォリオとなります。

このようにグラフにすると、個別銘柄だけではリスク7.14%が最低だったのが、分散投資を行うことで6.83%までリスクを下げることが分かりやすくなりますね。

さて作る手順ですが、まずは2009年10月〜1015年10月の5年間の月次時系列データ(マネックス証券より抽出)を元に、月次リターンとリスク、銘柄間の相関係数を算出しました。

これらと合わせ、投資配分(10%単位)を変数として、ポートフォリオの月次リターン/リスクがどのように変化するのかを表したのが上記グラフとなります。

以下の方法を覚えれば、銘柄数を増やしてもポートフォリオのリターン/リスクを計ることができるので、リンクも参照しながら是非実践して作ってみましょう。

google docs

それでは作成手順です。

 

リターンを求める

Screenshot 2015-10-05 at 21.23.29

まずリターンの出し方です。

リターンは単純平均となるので、前月比騰落率の範囲を=averageで計算します。

図ではトヨタ自動車の過去5年間平均リターンを計算しています。(1.19%)

リスクを求める

Screenshot 2015-10-05 at 21.26.40

次にリスクです。

株式投資におけるリスクとは、リターンがどれだけ大きく上振れ、下振れするか?です。

この計算については株価がランダムウォークし、正規分布に従うことを前提にするのが一般的です。

そのためリスク計算については、標準偏差という値を求めます。

標準偏差(standard deviation)(σ:シグマ)は関数=stdevで範囲を指定すれば、一発で出てきます。

※具体的には、{(個々のリターン)-(平均リターン)}^2を合算し、平方根を取ることで求められます。

図では、トヨタ自動車の標準偏差を求めています。(7.14%)

相関係数を求める

Screenshot 2015-10-05 at 21.40.30

 

次に相関係数についてです。

相関係数(correlation)(ρ:ロー)とは、ある2つのデータがどの程度似通っているかを、数値で表したものです。

全く同じ傾向であれば1.0、完全に独立した動きであれば0、全く逆の傾向があれば-1.0という値を取ります。

Excelでは関数=correlで2つのデータ範囲を指定することで、求められます。

図では、トヨタ自動車とみずほ銀行の相関係数を求めています。(0.66)

ちなみに相関係数0.66となると、完全に一致はしないが、ある程度同じような値動きをする関係になります。

共分散を求める

Screenshot 2015-10-05 at 22.59.41

ここからがポートフォリオ作成のキモになります。

まず3銘柄(A,B,C)にWA,WB,WCの比率で分散投資した際の、ポートフォリオのリスク(σP)の計算式は下記となります。

{ { \sigma }^{ 2 } }_{ P }=w^{ 2 }_{ A }{ \sigma ^{ 2 } }_{ A }+w^{ 2 }_{ B }{ \sigma ^{ 2 } }_{ B }+w^{ 2 }_{ C }{ \sigma ^{ 2 } }_{ C }+2{ w }_{ A }{ w }_{ B }{ \rho }_{ AB }{ \sigma }_{ A }{ \sigma }_{ B }+2{ w }_{ A }{ w }_{ C }{ \rho }_{ AC }{ \sigma }_{ A }{ \sigma }_{ C }+2{ w }_{ B }{ w }_{ C }{ \rho }_{ BC }{ \sigma }_{ B }{ \sigma }_{ C }

特にこの式のρσσを、共分散(covariance)と言います。

Cov({ \sigma }_{ i },{ \sigma }_{ j })={ \rho }_{ ij }{ \sigma }_{ i }{ \sigma }_{ j }

この共分散を計算するステップとして、先ほど求めた標準偏差を対角行列の形に表します。
(図のオレンジ枠部)

この対角行列と、同じく先ほど求めた相関係数を、行列関数(=MMULT)を使い、共分散の式を作成します。

行列関数のため、トヨタ自動車の位置に共分散の計算式を入力すると、他の計算結果も同時に得られます。

ポートフォリオのリターンを求める

Screenshot 2015-10-05 at 23.38.32

ここまでくると、ポートフォリオのリターン/リスク分析は出来たも同然です。

まず、投資比率に応じたポートフォリオのリターンを求めます。

ポートフォリオ1(PF1)では、トヨタ自動車株100%、ソニー0%、みずほ銀行0%に投資をするとします。

株式リターンは単純平均となるので、

(トヨタリターン)✕(投資比率)+(ソニーリターン)✕(投資比率)+(みずほリターン)(投資比率)

=1.19%✕1+0.93%✕0+0.62✕0

=1.19%

が得られます。

これも先ほどと同様に、行列関数(=MMULT)を使い、各銘柄のリターンと投資比率を掛けあわせます。

(ここでは=transposeという、行と列を入れ替える関数を使い、行列計算を行えるようにしています。)

ポートフォリオのリスクを求める

Screenshot 2015-10-05 at 23.39.02

最後にポートフォリオのリスクを求めます。

すでに共分散については求めているため、投資比率を行列関数を使い掛け合わせることで、リスクを求めていきます。

先ほどの3銘柄分散時の計算式は2乗されている点に注意し、平方根を忘れずに計算しましょう。

平方根は=sqrtという関数で計算できます。

Screenshot 2015-10-06 at 20.45.42

 

今回は10%毎にそれぞれの投資比率を変更し、PF66まで作成しました。

これらを縦軸リターン、横軸リスクでプロットしたものが、最初に紹介したポートフォリオとなります。

行列関数を使えば投資対象が100銘柄でも楽に計算できるので、是非マスターしたいところですね。

kazuの金融講座でも教えているので、興味があればご連絡下さい!


2016年1月追記:銘柄レコメンドシステムについて相談受けました!

最後までご覧頂きありがとうございました

このブログを書いているのはこんな人です。良かったらプロフィールをご覧くださいね。

会社員投資ブログは【こちら】

最新情報もSNSで配信中!

ブログ以外でも、

やっています。フォロー頂けると、最新情報やブログ非公開の話、オフ会情報などを受け取れます。

KAZU
金融基礎知識を身に付けたい方向けに、kazuの金融講座もやってますよ。

ありがとうございました。

Donate with IndieSquare

この記事をみんなとシェアする・・Share on FacebookTweet about this on TwitterShare on Google+Email this to someone

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter でkazuをフォローしよう!

Excelでポートフォリオ理論を実証!株式3銘柄の時系列データで分散投資を考える

14 thoughts on “Excelでポートフォリオ理論を実証!株式3銘柄の時系列データで分散投資を考える

  • 2017年3月16日 at 12:59 AM
    Permalink

    初めてコメントさせていただきます。
    今iFree 8資産バランスとi Free NYダウ・インデックスのみの
    ポートフォリオで、この記事のようにリスクを計算しようと思ってる
    のですが、i Freeシリーズは半年前に登場したばっかで5年間の前月騰落率
    を出そうにもデータがないんですが
    この場合は、その商品がベンチマークにしているTOPIXだとか
    ダウ平均株価とかで5年間の前月騰落率を出して、そこから共分散を出したりして、ポートフォリオのリスクを算出したほうが良いのでしょうか。

    Reply
    • 2017年3月16日 at 7:08 AM
      Permalink

      くりやまさん

      iFreeはいずれもインデックスファンドなので、おっしゃる通りベンチマークとなっている原資産で計算した方が精度いいと思います。
      アクティブファンドはある程度投資期間が経ったものを、ポートフォリオに組み入れるべきですけどね。(ファンドマネジャーの手腕が影響大きくなるため)

      コメントありがとうございます!

      Reply
      • 2017年3月16日 at 12:40 PM
        Permalink

        御丁寧な回答ありがとうございます。参考になりました^ ^

  • 2017年3月21日 at 12:05 AM
    Permalink

    すみません。
    iFree8資産バランスのデータは
    e-maxis 8資産バランスで代用して良いと思いますか?
    iFreeの先進国債券でベンチマークにしてる指数の
    シティ世界国債インデックスのデータがなく(これだけではないですが)
    この指数をベンチマークにしてる指数で乖離率の低い商品を探しましたが
    どうも見つからずです^^;

    Reply
    • 2017年3月21日 at 12:31 AM
      Permalink

      MSCIをベースにしているe-maxisと、様々なベンチマークを使用しているiFreeでは微妙に投資対象が違うので、正確にやるなら代用はしない方がベターですね。。

      World Government Bond Index (WGBI)
      https://www.yieldbook.com/m/indices/single.shtml?ticker=WGBI
      など海外サイトから探せばありそうです。

      まあインデックス投資ですし、大まかな資産クラスが合っていれば誤差と範囲かもしれませんね。

      Reply
      • 2017年3月21日 at 11:11 PM
        Permalink

        ベンチマークが一つ違うだけで
        値動きもそんな違ってくるものですかね。
        iFreeとe-maxis

      • 2017年3月21日 at 11:50 PM
        Permalink

        大まかな資産クラスが合っていれば誤差の範囲だと思いますよ。

  • 2017年10月1日 at 3:30 AM
    Permalink

    はじめまして。機会係数曲線を調べていて、こちらを参考にさせていただきました。
    投資信託の配分比率を検討するため、上記計算式をExcelで使っています。
    私自身は、投資経験3ヶ月です。(国内株現物とネット証券のオープン投信のみ)

    質問です。間違っていたら申し訳ないのですが、
    相関係数ρに負の値が存在する場合、共分散が負になる部分があり、
    SQRTの引数が負になってエラーになることがあります。
    この場合、どうやってリスクのポートフォリオを求めればいいでしょうか。

    Reply
    • 2017年10月1日 at 9:17 PM
      Permalink

      ヌリイカさん

      こんばんは。
      kazuです。

      ポートフォリオのリスクを求める際の計算式が間違っていると思われます。
      相関係数も共分散も、負になる場合はありますが、そのままSQRTすることはありません。
      SQRTする対象はσ(シグマ)の二乗のため、必ず0以上となっています。
      MMULTの位置によっても計算式が変わるので、一度見直して見てください。

      コメントありがとうございます!

      Reply
      • 2017年10月1日 at 9:29 PM
        Permalink

        kazuさま
        レスありがとうございました。
        相関係数ρのとりうる値は、-1<ρ<-1ですよね。
        計算方法はρ×σ×σなので、ρ<0の場合は負になります。
        その負になる所が、たまたま投資比率が高い(90%以上)場合に、SQRTの中が負になるのです。
        極端な投資比率が原因なのでしょうか。こういうケースは考慮しない方がよいということかなと、思っています。
        すみませんがアドバイスをお願いいたします。

      • 2017年10月1日 at 10:19 PM
        Permalink

        ヌリイカさん

        返信ありがとうございます。
        下記計算式に、銘柄A、B、Cの標準偏差、それぞれの共分散、投資比率を代入してみてください。
        計算式
        負にならないと思います。(そもそもポートフォリオの標準偏差σを二乗しているので、必ず0以上になります。)

        また下記図は極端な例として、トヨタとみずほ銀行の相関係数が-1.0(完全な逆相関)だったときのポートフォリオを作ってみました。
        相関係数-1.0時のポートフォリオ
        分散図で一番左側にある点が最もリスクが低く、このときの投資比率はトヨタ:ソニー:みずほ銀行=50:0:50でした。
        このケースでも、σの二乗は負になることなく、もちろんSQRT後もエラーになりません。

        参考になれば幸いです。
        よろしくお願いします。

      • 2017年10月2日 at 9:35 AM
        Permalink

        kazuさま
        たびたびすみません。以下のケースを見てください。
        相関係数ρ12=-1, ρ13=0, ρ23=-1
        分散σ1=0.2, σ2=0.1, σ3=0.2
        →(ρijσiσj)={0.04, -0.02, 0.00,
        -0.02, 0.01, -0.02,
        0.00, -0.02, 0.04}
        ※ ρは1回、σは2回掛けるので、ρσσが負になることがあります。
        配分率 r1=20%, r2=60%, r3=20% とすると、SQRTの引数が負になります。

      • 2017年10月2日 at 10:30 PM
        Permalink

        ヌリイカさん

        面白い問題、ありがとうございます。
        ブログでも紹介している公式に当てはめると、
        相関係数:ρAB=-1、ρAC=0、ρBC=-1、(分散σ^2ではなく)標準偏差:σA=0.2、σB=0.1、σC=0.2、投資比率:WA=0.2、WB=0.6、WC=0.2となります。
        このポートフォリオのリスクは、
        ポートフォリオ公式
        =0.04*0.04+0.36*0.01+0.04*0.04+2*0.2*0.6*(-1)*0.2*0.1+2*0.2*0.2*0*0.2*0.2+2*0.6*0.2*(-1)*0.1*0.2
        =-0.0028
        となり、確かにマイナスになりました。
        例題

        ええっ!なんで!と一瞬戸惑ったのですが、相関係数があり得ない値になっています。
        AとBが完全な逆相関(ρAB=-1)、BとCが完全な逆相関(ρBC=-1)の関係のとき、AとCは完全な相関(ρAC=1)関係になります。
        =0.04*0.04+0.36*0.01+0.04*0.04+2*0.2*0.6*(-1)*0.2*0.1+2*0.2*0.2*1*0.2*0.2+2*0.6*0.2*(-1)*0.1*0.2
        =0.0004
        となり、正の値になります。
        これを平方根(SQRT)した0.02が、ポートフォリオのリスクになります。

  • 2017年10月2日 at 11:01 PM
    Permalink

    kazuさま
    コメントありがとうございました。ありえない係数だったのですね。
    実はこのページを見つけた初日に、自分で投信10銘柄のポートフォリオを
    組んでみて、配分率15通りのうち1つで、リスクが「#NUM!」となって
    びっくりしたため、今回の質問をさせていただきました。
    その時のデータは、保存していなかったので、似たようなケースができないか
    試行錯誤した結果見つけたのが、前回の私の数値です。
    10銘柄で何通りも試していたので、どこかの計算式が間違っていたのだろう
    と思います。
    今回、親切に説明してくださって、ありがとうございました。

    Reply

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*