確率の基本
アプリの計算を理解するのに必要な確率の道具 (確率変数・期待値・分散・正規分布・中心極限定理・大数の法則) を、必要な分だけ、証明の筋道つきで身につけます。
- 「確率変数」「期待値」「分散」「標準偏差」の意味と計算のしかた
- 一様乱数 1 個の平均が 1/2、分散が 1/12 になる理由
- 独立な乱数を足すと、分散が「足し算」になる理由
- 中心極限定理: 乱数を足すと正規分布に近づく
- 大数の法則: 回数を増やすと平均が真の値に近づく
#確率変数 — 「まだ決まっていない数」
サイコロを振る前の出目は、1〜6 のどれかになることは分かっていても、まだ決まっていません。このような「結果によって値が決まる数」を 確率変数 と呼び、大文字 X で書きます。
競馬にあてはめると、「このレースでのドウデュースの出来」は、走るまで分からない確率変数です。Keiba Vision の予想はすべて、この「出来」を確率変数として扱うところから始まります。
#期待値 — 平均すると、いくつか
確率変数 X が値 x1,x2,… を確率 p1,p2,… でとるとき、
E[X]=k∑xkpk=x1p1+x2p2+⋯
を 期待値 と呼びます。「何度もくり返したときの平均」です。サイコロなら
E[X]=1⋅61+2⋅61+⋯+6⋅61=3.5
#期待値の便利な性質 (線形性)
定数 a,b と確率変数 X,Y について、いつでも次が成り立ちます。
E[aX+b]=aE[X]+b,E[X+Y]=E[X]+E[Y]
2 つ目は X と Y が関係していても (独立でなくても) 成り立つのがポイントです。和の計算をそれぞれに分けられるので、あとで何度も使います。
#分散と標準偏差 — どれくらいばらつくか
平均が同じでも、値がいつも平均の近くに集まる場合と、大きく散らばる場合があります。ばらつきの大きさを測るのが 分散 です。
V[X]=E[(X−E[X])2]=E[X2]−(E[X])2
「平均からのずれ」を 2 乗して平均したものです。2 乗するのは、プラスのずれとマイナスのずれが打ち消し合わないようにするためです。分散は単位も 2 乗になってしまう (m なら m²) ので、平方根をとった 標準偏差 σ=V[X] を「ばらつきの目安」としてよく使います。
E[X]=μ と置いて展開すると E[(X−μ)2]=E[X2−2μX+μ2]=E[X2]−2μE[X]+μ2=E[X2]−μ2。期待値の線形性だけで導けます。
#定数倍すると、標準偏差も定数倍
V[aX]=a2V[X]⟹σaX=∣a∣σX
アプリでは乱数に 0.11 を掛けて「揺らぎ」の大きさを調整しています。標準偏差もそのまま 0.11 倍になる、ということです。
#一様乱数 — 0 以上 1 未満が等しく出る数
コンピューターが作る基本の乱数は、0 以上 1 未満のどの値も同じくらいの確率で出る 一様乱数 U です。値が連続しているので、確率は「確率密度」という関数 f(u) の面積で表します。一様乱数なら 0≤u<1 で f(u)=1 (高さ 1 の長方形) です。
連続な場合の期待値は、和 ∑ を 積分 ∫ (面積を求める操作) に置き換えて計算します。
E[U]=∫01u⋅1du=[2u2]01=21
E[U2]=∫01u2du=31,V[U]=31−(21)2=121
∫01udu は「y=u という直線と横軸の間の、0 から 1 までの面積」です。底辺 1・高さ 1 の三角形なので面積は 1/2。同じように ∫01u2du=1/3 は、放物線の下の面積です。
結論: 一様乱数 1 個は、平均 1/2、分散 1/12、標準偏差 1/12≈0.2887。
#独立な確率変数の和 — 分散は足し算
2 つの確率変数が 独立 (一方の値が他方に影響しない) なら、
V[X+Y]=V[X]+V[Y]
が成り立ちます。証明は、ずれ X′=X−E[X]、Y′=Y−E[Y] を使って
V[X+Y]=E[(X′+Y′)2]=E[X′2]+2E[X′Y′]+E[Y′2]
と展開し、独立なら E[X′Y′]=E[X′]E[Y′]=0⋅0=0 になることを使います。
足し算になるのは 分散 です。標準偏差 1 の乱数を 2 個足した標準偏差は 2 ではなく 1+1=2≈1.41。ばらつきは「打ち消し合う」ことがあるので、単純な足し算より小さくなります。
これを使うと、アプリの「揺らぎ」の大きさがすぐ計算できます。アプリは一様乱数を 4 個足して 2 を引き、0.11 を掛けています。
ε=0.11×(U1+U2+U3+U4−2)
E[ε]=0.11×(4×21−2)=0,σε=0.11×4×121=0.11×31≈0.0635
この 0.0635 が、モンテカルロ法 のすべての結果を決める重要な数字です。
#正規分布と中心極限定理
一様乱数を何個も足していくと、その分布 (どの値がどれくらい出やすいか) は、左右対称の釣り鐘型に近づいていきます。下のデモで n を 1 から増やしてみてください。
この釣り鐘型を 正規分布 と呼び、平均 μ・標準偏差 σ の正規分布の確率密度は
f(x)=σ2π1exp(−2σ2(x−μ)2)
です。そして 中心極限定理 は「独立で同じ分布の乱数をたくさん足すと、元の分布が何であっても、和は正規分布に近づく」ことを保証する定理です。
一様乱数 n 個の和の分布には Irwin–Hall 分布 という名前があります。n=4 でもう正規分布にかなり近く、アプリはこれを「正規分布もどき」として使っています。
さらに深くなぜ本物の正規乱数を使わないのか
正規分布に従う乱数を作る標準的な方法 (Box–Muller 法) は −2lnU1cos(2πU2) のように対数・平方根・三角関数を使います。Zig を「OS なし (freestanding)」の WebAssembly にすると、これらの数学関数を自前で用意する必要があり、ファイルも大きくなります。一様乱数 4 個の足し算なら掛け算と足し算だけで済み、実用上の差はほとんどありません。
違いが出るのは「端」です。Irwin–Hall (n=4) の値は必ず [−2,2] に収まるので、揺らぎは最大でも ±0.22 です。正規分布なら、とても小さい確率ながら、どこまでも大きな値が出ます。つまりアプリでは、平均的な出来の差が 0.44 以上ある 2 頭の順位は、絶対に逆転しません。また、尖度 (分布の尖り具合) は正規分布より少し低く、超過尖度 −6/(5n)=−0.3 です。
#標準正規分布と Φ
平均 0・標準偏差 1 の正規分布を 標準正規分布 と呼び、その確率変数を Z と書きます。Z が x 以下になる確率を
Φ(x)=P(Z≤x)
と書きます。Φ(0)=0.5、Φ(1)≈0.841、Φ(1.96)≈0.975 は覚えておくと便利です。どんな正規分布も Z=(X−μ)/σ と変換すれば標準正規分布になる (標準化) ので、Φ 1 つで計算できます。
#大数の法則 — 回数を増やせば、平均は真の値に近づく
コインを 10 回投げて表が 7 回出ても、「表の確率は 0.7」とは言えません。しかし 10 万回投げれば、表の割合はほぼ確実に 0.5 の近くになります。これが 大数の法則 です。
「どれくらい近づくか」も計算できます。確率 p で起きる出来事を N 回試したときの割合 p^ について
E[p^]=p,σp^=Np(1−p)
誤差は 1/N に比例して小さくなります。回数を 100 倍にすると、誤差は 1/10 になる ということです。この式は モンテカルロ法 で「10 万回でどれくらい正確か」を計算するのに使います。
- 期待値は「平均」、分散は「平均からのずれの 2 乗の平均」、標準偏差はその平方根
- 一様乱数 1 個: 平均 1/2、分散 1/12
- 独立な乱数の和: 平均も分散も足し算 (標準偏差は足し算にならない)
- アプリの揺らぎ 0.11(U1+U2+U3+U4−2) は、平均 0・標準偏差 ≈0.0635 のほぼ正規分布
- 割合の誤差は p(1−p)/N。回数 100 倍で誤差 1/10
アプリが一様乱数を 8 個足して 4 を引き、同じ 0.11 を掛けていたら、揺らぎの標準偏差はいくつになりますか。また、今と同じ標準偏差 0.0635 にするには、0.11 の代わりに何を掛ければよいですか。
答えを見る
分散は 8×121=32 なので、標準偏差は 0.11×2/3≈0.0898。同じ 0.0635 にするには c2/3=0.111/3 を解いて c=0.11/2≈0.0778 を掛けます。
表の確率 0.5 のコインを 10,000 回投げたとき、表の割合の標準偏差はいくつですか。割合が 0.49〜0.51 に入るのは、およそ何% の確率でしょう。
答えを見る
σ=0.5×0.5/10000=0.005。0.49〜0.51 は平均 ± 2σ なので、正規分布で近似すると Φ(2)−Φ(−2)≈0.954、約 95% です。