確率とデータの考え方
コイン投げ、針を落として円周率、検査で陽性と出たとき、でたらめに歩く点。ばらばらに見える4つの実験の裏にある、大数の法則と平方根の話。
ここの4つの作品は、どれもコンピューターの中で乱数を使って実験する「教育用の簡略化モデル」です。本物の現象や検査をそのまま写したものではなく、考え方を見えるようにしたものです。
コイン投げと大数の法則(このサイトの「コイン投げと大数の法則」)
コインをたくさん投げると、表が出た割合は、だんだん0.5に近づきます。これが大数の法則です。 ところが、おもしろいことに、表と裏の数の差は、近づくどころか、投げるほど開いていく傾向があります。割合が0.5に近づくのは、投げた回数のほうが、差よりももっと速く増えるからです。
このサイトのプログラムで、次のことを確かめました(coin-flips/engine.test.ts)。
- 乱数の種を決めて10万回投げると、表の割合は0.5から0.01以内に収まりました。
- 投げる回数を100倍にすると、割合が0.5からはずれる大きさの平均は、約10分の1になります。
- 表と裏の差の大きさの平均は、n回で約 √(2n÷π) になり、回数が100倍なら、差は約10倍に開きます。
つまり、割合のばらつきは「回数の平方根」で小さくなり、差は「回数の平方根」で大きくなります。「続けて表が出たから、次は裏が出やすい」ということはありません。大数の法則は、過去の偏りを取り戻すのではなく、あとの回数がたくさん積み重なって、偏りを薄めていくのです。
歴史では、ヤコブ・ベルヌーイが、コイン投げのような「二つに一つ」の場合の大数の法則を証明したとされます。証明には20年以上かかったといわれ、死後の1713年に出版された『推測術』(Ars Conjectandi)に載りました。本人は「黄金定理」と呼び、のちに「ベルヌーイの定理」として知られました。「大数の法則」という名前は、1837年にポアソンが使ったとされます。 ベルヌーイより前に、カルダーノが証明なしに同じ考えを述べていたともいわれます。ですから、「ベルヌーイが発見した」というより、「二つに一つの場合を初めて証明した」と言うのが、安全です。
針投げで円周率(このサイトの「針投げで円周率」)
平行な線を引いた床に、針をでたらめに落とします。針の長さが線の間隔以下なら、針が線にかかる確率は、針の長さを l、線の間隔を t として、2l ÷ (π × t) になります。 針の長さと間隔が同じなら、確率は 2 ÷ π(約0.64)、針が間隔の半分なら 1 ÷ π です。 針を n 回落として h 回かかったとき、針の長さと間隔が同じなら、円周率は 2n ÷ h で見積もれます。
このサイトのプログラムで、これらを確かめました(buffon-pi/engine.test.ts)。
- 確率の式を、別の計算方法(細かい格子で数える方法)と比べて、一致することを確かめました。
- 乱数で20万回落とすと、かかる割合は式の値に近づき、円周率の推定は、本当の値から0.03以内に収まりました。
- 1回もかからなければ、円周率は見積もれません。
この問題は、フランスの博物学者ビュフォンの名前で呼ばれます。1777年の『道徳算術の試み』(Essai d'arithmétique morale)に載っており、内容は1760年ごろに書かれたとみられます。 ただし、ビュフォン自身は、針を使って円周率を求めようとしたわけではない、と考えられています。針で円周率を推定するのは、のちに知られるようになった、乱数を使って数を見積もる方法(モンテカルロ法)の例です。 また、1901年にラッツァリーニが「3408回で 355/113 という、とても円周率に近い値が得られた」と報告しました。しかし、結果が良すぎるため、データが信頼できるかが疑われています。
検査と確率(このサイトの「検査と確率」)
この作品の病気と検査は、どちらも架空です。実在の病気や検査の数字ではありません。医療の助言でもありません。
設定は、こうです。病気の人は100人に1人(1%)。検査は、病気の人の90%を陽性と判定し、病気でない人の91%を陰性と判定します。1000人を検査すると、人数は次のようになります。
- 病気で陽性(正しい陽性):9人
- 病気なのに陰性:1人
- 病気でないのに陽性:89人
- 病気でなく陰性:901人
陽性になる人は、9 + 89 = 98人です。そのうち、本当に病気なのは9人、つまり約9%(9÷98)です。「90%の検査で陽性」と聞くと、ほとんどの人が病気だと思いがちですが、病気の人がもともと少ないと、病気でない大勢の人の中から出る「まちがいの陽性」が、本物の陽性より多くなります。 病気の割合(もともとの割合、基準率)を無視しないことが、この作品の気づきです。
このサイトのプログラムで、これを確かめました(base-rate/engine.test.ts)。同じ検査でも、病気が少ないほど、陽性のうち本当に病気の割合は下がります。役に立たない検査(病気の人も、そうでない人も、同じ割合で陽性になる)では、陽性になっても、もとの割合から変わりません。
この計算は、ベイズの定理と呼ばれます。トマス・ベイズは1761年に亡くなり、友人のリチャード・プライスが、論文を整えて王立協会に送りました。論文は1763年に王立協会で読み上げられ、『哲学紀要』に載りました(刊行を1764年とする資料もあります)。 ラプラスは、1774年に独立に同じ結果を導き、1812年の本にまとめたとされます。
酔っぱらいの歩き(このサイトの「酔っぱらいの歩き」)
たくさんの点が、1歩ごとにでたらめな向きに進みます。1歩は1マスぶんです。点がスタートからどれだけ離れるかを見ると、おもしろいことが分かります。 離れ方(距離の2乗の平均の平方根)は、歩数 n の平方根にほぼ等しく、歩数が4倍になると、広がり方は約2倍になります。
このサイトのプログラムで、確かめました(random-walk/engine.test.ts)。
- すべての歩き方を数え上げて調べると、距離の2乗の平均は、ちょうど歩数 n に等しくなります(1次元では10歩、2次元では6歩で確認)。
- 点を3000個動かした実験では、距離の広がりが √n と5%以内で合いました(100歩と400歩、1次元と2次元)。
- 歩数を4倍にすると、広がりは約2倍になります。
実は、コイン投げの「表と裏の差」は、1次元のランダムウォークそのものです。表なら+1、裏なら-1と歩数を数えているのと同じだからです。コイン投げで差が √n で広がる話と、ここでの話は、同じことを別の形で見ているのです。
「ランダムウォーク(random walk)」という言葉は、1905年にカール・ピアソンが科学雑誌『ネイチャー』に載せた手紙「The Problem of the Random Walk」で使ったことから広まった、とされます。 同じ1905年に、アルベルト・アインシュタインが、水に浮かぶ花粉の粒が震える現象(ブラウン運動)を、水の分子が衝突するためだと説明しました。粒の広がりの2乗の平均が時間に比例する、と導き出しました。典型的なずれは、時間の平方根に比例します。 この現象を最初に観察したのは、1827年のロバート・ブラウンです。アインシュタインが「ブラウン運動を発見した」のではなく、理論で説明したのです。ペランの実験(1908〜09年ごろ)が、その予測を裏づけたとされます。
4つに共通すること
- 平方根がよく出てくる:割合のばらつきは √n 分の1で小さくなり、差や距離は √n で広がります。
- 回数が多いほど、全体の形が見える:1回1回はでたらめでも、たくさん重ねると規則が現れます。
- 数字は、もともとの割合と一緒に読む:陽性の意味は、基準率しだいで大きく変わります。
4つとも、教育用の簡略化モデルです。乱数の種を決めた実験は、毎回同じ結果になります。検査の例は架空のもので、医療の判断に使うものではありません。
出典・参考
- Wikipedia — Law of large numbers
- Wikipedia — Buffon’s needle problem
- Encyclopedia of Mathematics — Buffon, Georges-Louis Leclerc
- Gorroochurn & Levin, Journal Electronique d’Histoire des Probabilités et de la Statistique (2013)
- Wikipedia — Bayes’ theorem
- Wikipedia — Thomas Bayes
- Wikipedia — Random walk
- Wikipedia — Brownian motion
- Cogniq Fun — src/lib/games/coin-flips/engine.test.ts(表の割合が0.5に近づくこと、差が √(2n/π) で広がること / share of heads near 0.5, gap growing like sqrt(2n/pi))
- Cogniq Fun — src/lib/games/buffon-pi/engine.test.ts(針が線にかかる確率 2/π、1/π、円周率の推定 / crossing probability 2/pi and 1/pi, estimating pi)
- Cogniq Fun — src/lib/games/base-rate/engine.test.ts(1000人あたりの人数 9・1・89・901 と陽性のうち本当の割合 9/98 / counts 9, 1, 89, 901 and the share 9/98)
- Cogniq Fun — src/lib/games/random-walk/engine.test.ts(全ての歩き方で距離の2乗の平均がちょうど n、√n に比例して広がること / mean squared distance exactly n, spread like sqrt n)
更新: 2026-10-17