roombaの日記

読書・非線形科学・プログラミング・アート・etc...

客の来店する時間間隔が指数分布になる直感的な理由と、分布の導出方法

はじめに

何らかのイベントがランダムに発生する(ポアソン過程という)とき、その発生間隔は「指数分布」という確率分布に従うことが知られています。

例えば、1分あたりに2人の客が来る店においては、来客の時間間隔が平均1/2 [分]の指数分布に従います。

でもどうしてそんな分布になるのでしょうか?
数式をほとんど使わず、ゆるふわな説明によって直感的に理解してみましょう。

後半ではもう少し真面目になり、発生間隔が厳密に指数分布になることを示します。
実は、「ランダムなイベントの発生はポアソン過程と呼ばれ、その発生頻度はポアソン分布に従う」ことを知らずとも、「イベントの発生の仕方が時間的に一様である」という条件だけから指数分布が導けてしまうのです!

統計の教科書にもあまり書かれていないことが多いので、ここに紹介します。

ゆるふわな説明

まずは、ほとんど数式を使わずに、イベントの発生間隔(例:ある店への来客の時間間隔)が指数分布っぽくなることをイメージできるようになりましょう。
そのために、指数分布とはどんなものか最低限理解しておく必要があります。

指数分布とはなにか

指数分布とは、正のパラメータλに対して確率密度関数
{ \displaystyle
  f(x) = \begin{cases}
    \lambda e^{-\lambda x} & (x \geq 0) \\
    0 & (x \lt 0)
  \end{cases}
}
と表されるものです。

例えば、1分あたり0.5人の来客がある場合はλ=0.5となり、来客と次の来客との時間間隔がa分とb分の間に収まる(a<b)確率は
{ \displaystyle
\int_a^b f(x) dx = \int_a^b \lambda e^{-\lambda x} dx
}
を計算することにより
{ \displaystyle
{[- e^{-\lambda x} ]}_a^b = e^{-0.5 a} - e^{-0.5 b}
}
と求めることができます。

確率密度関数は以下のグラフのようになっています。

図1↓

Probability density function

CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=73793

なぜイベントの発生間隔が指数分布っぽくなるのか

さて、指数分布なるものは図1のグラフのような形をしていることが分かりました。

ここで、指数分布の式を知らなくても「図1っぽくなるはずだ」と考えられるのです。

単調減少になるはず

発生間隔の確率密度関数f(x)は単調減少の関数になっているはずです。

なぜなら、xが大きくなるということは「イベント発生と発生の時間間隔が広くなる場合を考える」ことに相当するのですが、発生の時間間隔が広くなるほど「その間に一度もイベントが発生しなかった」という厳しい条件が課されるからです。厳しい条件が課されるということは、それだけ確率密度が低くなることを意味します。

したがって、発生間隔の確率密度関数f(x)は下図右端のように単調減少となっているはずです。
f:id:roomba:20160211142609p:plain

指数分布っぽくなるはず

発生間隔の確率密度関数f(x)は単調減少であることが分かりました。単調減少といっても、下図のようにいくつかのケースが考えられます。
f:id:roomba:20160211124113p:plain
x→∞の状況を考えましょう。xが大きくなるにつれて「発生間隔がxになる確率」は0に近づきますが、決して0以下にはなりません。
したがって、発生間隔の確率密度関数f(x)は、上図の右端のようにx軸に漸近する形をしているはずです。

ゆるふわな説明のまとめ

ここまでの説明から、イベントの発生間隔(例:ある店への来客の時間間隔)は以下のグラフのように指数分布っぽくなることが直感的に分かりました。
f:id:roomba:20160211125322p:plain

以上の思考過程を経ずにこのグラフをイメージするのは難しいのではないでしょうか。というのも、f(x)がx=(平均時間間隔)でピークになるのではなく、時間間隔が短いほど確率が大きくなるというグラフになっているのですから。

ただ、現時点では直感的に指数分布っぽくなるというだけで、他の関数形である可能性も残されています。
次章では、厳密に指数分布であることを示します。

真面目な説明

「はじめに」に書いたように、「イベントの発生の仕方が時間的に一様である」という条件(*)だけから指数分布が導けます。

この条件(*)は無記憶性と呼ばれ、「ある時間幅Δxにイベントが発生する確率は、過去がどうであったかに関わらず一定である」と言い換えることが可能です。この条件を数式に落とし込み、指数分布が現れることを確認しましょう。

無記憶性を持つなら指数分布である

以下では、イベントの発生間隔の確率密度関数をf(x), 累積分布関数をF(x)とします。F(x)を微分するとf(x)になり、f(x)を積分するとF(x)が得られます。これらのf(x)、F(x)の関数形を得ることが目的です。

もとになる事実と無記憶性の条件

まず、以下の事実に注意しましょう。

イベントが発生した後、次に初めて発生するまでの時間間隔が x〜x+Δx の間に収まるということは、次のイベントが0〜xの間には発生せず、x〜x+Δx の間に発生するということである。

これを確率の言葉に直すとこうなります↓

イベントが発生した後、次に初めて発生するまでの時間間隔が x〜x+Δx の間に収まる確率は、
(次のイベントが0〜xの間に発生しない確率) × (次のイベントが x〜x+Δx の間に発生する確率)に等しい。

ここで、無記憶性の条件「ある時間幅Δxにイベントが発生する確率は、過去がどうであったかに関わらず一定である」から、上記の (次のイベントが x〜x+Δx の間に発生する確率)(次のイベントが 0〜Δx の間に発生する確率)と等しくならなければなりません。
したがって、以下のように言い換えます。

イベントが発生した後、次に初めて発生するまでの時間間隔が x〜x+Δx の間に収まる確率は、
(次のイベントが0〜xの間に発生しない確率) × (次のイベントが 0〜Δx の間に発生する確率)に等しい。

数式による表現

上記の事実を数式で表現しましょう。

積分布関数F(x)が意味するのは
「イベント発生の時間間隔がx以下となる確率」
すなわち
「イベントが発生した後、次に初めて発生するまでの時間間隔がx以下となる確率」
であることを利用し、上記事実は
{ \displaystyle
F(x+\Delta x) - F(x) = (1 - F(x)) \times F(\Delta x) \;\;\; --- (1)
}
と表すことができます。

極限をとり、微分方程式を導出

ここで、小さなΔx(あとで0の極限をとる)に対してF(Δx)を以下のように展開します。
{ \displaystyle
F(\Delta x) = F(0) + F'(0) \Delta x + O( (\Delta x)^2 ) \;\;\; --- (2)
}

Fは累積分布関数なのでF(0)=0, 累積分布関数の微分確率密度関数なのでF'(0)=f(0)を用いると、(2)は
{ \displaystyle
F(\Delta x) = f(0) \Delta x + O( (\Delta x)^2 ) \;\;\; --- (2')
}

と変形されます。
f(0)は何らかの定数なのでλとおきましょう
{ \displaystyle
F(\Delta x) = \lambda \Delta x + O( (\Delta x)^2 ) \;\;\; --- (2'')
}


(2'')を(1)に代入し、

{ \displaystyle
F(x+\Delta x) - F(x) = (1 - F(x)) \times ( \lambda \Delta x + O( (\Delta x)^2 ) ) \;\;\; --- (3)
}

両辺をΔxで割ると
{ \displaystyle
\frac{ F(x+\Delta x) - F(x) }{ \Delta x } = ( 1 - F(x) ) \times ( \lambda + O(\Delta x) )
}

Δx → 0の極限をとれば左辺がF(x)の微分になり、
{ \displaystyle
F'(x) = \lambda ( 1 - F(x) )
}

変形すると、以下のようなF(x)に関する微分方程式となります。
{ \displaystyle
F'(x) + \lambda F(x) = \lambda \;\;\; --- (4)
}

微分方程式を解き、指数分布を得る

あとは微分方程式(4)を解くだけです。
{ \displaystyle
F(x) = e^{- \lambda x}
}

とすると、(4)の右辺をゼロとしたものの解になっています。また、
{ \displaystyle
F(x) = 1
}
は(4)を満たします。

したがって(4)の一般解はCを任意定数として
{ \displaystyle
F(x) = 1 + C e^{- \lambda x} \;\;\; --- (5)
}

Cを求めるために、式(2')から式(2'')への変形でf(0)=λとしていたことを思い出しましょう。
{ \displaystyle
f(0) = F'(0) = \lambda \;\;\; --- (6)
}

この式(6)に式(5)を代入することで、C=-1が得られます。
よって、(5)の累積分布関数は
{ \displaystyle
F(x) = 1 - e^{- \lambda x}
}

xで微分すれば確率密度関数も求まり、
{ \displaystyle
f(x) = \lambda e^{- \lambda x}
}


以上のように、無記憶性の仮定のみから指数分布の累積分布関数・確率密度関数を求めることができました! ふう。

まとめ・おわりに

  • 何らかのイベントがランダムに発生するとき、その発生間隔の分布は単調減少かつx軸に漸近するべきであることから、指数分布っぽくなるはずである。
  • 「イベントの発生の仕方が時間的に一様である」ことを意味する無記憶性の仮定のみから指数分布の累積分布関数・確率密度関数を導くことができる。

ということを紹介しました。
教科書などではしばしば天下り的に与えられることですが、これでちゃんと理解できるのではないかと思います。

式の展開は自分で計算したので、誤りがあればご指摘ください。

統計学入門 (基礎統計学)

統計学入門 (基礎統計学)

待ち行列がわかる本―情報処理試験もバッチリ

待ち行列がわかる本―情報処理試験もバッチリ

roomba.hatenablog.com