微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算二项分布的概率

如何解决计算二项分布的概率

“100 道题,每道题有 4 个可能的答案。如果随机选择每道题的答案,通过考试的概率是多少(获得 40% 或更多)”

x = ?
n = 100
p = 0.25

计算 40% 或更少就像只为 x 的值输入 40 一样简单,但我如何将其转换为 40% 或更多?我试过 -40、60、-60,但显然这是错误的。

代码

import scipy.stats as stats

cum_binomalpha = stats.binom.pmf(40,n=100,p=0.25)
print(round(cum_binomalpha,6))

编辑 - 可爱的多维解决方

import scipy.stats as stats

cumm_binomalpha = stats.binom.cdf(39,p=0.25)
print (round(1-cumm_binomalpha,6))

解决方法

您可以使用 sympy 获得准确答案:

from sympy import S
from sympy.stats import Binomial,P

b = Binomial('b',100,S(1) / 4)
print(P(b >= 40).evalf(),P(b >= 40))

结果:

0.000686592207962991
68956946241719424989885392307281546441260036992065207027/100433627766186892221372630771322662657637687111424552206336

使用 scipy,您可以尝试以下操作:

import scipy.stats as stats
import numpy as np

print(stats.binom.pmf(np.arange(40,101),n=100,p=0.25).sum())
print(1 - stats.binom.cdf(39,p=0.25))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。