Python での二項分布

Manav Narula 2023年1月30日
  1. Python で numpy.random.binomial() 関数を使用して二項分布を作成する
  2. Python で scipy.stats.binom.pmf() 関数を使用して二項確率の分布を作成する
Python での二項分布

二項分布は、確率と統計の重要な概念です。これは、成功と失敗の確率がわかっている場合の、特定の数の独立した実験の実際の結果を表します。コイントスのように、別のイベントで正確に 2つの結果が可能である場合にのみ可能です。その数式を以下に示します。

二項分布式

このチュートリアルでは、Python で二項分布を作成する方法を示します。

Python で numpy.random.binomial() 関数を使用して二項分布を作成する

numpy モジュールは、numpy 配列に一連のランダムな値を生成できます。numpy.random.binomial() 関数を使用して、この分布のサンプルを返すことができます。

関数のパラメーターとして、試行回数(n)、成功の確率(p)、および最終出力のサイズ(サイズ)を指定できます。

例えば、

import numpy as np

a = np.random.binomial(n=5, p=0.7, size=20)
print(a)

出力:

[5 4 2 3 2 4 4 3 3 3 4 2 3 4 3 4 5 5 2 2]

上記の例では、各値は、成功の確率が 0.7 であったときに 5 試行中にイベントが発生した回数を表します。これは、サイズ 20 のサンプルに対して繰り返されました。

seaborn.distplot() 関数を使用してこれをプロットすることもできます。

例えば、

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

a = np.random.binomial(n=5, p=0.7, size=20)
sns.distplot(a, hist=True, kde=False)
plt.show()

出力:

numpy.random.binomial() 関数を使用して、Python で二項分布を作成します

Python で scipy.stats.binom.pmf() 関数を使用して二項確率の分布を作成する

scipy.stats.binom.pmf() 関数は、特定の値の二項確率を返します。これを使用して、二項確率の分布を作成できます。

以前のディストリビューションとは異なります。このディストリビューションを作成するために必要な成功の数をループします。

例えば、

from scipy.stats import binom

n = 5
p = 0.7
s = list(range(n + 1))
a = [binom.pmf(r, n, p) for r in s]
print(a)
sns.distplot(a, hist=True, kde=False)
plt.show()

出力:

scipy.stats.binom.pmf

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn