Python で二項分布を使用する方法


二項分布は、統計で最もよく使用される分布の 1 つです。これは、 n回の二項実験でk 回の成功が得られる確率を表します。

確率変数X が二項分布に従う場合、 X = kが成功する確率は次の式で求められます。

P(X=k) = n C k * p k * (1-p) nk

金:

  • n:試行回数
  • k:成功回数
  • p:与えられた試行の成功確率
  • n C k : n回の試行でk 個の成功を得る方法の数

このチュートリアルでは、Python で二項分布を使用する方法を説明します。

二項分布を生成する方法

numpy ライブラリのrandom.binomial関数を使用して、二項分布に従う値の配列を生成できます。

 from numpy import random

#generate an array of 10 values that follows a binomial distribution
random.binomial(n=10, p=.25, size=10)

array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

結果として得られる表の各数値は、 10回の試行中に遭遇した「成功」の数を表します。ここで、特定の試行における成功の確率は0.25でした。

二項分布を使用して確率を計算する方法

scipy ライブラリのbinom 関数を使用して、二項確率に関する質問に答えることもできます。

質問 1:ネイサンはフリースロー試投の 60% を成功させます。彼がフリースローを 12 回成功させた場合、ちょうど 10 回成功する確率はどれくらいですか?

 from scipy.stats import binom

#calculate binomial probability
binom.pmf(k= 10 , n= 12 , p= 0.6 )

0.0639

ネイサンがちょうど 10 本のフリースローを成功させる確率は0.0639です。

質問 2:マーティは公正なコインを 5 回投げます。コインの表が 2 回以下になる確率はいくらですか?

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 2 , n= 5 , p= 0.5 )

0.5

コインが 2 回以下で表になる確率は0.5です。

質問 3:個人の 70% が特定の法律を支持していることはわかっています。 10 人が無作為に選ばれた場合、そのうち 4 人から 6 人が法律を支持する確率はどれくらいですか?

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 6 , n= 10 , p= 0.7 ) - binom.cdf(k= 3 , n= 10 , p= 0.7 )

0.3398

ランダムに選択された 4 ~ 6 人の個人が法則を支持する確率は0.3398です。

二項分布を視覚化する方法

seabornライブラリとmatplotlibライブラリを使用して、Python で二項分布を視覚化できます。

 from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

x = random.binomial(n= 10 , p= 0.5 , size= 1000 )

sns.distplot(x, hist= True , kde= False )

plt.show()

Python の二項分布プロット

お茶

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です