薫のメモ帳

私が学んだことをメモ帳がわりに

ランダムと連続に関するシミュレーション(簡易版)

 先日、日ごろから興味を持っていたことについて、モンテカルロ・シミュレーションを用いて調査した。

 そこで、今回行った調査結果についてメモに残しておく。

 もっとも、もう一度やり直すことになると考えているが。

 

1 背景

 私が「日ごろから興味を持っていたこと」とは次のような疑問である。

 

 半々で勝ち負けが決まる勝負を相当回数(例えば、100回、1000回)実施した場合、最大何連勝(何連敗)くらいを経験しうるのか

 

 このことを調べるために、モンテカルロ・シミュレーションを実施した(計算に拠らなかった理由は後述)。

 

 ただ、モンテカルロ・シミュレーションによって調べるためには、この疑問をモデル化する必要がある。

 そこで、上の問いを次のように書き換えた。

 

(以下、変数を使って具体化した問題)

 あるコインがある。

 このコインを使ってコイントスしたとき、表が出る確率がpとする

 このコインを使ってコイントスをn回連続して行った

 このn回のコイントスにおいて表が連続して出た回数の最大値をmとする

 mの平均値や偏差値はいくつになるか

 

 ・・・すごく風呂敷の広い問いとなってしまった。

 というのも、私はm(n,p)の一般式を求めたいわけではないからである。

 

 そこで、nとpに具体的な数値を代入する

 

(以下、変数を使わないで具体化した問題)

 コイントスしたとき、表と裏が半々の確率で出るコインがある(p=0.5)。

 このコインを使ってコイントスを100回連続して行った(n=100)。

 この100回のコイントスにおいて表が連続して出た回数の最大値をmとする

 mの平均値や偏差値はいくつになるか

 

 50%の確率で表が出たり裏が出たりする場合、表が出る回数の期待値はコイントスの回数の半分で表現できる。

 また、表が出る回数の標準偏差は(試行回数の平方根の半分)で表現できる。

 これらの結果は二項分布の公式を使えば容易に分かる。

 

 これに対して、私が知りたいのは「どれくらい連続するのか」である。

 というのも、50%の確率で表が出る(裏が出る)としても、表と裏が交互に出るわけではないからである。

 つまり、今回は「連続」といった観点に注目して調査を行うことにした

 

2 調査方法

 この点、「連続した回数の最大値」を計算で求めるのは容易ではない。

 何故なら、最初の具体的なモデルにおいてコイントスの回数(n)は100となっていて、相当大きな数になっているからである。

 そこで、今回はモンテカルロ・シミュレーションによって調査することにした。

 

 次に、モンテカルロ・シミュレーションのサンプル数は1000とした

 というのも、「感覚的にこの辺」ということが分かれば十分だからである。

 本来なら、1000では全然足らないだろうが(最低1万、できれば100万)。

 

 さらに、今回はエクセルで調査することにした

 というのも、エクセルのセルや関数を使えば楽に計算できるからである。

 なお、サンプル数が1000になったのは、エクセルを使っていることも理由の一つになっている。

 

 なお、将来的には、RubyかPythonによってプログラムを組んで調査する予定である

 サンプル数が1000では全然足らないような気がするからである。

 

3 調査結果(n=100、p=0.5の場合)

 では、今回の調査結果をば。

 

 コイントスの回数が100回、表が出る確率が50%の場合、1000回のモンテカルロ・シミュレーションによる平均値と標準偏差は次の通りとなった。

 

※ n=100、p=0.5において(試行回数1000)

表が出た回数 平均値 49.97回、標準偏差5.07回

最も連続して表が出た回数 平均値5.94回 標準偏差1.76回

 

 この点、n=100、p=0.5の場合、「表が出た回数」の平均値や標準偏差を2項分布の公式から計算すると、平均値が50回、標準偏差が5.0回となる。

 この計算結果と上のシミュレーション結果を比較すると、今回のシミュレーション結果は概ね理論値と重なり、シミュレーションとして大きな問題がないと言える。

 

 そのうえで、連続して表が出た回数の最大値を見ると、平均値は約5.9回、標準偏差は1.76回となった

 ここで、強引に「この結果と無限回数行った結果が等しい」と考えて考察する。

 この場合、半々の勝負を100回実施した場合、6連勝、6連敗といった事実は十分に経験しうると言える。

 逆に、有意水準5%という基準で考えた場合、10連勝以上、2連勝以下といったことは生じにくい(棄却される)と言うこともできそうである。

 

 この結果を見ると、「結構ばらつくんだなあ」と感じる次第である。

 

4 別のケースの場合

 せっかくなので、パラメーターをいじって遊んでみよう。

 

 まず、コイントスの回数を100回から1000回に増やしたらどうなるか。

 モンテカルロ・シミュレーションによる結果は次のとおりである。

 

※ n=1000、p=0.5において(試行回数1000回)

表が出た回数 平均値 500.66回、標準偏差16.17回

最も連続して表が出た回数 平均値9.33回 標準偏差1.8回

 

 n=1000、p=0.5の場合、「表が出た回数」の平均値や標準偏差を2項分布の公式から計算すると、平均値が500、標準偏差が15.8となる。

 この計算結果と上のシミュレーション結果を比較すると、今回のシミュレーション結果は概ね理論値と重なり(やや標準偏差が高くなっているが)、シミュレーションとして大きな問題がないと言える。

 

 そして、連続して表が出た回数の最大値の平均値は9.33回、標準偏差は1.8回となった

 同じように、強引に「この結果と無限回数行った結果と等しい」と仮定する。

 この場合、半々の勝負を1000回実施した場合、9連勝、9連敗といった事実は十分に経験しうることになる。

 逆に、有意水準5%の基準で考えた場合、14連勝以上、5連勝以下といったことは生じにくい(棄却される)、と言える。

 

 こちらの結果を見ても「結構ばらつくんだなあ」と感じる次第である。

 

 

 なお、nは100か1000とし、pを0.25、0.75に動かした場合の結果は次の通りであった。

 こちらは結果のみ掲載しておく。

 

※ n=100、p=0.25において

表が出た回数 平均値 25.05回、標準偏差4.25回

最も連続して表が出た回数 平均値3.06回 標準偏差0.97回

 

※ n=1000、p=0.25において

表が出た回数 平均値 250.1回、標準偏差13.91回

最も連続して表が出た回数 平均値4.72回 標準偏差0.96回

 

※ n=100、p=0.75において

表が出た回数 平均値 74.9回、標準偏差4.58回

最も連続して表が出た回数 平均値12.8回 標準偏差4.1回

 

※ n=1000、p=0.75において

表が出た回数 平均値 749.9回、標準偏差13.77回

最も連続して表が出た回数 平均値20.5回 標準偏差4.35回

 

 

 以上、ランダムを連続の関係を調べてみた。

 意外に連勝(連敗)はばらつくんだなあ、と感じた次第である。

 ランダムが絡む場合、連勝、連敗といった結果に心理的に振り回されないことが重要である、と言えるだろうか。

 

 では、今回はこの辺で。