#author("2023-10-10T18:21:22+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年以内」に置き換えると以下のように計算できます(この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 -ということで「前回発生から105年以内に発生する確率」は約 58%となります。 -よって「前回発生から105年以内に発生する確率」は約 58%となります。 -ちなみに「120年に1回」なら「120年以内」は 100%かと思いがちですが、もちろんそうではありません。120年として計算すると &mathjax(1 - e^{-1.0}); で 約 63.2%です。 ~ ***関連ページ -[[Statistics/PoissonDistribution]]:ポアソン分布 -[[InversionMethod]]:逆関数法を用いた指数分布乱数の発生 ~ ~ ~