import numpy as np
import matplotlib.pyplot as plt
from numpy import power
from scipy.special import comb
相关知识
Bernoulli Experiment (伯努利试验)
对于一个试验(事件),如果重复发生的概率是独立的(互补影响),那么它是独立试验。特别的,如果这个试验只存在两种结果,则称其为伯努利试验。
Binomial Distribution (二项式分布)
对于重复 n n n次的伯努利试验,我们可以计算成功 k k k次的概率:
P k = C n k p k ( 1 − p ) n − k = n ! ( n − k ) ! k ! ⋅ p k ( 1 − p ) n − k P_{k}=C_{n}^{k} p^{k}(1-p)^{n-k}=\frac{n !}{(n-k) ! k !} \cdot p^{k}(1-p)^{n-k} Pk=Cnkpk(1−p)n−k=(n−k)!k!n!⋅pk(1−p)n−k
def BinomialDist(n, k, p=.5):
return comb(n, k) * power(p, k) * power(1-p, n-k)
e.g. 假设我们抛一枚硬币,总共抛10次,求10次都是正面的概率?
解: P 10 = 0. 5 10 P_{10} = 0.5^{10} P10=0.510
验证一下我们的函数:
BinomialDist(10, 10) == power(0.5, 10)
True
e.g. 假设我们抛一枚硬币,总共抛10次,分别求 k = 0 , 1 , 2 , . . . , 10 k=0,1,2,...,10 k=0,1,2,...,10次是正面的概率?
ks = np.linspace(0, 10, 11) #ks=0,1,2,...,10
Plst = BinomialDist(10, ks)
plt.plot(Plst, '.')
plt.title(r'$P(X=k),\ X \sim B(10,0.5)$')
plt.show()
从上图可以看出, k = 5 k=5 k=5时候最大,这符合我们的预期:抛10次硬币,正面朝上的次数最有可能为5。即随机变量 ξ ∼ B ( 10 , 0.5 ) \xi \sim B(10, 0.5) ξ∼B(10,0.5), E ( ξ ) = n p = 5 E(\xi)=np=5 E(ξ)=np=5。
简单证明一下 E ( ξ ) = n p E(\xi)=np E(ξ)=np:
-
预备公式: k c n k = n c n − 1 k − 1 k c_{n}^{k}=n c_{n-1}^{k-1} kcnk=ncn−1k−1
-
离散型随机变量 ξ \xi ξ的期望: E ( ξ ) = ∑ i n ( x i ⋅ p ( x i ) ) E(\xi)=\sum_i^n(x_i\cdot p(x_i)) E(ξ)=∑in(xi⋅p(xi))
-
这里 x i = k = 0 , 1 , . . . , n x_i = k = 0,1,...,n xi=k=0,1,...,n,而 p ( x i ) = p ( k ) = C n k p k ( 1 − p ) n − k p(x_i)=p(k)=C_{n}^{k} p^{k}(1-p)^{n-k} p(xi)=p(k)=Cnkpk(1−p)