伯努利二项分布的相对高概率与实际的低概率

伯努利二项分布的相对高概率与实际的低概率

计算公式

P ( X = k ) = C n k p k ( 1 − p ) n − k P(X=k)=C_{n}^{k} p^k(1-p)^{n-k} P(X=k)=Cnkpk(1p)nk

n n n 表示试验次数, p p p 表示事件出现的概率, k k k 表示事件出现的次数

简单理解就是,盒子里有total个小球,有 p ∗ t o t a l p*total ptotal个红球, ( 1 − p ) ∗ t o t a l (1-p)*total (1p)total个黑球,每次有放回地取1个小球,每次取到红球的概率为 p p p

给定 p p p n n n

P ( X = 0 ) + P ( X = 1 ) + P ( X = 2 ) + . . . + P ( X = n ) = 1 P(X=0)+P(X=1)+P(X=2)+...+P(X=n)=1 P(X=0)+P(X=1)+P(X=2)+...+P(X=n)=1

n = 10 , p = 0.3 n=10, p=0.3 n=10,p=0.3, P P P 关于 X X X的函数

在这里插入图片描述

X = 3 X=3 X=3 的概率最大, 但是不足0.3

n = 100 , p = 0.3 n=100, p=0.3 n=100,p=0.3 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 30 X=30 X=30 的概率最大,但是不足0.1

n = 100 , p = 0.03 n=100, p=0.03 n=100,p=0.03 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 3 X=3 X=3 的概率最大,但是不足0.3

n = 100 , p = 0.99 n=100, p=0.99 n=100,p=0.99 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 99 X=99 X=99 的概率最大,但是不足0.4

n = 1000 , p = 0.99 n=1000, p=0.99 n=1000,p=0.99 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 990 X=990 X=990 的概率最大,但是不足0.15

由此,我们可以直接假定,小球总数就是 n n n,红球的数量为 n ∗ p n*p np,那么 n n n次试验中出现 n ∗ p n*p np 次红球的概率最高,即 P ( X = n ∗ p ) P(X=n*p) P(X=np) 最大,但是其数值大小并没有想象中的0.8、0.9那么大,但是可以看到

P ( . . . , X = n ∗ p − 3 , X = n ∗ p − 2 , X = n ∗ p − 1 , X = n ∗ p , X = n ∗ p + 1 , X = n ∗ p + 2 , X = n ∗ p + 3 , . . . ) P(...,X=n*p-3,X=n*p-2,X=n*p-1,X=n*p,X=n*p+1,X=n*p+2,X=n*p+3,...) P(...,X=np3,X=np2,X=np1,X=np,X=np+1,X=np+2,X=np+3,...)

的概率接近于 1 1 1

综上,给定 p p p n n n

P ( X = n ∗ p ) = C n n ∗ p p n ∗ p ( 1 − p ) n − n ∗ p P(X=n*p)=C_{n}^{n*p} p^{n*p}(1-p)^{n-n*p} P(X=np)=Cnnppnp(1p)nnp

是所有 X = k X=k X=k 中最大的值,但是这个值本身的大小其实不大

给定 n n n ,但是 p p p 可变

这种情况下可以理解为,

n = 100 n=100 n=100 个小球,有 0 0 0 个红球, 取 100 100 100 次, 100 100 100 次中只有 0 0 0 个红球的概率;

n = 100 n=100 n=100 个小球,有 1 1 1 个红球, 取 100 100 100 次, 100 100 100 次中只有 1 1 1 个红球的概率;

n = 100 n=100 n=100 个小球,有 2 2 2 个红球, 取 100 100 100 次, 100 100 100 次中只有 2 2 2 个红球的概率;

n = 100 n=100 n=100 个小球,有 3 3 3 个红球, 取 100 100 100 次, 100 100 100 次中只有 3 3 3 个红球的概率;

n = 100 n=100 n=100 个小球,有 4 4 4 个红球, 取 100 100 100 次, 100 100 100 次中只有 4 4 4 个红球的概率;

n = 100 n=100 n=100 个小球,有 99 99 99 个红球, 取 100 100 100 次, 100 100 100 次中只有 99 99 99 个红球的概率;

n = 100 n=100 n=100 个小球,有 100 100 100 个红球, 取 100 100 100 次, 100 100 100 次中只有 100 100 100 个红球的概率;

X X X 的取值范围为 [ 0 , 100 ] [0,100] [0,100]

如果记红球的个数为 k k k,那么上述式子就可以改写为:

P ( X = k ) = C n k ( k n ) k ( 1 − k n ) n − k P(X=k)=C_{n}^{k} ({\frac{k}{n}})^{k} (1-{\frac{k}{n}})^{n-k} P(X=k)=Cnk(nk)k(1nk)nk

如果 n = 100 n=100 n=100, 得到如下函数图像:

在这里插入图片描述

除了 X = 0 X=0 X=0 X = 100 X=100 X=100 处, P = 1 P=1 P=1,其余的值都很小,

比如 X = 1 X=1 X=1 或者 X = 99 X=99 X=99 处, P = 0.3697 P=0.3697 P=0.3697

比如 X = 2 X=2 X=2 或者 X = 98 X=98 X=98 处, P = 0.2734 P=0.2734 P=0.2734

比如 X = 3 X=3 X=3 或者 X = 97 X=97 X=97 处, P = 0.2274 P=0.2274 P=0.2274

而当 X = 50 X=50 X=50 的时候, P = 0.0795 P=0.0795 P=0.0795

结论

我们可以得到这样一个形象的说明,假设有 100 100 100 个人给你投票,每个人投给你的概率为 0.99 0.99 0.99,那么最后收到 100 100 100 张票,虽然获得 99 99 99 张投票的概率最大,但是其数值只有 0.3697 0.3697 0.3697,但是获得的票数超过 90 90 90 的概率却大于 0.9999 0.9999 0.9999。如果每个人投给你的概率为 0.5 0.5 0.5,那么你获得50张选票的概率只有 0.0795 0.0795 0.0795,但是你的票数在 [ 40 , 60 ] [40,60] [40,60] 之间的概率为 0.9647 0.9647 0.9647。主要原因在于刚好 50 50 50 票的要求太苛刻,因为有 101 ( 0 − 100 ) 101(0-100) 101(0100) 种票选结果。

作图代码

给定 n n n p p p

from scipy.special import comb
import numpy as np
import matplotlib.pyplot as plt

count = 100
p_n = 50
p = p_n / count
q = 1 - p

n = 100
ps = [i for i in range(n + 1)]
y = []
s = 0
for i in ps:
    t = comb(n, i) * np.power(p, i) * np.power(q, n - i)
    if i == n * p:
        print(t)
    s += t
    y.append(t)

# a=0
# for i in range(21):
#     a+=y[40+i]

# print('a=' ,a)
fig, ax = plt.subplots(figsize=(4, 2.5))
print(s)
ax.plot(ps, y)
name = 'n = ' + str(n) + '\np = ' + str(p)
ax.set_xlabel('X', fontsize=12)
ax.set_ylabel('P', fontsize=12)
ax.set_title(name)
ax.grid()
figsave = 'n_' + str(n) + '_p_' + str(p) + '.png'
plt.tight_layout()
plt.savefig(figsave)
plt.close()

给定 n n n

from scipy.special import comb
import numpy as np
import matplotlib.pyplot as plt

n = 100

ps = [i for i in range(n + 1)]
y = []
s = 0
for p in ps:

    t = comb(n, p) * np.power(p / n, p) * np.power((1 - p / n), n - p)
    # if p==1 or p==198:
    #     print(t)
    s += t
    y.append(t)

fig, ax = plt.subplots(figsize=(4, 2.5))

print(s)

ax.plot(ps, y)
ax.set_xlabel('X = k', fontsize=12)
ax.set_ylabel('P', fontsize=12)
ax.grid()
ax.set_title('n = ' + str(n), fontsize=12)
plt.tight_layout()
figsave = 'n_' + str(n) + '.png'
plt.savefig(figsave)
plt.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值