連続一様分布について解説します。離散一様分布を先に見ておいてください。

離散一様分布では、取り得る値と確率を分かりやすく対応付けることができました。しかし、連続一様分布ではそうは行きません。無限の精度を求めると、いくらでも数字を細かくできます。これは、2つの数字を考えたとき、その間から必ず別の数字を選べるという意味でもあります。例えば、5.41と5.42を考えると、5.415を選べます。

そう考えると、連続一様分布では、取り得る値の個数nが無限大になります。そうなると、確率は1/∞になってしまうので、0です。これでは話が始まりませんので、連続分布で確率を考えるときは、1点ではなく、領域を考えます。これを分かり易くするために、例を交えながら、さらに見ていくことにしましょう。

連続な確率変数Xが次のような確率密度関数(probability density function)に従うとき、これを連続一様分布と呼びます。
$$f(x)=\frac{1}{(b-a)}\\\\a<=x<=b$$

離散一様分布では、f(x)=1/n でしたが、連続一様分布では、最小値aと最大値bの間で定義される領域を考えます。

分布の平均は単純です。

$$\frac{(a+b)}{2}$$

分散は次のように定義されます。

$$ \sigma^2 = \frac{(b-a)^2}{12}$$

ニューヨーク市での平均的なタクシーの乗車時間は22分くらいであることが知られています。調査の結果、この乗車時間が、19分から27分の間の連続的な一様分布に従うことが分かったとします。タクシー乗車時間の確率密度関数を求めてみましょう。

In [1]:
# 乗車時間の下限
a = 19

# 上限
b = 27

# 連続一様分布の確率密度関数です。
fx = 1.0/(b-a)

print('確率密度関数は、{}'.format(fx))
確率密度関数は、0.125
In [2]:
# 分散
var = ((b-a)**2 )/12

print('分散={}'.format(var))
分散=5.333333333333333

乗車時間が少なくとも25分続く確率を計算してみましょう。

In [10]:
# これは、全体から、乗車時間が25分より短い場合を引けばよいので、次のようにして求めることができます。

# 乗車時間が27分までに収まる確率は全体なので1です。
# 一方、乗車時間が25分までに収まる確率は、
f25 = (25-19)/(b-a)

ans = 1-f25

print('乗車時間が少なくとも25分かかる確率は{}%'.format(100*ans))
乗車時間が少なくとも25分かかる確率は25.0%

scipyを使って便利に連続一様分布を作ってみます。

In [14]:
from scipy.stats import uniform
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# 最小と最大を作ります。
A=0
B=5

# AからBまで100ポイントを作っておきます。
x = np.linspace(A,B,100)

# 連続一様分布は、uniform(loc=start point,scale=endpoint)で作れます。
rv = uniform(loc=A,scale=B)

# 確率密度関数(PDF)と累積分布関数(Cumulative Distribution Function)を描いてみます。
plt.plot(x,rv.pdf(x))
plt.plot(x,rv.cdf(x))
Out[14]:
[<matplotlib.lines.Line2D at 0x106a3e8d0>]

青い線は、0.2のところにありますが、1/(5-0) が 1/5 で 0.2なので、すぐに確かめられます。

2,3は英語ですが、Web上にも有用な情報があります。

1.)https://ja.wikipedia.org/wiki/%E9%80%A3%E7%B6%9A%E4%B8%80%E6%A7%98%E5%88%86%E5%B8%83

2.)http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.uniform.html

3.)http://mathworld.wolfram.com/UniformDistribution.html