見出し画像

【新NISA】Excelで検討する新NISAの投資戦略:相関のある標準正規分布に従う乱数を発生させる

さて、前回のnoteで新NISAで投資をしようと思っている投資対象と、それらの期待リターンや相関を推定したので、これからはそれらの数字を用いて、今後の投資資産がどう推移するのかシミュレーションしていきたいと思います。今回のnoteでは、シミュレーションの使う2つの相関のある乱数系列(日経225用とNASDAQ用)をExcelで発生させていきたいと思います。


Excelで2つの標準正規分布に従う乱数(XとYとする)を発生

これはすでに以前のnote("Excelで検討する新NISAの投資戦略:まずは標準正規乱数を発生させる")でやった通りです。今回は前回の反省を活かし、今後の計算負担を削減するため発生させる乱数の数を減らしたいと思います。具体的には、まずは横軸の時系列ですが、年毎のシミュレーションで50年分を想定して50列、縦軸ですが、3,000回のモンテカルロ・シミュレーションの試行回数として3,000行、それらをつみたて枠/日経225用(標準正規乱数X)、成長枠/NASDAQ用(標準正規乱数Y)として2つのシート分発生させます。

これも前回一工夫したとおり、乱数を発生させる関数をそのままにしておくと、エンターキーを押すたびに乱数を再発生させてしまい、今後の計算に支障をきたすので、それぞれの乱数の行列(3,000 x 50の標準正規乱数XとY)を発生させたら、それをシミュレーション用のシートに値複写して利用することとします。

Xと相関のある乱数Zを発生させるには?

標準正規乱数XとYを使って、Xと相関のある(今回のケースでは0.7と仮定)標準正規分布に従う乱数Zを発生させたいと思います。

互いに相関のある標準正規分布に従う乱数を発生させるには、以下の式を用います。ここでは詳細な背景は説明しませんが、ウェブ上で検索するとそれに関するより詳細な情報が見れますので、ご興味がある方はそちらをご参照ください。このnoteは、「細かい理論の理解はさておき、とりあえずやってみよう、使ってみよう」という感じでやってますので、その辺はご了承ください。

2つの標準正規分布に従う乱数XとYを使って、Xとの間にσの相関のある標準正規分布に従う乱数Zを発生させるには:
Z=σX + √(1-σ^2) x Y

試しにいま話題のChatGPTにも聞いてみたところ、同じような回答を得ました(笑)

ChatGPTの回答

計算したExcelのイメージは以下の感じです。

Excelでの相関のある乱数の発生

検証

上記で発生させた相関のある乱数について、実際にXとZで相関がどれくらいあるのか、また各試行について相関のバラツキがどれくらいあるのか検証してみました。

まずは相関のある乱数として発生させたZの平均は0.002、標準偏差は0.999とほぼ平均0、標準偏差1ということで、Zも標準正規分布に従っているのではと思います(本来であればヒストグラムなどもみて確認する必要はありますが)。また乱数全体の相関は0.70と、所与とした相関係数になってます。

また各試行(Trial)ごとの相関ですが、上は0.88、下は0.33と適度にバラツキがあります。現実の世界でも、想定した相関通りに2つの時系列が動くわけではないので、シミュレーションする際に、相関にバラツキがあるのはOKかなと思ってます。

では今後、この乱数XとZを使って、あらためて新NISAでの投資シミュレーションをしていきたいと思います。

この記事が気に入ったらサポートをしてみませんか?