目錄
- 二項分布
-
- 性質
- 負二項分布
-
- 性質
- 示例
-
- 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)=Cnkpkqn−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−1pn(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−1pn(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