当变量 x x x为某个事件独立重复 n n n次,其中成功的次数时,变量 x x x为二项式分布。每次成功的概率为 p p p,变量 x x x的取值范围为[ 0 ∼ n 0 \sim n 0∼n]:
P ( x ) = n ! [ x ! ( n − x ) ! ] p x ( 1 − p ) n − x , x = 0 , . . . , n P(x) = \frac{n!}{[x!(n - x)!]p^x(1 - p)^{n-x}},x = 0,...,n P(x)=[x!(n−x)!]px(1−p)n−xn!,x=0,...,n
期望和方差:
E
(
x
)
=
n
p
E(x) = np
E(x)=np
V
(
x
)
=
n
p
(
1
−
p
)
V(x) = np(1 - p)
V(x)=np(1−p)
累积分布函数:
F ( x o ) = P ( x < = x o ) F(x_o) = P(x <= x_o) F(xo)=P(x<=xo)
n n n值足够小:
例:设 x x x为二项式分布,且 n = 5 n = 5 n=5, p = 0.375 p = 0.375 p=0.375,生成一个随机二项式变量:
正态近似:
例:假设二项式分布的 n = 100 n = 100 n=100, p = 0.4 p = 0.4 p=0.4,生成随机的二项式变量 x x x:
泊松近似
例:设随机二项式变量 x x x,来自于独立重复次数为 n = 1000 n = 1000 n=1000的实验, p = 0.001 p = 0.001 p=0.001,生成该分布随机变量:
模拟生成二项式变量
import numpy as np
import matplotlib.pyplot as plt
def generate_Binomial_var(n=1, p=0.5):
if n <= 100:
u = np.random.uniform(0, 1, (n,))
x = np.sum(u < p)
if (p >= 0.1):
z = np.random.normal(loc=0.0, scale=1.0)
x = int(n*p + z*np.sqrt(n*p*(1 - p)) + 0.5)
else:
x = np.random.poisson(lam=n*p)
return x
