連続型の確率分布で最も基本的なものは、区間 ]で一定の確率密度を持つ「一様分布」です。
上記の一様分布はある値の区間内であればどの値も同程度の確率で起こるというものですが、我々の身近にある数量の分布、例えば「ある中学校の1年生男子生徒の身長の分布」や「過去50年間の1月1日の最高気温の分布」などは、平均的な値をとることが多く、極端に大きい値や小さい値をとることは稀であると期待されます。このような確率分布の典型的なものが、以下で表される「正規分布」です。
ここではパラメータです。この分布の平均(期待値)は 、分散はとなります。
次に、以下の式で表される「指数分布」を考えます。
ただし、は正の値をとるパラメータです。この指数分布の平均は、分散はです。(長い時間平均すると)時間 当たり一人の客がランダムに到着する窓口がある時、単位時間当たりの客の到着人数は平均のポアソン分布で、客の到着間隔は平均の指数分布でそれぞれ表されます。
以下のPythonコードは、平均50, 標準偏差10の正規分布の確率密度関数と、同じ分布に従う乱数のヒストグラムを重ねて表示したものです。正規分布の確率密度関数はscipyのnorm.pdf()関数で、正規分布の乱数はrandom.gauss()関数でそれぞれ計算しています。またヒストグラムを描くためのplt.hist()関数の戻り値が「各区間の度数」「区間の区切り位置」「描写に使われているmatplotlibのオブジェクト」であることを利用し、さらにdensity=Trueオプションで縦軸が相対頻度を表示するようにしています。
import numpy as np from scipy.stats import norm import math import matplotlib.pyplot as plt import random mu, sigma = 50, 10 normrand = [random.gauss(mu, sigma) for i in range(1000)] fig = plt.figure() ax = fig.add_subplot(111) count, bins, grpobj = ax.hist(normrand, 30, density=True) ax.plot(bins, norm.pdf(bins,mu,sigma),linewidth=2,color='r') ax.set_title('Normal Distribution \n mean='+str(round(mu,1))\ +' SD='+str(round(sigma,1))) plt.show()