Juliaで学ぶ確率変数(8) - ガンマ分布（連続型）

[Juliaで学ぶ確率変数(1) - 確率変数の定義 - Qiita](https://qiita.com/sand/items/afb5976ad28120d216c4)
[Juliaで学ぶ確率変数(11) - まとめ - Qiita](https://qiita.com/sand/items/e4b32f7cfd74dea40298)


　確率変数を勉強中ですが、**「確率統計」（森北出版）**は数学的に明確な定義がしっかり書かれているので、これを中心に勉強しています。あわせて**「統計学入門」（東京大学出版会）**と**「確率論入門」（ちくま学芸文庫、赤攝也）**も併読しています。

　本記事は、それらの教科書を読みながら、実際に例題や問題をJuliaで解いていく試みです。Juliaの連続型確率変数のライブラリのドキュメントです。　==>[Distributions/Univariate/ContinuousDistributions](
https://juliastats.github.io/Distributions.jl/latest/univariate.html#Continuous-Distributions-1)


#１．ガンマ分布G(α,ν)

ガンマ分布G(α,ν)のは、指数分布を一般化したもので、その持つ意味合いは、**期間1/αあたりに1回起こると期待されるランダムな事象がν回起こるまでの時間の分布、**と言われています。やはり製品部品の寿命やウイルスの潜伏期間のほか、人の体重なんかも従うらしいです。

[ガンマ分布のはなし - 統計学といくつかのよしなしごと](http://yanbow221.hatenablog.com/entry/2017/09/06/211456)


```math
\begin{align}
\\
\\
&定数 \alpha,\; \nu を\alpha>0,\; \nu>0　とする。\\
\\
&X: \Omega \rightarrow 非負の実数値\\
\\
&確率密度関数f(x)が以下のように書けるとき、Xはガンマ分布G(\alpha,\nu)に従うという。\\
\\
&f(x) =
\left\{
\begin{array}{ll}
\frac{1}{\Gamma (\nu)} \alpha^\nu x^{\nu-1} e^{-\alpha x} & (x \geqq 0 \;のとき) \\
0 & (x<0\;のとき)
\end{array}
\right.\\
\\
\\
&念のため x \geqq 0の時の定義を大きく書いておきます。\\
&f(x) = \frac{1}{\Gamma (\nu)} \alpha^\nu x^{\nu-1} e^{-\alpha x}
\\
\\
&ここで\Gamma (\nu)は解析学でガンマ関数と呼ばれるものです。\\
\\
\\
&ここで以下が成り立つ。\\
&E[X] = \frac{\nu}{\alpha}\\
&V[X] = \frac{\nu}{\alpha^2}\\
&p(\Omega)=\int_{-\infty}^{\infty} f(x) dx = \int_{0}^{\infty}  \frac{1}{\Gamma (\nu)} \alpha^\nu x^{\nu-1} e^{-\alpha x} dx = 1\\

\\
&\qquad \qquad  \qquad \qquad  \qquad \qquad  \qquad \qquad \qquad  \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad  \qquad  \\
\end{align}
```



##１－１．ガンマ関数の定義

```math
\begin{align}
\\
&ガンマ関数の定義\\
&x>0の時\\
&\Gamma(x) =\int_{0}^{\infty} t^{x-1}e^{-t} dt\\
\\
\\
&ガンマ関数の性質\\
&[G1] \; \Gamma(1) = 1\\
\\
&[G2] \; \Gamma(x+1) = x\Gamma(x) \qquad 任意の実数x \geqq 1\\ 
&\qquad とくに、\\
&\qquad \Gamma(n+1) = n! \qquad 任意の非負整数n\\
\\
&[G3] \; \Gamma = \sqrt {\pi}\\
\\
\\

\\

&\qquad \qquad  \qquad \qquad  \qquad \qquad  \qquad \qquad \qquad  \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad  \qquad  \\
\end{align}
```

簡単なので[G2]の証明を見てみたいと思います。

```math
\begin{align}
\\
&部分積分を使います。\\

&[G2] \; \Gamma(x+1) = \int_{0}^{\infty} t^{x} e^{-t} dt\\
&\qquad = \int_{0}^{\infty} t^{x} \frac {d \;(-e^{-t})}{dt} dt\\
&\qquad = [t^x(-e^{-t})]_0^\infty - \int_{0}^{\infty} \frac{d\;t^{x}}{dt} (-e^{-t}) dt\\
&\qquad =[-t^xe^{-t}]_0^\infty + \int_{0}^{\infty} xt^{x-1} e^{-t} dt\\
&\qquad = 0 + x \Gamma(x) = x \Gamma(x) \qquad \qquad  Q.E.D.\\
\\
&\qquad \qquad  \qquad \qquad  \qquad \qquad  \qquad \qquad \qquad  \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad  \qquad  \\
\end{align}
```


##１－２．Juliaで解く例題

Juliaで分布を扱うための基礎知識は以下のページを参照してください。
[「Juliaで学ぶ確率変数(1) - 確率変数の定義」の「４．Juliaで確率分布を扱う」](https://qiita.com/sand/items/afb5976ad28120d216c4)



[エクセルを用いたガンマ分布の計算](http://godfoot.world.coocan.jp/Gamma-Prob.htm)の問題です。

**--- 問題 ---**

**単位時間にα人の訪問者があるウェブの場合、ν人が訪問するまでの時間は次式の確率密度関数であるガンマ分布G(α,ν)に従う。訪問者が1分間に５人来るウェブの場合、訪問者が100人になる時間の確立密度分布を求めなさい。**





**--- Juliaの計算 ---**

期間1/αあたりに1回起こると期待されるランダムな事象がν回起こるまでの時間の分布。
今の場合、問題より、1/α = 1/5です。

Juliaでは正規分布の確率密度の定義はDistributions.Gammaを使います。νとαが与えられれば、**Gamma(ν,1/α)**で定義します。juliaのAPIとガンマ分布の定義が少しずれているので、頭の体操が必要です。



```julia
using Plots
using Distributions
using StatPlots

v=100
a=1/5

d=Gamma(v, a)
plot(d,fill=(0, .5,:orange))

println("F(10) = ", cdf(d,10))
println("F(15) = ", cdf(d,15))
println("F(20) = ", cdf(d,20))
println("F(25) = ", cdf(d,25))
println("F(30) = ", cdf(d,30))

plot(d,fill=(0, .5,:orange),xlabel = "time")
```

分布の出力は以下のようになります。

```
F(10) = 3.200065324585125e-10   # 10分で100人来る確率 ほぼゼロ
F(15) = 0.0033524414981869707   # 15分で100人来る確率 ちょっとだけ
F(20) = 0.5132987982791488      # 20分で100人来る確率 50%の確率
F(25) = 0.990620868331174       # 25分で100人来る確率 99%の確率
F(30) = 0.9999940754596646      # 30分で100人来る確率 ほぼ1に近い
```


![image.png](https://qiita-image-store.s3.amazonaws.com/0/61915/23a8a0be-8f4f-d47f-ba65-23d0a308651f.png)


**確率密度関数と分布**のグラフです。

```julia:
v=100
a=1/5
d=Gamma(v, a)
scatter(d, leg=false)         # 確率密度関数 散布図
bar!(d, func=cdf, alpha=0.3)  # 分布 棒グラフ
```


![image.png](https://qiita-image-store.s3.amazonaws.com/0/61915/e0e42f9a-0615-d504-1871-73039922a39f.png)



今回は以上です。