LogoMark.png

Statistics/ExponentialDistribution のバックアップの現在との差分(No.6)


#author("2023-03-08T16:59:33+09:00;2023-02-03T17:27:57+09:00","default:inoue.ko","inoue.ko")
#author("2023-10-10T18:24:00+09:00;2023-02-03T17:27:57+09:00","default:inoue.ko","inoue.ko")
*指数分布
Exponential Distribution
~

#image(ExponentialDistribution.png,right,30%)
指数分布とは、単位時間に平均して λ(ラムダ)回起こる現象が、次に起こるまでの時間 X が従う確率分布です。&mathjax(X 〜 E_x(λ));と書きます。
&scale(75){Source:[[Wikimedia Commons File:Exponential distribution pdf.png>https://commons.wikimedia.org/wiki/File:Exponential_distribution_pdf.png]]};

単位時間に平均して λ(ラムダ)回起こる現象とは、言い換えると、1/ λ(単位時間)が X の平均的な値(期待値)になるということで、λ が大きくなるほど、期待値が小さく、グラフは左に寄る・・というイメージになります。

機械が故障してから次に故障するまでの時間や、客が来てから次の客が来るまでの時間などを統計的に扱う場合に、指数分布を使います。

指数分布は__[[ポアソン分布>Statistics/PoissonDistribution]]__と深い関係にあります。ポアソン分布は、単位時間内に事象の起こる回数の確率を表現する一方、指数分布は事象の起こる間隔の確率を表現しています。同じ事象を裏返しに見ているわけで、指数分布の平均が1/ λ になるのは、そのことを示しています。
~


***確率密度関数
指数分布は、単位時間中にある事象が発生する平均回数 λ をパラメータとして、以下のように書けます。
#mathjax( f(x) = λ e^{-λx} ( x \geq 0 ))
#mathjax( f(x) = 0 ( x < 0 ))

λ というパラメータは、指数分布の確率変数である「時間 X 」の期待値の逆数で、直感的にはわかりにくいので、期待値 μ = 1/λ を利用して、以下のように書く場合もあります。
#mathjax( f(x) = \frac{1}{μ} e^{-\frac{x}{μ}} ( x \geq 0 ))
//#mathjax( f(x) = \frac{1}{μ} exp  \left( -\frac{x}{μ} \right) )
#mathjax( f(x) = 0 ( x < 0 ))

ちなみに、Python の __[[NumPy]]__ライブラリが持っている「指数分布乱数」の解説でも、確率密度関数が期待値( β = 1/λ )を使った表現になっていて、 パラメータとしては期待値(β)を渡す形式になっています。
__[[NumPy:numpy.random.exponential>https://numpy.org/doc/stable/reference/random/generated/numpy.random.exponential.html]]__
~

***累積分布関数
#image(ExponentialDistributionCDF.png,right,30%)
指数分布はポアソン分布と異なり、連続型の分布なので、実際に確率を計算する場合は、累積確率を計算するのが一般的で、例えば X:0 〜 x の累積確率は、以下のようになります。
&scale(75){Source:[[Wikimedia Commons File:Exponential distribution cdf.png>https://commons.wikimedia.org/wiki/File:Exponential_distribution_cdf.png]]};

#mathjax( F(\leqq x) = 1 - e^{-λx} )

例えば、1時間に平均5人の客が来る(λ = 5、客の平均到着間隔は12分)窓口で、次の客が来るまでの間隔が15分(x = 0.25)''以内''である確率は、以下のように計算できます(単位時間は1時間です)。
#mathjax( F(\leqq 0.25) = 1 -  e^{-5 \times 0.25} = 1 - 0.286 = 0.714 )
~

***期待値と分散
-期待値
#mathjax(E(x) = μ = \frac{1}{λ})

-分散
#mathjax(V(x) = \frac{1}{λ^2})
~
~

**APPENDIX
***参考事例:南海トラフ地震が 今後30年以内におこる確率
-地震の発生がポアソン過程(発生間隔は指数分布)に基づくとします。
-南海トラフ地震は「約 90 ~ 150 年間隔で繰り返し発生」という話を「平均 120年に1回」=「1年(単位時間)に 0.00833回」とします。
-前回発生したのが 1944年の昭和東南海地震・1946年の昭和南海地震(連動する同じもの)とすると、2020年現在で約75年経過しているので「今後30年以内」というのは「前回発生から 105年以内に」という話になります。
-前回発生したのが 1944年の昭和東南海地震・1946年の昭和南海地震(連動する同じもの)とすると、2020年現在で約75年経過しているので「今後30年以内」というのを、話を簡単にするために「前回発生から 105年以内」に置き換えると以下のように計算できます(この75年間で発生していないことを加味すれば、当然「今から30年以内」とは別の数字になるのですが・・)。

-累積分布関数を用いた累積確率は以下のように計算できます。
#mathjax( F(\leqq 105) = 1 -  e^{-0.00833 \times 105} = 0.58299 )

-この計算はターミナルから Python を使うと簡単です。
 $ python
 >>> import math
 >>> 1 - math.e**(-0.00833*105)
 0.5829920530788264
-ということで、今後30年以内に発生する確率は約 58%となります。
-よって「前回発生から105年以内に発生する確率」は約 58%となります。
-ちなみに「120年に1回」なら「120年以内」は 100%かと思いがちですが、もちろんそうではありません。120年として計算すると &mathjax(1 -  e^{-1.0}); で 約 63.2%です。
~

***関連ページ
-[[Statistics/PoissonDistribution]]:ポアソン分布
-[[InversionMethod]]:逆関数法を用いた指数分布乱数の発生
~
~
~