Create  Edit  Diff  ホーム  Index  Search  Changes  History  Source  RSS  wikifarm  Login

Pr.Disc.7

大数の法則

個々に見ればランダムにゆらぐものでも、 たくさん集めて平均をとればほとんどゆらがない、 という現象があります。

たとえば、サイコロを 1 回ふったら、 これは 1 から 6 までどれが出るか全く予想がつきません。

$ ruby -e 'puts 1 + rand(6)'
2  # ……たまたまこれが出た

でも、サイコロを 20 回ほどふって平均をとれば、 たいてい 3.5 前後の結果になります。

$ ruby -e 'n = 20; a = (1..n).map{1 + rand(6)}; a.each{|x| print x}; sum = a.inject(0){|r, x| r + x}; puts " → [平均 #{sum.to_f / n}]"'
63252121415345425115 → [平均 3.1]
(何度もやってみると…)
44261412451311634611 → [平均 3.0]
34226456541462641345 → [平均 3.85]
46616212225462334333 → [平均 3.4]
26236351116451123224 → [平均 3.0]

200 回もふれば、平均はさらにばらつきにくくなります。

$ ruby -e 'n = 200; a = (1..n).map{1 + rand(6)}; a.each{|x| print x}; sum = a.inject(0){|r, x| r + x}; puts " → [平均 #{sum.to_f / n}]"'
35464113336645534135561136534312461532511143252423441526322265221134136123
15445145544462456316633236315113211342463655154242655551512361425134564515
2243651633615461453465653644653143326352344354462263 → [平均 3.54]
(何度もやってみると…)
22234343145324443413421256225432525526525522526216411254251165565121243145
55116444435523436365166561111235442666514614563214136651346363463656133213
3136646553424641322142242336464261626563434432215654 → [平均 3.555]

53164344312511544233561651414464164616456626253312654521642641414151246544
55252254216656632516125546635135556124333445446242645321311616266443264515
4454413454156261654635553111314454545444342251454322 → [平均 3.67]

11113163113661664635624334655161515452566223634652325435345635563253431561
62232431655342336235615366642366156561464653153214421254543155344212213426
1221321242525262336656624163525416464321655225554613 → [平均 3.635]

13136523455242541333514525113165143654421656431455165514163133132134256342
21655265263541244633156421155563351626544125541436216342244644216644141422
1366416236513215136563353535144665422244643252356515 → [平均 3.535]

この性質は、ランダムにゆらぐものを解析し活用するための大切な鍵となります。 日常的な感覚としても、この性質自体は、なんとなくそういうものだろうと 思えるでしょう。 本節では、それを確率の言葉で検証します。

\memo{統計力学, 抜きとり調査, うんぬん? あんまり先走って統計にふみこんだら混乱する?}

独立同一分布(i.i.d.)

まず、「サイコロを 20 回ふる」というのをどう表すかに注意が必要です。 確率変数と確率分布をごっちゃにする心配があるからです。

1 回目のサイコロの値を確率変数 X_1 とし、 2 回目のサイコロの値を確率変数 X_2 とし、 ……という調子で、20 個の確率変数 X_1, X_2, …, X_{20} を考えてください *1

さて、同じサイコロをふっているのだから、1 回目も 2 回目も 3 回目も、 出る目の分布は同じでしょう。

  • P(X_1 = 1) = P(X_2 = 1) = … = P(X_{20} = 1) = 1/6 -- 1 が出る確率は、何回目でも 1/6
  • P(X_1 = 2) = P(X_2 = 2) = … = P(X_{20} = 2) = 1/6 -- 2 が出る確率は、何回目でも 1/6
  • P(X_1 = 3) = P(X_2 = 3) = … = P(X_{20} = 3) = 1/6
  • P(X_1 = 4) = P(X_2 = 4) = … = P(X_{20} = 4) = 1/6
  • P(X_1 = 5) = P(X_2 = 5) = … = P(X_{20} = 5) = 1/6
  • P(X_1 = 6) = P(X_2 = 6) = … = P(X_{20} = 6) = 1/6

(ただし、だからといって X_1 = X_2 = … = X_{20} ではないことは 重々ご注意。こう書くと、「1 回目から 20 回目まで、すべて同じ目が出る」と 主張した式になってしまいます。 「えっ」て人は確率変数と確率分布の区別を復習。)

また、変な細工をしない限り、1 回目の結果と 2 回目の結果とは独立でしょう。 1 回目に何が出ても、2 回目の出やすさがそれで変化したりはしないはずです。

「1 回目に x_1 が出て、2 回目に x_2 が出て、…… 20 回目に x_{20} が出る確率」
= P(X_1 = x_1, X_2 = x_2, …, X_{20} = x_{20})
= P(X_1 = x_1) P(X_2 = x_2) … P(X_{20} = x_{20})

(例)
P(X_1 = 1, X_2 = 6, X_3 = 1, X_4 = 6, X_5 = 1, X_6 = 6, … , X_{19} = 1, X_{20} = 6)
= (1/6) × (1/6) × (1/6) × (1/6) × (1/6) × (1/6) × … × (1/6) × (1/6)
= 1/6^{20}

こんなふうに、確率変数 X_1, …, X_n が

  • 個々の分布はどれも同じ
  • しかもすべて独立

というときを、独立同一分布に従うと言います。 英語では independent and identically distributed と言い、これを略して i.i.d. と書きます。 何かの実験・調査をくり返し行うというときには、 i.i.d.になっている(あるいは、できるだけ i.i.d. になるよう努力する) ことが多いでしょう。

次に、別の例として、こんなゆがんだサイコロも考えてみます。

そんな値が出る確率
10.4
20.1
30.1
40.1
50.1
60.2

1 回目のサイコロの値を確率変数 Y_1 とし、 2 回目のサイコロの値を確率変数 Y_2 とし、 ……という調子で、20 個の確率変数 Y_1, Y_2, …, Y_{20} を考えてください。

同じサイコロをふっているのだから、1 回目も 2 回目も 3 回目も、 出る目の分布は同じなはずです。

  • P(Y_1 = 1) = P(Y_2 = 1) = … = P(Y_{20} = 1) = 0.4 -- 1 が出る確率は、何回目でも 0.4
  • P(Y_1 = 2) = P(Y_2 = 2) = … = P(Y_{20} = 2) = 0.1 -- 2 が出る確率は、何回目でも 0.1
  • P(Y_1 = 3) = P(Y_2 = 3) = … = P(Y_{20} = 3) = 0.1
  • P(Y_1 = 4) = P(Y_2 = 4) = … = P(Y_{20} = 4) = 0.1
  • P(Y_1 = 5) = P(Y_2 = 5) = … = P(Y_{20} = 5) = 0.1
  • P(Y_1 = 6) = P(Y_2 = 6) = … = P(Y_{20} = 6) = 0.2

もちろん、ゆがんでいるせいで、もはや確率は 1/6 ずつではありません。 それでも、1 が出る確率は「終始一貫して」 0.4 だ、ということを言っています。

また、変な細工をしない限り、独立性も成り立つはずです。

「1 回目に y_1 が出て、2 回目に y_2 が出て、…… 20 回目に y_{20}が出る確率」
= P(Y_1 = y_1, Y_2 = y_2, …, Y_{20} = y_{20})
= P(Y_1 = y_1) P(Y_2 = y_2) … P(Y_{20} = y_{20})

(例)
P(Y_1 = 1, Y_2 = 6, Y_3 = 1, Y_4 = 6, Y_5 = 1, Y_6 = 6, … , Y_{19} = 1, Y_{20} = 6)
= 0.4 × 0.2 × 0.4 × 0.2 × 0.4 × 0.2 × … × 0.4 × 0.2
= 1.07 × 10^{-11}

ですから、Y_1, Y_2, …, Y_{20} も i.i.d. です。

平均値の期待値・平均値の分散

次に注意が必要なのは、平均値と期待値の区別です。 確率変数 X_1, X_2, …, X_n に対して、その平均値 Z とは、

Z = (X_1 + X_2 + … + X_n) / n

のことです。 X_1, X_2, …, X_n が「ゆらぐ量」なので、そこから計算される Z もやはり「ゆらぐ量」。 実際、さきほどの実験でも、くり返すたびに平均値は変わっていました。 単に「何個かの量を合計して個数で割る」というだけですから、

  • ゆらがない量たちの平均はゆらがない量
  • ゆらぐ量たちの平均はゆらぐ量

となるのはあたりまえ。

\memo{図. Ω上のある点ωでは「44261412451311634611 → [平均 Z = 3.0]」, 別の点ω'では「34226456541462641345 → [平均 Z = 3.85]」, …. で, Z の期待値は 3.5}

一方、期待値というのは、確率変数(または確率分布)に対して定義された 「ゆらがない量」でした。 いま作った確率変数 Z の期待値は、

E[Z]
= E[(X_1 + X_2 + … + X_n) / n]
= (1/n) E[X_1 + X_2 + … + X_n]
= (E[X_1] + E[X_2] + … + E[X_n]) / n

のように、「X_1, X_2, …, X_n の期待値」の平均となっています。 特に、X_1, X_2, …, X_n が i.i.d. だったら、 当然どれも期待値は同じ(μとおきます)ですから、

E[Z] = n μ / n = μ

となります。 この Z の期待値は、個々の期待値 μ と一致する。 まあ予想どおりでしょう。

せっかくだから、ついでに Z の分散も計算しておきます。

V[Z]
= V[(X_1 + X_2 + … + X_n) / n]
= (1/n^2) V[X_1 + X_2 + … + X_n]

ここで、X_1, X_2, …, X_n が独立だったら、

V[Z] = (V[X_1] + V[X_2] + … + V[X_n]) / n^2

となるのでした。さらに、X_1, X_2, …, X_n が i.i.d. のときは、 当然どれも分散は同じ(σ^2 とおきます)ですから、

V[Z] = n σ^2 / n^2 = σ^2 / n

という結果になります。

……「ついでに」なんて書きましたけれど、本心は、 この結果に到達したくてここまで話をしてきたのでした。 (「毎回同じ設定でしかも独立」という)理想的な実験・調査を n 回行って 平均をとれば、分散は 1/n になる。 ゆらぐ量を扱う際の常識として、この事実はぜひ頭に刻んでおいてください。

分散が 1/n ということは、標準偏差でいえば 1/√n です。 精度を 10 倍に(Z の「期待値からのふれ幅の典型値」を 1/10 に)したければ、 試行回数を 10^2 = 100 倍にしないといけません。 10 倍では済まないのです。

大数の法則

大切なことなのでもう一度書きます。 i.i.d. な確率変数 X_1, …, X_n (どれも期待値 μ, 分散 σ^2)に対して、 その平均

Z_n = (X_1 + … + X_n) / n

を求めれば、

  • E[Z_n] = μ …… その期待値は元と同じ
  • V[Z_n] = σ^2 / n …… その分散は元の 1/n(標準偏差でいえば、元の 1/√n)

(n 個の平均なことを強調するために、Z_n と添字をつけて書きました)

ということは、もし n をいくらでも大きくしてよければ、 分散 V[Z_n] をいくらでも小さく(0 に近く)できるわけです。

V[Z_n] → 0  (n → ∞)

分散 0 は、「ゆらがない」という意味だったことを思い出してください。 ものすごく雑に言うと、 「個数 n を無限に増やせば、平均 Z_n はもはやゆらがなくなる」。 これを、本書では「大数の法則(たいすうのほうそく)」と呼ぶことにします。

ただ、いまの説明だけではいいかげんすぎるので、二つ補足しておきます。

一つは、期待値や分散が存在しない場合の注意です。 (まだ。→ 「確率と統計」(-) (-))

もう一つは、ふつうは「大数の法則」と言ったら V[Z_n] → 0 のことではない、 という点です。 ふつうは、Z_n の分散ではなくて Z_n 自身が「ある意味で」 0 に収束することの 方を指します。 その方が、「ゆらがなくなる」という主張をストレートに述べた格好になります。 ただ、確率変数の収束というのは、つまずきどころ。 ちょっとしんどいので、本書はそこへは踏み込まないことにします *2。 i.i.d. でない場合への拡張なども省略します。 くわしくは○○などを参照ください。

\memo{せっかく (Ω, F, P) を出したんだから, ○○収束を書きたい気がしないでもない}

\memo{一番最初の確率の導入(Pr.Def.1)を, 「0-1 表現して大数の法則」でつなげてみせるか? やぶへびか?}

確率に慣れていない人へ「期待値とは何か」を説明するとき、 「無限回ためしたときの平均だ」と言ってごまかすことが 一応許されるのは、大数の法則があるおかげです。 とはいえ、この俗な説明をいつまでも信じ込んではいけません。 「期待値」のイメージがこれのままだと、その先の論証に支障をきたすからです。 混乱せず自信を持って確率を論じるためには、 「期待値 μ と平均値 Z_n との意味の違い」をわきまえる必要があります。 それにはやはり、神様視点で考えられるようになることが大切でしょう。

disc_large.png

両者は違うものを測っていて、その違うものが一致するところに 大数の法則の妙味がある。 このことが、神様視点ならはっきりわかるはずです。 大げさに言うと…… 「Ω全体を見渡すのは、神のみの成せる技。 期待値μは、パラレルワールドを横断しての『へいきん』だから、 一つの世界ωにしばられた人間には本来手の届かない量。 でも、我々には大数の法則がある。 おかげで、一つの世界ωにとどまりながらも、平均値 Z_n を観察することで 神の量μに近づくことができる」*3。 こう言われたら、大数の法則のインパクトを見直したのではありませんか?

最後に、老婆心ながら注意を。 大数の法則が成り立つのは、個数 n で割っているからこそです。 単に和をとるだけだと、分散は「大きく」なります。 n を大きくしても、サイコロを n 回ふった「合計値」が 3.5 n に近づいていく、 なんていうことはありません。


コメントはプログラミングのための確率統計


Last modified:2005/09/14 23:10:25
Keyword(s):
References:[Pr.Comment] [Pr.Cont.9] [Pr.Disc]

*1 「□_1」は「□の右下に添字で 1」のことです。「□_{20}」も「□の右下に添字で 20」です。

*2 神様視点からすると、確率変数というのは「ただの関数」でした(Pr.Def.4)。「関数の収束」がやっかいなことは、本気の解析学を習った人なら体験済みのはず。「各点収束するからといって……」というフレーズから、悪夢がよみがえるのではないでしょうか。

*3 そんな絶対不可能そうなことができてしまうのは、i.i.d. という前提があるためです。