Pythonによるポートフォリオ理論② 株式投資の資産管理をレクチャー!



リスク・リターンはわかったけど、ポートフォリオを組むと本当にリスクって減るの…?

この記事では、Pythonや投資初心者でもできるように、株式投資の資産管理のひとつの考え方であるポートフォリオ理論をレクチャーしていきます!

(記事にでてくるコードは配布しております。まとめにあるリンクからダウンロードください。)

本記事は、全4回に渡って掲載される「Pythonによるポートフォリオ理論 株式投資の資産管理をレクチャー! 」シリーズの第2回になります!

この記事を読むとわかること

  • Pythonで証券のリターンにおけるリスクの相互関係を理解できる
  • Pythonで証券のポートフォリオリターンとリスクを確認できる

今回は、前回の記事で求めた2つの証券をまた使い、様々な分析をしていきます。

Pythonによるポートフォリオ理論① 株式投資の資産管理をレクチャー!

まず2つの証券のリターンにおけるリスクの相互関係を理解していきます。

これにより、時期(好景気/不景気)によっての、証券1の投資収益率と証券2の投資収益率の関係性をみていきます。

その後、2つの証券でポートフォリオを組み、リターンとリスクがどのように変化していくのか学んでいきます!

この変化をみることにより、個別銘柄にひとつ投資するのではなくポートフォリオを組むことがリスクを減らす上で有効であることがわかります!

それでは一緒に学んでいきましょう!!

Pythonで2つの証券の関係性を理解しよう!

モニター

前回の記事で求めた、2つの証券の関係性を理解していきます。

2つの証券の関係性とは、時期ごとに「証券1/証券2が上昇/下落する」といった値動きの関係性です。

これを理解することで、リスクを押さえた投資戦略を考えるヒントを得ることが出来ます!

まずは、2つの証券のリターンにおけるリスクの相互関係を理解していきます。

今回は好景気/不景気により、証券1の投資収益率の証券2の投資収益率の関係性をみます。

時期によって、同じ方向に価格が変動するのかまったく別の動きをするのかみていき、ポートフォリオを組む準備をしていきます。

まずは、第2回のコードファイルを下記のURLより取得していき、Pythonでの学習をしていきます!

https://drive.google.com/drive/folders/17CWTbpB0GEGJ4hg7KPg2-r00Z2492xZw?usp=sharing

python ファイル

 

散布図で2つの証券のリスクの相互関係をみる

それでは、まず散布図で2つの証券のリスクの相互関係をみていきましょう!

散布図は視覚的に関係性をみる上で有効な手段です。

例えば、好景気のとき証券1がプラスに対して証券2がプラスの場合、なんとなく同じ値動きなのではと予想がつきます。

実際にやってみましょう!

第1回と同じ条件の証券1,2の表をもとに、散布図を作成します。

Pythonによるポートフォリオ理論① 株式投資の資産管理をレクチャー!

python コード

描画ライブラリを用いて、散布図を作成していきます。

python コード

今回は、X軸が証券1の収益率、Y軸が証券2の収益率としました。

これをみるに、証券1がプラスのとき証券2がマイナスになり、証券1がマイナスのとき証券2がプラスになっていることがわかります。

この結果から、証券1と証券2の間に反対の値動きをする関係性があるのではと予想されます。

今度は、これを数値的にみていきます。

数値化し2つの証券のリスクの相互関係をみる(1)

数値化し、2つの証券のリスクの相互関係をみていきましょう。

数値化する上で今回は、共分散をもとめていきます。

投資における共分散とは

証券1,証券2といった2つの資産の投資収益率が、どの傾向でどの程度平均(リターン)より離れているのかしているのか数値化したもの。

共分散の説明にある”どの傾向”とは、平均(リターン)との離れている傾向を指します。

イメージ、2つの証券の間の関係性の方向性(プラスやマイナス)です。

また、共分散の説明にある”どの程度”とは、平均(リターン)との離れている程度を指します。

言うなれば、2つの証券の間の関係性の強さ(大きさ)です。

例えが難しいのですが、数値をみると理解が進むので計算していきます!

計算方法は以下の通りです。

証券1と証券2の共分散=

好景気の確率×(証券1の好景気の予想投資収益率一証券1のリターン)×(証券2の好景気の予想投資収益率一証券2のリターン)

+不景気の確率×(証券1の不景気の予想投資収益率一証券1のリターン)×(証券2の不景気の予想投資収益率一証券2のリターン)

why
覚える必要はないので、とにかく離れいる傾向や程度を表すものであることだけおさえよう!

実際に共分散を求めます。

相関係数を求める上でリターンが必要なので、まずは第1回と同じくリターンを求め計算します。

python コード

結果をみるに、2つの証券には、マイナスの傾向(逆の動きをする関係性)にあり、それが32(数値)の程度である、ということがわかります。

今の段階では、2つの証券の関係性を傾向や程度といった点から分析できるということだけ理解するだけで大丈夫です!



数値化し2つの証券のリスクの相互関係をみる(2)

さきほど、共分散を求めていき関係性を数値化しました。

このとき、傾向や程度といった2つの情報を含んでいるので、慣れていないと使いにくい(かも)です。

これに対して、相関係数と呼ばれる、傾向だけに絞った関係性の確認方法もあるため、みていきましょう!

相関係数とは

共分散の情報をもとに傾向だけを示す指標

共分散の結果をもとに、傾向の部分のみに特化したのか相関係数です。

相関係数の計算式は以下の通りです。

証券1と証券2の相関係数

= 証券1と証券2の共分散/(証券1の標準偏差 * 証券2の標準偏差)

実際に相関係数を求めます。

相関係数を求める上で標準偏差が必要なため、まずは第1回と同じくリスク(標準偏差)を求めます。

python コード

その後、相関係数を求めていきます。

python コード

 

結果をみるに、2つの証券に強い負の相関関係(逆に値動きをする傾向が高い)にあることがわかります。



Pythonで2つの証券のポートフォリオリターンとリスクを確認しよう!

2つの証券の相互関係がわかった上で、ポートフォリオを組み、ポートフォリオを組んだ時のリターンやリスクを確認しましょう!

2つの証券のポートフォリオリターンを求める

今回は例として、

  • 証券1を50%
  • 証券2を50%

の投資比率で割り当ててポートフォリオを組みます、

資本100万円を証券1に50万円、証券2に50万円投資するイメージです。

ポートフォリオリターンの計算式は以下の通りです。

ポートフォリオリターン

= 証券1の投資比率 * 証券1のリターン + 証券2の投資比率 * 証券2のリターン

実際にポートフォリオリターンを求めます。

python コード

結果をみるに、ポートフォリオリターンは3.0%と出ました。

これは証券2のリターンである4.0%より低い数値ですが、その分リスクがかなり低くなっています。(第1回で求めた証券1,2のリスクより低い程度です)

次にリスクを確認し、どれだけリスクが低くなっているのか確認しましょう!

2つの証券のポートフォリオリスクを求める

ポートフォリオリターンがわかったところで、ポートフォリオリスクを求めていきます。

ポートフォリオリスクはやや特殊な方法で求めていきます。

まず、以下のような分散や共分散といったリスクを意味する表を作成します。

python コード

その後、証券1証券2それぞれに投資比率を掛けていきます。

python コード

この表にある、投資比率をかけた証券1の分散,投資比率をかけた証券2の分散,投資比率をかけた共分散の合計がポートフォリオリスクです!

ポートフォリオリスク

= 証券1の投資比率 * 証券1の投資比率 + 証券1の分散

+ 証券2の投資比率 * 証券2の投資比率 + 証券1の分散

+ 2 * 証券1の投資比率 * 証券2の投資比率 * 証券1,2の共分散                                                          (投資比率をかけた共分散は2つあるため)

実際にポートフォリオリスクを求めます。

python コード

結果をみるに、分散によって表されるリスクは 4.0(%^2) 、標準偏差によって表されるリスクは 2.0%となりました。

これは、第1回で求めたリスクよりかなり低いです。(下記の画像を参照)

python コード

このように、ポートフォリオを組むことでリスクを小さくすることができます!

2つの証券のポートフォリオリターンとリスクを描画する

さきほど、ポートフォリオを組むことでリスクを減らせることがわかりました。

しかし、まだどの程度に投資比率により、リターンやリスクがどのように変化するのか、といった具体的なところはしていません。

そうした、投資比率によるターンやリターンの変化を、描画させて確認しましょう!

下記のようなコードを書き、投資比率によるリスクとリターンの関係性を確認します。

python コード python コード python コード

このように、投資比率を変えることでリスクとリターンが変化していることがわかります。

こうした変化から、リスクとってリターンを大きくしたい、なるべくリスクを小さくして資産を守りたい、といった戦略が考えられますね!

2つの証券のポートフォリオリスクの最小を求める

最後に、2つの証券のポートフォリオリスクが最小になる投資比率を求めていきます。

リスクが最小になる、ということはリターン(投資収益率)が予想通りに一番なりやすくなる、ということです。

これを求めることで、資産をより安定に運用することができます。

実際にポートフォリオリスクの最小を求めていきましょう。

2つの証券のポートフォリオリスクの最小化は以下の計算式です。

証券1の投資比率 =

(証券2のリスク(分散)- 共分散)
/ (証券1のリスク(分散)+ 証券2のリスク(分散)- 2 * 共分散)

証券2の投資比率 = 1.0  – 証券1の投資比率

この求め方は、ラグランジュアンの未定乗数法と呼ばれる、大学の経済学で学ぶ計算方法を使用していますので、説明は割愛します

詳しく知りたい方は、PDFを作成しましたのでそちらからご覧ください。

https://drive.google.com/file/d/1YkqDSuz5LdM_fh-765NUY5BArnUkNTd4/view?usp=sharing

実際にポートフォリオリスクの最小を求めていきます!

python コード

結果をみるに、証券1に67%証券2に33%投資することでリスクを最小にすることができます!



まとめ

1回では、

  • Pythonで2つの証券のリターンにおけるリスクの相互関係を理解する
  • Pythonで2つの証券のポートフォリオリターンとリスクを確認する

といったことをレクチャーしました!

次回は、今回ポートフォリオを組むことでリスクが小さくなることが分かったことを踏まえ、3つ以上の証券の最もリスクの小さい組み合わせを求めていきます!

加えて、「シャープ・レシオ」を呼ばれるポートフォリオのパフォーマンスを調べる指標についても学んでいきます!

今回のシリーズを通し、最終的に自分なりの株式投資のポートフォリオを組んでいきましょう!

 

記事にでてくるコードは[email protected]にて配布をしております!
ラインのメッセージ欄に「python」とお送りいただければ、ダウンロードリンクを送付いたします!

 

コード配布はLINE@にて!!
  友だち追加

コメントを残す

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

CAPTCHA