差ではなく比で考えよう〜「数学ガール 確率の冒険」研究問題1-2
数学ガール
結城浩先生の「数学ガールの秘密ノート 確率の冒険」を読んで、巻末の「研究問題」についてあれこれ考えています。
私が別の本で勉強したことや、私の本に書こうと思っていたことが、もうほとんどそのまま形になっているという、優れた問題です。問題を引用しつつ、私の回答を書いていきます。(なるほど、これが正解か!などと思わないでくださいね! あくまでも一つの解答案です)
研究問題1-2
研究問題1-2は、こんな問題でした。
本文で、次のような会話が交わされていました。たとえばコイン投げをしていて、最初に、たまたま、表が10回連続で出たとする。そうしたら、そろそろ、0が出やすくなってくれないと、バランスが取れないのではないか(つまり表の出た相対度数が、いつまでたっても0.5に近づかないのではないか)という疑問を、ユーリが話しています。それに対して、「とてつもなく大きな数がバランスをとってくれる」から大丈夫だと、「僕」が返しています。
最初に表が10回連続で出たら、しばらくの間は表が出た相対度数は0.5よりずっと大きな値になるでしょう。しかし、そのままコイン投げを続けていけば、相変わらず表が出た回数が10回多いままだとしても、相対度数は0.5に近づいていく、「ユーリ」の言葉を借りれば「大きな数で薄められちゃう」ということです。
具体的に数字で表してみましょう。
具体例と疑問
コイン投げ10回:表10回、裏10回。表が出た相対度数=10/10=1
このあと、理想のコインと同じように、表と裏が同じ回数だけ出たと仮定すると、・・・
コイン投げ50回:表30回、裏20回。表が出た相対度数=30/50=0.6
コイン投げ100回:表55回、裏45回。表が出た相対度数=55/100=0.55
コイン投げ200回:表105回、裏95回。表が出た相対度数=105/200=0.525
という具合です。ただし、次のような疑問もわきます。
11回目以降に、表と裏がまったく同じ回数だけ出るとはいえない。つまり、表が出た回数が、10回ではなく12回とか15回とか、もっと増える可能性もある。そういうときにも、やはり「大きな数で薄められちゃう」のだろうか。
相対度数が0.5に近づいていくというなら、表と裏の回数の「差」もだんだん0に近づいていくと考えられないだろうか。それとも、そうとは限らないのだろうか。
というわけで、Rを使ってシミュレーションをしてみましょう。
Rによるシミュレーション
作成したスクリプトはこれです。
# 数学ガール研究問題
# 研究問題1-2 差と比
# フェアなコイン:表が出る確率を0.5とする
prob <- 0.5
# サイコロ投げ10000回まで試す
trial_max <- 10000
dice <- rbinom(trial_max, 1, prob)
# 相対度数と差を記録する配列
result.ratio <- numeric(length(trial_max))
result.diff <- numeric(length(trial_max))
# サイコロ投げ実験開始
for (t in 1:trial_max) {
s <- sum(dice[1:t])
result.ratio[t] <- s / t
result.diff[t] <- (s*2)-t
}
# 記録
result.ratio
result.diff
# グラフ1
plot(1:trial_max, result.ratio, type="l", ylim=c(0,1), main=paste("Ratio, P =",prob))
abline(h=prob, col="red", lty=2)
# グラフ2
plot(1:trial_max, result.diff, type="l", main=paste("Diff, P =",prob))
前回とよくにたスクリプトです。変数〈result.diff〉に、表の回数と裏の回数の差を記録しています(実際の計算は、表の回数の2倍からコイン投げの回数を引いています。もし裏の方が多く出ていれば負の数になります)。
では、結果を見てみましょう。(乱数を使っていますから、実行するたびに結果は異なります。たまたま実行した2回の記録を掲載しています。)
記録1回目
記録2回目
シミュレーションからわかること
コイン投げを続けていくと、表と裏の回数の差が、より大きくなることは、ごく普通に観察されるようです。たまたま実験した2回で、2回ともそのようなことが起きています。しかし、そのことによる相対度数の変化はごくわずかでした。このことから、しっかりと「大きな数で薄められ」ていることがわかります。
また、表と裏の回数の差が、しだいに0に近づいていくことは、あるかもしれませんが、それほど期待できないともいえます。1回目は、4000〜6000回で山ができていて、そのあと少し差が小さくなっていますから、これから差が小さくなっていくのかもしれません。2回目は、シミュレーションの最後の10000回付近が一番差が大きくなっていますから、さらに差が大きくなるのか、それとも小さくなるのかわかりません。少なくともこの2回の結果からは、「差が0に近づいていくようだ」とは言えません。しかし、相対度数は、確率に近づいていっています。
なお、大数の法則の説明では、一般的に、「データの平均は真の平均に近づく」(「高校数学の美しい物語」より)という説明がされます。これは、次のように考えます。
コイン投げで表が出たときを1、裏が出たときを0としたデータとして記録し、データの平均を計算すると、「データの合計÷データの個数」という式になります。ただし、データの合計は、「1というデータが何個あったか」を数えればいいので、つまり「表が出た回数」と等しくなり、データの個数はコイン投げの回数と同じです。つまり表が出た相対度数というのは、「表=1、裏=0」というデータの平均値とも解釈できるのです。
次回はJavascriptシミュレーション
次回は、この研究問題について、Javascriptを使ったシミュレーションを紹介します。
カバー写真
カバー写真は、UnsplashのJizhidexiaohailangが撮影した写真でした。