投資のためのデータサイエンス

個人の投資活動に役立つデータ分析にまつわる話題を綴ります。

Pythonで学ぶ統計学(2): 離散型確率分布

確率は、ある事象の起こる確からしさを示すものです。例えば「コインを5回投げて表が3回出る確率」や、「本日の最高気温が30℃を超える確率」などを考えますが、このような事象の空間をより抽象的で操作しやすいようにするために、「確率変数」なるものを導入します。前者の例では、コインを5回投げて表が出る回数を X とするとき、 X \{0,1,2,3,4,5\}のいずれかの値をとりますが、表が3回出る確率を P(X=3)と表します。この Xは離散型確率変数と呼ばれます。一方後者において、本日の最高気温℃を Tとするとき、 Tは-273より大きい実数値をとりますが、本日の最高気温が30℃を超える確率を P(T \gt 30)と表します。

このように物事が起こる事象を確率変数がある値をとることに対応させて表現すると、その事象の起こる確率を数式で表現する道が開けます。

コイン投げのような試行をベルヌーイ試行といいますが、ベルヌーイ試行を n回実施したとき生起確率 pの事象が起こる回数(成功回数)を Xとすると、 Xは「二項分布」に従います。

 \displaystyle f(x)=\begin{pmatrix}n\\x\end{pmatrix}p^{x}(1-p)^{n-x}

同じくベルヌーイ試行で、 r回成功するまでの失敗の回数を Xとすると、 Xは「負の二項分布」に従います。

 \displaystyle f(x)=\begin{pmatrix}x+r-1 \\ x \end{pmatrix} p^{r} (1-p)^{x}

また二項分布で np=\lambdaと置き、試行回数 nが非常に大きくなった場合を考えると、以下のような「ポアソン分布」になります。

 \displaystyle f(x)=\frac{\lambda ^{x}}{x!}e^{-\lambda}

次に、箱の中にくじが N本あり、そのうち当たりくじが M本あるとします。いま、その箱から n本のくじを引いた時に当たりくじが X本である確率は、以下のような「超幾何分布」になります。

 \displaystyle f(x)=\frac{\begin{pmatrix} M \\ x \end{pmatrix} \begin{pmatrix} N-M \\ n-x \end{pmatrix}}{\begin{pmatrix} N \\ n \end{pmatrix}}

実際に二項分布にしたがう乱数を発生させてそのヒストグラムを描くPythonコードとその結果は以下のようになります。この場合の分布の平均値100*0.3=30付近がピークの釣り鐘型の分布になっています。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
n,p = 100,0.3
x1 = np.random.binomial(n,p,3000)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(x1)
ax.set_title('Binomial n='+str(n)+' p='+str(round(p,1)))
plt.show()

 

binoial_random.png