Juliaで学ぶ確率変数(11) - まとめ

[Juliaで学ぶ確率変数(1) - 確率変数の定義 - Qiita](https://qiita.com/sand/items/afb5976ad28120d216c4)
[Juliaで学ぶ確率変数(2) - ２項分布（離散型） - Qiita](https://qiita.com/sand/items/9eda536b4e8f9bad0055)
[Juliaで学ぶ確率変数(3) - 幾何分布（離散型） - Qiita](https://qiita.com/sand/items/04e4165e823625e0177a)
[Juliaで学ぶ確率変数(4) - ポアソン分布（離散型） - Oiita](https://qiita.com/sand/items/632ad1665ab522e6c619)
[Juliaで学ぶ確率変数(5) - 正規分布（連続型） - Qiita](https://qiita.com/sand/items/4c3ef0b0504704074681)
[Juliaで学ぶ確率変数(6) - 一様分布（連続型） - Qiita](https://qiita.com/sand/items/7c3c54ef82a1bf439cc4)
[Juliaで学ぶ確率変数(7) - 指数分布（連続型） - Qiita](https://qiita.com/sand/items/4d494a8d05d5c88cc5df)
[Juliaで学ぶ確率変数(8) - ガンマ分布（連続型） - Qiita](https://qiita.com/sand/items/744672a69bd6bc1c8f24)
[Juliaで学ぶ確率変数(9) - ベータ分布（連続型） - Qiita](https://qiita.com/sand/items/7443a5ba7be873e113d9)
[Juliaで学ぶ確率変数(10) - コーシー分布（連続型） - Qiita](https://qiita.com/sand/items/8916cf28ad1dd82d8deb)
[Juliaで学ぶ確率変数(11) - まとめ - Qiita](https://qiita.com/sand/items/e4b32f7cfd74dea40298)


　本記事は、これまで書いた分布の記事をまとめたものです。各分布を簡単に比較できるように表にしてみました。また分布関連でよく使われるJulia言語のパッケージや関数、使い方についても簡単にまとめてあります。


Juliaの**離散型**確率変数のライブラリのドキュメントです。　==>[Distributions/Univariate/DiscreteDistributions](
https://juliastats.github.io/Distributions.jl/latest/univariate.html#Discrete-Distributions-1)
Juliaの**連続型**確率変数のライブラリのドキュメントです。　==>[Distributions/Univariate/ContinuousDistributions](
https://juliastats.github.io/Distributions.jl/latest/univariate.html#Continuous-Distributions-1)





#１．確率分布のまとめ


##１－１．確率分布の意味

<TABLE>
<TR><TH>分布名</TH><TH>種類</TH><TH>記号</TH><TH>意味</TH></TR>
<TR><TD><a href="https://qiita.com/sand/items/9eda536b4e8f9bad0055">２項</a></TD><TD>離散</TD><TD>B(n;p)</TD><TD>成功確率pのベルヌーイ試行（２値の試行）をn回行った時の、<BR>成功する回数Xが従う確率分布</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/04e4165e823625e0177a">幾何</a></TD><TD>離散</TD><TD>Ge(p)</TD><TD>成功確率がである独立なベルヌーイ試行を繰り返す時、<BR>初めて成功するまでの試行回数Xが従う確率分布</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/632ad1665ab522e6c619">ポアソン</a></TD><TD>離散</TD><TD>Po(λ)</TD><TD>nが十分大きく確率pが非常に小さい場合、「np=一定。<BR>λ=npとして、２項分布をポアソン分布で近似する。</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/4c3ef0b0504704074681">正規</a></TD><TD>連続</TD><TD>N(μ,σ)</TD><TD>滑らかな左右対称の山の形の確率分布<BR>平均値μが山頂で、標準偏差σが大きいほど急なカーブ。<BR>実験の測定の誤差，テストの点数などは正規分布に従う。<BR>定数μ=np、σ^2=np(1-p)として２項分布B(n;p)を近似する。</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/7c3c54ef82a1bf439cc4">一様</a></TD><TD>連続</TD><TD>U(a,b)</TD><TD>ランダムな事象を表現する確率分布</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/4d494a8d05d5c88cc5df">指数</a></TD><TD>連続</TD><TD>Ex(λ)</TD><TD>期間1/λあたりに1回起きると期待される事象が<BR>1回起きるまでの時間の分布 </TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/744672a69bd6bc1c8f24">ガンマ</a></TD><TD>連続</TD><TD>G(α,ν)</TD><TD>期間1/αあたりに1回起こると期待されるランダムな事象が<BR>ν回起こるまでの時間の分布</TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/7443a5ba7be873e113d9">ベータ</a></TD><TD>連続</TD><TD>Be(α,β)</TD><TD></TD></TR>
<TR><TD><a href="https://qiita.com/sand/items/8916cf28ad1dd82d8deb">コーシー</a></TD><TD>連続</TD><TD>C(μ,β)</TD><TD></TD></TR>
</TABLE>



##１－２．確率密度関数、平均、分散

```math
\begin{array}{|c|c|c|c|c|c|}
\hline
分布名 & 記号 & 確率密度関数 & 平均 E[X] & 分散 V[X]\\
\hline
２項 & B(n;p) & f(k) = \begin{pmatrix} n \\k \end{pmatrix} p^k (1-p)^{n-k} & np & np(1-p)\\
\hline
幾何 & Ge(p)  & f(k)=p(1-p)^k & \frac{1-p}{p} & \frac{1-p}{p^2}\\
\hline
ポアソン & Po(\lambda)  & f(k)=e^{-\lambda}\frac{\lambda ^k}{k!} & \lambda & \lambda\\
\hline
正規 & N(\mu,\sigma) & f(x) = \frac{1}{\sqrt {2\pi \sigma^2}} \exp\Biggl(-\frac{(x-\mu)^2}{2\sigma^2}\Biggr) & \mu & \sigma\\
\hline
一様 & U(a,b) & f(x) =
\left\{
\begin{array}{ll}
\frac{1}{b-a} & (a \leqq x \leqq b) \\
0 & (x<a\;or\;b<x)
\end{array}
\right.
 & \frac{a+b}{2} & \frac{(b-a)^2}{12}\\
\hline
指数 & Ex(λ) & f(x) =
\left\{
\begin{array}{ll}
\lambda e^{-\lambda x} & (x \geqq 0) \\
0 & (x<0)
\end{array}
\right.& \frac {1} {\lambda} & \frac {1} {\lambda^2}\\
\hline
ガンマ & 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. & \frac{\nu}{\alpha} & \frac{\nu}{\alpha^2}\\
\hline
ベータ & Be(\alpha,\beta) & f(x) =
\left\{
\begin{array}{ll}
\frac{1}{B(\alpha,\beta)} x^{\alpha-1} (1-x)^{\beta-1} & (0\leqq x \leqq 1) \\
0 & (otherwise)
\end{array}
\right. & \frac {\alpha}{\alpha + \beta} & \frac {\alpha \beta}{(\alpha+\beta+1)(\alpha+\beta)^2}\\
\hline
コーシー & C(\mu,\beta) & f(x) = \frac{1}{\pi} \frac{\alpha}{(x-\mu)^2+\alpha^2} &  & \\
\hline

\end{array}\\

\\
```


##１－３．分布のグラフ


各分布のグラフの形です。それぞれのグラフが持つ意味は、それぞれの分布の解説記事をご参照ください。

<table>
<tr><td>
<a href="https://qiita.com/sand/items/9eda536b4e8f9bad0055">２項分布</a> Binomial(10000, 0.001)
<img width=400 alt="２項分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/e58a63f7-becb-888b-36b4-ed72eafb7d22.png">
</td><td>
<a href="https://qiita.com/sand/items/04e4165e823625e0177a">幾何分布</a> Geometric(1/10)
<img width=400 alt="幾何分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/704ef4ed-3b3b-3208-eb52-3aeef604bcc1.png">
</td></tr>

<tr><td>
<a href="https://qiita.com/sand/items/632ad1665ab522e6c619">ポアソン分布</a> Poisson(8)
<img width=400 alt="ポアソン分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/11a3935f-6cf1-16f0-995f-f8b3adc64569.png">
</td><td>
<a href="https://qiita.com/sand/items/4c3ef0b0504704074681">正規分布</a> Normal(171,6)
<img width=400 alt="正規分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/2d8ef756-34c1-c33d-f82b-3e53257aaa98.png">
</td></tr>

<tr><td>
<a href="https://qiita.com/sand/items/7c3c54ef82a1bf439cc4">一様分布</a> Uniform(0,5)
<img width=400 alt="一様分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/827d8335-834c-b1d8-ddf4-2817ac571be2.png">
</td><td>
<a href="https://qiita.com/sand/items/4d494a8d05d5c88cc5df">指数分布</a> Exponential(100)
<img width=400 alt="指数分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/b40febf6-d280-18be-29bc-063f6894b630.png">
</td></tr>

<tr><td>
<a href="https://qiita.com/sand/items/744672a69bd6bc1c8f24">ガンマ分布</a> Gamma(100, 0.2)
<img width=400 alt="指数分布" src="https://qiita-image-store.s3.amazonaws.com/0/61915/dc4d77f8-a926-5698-993d-28eec0a2af5e.png">
</td><td>
</td></tr>

</table>




#２．Juliaで確率分布を扱う

復習ですが、分布F(x)は確率密度関数f(x)を使って以下のように定義されます。


```math
\begin{align}
&離散型確率変数 \qquad F(x) = p(\{X \leqq x\}) = \sum_{k \leqq x} f(k)\\
&連続型確率変数 \qquad F(x) = p(\{X \leqq x\}) = \int_{-\infty}^{x} f(v) dv\\
&\qquad \qquad  \qquad \qquad  \qquad \qquad  \qquad \qquad \qquad  \qquad \qquad \qquad \qquad  \qquad\\
\end{align}
```


Juliaで分布を扱うためには、Distributionsパッケージを扱います。
Distributionsパッケージには代表的な確率分布を定義する関数が提供されています。例えば正規分布N(μ,σ)に対してNormal(μ,σ)という関数が提供されていますので、これで分布を定義し、それにpdf関数を適用すると確率密度関数を計算します。cdf関数を適用すると分布を計算します。

つまり**確率密度関数**(Probability Density Function = PDF)の評価は**pdf**関数を使い、**分布（累積分布関数）** (Cumulative Distribution Function = CDF)の評価は**cdf**関数を使います。



```:Distributions.pdf
Distributions.pdf  # 確率密度関数
pdf(d::UnivariateDistribution, x::Real)
Evaluate the probability density (mass) at x.
```

```:Distributions.cdf
Distributions.cdf  # 確率分布
cdf(d::UnivariateDistribution, x::Real)
Evaluate the cumulative probability at x.
```

分布のPlotには、標準のPlotsに加えて、[**StatPlots**](https://github.com/JuliaPlots/StatPlots.jl)というパッケージを使っています。これはPlots.jlを拡張する機能であるrecipesを使って、統計に関する拡張を行ってます。Juliaでデータ分析を行うときは、よく使われているパッケージです。


例として平均身長171、偏差6の正規分布を考えます。

```julia:
using Plots
using Distributions
using StatPlots   # これがないとエラーになります。

d=Normal(171, 6)                      # 平均171cm、標準偏差6の正規分布
println( cdf(d,175) - cdf(d,165) )    # F(175)-F(165)  = 身長165cm-175cmの確率
plot(d, fill=(0, .5,:orange))
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61915/84a25cad-74e6-5609-5723-b64b9a078d03.png)

**（補足）Juliaでは破壊的な関数の名前に ! をつけるのが慣習です。**

```julia:
scatter(d, leg=false)         # 確率密度を散布図にする
bar!(d, func=cdf, alpha=0.3)  # 分布を棒グラフにする
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61915/fe5ba42a-964f-f508-8121-02d93d23b6f6.png)


分布の期待値（平均値）、分散、標準偏差などはStatisticsパッケージを用います。
https://juliastats.github.io/Distributions.jl/latest/univariate.html#Common-Interface-1

```
Statistics.mean   期待値
Statistics.var    分散
Statistics.std    標準偏差  i.e. = sqrt(var(d))
Statistics.median 中央値
```


例えば2項分布 B(10000, 0.001) に適用した例です。


```julia
using Statistics, Distributions

n=10000
p=0.001
d= Binomial(n, p)

println("平均=", n*p)                 # 自力で計算
println("平均=", Statistics.mean(d))  # 平均関数で計算
println("分散=", n*p*(1-p))           # 自力で計算
println("分散=", Statistics.var(d))   # 分散関数で計算
```


当然ですが、平均値と分散は、自力の計算とStatisticsの関数で計算した値は等しいです。

```:出力結果
平均=10.0
平均=10.0
分散=9.99
分散=9.99
```





#３．補足

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

```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}
```


##３－２．ベータ関数の定義

```math
\begin{align}
\\
&ベータ関数の定義\\
&x>0,\; y>0の時\\
&B(x,y) =\int_{0}^{1} t^{x-1} (1-t)^{y-1} dt\\
\\
\\
&ベータ関数の性質\\
&[B1] \; B(x,y) = B(y,x)  \qquad 任意の実数x>0,\;y>0\\
\\
&[B2] \; B(x,y) = 2 \int_0^{\frac{\pi}{2}} \sin^{2x-1}\theta \;\; \cos^{2y-1}\theta \;\;d\theta  \qquad  任意の実数x>0,\;y>0\\ 
\\
&[B3] \; B(x,y)=\frac {\Gamma(x)\Gamma(y)}{\Gamma(x+y)} \qquad  任意の実数x>0,\;y>0\\
\\
\\

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



今回は以上です。