PythonとFletで相関を持つアセットの資産推移のモンテカルロシミュレーションを行うGUIツールを開発して資産運用シミュレーションを行ってみたPythonとFletで相関を持つアセットの資産推移のモンテカルロシミュレーションを行うGUIツールを開発して資産運用シミュレーションを行ってみた2023/11/11当サイトではアフィリエイト広告を利用しています新NISAで盛り上がる資産運用について気になったので、金融に関しては素人ですがプログラムをかいてランダムシミュレーションを行って見ることにしました。このためにPythonのGUIフレームワークであるFletと、数値計算ライブラリであるnumpyを用いて、相関を持つアセットの資産推移モンテカルロシミュレーションを行うGUIツールを開発してみました。このツールを用いて、資産運用シミュレーションを行った場合に確率的にはどの程度の振れ幅が出るのかということを見てみました。新NISAで盛り上がる資産運用について軽く調べてみると、資産ごとにリスクとリターンが存在していて正規分布の標準偏差と平均にあてはめて色々と計算がされているようでした。実態は厳密に正規分布ではなくて、ベルカーブの裾野が正規分布より広いテールファットな分布らしいですが、計算を簡略化する場合には正規分布と仮定している場合も多いです。その分現実からはずれるわけですが。資産運用シミュレーションみたいなWebツールを色々見てみると、資産は1種類としてリターンのみを入力、あるいはリターンとリスクを入力して将来の資産をシミュレーションするというものが多くあります。資産は種類によってリスクもリターンも異なるものですし、さらに資産は独立しておらず相互に相関を持つものと考えられるのでシミュレーションとしては不十分です。そのため、実際に自分でプログラムを書いて相関を持つアセットを対象に資産推移シミュレーションが行えるツールを作成することにしました。注意事項あらかじめ注意事項として記載しておきますが、本記事・プログラムは資産運用を推奨するものではありません。筆者は金融には素人ですし、正規分布の仮定とランダムシミュレーションを行っている程度の簡単なプログラムなため、実装方法と結果に理論的な裏付けもありません。興味本位でプログラムを作成したに過ぎないので、このツールの結果を用いて資産運用を行ったことで損をしても何の保証もできません。これらの注意事項をご理解いただいたうえでお読みください。プログラムの概要numpyにおけるmultivariate_normal()関数を用いることで、相関を持つ正規分布のランダムシミュレーションが行えます。対称行列かつ半正定値行列であることが前提であることに注意で、これを満たさない場合は結果が保証されないようです。本GUIツールではこの関数を用いて、ランダムシミュレーションを何度も行うことで資産推移のシミュレーションを行っています。運用年数などが入力でき、運用年数が経過した際の利益率が確認できるものとなっています。利用したデータ年金の運用を行っているGPIFが公開した資料では、2020年4月1日に適用した基本ポートフォリオでは相関係数行列とリスク・リターンを以下のように設定されているとのことでした。1.00また、標準偏差と期待リターンは、以下のように設定されている。4.9上記のうち、実質リターンを使ってツールに入力してみます。設定条件としては以下の通りです。比率はすべて25%ずつとする年1回上記の比率となるように資産をリバランスする(税金未考慮)毎月の積立額は3万円として、20年間運用した結果をシミュレーションするランダムに10000回シミュレーションを行い、その結果を分析するシミュレーション結果シミュレーション結果は以下のようになります。-46.73結果の分析これらを見てみると、中央値としては20年で12.83%の利益で、単純に20年の幾何平均をとると0.61%となります。インフレ調整後の実質リターンなので、中央値でみれば50%以上の確率で資産は実質的には目減りせず微増するということでしょうか。逆に下位16%となると、20年で-18%と目減りすることになります。最悪のケースを引くと、下位1%では資産は46%減となるようですね。逆に上位1%の大当たりの結果を引いた場合は156%増加となるようです。GPIFの運用は債券も半分近くある安定した運用となっているのですが、それだけ安定をとっても損をする確率が多少あるのは意外でした。これがもっとリスクの高い株式一辺倒であればもっとマイナス方面に振り切る場合もありうると考えられます。GPIFには優秀な数学系・金融系の方が多くいらっしゃるので、当然ながらこの程度のシミュレーションよりもっと高度なシミュレーションを行っているはずです。本シミュレーション結果でマイナスリターンの確率が多少あるといっても、彼らの高度な運用であればもっとマイナスとなる確率は低いものと思われます。最近は情報強者なら資産運用はやっておくべき、株式一辺倒でOKみたいな話も多く聞くようになりましたが、期待値的にはプラスであってもそれなりの確率でにマイナス方向に逆ぶれする可能性もあると考えるべきでしょうかね。今回のシミュレーションはあくまで正規分布によるランダムシミュレーションで、現実世界におけるトレンドや社会情勢などは当然ながら反映されません。資産運用を行った場合は期待値がプラスであってもこれだけの上下の変動がありうると覚悟はしておいて、それが許容できる範囲で資産運用を行ったほうがよかろうかと思います。開発したツールソースコードおよびWindows用のexeファイルは以下のGithubリポジトリにアップロードしてあります。ツールの詳細な使い方は以下のReadmeを参照して下さい。円覚寺の宝物風入れ&舎利殿特別公開に合わせて鎌倉観光へ行ってきた2023/11/04kskしがない技術者です。自作PC、ガジェット、カメラ、スキー、インラインスケートなど広く浅い趣味の記録をしています。