今回は「大数の法則」を見てみましょう。今、独立に同じ分布にしたがう確率変数 があり、 の共通の期待値を 、分散 とします。大数の弱法則は、任意の正の実数 に対して、以下の式が成り立つことです。
これは、 (すなわち算術平均)が、nが大きくなると の期待値 に近づいていくことを意味しています。
以下のpythonコードは、各々について期待値が1である一様分布, 正規分布, 二項分布, ポアソン分布にしたがう乱数をn回発生させ、各nについて算術平均をとったものです。nが大きくなるといずれも期待値である1に近づくことがわかります。コードを簡略化するために固定サイズの配列を用いました。
import numpy as np import numpy.random as rd import matplotlib.pyplot as plt from matplotlib import rcParams rcParams['font.family']='MS Gothic' ccolor='red','blue','green','magenta' ctitle='一様分布(0,2)','正規分布(1,1)','二項分布(10,0.1)','ポアソン分布(1)' X = np.arange(2000) Y = np.zeros((4,2,2000)) for k in range(2000): Y[0,0,k] = rd.uniform(0,2,1) Y[1,0,k] = rd.normal(1,1,1) Y[2,0,k] = rd.binomial(10,0.1,1) Y[3,0,k] = rd.poisson(1,1) for i in range(4): Y[i,1,k] = np.mean(Y[i,0,0:k]) fig, ax = plt.subplots(2,2) for k in range(4): i=k//2; j=k%2 ax[i,j].plot(X[1:],Y[k,1,1:],color=ccolor[k]) ax[i,j].set_title(ctitle[k]) plt.tight_layout()