表計算ソフトウェアでシミュレーション(2)繰り返し試行する

モデル化とシミュレーション

こんにちは。

前回に引き続き、表計算ソフトウェアでシミュレーションをすることに関する内容を取り上げます。

シミュレーションを繰り返し実行することの必要性

不確定な事象を対象に、シミュレーションをして予測をするには、シミュレーションを繰り返す必要があります。

多くの試行を繰り返すことにより、シミュレーションで予測される確率や期待値は一定の値に収束します。

例えば、1回宝くじを買って、1億円当たったとしましょう。(そう滅多に当たらないと思いますが・・・)

このとき、宝くじの当選金の期待値は1億円といっていいのでしょうか?と聞くまでもなく、多くの人がそんなはずないだろ!とツッコミを入れると思います。

買った方がよいかどうかを検討するために、たまたま当たったけれど当たる確率はどの程度あるのかを考えるかもしれませんし、 長い目で見たときに、平均でいくらになるかを考えるかもしれません 。

詳しくは書きませんが、「大数の法則」とか「中央極限定理」とか「信頼区間」といったことを考えるかもしれません。

このようなとき、ある程度の試行回数が必要になるのでシミュレーションを何回もする必要があります。

単純なシミュレーションの繰り返し

表計算ソフトウェアの1行程度で1回のシミュレーションが行うことができるのであれば、行数を増やしてしまえば シミュレーションを繰り返すことができます。

例として、さいころを振ったときの出た目を表示するシミュレーションをしてみます。

さいころを振る回数を増やしたければ、単純に行数を増やせば大丈夫です。

Excelの場合、1048576行あることを使えば、かなりシミュレーションできます。

複雑なシミュレーションをする場合の工夫(再計算と循環参照の活用)

複雑なシミュレーションでは、ある程度の表をつくる必要があります。

そこでの工夫として、再計算を活用してみます。

もちろん、単純なシミュレーションにも適用できるので、さいころを繰り返し振るシミュレーションをしてみます。

循環参照を使うので、次の設定をしてください。

次のような数式を作ります。

循環参照を使うことで、再計算の度に値が変化します。

プログラム言語では、x = x + 1 のようなものにあたります。

実は、上の表は数式を入力したり修正したりする度に、他のセルは再計算されてしまうので、もう一工夫としてリセットできる機能を加えなければ使い物になりませんが、そこはあえて割愛します。

今回はこれでおしまいにします。それではまた。

Posted by 春日井 優