1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

大数の法則とシミュレーション

Last updated at Posted at 2025-01-02

はじめに

コインのトスを繰り返し行った場合、表がでる確率の平均値は$1/2$に収束する。これは、二回トスをすれば必ず表は一回でるという意味ではない。一般的に、膨大な試行回数を行えた場合、ある事象の平均的な確率は一定の値に収束するはずである。これを大数の法則という。そこで、今回はコイントスに対応する試行をPythonのRandomで再現することで、表がでる平均確率は0.5に収束することを確かめる。

確率収束1000.png

二項分布と大数の法則

上記のような試行における分布は、試行回数を$n$とすると平均$\mu=np$、分散$\sigma^2=np(1-p)$の二項分布に従う。ただし、確率変数を$X=0,1$とする。

二項分布反復試行回数100.png

ここで、平均確率を以下のように定義する。

P(n)=\frac{1}{n}\sum^{n}_{k=1} X_k

ここで、

V(X)=np(1-p)

より、

V(P(n))=\frac{1}{n^2}V(X)=\frac{p(1-p)}{n}

となる。また期待値は、

E(P(n))=\frac{np}{n}=p

となる。$n \rightarrow \infty$ のとき、

V(P(n))=\frac{1}{n^2}V(X)=\frac{p(1-p)}{n}\rightarrow 0

となる。したがって、平均確率は$p$に収束する。

プログラム

そこで、以下のようなプログラムを作成した。

python coin_ave.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
import random

#試行の繰り返し回数N
N=1000
X_ary=[]
X_sum=0
i_ary=[]

X_ideal=0.5
X_ideal_ary=[]
for i in range(N):
  
  X=random.random()
  if X>0.5:
    X=1
  else:
    X=0
  i_ary.append(i)
  X_sum=X_sum+X
  X_ary.append(X_sum/(i+1))
  X_ideal_ary.append(X_ideal)

#グラフの描画
plt.plot(i_ary,X_ary,color="red",label="実際の確率")
plt.plot(i_ary,X_ideal_ary,color="blue",label="理想の確率")
plt.legend()
plt.xlabel("試行回数")
plt.ylabel("表が出る平均確率")
plt.savefig("確率収束"+str(N)+".png")
plt.show()

結果

以下のようなグラフが出力される。

確率収束1000.png

試行回数が100以下の場合は、平均確率は$1/2$を大きく上下していた。しかし、それ以降ではそのような振動は少なくなりほぼ$1/2$となった。

まとめ

今回は、コイントスを題材として大数の法則をシミュレーションした。結果、試行数を増やすほど平均確率は一定の値に収束するということが分かった。このような膨大な試行を扱う確率・統計の分野においては、計算機の力を借りることが望ましいといえる。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?