天天看點

二項分布與負二項分布卡片二項分布負二項分布示例

目錄

  • 二項分布
    • 性質
  • 負二項分布
    • 性質
  • 示例
    • scipy 實作及可視化
    • 期望與方差

二項分布容易了解,負二項分布的描述不同模型稍有差別,記錄一下。

二項分布

離散分布的一種,固定次數的獨立試驗時使用,每一次試驗結果分為成功和失敗兩類,關心的是成功或失敗的次數。

二項分布機率密度為:

P ( X = k ) = C n k p k q n − k \large\displaystyle P(X=k)=C_n^k p^kq^{n-k} P(X=k)=Cnk​pkqn−k

其中:

  • p為單次試驗成功的機率,q為失敗的機率;
  • n為試驗次數;
  • k表示成功k次,

    C n k = n ! k ! ( n − k ) ! \displaystyle C_n^k=\frac{n!}{k!(n-k)!} Cnk​=k!(n−k)!n!​。

性質

期望: E ( x ) = n p \displaystyle E(x)=np E(x)=np

方差: V a r ( x ) = n p q \displaystyle Var(x)=npq Var(x)=npq

負二項分布

負二項分布有不同的描述,核心是放回抽取或者擲色子試驗中,固定 成功(失敗)的次數,描述 抽取/投擲 失敗 (成功) 的次數機率分布。

scipy.stats描述的模型:

nbinom takes n and p as shape parameters where n is the number of successes, p is the probability of a single success, and (1-p) is the probability of a single failure.

負二項分布将n和p作為形狀參數,其中n是成功的次數,p 是單個成功的機率,1-p 是單個失敗的機率。

scipy中:

抽取試驗,單次成功的機率為 p p p,直到抽取 n n n次成功結束,這種情況下,失敗次數 k k k符合負二項分布,其機率密度為:

P ( X = k ) = C n + k − 1 n − 1 p n ( 1 − p ) k \displaystyle P(X=k)=C_{n+k-1}^{n-1}p^n(1-p)^k P(X=k)=Cn+k−1n−1​pn(1−p)k

陳希孺老師教材中:

抽取試驗,單次成功的機率為 p p p,抽取試驗直到抽取 k k k次失敗結束,這種情況下,成功次數 n n n符合負二項分布,

P ( X = n ) = C n + k − 1 k − 1 p n ( 1 − p ) k \displaystyle P(X=n)=C_{n+k-1}^{k-1}p^n(1-p)^k P(X=n)=Cn+k−1k−1​pn(1−p)k

性質

以scipy.stats模型為例,

期望: E ( X ) = n p − n = n ( 1 − p ) p \displaystyle E(X) =\frac{n}{p}-n = \frac{n(1-p)}{p} E(X)=pn​−n=pn(1−p)​

方差: V a r ( X ) = n ( 1 − p ) p 2 \displaystyle Var(X)=\frac{n(1-p)}{p^2} Var(X)=p2n(1−p)​

示例

擲色子,擲出1點為勝利:

  • 構造投擲18次篩子,投出1點的次數符合二項分布;
  • 現在考慮擲出3次勝利,問需要擲出多少次色子,比如結果是擲出了 k+3次色子,則k的分布符合 負二項分布

scipy 實作及可視化

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus'] = False  # 用來正常顯示負号

fig, axs = plt.subplots(1,2,figsize=(10,4),dpi=100) 
fig.subplots_adjust(wspace=0.3)
# 單次試驗成功率
p = 1./6
# 二項分布考慮擲色子18次,成功次數符合二項分布
N = 18
# 負二項分布考慮擲出成功n次,失敗次數符合二項分布
n = 3
# 二項分布B(N,p)
P_B= stats.binom(N,p)
## 成功次數0~18的機率分布
x=np.arange(N)
PF_B = P_B.pmf(x)

# 負二項分布NB(n,p)
P_NB = stats.nbinom(n,p)
# 成功3次,失敗次數 k 的機率分布
k=np.arange(N)
PF_NB = P_NB.pmf(k)

axs[0].stem(x, PF_B, 'bo', label='固定總次數,成功次數: 二項分布')  
axs[0].set_xticks(range(0,20,1)); 
axs[0].legend(loc='upper left')  
axs[0].set_ylim(0,0.3)

ax2=axs[0].twinx() 
ax2.plot(x,P_B.cdf(x),'r',label='累積機率')
ax2.legend(loc='center right')
ax2.grid()
ax2.set_ylim(0,1.2)

axs[1].stem(k, PF_NB, 'bo', label='固定成功次數,失敗次數: 負二項分布')   
axs[1].set_ylim(0,0.06)
axs[1].set_xticks(range(0,20,1)); 
axs[1].legend(loc='upper left')
ax2=axs[1].twinx() 
ax2.plot(x,P_NB.cdf(x),'r',label='累積機率')
ax2.legend(loc=[0.02,0.8])
ax2.grid()
           
二項分布與負二項分布卡片二項分布負二項分布示例

期望與方差

期望

print(f'二項分布的期望: {stats.binom(18,1./6).expect():.1f}, \n
		負二項分布的期望{stats.nbinom(3,1./6).expect():.1f}')
           

輸出為

二項分布的期望: 3.0,

負二項分布的期望15.0

驗算:

二項分布 binom(18,1./6) 的期望 E ( X ) = n p = 18 ∗ 1 / 6 = 3 \displaystyle E(X) =np=18*1/6=3 E(X)=np=18∗1/6=3

負二項分布**nbinom(3,1./6)**的期望 E ( X ) = n p − n = 3 ∗ 6 − 3 = 15 \displaystyle E(X) =\frac{n}{p}-n = 3*6-3=15 E(X)=pn​−n=3∗6−3=15 ,

方差

二項分布**binom(18,1./6)的方差: 2.5,

負二項分布nbinom(3,1./6)**的方差90.0

驗算

二項分布 binom(18,1./6) 的方差 E ( X ) = n p q = 18 ∗ 1 / 6 ∗ 5 / 6 = 2.5 \displaystyle E(X) =npq=18*1/6*5/6=2.5 E(X)=npq=18∗1/6∗5/6=2.5

負二項分布**nbinom(3,1./6)**的方差 E ( X ) = n ( 1 − p ) p 2 = 3 ∗ 5 / 6 ∗ 6 ∗ 6 = 90 \displaystyle E(X) =\frac{n(1-p)}{p^2}=3*5/6*6*6=90 E(X)=p2n(1−p)​=3∗5/6∗6∗6=90